customerattributes - Version 1.0.2

Version Notes

Fixed Minor Bugs

Download this release

Release Info

Developer Zestard
Extension customerattributes
Version 1.0.2
Comparing to
See all releases


Code changes from version 1.0.1 to 1.0.2

app/code/community/Zestard/Customerattribute/Block/Adminhtml/Customerattribute/Edit/Tab/Main.php CHANGED
@@ -61,6 +61,15 @@ class Zestard_Customerattribute_Block_Adminhtml_Customerattribute_Edit_Tab_Main
61
  'note' => Mage::helper('zestard_customerattribute')->__('Show on the Admin Manage Customers Add and Edit customer Page'),
62
  ));
63
 
 
 
 
 
 
 
 
 
 
64
  return $this;
65
  }
66
  }
61
  'note' => Mage::helper('zestard_customerattribute')->__('Show on the Admin Manage Customers Add and Edit customer Page'),
62
  ));
63
 
64
+ $fieldset->addField('checkout_register', 'checkbox', array(
65
+ 'name' => 'checkout_register',
66
+ 'checked' => in_array('checkout_register', $usedInForms) ? true : false,
67
+ 'value' => '1',
68
+ 'label' => Mage::helper('zestard_customerattribute')->__('Show on the Checkout Billing'),
69
+ 'title' => Mage::helper('zestard_customerattribute')->__('Show on the Checkout Billing'),
70
+ 'note' => Mage::helper('zestard_customerattribute')->__('Show on the Checkout Billing'),
71
+ ));
72
+
73
  return $this;
74
  }
75
  }
app/code/community/Zestard/Customerattribute/Helper/Customerattribute.php CHANGED
@@ -129,6 +129,16 @@ class Zestard_Customerattribute_Helper_Customerattribute extends Mage_Core_Helpe
129
  return false;
130
  }
131
 
 
 
 
 
 
 
 
 
 
 
132
  /**
133
  * Get store id
134
  *
129
  return false;
130
  }
131
 
132
+ public function isAttribureForCheckoutRegister($attributeCode)
133
+ {
134
+ $attribute = Mage::getSingleton('eav/config')->getAttribute('customer', $attributeCode);
135
+ $usedInForms = $attribute->getUsedInForms();
136
+ if (in_array('checkout_register', $usedInForms)) {
137
+ return true;
138
+ }
139
+ return false;
140
+ }
141
+
142
  /**
143
  * Get store id
144
  *
app/code/community/Zestard/Customerattribute/controllers/Adminhtml/CustomerattributeController.php CHANGED
@@ -169,15 +169,15 @@ class Zestard_Customerattribute_Adminhtml_CustomerattributeController extends Ma
169
  $data = $this->getRequest()->getPost();
170
  if ($data) {
171
  /** @var $session Mage_Admin_Model_Session */
172
- $session = Mage::getSingleton('adminhtml/session');
173
 
174
- $redirectBack = $this->getRequest()->getParam('back', false);
175
  /* @var $model Zestard_Customerattribute_Model_Customerattribute */
176
- $model = Mage::getModel('zestard_customerattribute/customerattribute');
177
  /* @var $helper Mage_Catalog_Helper_Product */
178
- $helper = Mage::helper('zestard_customerattribute/customerattribute');
179
 
180
- $id = $this->getRequest()->getParam('attribute_id');
181
 
182
  //validate attribute_code
183
  if (isset($data['attribute_code'])) {
@@ -191,7 +191,6 @@ class Zestard_Customerattribute_Adminhtml_CustomerattributeController extends Ma
191
  }
192
  }
193
 
194
-
195
  //validate frontend_input
196
  if (isset($data['frontend_input'])) {
197
  /** @var $validatorInputType Mage_Eav_Model_Adminhtml_System_Config_Source_Inputtype_Validator */
@@ -250,7 +249,64 @@ class Zestard_Customerattribute_Adminhtml_CustomerattributeController extends Ma
250
  $usedInForms[] = 'adminhtml_customer';
251
  }
252
 
253
- $data['used_in_forms'] = $usedInForms;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
254
 
