Ultimate_ModuleCreator - Version 1.4.1

Version Notes

Bug fixes:
- siblings not listed in the order set in admin.
- entity models are missing event prefixes and event objects.
Features:
- Added 'country' field type
- Added log creation for each module with the files that are created.
Refactor:
- Clean up for image attribute renderers (frontend and backend).
- added Mage::logException for admin exceptions
- Rafactor image helper (thanks carco).

Download this release

Release Info

Developer Marius
Extension Ultimate_ModuleCreator
Version 1.4.1
Comparing to
See all releases


Code changes from version 1.4.0 to 1.4.1

Files changed (23) hide show
  1. app/code/community/Ultimate/ModuleCreator/Block/Adminhtml/Modulecreator/Edit/Tab/Settings.php +1 -1
  2. app/code/community/Ultimate/ModuleCreator/Helper/Data.php +7 -1
  3. app/code/community/Ultimate/ModuleCreator/Model/Attribute/Type/Abstract.php +1 -1
  4. app/code/community/Ultimate/ModuleCreator/Model/Attribute/Type/Country.php +88 -0
  5. app/code/community/Ultimate/ModuleCreator/Model/Attribute/Type/Image.php +3 -3
  6. app/code/community/Ultimate/ModuleCreator/Model/Attribute/Type/Website.php +2 -4
  7. app/code/community/Ultimate/ModuleCreator/Model/Module.php +24 -0
  8. app/code/community/Ultimate/ModuleCreator/etc/config.xml +2 -2
  9. app/code/community/Ultimate/ModuleCreator/etc/m/app/code/cp/Ns/Md/Block/Adminhtml/Entity/Helper/File/01_content.php +1 -1
  10. app/code/community/Ultimate/ModuleCreator/etc/m/app/code/cp/Ns/Md/Block/Entity/Catalog/Product/List/01_content.php +1 -0
  11. app/code/community/Ultimate/ModuleCreator/etc/m/app/code/cp/Ns/Md/Block/Entity/Sibling/List/01_content.php +1 -0
  12. app/code/community/Ultimate/ModuleCreator/etc/m/app/code/cp/Ns/Md/Helper/Entity/Image/01_content.php +3 -139
  13. app/code/community/Ultimate/ModuleCreator/etc/m/app/code/cp/Ns/Md/Helper/Image/Abstract/01_content.php +447 -0
  14. app/code/community/Ultimate/ModuleCreator/etc/m/app/code/cp/Ns/Md/Model/Entity/01_top.php +16 -1
  15. app/code/community/Ultimate/ModuleCreator/etc/m/app/code/cp/Ns/Md/controllers/Adminhtml/Module/EntityController/10_center.php +2 -0
  16. app/code/community/Ultimate/ModuleCreator/etc/m/app/code/cp/Ns/Md/controllers/Adminhtml/Module/EntityController/11_mass_status.php +1 -0
  17. app/code/community/Ultimate/ModuleCreator/etc/m/app/code/cp/Ns/Md/controllers/Adminhtml/Module/EntityController/12_mass_update.php +1 -0
  18. app/code/community/Ultimate/ModuleCreator/etc/m/app/code/cp/Ns/Md/controllers/Adminhtml/Module/EntityController/13_mass_parents.php +1 -0
  19. app/code/community/Ultimate/ModuleCreator/etc/m/app/code/cp/Ns/Md/controllers/Adminhtml/Module/EntityController/IsTree/01_top.php +1 -0
  20. app/code/community/Ultimate/ModuleCreator/etc/m/app/code/cp/Ns/Md/controllers/Adminhtml/Module/EntityController/IsTree/09_real_save.php +1 -0
  21. app/code/community/Ultimate/ModuleCreator/etc/modulecreator.xml +14 -0
  22. app/design/adminhtml/default/default/template/ultimate_modulecreator/edit/tab/entities/entity/attribute.phtml +2 -2
  23. package.xml +13 -11
app/code/community/Ultimate/ModuleCreator/Block/Adminhtml/Modulecreator/Edit/Tab/Settings.php CHANGED
@@ -160,7 +160,7 @@ class Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Settings ext
160
  'name' => 'license',
161
  'label' => Mage::helper('modulecreator')->__('License'),
162
  'title' => Mage::helper('modulecreator')->__('License'),
163
- 'required' => true,
164
  'value' => $values->getLicense(),
165
  'style' => 'width:'.$fieldWidth.'px',
166
  'after_element_html'=> Mage::helper('modulecreator/adminhtml')->getTooltipHtml(Mage::helper('modulecreator')->__('License'), Mage::helper('modulecreator')->__('Added at the top of every generated file.').'<br />'.Mage::helper('modulecreator')->__('Use {{Namespace}} as a placeholder for namespace, {{Module}} as a placeholder for the module name and {{Y}} for current year.'))
160
  'name' => 'license',
161
  'label' => Mage::helper('modulecreator')->__('License'),
162
  'title' => Mage::helper('modulecreator')->__('License'),
163
+ 'required' => false,
164
  'value' => $values->getLicense(),
165
  'style' => 'width:'.$fieldWidth.'px',
166
  'after_element_html'=> Mage::helper('modulecreator/adminhtml')->getTooltipHtml(Mage::helper('modulecreator')->__('License'), Mage::helper('modulecreator')->__('Added at the top of every generated file.').'<br />'.Mage::helper('modulecreator')->__('Use {{Namespace}} as a placeholder for namespace, {{Module}} as a placeholder for the module name and {{Y}} for current year.'))
app/code/community/Ultimate/ModuleCreator/Helper/Data.php CHANGED
@@ -34,7 +34,12 @@ class Ultimate_ModuleCreator_Helper_Data extends Mage_Core_Helper_Data{
34
  * @var array()
35
  */
36
  public static $_restrictedEntityNames = array(
37
- 'resource', 'setup', 'attribute', 'system', 'flat', 'data', 'collection', 'adminhtml', 'widget', 'observer', 'tree'
 
 
 
 
 
38
  );
39
  /**
40
  * get a list with "special attribute" names and error messages
@@ -97,6 +102,7 @@ class Ultimate_ModuleCreator_Helper_Data extends Mage_Core_Helper_Data{
97
  $options['file'] = Mage::helper('modulecreator')->__('File');
98
  $options['image'] = Mage::helper('modulecreator')->__('Image');
99
  $options['website'] = Mage::helper('modulecreator')->__('Website');
 
100
  return $options;
101
  }
102
  /**
34
  * @var array()
35
  */
36
  public static $_restrictedEntityNames = array(
37
+ 'resource', 'setup',
38
+ 'attribute', 'system',
39
+ 'flat', 'data',
40
+ 'collection', 'adminhtml',
41
+ 'widget', 'observer',
42
+ 'tree', 'image'
43
  );
44
  /**
45
  * get a list with "special attribute" names and error messages
102
  $options['file'] = Mage::helper('modulecreator')->__('File');
103
  $options['image'] = Mage::helper('modulecreator')->__('Image');
104
  $options['website'] = Mage::helper('modulecreator')->__('Website');
105
+ $options['country'] = Mage::helper('modulecreator')->__('Country');
106
  return $options;
107
  }
108
  /**
app/code/community/Ultimate/ModuleCreator/Model/Attribute/Type/Abstract.php CHANGED
@@ -152,7 +152,7 @@ class Ultimate_ModuleCreator_Model_Attribute_Type_Abstract extends Varien_Object
152
  * @author Marius Strajeru <marius.strajeru@gmail.com>
153
  */
154
  public function getFrontendHtml(){
155
- return "\t".'<?php echo Mage::helper(\''.strtolower($this->getAttribute()->getEntity()->getModule()->getModuleName()).'\')->__(\''.$this->getAttribute()->getLabel().'\');?>:<?php echo $_'.strtolower($this->getAttribute()->getEntity()->getNameSingular()).'->get'.$this->getAttribute()->getMagicMethodCode().'();?>'."\n";
156
  }
157
  /**
158
  * get the text for RSS
152
  * @author Marius Strajeru <marius.strajeru@gmail.com>
153
  */
154
  public function getFrontendHtml(){
155
+ return '<?php echo Mage::helper(\''.strtolower($this->getAttribute()->getEntity()->getModule()->getModuleName()).'\')->__(\''.$this->getAttribute()->getLabel().'\');?>:<?php echo $_'.strtolower($this->getAttribute()->getEntity()->getNameSingular()).'->get'.$this->getAttribute()->getMagicMethodCode().'();?>'."\n";
156
  }
157
  /**
158
  * get the text for RSS
app/code/community/Ultimate/ModuleCreator/Model/Attribute/Type/Country.php ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Ultimate_ModuleCreator extension
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the MIT License
8
+ * that is bundled with this package in the file LICENSE_UMC.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/mit-license.php
11
+ *
12
+ * @category Ultimate
13
+ * @package Ultimate_ModuleCreator
14
+ * @copyright Copyright (c) 2012
15
+ * @license http://opensource.org/licenses/mit-license.php MIT License
16
+ */
17
+ /**
18
+ * attribute type country
19
+ *
20
+ * @category Ultimate
21
+ * @package Ultimate_ModuleCreator
22
+ * @author Marius Strajeru <marius.strajeru@gmail.com>
23
+ */
24
+ class Ultimate_ModuleCreator_Model_Attribute_Type_Country extends Ultimate_ModuleCreator_Model_Attribute_Type_Abstract{
25
+ /**
26
+ * get the type for the form
27
+ * @access public
28
+ * @return string
29
+ * @author Marius Strajeru <marius.strajeru@gmail.com>
30
+ */
31
+ public function getFormType(){
32
+ return 'select';
33
+ }
34
+ /**
35
+ * get the options for form input
36
+ * @access public
37
+ * @return string
38
+ * @author Marius Strajeru <marius.strajeru@gmail.com>
39
+ */
40
+ public function getFormOptions(){
41
+ $options = parent::getFormOptions();
42
+ $module = strtolower($this->getAttribute()->getEntity()->getModule()->getModuleName());
43
+ $options .= self::OPTION_SEPARATOR."'values'=> Mage::getResourceModel('directory/country_collection')->toOptionArray(),\n";
44
+ return $options;
45
+ }
46
+ /**
47
+ * get the sql column
48
+ * @access public
49
+ * @return string
50
+ * @author Marius Strajeru <marius.strajeru@gmail.com>
51
+ */
52
+ public function getSqlColumn(){
53
+ return '`'.$this->getAttribute()->getCode().'` VARCHAR(3) '.$this->getNullSql().' default \'\',';
54
+ }
55
+ /**
56
+ * get html for frontend
57
+ * @access public
58
+ * @return string
59
+ * @author Marius Strajeru <marius.strajeru@gmail.com>
60
+ */
61
+ public function getFrontendHtml(){
62
+ $entityName = strtolower($this->getAttribute()->getEntity()->getNameSingular());
63
+ $ucEntity = ucfirst($entityName);
64
+ $module = strtolower($this->getAttribute()->getEntity()->getModule()->getModuleName());
65
+ return '<?php echo Mage::helper(\''.$module.'\')->__("'.$this->getAttribute()->getLabel().'");?>:<?php echo ($_'.$entityName.'->get'.$this->getAttribute()->getMagicMethodCode().'()) ? Mage::getModel(\'directory/country\')->load($_'.$entityName.'->get'.$this->getAttribute()->getMagicMethodCode().'())->getName():Mage::helper(\''.$module.'\')->__(\'None\') ?>'."\n";
66
+ }
67
+ /**
68
+ * get the grid column options
69
+ * @access public
70
+ * @return string
71
+ * @author Marius Strajeru <marius.strajeru@gmail.com>
72
+ */
73
+ public function getColumnOptions(){
74
+ return "'type' => 'country',\n";
75
+ }
76
+ /**
77
+ * get the RSS feed text
78
+ * @access public
79
+ * @return string
80
+ * @author Marius Strajeru <marius.strajeru@gmail.com>
81
+ */
82
+ public function getRssText(){
83
+ $entityName = strtolower($this->getAttribute()->getEntity()->getNameSingular());
84
+ $ucEntity = ucfirst($entityName);
85
+ $module = strtolower($this->getAttribute()->getEntity()->getModule()->getModuleName());
86
+ return ' $description .= Mage::helper(\''.$module.'\')->__("'.$this->getAttribute()->getLabel().'").\':\'.(($item->get'.$this->getAttribute()->getMagicMethodCode().'()) ? Mage::getModel(\'directory/country\')->load($item->get'.$this->getAttribute()->getMagicMethodCode().'())->getName():Mage::helper(\''.$module.'\')->__(\'None\'));';
87
+ }
88
+ }
app/code/community/Ultimate/ModuleCreator/Model/Attribute/Type/Image.php CHANGED
@@ -60,8 +60,8 @@ class Ultimate_ModuleCreator_Model_Attribute_Type_Image extends Ultimate_ModuleC
60
  $entityName = strtolower($this->getAttribute()->getEntity()->getNameSingular());
61
  $ucEntity = ucfirst($entityName);
62
  $module = strtolower($this->getAttribute()->getEntity()->getModule()->getModuleName());
63
- $content .= ' <?php if ($_'.$entityName.'->get'.$this->getAttribute()->getMagicMethodCode().'()) :?>'."\n";
64
- $content .= ' <img src="<?php echo Mage::helper(\''.$module.'/'.$entityName.'_image\')->init($_'.$entityName.', \''.$this->getAttribute()->getCode().'\', \'get'.$this->getAttribute()->getMagicMethodCode().'Path\')->resize(75);?>" alt="<?php echo $this->htmlEscape($_'.$entityName.'->get'.$this->getAttribute()->getEntity()->getNameAttributeMagicCode().'());?>" />'."\n\t";
65
  $content .= ' <?php endif;?>'."\n";
66
  return $content;
67
  }
@@ -77,7 +77,7 @@ class Ultimate_ModuleCreator_Model_Attribute_Type_Image extends Ultimate_ModuleC
77
  $ucEntity = ucfirst($entityName);
78
  $module = strtolower($this->getAttribute()->getEntity()->getModule()->getModuleName());
79
  $content .= ' if ($item->get'.$this->getAttribute()->getMagicMethodCode().'()) {'."\n";
80
- $content .= ' $description .= \'<img src="\'.Mage::helper(\''.$module.'/'.$entityName.'_image\')->init($item, \''.$this->getAttribute()->getCode().'\', \'get'.$this->getAttribute()->getMagicMethodCode().'Path\')->resize(75).\'" alt="\'.$this->htmlEscape($item->get'.$this->getAttribute()->getEntity()->getNameAttributeMagicCode().'()).\'" />\';'."\n";
81
  $content .= ' }';
82
  return $content;
83
  }
60
  $entityName = strtolower($this->getAttribute()->getEntity()->getNameSingular());
61
  $ucEntity = ucfirst($entityName);
62
  $module = strtolower($this->getAttribute()->getEntity()->getModule()->getModuleName());
63
+ $content .= '<?php if ($_'.$entityName.'->get'.$this->getAttribute()->getMagicMethodCode().'()) :?>'."\n";
64
+ $content .= ' <img src="<?php echo Mage::helper(\''.$module.'/'.$entityName.'_image\')->init($_'.$entityName.', \''.$this->getAttribute()->getCode().'\')->resize(75);?>" alt="<?php echo $this->htmlEscape($_'.$entityName.'->get'.$this->getAttribute()->getEntity()->getNameAttributeMagicCode().'());?>" />'."\n\t";
65
  $content .= ' <?php endif;?>'."\n";
66
  return $content;
67
  }
77
  $ucEntity = ucfirst($entityName);
78
  $module = strtolower($this->getAttribute()->getEntity()->getModule()->getModuleName());
79
  $content .= ' if ($item->get'.$this->getAttribute()->getMagicMethodCode().'()) {'."\n";
80
+ $content .= ' $description .= \'<img src="\'.Mage::helper(\''.$module.'/'.$entityName.'_image\')->init($item, \''.$this->getAttribute()->getCode().'\')->resize(75).\'" alt="\'.$this->htmlEscape($item->get'.$this->getAttribute()->getEntity()->getNameAttributeMagicCode().'()).\'" />\';'."\n";
81
  $content .= ' }';
82
  return $content;
83
  }
app/code/community/Ultimate/ModuleCreator/Model/Attribute/Type/Website.php CHANGED
@@ -86,8 +86,6 @@ class Ultimate_ModuleCreator_Model_Attribute_Type_Website extends Ultimate_Modul
86
  $entityName = strtolower($this->getAttribute()->getEntity()->getNameSingular());
87
  $ucEntity = ucfirst($entityName);
88
  $module = strtolower($this->getAttribute()->getEntity()->getModule()->getModuleName());
89
- return ' $description .= Mage::helper(\''.$module.'\')->__("'.$this->getAttribute()->getLabel().'").\':\'.($item->get'.$this->getAttribute()->getMagicMethodCode().'() == 1) ? Mage::getModel(\'core/website\')->load($item->get'.$this->getAttribute()->getMagicMethodCode().'())->getName():Mage::helper(\''.$module.'\')->__(\'None\');';
90
- }
91
-
92
-
93
  }
86
  $entityName = strtolower($this->getAttribute()->getEntity()->getNameSingular());
87
  $ucEntity = ucfirst($entityName);
88
  $module = strtolower($this->getAttribute()->getEntity()->getModule()->getModuleName());
89
+ return ' $description .= Mage::helper(\''.$module.'\')->__("'.$this->getAttribute()->getLabel().'").\':\'.(($item->get'.$this->getAttribute()->getMagicMethodCode().'()) ? Mage::getModel(\'core/website\')->load($item->get'.$this->getAttribute()->getMagicMethodCode().'())->getName():Mage::helper(\''.$module.'\')->__(\'None\'));';
90
+ }
 
 
91
  }
app/code/community/Ultimate/ModuleCreator/Model/Module.php CHANGED
@@ -208,6 +208,15 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
208
  public function getXmlPath(){
209
  return Mage::helper('modulecreator')->getLocalPackagesPath().$this->getNamespace()."_".$this->getModuleName().'.xml';
210
  }
 
 
 
 
 
 
 
 
 
