Version Notes
Display feedback form on frontend.
Download this release
Release Info
Developer | Biztech |
Extension | bc_feedback |
Version | 1.0.0.1 |
Comparing to | |
See all releases |
Version 1.0.0.1
- app/code/local/Bc/Feedback/Block/Feedback.php +27 -0
- app/code/local/Bc/Feedback/Helper/Data.php +6 -0
- app/code/local/Bc/Feedback/controllers/IndexController.php +80 -0
- app/code/local/Bc/Feedback/etc/config.xml +76 -0
- app/code/local/Bc/Feedback/etc/system.xml +77 -0
- app/design/frontend/base/default/layout/feedback.xml +11 -0
- app/design/frontend/base/default/template/feedback/popup_html.phtml +93 -0
- app/etc/modules/Bc_Feedback.xml +17 -0
- app/locale/en_US/template/email/feedback/feedback.html +15 -0
- package.xml +22 -0
- skin/frontend/base/default/feedback/css/popup.css +79 -0
- skin/frontend/base/default/feedback/images/Thumbs.db +0 -0
- skin/frontend/base/default/feedback/images/ajax-loader-onestep.gif +0 -0
- skin/frontend/base/default/feedback/images/ajax-loader-onestep_.gif +0 -0
- skin/frontend/base/default/feedback/images/closebox.png +0 -0
- skin/frontend/base/default/feedback/images/feedbacktab.png +0 -0
- skin/frontend/base/default/feedback/images/general-btn.gif +0 -0
- skin/frontend/base/default/feedback/images/general-input-bg.jpg +0 -0
- skin/frontend/base/default/feedback/images/spinner1.gif +0 -0
- skin/frontend/base/default/feedback/js/popup.js +15 -0
app/code/local/Bc/Feedback/Block/Feedback.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Bc_Feedback_Block_Feedback extends Mage_Core_Block_Template
|
3 |
+
{
|
4 |
+
public function _prepareLayout()
|
5 |
+
{
|
6 |
+
return parent::_prepareLayout();
|
7 |
+
}
|
8 |
+
|
9 |
+
public function getFeedback()
|
10 |
+
{
|
11 |
+
if (!$this->hasData('feedback')) {
|
12 |
+
$this->setData('feedback', Mage::registry('feedback'));
|
13 |
+
}
|
14 |
+
return $this->getData('feedback');
|
15 |
+
|
16 |
+
}
|
17 |
+
|
18 |
+
public function addItem($type, $path)
|
19 |
+
{
|
20 |
+
$config = Mage::getStoreConfig('feedback/feedback/active');
|
21 |
+
if($config == "1")
|
22 |
+
{
|
23 |
+
$head = $this->getLayout()->getBlock('head');
|
24 |
+
return $head->addItem($type,$path);
|
25 |
+
}
|
26 |
+
}
|
27 |
+
}
|
app/code/local/Bc/Feedback/Helper/Data.php
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Bc_Feedback_Helper_Data extends Mage_Core_Helper_Abstract
|
4 |
+
{
|
5 |
+
|
6 |
+
}
|
app/code/local/Bc/Feedback/controllers/IndexController.php
ADDED
@@ -0,0 +1,80 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
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 |
+
|
9 |
+
$this->loadLayout();
|
10 |
+
$this->getLayout()->getBlock('head')->setTitle(Mage::helper('customer')->__('Feedback Form'));
|
11 |
+
$this->renderLayout();
|
12 |
+
|
13 |
+
}
|
14 |
+
|
15 |
+
public function postAction(){
|
16 |
+
{
|
17 |
+
$post = $this->getRequest()->getPost();
|
18 |
+
if ($post) {
|
19 |
+
$translate = Mage::getSingleton('core/translate');
|
20 |
+
/* @var $translate Mage_Core_Model_Translate */
|
21 |
+
$translate->setTranslateInline(false);
|
22 |
+
try {
|
23 |
+
$postObject = new Varien_Object();
|
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 |
+
}
|
40 |
+
if ($error) {
|
41 |
+
throw new Exception();
|
42 |
+
}
|
43 |
+
$store=Mage::app()->getStore();
|
44 |
+
$mailTemplate = Mage::getModel('core/email_template');
|
45 |
+
/* @var $mailTemplate Mage_Core_Model_Email_Template */
|
46 |
+
|
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();
|
61 |
+
}
|
62 |
+
|
63 |
+
$translate->setTranslateInline(true);
|
64 |
+
echo $response = "success";
|
65 |
+
|
66 |
+
} catch (Exception $e) {
|
67 |
+
$translate->setTranslateInline(true);
|
68 |
+
echo $response='error';
|
69 |
+
}
|
70 |
+
|
71 |
+
}
|
72 |
+
else {
|
73 |
+
echo $response = "Unable to submit your request. Please, try again later";
|
74 |
+
|
75 |
+
}
|
76 |
+
}
|
77 |
+
return;
|
78 |
+
}
|
79 |
+
|
80 |
+
}
|
app/code/local/Bc/Feedback/etc/config.xml
ADDED
@@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
+
<modules>
|
12 |
+
<Bc_Feedback>
|
13 |
+
<version>1.0.0.1</version>
|
14 |
+
</Bc_Feedback>
|
15 |
+
</modules>
|
16 |
+
<frontend>
|
17 |
+
<routers>
|
18 |
+
<feedback>
|
19 |
+
<use>standard</use>
|
20 |
+
<args>
|
21 |
+
<module>Bc_Feedback</module>
|
22 |
+
<frontName>feedback</frontName>
|
23 |
+
</args>
|
24 |
+
</feedback>
|
25 |
+
</routers>
|
26 |
+
<layout>
|
27 |
+
<updates>
|
28 |
+
<feedback>
|
29 |
+
<file>feedback.xml</file>
|
30 |
+
</feedback>
|
31 |
+
</updates>
|
32 |
+
</layout>
|
33 |
+
</frontend>
|
34 |
+
|
35 |
+
<global>
|
36 |
+
<template>
|
37 |
+
<email>
|
38 |
+
<feedback_email_template translate="label" module="feedback">
|
39 |
+
<label>Feedback</label>
|
40 |
+
<file>feedback/feedback.html</file>
|
41 |
+
<type>html</type>
|
42 |
+
</feedback_email_template>
|
43 |
+
</email>
|
44 |
+
</template>
|
45 |
+
<resources>
|
46 |
+
<feedback_setup>
|
47 |
+
<setup>
|
48 |
+
<module>Bc_Feedback</module>
|
49 |
+
</setup>
|
50 |
+
<connection>
|
51 |
+
<use>core_setup</use>
|
52 |
+
</connection>
|
53 |
+
</feedback_setup>
|
54 |
+
<feedback_write>
|
55 |
+
<connection>
|
56 |
+
<use>core_write</use>
|
57 |
+
</connection>
|
58 |
+
</feedback_write>
|
59 |
+
<feedback_read>
|
60 |
+
<connection>
|
61 |
+
<use>core_read</use>
|
62 |
+
</connection>
|
63 |
+
</feedback_read>
|
64 |
+
</resources>
|
65 |
+
<blocks>
|
66 |
+
<feedback>
|
67 |
+
<class>Bc_Feedback_Block</class>
|
68 |
+
</feedback>
|
69 |
+
</blocks>
|
70 |
+
<helpers>
|
71 |
+
<feedback>
|
72 |
+
<class>Bc_Feedback_Helper</class>
|
73 |
+
</feedback>
|
74 |
+
</helpers>
|
75 |
+
</global>
|
76 |
+
</config>
|
app/code/local/Bc/Feedback/etc/system.xml
ADDED
@@ -0,0 +1,77 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<!--
|
3 |
+
/**
|
4 |
+
* Magento
|
5 |
+
*
|
6 |
+
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
10 |
+
* It is also available through the world-wide-web at this URL:
|
11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
12 |
+
* If you did not receive a copy of the license and are unable to
|
13 |
+
* obtain it through the world-wide-web, please send an email
|
14 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
15 |
+
*
|
16 |
+
* DISCLAIMER
|
17 |
+
*
|
18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
19 |
+
* versions in the future. If you wish to customize Magento for your
|
20 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category Mage
|
23 |
+
* @package Mage_Customer
|
24 |
+
* @copyright Copyright (c) 2008 Irubin Consulting Inc. DBA Varien (http://www.varien.com)
|
25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
26 |
+
*/
|
27 |
+
-->
|
28 |
+
<config>
|
29 |
+
<tabs>
|
30 |
+
<feedback translate="label" module="feedback">
|
31 |
+
<label>Biztech Extensions</label>
|
32 |
+
<sort_order>900</sort_order>
|
33 |
+
</feedback>
|
34 |
+
</tabs>
|
35 |
+
<sections>
|
36 |
+
<feedback translate="label" module="feedback">
|
37 |
+
<class>separator-top</class>
|
38 |
+
<label>Feedback</label>
|
39 |
+
<tab>feedback</tab>
|
40 |
+
<sort_order>130</sort_order>
|
41 |
+
<show_in_default>1</show_in_default>
|
42 |
+
<show_in_website>1</show_in_website>
|
43 |
+
<show_in_store>1</show_in_store>
|
44 |
+
<groups>
|
45 |
+
<feedback translate="label">
|
46 |
+
<label>Configuration</label>
|
47 |
+
<frontend_type>text</frontend_type>
|
48 |
+
<sort_order>10</sort_order>
|
49 |
+
<show_in_default>1</show_in_default>
|
50 |
+
<show_in_website>0</show_in_website>
|
51 |
+
<show_in_store>0</show_in_store>
|
52 |
+
<fields>
|
53 |
+
<feedback_from_mail translate="label">
|
54 |
+
<label>Recipient Email</label>
|
55 |
+
<frontend_type>text</frontend_type>
|
56 |
+
<sort_order>2</sort_order>
|
57 |
+
<show_in_default>1</show_in_default>
|
58 |
+
<show_in_website>1</show_in_website>
|
59 |
+
<show_in_store>0</show_in_store>
|
60 |
+
</feedback_from_mail>
|
61 |
+
</fields>
|
62 |
+
<fields>
|
63 |
+
<active translate="label">
|
64 |
+
<label>Enable</label>
|
65 |
+
<frontend_type>select</frontend_type>
|
66 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
67 |
+
<sort_order>1</sort_order>
|
68 |
+
<show_in_default>1</show_in_default>
|
69 |
+
<show_in_website>1</show_in_website>
|
70 |
+
<show_in_store>0</show_in_store>
|
71 |
+
</active>
|
72 |
+
</fields>
|
73 |
+
</feedback>
|
74 |
+
</groups>
|
75 |
+
</feedback>
|
76 |
+
</sections>
|
77 |
+
</config>
|
app/design/frontend/base/default/layout/feedback.xml
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<layout version="0.1.0">
|
3 |
+
<default>
|
4 |
+
<reference name="footer">
|
5 |
+
<block type="feedback/feedback" name="popuphtml1" as="popuphtml" template="feedback/popup_html.phtml">
|
6 |
+
<action method="addItem"><type>skin_css</type><name>feedback/css/popup.css</name><params/></action>
|
7 |
+
<action method="addItem"><type>skin_js</type><name>feedback/js/popup.js</name></action>
|
8 |
+
</block>
|
9 |
+
</reference>
|
10 |
+
</default>
|
11 |
+
</layout>
|
app/design/frontend/base/default/template/feedback/popup_html.phtml
ADDED
@@ -0,0 +1,93 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php $config = Mage::getStoreConfig('feedback/feedback/active'); ?>
|
2 |
+
<?php if($config=="1") { ?>
|
3 |
+
<div class="side-feedback">
|
4 |
+
<?php //if($config=="1") { ?><a href="javascript:void(0)" onclick="openFeedbackWindow('feedback_information')" title="Feedback" id="link_feedback"></a> <?php //} ?>
|
5 |
+
</div>
|
6 |
+
<div id="backgroundpopup" class="background-opacity" style="display: none; background: none repeat scroll 0% 0% rgb(0, 0, 0);"></div>
|
7 |
+
<div style="display: none;" id="feedback_information" class="feedback-container">
|
8 |
+
<a class="feedback_close" title="close" href="#" onclick="closeFeedbackWindow('feedback_information'); return false;"></a>
|
9 |
+
<div class="feedback-popup-content">
|
10 |
+
<div class="feedback-title"> <?php echo $this->__('Feedback') ?> </div>
|
11 |
+
<div class="feedback-content">
|
12 |
+
<form action="<?php echo $this->getUrl("feedback/index/post") ?>" method="post" id="frm_feedback">
|
13 |
+
<input style="margin-bottom: 0px;" id="oursiteurl" class="input-text required-entry" name="oursiteurl" type="hidden" value="<?php echo $this->getUrl(Mage::getModel('catalog/product')->load($this->getRequest()->getParam('id'))->getData('url_path')); ?>" />
|
14 |
+
<div id="success_message" style="display: none;" class="feedback-success-msg"></div>
|
15 |
+
<div id="loader" class="loader-feedback" style="text-align: center;"></div>
|
16 |
+
<br/>
|
17 |
+
<ul class="form-list" id="feedback_options">
|
18 |
+
<li>
|
19 |
+
<label for="fname"><?php echo $this->__('Your Full Name:') ?> <span class="required">*</span></label>
|
20 |
+
<input name="fname" value="<?php echo $this->htmlEscape($this->getUserName()) ?>" title="<?php echo $this->__('Name') ?>" id="fname" type="text" class="input-text required-entry" />
|
21 |
+
</li>
|
22 |
+
<li>
|
23 |
+
<label for="email"><?php echo $this->__('Your E-mail:') ?> <span class="required">*</span></label>
|
24 |
+
<input name="email" value="<?php echo $this->htmlEscape($this->getEmail()) ?>" title="<?php echo $this->__('Email Address') ?>" id="email" type="text" class="input-text required-entry validate-email" />
|
25 |
+
</li>
|
26 |
+
<li>
|
27 |
+
<label for="heard_about_us"><?php echo $this->__('Where did you hear about us?') ?></label>
|
28 |
+
<input name="heard_about_us" value="" title="<?php echo $this->__('Email Address') ?>" id="heard_about_us" type="text" class="input-text" />
|
29 |
+
</li>
|
30 |
+
<li>
|
31 |
+
<label for="details"><?php echo $this->__('Details:') ?> <span class="required">*</span></label>
|
32 |
+
<textarea id="details" class="input-text required-entry" name="details" rows="10" col="50"></textarea>
|
33 |
+
</li>
|
34 |
+
<li>
|
35 |
+
<button id="btnsubmit" name="btnsubmit" type="button" class="button-feedback">
|
36 |
+
<span><span><?php echo $this->__('Submit') ?></span></span></button>
|
37 |
+
</li>
|
38 |
+
</ul>
|
39 |
+
</form>
|
40 |
+
<script type="text/javascript">
|
41 |
+
var feedbackform = new VarienForm('frm_feedback',true);
|
42 |
+
var feedback_form = new Validation($('frm_feedback'));
|
43 |
+
$("btnsubmit").observe("click",function(event) {
|
44 |
+
if(feedback_form && feedback_form.validate()){
|
45 |
+
var response_message = "Thank you for your comment, see ya!"
|
46 |
+
var url = "<?php echo $this->getUrl("feedback/index/post"); ?>";
|
47 |
+
$('loader').innerHTML="<p><img src='<?php echo $this->getSkinUrl('feedback/images/ajax-loader-onestep.gif') ?>' alt='' title=''/></p>";
|
48 |
+
$('loader').setStyle({display:"block"});
|
49 |
+
$('btnsubmit').setStyle('disabled:disabled');
|
50 |
+
new Ajax.Request(url, {
|
51 |
+
method: 'post',
|
52 |
+
onSuccess: function(transport) {
|
53 |
+
if(transport.status == 200) {
|
54 |
+
if(transport.responseText=='success'){
|
55 |
+
$('success_message').innerHTML='Your request has been sent';
|
56 |
+
$('success_message').removeClassName('feedback-error-msg');
|
57 |
+
$('success_message').addClassName('feedback-success-msg');
|
58 |
+
}
|
59 |
+
else{
|
60 |
+
$('success_message').innerHTML='Unable to submit your request.Please try again later.';
|
61 |
+
$('success_message').removeClassName('feedback-success-msg');
|
62 |
+
$('success_message').addClassName('feedback-error-msg');
|
63 |
+
}
|
64 |
+
$('loader').setStyle({display:"none"});
|
65 |
+
$('btnsubmit').setStyle('eabled:eabled');
|
66 |
+
$('success_message').show();
|
67 |
+
Effect.toggle('success_message', 'appear',{ duration: 5.0});
|
68 |
+
setTimeout(function (){
|
69 |
+
closeFeedbackWindow('feedback_information');
|
70 |
+
$('frm_feedback').reset();
|
71 |
+
},6000);
|
72 |
+
return false;
|
73 |
+
}
|
74 |
+
},
|
75 |
+
parameters: {
|
76 |
+
feedbackfname: $("fname").getValue(),
|
77 |
+
feedbackemail: $("email").getValue(),
|
78 |
+
feedbackmessage: $("heard_about_us").getValue(),
|
79 |
+
feedbackheard: $('details').getValue(),
|
80 |
+
oursiteurl: $("oursiteurl").getValue(),
|
81 |
+
rand: Math.random()
|
82 |
+
}
|
83 |
+
});
|
84 |
+
return false;
|
85 |
+
}}
|
86 |
+
);
|
87 |
+
</script>
|
88 |
+
<input type="hidden" id="popup_flg" value="0" />
|
89 |
+
<p id="popup_loader" style="display: none;"><img src="<?php echo $this->getSkinUrl('feedback/images/spinner1.gif') ?>" alt=""></p>
|
90 |
+
</div>
|
91 |
+
</div>
|
92 |
+
</div>
|
93 |
+
<?php } ?>
|
app/etc/modules/Bc_Feedback.xml
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
+
<modules>
|
12 |
+
<Bc_Feedback>
|
13 |
+
<active>true</active>
|
14 |
+
<codePool>local</codePool>
|
15 |
+
</Bc_Feedback>
|
16 |
+
</modules>
|
17 |
+
</config>
|
app/locale/en_US/template/email/feedback/feedback.html
ADDED
@@ -0,0 +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}}
|
package.xml
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<package>
|
3 |
+
<name>bc_feedback</name>
|
4 |
+
<version>1.0.0.1</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>Extension will provide interface to customer to send the feedback to the store owner.</summary>
|
10 |
+
<description><h1>Customer FeedBack</h1>
|
11 |
+

