bc_feedback - Version 1.0.0.4

Version Notes

- IF Feedback recipient email is not specified then email will be sent to the recipient specified for contact us form.

Download this release

Release Info

Developer Biztech
Extension bc_feedback
Version 1.0.0.4
Comparing to
See all releases


Code changes from version 1.0.0.3 to 1.0.0.4

app/code/local/Bc/Feedback/controllers/IndexController.php CHANGED
@@ -3,6 +3,7 @@ class Bc_Feedback_IndexController extends Mage_Core_Controller_Front_Action
3
  {
4
  const XML_PATH_EMAIL_RECIPIENT = 'feedback/feedback/feedback_from_mail';
5
  const XML_PATH_EMAIL_SENDER = 'contacts/email/sender_email_identity';
 
6
  public function indexAction()
7
  {
8
 
@@ -24,16 +25,16 @@ class Bc_Feedback_IndexController extends Mage_Core_Controller_Front_Action
24
  $postObject->setData($post);
25
 
26
  $error = false;
27
- if(!empty($post['feedbackFname'])){
28
- if (!Zend_Validate::is(trim($post['feedbackFname']) , 'NotEmpty')) {
29
  $error = true;
30
  }
31
  }
32
- if (!Zend_Validate::is(trim($post['feedbackemail']), 'EmailAddress')) {
33
  $error = true;
34
  }
35
- if(!empty($post['feedbackmessage'])){
36
- if (!Zend_Validate::is(trim($post['feedbackmessage']) , 'NotEmpty')) {
37
  $error = true;
38
  }
39
  }
@@ -41,21 +42,28 @@ class Bc_Feedback_IndexController extends Mage_Core_Controller_Front_Action
41
  if ($error) {
42
  throw new Exception($e);
43
  }
 
 
 
 
 
 
44
  $store=Mage::app()->getStore();
45
  $mailTemplate = Mage::getModel('core/email_template');
46
  /* @var $mailTemplate Mage_Core_Model_Email_Template */
47
  $mailTemplate->setDesignConfig(array('area' => 'frontend'))
48
- ->setReplyTo($post['feedbackemail'])
49
- ->sendTransactional(
50
- 'feedback_email_template',
51
- Mage::getStoreConfig(self::XML_PATH_EMAIL_SENDER),
52
- Mage::getStoreConfig(self::XML_PATH_EMAIL_RECIPIENT),
53
- null,
54
- array(
55
- 'data' => $postObject,
56
- 'store'=> $store
57
- )
58
- );
 
59
  if (!$mailTemplate->getSentSuccess()) {
60
  throw new Exception($e);
61
  }
@@ -67,7 +75,6 @@ class Bc_Feedback_IndexController extends Mage_Core_Controller_Front_Action
67
  return;
68
 
69
  } catch (Exception $e) {
70
-
71
  $var1["result"]="error";
72
  $message=$e->getMessage();
73
  if($message==""){
3
  {
4
  const XML_PATH_EMAIL_RECIPIENT = 'feedback/feedback/feedback_from_mail';
5
  const XML_PATH_EMAIL_SENDER = 'contacts/email/sender_email_identity';
6
+ const XML_PATH_EMAIL_CONTACTS = 'contacts/email/recipient_email';
7
  public function indexAction()
8
  {
9
 
25
  $postObject->setData($post);
26
 
27
  $error = false;
28
+ if(!empty($post['feedbackbuname'])){
29
+ if (!Zend_Validate::is(trim($post['feedbackbuname']) , 'NotEmpty')) {
30
  $error = true;
31
  }
32
  }
33
+ if (!Zend_Validate::is(trim($post['feedbackmail']), 'EmailAddress')) {
34
  $error = true;
35
  }
36
+ if(!empty($post['feedbackdetails'])){
37
+ if (!Zend_Validate::is(trim($post['feedbackdetails']) , 'NotEmpty')) {
38
  $error = true;
39
  }
40
  }
42
  if ($error) {
43
  throw new Exception($e);
44
  }
45
+ $recipient="";
46
+ if(Mage::getStoreConfig(self::XML_PATH_EMAIL_RECIPIENT)==""){
47
+ $recipient=Mage::getStoreConfig(self::XML_PATH_EMAIL_CONTACTS);
48
+ }else{
49
+ $recipient=Mage::getStoreConfig(self::XML_PATH_EMAIL_RECIPIENT);
50
+ }
51
  $store=Mage::app()->getStore();
52
  $mailTemplate = Mage::getModel('core/email_template');
53
  /* @var $mailTemplate Mage_Core_Model_Email_Template */
54
  $mailTemplate->setDesignConfig(array('area' => 'frontend'))
55
+ ->setReplyTo($post['feedback_email'])
56
+ ->sendTransactional(
57
+ 'feedback_email_template',
58
+ Mage::getStoreConfig(self::XML_PATH_EMAIL_SENDER),
59
+ $recipient,
60
+ null,
61
+ array(
62
+ 'data' => $postObject,
63
+ 'store'=> $store
64
+ )
65
+ );
66
+
67
  if (!$mailTemplate->getSentSuccess()) {
68
  throw new Exception($e);
69
  }
75
  return;
76
 
77
  } catch (Exception $e) {
 
78
  $var1["result"]="error";
79
  $message=$e->getMessage();
80
  if($message==""){
app/code/local/Bc/Feedback/etc/adminhtml.xml CHANGED
@@ -1,46 +1,37 @@
1
- <?xml version="1.0"?>
2
- <!--
3
- /**
4
- * @category Bc
5
- * @package Bc_Font
6
- * @author ModuleCreator
7
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
8
- */
9
- -->
10
- <config>
11
- <acl>
12
- <resources>
13
- <all>
14
- <title>Allow Everything</title>
15
- </all>
16
- <admin>
17
- <children>
18
- <feedback>
19
- <title>FeedBack Module</title>
20
- <sort_order>10</sort_order>
21
- </feedback>
22
- <system>
23
- <children>
24
- <config>
25
- <children>
26
- <feedback translate="title" module="feedback">
27
- <title>Customer FeedBack</title>
28
- <sort_order>100</sort_order>
29
- </feedback>
30
- </children>
31
- </config>
32
- </children>
33
- </system>
34
- </children>
35
- </admin>
36
- </resources>
37
- </acl>
38
- <layout>
39
- <updates>
40
- <feedback>
41
- <file>feedback.xml</file>
42
- </feedback>
43
- </updates>
44
- </layout>
45
-
46
  </config>
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * @category Bc
5
+ * @package Bc_Feedback
6
+ * @author ModuleCreator
7
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
8
+ */
9
+ -->
10
+ <config>
11
+ <acl>
12
+ <resources>
13
+ <all>
14
+ <title>Allow Everything</title>
15
+ </all>
16
+ <admin>
17
+ <children>
18
+ <feedback>
19
+ <title>FeedBack Module</title>
20
+ <sort_order>10</sort_order>
21
+ </feedback>
22
+ <system>
23
+ <children>
24
+ <config>
25
+ <children>
26
+ <feedback>
27
+ <title>FeedBack Module</title>
28
+ </feedback>
29
+ </children>
30
+ </config>
31
+ </children>
32
+ </system>
33
+ </children>
34
+ </admin>
35
+ </resources>
36
+ </acl>
 
 
 
 
 
 
 
 
 
37
  </config>
app/design/frontend/base/default/template/feedback/popup_html.phtml CHANGED
@@ -22,74 +22,30 @@ if($customer->isLoggedIn()){
22
  <br/>
23
  <ul class="form-list" id="feedback_options">
24
  <li>
25
- <label for="fname"><?php echo $this->__('Your Full Name:') ?> <span class="required">*</span></label>
26
- <input name="fname" value="<?php echo $this->htmlEscape($name) ?>" title="<?php echo $this->__('Name') ?>" id="fname" type="text" class="input-text required-entry" />
27
  </li>
28
  <li>
29
- <label for="email"><?php echo $this->__('Your E-mail:') ?> <span class="required">*</span></label>
30
- <input name="email" value="<?php echo $this->htmlEscape($email) ?>" title="<?php echo $this->__('Email Address') ?>" id="email" type="text" class="input-text required-entry validate-email" />
31
  </li>
32
  <li>
33
- <label for="heard_about_us"><?php echo $this->__('Where did you hear about us?') ?></label>
34
- <input name="heard_about_us" value="" title="<?php echo $this->__('Email Address') ?>" id="heard_about_us" type="text" class="input-text" />
35
  </li>
36
  <li>
37
- <label for="details"><?php echo $this->__('Details:') ?> <span class="required">*</span></label>
38
- <textarea id="details" class="input-text required-entry" name="details" rows="10" col="50"></textarea>
39
  </li>
40
  <li>
41
- <button id="btnsubmit" name="btnsubmit" type="button" class="button-feedback">
42
  <span><span><?php echo $this->__('Submit') ?></span></span></button>
43
  </li>
44
  </ul>
45
  </form>
46
  <script type="text/javascript">
47
  var feedback_form = new Validation($('frm_feedback'));
48
- $("btnsubmit").observe("click",function(event) {
49
- if(feedback_form && feedback_form.validate()){
50
- var url = "<?php echo $this->getUrl("feedback/index/post"); ?>";
51
- $('loader').show();
52
- $('btnsubmit').disabled=true;
53
- new Ajax.Request(url, {
54
- method: 'post',
55
- dataType: 'json',
56
- onSuccess: function(transport) {
57
- if(transport.status == 200) {
58
- var response=transport.responseText.evalJSON();
59
- if(response.result=='success'){
60
- $('success_message').innerHTML=response.message;
61
- $('success_message').removeClassName('feedback-error-msg');
62
- $('success_message').addClassName('feedback-success-msg');
63
- }
64
- else{
65
- $('success_message').innerHTML=response.message;
66
- $('success_message').removeClassName('feedback-success-msg');
67
- $('success_message').addClassName('feedback-error-msg');
68
- }
69
- $('loader').hide();
70
- $('success_message').show();
71
- Effect.toggle('success_message', 'appear',{ duration: 5.0});
72
- setTimeout(function (){
73
- closeFeedbackWindow('feedback_information');
74
- $('frm_feedback').reset();
75
- $('btnsubmit').disabled=false;
76
- },6000);
77
- return false;
78
- }
79
- },
80
- parameters: {
81
- feedbackfname: $("fname").getValue(),
82
- feedbackemail: $("email").getValue(),
83
- feedbackmessage: $('details').getValue(),
84
- feedbackheard: $("heard_about_us").getValue()
85
- }
86
- });
87
- return false;
88
- }}
89
- );
90
  </script>
91
- <input type="hidden" id="popup_flg" value="0" />
92
- <p id="popup_loader" style="display: none;"><img src="<?php echo $this->getSkinUrl('feedback/images/spinner1.gif') ?>" alt=""></p>
93
  </div>
94
  </div>
95
  </div>
22
  <br/>
23
  <ul class="form-list" id="feedback_options">
24
  <li>
25
+ <label for="fname"><?php echo $this->__('Your Full Name').":" ?> <span class="required">*</span></label>
26
+ <input name="feedbackbuname" value="<?php echo $this->htmlEscape($name) ?>" title="<?php echo $this->__('Name') ?>" id="fname" type="text" class="input-text required-entry" />
27
  </li>
28
  <li>
29
+ <label for="email"><?php echo $this->__('Your E-mail').":" ?> <span class="required">*</span></label>
30
+ <input name="feedbackmail" value="<?php echo $this->htmlEscape($email) ?>" title="<?php echo $this->__('Email Address') ?>" id="email" type="text" class="input-text required-entry validate-email" />
31
  </li>
32
  <li>
33
+ <label for="heard_about_us"><?php echo $this->__('Where did you hear about us')."?" ?></label>
34
+ <input name="feedbackheard" value="" title="<?php echo $this->__('Email Address') ?>" id="heard_about_us" type="text" class="input-text" />
35
  </li>
36
  <li>
37
+ <label for="details"><?php echo $this->__('Details').":" ?> <span class="required">*</span></label>
38
+ <textarea id="details" class="input-text required-entry" name="feedbackdetails" rows="10" col="50"></textarea>
39
  </li>
40
  <li>
41
+ <button id="btnsubmit" name="btnsubmit" type="button" class="button-feedback" onclick="sendFeedback('<?php echo $this->getUrl("feedback/index/post"); ?>')">
42
  <span><span><?php echo $this->__('Submit') ?></span></span></button>
43
  </li>
44
  </ul>
45
  </form>
46
  <script type="text/javascript">
47
  var feedback_form = new Validation($('frm_feedback'));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  </script>
 
 
49
  </div>
50
  </div>
51
  </div>
app/locale/en_US/template/email/feedback/feedback.html CHANGED
@@ -1,15 +1,15 @@
1
  <!--@subject {{var store.getFrontendName()}}: Customer Feedback @-->
2
  <!--@vars
3
- {"var data.feedbackfname":"Sender Name",
4
- "var data.feedbackemail":"Sender Email",
5
  "var data.feedbackheard":"Where did you heard about us :",
6
- "var data.feedbackmessage":"Message"
7
  }
8
  @-->
9
- Name: {{var data.feedbackfname}}
10
  <br/>
11
- E-mail: {{var data.feedbackemail}}
12
  <br/>
13
  Where did you heard about us : {{var data.feedbackheard}}
14
  <br/>
15
- Comment: {{var data.feedbackmessage}}
1
  <!--@subject {{var store.getFrontendName()}}: Customer Feedback @-->
2
  <!--@vars
3
+ {"var data.feedbackbuname":"Sender Name",
4
+ "var data.feedbackmail":"Sender Email",
5
  "var data.feedbackheard":"Where did you heard about us :",
6
+ "var data.feedbackdetails":"Message"
7
  }
8
  @-->
9
+ Name: {{var data.feedbackbuname}}
10
  <br/>
11
+ E-mail: {{var data.feedbackmail}}
12
  <br/>
13
  Where did you heard about us : {{var data.feedbackheard}}
14
  <br/>
15
+ Comment: {{var data.feedbackdetails}}
package.xml CHANGED
@@ -1,28 +1,24 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>bc_feedback</name>
4
- <version>1.0.0.3</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Display feedback panel in popup &amp; send email to admin for information filled by customer.</summary>
10
- <description>&lt;h1&gt;Customer FeedBack Manager&lt;/h1&gt;
11
-
12
- Extension will provide visitor to send feedback/comment to admin via Feedback form in pop up. Feedback button located on screen left side will open up feedback popup and allow guest to write comment to be send to admin via email.
13
-
14
- Extension will provide interface for admin to enable/disable module from backend and configure recipents email address for feedback email.
15
-
16
  Goto System &gt; configuration &gt; Biztech Extensions &gt; Feedback &gt; configuration</description>
17
- <notes>- Feedback module activation control from admin panel
18
- - Email configuration for recipients of customer feedback email
19
- - Pop up display for feedback form
20
-
21
- - Solved the issue of access denied for magento versions 1.4</notes>
22
- <authors><author><name>Biztech</name><user>auto-converted</user><email>sales@biztechconsultancy.com</email></author></authors>
23
- <date>2012-07-18</date>
24
- <time>14:45:05</time>
25
- <contents><target name="magelocal"><dir name="Bc"><dir name="Feedback"><dir name="Block"><file name="Feedback.php" hash="79437eefd19f20e8acba1320b0687e5f"/></dir><dir name="controllers"><file name="IndexController.php" hash="d68362f678fa915140bfcba533cd86f7"/></dir><dir name="etc"><file name="adminhtml.xml" hash="b1654199bde32302ff359518686e4195"/><file name="config.xml" hash="2436d192b39c7783ca06de0b00e794c8"/><file name="system.xml" hash="5dfc5e2e16707ce585412cf1cb318062"/></dir><dir name="Helper"><file name="Data.php" hash="c247278ee540a94e0ffb9c1c3fd48748"/></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><dir name="template"><dir name="email"><dir name="feedback"><file name="feedback.html" hash="4f21b2329fee353a6ce3ddddd9fb1c1f"/></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="feedback"><dir name="css"><file name="popup.css" hash="67b406a6038fab9430ee42fafc5748d2"/></dir><dir name="images"><file name="ajax-loader-onestep.gif" hash="cf9953e0d5241b49c3dee9d0051cca3d"/><file name="closebox.png" hash="f2aace763cfcc4d6f3427a8a0842e55c"/><file name="feedbacktab.png" hash="f4efb82c0d823c56ee5cc37ebf9851f1"/><file name="general-btn.gif" hash="d04f8bf3e7bc194a031bb5b2ac7433ba"/><file name="general-input-bg.jpg" hash="5a63d17240be2d5acdd8d432c4e1caff"/><file name="spinner1.gif" hash="64a0b76fd93e2814d63ba9abe66c7de3"/><file name="Thumbs.db" hash="193b43145c8da8f05fb24cc31bec23ec"/></dir><dir name="js"><file name="popup.js" hash="9826bcfb3af1fa8b716789ba1f00ae73"/></dir></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="feedback.xml" hash="32a183a464fce0a65d8169cf80317916"/></dir><dir name="template"><dir name="feedback"><file name="popup_html.phtml" hash="1c6b7e615a343e2b89e7dcaecc291bae"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Bc_Feedback.xml" hash="24ae9a181967f28f7444f32c79680c42"/></dir></target></contents>
26
  <compatible/>
27
- <dependencies/>
28
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>bc_feedback</name>
4
+ <version>1.0.0.4</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Display feedback panel in popup &amp; send email to admin for information filled by customer.</summary>
10
+ <description>&lt;h1&gt;Customer FeedBack Manager&lt;/h1&gt;&#xD;
11
+ &#xD;
12
+ Extension will provide visitor to send feedback/comment to admin via Feedback form in pop up. Feedback button located on screen left side will open up feedback popup and allow guest to write comment to be send to admin via email. &#xD;
13
+ &#xD;
14
+ Extension will provide interface for admin to enable/disable module from backend and configure recipents email address for feedback email. &#xD;
15
+ &#xD;
16
  Goto System &gt; configuration &gt; Biztech Extensions &gt; Feedback &gt; configuration</description>
17
+ <notes>- IF Feedback recipient email is not specified then email will be sent to the recipient specified for contact us form.</notes>
18
+ <authors><author><name>Biztech</name><user>biztechcon</user><email>sales@biztechconsultancy.com</email></author></authors>
19
+ <date>2012-07-19</date>
20
+ <time>10:11:11</time>
21
+ <contents><target name="mageetc"><dir name="modules"><file name="Bc_Feedback.xml" hash="24ae9a181967f28f7444f32c79680c42"/></dir></target><target name="magelocal"><dir name="Bc"><dir name="Feedback"><dir name="Block"><file name="Feedback.php" hash="79437eefd19f20e8acba1320b0687e5f"/></dir><dir name="Helper"><file name="Data.php" hash="c247278ee540a94e0ffb9c1c3fd48748"/></dir><dir name="controllers"><file name="IndexController.php" hash="b2fc732e07a4b17181847fab0376584e"/></dir><dir name="etc"><file name="adminhtml.xml" hash="545940b926b739e44e9d56f503d02e0f"/><file name="config.xml" hash="2436d192b39c7783ca06de0b00e794c8"/><file name="system.xml" hash="5dfc5e2e16707ce585412cf1cb318062"/></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="feedback"><dir name="css"><file name="popup.css" hash="67b406a6038fab9430ee42fafc5748d2"/></dir><dir name="images"><file name="Thumbs.db" hash="193b43145c8da8f05fb24cc31bec23ec"/><file name="ajax-loader-onestep.gif" hash="cf9953e0d5241b49c3dee9d0051cca3d"/><file name="closebox.png" hash="f2aace763cfcc4d6f3427a8a0842e55c"/><file name="feedbacktab.png" hash="f4efb82c0d823c56ee5cc37ebf9851f1"/><file name="general-btn.gif" hash="d04f8bf3e7bc194a031bb5b2ac7433ba"/><file name="general-input-bg.jpg" hash="5a63d17240be2d5acdd8d432c4e1caff"/><file name="i_msg-error.gif" hash="e4f28607f075a105e53fa3113d84bd26"/><file name="i_msg-success.gif" hash="834dfafd5f8b44c4b24a4c00add56fcf"/></dir><dir name="js"><file name="popup.js" hash="9354c99f4310a309f49b9bbb3af78afb"/></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><dir name="template"><dir name="email"><dir name="feedback"><file name="feedback.html" hash="fad80bccd037f798f48fb4208bb8871a"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="feedback"><file name="popup_html.phtml" hash="6c8e7cea68737737700724dc96b75d2e"/></dir></dir><dir name="layout"><file name="feedback.xml" hash="32a183a464fce0a65d8169cf80317916"/></dir></dir></dir></dir></target></contents>
 
 
 
 
22
  <compatible/>
23
+ <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
24
  </package>
skin/frontend/base/default/feedback/images/i_msg-error.gif ADDED
Binary file
skin/frontend/base/default/feedback/images/i_msg-success.gif ADDED
Binary file
skin/frontend/base/default/feedback/images/spinner1.gif DELETED
Binary file
skin/frontend/base/default/feedback/js/popup.js CHANGED
@@ -12,4 +12,40 @@ function closeFeedbackWindow(ele1){
12
  $$('div.error-massage').each(function(ele){
13
  ele.hide();
14
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  }
12
  $$('div.error-massage').each(function(ele){
13
  ele.hide();
14
  });
15
+ }
16
+ function sendFeedback(url){
17
+ if(feedback_form && feedback_form.validate()){
18
+ $('loader').show();
19
+ $('btnsubmit').setAttribute('disabled', true);
20
+ var parameters=$('frm_feedback').serialize(true);
21
+ new Ajax.Request(url, {
22
+ method: 'post',
23
+ dataType: 'json',
24
+ parameters: parameters,
25
+ onSuccess: function(transport) {
26
+ if(transport.status == 200) {
27
+ var response=transport.responseText.evalJSON();
28
+ $('success_message').innerHTML=response.message;
29
+ if(response.result=='success'){
30
+ $('success_message').removeClassName('feedback-error-msg');
31
+ $('success_message').addClassName('feedback-success-msg');
32
+ }
33
+ else{
34
+ $('success_message').removeClassName('feedback-success-msg');
35
+ $('success_message').addClassName('feedback-error-msg');
36
+ }
37
+ $('loader').hide();
38
+ $('success_message').show();
39
+ Effect.toggle('success_message', 'appear',{ duration: 5.0});
40
+ setTimeout(function (){
41
+ closeFeedbackWindow('feedback_information');
42
+ $('frm_feedback').reset();
43
+ $('btnsubmit').removeAttribute('disabled');
44
+ },6000);
45
+ return false;
46
+ }
47
+ },
48
+ });
49
+ return false;
50
+ }
51
  }