255
  if (is_null($model->getIsUserDefined()) || $model->getIsUserDefined() != 0) {
256
  $data['backend_type'] = $model->getBackendTypeByInput($data['frontend_input']);
@@ -320,6 +376,14 @@ class Zestard_Customerattribute_Adminhtml_CustomerattributeController extends Ma
320
 
321
  try {
322
  $model->delete();
 
 
 
 
 
 
 
 
323
  Mage::getSingleton('adminhtml/session')->addSuccess(
324
  Mage::helper('zestard_customerattribute')->__('The customer attribute has been deleted.'));
325
  $this->_redirect('*/*/');
169
  $data = $this->getRequest()->getPost();
170
  if ($data) {
171
  /** @var $session Mage_Admin_Model_Session */
172
+ $session = Mage::getSingleton('adminhtml/session');
173
 
174
+ $redirectBack = $this->getRequest()->getParam('back', false);
175
  /* @var $model Zestard_Customerattribute_Model_Customerattribute */
176
+ $model = Mage::getModel('zestard_customerattribute/customerattribute');
177
  /* @var $helper Mage_Catalog_Helper_Product */
178
+ $helper = Mage::helper('zestard_customerattribute/customerattribute');
179
 
180
+ $id = $this->getRequest()->getParam('attribute_id');
181
 
182
  //validate attribute_code
183
  if (isset($data['attribute_code'])) {
191
  }
192
  }
193
 
 
194
  //validate frontend_input
195
  if (isset($data['frontend_input'])) {
196
  /** @var $validatorInputType Mage_Eav_Model_Adminhtml_System_Config_Source_Inputtype_Validator */
249
  $usedInForms[] = 'adminhtml_customer';
250
  }
251
 
252
+ if (isset($data['checkout_register'])&& $data['checkout_register'] == 1) {
253
+ $usedInForms[] = 'checkout_register';
254
+ }
255
+
256
+ if(in_array('checkout_register', $usedInForms)) {
257
+ $xmlPath = Mage::getBaseDir().DS.'app'.DS.'code'.DS.'community'.DS.'Zestard'.DS.'Customerattribute'.DS.'etc'.DS.'config.xml';
258
+ $xmlObj = new Varien_Simplexml_Config($xmlPath);
259
+ $att = $data['attribute_code'];
260
+ $xmlObj->setNode('global/fieldsets/checkout_onepage_quote/customer_'.$att.'/to_customer',$att);
261
+ $xmlObj->setNode('global/fieldsets/customer_account/'.$att.'/to_quote','customer_'.$att);
262
+ $xmlData = $xmlObj->getNode()->asNiceXml();
263
+ @file_put_contents($xmlPath, $xmlData);
264
+ } else if ($id != '' && !in_array('checkout_register', $usedInForms)) {
265
+ $modelCloned = $model;
266
+ $modelCloned->load($id);
267
+ $xmlPath = Mage::getBaseDir().DS.'app'.DS.'code'.DS.'community'.DS.'Zestard'.DS.'Customerattribute'.DS.'etc'.DS.'config.xml';
268
+ $xmlObj = new Varien_Simplexml_Config($xmlPath);
269
+ $att = $modelCloned->getAttributeCode();
270
+ $xmlObj->setNode('global/fieldsets/checkout_onepage_quote/customer_'.$att,NULL);
271
+ $xmlObj->setNode('global/fieldsets/customer_account/'.$att,NULL);
272
+ $xmlData = $xmlObj->getNode()->asNiceXml();
273
+ @file_put_contents($xmlPath, $xmlData);
274
+ }
275
+
276
+
277
+ /*$usedInForms[] = 'checkout_register';
278
+ $usedInForms[] = 'customer_register_address';
279
+ $usedInForms[] = 'checkout_index_index';
280
+ $usedInForms[] = 'customer_address_edit';
281
+ $usedInForms[] = 'adminhtml_customer_address';*/
282
+ $data['used_in_forms'] = $usedInForms;
283
+ $resource = Mage::getSingleton('core/resource');
284
+
285
+ /**
286
+ * Retrieve the write connection
287
+ */
288
+ $writeConnection = $resource->getConnection('core_write');
289
+
290
+ /**
291
+ * Retrieve our table name
292
+ */
293
+ $table = $resource->getTableName('sales/quote');
294
+ $attributeDataType = ($data['frontend_input'] == 'date' ? 'date' : 'varchar(255)');
295
+ /**
296
+ * Set the new SKU
297
+ * It is assumed that you are hard coding the new SKU in
298
+ * If the input is not dynamic, consider using the
299
+ * Varien_Db_Select object to insert data
300
+ */
301
+
302
+ $query = "ALTER TABLE `{$table}` ADD `customer_".$data['attribute_code']."` ".$attributeDataType." NOT NULL";
303
+
304
+ $ColumnName = "customer_".$data['attribute_code']."";
305
+ $collection1 = Mage::getModel('sales/quote')->getCollection();
306
+ if (!array_key_exists($ColumnName,$collection1->getFirstitem()->getData()))
307
+ {
308
+ $writeConnection->query($query);
309
+ }
310
 
311
  if (is_null($model->getIsUserDefined()) || $model->getIsUserDefined() != 0) {
312
  $data['backend_type'] = $model->getBackendTypeByInput($data['frontend_input']);
376
 
377
  try {
378
  $model->delete();
379
+ $xmlPath = Mage::getBaseDir().DS.'app'.DS.'code'.DS.'community'.DS.'Zestard'.DS.'Customerattribute'.DS.'etc'.DS.'config.xml';
380
+ $xmlObj = new Varien_Simplexml_Config($xmlPath);
381
+ $att = $model->getAttributeCode();
382
+ $xmlObj->setNode('global/fieldsets/checkout_onepage_quote/customer_'.$att,NULL);
383
+ $xmlObj->setNode('global/fieldsets/customer_account/'.$att,NULL);
384
+ $xmlData = $xmlObj->getNode()->asNiceXml();
385
+ @file_put_contents($xmlPath, $xmlData);
386
+
387
  Mage::getSingleton('adminhtml/session')->addSuccess(
388
  Mage::helper('zestard_customerattribute')->__('The customer attribute has been deleted.'));
389
  $this->_redirect('*/*/');
app/code/community/Zestard/Customerattribute/etc/adminhtml.xml CHANGED
@@ -46,17 +46,6 @@
46
  </customer_attribute>
47
  </children>
48
  </customer>
49
- <system>
50
- <children>
51
- <config>
52
- <children>
53
- <zestard>
54
- <title>Zestard Extension</title>
55
- </zestard>
56
- </children>
57
- </config>
58
- </children>
59
- </system>
60
  </children>
61
  </admin>
62
  </resources>
46
  </customer_attribute>
47
  </children>
48
  </customer>
 
 
 
 
 
 
 
 
 
 
 
49
  </children>
50
  </admin>
51
  </resources>
app/code/community/Zestard/Customerattribute/etc/config.xml CHANGED
@@ -1,100 +1,91 @@
1
- <?xml version="1.0"?>
2
- <!--
3
- /**
4
- * Configuration file
5
- *
6
- * @category Mage
7
- * @package Zestard_Customerattribute
8
- * @author Zestard Magento Team
9
- */
10
- -->
11
  <config>
12
- <modules>
13
- <Zestard_Customerattribute>
14
- <version>0.1.0</version>
15
- </Zestard_Customerattribute>
16
- </modules>
17
-
18
- <global>
19
- <models>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  <zestard_customerattribute>
21
- <class>Zestard_Customerattribute_Model</class>
22
  </zestard_customerattribute>
23
- </models>
24
- <helpers>
 
 
25
  <zestard_customerattribute>
26
- <class>Zestard_Customerattribute_Helper</class>
 
 
27
  </zestard_customerattribute>
28
- </helpers>
29
- <blocks>
 
 
 
 
30
  <zestard_customerattribute>
31
- <class>Zestard_Customerattribute_Block</class>
32
  </zestard_customerattribute>
33
- </blocks>
34
- </global>
35
-
36
- <frontend>
37
- <layout>
38
- <updates>
39
- <zestard_customerattribute>
40
- <file>zestard_customerattribute.xml</file>
41
- </zestard_customerattribute>
42
- </updates>
43
- </layout>
44
- <translate>
45
- <modules>
46
- <zestard_customerattribute>
47
- <files>
48
- <default>Zestard_Customerattribute.csv</default>
49
- </files>
50
- </zestard_customerattribute>
51
- </modules>
52
- </translate>
53
- </frontend>
54
-
55
- <adminhtml>
56
- <layout>
57
- <updates>
58
- <zestard_customerattribute>
59
- <file>zestard_customerattribute.xml</file>
60
- </zestard_customerattribute>
61
- </updates>
62
- </layout>
63
- <translate>
64
- <modules>
65
- <zestard_customerattribute>
66
- <files>
67
- <default>zestard_customerattribute.csv</default>
68
- </files>
69
- </zestard_customerattribute>
70
- </modules>
71
- </translate>
72
- </adminhtml>
73
-
74
- <admin>
75
- <routers>
76
- <adminhtml>
77
- <args>
78
- <modules>
79
- <zestard_customerattribute after="Mage_Adminhtml">Zestard_Customerattribute_Adminhtml</zestard_customerattribute>
80
- </modules>
81
- </args>
82
- </adminhtml>
83
- </routers>
84
- </admin>
85
- <!-- Zestard_Customerattribute_Adminhtml indicates the path of the admin controller-->
86
- <default>
87
- <general>
88
- <validator_data>
89
- <input_types>
90
- <text>text</text>
91
- <textarea>textarea</textarea>
92
- <date>date</date>
93
- <boolean>boolean</boolean>
94
- <multiselect>multiselect</multiselect>
95
- <select>select</select>
96
- </input_types>
97
- </validator_data>
98
- </general>
99
- </default>
100
- </config>
 
 
 
 
 
 
 
 
 
 
1
  <config>
2
+ <modules>
3
+ <Zestard_Customerattribute>
4
+ <version>1.0.2</version>
5
+ </Zestard_Customerattribute>
6
+ </modules>
7
+ <global>
8
+ <models>
9
+ <zestard_customerattribute>
10
+ <class>Zestard_Customerattribute_Model</class>
11
+ </zestard_customerattribute>
12
+ </models>
13
+ <helpers>
14
+ <zestard_customerattribute>
15
+ <class>Zestard_Customerattribute_Helper</class>
16
+ </zestard_customerattribute>
17
+ </helpers>
18
+ <blocks>
19
+ <zestard_customerattribute>
20
+ <class>Zestard_Customerattribute_Block</class>
21
+ </zestard_customerattribute>
22
+ </blocks>
23
+ <fieldsets>
24
+ <checkout_onepage_quote>
25
+ </checkout_onepage_quote>
26
+ <customer_account>
27
+ </customer_account>
28
+ </fieldsets>
29
+ </global>
30
+ <frontend>
31
+ <layout>
32
+ <updates>
33
  <zestard_customerattribute>
34
+ <file>zestard_customerattribute.xml</file>
35
  </zestard_customerattribute>
36
+ </updates>
37
+ </layout>
38
+ <translate>
39
+ <modules>
40
  <zestard_customerattribute>
41
+ <files>
42
+ <default>Zestard_Customerattribute.csv</default>
43
+ </files>
44
  </zestard_customerattribute>
45
+ </modules>
46
+ </translate>
47
+ </frontend>
48
+ <adminhtml>
49
+ <layout>
50
+ <updates>
51
  <zestard_customerattribute>
52
+ <file>zestard_customerattribute.xml</file>
53
  </zestard_customerattribute>
54
+ </updates>
55
+ </layout>
56
+ <translate>
57
+ <modules>
58
+ <zestard_customerattribute>
59
+ <files>
60
+ <default>zestard_customerattribute.csv</default>
61
+ </files>
62
+ </zestard_customerattribute>
63
+ </modules>
64
+ </translate>
65
+ </adminhtml>
66
+ <admin>
67
+ <routers>
68
+ <adminhtml>
69
+ <args>
70
+ <modules>
71
+ <zestard_customerattribute after="Mage_Adminhtml">Zestard_Customerattribute_Adminhtml</zestard_customerattribute>
72
+ </modules>
73
+ </args>
74
+ </adminhtml>
75
+ </routers>
76
+ </admin>
77
+ <default>
78
+ <general>
79
+ <validator_data>
80
+ <input_types>
81
+ <text>text</text>
82
+ <textarea>textarea</textarea>
83
+ <date>date</date>
84
+ <boolean>boolean</boolean>
85
+ <multiselect>multiselect</multiselect>
86
+ <select>select</select>
87
+ </input_types>
88
+ </validator_data>
89
+ </general>
90
+ </default>
91
+ </config>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Zestard/Customerattribute/etc/system.xml DELETED
@@ -1,38 +0,0 @@
1
- <?xml version="1.0"?>
2
- <config>
3
- <tabs>
4
- <zestard translate="label" module="zestard_customerattribute">
5
- <label>Customer Attribute</label>
6
- <sort_order>100</sort_order>
7
- </zestard>
8
- </tabs>
9
- <sections>
10
- <customerattribute_logo translate="label" module="zestard_customerattribute">
11
- <label>
12
- <![CDATA[
13
- <div style="position: absolute;width: 220px;display: inline-block;">
14
- <a style="text-align:left;padding-left: 15px;" onclick="redirectSite(event,this)"><img id="zestard_block" src="" alt="" style="height:24px" border="0"/></a>
15
- </div>&nbsp;
16
- <script>
17
- function redirectSite(event,obj){
18
- event.preventDefault();
19
- event.stopPropagation();
20
- window.open("http://www.zestard.com/", '_blank');
21
- }
22
- document.observe('dom:loaded', function() {
23
- var n = SKIN_URL.indexOf("adminhtml");
24
- $('zestard_block').src = SKIN_URL.substring(0, n) + "adminhtml/default/default/images/customerattribute/zestard-logo.png";
25
-
26
- });
27
- </script>
28
- ]]>
29
- </label>
30
- <tab>zestard</tab>
31
- <sort_order>1000</sort_order>
32
- <show_in_default>1</show_in_default>
33
- <show_in_website>1</show_in_website>
34
- <show_in_store>1</show_in_store>
35
- <class>zestard-logo-config</class>
36
- </customerattribute_logo>
37
- </sections>
38
- </config>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/design/frontend/base/default/layout/zestard_customerattribute.xml CHANGED
@@ -41,4 +41,11 @@
41
  <block type="core/html_calendar" name="html_calendar" as="html_calendar" template="page/js/calendar.phtml"/>
42
  </reference>
43
  </customer_account_edit>
 
 
 
 
 
 
 
44
  </layout>
41
  <block type="core/html_calendar" name="html_calendar" as="html_calendar" template="page/js/calendar.phtml"/>
42
  </reference>
43
  </customer_account_edit>
44
+ <checkout_onepage_index>
45
+ <reference name="checkout.onepage.billing">
46
+ <action method="setTemplate">
47
+ <template>zestard/customerattribute/checkout/onepage/billing.phtml</template>
48
+ </action>
49
+ </reference>
50
+ </checkout_onepage_index>
51
  </layout>
app/design/frontend/base/default/template/zestard/customerattribute/checkout/onepage/billing.phtml ADDED
@@ -0,0 +1,298 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package base_default
23
+ * @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ /** @var Mage_Checkout_Block_Onepage_Billing $this */
27
+ ?>
28
+ <form id="co-billing-form" action="">
29
+ <fieldset>
30
+ <ul class="form-list">
31
+ <?php if ($this->customerHasAddresses()): ?>
32
+ <li class="wide">
33
+ <label for="billing-address-select"><?php echo $this->__('Select a billing address from your address book or enter a new address.') ?></label>
34
+ <div class="input-box">
35
+ <?php echo $this->getAddressesHtmlSelect('billing') ?>
36
+ </div>
37
+ </li>
38
+ <?php endif; ?>
39
+ <li id="billing-new-address-form"<?php if ($this->customerHasAddresses()): ?> style="display:none;"<?php endif; ?>>
40
+ <fieldset>
41
+ <input type="hidden" name="billing[address_id]" value="<?php echo $this->getAddress()->getId() ?>" id="billing:address_id" />
42
+ <ul>
43
+ <li class="fields"><?php echo $this->getLayout()->createBlock('customer/widget_name')->setObject($this->getAddress()->getFirstname() ? $this->getAddress() : $this->getQuote()->getCustomer())->setForceUseCustomerRequiredAttributes(!$this->isCustomerLoggedIn())->setFieldIdFormat('billing:%s')->setFieldNameFormat('billing[%s]')->toHtml() ?></li>
44
+ <li class="fields">
45
+ <div class="field">
46
+ <label for="billing:company"><?php echo $this->__('Company') ?></label>
47
+ <div class="input-box">
48
+ <input type="text" id="billing:company" name="billing[company]" value="<?php echo $this->escapeHtml($this->getAddress()->getCompany()) ?>" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Company')) ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('company') ?>" />
49
+ </div>
50
+ </div>
51
+ <?php if(!$this->isCustomerLoggedIn()): ?>
52
+ <div class="field">
53
+ <label for="billing:email" class="required"><em>*</em><?php echo $this->__('Email Address') ?></label>
54
+ <div class="input-box">
55
+ <input type="text" name="billing[email]" id="billing:email" value="<?php echo $this->escapeHtml($this->getAddress()->getEmail()) ?>" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Email Address')) ?>" class="input-text validate-email required-entry" />
56
+ </div>
57
+ </div>
58
+ <?php endif; ?>
59
+ </li>
60
+ <?php $_streetValidationClass = $this->helper('customer/address')->getAttributeValidationClass('street'); ?>
61
+ <li class="wide">
62
+ <label for="billing:street1" class="required"><em>*</em><?php echo $this->__('Address') ?></label>
63
+ <div class="input-box">
64
+ <input type="text" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Street Address')) ?>" name="billing[street][]" id="billing:street1" value="<?php echo $this->escapeHtml($this->getAddress()->getStreet(1)) ?>" class="input-text <?php echo $_streetValidationClass ?>" />
65
+ </div>
66
+ </li>
67
+ <?php $_streetValidationClass = trim(str_replace('required-entry', '', $_streetValidationClass)); ?>
68
+ <?php for ($_i = 2, $_n = $this->helper('customer/address')->getStreetLines(); $_i <= $_n; $_i++): ?>
69
+ <li class="wide">
70
+ <div class="input-box">
71
+ <input type="text" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Street Address %s', $_i)) ?>" name="billing[street][]" id="billing:street<?php echo $_i ?>" value="<?php echo $this->escapeHtml($this->getAddress()->getStreet($_i)) ?>" class="input-text <?php echo $_streetValidationClass ?>" />
72
+ </div>
73
+ </li>
74
+ <?php endfor; ?>
75
+ <?php if ($this->helper('customer/address')->isVatAttributeVisible()) : ?>
76
+ <li class="wide">
77
+ <label for="billing:vat_id"><?php echo $this->__('VAT Number') ?></label>
78
+ <div class="input-box">
79
+ <input type="text" id="billing:vat_id" name="billing[vat_id]" value="<?php echo $this->escapeHtml($this->getAddress()->getVatId()) ?>" title="<?php echo Mage::helper('core')->quoteEscape($this->__('VAT Number')) ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('vat_id') ?>" />
80
+ </div>
81
+ </li>
82
+ <?php endif; ?>
83
+ <li class="fields">
84
+ <div class="field">
85
+ <label for="billing:city" class="required"><em>*</em><?php echo $this->__('City') ?></label>
86
+ <div class="input-box">
87
+ <input type="text" title="<?php echo Mage::helper('core')->quoteEscape($this->__('City')) ?>" name="billing[city]" value="<?php echo $this->escapeHtml($this->getAddress()->getCity()) ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('city') ?>" id="billing:city" />
88
+ </div>
89
+ </div>
90
+ <div class="field">
91
+ <label for="billing:region_id" class="required"><em>*</em><?php echo $this->__('State/Province') ?></label>
92
+ <div class="input-box">
93
+ <select id="billing:region_id" name="billing[region_id]" title="<?php echo Mage::helper('core')->quoteEscape($this->__('State/Province')) ?>" class="validate-select" style="display:none;">
94
+ <option value=""><?php echo $this->__('Please select region, state or province') ?></option>
95
+ </select>
96
+ <script type="text/javascript">
97
+ //<![CDATA[
98
+ $('billing:region_id').setAttribute('defaultValue', "<?php echo $this->getAddress()->getRegionId() ?>");
99
+ //]]>
100
+ </script>
101
+ <input type="text" id="billing:region" name="billing[region]" value="<?php echo $this->escapeHtml($this->getAddress()->getRegion()) ?>" title="<?php echo Mage::helper('core')->quoteEscape($this->__('State/Province')) ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('region') ?>" style="display:none;" />
102
+ </div>
103
+ </div>
104
+ </li>
105
+ <li class="fields">
106
+ <div class="field">
107
+ <label for="billing:postcode" class="required"><em>*</em><?php echo $this->__('Zip/Postal Code') ?></label>
108
+ <div class="input-box">
109
+ <input type="text" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Zip/Postal Code')) ?>" name="billing[postcode]" id="billing:postcode" value="<?php echo $this->escapeHtml($this->getAddress()->getPostcode()) ?>" class="input-text validate-zip-international <?php echo $this->helper('customer/address')->getAttributeValidationClass('postcode') ?>" />
110
+ </div>
111
+ </div>
112
+ <div class="field">
113
+ <label for="billing:country_id" class="required"><em>*</em><?php echo $this->__('Country') ?></label>
114
+ <div class="input-box">
115
+ <?php echo $this->getCountryHtmlSelect('billing') ?>
116
+ </div>
117
+ </div>
118
+ </li>
119
+ <li class="fields">
120
+ <div class="field">
121
+ <label for="billing:telephone" class="required"><em>*</em><?php echo $this->__('Telephone') ?></label>
122
+ <div class="input-box">
123
+ <input type="text" name="billing[telephone]" value="<?php echo $this->escapeHtml($this->getAddress()->getTelephone()) ?>" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Telephone')) ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('telephone') ?>" id="billing:telephone" />
124
+ </div>
125
+ </div>
126
+ <div class="field">
127
+ <label for="billing:fax"><?php echo $this->__('Fax') ?></label>
128
+ <div class="input-box">
129
+ <input type="text" name="billing[fax]" value="<?php echo $this->escapeHtml($this->getAddress()->getFax()) ?>" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Fax')) ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('fax') ?>" id="billing:fax" />
130
+ </div>
131
+ </div>
132
+ </li>
133
+ <li>
134
+ <!-- custom attributes -->
135
+ <?php $attributeCollection = $this->helper('zestard_customerattribute/customerattribute')->getUserDefinedAttribures(); ?>
136
+ <?php foreach($attributeCollection as $attribute):?>
137
+ <!-- For all user defined attributes which are set for customer create account -->
138
+ <?php $isCheckoutPageAllowed = $this->helper('zestard_customerattribute/customerattribute')->isAttribureForCheckoutRegister($attribute->getAttributeCode());
139
+ ?>
140
+ <?php if($attribute->getIsUserDefined() == 1 && $isCheckoutPageAllowed == 1) :?>
141
+ <?php $frontEndLabel = $attribute->getStoreLabel($this->helper('zestard_customerattribute/customerattribute')->getStoreId()); ?>
142
+ <?php $getAttributeCodeFunction = "get" . str_replace(' ', '', ucwords(str_replace('_', ' ', $attribute->getAttributeCode()))); ?>
143
+ <?php $fieldRequiredClass = ($attribute->getIsRequired()) ? 'required-entry' : '' ?>
144
+ <?php $fieldFrontendClass = ($attribute->getFrontendClass()) ? $attribute->getFrontendClass() : '' ?>
145
+ <?php $fieldValue = ($this->getAddress()->$getAttributeCodeFunction()) ? ($this->getAddress()->$getAttributeCodeFunction()) : $attribute->getDefaultValue() ?>
146
+
147
+ <ul class="form-list">
148
+ <li class="fields">
149
+ <div class="field">
150
+ <label for="<?php echo $attribute->getAttributeCode(); ?>" <?php if($attribute->getIsRequired()):?>class="required"><em>*</em> <?php else :?>><?php endif;?><?php echo $this->__($frontEndLabel) ?></label>
151
+ <div class="input-box">
152
+ <?php if($attribute->getFrontendInput()== 'text'):?>
153
+ <input type="text" name="billing[<?php echo $attribute->getAttributeCode(); ?>]" id="<?php echo $attribute->getAttributeCode(); ?>" value="<?php echo $this->escapeHtml($fieldValue); ?>" title="<?php echo $this->__($frontEndLabel); ?>" class="input-text <?php echo $fieldRequiredClass; ?> <?php echo $fieldFrontendClass ;?>" />
154
+ <?php elseif($attribute->getFrontendInput()== 'textarea'):?>
155
+ <textarea class=" textarea <?php echo $fieldRequiredClass; ?> <?php echo $fieldFrontendClass ;?>" cols="15" rows="2" title="<?php echo $this->__($frontEndLabel); ?>" name="<?php echo $attribute->getAttributeCode(); ?>" id="<?php echo $attribute->getAttributeCode(); ?>"><?php echo $this->escapeHtml($fieldValue); ?></textarea>
156
+
157
+ <?php elseif($attribute->getFrontendInput()== 'date'):?>
158
+ <input type="text" style="width:110px !important;" class=" input-text <?php echo $fieldRequiredClass; ?> " title="<?php echo $this->__($frontEndLabel); ?>" value="<?php echo $this->helper('zestard_customerattribute/customerattribute')->getDefaultValueForDate($fieldValue);?>" id="<?php echo $attribute->getAttributeCode(); ?>" name="<?php echo $attribute->getAttributeCode(); ?>">
159
+ <img style="" title="Select Date" id="<?php echo $attribute->getAttributeCode(); ?>_trig" class="v-middle" alt="" src="<?php echo $this->getSkinUrl('images/zestard/customerattribute/grid-cal.gif') ?>">
160
+ <script type="text/javascript">
161
+ //&lt;![CDATA[
162
+ Calendar.setup({
163
+ inputField: "<?php echo $attribute->getAttributeCode(); ?>",
164
+ ifFormat: "%m-%d-%Y",
165
+ showsTime: false,
166
+ button: "<?php echo $attribute->getAttributeCode(); ?>_trig",
167
+ align: "Bl",
168
+ singleClick : true
169
+ });
170
+ //]]&gt;
171
+ </script>
172
+
173
+ <?php elseif($attribute->getFrontendInput()== 'boolean'):?>
174
+ <select id="<?php echo $attribute->getAttributeCode(); ?>" name="<?php echo $attribute->getAttributeCode(); ?>" title="<?php echo $this->__($frontEndLabel); ?>"<?php if ($attribute->getIsRequired()):?> class="validate-select required-entry "<?php endif; ?>>
175
+ <?php $options = Mage::getResourceSingleton('customer/customer')->getAttribute($attribute->getAttributeCode())->getSource()->getAllOptions();?>
176
+ <?php foreach ($options as $option):?>
177
+ <option value="<?php echo $option['value'] ?>"<?php if ($option['value'] == $fieldValue) echo ' selected="selected"' ?>><?php echo $option['label'] ?></option>
178
+ <?php endforeach;?>
179
+ </select>
180
+
181
+ <?php elseif($attribute->getFrontendInput()== 'select'):?>
182
+ <select id="<?php echo $attribute->getAttributeCode(); ?>" name="<?php echo $attribute->getAttributeCode(); ?>" title="<?php echo $this->__($frontEndLabel); ?>"<?php if ($attribute->getIsRequired()):?> class="validate-select required-entry "<?php endif; ?>>
183
+ <?php $options = Mage::getResourceSingleton('customer/customer')->getAttribute($attribute->getAttributeCode())->getSource()->getAllOptions();?>
184
+ <?php foreach ($options as $option):?>
185
+ <option value="<?php echo $option['value'] ?>"<?php if ($option['value'] == $fieldValue) echo ' selected="selected"' ?>><?php echo $option['label'] ?></option>
186
+ <?php endforeach;?>
187
+ </select>
188
+
189
+ <?php elseif($attribute->getFrontendInput()== 'multiselect'):?>
190
+ <select multiple="multiple" size="5" id="<?php echo $attribute->getAttributeCode(); ?>" name="<?php echo $attribute->getAttributeCode(); ?>[]" title="<?php echo $this->__($frontEndLabel); ?>" class=" multiselect <?php if ($attribute->getIsRequired()):?> validate-select required-entry<?php endif; ?> ">
191
+ <?php $options = Mage::getResourceSingleton('customer/customer')->getAttribute($attribute->getAttributeCode())->getSource()->getAllOptions();?>
192
+ <?php foreach ($options as $option):?>
193
+ <option value="<?php echo $option['value'] ?>"<?php if (in_array($option['value'], explode(',', $fieldValue))) echo ' selected="selected"' ?>><?php echo $option['label'] ?></option>
194
+ <?php endforeach;?>
195
+ </select>
196
+ <?php endif;?>
197
+ </div>
198
+ </div>
199
+ </li>
200
+ </ul>
201
+ <?php endif;?>
202
+ <?php ?>
203
+ <?php endforeach;?>
204
+ </li>
205
+ <?php if(!$this->isCustomerLoggedIn()): ?>
206
+
207
+ <?php $_dob = $this->getLayout()->createBlock('customer/widget_dob') ?>
208
+ <?php $_gender = $this->getLayout()->createBlock('customer/widget_gender') ?>
209
+ <?php if ($_dob->isEnabled() || $_gender->isEnabled()): ?>
210
+ <li class="fields">
211
+ <?php if ($_dob->isEnabled()): ?>
212
+ <div class="field">
213
+ <?php echo $_dob->setDate($this->getQuote()->getCustomerDob())->setFieldIdFormat('billing:%s')->setFieldNameFormat('billing[%s]')->toHtml() ?>
214
+ </div>
215
+ <?php endif; ?>
216
+ <?php if ($_gender->isEnabled()): ?>
217
+ <div class="field">
218
+ <?php echo $_gender->setGender($this->getQuote()->getCustomerGender())->setFieldIdFormat('billing:%s')->setFieldNameFormat('billing[%s]')->toHtml() ?>
219
+ </div>
220
+ <?php endif ?>
221
+ </li>
222
+ <?php endif ?>
223
+
224
+ <?php if ($this->isTaxvatEnabled()):?>
225
+ <li><?php echo $this->getTaxvatHtml() ?></li>
226
+ <?php endif; ?>
227
+
228
+ <li class="fields" id="register-customer-password">
229
+ <div class="field">
230
+ <label for="billing:customer_password" class="required"><em>*</em><?php echo $this->__('Password') ?></label>
231
+ <div class="input-box">
232
+ <input type="password" name="billing[customer_password]" id="billing:customer_password" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Password')) ?>" class="input-text required-entry validate-password" />
233
+ </div>
234
+ </div>
235
+ <div class="field">
236
+ <label for="billing:confirm_password" class="required"><em>*</em><?php echo $this->__('Confirm Password') ?></label>
237
+ <div class="input-box">
238
+ <input type="password" name="billing[confirm_password]" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Confirm Password')) ?>" id="billing:confirm_password" class="input-text required-entry validate-cpassword" />
239
+ </div>
240
+ </div>
241
+ </li>
242
+ <?php echo $this->getChildHtml('persistent.remember.me'); ?>
243
+ <?php endif; ?>
244
+ <?php if ($this->isCustomerLoggedIn() && $this->customerHasAddresses()):?>
245
+ <li class="control">
246
+ <input type="checkbox" name="billing[save_in_address_book]" value="1" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Save in address book')) ?>" id="billing:save_in_address_book" onchange="if(window.shipping) shipping.setSameAsBilling(false);"<?php if ($this->getAddress()->getSaveInAddressBook()):?> checked="checked"<?php endif;?> class="checkbox" /><label for="billing:save_in_address_book"><?php echo $this->__('Save in address book') ?></label>
247
+ </li>
248
+ <?php else:?>
249
+ <li class="no-display"><input type="hidden" name="billing[save_in_address_book]" value="1" /></li>
250
+ <?php endif; ?>
251
+ <?php echo $this->getChildHtml('form.additional.info'); ?>
252
+ </ul>
253
+ <?php echo $this->getChildHtml('persistent.remember.me.tooltip'); ?>
254
+ </fieldset>
255
+ </li>
256
+ <?php if ($this->canShip()): ?>
257
+ <li class="control">
258
+ <input type="radio" name="billing[use_for_shipping]" id="billing:use_for_shipping_yes" value="1"<?php if ($this->isUseBillingAddressForShipping()) {?> checked="checked"<?php }?> title="<?php echo Mage::helper('core')->quoteEscape($this->__('Ship to this address')) ?>" onclick="$('shipping:same_as_billing').checked = true;" class="radio" /><label for="billing:use_for_shipping_yes"><?php echo $this->__('Ship to this address') ?></label></li>
259
+ <li class="control">
260
+ <input type="radio" name="billing[use_for_shipping]" id="billing:use_for_shipping_no" value="0"<?php if (!$this->isUseBillingAddressForShipping()) {?> checked="checked"<?php }?> title="<?php echo Mage::helper('core')->quoteEscape($this->__('Ship to different address')) ?>" onclick="$('shipping:same_as_billing').checked = false;" class="radio" /><label for="billing:use_for_shipping_no"><?php echo $this->__('Ship to different address') ?></label>
261
+ </li>
262
+ <?php endif; ?>
263
+ </ul>
264
+ <?php if (!$this->canShip()): ?>
265
+ <input type="hidden" name="billing[use_for_shipping]" value="1" />
266
+ <?php endif; ?>
267
+ <div class="buttons-set" id="billing-buttons-container">
268
+ <p class="required"><?php echo $this->__('* Required Fields') ?></p>
269
+ <button type="button" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Continue')) ?>" class="button" onclick="billing.save()"><span><span><?php echo $this->__('Continue') ?></span></span></button>
270
+ <span class="please-wait" id="billing-please-wait" style="display:none;">
271
+ <img src="<?php echo $this->getSkinUrl('images/opc-ajax-loader.gif') ?>" alt="<?php echo Mage::helper('core')->quoteEscape($this->__('Loading next step...')) ?>" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Loading next step...')) ?>" class="v-middle" /> <?php echo $this->__('Loading next step...') ?>
272
+ </span>
273
+ </div>
274
+ </fieldset>
275
+ </form>
276
+ <script type="text/javascript">
277
+ //<![CDATA[
278
+ var billing = new Billing('co-billing-form', '<?php echo $this->getUrl('checkout/onepage/getAddress') ?>address/', '<?php echo $this->getUrl('checkout/onepage/saveBilling') ?>');
279
+ var billingForm = new VarienForm('co-billing-form');
280
+
281
+ //billingForm.setElementsRelation('billing:country_id', 'billing:region', '<?php echo $this->getUrl('directory/json/childRegion') ?>', '<?php echo Mage::helper('core')->jsQuoteEscape($this->__('Select State/Province...')) ?>');
282
+ $('billing-address-select') && billing.newAddress(!$('billing-address-select').value);
283
+
284
+ var billingRegionUpdater = new RegionUpdater('billing:country_id', 'billing:region', 'billing:region_id', <?php echo $this->helper('directory')->getRegionJson() ?>, undefined, 'billing:postcode');
285
+ if ($('onepage-guest-register-button')) {
286
+ Event.observe($('onepage-guest-register-button'), 'click', function(event) {
287
+ var billingRememberMe = $('co-billing-form').select('#remember-me-box');
288
+ if (billingRememberMe.length > 0) {
289
+ if ($('login:guest') && $('login:guest').checked) {
290
+ billingRememberMe[0].hide();
291
+ } else if ($('login:register') && ($('login:register').checked || $('login:register').type == 'hidden')) {
292
+ billingRememberMe[0].show();
293
+ }
294
+ }
295
+ });
296
+ }
297
+ //]]>
298
+ </script>
app/etc/modules/Zestard_Customerattribute.xml CHANGED
@@ -11,6 +11,9 @@
11
  <Zestard_Customerattribute>
12
  <active>true</active>
13
  <codePool>community</codePool>
 
 
 
14
  </Zestard_Customerattribute>
15
  </modules>
16
  </config>
11
  <Zestard_Customerattribute>
12
  <active>true</active>
13
  <codePool>community</codePool>
14
+ <depends>
15
+ <Mage_Checkout />
16
+ </depends>
17
  </Zestard_Customerattribute>
18
  </modules>
19
  </config>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>customerattributes</name>
4
- <version>1.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>
@@ -10,9 +10,9 @@
10
  <description>Customer Attributes Extension enables new attributes / fields for user account and registration form.</description>
11
  <notes>Fixed Minor Bugs</notes>
12
  <authors><author><name>Zestard</name><user>ZestardTech</user><email>support@zestard.com</email></author></authors>
13
- <date>2016-02-09</date>
14
- <time>08:11:22</time>
15
- <contents><target name="magecommunity"><dir name="Zestard"><dir name="Customerattribute"><dir name="Block"><dir name="Adminhtml"><dir name="Customerattribute"><dir name="Edit"><file name="Form.php" hash="0e5df55f204957f826ba6f1542d6e8f5"/><dir name="Main"><file name="Main.php" hash="4b35830b5d0d6ed9fc02db7071ba984f"/></dir><dir name="Tab"><file name="Main.php" hash="db2a5af35b9ee8d39ac0cba7621cbed4"/><file name="Options.php" hash="5135192c7f2b702852af3fe1ae9fc2c8"/></dir><file name="Tabs.php" hash="d6023d7e956decafeb04c56f0666988e"/></dir><file name="Edit.php" hash="b3f246bc7593c40553f76f9beddaa668"/><file name="Grid.php" hash="c1417d3f42174887587af34bac4e3a5a"/></dir><file name="Customerattribute.php" hash="6df15f8555dacef3f6cc6abf0f3bdef7"/></dir></dir><dir name="Helper"><file name="Customerattribute.php" hash="c720b896b175ad03e99ddd1ed00f567c"/><file name="Data.php" hash="6e894c0ad40f395c28fb5b3e07982d45"/></dir><dir name="Model"><file name="Customerattribute.php" hash="0564fc37e6f7d5f2c5231bce6bbc1058"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="CustomerattributeController.php" hash="75bbd96ae3585211369818baeb729cb2"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="1728163be18e6e4030c1e0e6693117aa"/><file name="config.xml" hash="fab318c2068b0654eb57dd49db570f3d"/><file name="system.xml" hash="c7ab3a10792599dceb589e9f69170ff1"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Zestard_Customerattribute.xml" hash="2a3b7e19557c6cea18ed7be60c74f400"/></dir></target><target name="magelocale"><dir name="en_US"><file name="Zestard_Customerattribute.csv" hash="a05ae84bc72da444a5addcaeddc87214"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="zestard_customerattribute.xml" hash="9de70754c0090431b17733b91229fb67"/></dir><dir name="template"><dir name="zestard_customerattribute"><dir name="attribute"><dir name="edit"><file name="js.phtml" hash="fff761885c2abceed7b877995f134ed3"/></dir><file name="js.phtml" hash="c9575f8311bfb04b82da374d0c18f3a9"/><file name="options.phtml" hash="59270f751fdf85875a9fb7d42b5e9fba"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="zestard_customerattribute.xml" hash="8a2cff0d6b9124a2572e399d890a5444"/></dir><dir name="template"><dir name="zestard"><dir name="customerattribute"><dir name="form"><file name="edit.phtml" hash="4f585c75c6fd261624524ff88ee5a5b4"/><file name="register.phtml" hash="523dbff5d4184a7bc7df684c34ca40b2"/></dir></dir></dir></dir></dir></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
18
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>customerattributes</name>
4
+ <version>1.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>
10
  <description>Customer Attributes Extension enables new attributes / fields for user account and registration form.</description>
11
  <notes>Fixed Minor Bugs</notes>
12
  <authors><author><name>Zestard</name><user>ZestardTech</user><email>support@zestard.com</email></author></authors>
13
+ <date>2016-05-09</date>
14
+ <time>13:43:39</time>
15
+ <contents><target name="magecommunity"><dir name="Zestard"><dir name="Customerattribute"><dir name="Block"><dir name="Adminhtml"><dir name="Customerattribute"><dir name="Edit"><file name="Form.php" hash="0e5df55f204957f826ba6f1542d6e8f5"/><dir name="Main"><file name="Main.php" hash="4b35830b5d0d6ed9fc02db7071ba984f"/></dir><dir name="Tab"><file name="Main.php" hash="ea31e80ad7f74bd72c4c66b9e904ce09"/><file name="Options.php" hash="5135192c7f2b702852af3fe1ae9fc2c8"/></dir><file name="Tabs.php" hash="d6023d7e956decafeb04c56f0666988e"/></dir><file name="Edit.php" hash="b3f246bc7593c40553f76f9beddaa668"/><file name="Grid.php" hash="c1417d3f42174887587af34bac4e3a5a"/></dir><file name="Customerattribute.php" hash="6df15f8555dacef3f6cc6abf0f3bdef7"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="CustomerattributeController.php" hash="310f2e8b20207b4b9136e6789cbc67ed"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="94034a09f8a083a49af79ac43103d065"/><file name="config.xml" hash="db3646321aadcd73cf8d9b46b4cfa4da"/></dir><dir name="Helper"><file name="Customerattribute.php" hash="ed31548ab01e55961f6fac11f23e71b8"/><file name="Data.php" hash="6e894c0ad40f395c28fb5b3e07982d45"/></dir><dir name="Model"><file name="Customerattribute.php" hash="0564fc37e6f7d5f2c5231bce6bbc1058"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Zestard_Customerattribute.xml" hash="066a819f703f18cea5927597da5a7ca0"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="zestard_customerattribute.xml" hash="9920a564cac2191ea38d7dd04d91b8ea"/></dir><dir name="template"><dir name="zestard"><dir name="customerattribute"><dir name="checkout"><dir name="onepage"><file name="billing.phtml" hash="c92d384f8fa322efe1108c9bd2a981b9"/><file name="billing.phtml" hash="c92d384f8fa322efe1108c9bd2a981b9"/></dir></dir><dir name="form"><file name="edit.phtml" hash="4f585c75c6fd261624524ff88ee5a5b4"/><file name="register.phtml" hash="523dbff5d4184a7bc7df684c34ca40b2"/></dir></dir></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="zestard_customerattribute.xml" hash="9de70754c0090431b17733b91229fb67"/></dir><dir name="template"><dir name="zestard_customerattribute"><dir name="attribute"><dir name="edit"><file name="js.phtml" hash="fff761885c2abceed7b877995f134ed3"/></dir><file name="js.phtml" hash="c9575f8311bfb04b82da374d0c18f3a9"/><file name="options.phtml" hash="59270f751fdf85875a9fb7d42b5e9fba"/></dir></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="Zestard_Customerattribute.csv" hash="a05ae84bc72da444a5addcaeddc87214"/></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
18
  </package>