211
  /**
212
  * save the module as xml
213
  * @access public
@@ -352,6 +361,21 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
352
  $destinationFile = $basePath.$name;
353
  $this->_writeFile($destinationFile, $file);
354
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
355
  return $this;
356
  }
357
  /**
208
  public function getXmlPath(){
209
  return Mage::helper('modulecreator')->getLocalPackagesPath().$this->getNamespace()."_".$this->getModuleName().'.xml';
210
  }
211
+ /**
212
+ * get the log file path
213
+ * @access public
214
+ * @return string
215
+ * @author Marius Strajeru <marius.strajeru@gmail.com>
216
+ */
217
+ public function getLogPath(){
218
+ return Mage::helper('modulecreator')->getLocalPackagesPath().$this->getNamespace()."_".$this->getModuleName().'.log';
219
+ }
220
  /**
221
  * save the module as xml
222
  * @access public
361
  $destinationFile = $basePath.$name;
362
  $this->_writeFile($destinationFile, $file);
363
  }
364
+ $this->_writeLog();
365
+ return $this;
366
+ }
367
+ /**
368
+ * write a log with the files that were created
369
+ * @access protected
370
+ * @return Ultimate_ModuleCreator_Model_Module
371
+ * @author Marius Strajeru <marius.strajeru@gmail.com>
372
+ */
373
+ protected function _writeLog(){
374
+ $filesToWrite = array_keys($this->_files);
375
+ asort($filesToWrite);
376
+ $filesToWrite = array_values($filesToWrite);
377
+ $text = implode("\n", $filesToWrite);
378
+ $this->_writeFile($this->getLogPath(), $text);
379
  return $this;
380
  }
381
  /**
app/code/community/Ultimate/ModuleCreator/etc/config.xml CHANGED
@@ -24,7 +24,7 @@
24
  <config>
25
  <modules>
26
  <Ultimate_ModuleCreator>
27
- <version>1.4.0</version>
28
  </Ultimate_ModuleCreator>
29
  </modules>
30
  <global>
@@ -85,7 +85,7 @@
85
  NOTICE OF LICENSE
86
 
87
  This source file is subject to the MIT License
88
- that is bundled with this package in the file LICENSE_UMC.txt.
89
  It is also available through the world-wide-web at this URL:
90
  http://opensource.org/licenses/mit-license.php
91
 
24
  <config>
25
  <modules>
26
  <Ultimate_ModuleCreator>
27
+ <version>1.4.1</version>
28
  </Ultimate_ModuleCreator>
29
  </modules>
30
  <global>
85
  NOTICE OF LICENSE
86
 
87
  This source file is subject to the MIT License
88
+ that is bundled with this package in the file LICENSE.txt.
89
  It is also available through the world-wide-web at this URL:
90
  http://opensource.org/licenses/mit-license.php
91
 
app/code/community/Ultimate/ModuleCreator/etc/m/app/code/cp/Ns/Md/Block/Adminhtml/Entity/Helper/File/01_content.php CHANGED
@@ -27,7 +27,7 @@ class {{Namespace}}_{{Module}}_Block_Adminhtml_{{Entity}}_Helper_File extends Va
27
  */
