bc_feedback - Version 1.0.0.3

Version Notes

- Feedback module activation control from admin panel
- Email configuration for recipients of customer feedback email
- Pop up display for feedback form

- Solved the issue of access denied for magento versions 1.4

Download this release

Release Info

Developer Magento Core Team
Extension bc_feedback
Version 1.0.0.3
Comparing to
See all releases


Code changes from version 1.0.0.2 to 1.0.0.3

app/code/local/Bc/Feedback/controllers/IndexController.php CHANGED
@@ -13,7 +13,7 @@ class Bc_Feedback_IndexController extends Mage_Core_Controller_Front_Action
13
  }
14
 
15
  public function postAction(){
16
- {
17
  $post = $this->getRequest()->getPost();
18
  if ($post) {
19
  $translate = Mage::getSingleton('core/translate');
@@ -37,13 +37,13 @@ class Bc_Feedback_IndexController extends Mage_Core_Controller_Front_Action
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(
@@ -57,24 +57,38 @@ class Bc_Feedback_IndexController extends Mage_Core_Controller_Front_Action
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
  }
13
  }
14
 
15
  public function postAction(){
16
+ {
17
  $post = $this->getRequest()->getPost();
18
  if ($post) {
19
  $translate = Mage::getSingleton('core/translate');
37
  $error = true;
38
  }
39
  }
40
+
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(
57
  )
58
  );
59
  if (!$mailTemplate->getSentSuccess()) {
60
+ throw new Exception($e);
61
  }
 
62
  $translate->setTranslateInline(true);
63
+ $var1["result"]="success";
64
+ $var1["message"]='Your request has been sent';
65
+ $data=json_encode($var1);
66
+ $this->getResponse()->setBody($data);
67
+ return;
68
 
69
  } catch (Exception $e) {
70
+
71
+ $var1["result"]="error";
72
+ $message=$e->getMessage();
73
+ if($message==""){
74
+ $var1["message"]="Unable to submit your request. Please, try again later";
75
+ }else{
76
+ $var1["message"]=$message;
77
+ }
78
+ $data=json_encode($var1);
79
+ $this->getResponse()->setBody($data);
80
+ return;
81
  }
82
 
83
  }
84
  else {
85
+ $var1["result"]="error";
86
+ $var1["message"]="Unable to submit your request. Please, try again later";
87
+ $data=json_encode($var1);
88
+ $this->getResponse()->setBody($data);
89
+ return;
90
  }
91
  }
 
92
  }
93
 
94
  }
app/code/local/Bc/Feedback/etc/system.xml CHANGED
@@ -1,77 +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>
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
+ <biztech translate="label" module="feedback">
31
+ <label>Biztech Extensions</label>
32
+ <sort_order>900</sort_order>
33
+ </biztech>
34
+ </tabs>
35
+ <sections>
36
+ <feedback translate="label" module="feedback">
37
+ <class>separator-top</class>
38
+ <label>Feedback</label>
39
+ <tab>biztech</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/template/feedback/popup_html.phtml CHANGED
@@ -1,7 +1,14 @@
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">
@@ -10,18 +17,17 @@
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>
@@ -38,36 +44,35 @@
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
  }
@@ -75,10 +80,8 @@
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;
1
+ <?php
2
+ $config = Mage::getStoreConfig('feedback/feedback/active');
3
+ $customer=Mage::helper('customer');
4
+ if($customer->isLoggedIn()){
5
+ $name=Mage::getSingleton('customer/session')->getCustomer()->getName();
6
+ $email=Mage::getSingleton('customer/session')->getCustomer()->getEmail();
7
+ }
8
+ ?>
9
  <?php if($config=="1") { ?>
10
  <div class="side-feedback">
11
+ <a href="javascript:void(0)" onclick="openFeedbackWindow('feedback_information')" title="Feedback" id="link_feedback"></a>
12
  </div>
13
  <div id="backgroundpopup" class="background-opacity" style="display: none; background: none repeat scroll 0% 0% rgb(0, 0, 0);"></div>
14
  <div style="display: none;" id="feedback_information" class="feedback-container">
17
  <div class="feedback-title"> <?php echo $this->__('Feedback') ?> </div>
18
  <div class="feedback-content">
19
  <form action="<?php echo $this->getUrl("feedback/index/post") ?>" method="post" id="frm_feedback">
 
20
  <div id="success_message" style="display: none;" class="feedback-success-msg"></div>
21
+ <div id="loader" class="loader-feedback" style="text-align: center;display: none;"><p><img src='<?php echo $this->getSkinUrl('feedback/images/ajax-loader-onestep.gif') ?>' alt='' title=''/></p></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="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>
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
  }
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;
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>bc_feedback</name>
4
- <version>1.0.0.2</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
  <channel>community</channel>
@@ -20,9 +20,9 @@ Goto System &gt; configuration &gt; Biztech Extensions &gt; Feedback &gt; config
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-14</date>
24
- <time>09:59:51</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="4afcc73e0cb07cc3b766b3d52f93e0ed"/></dir><dir name="etc"><file name="adminhtml.xml" hash="b1654199bde32302ff359518686e4195"/><file name="config.xml" hash="2436d192b39c7783ca06de0b00e794c8"/><file name="system.xml" hash="cd9cf9d4665de7f7b19b91c0ad27f8b0"/></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="18c1871ae41fb65eb7452c8b69f4fd5a"/></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.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>
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>