Diglin_Username - Version 1.2.0

Version Notes

- Version 1.2.0: fix problem with case sensitive OS, limit the number of characters possible (now it's between 6 and 30 letters), allow only some characters, try to provide compatibility update for users who had the old Jfusion_Username module, generate a username for old customers who don't have it, based on email address and a random id, improve the german translation, tested on 1.6.2 and 1.5.1
- Version 1.1.0: change the module name from Jfusion_Customer to Diglin_Username, fix bugs with checkout frontend and backend and with old customers
- Version 1.0.2 - fix a bug with the installation
- Version 1.0.1 - fix bug in sql query during installation on prefixed tables, add german translation, do package for Magento version prior to 1.5 and version 1.5.x
- Version 1.0.0 - stable version

Download this release

Release Info

Developer Magento Core Team
Extension Diglin_Username
Version 1.2.0
Comparing to
See all releases


Code changes from version 1.1.1 to 1.2.0

app/code/community/Diglin/Username/Block/Overwrite/Adminhtml/Edit/Tab/Account.php CHANGED
@@ -2,22 +2,6 @@
2
  /**
3
  * Diglin
4
  *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-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@magentocommerce.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.magentocommerce.com for more information.
20
- *
21
  * @category Diglin
22
  * @package Diglin_Username
23
  * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
@@ -36,30 +20,30 @@ class Diglin_Username_Block_Overwrite_Adminhtml_Edit_Tab_Account extends Mage_Ad
36
  $form = $this->getForm();
37
  $fieldset = $form->getElements()->searchById('base_fieldset');
38
  $fieldset->addField('is_active', 'select',
39
- array(
40
- 'name' => 'is_active',
41
- 'label' => Mage::helper('adminhtml')->__('This account is'),
42
- 'id' => 'is_active',
43
- 'title' => Mage::helper('adminhtml')->__('Account status'),
44
- 'class' => 'input-select',
45
- 'required' => false,
46
- 'style' => 'width: 80px',
47
- 'value' => '1',
48
- 'values' => array(
49
- array(
50
- 'label' => Mage::helper('adminhtml')->__('Active'),
51
- 'value' => '1',
52
- ),
53
- array(
54
- 'label' => Mage::helper('adminhtml')->__('Inactive'),
55
- 'value' => '0',
56
- ),
57
- ),
58
- )
59
- );
60
-
61
- $form->setValues($customer->getData());
62
- $this->setForm($form);
63
  return parent::_prepareForm();
64
  }
65
  }
2
  /**
3
  * Diglin
4
  *
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  * @category Diglin
6
  * @package Diglin_Username
7
  * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
20
  $form = $this->getForm();
21
  $fieldset = $form->getElements()->searchById('base_fieldset');
22
  $fieldset->addField('is_active', 'select',
23
+ array(
24
+ 'name' => 'is_active',
25
+ 'label' => Mage::helper('adminhtml')->__('This account is'),
26
+ 'id' => 'is_active',
27
+ 'title' => Mage::helper('adminhtml')->__('Account status'),
28
+ 'class' => 'input-select',
29
+ 'required' => false,
30
+ 'style' => 'width: 80px',
31
+ 'value' => '1',
32
+ 'values' => array(
33
+ array(
34
+ 'label' => Mage::helper('adminhtml')->__('Active'),
35
+ 'value' => '1',
36
+ ),
37
+ array(
38
+ 'label' => Mage::helper('adminhtml')->__('Inactive'),
39
+ 'value' => '0',
40
+ ),
41
+ ),
42
+ )
43
+ );
44
+
45
+ $form->setValues($customer->getData());
46
+ $this->setForm($form);
47
  return parent::_prepareForm();
48
  }
49
  }
app/code/community/Diglin/Username/Helper/Data.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Diglin
4
+ *
5
+ * @category Diglin
6
+ * @package Diglin_Username
7
+ * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
8
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
9
+ */
10
+ class Diglin_Username_Helper_Data extends Mage_Core_Helper_Abstract {}
app/code/community/Diglin/Username/Model/Customer.php CHANGED
@@ -2,22 +2,6 @@
2
  /**
3
  * Diglin
4
  *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-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@magentocommerce.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.magentocommerce.com for more information.
20
- *
21
  * @category Diglin
22
  * @package Diglin_Username
23
  * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
@@ -69,6 +53,12 @@ class Diglin_Username_Model_Customer extends Mage_Customer_Model_Customer{
69
  return $this;
70
  }
71
 
 
 
 
 
 
 
72
  public function customerUsernameExists($username, $websiteId = null)
73
  {
74
  if(!is_null($websiteId)){
2
  /**
3
  * Diglin
4
  *
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  * @category Diglin
6
  * @package Diglin_Username
7
  * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
53
  return $this;
54
  }
55
 
56
+ /**
57
+ * Test if username already exists
58
+ *
59
+ * @param string $username
60
+ * @param int $websiteId
61
+ */
62
  public function customerUsernameExists($username, $websiteId = null)
63
  {
64
  if(!is_null($websiteId)){
app/code/community/Diglin/Username/Model/Entity/Customer.php CHANGED
@@ -2,29 +2,13 @@
2
  /**
3
  * Diglin
4
  *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-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@magentocommerce.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.magentocommerce.com for more information.
20
- *
21
  * @category Diglin
22
  * @package Diglin_Username
23
  * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
  class Diglin_Username_Model_Entity_Customer extends Mage_Customer_Model_Entity_Customer{
27
-
28
  protected function _beforeSave(Varien_Object $customer)
29
  {
30
  parent::_beforeSave($customer);
@@ -44,23 +28,24 @@ class Diglin_Username_Model_Entity_Customer extends Mage_Customer_Model_Entity_C
44
  return $this;
45
  }
46
 
47
- protected function _getDefaultAttributes(){
48
- $attributes = parent::_getDefaultAttributes();
49
- array_push($attributes, 'is_active');
50
- return $attributes;
51
- }
52
-
53
- /**
54
  * Load customer by username
55
  *
56
  * @param Mage_Customer_Model_Customer $customer
57
  * @param string $username
58
- * @param bool $testOnly
59
  * @return Mage_Customer_Model_Entity_Customer
60
  * @throws Mage_Core_Exception
61
  */
62
- public function loadByUsername(Mage_Customer_Model_Customer $customer, $username, $testOnly = false)
63
  {
 
 
64
  $select = $this->_getReadAdapter()->select()
65
  ->from($this->getEntityTable(), array($this->getEntityIdField()))
66
  ->joinNatural(array('cev' => $this->getTable('customer_entity_varchar')))
2
  /**
3
  * Diglin
4
  *
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  * @category Diglin
6
  * @package Diglin_Username
7
  * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
8
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
9
  */
10
  class Diglin_Username_Model_Entity_Customer extends Mage_Customer_Model_Entity_Customer{
11
+
12
  protected function _beforeSave(Varien_Object $customer)
13
  {
14
  parent::_beforeSave($customer);
28
  return $this;
29
  }
30
 
31
+ protected function _getDefaultAttributes(){
32
+ $attributes = parent::_getDefaultAttributes();
33
+ array_push($attributes, 'is_active');
34
+ return $attributes;
35
+ }
36
+
37
+ /**
38
  * Load customer by username
39
  *
40
  * @param Mage_Customer_Model_Customer $customer
41
  * @param string $username
 
42
  * @return Mage_Customer_Model_Entity_Customer
43
  * @throws Mage_Core_Exception
44
  */
45
+ public function loadByUsername(Mage_Customer_Model_Customer $customer, $username)
46
  {
47
+ $filter = new Zend_Filter_StringToLower(array('encoding' => 'UTF-8'));
48
+ $username = $filter->filter($username);
49
  $select = $this->_getReadAdapter()->select()
50
  ->from($this->getEntityTable(), array($this->getEntityIdField()))
51
  ->joinNatural(array('cev' => $this->getTable('customer_entity_varchar')))
app/code/community/Diglin/Username/Model/Entity/Setup.php CHANGED
@@ -2,22 +2,6 @@
2
  /**
3
  * Diglin
4
  *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-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@magentocommerce.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.magentocommerce.com for more information.
20
- *
21
  * @category Diglin
22
  * @package Diglin_Username
23
  * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
@@ -30,8 +14,8 @@ class Diglin_Username_Model_Entity_Setup extends Mage_Customer_Model_Entity_Setu
30
 
31
  $entities['customer']['attributes'] = array(
32
  'username' => array(
33
- 'type' => 'varchar',
34
- 'input' => 'text',
35
  'label' => 'Username',
36
  'sort_order' => 44,
37
  )
2
  /**
3
  * Diglin
4
  *
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  * @category Diglin
6
  * @package Diglin_Username
7
  * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
14
 
15
  $entities['customer']['attributes'] = array(
16
  'username' => array(
17
+ 'type' => 'varchar',
18
+ 'input' => 'text',
19
  'label' => 'Username',
20
  'sort_order' => 44,
21
  )
app/code/community/Diglin/Username/Model/Form.php CHANGED
@@ -2,22 +2,6 @@
2
  /**
3
  * Diglin
4
  *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-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@magentocommerce.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.magentocommerce.com for more information.
20
- *
21
  * @category Diglin
22
  * @package Diglin_Username
23
  * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
@@ -25,46 +9,73 @@
25
  */
26
  class Diglin_Username_Model_Form extends Mage_Customer_Model_Form
27
  {
28
- public function validateData(array $data){
29
-
30
- $errors = parent::validateData($data);
31
-
32
- if(isset($data['username'])){
33
- $model = Mage::getModel('customer/customer');
34
-
35
- $customerId = Mage::app()->getFrontController()->getRequest()->getParam('customer_id');
36
- if(!$customerId){
37
- $customerId = Mage::app()->getFrontController()->getRequest()->getParam('id');
38
- }
39
-
40
- if (isset($data['website_id']) && $data['website_id'] !== false) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  $websiteId = $data['website_id'];
42
  } elseif ($customerId) {
43
  $customer = $model->load($customerId);
44
  $websiteId = $customer->getWebsiteId();
45
- if($customer->getUsername() == $data['username']){ // don't make any test if the user has already the username
46
  return $errors;
47
  }
48
  } else {
49
  $websiteId = Mage::app()->getWebsite()->getId();
50
  }
51
-
52
-
53
- $result = $model->customerUsernameExists($data['username'], $websiteId);
54
- if($result && $result->getId() != Mage::app()->getFrontController()->getRequest()->getParam('id')
55
- && $result->getId() != Mage::getSingleton('customer/session')->getCustomerId('id')){
56
- $message = Mage::helper('customer')->__("Username already exists");
57
- if($errors === true){
58
- $errors = array();
59
- }
60
- $errors = array_merge($errors, array($message));
61
- }
62
- }
63
-
64
- if (count($errors) == 0) {
 
 
 
 
 
 
 
 
65
  return true;
66
- }
67
-
68
- return $errors;
69
- }
70
  }
2
  /**
3
  * Diglin
4
  *
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  * @category Diglin
6
  * @package Diglin_Username
7
  * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
9
  */
10
  class Diglin_Username_Model_Form extends Mage_Customer_Model_Form
11
  {
12
+ /**
13
+ * (non-PHPdoc)
14
+ * @see Mage_Customer_Model_Form::extractData()
15
+ */
16
+ public function extractData (Zend_Controller_Request_Http $request, $scope = null, $scopeOnly = true)
17
+ {
18
+ $data = parent::extractData($request, $scope, $scopeOnly);
19
+ if(isset($data['username'])) {
20
+ $filter = new Zend_Filter_StringToLower(array('encoding' => 'UTF-8'));
21
+ $data['username'] = $filter->filter($data['username']);
22
+ }
23
+ return $data;
24
+ }
25
+
26
+ /**
27
+ * (non-PHPdoc)
28
+ * @see Mage_Customer_Model_Form::validateData()
29
+ */
30
+ public function validateData (array $data)
31
+ {
32
+ $errors = parent::validateData($data);
33
+ if (isset($data['username'])) {
34
+ $model = Mage::getModel('customer/customer');
35
+ $customerId = Mage::app()->getFrontController()
36
+ ->getRequest()
37
+ ->getParam('customer_id');
38
+ if (! $customerId) {
39
+ $customerId = Mage::app()->getFrontController()
40
+ ->getRequest()
41
+ ->getParam('id');
42
+ }
43
+
44
+ if (isset($data['website_id']) && $data['website_id'] !== false) {
45
  $websiteId = $data['website_id'];
46
  } elseif ($customerId) {
47
  $customer = $model->load($customerId);
48
  $websiteId = $customer->getWebsiteId();
49
+ if ($customer->getUsername() == $data['username']) { // don't make any test if the user has already the username
50
  return $errors;
51
  }
52
  } else {
53
  $websiteId = Mage::app()->getWebsite()->getId();
54
  }
55
+
56
+ $validate = new Zend_Validate_Regex('/^[\w-]*$/');
57
+ if(! $validate->isValid($data['username']) ){
58
+ $message = Mage::helper('username')->__('Username is invalid! Only letters, digits and \'_-\' values are accepted.');
59
+ if ($errors === true) {
60
+ $errors = array();
61
+ }
62
+ $errors = array_merge($errors, array($message));
63
+ }
64
+
65
+ $result = $model->customerUsernameExists($data['username'], $websiteId);
66
+ if ($result && $result->getId() != Mage::app()->getFrontController()
67
+ ->getRequest()
68
+ ->getParam('id') && $result->getId() != Mage::getSingleton('customer/session')->getCustomerId('id')) {
69
+ $message = Mage::helper('username')->__("Username already exists");
70
+ if ($errors === true) {
71
+ $errors = array();
72
+ }
73
+ $errors = array_merge($errors, array($message));
74
+ }
75
+ }
76
+ if (count($errors) == 0) {
77
  return true;
78
+ }
79
+ return $errors;
80
+ }
 
81
  }
app/code/community/Diglin/Username/Model/Observer.php CHANGED
@@ -2,35 +2,19 @@
2
  /**
3
  * Diglin
4
  *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-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@magentocommerce.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.magentocommerce.com for more information.
20
- *
21
  * @category Diglin
22
  * @package Diglin_Username
23
  * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
  class Diglin_Username_Model_Observer extends Mage_Customer_Model_Observer {
27
-
28
  public function isActive($observer)
29
  {
30
- $customer = $observer->getEvent()->getModel();
31
- // Add the inactive option - rissip
32
  if($customer->getIsActive () != '1' ){
33
- throw new Mage_Core_Exception(Mage::helper('customer')->__('This account is disabled.'), 0);
34
  }
35
  }
36
  }
2
  /**
3
  * Diglin
4
  *
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  * @category Diglin
6
  * @package Diglin_Username
7
  * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
8
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
9
  */
10
  class Diglin_Username_Model_Observer extends Mage_Customer_Model_Observer {
11
+
12
  public function isActive($observer)
13
  {
14
+ $customer = $observer->getEvent()->getModel();
15
+ // Add the inactive option - rissip
16
  if($customer->getIsActive () != '1' ){
17
+ throw new Mage_Core_Exception(Mage::helper('customer')->__('This account is disabled.'), 0);
18
  }
19
  }
20
  }
app/code/community/Diglin/Username/etc/config.xml CHANGED
@@ -1,102 +1,108 @@
1
  <?xml version="1.0"?>
2
  <config>
3
- <modules>
4
- <Diglin_Username>
5
- <version>1.1.1</version>
6
- </Diglin_Username>
7
- </modules>
8
 
9
- <global>
10
  <fieldsets>
11
  <customer_account>
12
  <username><create>1</create><update>1</update><to_order>customer_username</to_order><to_quote>customer_username</to_quote></username>
13
  </customer_account>
14
  <checkout_onepage_billing>
15
- <username><to_customer>*</to_customer></username>
16
  </checkout_onepage_billing>
17
  <checkout_onepage_quote>
18
- <customer_username><to_customer>username</to_customer></customer_username>
19
  </checkout_onepage_quote>
20
- <sales_convert_quote>
21
  <customer_username><to_order>*</to_order></customer_username>
22
  </sales_convert_quote>
23
- <sales_convert_quote_address>
24
- <username><to_order_address>*</to_order_address><to_customer_address>*</to_customer_address></username>
25
  </sales_convert_quote_address>
26
  <sales_convert_order>
27
  <customer_username><to_quote>*</to_quote></customer_username>
28
  </sales_convert_order>
29
  </fieldsets>
30
 
31
- <blocks>
32
- <adminhtml>
33
- <rewrite>
34
- <customer_edit_tab_account>Diglin_Username_Block_Overwrite_Adminhtml_Edit_Tab_Account</customer_edit_tab_account>
35
- </rewrite>
36
- </adminhtml>
37
- </blocks>
38
- <models>
39
- <customer>
40
- <rewrite>
41
- <customer>Diglin_Username_Model_Customer</customer>
42
- <form>Diglin_Username_Model_Form</form>
43
- <observer>Diglin_Username_Model_Observer</observer>
44
- <setup>Diglin_Username_Model_Setup</setup>
45
- </rewrite>
46
- </customer>
47
- <customer_entity>
48
- <rewrite>
49
- <customer>Diglin_Username_Model_Entity_Customer</customer>
50
- </rewrite>
51
- </customer_entity>
52
- <customer_resource>
53
- <rewrite>
54
- <customer>Diglin_USername_Model_Entity_Customer</customer>
55
- </rewrite>
56
- </customer_resource>
57
- </models>
58
-
59
- <resources>
60
- <username_setup>
61
- <setup>
62
- <module>Diglin_Username</module>
63
- <class>Diglin_Username_Model_Entity_Setup</class>
64
- </setup>
65
- <connection>
66
- <use>default_setup</use>
67
- </connection>
68
- </username_setup>
69
- </resources>
70
-
71
- <events>
72
- <customer_customer_authenticated>
73
- <observers>
74
- <customer_observer>
75
- <type>singleton</type>
76
- <class>customer/observer</class>
77
- <method>isActive</method>
78
- </customer_observer>
79
- </observers>
80
- </customer_customer_authenticated>
81
- </events>
82
- </global>
83
-
84
- <frontend>
85
- <translate>
86
- <modules>
87
- <Diglin_Username>
88
- <files>
89
- <default>Diglin_Username.csv</default>
90
- </files>
91
- </Diglin_Username>
92
- </modules>
93
- </translate>
94
- <layout>
95
- <updates>
96
- <username>
97
- <file>username.xml</file>
98
- </username>
99
- </updates>
100
- </layout>
101
- </frontend>
 
 
 
 
 
 
102
  </config>
1
  <?xml version="1.0"?>
2
  <config>
3
+ <modules>
4
+ <Diglin_Username>
5
+ <version>1.2.0</version>
6
+ </Diglin_Username>
7
+ </modules>
8
 
9
+ <global>
10
  <fieldsets>
11
  <customer_account>
12
  <username><create>1</create><update>1</update><to_order>customer_username</to_order><to_quote>customer_username</to_quote></username>
13
  </customer_account>
14
  <checkout_onepage_billing>
15
+ <username><to_customer>*</to_customer></username>
16
  </checkout_onepage_billing>
17
  <checkout_onepage_quote>
18
+ <customer_username><to_customer>username</to_customer></customer_username>
19
  </checkout_onepage_quote>
20
+ <sales_convert_quote>
21
  <customer_username><to_order>*</to_order></customer_username>
22
  </sales_convert_quote>
23
+ <sales_convert_quote_address>
24
+ <username><to_order_address>*</to_order_address><to_customer_address>*</to_customer_address></username>
25
  </sales_convert_quote_address>
26
  <sales_convert_order>
27
  <customer_username><to_quote>*</to_quote></customer_username>
28
  </sales_convert_order>
29
  </fieldsets>
30
 
31
+ <helpers>
32
+ <username>
33
+ <class>Diglin_Username_Helper</class>
34
+ </username>
35
+ </helpers>
36
+
37
+ <blocks>
38
+ <adminhtml>
39
+ <rewrite>
40
+ <customer_edit_tab_account>Diglin_Username_Block_Overwrite_Adminhtml_Edit_Tab_Account</customer_edit_tab_account>
41
+ </rewrite>
42
+ </adminhtml>
43
+ </blocks>
44
+ <models>
45
+ <customer>
46
+ <rewrite>
47
+ <customer>Diglin_Username_Model_Customer</customer>
48
+ <form>Diglin_Username_Model_Form</form>
49
+ <observer>Diglin_Username_Model_Observer</observer>
50
+ <setup>Diglin_Username_Model_Setup</setup>
51
+ </rewrite>
52
+ </customer>
53
+ <customer_entity>
54
+ <rewrite>
55
+ <customer>Diglin_Username_Model_Entity_Customer</customer>
56
+ </rewrite>
57
+ </customer_entity>
58
+ <customer_resource>
59
+ <rewrite>
60
+ <customer>Diglin_Username_Model_Entity_Customer</customer>
61
+ </rewrite>
62
+ </customer_resource>
63
+ </models>
64
+
65
+ <resources>
66
+ <username_setup>
67
+ <setup>
68
+ <module>Diglin_Username</module>
69
+ <class>Diglin_Username_Model_Entity_Setup</class>
70
+ </setup>
71
+ <connection>
72
+ <use>default_setup</use>
73
+ </connection>
74
+ </username_setup>
75
+ </resources>
76
+
77
+ <events>
78
+ <customer_customer_authenticated>
79
+ <observers>
80
+ <customer_observer>
81
+ <type>singleton</type>
82
+ <class>customer/observer</class>
83
+ <method>isActive</method>
84
+ </customer_observer>
85
+ </observers>
86
+ </customer_customer_authenticated>
87
+ </events>
88
+ </global>
89
+
90
+ <frontend>
91
+ <translate>
92
+ <modules>
93
+ <Diglin_Username>
94
+ <files>
95
+ <default>Diglin_Username.csv</default>
96
+ </files>
97
+ </Diglin_Username>
98
+ </modules>
99
+ </translate>
100
+ <layout>
101
+ <updates>
102
+ <username>
103
+ <file>username.xml</file>
104
+ </username>
105
+ </updates>
106
+ </layout>
107
+ </frontend>
108
  </config>
app/code/community/Diglin/Username/sql/username_setup/mysql4-install-1.0.0.php CHANGED
@@ -2,22 +2,6 @@
2
  /**
3
  * Diglin
4
  *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-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@magentocommerce.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.magentocommerce.com for more information.
20
- *
21
  * @category Diglin
22
  * @package Diglin_Username
23
  * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
@@ -37,8 +21,8 @@ $attribute = array(
37
  'required' => true,
38
  'type' => 'varchar',
39
  'input' => 'text',
40
- 'sort_order' => 65,
41
- 'validate_rules' => array(
42
  'max_text_length' => 30,
43
  'min_text_length' => 1
44
  ),
@@ -78,11 +62,11 @@ foreach ($attributes as $attributeCode => $data) {
78
  $installer->startSetup();
79
 
80
  $result = $installer->getConnection()->raw_fetchRow("SHOW COLUMNS from {$this->getTable('sales_flat_quote')} like '%customer_username%'");
81
- if(!in_array('customer_username', $result)){
82
  $installer->run("
83
- ALTER TABLE `{$this->getTable('sales_flat_quote')}`
84
- ADD `customer_username` VARCHAR( 255 ) NULL AFTER `customer_taxvat`
85
- ");
86
  }
87
 
88
  $installer->endSetup();
2
  /**
3
  * Diglin
4
  *
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  * @category Diglin
6
  * @package Diglin_Username
7
  * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
21
  'required' => true,
22
  'type' => 'varchar',
23
  'input' => 'text',
24
+ 'sort_order' => 65,
25
+ 'validate_rules' => array(
26
  'max_text_length' => 30,
27
  'min_text_length' => 1
28
  ),
62
  $installer->startSetup();
63
 
64
  $result = $installer->getConnection()->raw_fetchRow("SHOW COLUMNS from {$this->getTable('sales_flat_quote')} like '%customer_username%'");
65
+ if(!is_array($result) || !in_array('customer_username', $result)){
66
  $installer->run("
67
+ ALTER TABLE `{$this->getTable('sales_flat_quote')}`
68
+ ADD `customer_username` VARCHAR( 255 ) NULL AFTER `customer_taxvat`
69
+ ");
70
  }
71
 
72
  $installer->endSetup();
app/code/community/Diglin/Username/sql/username_setup/mysql4-upgrade-1.0.0-1.1.0.php CHANGED
@@ -2,22 +2,6 @@
2
  /**
3
  * Diglin
4
  *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-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@magentocommerce.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.magentocommerce.com for more information.
20
- *
21
  * @category Diglin
22
  * @package Diglin_Username
23
  * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
@@ -34,10 +18,10 @@ $usernameAttribute = $eavConfig->getAttribute('customer', 'username');
34
  $installer->startSetup();
35
 
36
  $result = $installer->getConnection()->raw_fetchRow("SHOW COLUMNS from {$this->getTable('sales_flat_order')} like '%customer_username%'");
37
- if(!in_array('customer_username', $result)){
38
  $installer->run("
39
  ALTER TABLE `{$this->getTable('sales_flat_order')}`
40
- ADD `customer_username` VARCHAR( 255 ) NULL AFTER `customer_taxvat`
41
  ");
42
  // can be a fix for bug of this module in Magento > 1.5
43
  }
@@ -46,7 +30,7 @@ $installer->run("
46
  $select = new Zend_Db_Select($installer->getConnection());
47
  $select->from(array('c' => $this->getTable('customer_entity')), 'email')
48
  ->joinLeft(array('cev' => $this->getTable('customer_entity_varchar')), 'c.entity_id = cev.entity_id')
49
- ->where("cev.entity_id NOT IN (SELECT entity_id FROM `{$this->getTable('customer_entity_varchar')}` WHERE attribute_id = 952)")
50
  ->group('c.entity_id');
51
 
52
  // Create username for old customers to prevent problem when creating an order
2
  /**
3
  * Diglin
4
  *
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  * @category Diglin
6
  * @package Diglin_Username
7
  * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
18
  $installer->startSetup();
19
 
20
  $result = $installer->getConnection()->raw_fetchRow("SHOW COLUMNS from {$this->getTable('sales_flat_order')} like '%customer_username%'");
21
+ if(!is_array($result) || !in_array('customer_username', $result)){
22
  $installer->run("
23
  ALTER TABLE `{$this->getTable('sales_flat_order')}`
24
+ ADD `customer_username` VARCHAR( 255 ) NULL AFTER `customer_taxvat`
25
  ");
26
  // can be a fix for bug of this module in Magento > 1.5
27
  }
30
  $select = new Zend_Db_Select($installer->getConnection());
31
  $select->from(array('c' => $this->getTable('customer_entity')), 'email')
32
  ->joinLeft(array('cev' => $this->getTable('customer_entity_varchar')), 'c.entity_id = cev.entity_id')
33
+ ->where("cev.entity_id NOT IN (SELECT entity_id FROM `{$this->getTable('customer_entity_varchar')}` WHERE attribute_id = {$usernameAttribute->getId()})")
34
  ->group('c.entity_id');
35
 
36
  // Create username for old customers to prevent problem when creating an order
app/code/community/Diglin/Username/sql/username_setup/mysql4-upgrade-1.1.0-1.2.0.php ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Diglin
4
+ *
5
+ * @category Diglin
6
+ * @package Diglin_Username
7
+ * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
8
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
9
+ */
10
+ $installer = $this;
11
+ /* @var $installer Diglin_Username_Model_Entity_Setup */
12
+ $installer->updateAttribute('customer', 'username', 'validate_rules', serialize(array('max_text_length' => 30, 'min_text_length' => 6)));
13
+ //$installer->updateAttribute('customer', 'username', 'used_in_forms', serialize( array('customer_address_edit'))); // For onepage !
app/design/frontend/default/default/layout/username.xml CHANGED
@@ -27,6 +27,12 @@
27
  -->
28
  <layout version="0.1.0">
29
 
 
 
 
 
 
 
30
  <customer_account_login>
31
  <reference name="customer_form_login">
32
  <action method="setTemplate"><template>username/customer/form/login.phtml</template></action>
27
  -->
28
  <layout version="0.1.0">
29
 
30
+ <customer_account_index>
31
+ <reference name="customer_account_dashboard">
32
+ <block type="customer/account_dashboard_info" name="customer_account_dashboard_info" as="info" template="uba/customer/account/dashboard/info.phtml"/>
33
+ </reference>
34
+ </customer_account_index>
35
+
36
  <customer_account_login>
37
  <reference name="customer_form_login">
38
  <action method="setTemplate"><template>username/customer/form/login.phtml</template></action>
app/design/frontend/default/default/template/username/customer/account/dashboard/info.phtml ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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@magentocommerce.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.magentocommerce.com for more information.
20
+ *
21
+ * @category design
22
+ * @package base_default
23
+ * @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="col2-set">
28
+ <div class="col-1">
29
+ <div class="box">
30
+ <div class="box-title">
31
+ <h3><?php echo $this->__('Contact Information') ?></h3>
32
+ <a href="<?php echo $this->getUrl('customer/account/edit') ?>"><?php echo $this->__('Edit') ?></a>
33
+ </div>
34
+ <div class="box-content">
35
+ <p>
36
+ <?php echo $this->htmlEscape($this->getCustomer()->getName()) ?><br />
37
+ <?php echo ($this->getCustomer()->getUsername()) ? $this->htmlEscape($this->getCustomer()->getUsername()) . '<br />' : ''; ?>
38
+ <?php echo $this->htmlEscape($this->getCustomer()->getEmail()) ?><br />
39
+ <a href="<?php echo $this->getChangePasswordUrl() ?>"><?php echo $this->__('Change Password') ?></a>
40
+ </p>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ <?php if( $this->isNewsletterEnabled() ): ?>
45
+ <div class="col-2">
46
+ <div class="box">
47
+ <div class="box-title">
48
+ <h3><?php echo $this->__('Newsletters') ?></h3>
49
+ <a href="<?php echo $this->getUrl('newsletter/manage') ?>"><?php echo $this->__('Edit') ?></a>
50
+ </div>
51
+ <div class="box-content">
52
+ <p>
53
+ <?php if( $this->getIsSubscribed() ): ?>
54
+ <?php echo $this->__("You are currently subscribed to 'General Subscription'.") ?>
55
+ <?php else: ?>
56
+ <?php echo $this->__('You are currently not subscribed to any newsletter.') ?>
57
+ <?php endif; ?>
58
+ </p>
59
+ </div>
60
+ </div>
61
+ </div>
62
+ <?php endif; ?>
63
+ </div>
app/locale/de_DE/Diglin_Username.csv CHANGED
@@ -1,4 +1,4 @@
1
- "This account is disabled.,""Dieses Benutzerkonto ist deaktiviert."""
2
- "Username,""Benutzername"""
3
- "Email Address/Username, ""E-Mail-Adresse/Benutzername"""
4
- "Email/Username:',""'E-Mail-Adresse/Benutzername:'"""
1
+ This account is disabled.","Dieses Benutzerkonto ist deaktiviert.”
2
+ Username”,"Benutzername"
3
+ Email Address/Username”,"E-Mail-Adresse/Benutzername"
4
+ Email/Username:”,"E-Mail-Adresse/Benutzername:"
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Diglin_Username</name>
4
- <version>1.1.1</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
  <channel>community</channel>
@@ -10,21 +10,24 @@
10
  Allow to disable an account from backend. The user will be blocked if the option in the customer backend is set to no</summary>
11
  <description>This module allows you to:&#xD;
12
  &#xD;
13
- - login with a username, it can be done from frontend during checkout or getting access to the customer account&#xD;
 
 
14
  - save a username from frontend (register account or checkout process) or from backend by editing a customer account&#xD;
15
  - check that the username doesn't already exists&#xD;
16
  - deactivate temporary customer account from Customer Management page (bonus functionnality). The user will be blocked if the option in the customer backend is set to no.&#xD;
17
  - The default template override some customer and checkout views to adapt display for login pages, checkout process and account edition in frontend. If you have a customized template, please check the layout file username.xml and compare with your template to use or adapt to your situation.&#xD;
18
  &#xD;
19
- Compatible Magento version &gt;= 1.4.2</description>
20
- <notes>Version 1.1.0: change the module name from Jfusion_Customer to Diglin_Username, fix bugs with checkout frontend and backend and with old customers&#xD;
21
- Version 1.0.0 - stable version&#xD;
22
- Version 1.0.1 - fix bug in sql query during installation on prefixed tables, add german translation, do package for Magento version prior to 1.5 and version 1.5.x&#xD;
23
- Version 1.0.2 - fix a bug with the installation</notes>
 
24
  <authors><author><name>diglin</name><user>auto-converted</user><email>sly@diglin.com</email></author></authors>
25
- <date>2011-09-12</date>
26
- <time>18:35:05</time>
27
- <contents><target name="mageetc"><dir name="modules"><file name="Diglin_Username.xml" hash="79603fae3def6dd098d4be51897e1ec6"/></dir></target><target name="magecommunity"><dir name="Diglin"><dir name="Username"><dir name="Block"><dir name="Overwrite"><dir name="Adminhtml"><dir name="Edit"><dir name="Tab"><file name="Account.php" hash="a5269ed241e97fc94ea6585ddf89d41e"/></dir></dir></dir></dir></dir><dir name="Model"><dir name="Entity"><file name="Customer.php" hash="75871fbc0b7ba6283a9d00e1300d5687"/><file name="Setup.php" hash="52fb83e922217a03ec49a7e01ec4168d"/></dir><file name="Customer.php" hash="a3fa48726a43f267d1560a7b14574309"/><file name="Form.php" hash="8842ea13f59069341b20c86fae4e6986"/><file name="Observer.php" hash="4badcaa6ab91dc56270c31aa0dcab4f5"/></dir><dir name="etc"><file name="config.xml" hash="6bd6bfb1ad3d522be4bcd0ccdf342928"/></dir><dir name="sql"><dir name="username_setup"><file name="mysql4-install-1.0.0.php" hash="139862c7d033b40808f2dd5c17c59d77"/><file name="mysql4-upgrade-1.0.0-1.1.0.php" hash="a6cdaceb3ae152b7ac2debe99022209b"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="default"><dir name="default"><dir name="template"><dir name="username"><dir name="checkout"><dir name="onepage"><file name="billing.phtml" hash="158561d558368712426b803b2f392a8b"/><file name="login.phtml" hash="057960b4b741b21657aed20a15278872"/></dir></dir><dir name="customer"><dir name="form"><file name="edit.phtml" hash="9db985e8451b66a7c09b8dc472fc9544"/><file name="login.phtml" hash="4b0be135d49e4098e093514bc0ddb88f"/><file name="register.phtml" hash="2808979c10df1b36dc0c74333490a50f"/></dir></dir></dir></dir><dir name="layout"><file name="username.xml" hash="5fdf86d9fbaa0da02b1de86d62bb2ef3"/></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_GB"><file name="Diglin_Username.csv" hash="2d18fb6bfc2c4c56f19cfe7ee6761f4b"/></dir><dir name="en_US"><file name="Diglin_Username.csv" hash="2d18fb6bfc2c4c56f19cfe7ee6761f4b"/></dir><dir name="fr_FR"><file name="Diglin_Username.csv" hash="d8d025c852649fc8e9edd2aed5ab377a"/></dir><dir name="de_DE"><file name="Diglin_Username.csv" hash="7b82f7fe5e8775963956447f55954116"/></dir></target></contents>
28
  <compatible/>
29
  <dependencies/>
30
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Diglin_Username</name>
4
+ <version>1.2.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
  <channel>community</channel>
10
  Allow to disable an account from backend. The user will be blocked if the option in the customer backend is set to no</summary>
11
  <description>This module allows you to:&#xD;
12
  &#xD;
13
+ - login with a username or email address. it can be done from frontend during checkout or getting access to the customer account&#xD;
14
+ - Username can have letters, digits, '_-' but no other special characters&#xD;
15
+ - Username length is from 6 until 30 characters possible&#xD;
16
  - save a username from frontend (register account or checkout process) or from backend by editing a customer account&#xD;
17
  - check that the username doesn't already exists&#xD;
18
  - deactivate temporary customer account from Customer Management page (bonus functionnality). The user will be blocked if the option in the customer backend is set to no.&#xD;
19
  - The default template override some customer and checkout views to adapt display for login pages, checkout process and account edition in frontend. If you have a customized template, please check the layout file username.xml and compare with your template to use or adapt to your situation.&#xD;
20
  &#xD;
21
+ Compatible Magento version &gt;= 1.4.2 until 1.6.2</description>
22
+ <notes>- Version 1.2.0: fix problem with case sensitive OS, limit the number of characters possible (now it's between 6 and 30 letters), allow only some characters, try to provide compatibility update for users who had the old Jfusion_Username module, generate a username for old customers who don't have it, based on email address and a random id, improve the german translation, tested on 1.6.2 and 1.5.1&#xD;
23
+ - Version 1.1.0: change the module name from Jfusion_Customer to Diglin_Username, fix bugs with checkout frontend and backend and with old customers&#xD;
24
+ - Version 1.0.2 - fix a bug with the installation&#xD;
25
+ - Version 1.0.1 - fix bug in sql query during installation on prefixed tables, add german translation, do package for Magento version prior to 1.5 and version 1.5.x&#xD;
26
+ - Version 1.0.0 - stable version</notes>
27
  <authors><author><name>diglin</name><user>auto-converted</user><email>sly@diglin.com</email></author></authors>
28
+ <date>2012-01-15</date>
29
+ <time>15:46:03</time>
30
+ <contents><target name="mageetc"><dir name="modules"><file name="Diglin_Username.xml" hash="79603fae3def6dd098d4be51897e1ec6"/></dir></target><target name="magecommunity"><dir name="Diglin"><dir name="Username"><dir name="Block"><dir name="Overwrite"><dir name="Adminhtml"><dir name="Edit"><dir name="Tab"><file name="Account.php" hash="0cf35fc258975ea64a2dc87aa2a18084"/></dir></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="82e748e2fbf1b587a8d2563abda34748"/></dir><dir name="Model"><dir name="Entity"><file name="Customer.php" hash="fed7a127915a400ec69c3a9ee2328563"/><file name="Setup.php" hash="18404b3f1949e676ba95dd15fd4d3ca8"/></dir><file name="Customer.php" hash="83731999fbfbe3a9825af544011c12a9"/><file name="Form.php" hash="5e23a0d8ad3f9892c28671c3a3485804"/><file name="Observer.php" hash="5174ca28fc15922b4718de65aea67a79"/></dir><dir name="etc"><file name="config.xml" hash="4e021fab16e0fd8c81f1f54f5a13b8e0"/></dir><dir name="sql"><dir name="username_setup"><file name="mysql4-install-1.0.0.php" hash="b7cbb4ffccb65200fae91776f11ab37f"/><file name="mysql4-upgrade-1.0.0-1.1.0.php" hash="c51c4e5322e1a14bbcefe033cf6d719e"/><file name="mysql4-upgrade-1.1.0-1.2.0.php" hash="1a129c0b46afdc4e91e94c24b5fbfd5e"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="default"><dir name="default"><dir name="template"><dir name="username"><dir name="checkout"><dir name="onepage"><file name="billing.phtml" hash="158561d558368712426b803b2f392a8b"/><file name="login.phtml" hash="057960b4b741b21657aed20a15278872"/></dir></dir><dir name="customer"><dir name="account"><dir name="dashboard"><file name="info.phtml" hash="ba4d68c18857691a034c45400deb6e51"/></dir></dir><dir name="form"><file name="edit.phtml" hash="9db985e8451b66a7c09b8dc472fc9544"/><file name="login.phtml" hash="4b0be135d49e4098e093514bc0ddb88f"/><file name="register.phtml" hash="2808979c10df1b36dc0c74333490a50f"/></dir></dir></dir></dir><dir name="layout"><file name="username.xml" hash="ebf14b8aa97bfdd4978576caccf955e1"/></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_GB"><file name="Diglin_Username.csv" hash="2d18fb6bfc2c4c56f19cfe7ee6761f4b"/></dir><dir name="en_US"><file name="Diglin_Username.csv" hash="2d18fb6bfc2c4c56f19cfe7ee6761f4b"/></dir><dir name="fr_FR"><file name="Diglin_Username.csv" hash="d8d025c852649fc8e9edd2aed5ab377a"/></dir><dir name="de_DE"><file name="Diglin_Username.csv" hash="71ec3c2c428c65a3b700b5a1a12fc772"/></dir></target></contents>
31
  <compatible/>
32
  <dependencies/>
33
  </package>