28
  public function getElementHtml(){
29
  $html = '';
30
- $this->setClass('input-file');
31
  $html.= parent::getElementHtml();
32
  if ($this->getValue()) {
33
  $url = $this->_getUrl();
27
  */
28
  public function getElementHtml(){
29
  $html = '';
30
+ $this->addClass('input-file');
31
  $html.= parent::getElementHtml();
32
  if ($this->getValue()) {
33
  $url = $this->_getUrl();
app/code/community/Ultimate/ModuleCreator/etc/m/app/code/cp/Ns/Md/Block/Entity/Catalog/Product/List/01_content.php CHANGED
@@ -18,6 +18,7 @@ class {{Namespace}}_{{Module}}_Block_{{Entity}}_Catalog_Product_List extends Mag
18
  $collection = $this->get{{Entity}}()->getSelectedProductsCollection();
19
  $collection->addAttributeToSelect('name');
20
  $collection->addUrlRewrite();
 
21
  Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
22
  Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
23
  return $collection;
18
  $collection = $this->get{{Entity}}()->getSelectedProductsCollection();
19
  $collection->addAttributeToSelect('name');
20
  $collection->addUrlRewrite();
21
+ $collection->getSelect()->order('related.position');
22
  Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
23
  Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
24
  return $collection;
app/code/community/Ultimate/ModuleCreator/etc/m/app/code/cp/Ns/Md/Block/Entity/Sibling/List/01_content.php CHANGED
@@ -19,6 +19,7 @@ class {{Namespace}}_{{Module}}_Block_{{Entity}}_{{Sibling}}_List extends {{Names
19
  ${{entity}} = $this->get{{Entity}}();
20
  if (${{entity}}){
21
  $this->get{{Siblings}}()->add{{Entity}}Filter(${{entity}}->getId());
 
22
  }
23
  }
24
  /**
19
  ${{entity}} = $this->get{{Entity}}();
20
  if (${{entity}}){
21
  $this->get{{Siblings}}()->add{{Entity}}Filter(${{entity}}->getId());
22
+ $this->get{{Siblings}}()->unshiftOrder('related_{{entity}}.position', 'ASC');
23
  }
24
  }
25
  /**
app/code/community/Ultimate/ModuleCreator/etc/m/app/code/cp/Ns/Md/Helper/Entity/Image/01_content.php CHANGED
@@ -7,151 +7,15 @@
7
  * @package {{Namespace}}_{{Module}}
8
  * {{qwertyuiop}}
9
  */
10
- class {{Namespace}}_{{Module}}_Helper_{{Entity}}_Image extends Mage_Core_Helper_Data{
11
  /**
12
  * image placeholder
13
  * @var string
14
  */
15
  protected $_placeholder = 'images/placeholder/{{entity}}.jpg';
16
  /**
17
- * image processor class name
18
  * @var string
19
  */
20
- protected $_imageProcessorClass = 'Varien_Image_Adapter_Gd2';
21
- /**
22
- * image processor
23
- * @var null|Varien_Image_Adapter_Gd2
24
- */
25
- protected $_imageProcessor = null;
26
- /**
27
- * image to process
28
- * @var null|string
29
- */
30
- protected $_image = null;
31
- /**
32
- * resize width
33
- * @var null|int
34
- */
35
- protected $_width = null;
36
- /**
37
- * resize height
38
- * @var null|int
39
- */
40
- protected $_height = null;
41
- /**
42
- * resized image folder name
43
- * @var string
44
- */
45
- protected $_resizeFolderName = 'cache';
46
- /**
47
- * image base path
48
- * @var sting
49
- */
50
- protected $_basePath = '{{entity}}';
51
- /**
52
- * image path
53
- * @var string
54
- */
55
- protected $_imagePath = 'image';
56
- /**
57
- * get the image path for {{entityLabel}}
58
- * @access public
59
- * @return string
60
- * {{qwertyuiop}}
61
- */
62
- public function getImageBaseDir(){
63
- return Mage::getBaseDir('media').DS.'{{entity}}'.DS.'image';
64
- }
65
- /**
66
- * get the image url for {{entityLabel}}
67
- * @access public
68
- * @return string
69
- * {{qwertyuiop}}
70
- */
71
- public function getImageBaseUrl(){
72
- return Mage::getBaseUrl('media').'{{entity}}'.'/'.'image';
73
- }
74
- /**
75
- * init image
76
- * @access public
77
- * @param Varien_Object $object
78
- * @param string $imageField
79
- * @return {{Namespace}}_{{Module}}_Helper_{{Entity}}_Image
80
- * {{qwertyuiop}}
81
- */
82
- public function init(Varien_Object $object, $imageField = '{{firstImageField}}'){
83
- $this->_reset();
84
- $this->_image = $object->getData($imageField);
85
- try{
86
- $this->_getImageProcessor()->open($this->getImageBaseDir().$this->_image);
87
- }
88
- catch (Exception $e){
89
- $this->_getImageProcessor()->open(Mage::getDesign()->getSkinUrl($this->_placeholder));
90
- $this->_image = '/'.$this->_placeholder;
91
- }
92
- return $this;
93
- }
94
- /**
95
- * reset the image processor
96
- * @access protected
97
- * @return {{Namespace}}_{{Module}}_Helper_{{Entity}}_Image
98
- * {{qwertyuiop}}
99
- */
100
- protected function _reset(){
101
- $this->_imageProcessor = null;
102
- $this->_image = null;
103
- $this->_width = null;
104
- $this->_height = null;
105
- return $this;
106
- }
107
- /**
108
- * get the image processor
109
- * @access protected
110
- * @return Varien_Image_Adapter_Gd2
111
- * {{qwertyuiop}}
112
- */
113
- protected function _getImageProcessor(){
114
- if (is_null($this->_imageProcessor)){
115
- $class = $this->_imageProcessorClass;
116
- $this->_imageProcessor = new $class();
117
- }
118
- return $this->_imageProcessor;
119
- }
120
- /**
121
- * resize image
122
- * @access public
123
- * @param int $width - defaults to null
124
- * @param int $height - defaults to null
125
- * @return {{Namespace}}_{{Module}}_Helper_{{Entity}}_Image
126
- * {{qwertyuiop}}
127
- */
128
- public function resize($width = null, $height = null){
129
- $this->_width = $width;
130
- $this->_height = $height;
131
- $this->_getImageProcessor()->keepAspectRatio(true);
132
- $this->_getImageProcessor()->keepTransparency(true);
133
- $this->_getImageProcessor()->resize($width, $height);
134
- return $this;
135
- }
136
- /**
137
- * to string - no need for cache expire because the image names will be different
138
- * @access public
139
- * @return string
140
- * {{qwertyuiop}}
141
- */
142
- public function __toString(){
143
- try{
144
- $width = $this->_width;
145
- $height = $this->_height;
146
- $imageRealPath = $this->getImageBaseDir().DS.$this->_resizeFolderName.DS.$width.'x'.$height.$this->_image;
147
- if (!file_exists($imageRealPath)){
148
- $this->_getImageProcessor()->save($imageRealPath);
149
- }
150
- return $this->getImageBaseUrl().'/'.$this->_resizeFolderName.'/'.$width.'x'.$height.$this->_image;
151
- }
152
- catch (Exception $e){
153
- Mage::logException($e);
154
- return '';
155
- }
156
- }
157
  }
7
  * @package {{Namespace}}_{{Module}}
8
  * {{qwertyuiop}}
9
  */
10
+ class {{Namespace}}_{{Module}}_Helper_{{Entity}}_Image extends {{Namespace}}_{{Module}}_Helper_Image_Abstract{
11
  /**
12
  * image placeholder
13
  * @var string
14
  */
15
  protected $_placeholder = 'images/placeholder/{{entity}}.jpg';
16
  /**
17
+ * image subdir
18
  * @var string
19
  */
20
+ protected $_subdir = '{{entity}}';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
  }
app/code/community/Ultimate/ModuleCreator/etc/m/app/code/cp/Ns/Md/Helper/Image/Abstract/01_content.php ADDED
@@ -0,0 +1,447 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ {{License}}
3
+ /**
4
+ * abstract image helper
5
+ *
6
+ * @category {{Namespace}}
7
+ * @package {{Namespace}}_{{Module}}
8
+ * {{qwertyuiop}}
9
+ */
10
+ abstract class {{Namespace}}_{{Module}}_Helper_Image_Abstract extends Mage_Core_Helper_Data{
11
+ /**
12
+ * path to image placeholder
13
+ * override in child
14
+ * @var string
15
+ */
16
+ protected $_placeholder = '';
17
+ /**
18
+ * subdirectory to save imaves
19
+ * override in child
20
+ * @var string
21
+ */
22
+ protected $_subdir = '';
23
+ /**
24
+ * image processor
25
+ * @var null|Varien_Image_Adapter_Gd2
26
+ */
27
+ protected $_imageProcessor = null;
28
+ /**
29
+ * image to process
30
+ * @var unknown_type
31
+ */
32
+ protected $_image = null;
33
+ /**
34
+ * error message
35
+ * @var string
36
+ */
37
+ protected $_openError = "";
38
+ /**
39
+ * keep image frame
40
+ * @var bool
41
+ */
42
+ protected $_keepFrame = false;
43
+ /**
44
+ * keep image aspect ratio
45
+ * @var bool
46
+ */
47
+ protected $_keepAspectRatio = true;
48
+ /**
49
+ * constrain image
50
+ * @var bool
51
+ */
52
+ protected $_constrainOnly = true;
53
+ /**
54
+ * addaptive resize - crop
55
+ * https://github.com/wearefarm/magento-adaptive-resize/blob/master/README.md
56
+ * @var bool
57
+ */
58
+ protected $_adaptiveResize = 'center'; // false|center|top|bottom
59
+ /**
60
+ * image width
61
+ * @var mixed(null|int)
62
+ */
63
+ protected $_width = null;
64
+ /**
65
+ * image height
66
+ * @var mixed(null|int)
67
+ */
68
+ protected $_height = null;
69
+ /**
70
+ * image resize needed
71
+ * @var mixed (null|array)
72
+ */
73
+ protected $_scheduledResize = null;
74
+ /**
75
+ * image is resized
76
+ * @var bool
77
+ */
78
+ protected $_resized = false;
79
+ /**
80
+ * addaptive resize positions
81
+ * https://github.com/wearefarm/magento-adaptive-resize/blob/master/README.md
82
+ * @var array
83
+ */
84
+ protected $_adaptiveResizePositions = array(
85
+ 'center'=>array(0.5,0.5),
86
+ 'top' =>array(1,0),
87
+ 'bottom'=>array(0,1)
88
+ );
89
+ /**
90
+ * resized image folder name
91
+ * @var string
92
+ */
93
+ protected $_resizeFolderName = 'cache';
94
+ /**
95
+ * get the image base dir
96
+ * @access public
97
+ * @return string
98
+ * {{qwertyuiop}}
99
+ */
100
+ public function getImageBaseDir(){
101
+ return Mage::getBaseDir('media').DS.$this->_subdir.DS.'image';
102
+ }
103
+ /**
104
+ * get the image url for object
105
+ * @access public
106
+ * @return string
107
+ * {{qwertyuiop}}
108
+ */
109
+ public function getImageBaseUrl(){
110
+ return Mage::getBaseUrl('media').$this->_subdir.'/'.'image';
111
+ }
112
+
113
+ /**
114
+ * init image
115
+ * @access public
116
+ * @param Varien_Object $object
117
+ * @param string $imageField
118
+ * @return {{Namespace}}_{{Module}}_Helper_Image_Abstract
119
+ * {{qwertyuiop}}
120
+ */
121
+ public function init(Varien_Object $object, $imageField = 'image'){
122
+ $this->_imageProcessor = null;
123
+ $this->_image = $object->getDataUsingMethod($imageField);
124
+ if(!$this->_image) {
125
+ $this->_image = '/'.$this->_placeholder;
126
+ }
127
+ $this->_widht = null;
128
+ $this->_height = null;
129
+ $this->_scheduledResize = false;
130
+ $this->_resized = false;
131
+ $this->_adaptiveResize = 'center';
132
+
133
+ try{
134
+ $this->_getImageProcessor()->open($this->getImageBaseDir().$this->_image);
135
+ }
136
+ catch (Exception $e){
137
+ $this->_openError = $e->getMessage();
138
+ try{
139
+ $this->_getImageProcessor()->open(Mage::getDesign()->getSkinUrl($this->_placeholder));
140
+ $this->_image = '/'.$this->_placeholder;
141
+ }
142
+ catch(Exception $e) {
143
+ $this->_openError .= "\n".$e->getMessage();
144
+ $this->_image = null;
145
+ }
146
+ }
147
+ return $this;
148
+ }
149
+ /**
150
+ * get the image processor
151
+ * @access protected
152
+ * @return Varien_Image_Adapter_Gd2
153
+ * {{qwertyuiop}}
154
+ */
155
+ protected function _getImageProcessor() {
156
+ if (is_null($this->_imageProcessor)) {
157
+ $this->_imageProcessor = Varien_Image_Adapter::factory('GD2');
158
+ $this->_imageProcessor->keepFrame($this->_keepFrame);
159
+ $this->_imageProcessor->keepAspectRatio($this->_keepAspectRatio);
160
+ $this->_imageProcessor->constrainOnly($this->_constrainOnly);
161
+ }
162
+ return $this->_imageProcessor;
163
+ }
164
+ /**
165
+ * Get/set keepAspectRatio
166
+ * @access public
167
+ * @param bool $value
168
+ * @return mixed(bool|{{Namespace}}_{{Module}}_Helper_Image_Abstract)
169
+ * {{qwertyuiop}}
170
+ */
171
+ public function keepAspectRatio($value = null){
172
+ if (null !== $value) {
173
+ $this->_getImageProcessor()->keepAspectRatio($value);
174
+ return $this;
175
+ }
176
+ else {
177
+ return $this->_getImageProcessor()->keepAspectRatio();
178
+ }
179
+ }
180
+
181
+ /**
182
+ * Get/set keepFrame
183
+ * @access public
184
+ * @param bool $value
185
+ * @return mixed(bool|{{Namespace}}_{{Module}}_Helper_Image_Abstract)
186
+ * {{qwertyuiop}}
187
+ */
188
+ public function keepFrame($value = null){
189
+ if (null !== $value) {
190
+ $this->_getImageProcessor()->keepFrame($value);
191
+ return $this;
192
+ }
193
+ else {
194
+ return $this->_getImageProcessor()->keepFrame();
195
+ }
196
+ }
197
+ /**
198
+ * Get/set keepTransparency
199
+ * @access public
200
+ * @param bool $value
201
+ * @return mixed(bool|{{Namespace}}_{{Module}}_Helper_Image_Abstract)
202
+ * {{qwertyuiop}}
203
+ */
204
+ public function keepTransparency($value = null){
205
+ if (null !== $value) {
206
+ $this->_getImageProcessor()->keepTransparency($value);
207
+ return $this;
208
+ }
209
+ else {
210
+ return $this->_getImageProcessor()->keepTransparency();
211
+ }
212
+ }
213
+ /**
214
+ * Get/set adaptiveResize
215
+ * @access public
216
+ * @param bool|string $value
217
+ * @return mixed(bool|{{Namespace}}_{{Module}}_Helper_Image_Abstract)
218
+ * https://github.com/wearefarm/magento-adaptive-resize/blob/master/README.md
219
+ * {{qwertyuiop}}
220
+ */
221
+ public function adaptiveResize($value = null){
222
+ if (null !== $value) {
223
+ $this->_adaptiveResize = $value;
224
+ if($value) {
225
+ $this->keepFrame(false);
226
+ }
227
+ return $this;
228
+ }
229
+ else {
230
+ return $this->_adaptiveResize;
231
+ }
232
+ }
233
+ /**
234
+ * Get/set constrainOnly
235
+ * @access public
236
+ * @param bool $value
237
+ * @return mixed(bool|{{Namespace}}_{{Module}}_Helper_Image_Abstract)
238
+ * {{qwertyuiop}}
239
+ */
240
+ public function constrainOnly($value = null){
241
+ if (null !== $value) {
242
+ $this->_getImageProcessor()->constrainOnly($value);
243
+ return $this;
244
+ }
245
+ else {
246
+ return $this->_getImageProcessor()->constrainOnly();
247
+ }
248
+ }
249
+ /**
250
+ * Get/set quality, values in percentage from 0 to 100
251
+ * @access public
252
+ * @param int $value
253
+ * @return mixed(bool|{{Namespace}}_{{Module}}_Helper_Image_Abstract)
254
+ * {{qwertyuiop}}
255
+ */
256
+ public function quality($value = null){
257
+ if (null !== $value) {
258
+ $this->_getImageProcessor()->quality($value);
259
+ return $this;
260
+ }
261
+ else {
262
+ return $this->_getImageProcessor()->quality();
263
+ }
264
+ }
265
+ /**
266
+ * Get/set keepBackgroundColor
267
+ * @access public
268
+ * @param array $value
269
+ * @return mixed(bool|{{Namespace}}_{{Module}}_Helper_Image_Abstract)
270
+ * {{qwertyuiop}}
271
+ */
272
+ public function backgroundColor($value = null){
273
+ if (null !== $value) {
274
+ $this->_getImageProcessor()-> backgroundColor($value);
275
+ return $this;
276
+ }
277
+ else {
278
+ return $this->_getImageProcessor()-> backgroundColor();
279
+ }
280
+ }
281
+ /**
282
+ * resize image
283
+ * @access public
284
+ * @param int $width - defaults to null
285
+ * @param int $height - defaults to null
286
+ * @return {{Namespace}}_{{Module}}_Helper_Image_Abstract
287
+ * {{qwertyuiop}}
288
+ */
289
+ public function resize($width = null, $height = null) {
290
+ $this->_scheduledResize = true;
291
+ $this->_width = $width;
292
+ $this->_height = $height;
293
+ return $this;
294
+ }
295
+ /**
296
+ * get destination image prefix
297
+ * @access protected
298
+ * @return {{Namespace}}_{{Module}}_Helper_Image_Abstract
299
+ * {{qwertyuiop}}
300
+ */
301
+ protected function _getDestinationImagePrefix() {
302
+ if(!$this->_image) {
303
+ return $this;
304
+ }
305
+ $imageRealPath = "";
306
+ if($this->_scheduledResize) {
307
+ $width = $this->_width;
308
+ $height = $this->_height;
309
+ $adaptive = $this->adaptiveResize();
310
+ $keepFrame = $this->keepFrame();
311
+ $keepAspectRatio= $this->keepAspectRatio();
312
+ $constrainOnly = $this->constrainOnly();
313
+ $imageRealPath = $width.'x'.$height;
314
+ $options = "";
315
+
316
+ if(!$keepAspectRatio) {
317
+ $imageRealPath .= '-exact';
318
+ }
319
+ else {
320
+ if(!$keepFrame && $width && $height && ($adaptive !== false)) {
321
+ $adaptive = strtolower(trim($adaptive));
322
+ if(isset($this->_adaptiveResizePositions[$adaptive])) {
323
+ $imageRealPath .= '-'.$adaptive;
324
+ }
325
+ }
326
+ }
327
+ if($keepFrame) {
328
+ $imageRealPath .= '-frame';
329
+ $_backgroundColor = $this->backgroundColor();
330
+ if($_backgroundColor) {
331
+ $imageRealPath .= '-'.implode('-',$_backgroundColor);
332
+ }
333
+ }
334
+ if(!$constrainOnly) {
335
+ $imageRealPath .= '-zoom';
336
+ }
337
+ }
338
+ return $imageRealPath;
339
+ }
340
+ /**
341
+ * get image destination path
342
+ * @access protected
343
+ * @return string
344
+ * {{qwertyuiop}}
345
+ */
346
+ protected function _getDestinationPath() {
347
+ if(!$this->_image) {
348
+ return $this;
349
+ }
350
+ if($this->_scheduledResize) {
351
+ return $this->getImageBaseDir().DS.$this->_resizeFolderName.DS.$this->_getDestinationImagePrefix().DS.$this->_image;
352
+ } else {
353
+ return $this->getImageBaseDir().DS.$this->_image;
354
+ }
355
+ }
356
+ /**
357
+ * get image url
358
+ * @access protected
359
+ * @return mixed (string|bool)
360
+ * {{qwertyuiop}}
361
+ */
362
+ protected function _getImageUrl() {
363
+ if(!$this->_image) {
364
+ return false;
365
+ }
366
+ if($this->_scheduledResize) {
367
+ return $this->getImageBaseUrl().'/'.$this->_resizeFolderName.'/'.$this->_getDestinationImagePrefix().$this->_image;
368
+ }
369
+ else {
370
+ return $this->getImageBaseUrl().$this->_image;
371
+ }
372
+ }
373
+ /**
374
+ * resize image
375
+ * @access protected
376
+ * @return {{Namespace}}_{{Module}}_Helper_Image_Abstract
377
+ * {{qwertyuiop}}
378
+ */
379
+ protected function _doResize() {
380
+ if(!$this->_image || !$this->_scheduledResize || $this->_resized) {
381
+ return $this;
382
+ }
383
+ $this->_resized = true; //mark as resized
384
+ $width = $this->_width;
385
+ $height = $this->_height;
386
+ $adaptive = $width && $height &&
387
+ $this->keepAspectRatio() && !$this->keepFrame() &&
388
+ ($this->adaptiveResize() !== false);
389
+ $adaptivePosition = false;
390
+ if($adaptive) {
391
+ $adaptive = strtolower(trim($this->adaptiveResize()));
392
+ if(isset($this->_adaptiveResizePositions[$adaptive])) {
393
+ $adaptivePosition = $this->_adaptiveResizePositions[$adaptive];
394
+ }
395
+ }
396
+ $processor = $this->_getImageProcessor();
397
+
398
+ if(!$adaptivePosition) {
399
+ $processor->resize($width, $height);
400
+ return $this;
401
+ }
402
+ //make adaptive resize
403
+ //https://github.com/wearefarm/magento-adaptive-resize/blob/master/README.md
404
+ $currentRatio = $processor->getOriginalWidth() / $processor->getOriginalHeight();
405
+ $targetRatio = $width / $height;
406
+ if ($targetRatio > $currentRatio) {
407
+ $processor->resize($width, null);
408
+ }
409
+ else {
410
+ $processor->resize(null, $height);
411
+ }
412
+ $diffWidth = $processor->getOriginalWidth() - $width;
413
+ $diffHeight = $processor->getOriginalHeight() - $height;
414
+ if($diffWidth || $diffHeight) {
415
+ $processor->crop(
416
+ floor($diffHeight * $adaptivePosition[0]), //top rate
417
+ floor($diffWidth / 2),
418
+ ceil($diffWidth / 2),
419
+ ceil($diffHeight * $adaptivePosition[1]) //bottom rate
420
+ );
421
+ }
422
+ return $this;
423
+ }
424
+ /**
425
+ * to string - no need for cache expire because the image names will be different
426
+ * @access public
427
+ * @return string
428
+ * {{qwertyuiop}}
429
+ */
430
+ public function __toString(){
431
+ try{
432
+ if(!$this->_image) {
433
+ throw new Exception($this->_openError);
434
+ }
435
+ $imageRealPath = $this->_getDestinationPath();
436
+ if (!file_exists($imageRealPath)) {
437
+ $this->_doResize();
438
+ $this->_getImageProcessor()->save($imageRealPath);
439
+ }
440
+ return $this->_getImageUrl();
441
+ }
442
+ catch (Exception $e){
443
+ Mage::logException($e);
444
+ return 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAFr0lEQVR42rWXaUxUZxSGZVOKpWBRCGrSijBgDG1dagaxVgNSUqhAqq1CqzVVksb+sdZU0hgbfhQ1riEoiHFns4qVEYWglEWgVaBQLXRYJKzCzCA7KCpvz7njHbgz4AXSkryZYea73/Oe5Tv3zhQABtGfGcmCZPk/yYIZEuYIuDnJgeRKcn8pj/9Q7rw3M5g1moFpJGVnVxe0Wi20Oh107e1of/wYj1kdHejo7AR/z+oS1d0tqLunx6AeVm+vifoHBsAMZo1lYKVWq0NzyyO0PGrFo9Y2tLZp0KYRDA2bMjamN6c3OGzSxGwvmWDGWAasSR9qde0EbiVwG4E10AxnQw/XQ1nDUAYZZ2QU9fX1gRnMGtMAASTwMUvBGoYyQFoClmkJ5A0QhOHSlEtTbQoeAewVRdGy+kZoYDwGCGSacmOwKVQK6+9H/yh68uSJvAGGCGBTuACur6pCXUICssPDcXfHDvy5dy8KIyLQdOkSmh8+FNI8YCwCs54+fSpvgCNkOJeiwwieHROD3KBP8CDyJ9QePYLq/fuhjoqCml7L9/yI236+yI+L40hZDJRocHBwXAZGjTztq00o+mYbKiIj8cf2cGT6rIJKqUTakiW44a1EwdYtKNm1C/lfboBq0xcMM9GzZ8/kDRDMBJ5FkWeHrkPJD7uQvsYb177egr/LyzndQhPmpqYi2c0Fv23aiPxt25AZHIi8kycnZ4CaS1rz2lpcXbEUhd9ux7VVSmSfO8d1NaSY36cGBSJzrT9uhYYia+PnyFy/Dul+K6FpbmaoQc+fP5c3wF0twtnM5d27cfPTAEFJYRskcH69vjkMBaEh1BtBuEX9kbJIgav+q5EW6Iu0PXsYatCLFy/kDfCR4j7g1PIxSwwm+PogJCo98c/9+1L41s24FxaCIh8f5K3xwdVlC3CeTkTCewqkBvjhSthnkzMgwvn9WS9PpH7kh3Pve4yE0+brURLsixJqxOIPvKHyWoicM2eEWscrZuPI3Dk4tciNoRLJGuCB0q0fMMJQOb5YgQMz7BHj5mQYJvE+3shdqkDpvHkonz8PqmUKZJ8+zQAh0ti3HbDPbAriFusNDA0NscZngKFC9C8n2sm1foh6wwqHZ9vgdnIyYlZ5QeVojd/p0r+szHHZxR5Z8fGGCCtKSxHnZI1ouuZsyMcMlkjWAEN79dELEV/4ficOzZmOE7TpPlcnpDrb4A5d9oDgv7ja42ZcrAHOgLggfyTMskbsXBukROyeeAkYKkbPHd9UX48DHjMRa0lAgmfQJXenmiPFfQauH4+RwH89fBgXXGyRTOaOLpiFlsbGic8BHi5i9GyAm+7yoYOIUdghiZbfmmqBC++8iWiaCyJcXVaG6ABfpNCaLDJ32s0OV+ga2oP3Eu+QvJ/8A8mA3oDkvLP7Q8H+OOVB9ba2QKHja8icb4vEBTNx0cMB11xex10q071pFjhPa47QWuojPs58P+H7Cov/HyLGcjkD7Fw0IElf0oH9OOjpiBvudihztEG1uRnqSGoylE3RH/N0wsWon4WHFY1Gg5aWFjQ1NaGhoRH19Q1QqVR3iPEWyVzOgJh+iQFWQ10dTuz8DvsCVuOY0gXRXvNxNMQfsfRZjVotwGtpfBcWFqKoqAjldM+oqKhguJr2X0iayjw5Axy9sYGRE01yvvk7vo4HGEeel5fHnwt1r6qqYngj7b1IbD45Ayb1Z4DUgHS48BqGcb055Tk5uUIfVVdXIyMjQ2tra7uC9p7OHHkDBB7bgGn0/Bmv5ej5QaaOSlRcXIyamhoB7uzs7Ef72jJjogaM6//K9HPH63Q6qKkPKisrkZ6e3kiRL2c4yUzWgPjDZCIGAEgM0C8qNsBwbrh3STZSoLyB5QR8Ve1HKwGv5x7gsz5E8AL+HSie9YkYsHx5Rr25FJOUF2kuyUoCkjUgNcGZsJ6kpolDZrz6F2ZUsalEFcbPAAAAAElFTkSuQmCC';
445
+ }
446
+ }
447
+ }
app/code/community/Ultimate/ModuleCreator/etc/m/app/code/cp/Ns/Md/Model/Entity/01_top.php CHANGED
@@ -8,5 +8,20 @@
8
  * {{qwertyuiop}}
9
  */
10
  class {{Namespace}}_{{Module}}_Model_{{Entity}} extends Mage_Core_Model_Abstract{
 
 
 
 
 
11
  const CACHE_TAG = '{{module}}_{{entity}}';
12
-
 
 
 
 
 
 
 
 
 
 
8
  * {{qwertyuiop}}
9
  */
10
  class {{Namespace}}_{{Module}}_Model_{{Entity}} extends Mage_Core_Model_Abstract{
11
+ /**
12
+ * Entity code.
13
+ * Can be used as part of method name for entity processing
14
+ */
15
+ const ENTITY= '{{module}}_{{entity}}';
16
  const CACHE_TAG = '{{module}}_{{entity}}';
17
+ /**
18
+ * Prefix of model events names
19
+ * @var string
20
+ */
21
+ protected $_eventPrefix = '{{module}}_{{entity}}';
22
+
23
+ /**
24
+ * Parameter name in event
25
+ * @var string
26
+ */
27
+ protected $_eventObject = '{{entity}}';
app/code/community/Ultimate/ModuleCreator/etc/m/app/code/cp/Ns/Md/controllers/Adminhtml/Module/EntityController/10_center.php CHANGED
@@ -29,6 +29,7 @@
29
  catch (Exception $e) {
30
  Mage::getSingleton('adminhtml/session')->addError(Mage::helper('{{module}}')->__('There was an error deleteing {{entityLabel}}.'));
31
  $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
 
32
  return;
33
  }
34
  }
@@ -59,6 +60,7 @@
59
  }
60
  catch (Exception $e) {
61
  Mage::getSingleton('adminhtml/session')->addError(Mage::helper('{{module}}')->__('There was an error deleteing {{entitiesLabel}}.'));
 
62
  }
63
  }
64
  $this->_redirect('*/*/index');
29
  catch (Exception $e) {
30
  Mage::getSingleton('adminhtml/session')->addError(Mage::helper('{{module}}')->__('There was an error deleteing {{entityLabel}}.'));
31
  $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
32
+ Mage::logException($e);
33
  return;
34
  }
35
  }
60
  }
61
  catch (Exception $e) {
62
  Mage::getSingleton('adminhtml/session')->addError(Mage::helper('{{module}}')->__('There was an error deleteing {{entitiesLabel}}.'));
63
+ Mage::logException($e);
64
  }
65
  }
66
  $this->_redirect('*/*/index');
app/code/community/Ultimate/ModuleCreator/etc/m/app/code/cp/Ns/Md/controllers/Adminhtml/Module/EntityController/11_mass_status.php CHANGED
@@ -24,6 +24,7 @@
24
  }
25
  catch (Exception $e) {
26
  Mage::getSingleton('adminhtml/session')->addError(Mage::helper('{{module}}')->__('There was an error updating {{entitiesLabel}}.'));
 
27
  }
28
  }
29
  $this->_redirect('*/*/index');
24
  }
25
  catch (Exception $e) {
26
  Mage::getSingleton('adminhtml/session')->addError(Mage::helper('{{module}}')->__('There was an error updating {{entitiesLabel}}.'));
27
+ Mage::logException($e);
28
  }
29
  }
30
  $this->_redirect('*/*/index');
app/code/community/Ultimate/ModuleCreator/etc/m/app/code/cp/Ns/Md/controllers/Adminhtml/Module/EntityController/12_mass_update.php CHANGED
@@ -24,6 +24,7 @@
24
  }
25
  catch (Exception $e) {
26
  Mage::getSingleton('adminhtml/session')->addError(Mage::helper('{{module}}')->__('There was an error updating {{entitiesLabel}}.'));
 
27
  }
28
  }
29
  $this->_redirect('*/*/index');
24
  }
25
  catch (Exception $e) {
26
  Mage::getSingleton('adminhtml/session')->addError(Mage::helper('{{module}}')->__('There was an error updating {{entitiesLabel}}.'));
27
+ Mage::logException($e);
28
  }
29
  }
30
  $this->_redirect('*/*/index');
app/code/community/Ultimate/ModuleCreator/etc/m/app/code/cp/Ns/Md/controllers/Adminhtml/Module/EntityController/13_mass_parents.php CHANGED
@@ -24,6 +24,7 @@
24
  }
25
  catch (Exception $e) {
26
  Mage::getSingleton('adminhtml/session')->addError(Mage::helper('{{module}}')->__('There was an error updating {{entitiesLabel}}.'));
 
27
  }
28
  }
29
  $this->_redirect('*/*/index');
24
  }
25
  catch (Exception $e) {
26
  Mage::getSingleton('adminhtml/session')->addError(Mage::helper('{{module}}')->__('There was an error updating {{entitiesLabel}}.'));
27
+ Mage::logException($e);
28
  }
29
  }
30
  $this->_redirect('*/*/index');
app/code/community/Ultimate/ModuleCreator/etc/m/app/code/cp/Ns/Md/controllers/Adminhtml/Module/EntityController/IsTree/01_top.php CHANGED
@@ -225,6 +225,7 @@ class {{Namespace}}_{{Module}}_Adminhtml_{{Module}}_{{Entity}}Controller extends
225
  catch (Exception $e){
226
  Mage::getSingleton('adminhtml/session')->addError(Mage::helper('{{module}}')->__('An error occurred while trying to delete the {{entityLabel}}.'));
227
  $this->getResponse()->setRedirect($this->getUrl('*/*/edit', array('_current'=>true)));
 
228
  return;
229
  }