|
12 |
+
Extension will provide interface to customer to send the feedback to the store owner using feedback form.
|
13 |
+

|
14 |
+
Admin can set the Recipient Email and also can enable/disable the module.</description>
|
15 |
+
<notes>Display feedback form on frontend.</notes>
|
16 |
+
<authors><author><name>Biztech</name><user>biztechcon</user><email>sales@biztechconsultancy.com</email></author></authors>
|
17 |
+
<date>2012-07-03</date>
|
18 |
+
<time>14:14:29</time>
|
19 |
+
<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="4afcc73e0cb07cc3b766b3d52f93e0ed"/></dir><dir name="etc"><file name="config.xml" hash="2436d192b39c7783ca06de0b00e794c8"/><file name="system.xml" hash="cd9cf9d4665de7f7b19b91c0ad27f8b0"/></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="ajax-loader-onestep_.gif" hash="8504656b2b6addef1de8fa472a7599d9"/><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"/></dir><dir name="js"><file name="popup.js" hash="9826bcfb3af1fa8b716789ba1f00ae73"/></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="4f21b2329fee353a6ce3ddddd9fb1c1f"/></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="18c1871ae41fb65eb7452c8b69f4fd5a"/></dir></dir><dir name="layout"><file name="feedback.xml" hash="32a183a464fce0a65d8169cf80317916"/></dir></dir></dir></dir></target></contents>
|
20 |
+
<compatible/>
|
21 |
+
<dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
|
22 |
+
</package>
|
skin/frontend/base/default/feedback/css/popup.css
ADDED
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.side-feedback{ border:none; left: 0px; padding: 0px; position: fixed; top: 315px; width: 40px; height:117px; z-index:9;}
|
2 |
+
.side-feedback a{ height:100%; width:100%; float:left;background:url(../images/feedbacktab.png) no-repeat -10px 0; z-index:200;}
|
3 |
+
.side-feedback a:hover{ height:100%; width:100%; float:left;background:url(../images/feedbacktab.png) no-repeat -6px 0; z-index:200;}
|
4 |
+
|
5 |
+
.background-opacity { background: none repeat scroll 0 0 #000000; border: 1px solid #CECECE; display: none; height: 100%; left: 0; opacity: 0.7; position: fixed; top: 0; width: 100%; z-index: 9999;}
|
6 |
+
.feedback_close {color: #000000; float: right; font: bold 20px arial; margin: 10px 10px 0 0; text-decoration: none;}
|
7 |
+
.feedback-container {border: 3px solid #CCCCCC !important; -webkit-border-radius: 15px; -moz-border-radius: 15px; border-radius: 15px; height: auto !important; left: 38% !important; max-width: 650px !important; min-height: 246px; padding: 20px !important;text-align: left; top: 55px !important; width: 400px; z-index: 9999; background:#fff; padding:25px; position:absolute;}
|
8 |
+
.feedback_close { background: url("../images/closebox.png") no-repeat scroll 0 0 transparent; height: 30px; position: absolute; right: -23px; top: -26px; width: 30px;}
|
9 |
+
.feedback-content .form-list .required { color: #EB340A;}
|
10 |
+
|
11 |
+
.feedback-popup-content{float:left; width:370px; background: none; padding:0px;}
|
12 |
+
.feedback-title{ background: none repeat scroll 0 0 #E0E0E0; border: 1px solid #D1D1D1; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; color: #E11E26; font-size: 12px; font-weight: bold; left: 22px;
|
13 |
+
padding: 5px 0; position: relative; text-align: center; top: 14px; width: 93px;}
|
14 |
+
.feedback-content {background: none repeat scroll 0 0 #FFFFFF; border: 1px solid #DDDDDD; -webkit-border-radius: 15px; -moz-border-radius: 15px; border-radius: 15px; float: left; padding: 32px 20px 20px; width: 358px;}
|
15 |
+
.feedback-content .form-list li label{ font-weight:bold; float:left; width:100%;}
|
16 |
+
.feedback-content .form-list li input.input-text{ padding:4px 5px; background:url("../images/general-input-bg.jpg") repeat-x scroll 0 0 #fff; height:20px; width:300px; float: left;}
|
17 |
+
.feedback-content .form-list li textarea{width:300px; float: left;}
|
18 |
+
.feedback-content .form-list li button.button{margin-top:10px;}
|
19 |
+
.feedback-content input, .feedback-content select, .feedback-content textarea, .feedback-content button { font:12px/15px Arial, Helvetica, sans-serif; vertical-align:middle; color:#343434; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px;}
|
20 |
+
.feedback-content input.input-text, .feedback-content select, .feedback-content textarea { background:#fff; border:1px solid #d1d1d1; }
|
21 |
+
.feedback-content input.input-text, .feedback-content textarea { padding:2px; }
|
22 |
+
.feedback-content input.input-text{ background:url(../images/general-input-bg.jpg) repeat-x; height:24px; line-height:24px; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px;}
|
23 |
+
.feedback-content .form-list label {
|
24 |
+
color: #343434;
|
25 |
+
float: left;
|
26 |
+
font-weight: normal;
|
27 |
+
margin-bottom: 5px;
|
28 |
+
position: relative;
|
29 |
+
z-index: 0;
|
30 |
+
}
|
31 |
+
.feedback-content form {
|
32 |
+
display: inline;
|
33 |
+
}
|
34 |
+
.feedback-content .form-list li p:after {
|
35 |
+
clear: both;
|
36 |
+
content: ".";
|
37 |
+
display: inline !important;
|
38 |
+
font-size: 0;
|
39 |
+
height: 0;
|
40 |
+
line-height: 0;
|
41 |
+
overflow: hidden;
|
42 |
+
}
|
43 |
+
.feedback-content ul, ol {
|
44 |
+
list-style: none outside none;
|
45 |
+
}
|
46 |
+
.feedback-content input.input-text:focus, .feedback-content select:focus, .feedback-content textarea:focus { border:1px solid #e11e26; }
|
47 |
+
|
48 |
+
|
49 |
+
|
50 |
+
.button-feedback { overflow:visible; width:auto; border:0; padding:0; margin:0; background:transparent; cursor:pointer; height:auto; *height:40px !important; margin-top: 10px; position: relative; left: -13px;;}
|
51 |
+
.button-feedback span { float:left; height:30px; background:transparent url(../images/general-btn.gif) 0 0 no-repeat; padding:0 0 0 3px; font:bold 11px/30px Arial, Helvetica, sans-serif; text-transform:uppercase; text-align:center; white-space:nowrap; color:#fff; }
|
52 |
+
.button-feedback span span { background-position:100% 0; padding:0 30px 0 8px; }
|
53 |
+
.feedback-content button.disabled span { border-color:#bbb !important; background:#bbb !important; }
|
54 |
+
.feedback-content .feedback-success-msg, .feedback-content .feedback-error-msg {
|
55 |
+
background-position: 10px 9px !important;
|
56 |
+
background-repeat: no-repeat !important;
|
57 |
+
border-style: solid !important;
|
58 |
+
border-width: 1px !important;
|
59 |
+
font-size: 11px !important;
|
60 |
+
font-weight: bold !important;
|
61 |
+
min-height: 24px !important;
|
62 |
+
padding: 8px 8px 8px 32px !important;
|
63 |
+
}
|
64 |
+
.feedback-content .feedback-error-msg {
|
65 |
+
background-color: #FAEBE7;
|
66 |
+
background-image: url("../images/i_msg-error.gif");
|
67 |
+
border-color: #F16048;
|
68 |
+
color: #DF280A;
|
69 |
+
}
|
70 |
+
.feedback-content .feedback-success-msg
|
71 |
+
{
|
72 |
+
background-color: #EFF5EA !important;
|
73 |
+
background-image: url("../images/i_msg-success.gif") !important;
|
74 |
+
border-color: #446423;
|
75 |
+
color: #3D6611;
|
76 |
+
}
|
77 |
+
.feedback-content .form-list li {
|
78 |
+
margin: 0 0 8px;
|
79 |
+
}
|
skin/frontend/base/default/feedback/images/Thumbs.db
ADDED
Binary file
|
skin/frontend/base/default/feedback/images/ajax-loader-onestep.gif
ADDED
Binary file
|
skin/frontend/base/default/feedback/images/ajax-loader-onestep_.gif
ADDED
Binary file
|
skin/frontend/base/default/feedback/images/closebox.png
ADDED
Binary file
|
skin/frontend/base/default/feedback/images/feedbacktab.png
ADDED
Binary file
|
skin/frontend/base/default/feedback/images/general-btn.gif
ADDED
Binary file
|
skin/frontend/base/default/feedback/images/general-input-bg.jpg
ADDED
Binary file
|
skin/frontend/base/default/feedback/images/spinner1.gif
ADDED
Binary file
|
skin/frontend/base/default/feedback/js/popup.js
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
function openFeedbackWindow(ele,upd_ele,id)
|
2 |
+
{
|
3 |
+
Effect.Appear(ele);
|
4 |
+
var back1 = document.getElementById ('backgroundpopup');
|
5 |
+
back1.style.display = "block";
|
6 |
+
}
|
7 |
+
function closeFeedbackWindow(ele1){
|
8 |
+
var val1=document.getElementById(ele1);
|
9 |
+
var background=document.getElementById('backgroundpopup');
|
10 |
+
Effect.Fade(val1);
|
11 |
+
Effect.Fade(background);
|
12 |
+
$$('div.error-massage').each(function(ele){
|
13 |
+
ele.hide();
|
14 |
+
});
|
15 |
+
}
|