230
  }
225
  catch (Exception $e){
226
  Mage::getSingleton('adminhtml/session')->addError(Mage::helper('{{module}}')->__('An error occurred while trying to delete the {{entityLabel}}.'));
227
  $this->getResponse()->setRedirect($this->getUrl('*/*/edit', array('_current'=>true)));
228
+ Mage::logException($e);
229
  return;
230
  }
231
  }
app/code/community/Ultimate/ModuleCreator/etc/m/app/code/cp/Ns/Md/controllers/Adminhtml/Module/EntityController/IsTree/09_real_save.php CHANGED
@@ -4,6 +4,7 @@
4
  }
5
  catch (Exception $e){
6
  $this->_getSession()->addError($e->getMessage())->set{{Entity}}Data($data);
 
7
  $refreshTree = 'false';
8
  }
9
  }
4
  }
5
  catch (Exception $e){
6
  $this->_getSession()->addError($e->getMessage())->set{{Entity}}Data($data);
7
+ Mage::logException($e);
8
  $refreshTree = 'false';
9
  }
10
  }
app/code/community/Ultimate/ModuleCreator/etc/modulecreator.xml CHANGED
@@ -2744,5 +2744,19 @@
2744
  </file>
2745
  </content>
2746
  </file>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2747
  </files>
2748
  </config>
2744
  </file>
2745
  </content>
2746
  </file>
2747
+ <file translate="title" module="modulecreator">
2748
+ <title>Abstract helper</title>
2749
+ <filetype>php</filetype>
2750
+ <depend>
2751
+ <has_image />
2752
+ </depend>
2753
+ <from>app/code/cp/Ns/Md/Helper/Image/Abstract/</from>
2754
+ <to>app/code/{{codepool}}/{{Namespace}}/{{Module}}/Helper/Image/Abstract.php</to>
2755
+ <content>
2756
+ <file>
2757
+ <name>01_content.php</name>
2758
+ </file>
2759
+ </content>
2760
+ </file>
2761
  </files>
2762
  </config>
app/design/adminhtml/default/default/template/ultimate_modulecreator/edit/tab/entities/entity/attribute.phtml CHANGED
@@ -114,7 +114,7 @@
114
  <?php echo Mage::helper('modulecreator/adminhtml')->getTooltipHtml(Mage::helper('modulecreator')->__('Acts as name'), Mage::helper('modulecreator')->__('The attribute marked this way will be used in lists and dropdowns.'))?>
115
  </td>
116
  </tr>
117
- <tr class="type-text type-textarea type-yesno type-timestamp type-int type-decimal type-website">
118
  <td class="label">
119
  <label for="attribute_<?php echo $_id?>_required">
120
  <?php echo Mage::helper('modulecreator')->__('Is required') ?>
@@ -136,7 +136,7 @@
136
  <?php echo Mage::helper('modulecreator/adminhtml')->getTooltipHtml(Mage::helper('modulecreator')->__('Use WYSIWYG editor'), Mage::helper('modulecreator')->__('This will allow you to use WYSIWYG editors for texareas.'))?>
137
  </td>
138
  </tr>
139
- <tr class="type-text type-yesno type-timestamp type-int type-decimal type-website">
140
  <td class="label">
141
  <label for="attribute_<?php echo $_id?>_admin_grid">
142
  <?php echo Mage::helper('modulecreator')->__('Add in admin grid') ?>
114
  <?php echo Mage::helper('modulecreator/adminhtml')->getTooltipHtml(Mage::helper('modulecreator')->__('Acts as name'), Mage::helper('modulecreator')->__('The attribute marked this way will be used in lists and dropdowns.'))?>
115
  </td>
116
  </tr>
117
+ <tr class="type-text type-textarea type-yesno type-timestamp type-int type-decimal type-website type-country">
118
  <td class="label">
119
  <label for="attribute_<?php echo $_id?>_required">
120
  <?php echo Mage::helper('modulecreator')->__('Is required') ?>
136
  <?php echo Mage::helper('modulecreator/adminhtml')->getTooltipHtml(Mage::helper('modulecreator')->__('Use WYSIWYG editor'), Mage::helper('modulecreator')->__('This will allow you to use WYSIWYG editors for texareas.'))?>
137
  </td>
138
  </tr>
139
+ <tr class="type-text type-yesno type-timestamp type-int type-decimal type-website type-country">
140
  <td class="label">
141
  <label for="attribute_<?php echo $_id?>_admin_grid">
142
  <?php echo Mage::helper('modulecreator')->__('Add in admin grid') ?>
package.xml CHANGED
@@ -1,25 +1,27 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Ultimate_ModuleCreator</name>
4
- <version>1.4.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/MIT">MIT License</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Develop custom Magento modules without writing any code. Use a module creator. Use this module creator</summary>
10
  <description>This module allows you to create custom Magento modules for your own entities. You can create as many entities as you want in one extension, you can establish relations between them, decide to generate only back-end pages or both back-end and frontend pages.</description>
11
- <notes>Features:&#xD;
12
- - Added admin search support&#xD;
13
- Bug fix:&#xD;
14
- - Related entities not remembered on grid select&#xD;
15
- - URL rewrites Router not generated correctly&#xD;
16
- - Admin layout for related entities&#xD;
17
  Refactor:&#xD;
18
- - Renamed source folders. Made them shorter to avoid windows unzip issue.</notes>
 
 
19
  <authors><author><name>Marius Strajeru</name><user>tzyganu</user><email>tzyganu@gmail.com</email></author></authors>
20
- <date>2013-03-04</date>
21
- <time>20:37:26</time>
22
- <contents><target name="magecommunity"><dir name="Ultimate"><dir name="ModuleCreator"><dir name="Block"><dir name="Adminhtml"><dir name="Modulecreator"><dir name="Edit"><file name="Form.php" hash="cb4328ae858a31a31d76016e50b56739"/><dir name="Tab"><dir name="Entities"><dir name="Entity"><file name="Attribute.php" hash="daa6787fa3f72150fc86c4350be932da"/></dir><file name="Entity.php" hash="8d5b07f735a5a7107f1abf66bbb482da"/></dir><file name="Entities.php" hash="65602b8daaa8585d9c94d7a4d8d7dcde"/><file name="Help.php" hash="304c68d68e9adf0962817e27877683b6"/><file name="Relation.php" hash="43730e74747b8e6e5985eee259e6db07"/><file name="Settings.php" hash="64feb76f7190edb881fbc47b7cb03a61"/></dir><file name="Tabs.php" hash="578af9256efb3d516db14db7e396e5e3"/></dir><file name="Edit.php" hash="491948d86e2e3a50fa185a407997c163"/><file name="Grid.php" hash="96ef8fa066b89937712b44991191f4de"/></dir><file name="Modulecreator.php" hash="b2630018b6f103d1a3f9e92ed7de7a54"/></dir></dir><file name="Exception.php" hash="aaef7086ff700d7132418cf68629246f"/><dir name="Helper"><file name="Adminhtml.php" hash="f913d91b1041032b35e4d0ca2fd20205"/><file name="Data.php" hash="3e8d3a8b1c2ff38f5badbf0704146e21"/></dir><dir name="Model"><file name="Abstract.php" hash="33a186edb30b8ff3f54fda6690a90a2c"/><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Source"><file name="Codepool.php" hash="045f0555fc545799148627e081ca8727"/><file name="Install.php" hash="7fb2fd108b5bed63b31ab9cfd0da25f5"/><file name="Layout.php" hash="3d63a2221b3a93926c662b3c10effc2c"/></dir></dir></dir></dir><dir name="Attribute"><dir name="Type"><file name="Abstract.php" hash="681df23324db6483e71689bf60dd443f"/><file name="Decimal.php" hash="593c993bfba24af511164987a8c11eb3"/><file name="File.php" hash="a8e18228577beb612f202acbe0ddb41a"/><file name="Image.php" hash="8dfbde0bf761b04864146be321197eb6"/><file name="Int.php" hash="7e06c84fa8a3c2940624248c386e2d67"/><file name="Text.php" hash="237217feda93dadf93a63f181ebb8793"/><file name="Textarea.php" hash="04cd8559fbeeb8b81733e6c9a3b7b725"/><file name="Timestamp.php" hash="d18d599090ac5fa824e44edf3fa14486"/><file name="Website.php" hash="659f6de66ea3d529613cfe90f7fc3f99"/><file name="Yesno.php" hash="dbb96529e483d587d8d8d99f176afa8b"/></dir></dir><file name="Attribute.php" hash="b6ab929edc78a41829630b0a02d59e5e"/><file name="Entity.php" hash="bd57954f5eb26d276273e9040281b236"/><dir name="Module"><file name="Collection.php" hash="0e413b976cbc9649ec982fe0f4b95dd1"/></dir><file name="Module.php" hash="178c6f038c1e4cba5c1b34da5a99a84b"/><file name="Relation.php" hash="aca1db5db2cd807298acd21dc7b24b39"/><file name="Writer.php" hash="b47341646a1882d77e57cf6a5b30ad49"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="ModulecreatorController.php" hash="11ee92957c8099af688993543b9f849e"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="755c04b748c41ced20f41c725acc95c2"/><file name="config.xml" hash="799273103ec8c4c35b31dbd5d88dd8f9"/><dir name="m"><dir name="app"><dir name="code"><dir name="cp"><dir name="Ns"><dir name="Md"><dir name="Block"><dir name="Adminhtml"><dir name="Catalog"><dir name="Product"><dir name="Edit"><dir name="Tab"><dir name="Entity"><file name="01_content.php" hash="59347ed053e0fe3dc2e25a5c5490ecd4"/><dir name="IsTree"><file name="01_content.php" hash="1eda50311bcf910106a49ad54f1681fd"/></dir></dir></dir></dir></dir></dir><dir name="Entity"><file name="01_content.php" hash="5dfc799aeee50cc5ef32d356c1cc176f"/><dir name="Abstract"><file name="01_content.php" hash="dfe60775e0f319347a8937a17733c751"/></dir><dir name="Edit"><file name="01_content.php" hash="21d1cd84da305a41e516752e39c12404"/><dir name="Form"><file name="01_content.php" hash="39f68c93dba53e650f502776c03caf20"/><dir name="IsTree"><file name="01_top.php" hash="6bf3a72161678690d515deb253fb5f3d"/><file name="02_product_relation.php" hash="adee6754a75247b7d401d8f774d3918b"/><file name="03_entity_relation.php" hash="7f06c1f227ff6e8e1f64606bc1da6d3a"/><file name="04_footer.php" hash="cbb184dd8e05c9709e5dcaedaa0495cf"/></dir></dir><dir name="IsTree"><file name="01_content.php" hash="6f8ab2c71f28a7618db8b94c311d6f13"/></dir><dir name="Tab"><dir name="Form"><file name="01_top.php" hash="9f6681f6bc3e012a8c711739a0ed6ae1"/><file name="02_image.php" hash="8dbf5010de2c46aabb02cd7a4df6f45e"/><file name="03_file.php" hash="64ede5038fe0edfec08671a5ca521777"/><file name="04_wysiwyg.php" hash="d25a58b233bd88a2e6d1fd5a79398394"/><file name="05_wysiwyg_is_tree.php" hash="6ef452bba45e48bbfc370ea24b61d6e0"/><file name="06_path_tree.php" hash="9991a81df109b0abbc8bd06a26694d1b"/><file name="07_parents.php" hash="476f7ebd1b04a879f3dd51b1913f9a9d"/><file name="08_attributes.php" hash="44c81d580dcf072b2ed9b5cc90fb1fac"/><file name="09_url_rewrite.php" hash="fdcf74d7a3abe5bfa32db1d5f042d8e2"/><file name="10_status.php" hash="ade9e66ee2dd546ebea8c9800b378a88"/><file name="11_rss.php" hash="0a122d46cc4826a0bd62b2f5d52b3fdc"/><file name="12_seo.php" hash="f0cf29478e91ced8dc39170b2574f1f2"/><file name="13_add_values_not_tree.php" hash="dc7ba40ed78eb43b08fc46c235029c8c"/><file name="14_add_values_tree.php" hash="c569ce680f4c5328292d6bb4f4c37e69"/><file name="15_get_entity_tree.php" hash="3d9027f073bf28f89aecd6b224c350ca"/><file name="16_footer.php" hash="cbb184dd8e05c9709e5dcaedaa0495cf"/></dir><dir name="Product"><file name="01_content.php" hash="e42fb1044c47e7e1ba7c456f057b9558"/></dir><dir name="Sibling"><file name="01_content.php" hash="45cbbc5d065f5e0402a8340e14e5e6b2"/><dir name="IsTree"><file name="01_content.php" hash="0809c980a4d5059bc679e37762853f5e"/></dir></dir></dir><dir name="Tabs"><file name="01_top.php" hash="7cecbd5b68dc09c4e9a14f214b3b70df"/><file name="02_relations_tabs.php" hash="3f1eba9e9a7bf177185364cffc8468ba"/><file name="03_product_relation.php" hash="aee681c7021e9efad07a39bc8f8cf56d"/><file name="04_footer.php" hash="01b6273dfbf342c1f984c1e10b631b65"/><dir name="IsTree"><file name="01_top.php" hash="e48cac6414b02601cbef87e9831846a2"/><file name="02_relations_tabs.php" hash="50d5a9065062cf44f11a8aba92140790"/><file name="03_product_relation.php" hash="c5dc78d7c883af529b3adf72770d3dde"/><file name="04_footer.php" hash="5cad78a0f4dc4a2531cb6195e5e9ea5a"/></dir></dir></dir><dir name="Grid"><file name="01_top.php" hash="1a0c8754c5482692ae460fd6aafcfa6b"/><file name="02_columns_top.php" hash="1d28265e98b06fe61edde000c0d28db6"/><file name="03_parents.php" hash="011f4f2895cbaa33e753168131feedee"/><file name="04_grid_attributes.php" hash="2e7a6d5f6333b44ddf6792898a6e01c1"/><file name="05_url_rewrite.php" hash="b35f254eefea0d714de7ec6bdf5f2c4b"/><file name="06_grid_status.php" hash="f1d657a64ad855219882ac8aa6ead5b5"/><file name="07_created_at.php" hash="15f2bf1aeab4512931cfd13461466dbf"/><file name="08_updated_at.php" hash="b416ed24d9613f8332f4191f0378c1a3"/><file name="09_grid_actions.php" hash="fbc479c06560e193e4c2177358eadc07"/><file name="10_grid_export.php" hash="3da336230cb919e5dd36e39d21ea3f0e"/><file name="11_columns_footer.php" hash="1cdf225b4a61a0036903c4e251484684"/><file name="12_mass_action_top.php" hash="4979fc362c7c0666bcfe39e89f3a88f4"/><file name="13_mass_action_status.php" hash="d504216f92f489be7857bee37cf0771c"/><file name="14_mass_action_flags.php" hash="9b0d9088708f5e84b50e7ac6ee06a632"/><file name="15_mass_action_parents.php" hash="7b36b4b3954e3913e6bdafb822ca6634"/><file name="16_footer.php" hash="0833ff1f2002af6a4db1df3a3cad3385"/></dir><dir name="Helper"><dir name="File"><file name="01_content.php" hash="c436397f5889f3b9784f257af452ab74"/></dir><dir name="Image"><file name="01_content.php" hash="62a55ac8856f4dc555d6dc373c2de7d5"/></dir></dir><dir name="Tree"><file name="01_top.php" hash="8b8eaeea900cceeccb0b12717fe440f7"/><file name="02_status.php" hash="3a0cada5dfb430e3d7b9890e3f6ac2ba"/><file name="03_footer.php" hash="1e7043194d0104f8e39c6418af00a7f4"/></dir><dir name="Widget"><dir name="Chooser"><file name="01_top.php" hash="61b31cd249d7f23aeb456eeff337c9c0"/><file name="02_top_status.php" hash="ae8d09557d6c9aa3a920e148f0cdd7d6"/><file name="03_content.php" hash="8dcbeac6eb2d80f500479a36c5b49c36"/><file name="04_status.php" hash="6fb78962dd9ffb30ee5d750876a26e5d"/><file name="05_footer.php" hash="c6f7967214ca668b51f41dc428cf7145"/><dir name="IsTree"><file name="01_content.php" hash="90138bcf517a4df92825e95e65902a1c"/></dir></dir></dir></dir><dir name="Helper"><dir name="Wysiwyg"><file name="01_content.php" hash="50f63445cbb78d5eb1ff42eed07e76af"/></dir></dir></dir><dir name="Catalog"><dir name="Product"><dir name="List"><dir name="Entity"><file name="01_top.php" hash="e73df46ed0d2f57e185cebe41814ab67"/><file name="02_status.php" hash="716a6a2f8243c5048f90584f0bd7f888"/><file name="03_footer.php" hash="7afa811ee3b39c3717cbb8f484e32405"/></dir></dir></dir></dir><dir name="Entity"><dir name="Catalog"><dir name="Product"><dir name="List"><file name="01_content.php" hash="bba37916e5149dcbc9604aecd8ad785c"/></dir></dir></dir><dir name="Child"><dir name="List"><file name="01_content.php" hash="30ac249d25535c1a522f96bae56a4f75"/></dir></dir><dir name="Children"><file name="01_content.php" hash="e3f2d736896f8b81132ab0ce4735d08a"/></dir><dir name="List"><file name="01_top.php" hash="225b59a84d8bf6cb0d06d62bb5240eb2"/><file name="02_status.php" hash="716a6a2f8243c5048f90584f0bd7f888"/><file name="03_footer.php" hash="369738e4147fd032b12c1df4aa01ed9c"/><dir name="IsTree"><file name="01_top.php" hash="225b59a84d8bf6cb0d06d62bb5240eb2"/><file name="02_status.php" hash="716a6a2f8243c5048f90584f0bd7f888"/><file name="03_center.php" hash="d4bab4d0e7f4741b0288454906b0e428"/><file name="04_status_draw.php" hash="05f41e4fa26f8644069191a7621b6e3f"/><file name="05_children.php" hash="b59bb1c9e92637ceab3196618b8deee7"/><file name="06_active_children.php" hash="1c9785dbb369f8d3818d4644c5f7e232"/><file name="07_active_children_no_status.php" hash="60a6cf3f5643514e5c1b83353cea5ea9"/><file name="08_footer.php" hash="90180c9a604e490752cf905fd3410efd"/></dir></dir><dir name="Rss"><file name="01_top.php" hash="957b89055315fee8ecefa6b34e940efe"/><file name="02_status.php" hash="7a81b20fbd0ca4ac140c263e481a5b06"/><file name="03_content_top.php" hash="6e2c16bd170842cc88610692439c4674"/><file name="04_content.php" hash="f556d8f00acfa61f93bbc9b09da3508b"/><file name="05_footer.php" hash="0514ad15059f8411d3315d111aac5b84"/></dir><dir name="Sibling"><dir name="List"><file name="01_content.php" hash="b4e59d0fb7204da8f984fb07835fa39a"/></dir></dir><dir name="View"><file name="01_content.php" hash="b6824731ad9bb41ef1f84b4359596f67"/></dir><dir name="Widget"><dir name="Link"><file name="01_content.php" hash="2862dcc4937c58fbee284764732e733c"/></dir><dir name="View"><file name="01_top.php" hash="a31bafcf8918811ff55b0a8eaf49c021"/><file name="02_status.php" hash="fd4d2e31a4c04c13bb470ce615550310"/><file name="03_template.php" hash="e6fd0367cfbd0b14996e189ac56b2d3b"/><file name="04_status.php" hash="573160846b9e8693e966c0881103f25e"/><file name="05_footer.php" hash="1009acd5e8f54dbedb651ecffb283df1"/></dir></dir></dir><dir name="Rss"><file name="01_content.php" hash="ea37b93ec747a042dd51e2e4eaeb22ac"/></dir></dir><dir name="Controller"><dir name="Adminhtml"><dir name="Module"><file name="01_content.php" hash="938c09e00f8a7045d70c7e97dd478df8"/></dir></dir><dir name="Router"><file name="01_top.php" hash="c9dd518945d5ab5fb7508084c2206125"/><file name="02_entity.php" hash="8ba8993dd992d580cd5e3b6ced303d38"/><file name="03_footer.php" hash="7ba40f835c0bbca8dfb8e60753142de4"/></dir></dir><dir name="Helper"><dir name="Data"><file name="01_top.php" hash="44aa03c717b24b0086230271b07f195a"/><file name="02_entity.php" hash="378423c2b9ba4ac86328e094d6e60946"/><file name="03_footer.php" hash="cbb184dd8e05c9709e5dcaedaa0495cf"/></dir><dir name="Entity"><file name="01_top.php" hash="6e37881fbe0898e930a5d7b3d1ce606f"/><file name="02_tree.php" hash="8e6d460e528f4b0e3e74bbbff06336dd"/><file name="03_rss.php" hash="9e9fa595a4a7ec7f159e1d64620119ae"/><file name="04_file.php" hash="44bc7ce84f603100f67dedc1edf3cc0d"/><file name="05_footer.php" hash="2e687c8e025cca2e891ac925406f277c"/><dir name="Image"><file name="01_content.php" hash="6433332d53494da8842cd600613a2849"/></dir></dir><dir name="Product"><file name="01_top.php" hash="20709afdafe7e3fd280e7c346a441b0c"/><file name="02_content.php" hash="33fa587ea74ff5caae02e2263bd6092b"/><file name="03_footer.php" hash="cbb184dd8e05c9709e5dcaedaa0495cf"/></dir></dir><dir name="Model"><dir name="Adminhtml"><dir name="Observer"><file name="01_top.php" hash="abec4c7c295fb57c4086fdf9d22cdf28"/><file name="02_entity.php" hash="6c64bd2314a24f6d2dafa4dedb448b8c"/><file name="03_entity_save.php" hash="6b6db7bcb0cffefc6c3406df406c497a"/><file name="04_entity_save_tree.php" hash="aca15cbb7afc5a832488addb56df157e"/><file name="05_footer.php" hash="cbb184dd8e05c9709e5dcaedaa0495cf"/></dir><dir name="Search"><dir name="Entity"><file name="01_content.php" hash="824a247bcd2cadb8f1da16ec3034d1c1"/></dir></dir></dir><dir name="Entity"><file name="01_top.php" hash="c8dfa83fb27e2a7242a1a81b90692d35"/><file name="02_var_sibling.php" hash="cbbdeeaa7082b22b3a57508dc6bcd4fa"/><file name="03_var_product_relation.php" hash="50cd6433f6617ed2d47c2a9ab9bee4d1"/><file name="04_construct.php" hash="81fb22faf1dc0c05920f5db34061100c"/><file name="05_url.php" hash="6d955735b11308ec8087bfbf2d0c6078"/><file name="06_url_rewrite_not_status.php" hash="514c4998931a817a55e652ec6fa4a322"/><file name="07_url_rewrite_status.php" hash="c5b3cbcffc16a48989a5491e4abd2c4b"/><file name="08_editors.php" hash="615bc07ef7e14bc892bb567e3c22cef7"/><file name="09_after_save_top.php" hash="f456ae82840db694e49d527d6ad23f8f"/><file name="10_after_save_product.php" hash="7e85bbf889a5beededa975831b573d97"/><file name="11_after_save_sibling.php" hash="a7ea726ae5b4b19f78773a563a7196bf"/><file name="12_after_save_footer.php" hash="1af792cf3f94391bbe2b261a0d927a8c"/><file name="13_product_relation.php" hash="890ad6b1cad708779f0e5cb1aa745f1a"/><file name="14_sibling_relation.php" hash="f833e4acb70b198a1cc69da992affc76"/><file name="15_tree.php" hash="c577ef6c4d67da82d5226162345ef896"/><file name="16_tree_status.php" hash="64da48d68c1af82304cea4ee2c21800e"/><file name="17_footer.php" hash="cbb184dd8e05c9709e5dcaedaa0495cf"/><dir name="Product"><file name="01_content.php" hash="d8dfaa0ac8ba132bf95d3d65452d9795"/></dir><dir name="Sibling"><file name="01_content.php" hash="ef2fc76324ca0afcaabab7f8272bd526"/></dir></dir><dir name="Resource"><dir name="Entity"><file name="01_top.php" hash="8584bb2dba4e8da350ad36ee91ba7094"/><file name="02_tree_var.php" hash="8a673f57e7979c6c0aa2dc38c8f29c38"/><file name="03_constructor.php" hash="1c67d6971268cb3765067a30d6a5ebac"/><file name="04_tree.php" hash="f5f39cd45b72b48079a8bc3c6cee81d2"/><file name="05_tree_before_save_no_url_rewrite.php" hash="721b246ab7c8011faa810f9c509cbc76"/><file name="06_tree_before_save_url_rewrite.php" hash="872a4a6d7b408bf621a52739e5d8438a"/><file name="07_children_no_status.php" hash="41b492cea369e6303ad444b16f016857"/><file name="08_children_status.php" hash="61bfda77779840f9855311137112979e"/><file name="09_content.php" hash="ad6a926a11cf4ca722b896a78bbeadab"/><file name="10_url_rewrite_status.php" hash="1f7413dfcd315965fac22404f7a2808e"/><file name="11_url_rewrite_not_status.php" hash="13b834ba94b4998155668d3c211d2759"/><file name="12_url_rewrite_before_save_not_tree.php" hash="2d51e7bda2f717d22bd17593851f65fa"/><file name="13_footer.php" hash="cbb184dd8e05c9709e5dcaedaa0495cf"/><dir name="Collection"><file name="01_top.php" hash="7aed912ade7c0e7f779b73d3022772b4"/><file name="02_tree.php" hash="22c1250f162919870d08ec9aa71b949e"/><file name="03_tree_status.php" hash="fe745dc63220b3ddd5f799921077ac51"/><file name="04_product_relation.php" hash="d2f707b97df2ecf2d088aebeeb660822"/><file name="05_sibling_relation.php" hash="4563330e972ef0b0f4b96096b8594727"/><file name="06_footer.php" hash="cbb184dd8e05c9709e5dcaedaa0495cf"/></dir><dir name="Product"><file name="01_content.php" hash="1545e16c25769395d3d95ec03a8cd4b3"/><dir name="Collection"><file name="01_content.php" hash="401d1dc800ddf76ea155160f3e02d162"/></dir><dir name="IsTree"><file name="01_content.php" hash="0a1b1718dec4ec27dc5310d45b388e2e"/></dir></dir><dir name="Sibling"><file name="01_top.php" hash="e78ca594012a642782fc2292084f81ca"/><file name="02_save_relation.php" hash="43dbb46224c1f8ca4a658a6a5d5077ad"/><file name="03_save_relation_tree.php" hash="1b0b458b7327dd6beaca0455d4268921"/><file name="04_footer.php" hash="cbb184dd8e05c9709e5dcaedaa0495cf"/><dir name="Collection"><file name="01_content.php" hash="c48de1443823a6ff51517f8a6cab0599"/></dir></dir><dir name="Tree"><file name="01_top.php" hash="d286ac636149b07c3e1993eb4d157529"/><file name="02_status_top.php" hash="f4151c843a394922807dcb59ce6807d8"/><file name="03_content.php" hash="402a0ba7525c552db2e2fa64c79f6473"/><file name="04_not_status.php" hash="d1b54f100c018fe6d5ae965e5aac8dd8"/><file name="05_status.php" hash="df0ef83645e0784f4c33534b976421ee"/><file name="06_footer.php" hash="cbb184dd8e05c9709e5dcaedaa0495cf"/></dir></dir><dir name="Setup"><file name="01_content.php" hash="335c579a20a627c5a403e3c7ac6156c0"/></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Module"><dir name="Entity"><dir name="Catalog"><dir name="ProductController"><file name="01_content.php" hash="b904ef31283029cf808cc42719208874"/><dir name="IsTree"><file name="01_content.php" hash="989ec00484ec5ef3f04df8f9f0007eee"/></dir></dir></dir><dir name="WidgetController"><file name="01_content.php" hash="8d934e135109f74ac036b84d6939f6c9"/><file name="02_tree.php" hash="41b1fca05f9bd59455c72b1d240cc1e7"/><file name="03_footer.php" hash="cbb184dd8e05c9709e5dcaedaa0495cf"/></dir></dir><dir name="EntityController"><file name="01_top.php" hash="21cbb6239ec0b4d998b494308af6cf1a"/><file name="02_upload_image.php" hash="c111546b644ffafd26c102f095334f95"/><file name="03_upload_files.php" hash="90fd33445b8889a23e5af035da89c15e"/><file name="04_save_product_relation.php" hash="29b35c54da6069c72edd245c42aa5369"/><file name="05_save_sibling_relation.php" hash="e9fe7f25344280b483db7108cc3ae0b1"/><file name="06_save_sibling_relation_tree.php" hash="ee1dcb0a6924b8c7c074a63ec2331f53"/><file name="07_save.php" hash="11c73c7cfc8c76738fce70c466ba7c63"/><file name="08_exception_upload.php" hash="216185c48b0b0937597939a95026a1c9"/><file name="09_exception.php" hash="b34376b34211a9cc21609ac7438d6d6d"/><file name="10_center.php" hash="1984de58c3a4636d053f4bc323b93e68"/><file name="11_mass_status.php" hash="32f826d9e0d091077da35a1ff4854f75"/><file name="12_mass_update.php" hash="f8cffcba29b0b98b815440b5407f2420"/><file name="13_mass_parents.php" hash="c13b8ac14871f114676d1d29be9dcb26"/><file name="14_product_relation_actions.php" hash="772e8ec1661ca45871bc962bdf1bbbcd"/><file name="15_sibling_actions.php" hash="8833208a9d834e7d5fda272a6b827b53"/><file name="16_sibling_actions_tree.php" hash="2994bf89f5d90bfc90e94a76444a4719"/><file name="17_footer.php" hash="044299b6435f621987f31c7c540f113c"/><dir name="IsTree"><file name="01_top.php" hash="a2485af1338305fd72aab2093ff2fb16"/><file name="02_wysiwyg.php" hash="3c2ec4bab3895ca6a43bd0416b827028"/><file name="03_save.php" hash="e22bd734eb73a53a0d365f619cd8f7e6"/><file name="04_upload_image.php" hash="c111546b644ffafd26c102f095334f95"/><file name="05_upload_file.php" hash="90fd33445b8889a23e5af035da89c15e"/><file name="06_save_continue.php" hash="b277fb6a9cdb4a28b43416331154f9b8"/><file name="07_product_data.php" hash="d9050ba8bf3d0780d5077a606184e09c"/><file name="08_sibling_data.php" hash="5edd1b8750aef7c7e4fc0137d038a867"/><file name="09_real_save.php" hash="41caa318e523711a1245673a15d2e486"/><file name="10_product_relation_action.php" hash="1a9875a99162f151e67b827e695f22a9"/><file name="11_sibling_actions.php" hash="0c165d6714a5a4b6203c9d021cdba223"/><file name="12_footer.php" hash="cbb184dd8e05c9709e5dcaedaa0495cf"/></dir></dir></dir></dir><dir name="EntityController"><file name="01_top.php" hash="eec876d7b63d893886bb334b09480af4"/><file name="02_list.php" hash="dfcf0e406a5a6548637bd50ce06bb1f6"/><file name="03_list_seo.php" hash="04dedfdc059b8b4b89c7c9ccc403a4b4"/><file name="04_list_footer.php" hash="1d41a3331d006d0a04ff32bb4085210b"/><file name="05_view.php" hash="65c4d2ff246370e5bda69be233e01275"/><file name="06_view_status.php" hash="fd0bc040dc135e3469757569ffcf7899"/><file name="07_view_status_tree.php" hash="2b36e7be800e6c59e12a87b0ef697097"/><file name="08_view2.php" hash="af3fc07f58fa608f8f70f2e0264fe0bd"/><file name="09_breadcrumbs.php" hash="8157b6c12ecd17df9acdf095e7eb75db"/><file name="10_breadcrumbs_tree.php" hash="f2391a45fb1ce3e64de454981973cc23"/><file name="11_breadcrumbs_footer.php" hash="b41efc51d35a4f93a3b00dc5f899e1b5"/><file name="12_view_seo.php" hash="2e56f0ef104d419dee88abf037fe9f18"/><file name="13_view_footer.php" hash="3be2b1b314c50af6fd03c53647f06e56"/><file name="14_rss.php" hash="6e2fc4485e7a2b6c3508d05d7b71748d"/><file name="15_footer.php" hash="cbb184dd8e05c9709e5dcaedaa0495cf"/></dir></dir><dir name="data"><dir name="namespace_module_setup"><dir name="data-install-0.0.1.php"><file name="01_top.php" hash="d63e4a5fbe4435eadd52abf1534ee829"/><file name="02_entity.php" hash="df6b285616bf2741ae9288e5d9e0758e"/></dir></dir></dir><dir name="etc"><dir name="adminhtml"><file name="01_top.xml" hash="11dee4372e147adfdd6dcf549207d52c"/><file name="02_entity_acl.xml" hash="6afabb39251e5233380992ec92a7a49f"/><file name="03_center.xml" hash="c3daf849d2cc4f2b9bb10319466df7b9"/><file name="04_entity_menu.xml" hash="c940e5491e196974bd81421566bec92d"/><file name="05_footer.xml" hash="567de2825a456f5c8de1c2d3f718b333"/></dir><dir name="config"><file name="01_top.xml" hash="ab60a876013ce736e83c89e6e9be4e25"/><file name="02_tables.xml" hash="07d07c4044d5ee658664c9d3465ea676"/><file name="03_siblings_table.xml" hash="13cdf74c83b7d86d15717b7e31bcc5ed"/><file name="04_relation_table.xml" hash="5e50710deedcd19316110a4db8dbfe5c"/><file name="05_global.xml" hash="9e1870511df355e90da3f86acb7e88cf"/><file name="06_url_rewrite.xml" hash="d7e710748d570d29aca3d15ec4424f2d"/><file name="07_adminhtml.xml" hash="f91e8a152a9e4b7c331df0583e987c7c"/><file name="08_relation_product.xml" hash="de83346f1f657f61a23251f37016bd99"/><file name="09_global_search_top.xml" hash="24e3dddbf6fc52170457a0804c07e060"/><file name="10_global_search_entity.xml" hash="c9e6a985c2292d82c0e648b0fea07837"/><file name="11_global_search_footer.xml" hash="46e34587440f1aa3462eba45aca78be7"/><file name="12_admin.xml" hash="d4c5c6313071ffa54afb69782dbcc21e"/><file name="13_frontend.xml" hash="9617988c4eb5ab502eb57349ab1a2dec"/><file name="14_default_top.xml" hash="a306c05cad3fd6c4c46f5c162e52df68"/><file name="15_default.xml" hash="fc553b2555e09b1ab639b58649b5b4cf"/><file name="16_default_footer.xml" hash="40004610d67a1bcf5ecf317917a1b0ab"/></dir><dir name="system"><file name="01_top.xml" hash="a250611cd158a2b0f9c0adef5b3d8074"/><file name="02_entity.xml" hash="0e789a6caeecd1e7223ab6c44ca1504e"/><file name="03_footer.xml" hash="2ead9ca0742a78448b5db442581d4cd9"/></dir><dir name="widget"><file name="01_top.xml" hash="29a6efa02a0f04ce056cc53d0b4e2272"/><file name="02_entity.xml" hash="102a8cfb8f0a2c330768add309e25e97"/><file name="03_footer.xml" hash="b84026fabe4a09ef682aac220eccf07a"/></dir></dir><dir name="sql"><dir name="namespace_module_setup"><dir name="install-0.0.1"><file name="01_top.php" hash="50cec9cf47ccb1001b16c156bd792210"/><file name="02_entity.php" hash="fdfc8dbe0872a9f346d10925942daad0"/><file name="03_product_relation.php" hash="1be95058703726dc35fc985466d62129"/><file name="04_sibling_relation.php" hash="581b0adc63e3e28ab89dc576a3f2e7d6"/><file name="05_footer.php" hash="7d307239f928e12e9a9b48754777f640"/></dir></dir></dir></dir></dir></dir></dir><dir name="design"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="namespace_module"><file name="01_top.xml" hash="c657e63ddce2df350b7d45c57620e967"/><file name="02_entity_not_tree.xml" hash="4897e318fff890bf377ed3e8091b9986"/><file name="03_relation_product.xml" hash="4ae352696eebe3635e9df76bedaf48d6"/><file name="04_relation_sibling.xml" hash="b9f5a68c69914abeb24c9638a451b157"/><file name="05_entity_tree.xml" hash="e598aa0b93b1e6d5f180bac14f0fc20c"/><file name="06_relation_product_tree.xml" hash="897ddf70ea257a2f553bed07f1e84e3c"/><file name="07_relation_sibling_tree.xml" hash="3ae178a0a81364ec8df9935bf8a3da23"/><file name="08_footer.xml" hash="fd25391f06094530aadcbee222b433fc"/></dir></dir><dir name="template"><dir name="namespace_module"><dir name="catalog"><dir name="product"><dir name="edit"><dir name="tab"><dir name="entity"><file name="01_content.phtml" hash="22515160e08aec47a72e51321949ef9b"/></dir></dir></dir></dir></dir><dir name="entity"><dir name="edit"><file name="01_content.phtml" hash="ce1e8b965823d7880a5acea0de5ba26a"/><dir name="form"><file name="01_top.phtml" hash="99f82b638e08569b4be985af5a77aa26"/><file name="02_product_hidden.phtml" hash="7ef02b97f351681086ccc0f69615cbef"/><file name="03_sibling_hidden.phtml" hash="b0ab3d283c7dd99670034f439f1a7e83"/><file name="04_content.phtml" hash="887287c2135f192c2e050e7d9c2df401"/><file name="05_status.phtml" hash="3f4356540bc8cef1186b62c04e41d305"/><file name="06_content2.phtml" hash="d3d867b32ed5001de64b9d349d4a304f"/><file name="07_product_relation.phtml" hash="95ca5bc339ba49da37e0f9b5714521ea"/><file name="08_sibling_relations.phtml" hash="781a697648d00ec4c824380fae4b67ac"/><file name="09_footer.phtml" hash="5fd8d0c41500e156711c723af13f627f"/></dir><dir name="tab"><dir name="sibling"><file name="01_content.phtml" hash="59bbfec6eb6cee9778872eac55ac74bc"/></dir></dir></dir><dir name="tree"><file name="01_content.phtml" hash="0326fef77a80ddb5d154939783b52b1a"/></dir><dir name="widget"><dir name="tree"><file name="01_content.phtml" hash="e0e24d2640bdc3e4c7234564b263465f"/></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="namespace_module"><file name="01_top.xml" hash="bf6f2b1a2a7bfaec115c381abfa40e02"/><file name="02_default_top.xml" hash="10c0056a19cc82fbf809aa13b879b4ff"/><file name="03_default.xml" hash="e58d9aa36808b39bdd648d51fca7b992"/><file name="04_default_footer.xml" hash="22f72da3c656b5721d355607c891cc9c"/><file name="05_list.xml" hash="d612266dae53939552fb5b0a6fcb6feb"/><file name="06_view.xml" hash="7f3837e6fc2f6325304d5028fcfda532"/><file name="07_entity_rss.xml" hash="f06074f610065fbc6cb9a228402da7a7"/><file name="08_rss_top.xml" hash="54753c3cd7d42667c88c88f0084484f2"/><file name="09_rss.xml" hash="b513533d7cc561ec197ce1662bf54883"/><file name="10_rss_footer.xml" hash="3adf9a1e5301aa4221cede3ff5208785"/><file name="11_relation_product.xml" hash="309965e4062dc6f6f82dd495035e08ec"/><file name="12_footer.xml" hash="fd25391f06094530aadcbee222b433fc"/></dir></dir><dir name="template"><dir name="namespace_module"><dir name="catalog"><dir name="product"><dir name="list"><dir name="entity"><file name="01_top.phtml" hash="bb86f12fc472152437ef1be97280d258"/><file name="02_link_top.phtml" hash="62a65063f9611f31b02a5b3f3b34f524"/><file name="03_name.phtml" hash="fed55ae628836787e7a2ba05b1e695e6"/><file name="04_link_footer.phtml" hash="f01ee0fb040754cbdd4c7ca86dbec387"/><file name="05_footer.phtml" hash="d0bff7b594da78b60141591d6870556b"/></dir></dir></dir></dir><dir name="entity"><dir name="catalog"><dir name="product"><dir name="list"><file name="01_content.phtml" hash="96ec480a53c89ff5b87cfd59dc163f9e"/></dir></dir></dir><dir name="children"><file name="01_content.phtml" hash="129d29d6a49f3e6bbbd0697f55c97740"/></dir><dir name="list"><file name="01_top.phtml" hash="10c541cba8766100d47e8baadb8ce6a5"/><file name="02_rss_link.phtml" hash="cacf7866f6dd54ab37a217d7cb7466c7"/><file name="03_footer.phtml" hash="24d3a1e0224a9e59f5daa0d2660e76b4"/><file name="04_footer_is_tree.phtml" hash="098332bf5a88d8529ea3ef57ed9c75f4"/></dir><dir name="sibling"><dir name="child"><dir name="list"><file name="01_content.phtml" hash="5a1f524b49cf120201a90ee695f90544"/></dir></dir><dir name="list"><file name="01_content.phtml" hash="5a1f524b49cf120201a90ee695f90544"/></dir></dir><dir name="view"><file name="01_content.phtml" hash="205b0b21c650f28ff0e364d6ec8ce552"/></dir><dir name="widget"><dir name="link"><file name="01_content.phtml" hash="11d9e23bd1c2f8cb8a0f857c8bb393d8"/></dir><dir name="view"><file name="01_content.phtml" hash="f89f40babc5af3cd30597cd097ad9ab9"/></dir></dir></dir><dir name="rss"><file name="01_content.phtml" hash="172a345ace9b7ec84ad2e18f51d48257"/></dir></dir></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><dir name="Namespace_Module"><file name="01_content.xml" hash="4495317a1b8392281b68f07a546c56c2"/></dir></dir></dir><dir name="locale"><dir name="en_US"><dir name="Namespace_Module"><file name="01_global.csv" hash="133cec10c0a2d55366574bbaa3c98a6f"/><file name="02_entity.csv" hash="97e1a2056ec2f49acc1c5c9598ef10d7"/><file name="03_attribute.csv" hash="0bc9532d35587f2225e398156cc3ef7f"/><file name="04_global_status.csv" hash="507d9e24387e6935b1ee629e8432f842"/><file name="05_global_rss.csv" hash="df495f10c1e7d7d3fb770d8b406b9f9b"/><file name="06_global_seo.csv" hash="5f973fd7dfbb61ce8c21d6f7e8622379"/><file name="07_attribute_yesno.csv" hash="20eaf2d5eaa8224e5fa1c7a63634b1c0"/><file name="08_global_file.csv" hash="8bebcdd48d5ae7b533cc53e789f03ef2"/><file name="09_product_relation.csv" hash="b96f377dfa788f2772f2f8b7f156aebd"/><file name="10_relations.csv" hash="d0f7a10c89d21ade4ba17cd73dbb42fb"/><file name="11_global_tree.csv" hash="279098d455e2c1adcde8668e042541d7"/><file name="12_tree_entity.csv" hash="d41675dbb1bf588d1d59af8f7b255c2d"/><file name="13_url_rewrite.csv" hash="56d63caf8b00b1bc92bece5516b6b27f"/></dir></dir></dir></dir><dir name="skin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="namespace_module"><dir name="tree"><file name="01_content.css" hash="7929b899ed457d539637d5083286bed4"/></dir></dir></dir><dir name="images"><dir name="namespace_module"><dir name="collapsedgif"><file name="01_content.gif" hash="ef74c08289e94b7aae81766fb00d4195"/></dir><dir name="collapsedpng"><file name="01_content.png" hash="0613450d25c762b6a40c51768b02462d"/></dir><dir name="expandedgif"><file name="01_content.gif" hash="3f5512a54f359343273caf7b3787ee8a"/></dir><dir name="expandedpng"><file name="01_content.png" hash="f7f28ae897708c78b28ead22c3692bb8"/></dir><dir name="line1gif"><file name="01_content.gif" hash="65b0c812c8d57ea72b84fc69a077a40a"/></dir><dir name="line1png"><file name="01_content.png" hash="4e01064a2c78b8885f65ff7a40f78c02"/></dir><dir name="line2gif"><file name="01_content.gif" hash="95fc5c58069ece5eb44e198ee53b3fe1"/></dir><dir name="line2png"><file name="01_content.png" hash="6adbb4ca64d943f5ee5528d713757fde"/></dir></dir><dir name="placeholder"><file name="entity.jpg" hash="6361a80d5ca988fcec45ad3767322e5e"/></dir></dir><dir name="js"><dir name="namespace_module"><dir name="tree"><file name="01_content.js" hash="1b8a1e7b1cb23e7a87e05b33a34523a0"/></dir></dir></dir></dir></dir></dir></dir></dir><file name="modulecreator.xml" hash="0e68e62adb7faaa519951aaf6e390db3"/><file name="system.xml" hash="5375cca1089787206cfabb41d7aa0614"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="ultimate_modulecreator.xml" hash="f21bb3c8940eb81307817c0491caf300"/></dir><dir name="template"><dir name="ultimate_modulecreator"><dir name="edit"><dir name="tab"><dir name="entities"><dir name="entity"><file name="attribute.phtml" hash="c2bcdf07dc68c229e8a5e46537352df6"/></dir><file name="entity.phtml" hash="f356184e2d8855a13456f52ac7e51d8e"/></dir><file name="entities.phtml" hash="df9179ffd5e72a04cf4740488521f0ce"/><file name="help.phtml" hash="dae530bc9d4ab9445d95d087bfc80fe6"/><file name="relation.phtml" hash="17a41ecbecdf7af519d11c3d026a800b"/></dir></dir><file name="edit.phtml" hash="8d10e82ae89d9e4ede28e6c59c9e724c"/><file name="tooltip.phtml" hash="d3598ad3f978d708b1f7f36feee39560"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Ultimate_ModuleCreator.xml" hash="324d2b364541a7355c9ff4248c0518f2"/></dir></target><target name="magelocale"><dir name="en_US"><file name="Ultimate_ModuleCreator.csv" hash="e8d1c6166a369904c245004c99893f40"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><file name="ultimate_modulecreator.css" hash="781a789d72dc08f660479543ff09b143"/><dir name="images"><dir name="ultimate_modulecreator"><file name="logo.png" hash="9c9ca3b07295cab1cb1503865905ee50"/></dir></dir></dir></dir></dir></target><target name="mage"><dir name="."><file name="LICENSE_UMC.txt" hash="1372b858e10f4c6feb2967766a0b7a62"/><file name="readme_UMC.txt" hash="7b8cd5baf640a5078be5c7136b56b5d9"/></dir></target><target name="mageweb"><dir name="."><file name="modman" hash="191dd9a4e001d6f8de5933202daac7d1"/></dir></target></contents>
23
  <compatible/>
24
  <dependencies><required><php><min>5.0.0</min><max>7.0.0</max></php></required></dependencies>
25
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Ultimate_ModuleCreator</name>
4
+ <version>1.4.1</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/MIT">MIT License</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Develop custom Magento modules without writing any code. Use a module creator. Use this module creator</summary>
10
  <description>This module allows you to create custom Magento modules for your own entities. You can create as many entities as you want in one extension, you can establish relations between them, decide to generate only back-end pages or both back-end and frontend pages.</description>
11
+ <notes>Bug fixes:&#xD;
12
+ - siblings not listed in the order set in admin.&#xD;
13
+ - entity models are missing event prefixes and event objects.&#xD;
14
+ Features:&#xD;
15
+ - Added 'country' field type&#xD;
16
+ - Added log creation for each module with the files that are created.&#xD;
17
  Refactor:&#xD;
18
+ - Clean up for image attribute renderers (frontend and backend).&#xD;
19
+ - added Mage::logException for admin exceptions&#xD;
20
+ - Rafactor image helper (thanks carco).</notes>
21
  <authors><author><name>Marius Strajeru</name><user>tzyganu</user><email>tzyganu@gmail.com</email></author></authors>
22
+ <date>2013-03-15</date>
23
+ <time>21:46:24</time>
24
+ <contents><target name="magecommunity"><dir name="Ultimate"><dir name="ModuleCreator"><dir name="Block"><dir name="Adminhtml"><dir name="Modulecreator"><dir name="Edit"><file name="Form.php" hash="cb4328ae858a31a31d76016e50b56739"/><dir name="Tab"><dir name="Entities"><dir name="Entity"><file name="Attribute.php" hash="daa6787fa3f72150fc86c4350be932da"/></dir><file name="Entity.php" hash="8d5b07f735a5a7107f1abf66bbb482da"/></dir><file name="Entities.php" hash="65602b8daaa8585d9c94d7a4d8d7dcde"/><file name="Help.php" hash="304c68d68e9adf0962817e27877683b6"/><file name="Relation.php" hash="43730e74747b8e6e5985eee259e6db07"/><file name="Settings.php" hash="dee31d423d26a3efbc773530ac847afb"/></dir><file name="Tabs.php" hash="578af9256efb3d516db14db7e396e5e3"/></dir><file name="Edit.php" hash="491948d86e2e3a50fa185a407997c163"/><file name="Grid.php" hash="96ef8fa066b89937712b44991191f4de"/></dir><file name="Modulecreator.php" hash="b2630018b6f103d1a3f9e92ed7de7a54"/></dir></dir><file name="Exception.php" hash="aaef7086ff700d7132418cf68629246f"/><dir name="Helper"><file name="Adminhtml.php" hash="f913d91b1041032b35e4d0ca2fd20205"/><file name="Data.php" hash="15c1fc5975814c656c587da7db416a21"/></dir><dir name="Model"><file name="Abstract.php" hash="33a186edb30b8ff3f54fda6690a90a2c"/><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Source"><file name="Codepool.php" hash="045f0555fc545799148627e081ca8727"/><file name="Install.php" hash="7fb2fd108b5bed63b31ab9cfd0da25f5"/><file name="Layout.php" hash="3d63a2221b3a93926c662b3c10effc2c"/></dir></dir></dir></dir><dir name="Attribute"><dir name="Type"><file name="Abstract.php" hash="983e731730dbc4ee0a8c24ec662c091a"/><file name="Country.php" hash="59211a0da793c9f828caa161688f0d1c"/><file name="Decimal.php" hash="593c993bfba24af511164987a8c11eb3"/><file name="File.php" hash="a8e18228577beb612f202acbe0ddb41a"/><file name="Image.php" hash="80211878524ee9ed71096d30b1c52c42"/><file name="Int.php" hash="7e06c84fa8a3c2940624248c386e2d67"/><file name="Text.php" hash="237217feda93dadf93a63f181ebb8793"/><file name="Textarea.php" hash="04cd8559fbeeb8b81733e6c9a3b7b725"/><file name="Timestamp.php" hash="d18d599090ac5fa824e44edf3fa14486"/><file name="Website.php" hash="0bd68cd56e97013711986bdb3edf06cb"/><file name="Yesno.php" hash="dbb96529e483d587d8d8d99f176afa8b"/></dir></dir><file name="Attribute.php" hash="b6ab929edc78a41829630b0a02d59e5e"/><file name="Entity.php" hash="bd57954f5eb26d276273e9040281b236"/><dir name="Module"><file name="Collection.php" hash="0e413b976cbc9649ec982fe0f4b95dd1"/></dir><file name="Module.php" hash="b34a226d017260e9a2c1edfcaf169fc3"/><file name="Relation.php" hash="aca1db5db2cd807298acd21dc7b24b39"/><file name="Writer.php" hash="b47341646a1882d77e57cf6a5b30ad49"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="ModulecreatorController.php" hash="11ee92957c8099af688993543b9f849e"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="755c04b748c41ced20f41c725acc95c2"/><file name="config.xml" hash="653f667533ebab4952b8448d1443ea11"/><dir name="m"><dir name="app"><dir name="code"><dir name="cp"><dir name="Ns"><dir name="Md"><dir name="Block"><dir name="Adminhtml"><dir name="Catalog"><dir name="Product"><dir name="Edit"><dir name="Tab"><dir name="Entity"><file name="01_content.php" hash="59347ed053e0fe3dc2e25a5c5490ecd4"/><dir name="IsTree"><file name="01_content.php" hash="1eda50311bcf910106a49ad54f1681fd"/></dir></dir></dir></dir></dir></dir><dir name="Entity"><file name="01_content.php" hash="5dfc799aeee50cc5ef32d356c1cc176f"/><dir name="Abstract"><file name="01_content.php" hash="dfe60775e0f319347a8937a17733c751"/></dir><dir name="Edit"><file name="01_content.php" hash="21d1cd84da305a41e516752e39c12404"/><dir name="Form"><file name="01_content.php" hash="39f68c93dba53e650f502776c03caf20"/><dir name="IsTree"><file name="01_top.php" hash="6bf3a72161678690d515deb253fb5f3d"/><file name="02_product_relation.php" hash="adee6754a75247b7d401d8f774d3918b"/><file name="03_entity_relation.php" hash="7f06c1f227ff6e8e1f64606bc1da6d3a"/><file name="04_footer.php" hash="cbb184dd8e05c9709e5dcaedaa0495cf"/></dir></dir><dir name="IsTree"><file name="01_content.php" hash="6f8ab2c71f28a7618db8b94c311d6f13"/></dir><dir name="Tab"><dir name="Form"><file name="01_top.php" hash="9f6681f6bc3e012a8c711739a0ed6ae1"/><file name="02_image.php" hash="8dbf5010de2c46aabb02cd7a4df6f45e"/><file name="03_file.php" hash="64ede5038fe0edfec08671a5ca521777"/><file name="04_wysiwyg.php" hash="d25a58b233bd88a2e6d1fd5a79398394"/><file name="05_wysiwyg_is_tree.php" hash="6ef452bba45e48bbfc370ea24b61d6e0"/><file name="06_path_tree.php" hash="9991a81df109b0abbc8bd06a26694d1b"/><file name="07_parents.php" hash="476f7ebd1b04a879f3dd51b1913f9a9d"/><file name="08_attributes.php" hash="44c81d580dcf072b2ed9b5cc90fb1fac"/><file name="09_url_rewrite.php" hash="fdcf74d7a3abe5bfa32db1d5f042d8e2"/><file name="10_status.php" hash="ade9e66ee2dd546ebea8c9800b378a88"/><file name="11_rss.php" hash="0a122d46cc4826a0bd62b2f5d52b3fdc"/><file name="12_seo.php" hash="f0cf29478e91ced8dc39170b2574f1f2"/><file name="13_add_values_not_tree.php" hash="dc7ba40ed78eb43b08fc46c235029c8c"/><file name="14_add_values_tree.php" hash="c569ce680f4c5328292d6bb4f4c37e69"/><file name="15_get_entity_tree.php" hash="3d9027f073bf28f89aecd6b224c350ca"/><file name="16_footer.php" hash="cbb184dd8e05c9709e5dcaedaa0495cf"/></dir><dir name="Product"><file name="01_content.php" hash="e42fb1044c47e7e1ba7c456f057b9558"/></dir><dir name="Sibling"><file name="01_content.php" hash="45cbbc5d065f5e0402a8340e14e5e6b2"/><dir name="IsTree"><file name="01_content.php" hash="0809c980a4d5059bc679e37762853f5e"/></dir></dir></dir><dir name="Tabs"><file name="01_top.php" hash="7cecbd5b68dc09c4e9a14f214b3b70df"/><file name="02_relations_tabs.php" hash="3f1eba9e9a7bf177185364cffc8468ba"/><file name="03_product_relation.php" hash="aee681c7021e9efad07a39bc8f8cf56d"/><file name="04_footer.php" hash="01b6273dfbf342c1f984c1e10b631b65"/><dir name="IsTree"><file name="01_top.php" hash="e48cac6414b02601cbef87e9831846a2"/><file name="02_relations_tabs.php" hash="50d5a9065062cf44f11a8aba92140790"/><file name="03_product_relation.php" hash="c5dc78d7c883af529b3adf72770d3dde"/><file name="04_footer.php" hash="5cad78a0f4dc4a2531cb6195e5e9ea5a"/></dir></dir></dir><dir name="Grid"><file name="01_top.php" hash="1a0c8754c5482692ae460fd6aafcfa6b"/><file name="02_columns_top.php" hash="1d28265e98b06fe61edde000c0d28db6"/><file name="03_parents.php" hash="011f4f2895cbaa33e753168131feedee"/><file name="04_grid_attributes.php" hash="2e7a6d5f6333b44ddf6792898a6e01c1"/><file name="05_url_rewrite.php" hash="b35f254eefea0d714de7ec6bdf5f2c4b"/><file name="06_grid_status.php" hash="f1d657a64ad855219882ac8aa6ead5b5"/><file name="07_created_at.php" hash="15f2bf1aeab4512931cfd13461466dbf"/><file name="08_updated_at.php" hash="b416ed24d9613f8332f4191f0378c1a3"/><file name="09_grid_actions.php" hash="fbc479c06560e193e4c2177358eadc07"/><file name="10_grid_export.php" hash="3da336230cb919e5dd36e39d21ea3f0e"/><file name="11_columns_footer.php" hash="1cdf225b4a61a0036903c4e251484684"/><file name="12_mass_action_top.php" hash="4979fc362c7c0666bcfe39e89f3a88f4"/><file name="13_mass_action_status.php" hash="d504216f92f489be7857bee37cf0771c"/><file name="14_mass_action_flags.php" hash="9b0d9088708f5e84b50e7ac6ee06a632"/><file name="15_mass_action_parents.php" hash="7b36b4b3954e3913e6bdafb822ca6634"/><file name="16_footer.php" hash="0833ff1f2002af6a4db1df3a3cad3385"/></dir><dir name="Helper"><dir name="File"><file name="01_content.php" hash="c00cdcedf171c992bb88a20402bfd70d"/></dir><dir name="Image"><file name="01_content.php" hash="62a55ac8856f4dc555d6dc373c2de7d5"/></dir></dir><dir name="Tree"><file name="01_top.php" hash="8b8eaeea900cceeccb0b12717fe440f7"/><file name="02_status.php" hash="3a0cada5dfb430e3d7b9890e3f6ac2ba"/><file name="03_footer.php" hash="1e7043194d0104f8e39c6418af00a7f4"/></dir><dir name="Widget"><dir name="Chooser"><file name="01_top.php" hash="61b31cd249d7f23aeb456eeff337c9c0"/><file name="02_top_status.php" hash="ae8d09557d6c9aa3a920e148f0cdd7d6"/><file name="03_content.php" hash="8dcbeac6eb2d80f500479a36c5b49c36"/><file name="04_status.php" hash="6fb78962dd9ffb30ee5d750876a26e5d"/><file name="05_footer.php" hash="c6f7967214ca668b51f41dc428cf7145"/><dir name="IsTree"><file name="01_content.php" hash="90138bcf517a4df92825e95e65902a1c"/></dir></dir></dir></dir><dir name="Helper"><dir name="Wysiwyg"><file name="01_content.php" hash="50f63445cbb78d5eb1ff42eed07e76af"/></dir></dir></dir><dir name="Catalog"><dir name="Product"><dir name="List"><dir name="Entity"><file name="01_top.php" hash="e73df46ed0d2f57e185cebe41814ab67"/><file name="02_status.php" hash="716a6a2f8243c5048f90584f0bd7f888"/><file name="03_footer.php" hash="7afa811ee3b39c3717cbb8f484e32405"/></dir></dir></dir></dir><dir name="Entity"><dir name="Catalog"><dir name="Product"><dir name="List"><file name="01_content.php" hash="f9a6ec0ca31b9525357f447b5471256f"/></dir></dir></dir><dir name="Child"><dir name="List"><file name="01_content.php" hash="30ac249d25535c1a522f96bae56a4f75"/></dir></dir><dir name="Children"><file name="01_content.php" hash="e3f2d736896f8b81132ab0ce4735d08a"/></dir><dir name="List"><file name="01_top.php" hash="225b59a84d8bf6cb0d06d62bb5240eb2"/><file name="02_status.php" hash="716a6a2f8243c5048f90584f0bd7f888"/><file name="03_footer.php" hash="369738e4147fd032b12c1df4aa01ed9c"/><dir name="IsTree"><file name="01_top.php" hash="225b59a84d8bf6cb0d06d62bb5240eb2"/><file name="02_status.php" hash="716a6a2f8243c5048f90584f0bd7f888"/><file name="03_center.php" hash="d4bab4d0e7f4741b0288454906b0e428"/><file name="04_status_draw.php" hash="05f41e4fa26f8644069191a7621b6e3f"/><file name="05_children.php" hash="b59bb1c9e92637ceab3196618b8deee7"/><file name="06_active_children.php" hash="1c9785dbb369f8d3818d4644c5f7e232"/><file name="07_active_children_no_status.php" hash="60a6cf3f5643514e5c1b83353cea5ea9"/><file name="08_footer.php" hash="90180c9a604e490752cf905fd3410efd"/></dir></dir><dir name="Rss"><file name="01_top.php" hash="957b89055315fee8ecefa6b34e940efe"/><file name="02_status.php" hash="7a81b20fbd0ca4ac140c263e481a5b06"/><file name="03_content_top.php" hash="6e2c16bd170842cc88610692439c4674"/><file name="04_content.php" hash="f556d8f00acfa61f93bbc9b09da3508b"/><file name="05_footer.php" hash="0514ad15059f8411d3315d111aac5b84"/></dir><dir name="Sibling"><dir name="List"><file name="01_content.php" hash="09e6f490b8b2d73efdbecbb68737c81f"/></dir></dir><dir name="View"><file name="01_content.php" hash="b6824731ad9bb41ef1f84b4359596f67"/></dir><dir name="Widget"><dir name="Link"><file name="01_content.php" hash="2862dcc4937c58fbee284764732e733c"/></dir><dir name="View"><file name="01_top.php" hash="a31bafcf8918811ff55b0a8eaf49c021"/><file name="02_status.php" hash="fd4d2e31a4c04c13bb470ce615550310"/><file name="03_template.php" hash="e6fd0367cfbd0b14996e189ac56b2d3b"/><file name="04_status.php" hash="573160846b9e8693e966c0881103f25e"/><file name="05_footer.php" hash="1009acd5e8f54dbedb651ecffb283df1"/></dir></dir></dir><dir name="Rss"><file name="01_content.php" hash="ea37b93ec747a042dd51e2e4eaeb22ac"/></dir></dir><dir name="Controller"><dir name="Adminhtml"><dir name="Module"><file name="01_content.php" hash="938c09e00f8a7045d70c7e97dd478df8"/></dir></dir><dir name="Router"><file name="01_top.php" hash="c9dd518945d5ab5fb7508084c2206125"/><file name="02_entity.php" hash="8ba8993dd992d580cd5e3b6ced303d38"/><file name="03_footer.php" hash="7ba40f835c0bbca8dfb8e60753142de4"/></dir></dir><dir name="Helper"><dir name="Data"><file name="01_top.php" hash="44aa03c717b24b0086230271b07f195a"/><file name="02_entity.php" hash="378423c2b9ba4ac86328e094d6e60946"/><file name="03_footer.php" hash="cbb184dd8e05c9709e5dcaedaa0495cf"/></dir><dir name="Entity"><file name="01_top.php" hash="6e37881fbe0898e930a5d7b3d1ce606f"/><file name="02_tree.php" hash="8e6d460e528f4b0e3e74bbbff06336dd"/><file name="03_rss.php" hash="9e9fa595a4a7ec7f159e1d64620119ae"/><file name="04_file.php" hash="44bc7ce84f603100f67dedc1edf3cc0d"/><file name="05_footer.php" hash="2e687c8e025cca2e891ac925406f277c"/><dir name="Image"><file name="01_content.php" hash="e09360ea17dff94a611787004030275b"/></dir></dir><dir name="Image"><dir name="Abstract"><file name="01_content.php" hash="b39acaba6cf4d242689147dfffc8f095"/></dir></dir><dir name="Product"><file name="01_top.php" hash="20709afdafe7e3fd280e7c346a441b0c"/><file name="02_content.php" hash="33fa587ea74ff5caae02e2263bd6092b"/><file name="03_footer.php" hash="cbb184dd8e05c9709e5dcaedaa0495cf"/></dir></dir><dir name="Model"><dir name="Adminhtml"><dir name="Observer"><file name="01_top.php" hash="abec4c7c295fb57c4086fdf9d22cdf28"/><file name="02_entity.php" hash="6c64bd2314a24f6d2dafa4dedb448b8c"/><file name="03_entity_save.php" hash="6b6db7bcb0cffefc6c3406df406c497a"/><file name="04_entity_save_tree.php" hash="aca15cbb7afc5a832488addb56df157e"/><file name="05_footer.php" hash="cbb184dd8e05c9709e5dcaedaa0495cf"/></dir><dir name="Search"><dir name="Entity"><file name="01_content.php" hash="824a247bcd2cadb8f1da16ec3034d1c1"/></dir></dir></dir><dir name="Entity"><file name="01_top.php" hash="37daaca4671c58ef2fb2eaa50e0d7a7b"/><file name="02_var_sibling.php" hash="cbbdeeaa7082b22b3a57508dc6bcd4fa"/><file name="03_var_product_relation.php" hash="50cd6433f6617ed2d47c2a9ab9bee4d1"/><file name="04_construct.php" hash="81fb22faf1dc0c05920f5db34061100c"/><file name="05_url.php" hash="6d955735b11308ec8087bfbf2d0c6078"/><file name="06_url_rewrite_not_status.php" hash="514c4998931a817a55e652ec6fa4a322"/><file name="07_url_rewrite_status.php" hash="c5b3cbcffc16a48989a5491e4abd2c4b"/><file name="08_editors.php" hash="615bc07ef7e14bc892bb567e3c22cef7"/><file name="09_after_save_top.php" hash="f456ae82840db694e49d527d6ad23f8f"/><file name="10_after_save_product.php" hash="7e85bbf889a5beededa975831b573d97"/><file name="11_after_save_sibling.php" hash="a7ea726ae5b4b19f78773a563a7196bf"/><file name="12_after_save_footer.php" hash="1af792cf3f94391bbe2b261a0d927a8c"/><file name="13_product_relation.php" hash="890ad6b1cad708779f0e5cb1aa745f1a"/><file name="14_sibling_relation.php" hash="f833e4acb70b198a1cc69da992affc76"/><file name="15_tree.php" hash="c577ef6c4d67da82d5226162345ef896"/><file name="16_tree_status.php" hash="64da48d68c1af82304cea4ee2c21800e"/><file name="17_footer.php" hash="cbb184dd8e05c9709e5dcaedaa0495cf"/><dir name="Product"><file name="01_content.php" hash="d8dfaa0ac8ba132bf95d3d65452d9795"/></dir><dir name="Sibling"><file name="01_content.php" hash="ef2fc76324ca0afcaabab7f8272bd526"/></dir></dir><dir name="Resource"><dir name="Entity"><file name="01_top.php" hash="8584bb2dba4e8da350ad36ee91ba7094"/><file name="02_tree_var.php" hash="8a673f57e7979c6c0aa2dc38c8f29c38"/><file name="03_constructor.php" hash="1c67d6971268cb3765067a30d6a5ebac"/><file name="04_tree.php" hash="f5f39cd45b72b48079a8bc3c6cee81d2"/><file name="05_tree_before_save_no_url_rewrite.php" hash="721b246ab7c8011faa810f9c509cbc76"/><file name="06_tree_before_save_url_rewrite.php" hash="872a4a6d7b408bf621a52739e5d8438a"/><file name="07_children_no_status.php" hash="41b492cea369e6303ad444b16f016857"/><file name="08_children_status.php" hash="61bfda77779840f9855311137112979e"/><file name="09_content.php" hash="ad6a926a11cf4ca722b896a78bbeadab"/><file name="10_url_rewrite_status.php" hash="1f7413dfcd315965fac22404f7a2808e"/><file name="11_url_rewrite_not_status.php" hash="13b834ba94b4998155668d3c211d2759"/><file name="12_url_rewrite_before_save_not_tree.php" hash="2d51e7bda2f717d22bd17593851f65fa"/><file name="13_footer.php" hash="cbb184dd8e05c9709e5dcaedaa0495cf"/><dir name="Collection"><file name="01_top.php" hash="7aed912ade7c0e7f779b73d3022772b4"/><file name="02_tree.php" hash="22c1250f162919870d08ec9aa71b949e"/><file name="03_tree_status.php" hash="fe745dc63220b3ddd5f799921077ac51"/><file name="04_product_relation.php" hash="d2f707b97df2ecf2d088aebeeb660822"/><file name="05_sibling_relation.php" hash="4563330e972ef0b0f4b96096b8594727"/><file name="06_footer.php" hash="cbb184dd8e05c9709e5dcaedaa0495cf"/></dir><dir name="Product"><file name="01_content.php" hash="1545e16c25769395d3d95ec03a8cd4b3"/><dir name="Collection"><file name="01_content.php" hash="401d1dc800ddf76ea155160f3e02d162"/></dir><dir name="IsTree"><file name="01_content.php" hash="0a1b1718dec4ec27dc5310d45b388e2e"/></dir></dir><dir name="Sibling"><file name="01_top.php" hash="e78ca594012a642782fc2292084f81ca"/><file name="02_save_relation.php" hash="43dbb46224c1f8ca4a658a6a5d5077ad"/><file name="03_save_relation_tree.php" hash="1b0b458b7327dd6beaca0455d4268921"/><file name="04_footer.php" hash="cbb184dd8e05c9709e5dcaedaa0495cf"/><dir name="Collection"><file name="01_content.php" hash="c48de1443823a6ff51517f8a6cab0599"/></dir></dir><dir name="Tree"><file name="01_top.php" hash="d286ac636149b07c3e1993eb4d157529"/><file name="02_status_top.php" hash="f4151c843a394922807dcb59ce6807d8"/><file name="03_content.php" hash="402a0ba7525c552db2e2fa64c79f6473"/><file name="04_not_status.php" hash="d1b54f100c018fe6d5ae965e5aac8dd8"/><file name="05_status.php" hash="df0ef83645e0784f4c33534b976421ee"/><file name="06_footer.php" hash="cbb184dd8e05c9709e5dcaedaa0495cf"/></dir></dir><dir name="Setup"><file name="01_content.php" hash="335c579a20a627c5a403e3c7ac6156c0"/></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Module"><dir name="Entity"><dir name="Catalog"><dir name="ProductController"><file name="01_content.php" hash="b904ef31283029cf808cc42719208874"/><dir name="IsTree"><file name="01_content.php" hash="989ec00484ec5ef3f04df8f9f0007eee"/></dir></dir></dir><dir name="WidgetController"><file name="01_content.php" hash="8d934e135109f74ac036b84d6939f6c9"/><file name="02_tree.php" hash="41b1fca05f9bd59455c72b1d240cc1e7"/><file name="03_footer.php" hash="cbb184dd8e05c9709e5dcaedaa0495cf"/></dir></dir><dir name="EntityController"><file name="01_top.php" hash="21cbb6239ec0b4d998b494308af6cf1a"/><file name="02_upload_image.php" hash="c111546b644ffafd26c102f095334f95"/><file name="03_upload_files.php" hash="90fd33445b8889a23e5af035da89c15e"/><file name="04_save_product_relation.php" hash="29b35c54da6069c72edd245c42aa5369"/><file name="05_save_sibling_relation.php" hash="e9fe7f25344280b483db7108cc3ae0b1"/><file name="06_save_sibling_relation_tree.php" hash="ee1dcb0a6924b8c7c074a63ec2331f53"/><file name="07_save.php" hash="11c73c7cfc8c76738fce70c466ba7c63"/><file name="08_exception_upload.php" hash="216185c48b0b0937597939a95026a1c9"/><file name="09_exception.php" hash="b34376b34211a9cc21609ac7438d6d6d"/><file name="10_center.php" hash="bc1d289241de1722abb5685c63352c2e"/><file name="11_mass_status.php" hash="31d3560d9ec69d1e5f190d34ef9f54a2"/><file name="12_mass_update.php" hash="adc4ce198da420c75a45f32f9deb9d8f"/><file name="13_mass_parents.php" hash="2f6af9624a7c790d0995fb445e3b8af5"/><file name="14_product_relation_actions.php" hash="772e8ec1661ca45871bc962bdf1bbbcd"/><file name="15_sibling_actions.php" hash="8833208a9d834e7d5fda272a6b827b53"/><file name="16_sibling_actions_tree.php" hash="2994bf89f5d90bfc90e94a76444a4719"/><file name="17_footer.php" hash="044299b6435f621987f31c7c540f113c"/><dir name="IsTree"><file name="01_top.php" hash="951a6a86fdc5f2b39a6b2cae4c9f6434"/><file name="02_wysiwyg.php" hash="3c2ec4bab3895ca6a43bd0416b827028"/><file name="03_save.php" hash="e22bd734eb73a53a0d365f619cd8f7e6"/><file name="04_upload_image.php" hash="c111546b644ffafd26c102f095334f95"/><file name="05_upload_file.php" hash="90fd33445b8889a23e5af035da89c15e"/><file name="06_save_continue.php" hash="b277fb6a9cdb4a28b43416331154f9b8"/><file name="07_product_data.php" hash="d9050ba8bf3d0780d5077a606184e09c"/><file name="08_sibling_data.php" hash="5edd1b8750aef7c7e4fc0137d038a867"/><file name="09_real_save.php" hash="c59972f30bbca76b52376696013d9f82"/><file name="10_product_relation_action.php" hash="1a9875a99162f151e67b827e695f22a9"/><file name="11_sibling_actions.php" hash="0c165d6714a5a4b6203c9d021cdba223"/><file name="12_footer.php" hash="cbb184dd8e05c9709e5dcaedaa0495cf"/></dir></dir></dir></dir><dir name="EntityController"><file name="01_top.php" hash="eec876d7b63d893886bb334b09480af4"/><file name="02_list.php" hash="dfcf0e406a5a6548637bd50ce06bb1f6"/><file name="03_list_seo.php" hash="04dedfdc059b8b4b89c7c9ccc403a4b4"/><file name="04_list_footer.php" hash="1d41a3331d006d0a04ff32bb4085210b"/><file name="05_view.php" hash="65c4d2ff246370e5bda69be233e01275"/><file name="06_view_status.php" hash="fd0bc040dc135e3469757569ffcf7899"/><file name="07_view_status_tree.php" hash="2b36e7be800e6c59e12a87b0ef697097"/><file name="08_view2.php" hash="af3fc07f58fa608f8f70f2e0264fe0bd"/><file name="09_breadcrumbs.php" hash="8157b6c12ecd17df9acdf095e7eb75db"/><file name="10_breadcrumbs_tree.php" hash="f2391a45fb1ce3e64de454981973cc23"/><file name="11_breadcrumbs_footer.php" hash="b41efc51d35a4f93a3b00dc5f899e1b5"/><file name="12_view_seo.php" hash="2e56f0ef104d419dee88abf037fe9f18"/><file name="13_view_footer.php" hash="3be2b1b314c50af6fd03c53647f06e56"/><file name="14_rss.php" hash="6e2fc4485e7a2b6c3508d05d7b71748d"/><file name="15_footer.php" hash="cbb184dd8e05c9709e5dcaedaa0495cf"/></dir></dir><dir name="data"><dir name="namespace_module_setup"><dir name="data-install-0.0.1.php"><file name="01_top.php" hash="d63e4a5fbe4435eadd52abf1534ee829"/><file name="02_entity.php" hash="df6b285616bf2741ae9288e5d9e0758e"/></dir></dir></dir><dir name="etc"><dir name="adminhtml"><file name="01_top.xml" hash="11dee4372e147adfdd6dcf549207d52c"/><file name="02_entity_acl.xml" hash="6afabb39251e5233380992ec92a7a49f"/><file name="03_center.xml" hash="c3daf849d2cc4f2b9bb10319466df7b9"/><file name="04_entity_menu.xml" hash="c940e5491e196974bd81421566bec92d"/><file name="05_footer.xml" hash="567de2825a456f5c8de1c2d3f718b333"/></dir><dir name="config"><file name="01_top.xml" hash="ab60a876013ce736e83c89e6e9be4e25"/><file name="02_tables.xml" hash="07d07c4044d5ee658664c9d3465ea676"/><file name="03_siblings_table.xml" hash="13cdf74c83b7d86d15717b7e31bcc5ed"/><file name="04_relation_table.xml" hash="5e50710deedcd19316110a4db8dbfe5c"/><file name="05_global.xml" hash="9e1870511df355e90da3f86acb7e88cf"/><file name="06_url_rewrite.xml" hash="d7e710748d570d29aca3d15ec4424f2d"/><file name="07_adminhtml.xml" hash="f91e8a152a9e4b7c331df0583e987c7c"/><file name="08_relation_product.xml" hash="de83346f1f657f61a23251f37016bd99"/><file name="09_global_search_top.xml" hash="24e3dddbf6fc52170457a0804c07e060"/><file name="10_global_search_entity.xml" hash="c9e6a985c2292d82c0e648b0fea07837"/><file name="11_global_search_footer.xml" hash="46e34587440f1aa3462eba45aca78be7"/><file name="12_admin.xml" hash="d4c5c6313071ffa54afb69782dbcc21e"/><file name="13_frontend.xml" hash="9617988c4eb5ab502eb57349ab1a2dec"/><file name="14_default_top.xml" hash="a306c05cad3fd6c4c46f5c162e52df68"/><file name="15_default.xml" hash="fc553b2555e09b1ab639b58649b5b4cf"/><file name="16_default_footer.xml" hash="40004610d67a1bcf5ecf317917a1b0ab"/></dir><dir name="system"><file name="01_top.xml" hash="a250611cd158a2b0f9c0adef5b3d8074"/><file name="02_entity.xml" hash="0e789a6caeecd1e7223ab6c44ca1504e"/><file name="03_footer.xml" hash="2ead9ca0742a78448b5db442581d4cd9"/></dir><dir name="widget"><file name="01_top.xml" hash="29a6efa02a0f04ce056cc53d0b4e2272"/><file name="02_entity.xml" hash="102a8cfb8f0a2c330768add309e25e97"/><file name="03_footer.xml" hash="b84026fabe4a09ef682aac220eccf07a"/></dir></dir><dir name="sql"><dir name="namespace_module_setup"><dir name="install-0.0.1"><file name="01_top.php" hash="50cec9cf47ccb1001b16c156bd792210"/><file name="02_entity.php" hash="fdfc8dbe0872a9f346d10925942daad0"/><file name="03_product_relation.php" hash="1be95058703726dc35fc985466d62129"/><file name="04_sibling_relation.php" hash="581b0adc63e3e28ab89dc576a3f2e7d6"/><file name="05_footer.php" hash="7d307239f928e12e9a9b48754777f640"/></dir></dir></dir></dir></dir></dir></dir><dir name="design"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="namespace_module"><file name="01_top.xml" hash="c657e63ddce2df350b7d45c57620e967"/><file name="02_entity_not_tree.xml" hash="4897e318fff890bf377ed3e8091b9986"/><file name="03_relation_product.xml" hash="4ae352696eebe3635e9df76bedaf48d6"/><file name="04_relation_sibling.xml" hash="b9f5a68c69914abeb24c9638a451b157"/><file name="05_entity_tree.xml" hash="e598aa0b93b1e6d5f180bac14f0fc20c"/><file name="06_relation_product_tree.xml" hash="897ddf70ea257a2f553bed07f1e84e3c"/><file name="07_relation_sibling_tree.xml" hash="3ae178a0a81364ec8df9935bf8a3da23"/><file name="08_footer.xml" hash="fd25391f06094530aadcbee222b433fc"/></dir></dir><dir name="template"><dir name="namespace_module"><dir name="catalog"><dir name="product"><dir name="edit"><dir name="tab"><dir name="entity"><file name="01_content.phtml" hash="22515160e08aec47a72e51321949ef9b"/></dir></dir></dir></dir></dir><dir name="entity"><dir name="edit"><file name="01_content.phtml" hash="ce1e8b965823d7880a5acea0de5ba26a"/><dir name="form"><file name="01_top.phtml" hash="99f82b638e08569b4be985af5a77aa26"/><file name="02_product_hidden.phtml" hash="7ef02b97f351681086ccc0f69615cbef"/><file name="03_sibling_hidden.phtml" hash="b0ab3d283c7dd99670034f439f1a7e83"/><file name="04_content.phtml" hash="887287c2135f192c2e050e7d9c2df401"/><file name="05_status.phtml" hash="3f4356540bc8cef1186b62c04e41d305"/><file name="06_content2.phtml" hash="d3d867b32ed5001de64b9d349d4a304f"/><file name="07_product_relation.phtml" hash="95ca5bc339ba49da37e0f9b5714521ea"/><file name="08_sibling_relations.phtml" hash="781a697648d00ec4c824380fae4b67ac"/><file name="09_footer.phtml" hash="5fd8d0c41500e156711c723af13f627f"/></dir><dir name="tab"><dir name="sibling"><file name="01_content.phtml" hash="59bbfec6eb6cee9778872eac55ac74bc"/></dir></dir></dir><dir name="tree"><file name="01_content.phtml" hash="0326fef77a80ddb5d154939783b52b1a"/></dir><dir name="widget"><dir name="tree"><file name="01_content.phtml" hash="e0e24d2640bdc3e4c7234564b263465f"/></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="namespace_module"><file name="01_top.xml" hash="bf6f2b1a2a7bfaec115c381abfa40e02"/><file name="02_default_top.xml" hash="10c0056a19cc82fbf809aa13b879b4ff"/><file name="03_default.xml" hash="e58d9aa36808b39bdd648d51fca7b992"/><file name="04_default_footer.xml" hash="22f72da3c656b5721d355607c891cc9c"/><file name="05_list.xml" hash="d612266dae53939552fb5b0a6fcb6feb"/><file name="06_view.xml" hash="7f3837e6fc2f6325304d5028fcfda532"/><file name="07_entity_rss.xml" hash="f06074f610065fbc6cb9a228402da7a7"/><file name="08_rss_top.xml" hash="54753c3cd7d42667c88c88f0084484f2"/><file name="09_rss.xml" hash="b513533d7cc561ec197ce1662bf54883"/><file name="10_rss_footer.xml" hash="3adf9a1e5301aa4221cede3ff5208785"/><file name="11_relation_product.xml" hash="309965e4062dc6f6f82dd495035e08ec"/><file name="12_footer.xml" hash="fd25391f06094530aadcbee222b433fc"/></dir></dir><dir name="template"><dir name="namespace_module"><dir name="catalog"><dir name="product"><dir name="list"><dir name="entity"><file name="01_top.phtml" hash="bb86f12fc472152437ef1be97280d258"/><file name="02_link_top.phtml" hash="62a65063f9611f31b02a5b3f3b34f524"/><file name="03_name.phtml" hash="fed55ae628836787e7a2ba05b1e695e6"/><file name="04_link_footer.phtml" hash="f01ee0fb040754cbdd4c7ca86dbec387"/><file name="05_footer.phtml" hash="d0bff7b594da78b60141591d6870556b"/></dir></dir></dir></dir><dir name="entity"><dir name="catalog"><dir name="product"><dir name="list"><file name="01_content.phtml" hash="96ec480a53c89ff5b87cfd59dc163f9e"/></dir></dir></dir><dir name="children"><file name="01_content.phtml" hash="129d29d6a49f3e6bbbd0697f55c97740"/></dir><dir name="list"><file name="01_top.phtml" hash="10c541cba8766100d47e8baadb8ce6a5"/><file name="02_rss_link.phtml" hash="cacf7866f6dd54ab37a217d7cb7466c7"/><file name="03_footer.phtml" hash="24d3a1e0224a9e59f5daa0d2660e76b4"/><file name="04_footer_is_tree.phtml" hash="098332bf5a88d8529ea3ef57ed9c75f4"/></dir><dir name="sibling"><dir name="child"><dir name="list"><file name="01_content.phtml" hash="5a1f524b49cf120201a90ee695f90544"/></dir></dir><dir name="list"><file name="01_content.phtml" hash="5a1f524b49cf120201a90ee695f90544"/></dir></dir><dir name="view"><file name="01_content.phtml" hash="205b0b21c650f28ff0e364d6ec8ce552"/></dir><dir name="widget"><dir name="link"><file name="01_content.phtml" hash="11d9e23bd1c2f8cb8a0f857c8bb393d8"/></dir><dir name="view"><file name="01_content.phtml" hash="f89f40babc5af3cd30597cd097ad9ab9"/></dir></dir></dir><dir name="rss"><file name="01_content.phtml" hash="172a345ace9b7ec84ad2e18f51d48257"/></dir></dir></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><dir name="Namespace_Module"><file name="01_content.xml" hash="4495317a1b8392281b68f07a546c56c2"/></dir></dir></dir><dir name="locale"><dir name="en_US"><dir name="Namespace_Module"><file name="01_global.csv" hash="133cec10c0a2d55366574bbaa3c98a6f"/><file name="02_entity.csv" hash="97e1a2056ec2f49acc1c5c9598ef10d7"/><file name="03_attribute.csv" hash="0bc9532d35587f2225e398156cc3ef7f"/><file name="04_global_status.csv" hash="507d9e24387e6935b1ee629e8432f842"/><file name="05_global_rss.csv" hash="df495f10c1e7d7d3fb770d8b406b9f9b"/><file name="06_global_seo.csv" hash="5f973fd7dfbb61ce8c21d6f7e8622379"/><file name="07_attribute_yesno.csv" hash="20eaf2d5eaa8224e5fa1c7a63634b1c0"/><file name="08_global_file.csv" hash="8bebcdd48d5ae7b533cc53e789f03ef2"/><file name="09_product_relation.csv" hash="b96f377dfa788f2772f2f8b7f156aebd"/><file name="10_relations.csv" hash="d0f7a10c89d21ade4ba17cd73dbb42fb"/><file name="11_global_tree.csv" hash="279098d455e2c1adcde8668e042541d7"/><file name="12_tree_entity.csv" hash="d41675dbb1bf588d1d59af8f7b255c2d"/><file name="13_url_rewrite.csv" hash="56d63caf8b00b1bc92bece5516b6b27f"/></dir></dir></dir></dir><dir name="skin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="namespace_module"><dir name="tree"><file name="01_content.css" hash="7929b899ed457d539637d5083286bed4"/></dir></dir></dir><dir name="images"><dir name="namespace_module"><dir name="collapsedgif"><file name="01_content.gif" hash="ef74c08289e94b7aae81766fb00d4195"/></dir><dir name="collapsedpng"><file name="01_content.png" hash="0613450d25c762b6a40c51768b02462d"/></dir><dir name="expandedgif"><file name="01_content.gif" hash="3f5512a54f359343273caf7b3787ee8a"/></dir><dir name="expandedpng"><file name="01_content.png" hash="f7f28ae897708c78b28ead22c3692bb8"/></dir><dir name="line1gif"><file name="01_content.gif" hash="65b0c812c8d57ea72b84fc69a077a40a"/></dir><dir name="line1png"><file name="01_content.png" hash="4e01064a2c78b8885f65ff7a40f78c02"/></dir><dir name="line2gif"><file name="01_content.gif" hash="95fc5c58069ece5eb44e198ee53b3fe1"/></dir><dir name="line2png"><file name="01_content.png" hash="6adbb4ca64d943f5ee5528d713757fde"/></dir></dir><dir name="placeholder"><file name="entity.jpg" hash="6361a80d5ca988fcec45ad3767322e5e"/></dir></dir><dir name="js"><dir name="namespace_module"><dir name="tree"><file name="01_content.js" hash="1b8a1e7b1cb23e7a87e05b33a34523a0"/></dir></dir></dir></dir></dir></dir></dir></dir><file name="modulecreator.xml" hash="4f9e48642035eb4b72f529869dc563cc"/><file name="system.xml" hash="5375cca1089787206cfabb41d7aa0614"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="ultimate_modulecreator.xml" hash="f21bb3c8940eb81307817c0491caf300"/></dir><dir name="template"><dir name="ultimate_modulecreator"><dir name="edit"><dir name="tab"><dir name="entities"><dir name="entity"><file name="attribute.phtml" hash="586ebc5ca473dfcd1a0a47917c4353e4"/></dir><file name="entity.phtml" hash="f356184e2d8855a13456f52ac7e51d8e"/></dir><file name="entities.phtml" hash="df9179ffd5e72a04cf4740488521f0ce"/><file name="help.phtml" hash="dae530bc9d4ab9445d95d087bfc80fe6"/><file name="relation.phtml" hash="17a41ecbecdf7af519d11c3d026a800b"/></dir></dir><file name="edit.phtml" hash="8d10e82ae89d9e4ede28e6c59c9e724c"/><file name="tooltip.phtml" hash="d3598ad3f978d708b1f7f36feee39560"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Ultimate_ModuleCreator.xml" hash="324d2b364541a7355c9ff4248c0518f2"/></dir></target><target name="magelocale"><dir name="en_US"><file name="Ultimate_ModuleCreator.csv" hash="e8d1c6166a369904c245004c99893f40"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><file name="ultimate_modulecreator.css" hash="781a789d72dc08f660479543ff09b143"/><dir name="images"><dir name="ultimate_modulecreator"><file name="logo.png" hash="9c9ca3b07295cab1cb1503865905ee50"/></dir></dir></dir></dir></dir></target><target name="mage"><dir name="."><file name="LICENSE_UMC.txt" hash="1372b858e10f4c6feb2967766a0b7a62"/><file name="readme_UMC.txt" hash="7b8cd5baf640a5078be5c7136b56b5d9"/></dir></target><target name="mageweb"><dir name="."><file name="modman" hash="191dd9a4e001d6f8de5933202daac7d1"/></dir></target></contents>
25
  <compatible/>
26
  <dependencies><required><php><min>5.0.0</min><max>7.0.0</max></php></required></dependencies>
27
  </package>