Version Notes
Feature
- Support for URL rewrites for entity list pages
Bug Fix:
- EAV tree entities admin tree not refreshing on save
Improvement
- Cleaned a bit the code
Download this release
Release Info
Developer | Marius |
Extension | Ultimate_ModuleCreator |
Version | 1.9.4.1 |
Comparing to | |
See all releases |
Code changes from version 1.9.4.0 to 1.9.4.1
- app/code/community/Ultimate/ModuleCreator/Block/Adminhtml/Modulecreator/Edit.php +61 -53
- app/code/community/Ultimate/ModuleCreator/Block/Adminhtml/Modulecreator/Edit/Form.php +5 -1
- app/code/community/Ultimate/ModuleCreator/Block/Adminhtml/Modulecreator/Edit/Tab/Entities.php +1 -0
- app/code/community/Ultimate/ModuleCreator/Block/Adminhtml/Modulecreator/Edit/Tab/Entities/Entity.php +10 -1
- app/code/community/Ultimate/ModuleCreator/Block/Adminhtml/Modulecreator/Edit/Tab/Entities/Entity/Attribute.php +12 -1
- app/code/community/Ultimate/ModuleCreator/Block/Adminhtml/Modulecreator/Edit/Tab/Help.php +46 -30
- app/code/community/Ultimate/ModuleCreator/Block/Adminhtml/Modulecreator/Edit/Tab/Help/Fieldset.php +5 -0
- app/code/community/Ultimate/ModuleCreator/Block/Adminhtml/Modulecreator/Edit/Tab/Relation.php +3 -0
- app/code/community/Ultimate/ModuleCreator/Block/Adminhtml/Modulecreator/Edit/Tab/Settings.php +4 -2
- app/code/community/Ultimate/ModuleCreator/Block/Adminhtml/Modulecreator/Edit/Tabs.php +3 -0
- app/code/community/Ultimate/ModuleCreator/Block/Adminhtml/Modulecreator/Grid.php +5 -2
- app/code/community/Ultimate/ModuleCreator/Block/Adminhtml/Modulecreator/Grid/Column/Renderer/Download.php +5 -1
- app/code/community/Ultimate/ModuleCreator/Block/Adminhtml/Modulecreator/System/Config/Form/Fieldset/Abstract.php +5 -3
- app/code/community/Ultimate/ModuleCreator/Exception.php +2 -1
- app/code/community/Ultimate/ModuleCreator/Helper/Data.php +8 -5
- app/code/community/Ultimate/ModuleCreator/Model/Abstract.php +5 -5
- app/code/community/Ultimate/ModuleCreator/Model/Attribute.php +49 -3
- app/code/community/Ultimate/ModuleCreator/Model/Attribute/Type/Abstract.php +7 -2
- app/code/community/Ultimate/ModuleCreator/Model/Attribute/Type/Country.php +0 -4
- app/code/community/Ultimate/ModuleCreator/Model/Attribute/Type/Dropdown.php +6 -8
- app/code/community/Ultimate/ModuleCreator/Model/Attribute/Type/Dropdown/Abstract.php +6 -0
- app/code/community/Ultimate/ModuleCreator/Model/Attribute/Type/Dropdown/Custom.php +1 -1
- app/code/community/Ultimate/ModuleCreator/Model/Attribute/Type/Dropdown/Product.php +7 -7
- app/code/community/Ultimate/ModuleCreator/Model/Attribute/Type/File.php +0 -2
- app/code/community/Ultimate/ModuleCreator/Model/Attribute/Type/Image.php +0 -2
- app/code/community/Ultimate/ModuleCreator/Model/Attribute/Type/Timestamp.php +0 -1
- app/code/community/Ultimate/ModuleCreator/Model/Attribute/Type/Yesno.php +0 -3
- app/code/community/Ultimate/ModuleCreator/Model/Config.php +1 -1
- app/code/community/Ultimate/ModuleCreator/Model/Entity.php +87 -64
- app/code/community/Ultimate/ModuleCreator/Model/Entity/Type/Eav.php +2 -8
- app/code/community/Ultimate/ModuleCreator/Model/Module.php +94 -36
- app/code/community/Ultimate/ModuleCreator/Model/Module/Collection.php +2 -1
- app/code/community/Ultimate/ModuleCreator/Model/Relation.php +1 -1
- app/code/community/Ultimate/ModuleCreator/Model/Source/Attribute/Type.php +4 -2
- app/code/community/Ultimate/ModuleCreator/Model/Source/Attribute/Value/Source.php +3 -1
- app/code/community/Ultimate/ModuleCreator/Model/Source/Codepool.php +1 -1
- app/code/community/Ultimate/ModuleCreator/Model/Source/Entity/Layout.php +3 -1
- app/code/community/Ultimate/ModuleCreator/Model/Source/Entity/Type.php +3 -1
- app/code/community/Ultimate/ModuleCreator/Model/Source/Install.php +1 -1
- app/code/community/Ultimate/ModuleCreator/Model/Writer.php +2 -1
- app/code/community/Ultimate/ModuleCreator/controllers/Adminhtml/ModulecreatorController.php +11 -3
- app/code/community/Ultimate/ModuleCreator/etc/config.xml +1 -1
- app/code/community/Ultimate/ModuleCreator/etc/source/app/code/Block/Adminhtml/Entity/Edit/Tab/Attributes/021_default_values +9 -0
- app/code/community/Ultimate/ModuleCreator/etc/source/app/code/Block/Adminhtml/Entity/Edit/Tab/Attributes/022_default_values_tree +2 -0
- app/code/community/Ultimate/ModuleCreator/etc/source/app/code/Block/Adminhtml/Entity/Edit/Tab/Attributes/023_layout +0 -9
- app/code/community/Ultimate/ModuleCreator/etc/source/app/code/Controller/Router/020_entity +2 -0
- app/code/community/Ultimate/ModuleCreator/etc/source/app/code/Controller/Router/030_footer +12 -0
- app/code/community/Ultimate/ModuleCreator/etc/source/app/code/Helper/Entity/020_create_list +3 -0
- app/code/community/Ultimate/ModuleCreator/etc/source/app/locale/130_url_rewrite +2 -0
- app/code/community/Ultimate/ModuleCreator/etc/umc.xml +31 -0
- app/code/community/Ultimate/ModuleCreator/etc/umc_source.xml +11 -0
- app/design/adminhtml/default/default/layout/ultimate_modulecreator.xml +2 -2
- app/design/adminhtml/default/default/template/ultimate_modulecreator/edit.phtml +1 -1
- app/design/adminhtml/default/default/template/ultimate_modulecreator/edit/tab/entities.phtml +1 -1
- app/design/adminhtml/default/default/template/ultimate_modulecreator/edit/tab/entities/entity.phtml +2 -1
- app/design/adminhtml/default/default/template/ultimate_modulecreator/edit/tab/entities/entity/attribute.phtml +1 -0
- app/design/adminhtml/default/default/template/ultimate_modulecreator/edit/tab/help.phtml +1 -1
- app/design/adminhtml/default/default/template/ultimate_modulecreator/edit/tab/help/fieldset.phtml +1 -1
- app/design/adminhtml/default/default/template/ultimate_modulecreator/edit/tab/relation.phtml +1 -1
- app/design/adminhtml/default/default/template/ultimate_modulecreator/tooltip.phtml +2 -2
- app/locale/en_US/Ultimate_ModuleCreator.csv +8 -0
- js/ultimate_modulecreator.js +1 -1
- package.xml +11 -8
app/code/community/Ultimate/ModuleCreator/Block/Adminhtml/Modulecreator/Edit.php
CHANGED
@@ -66,63 +66,69 @@ class Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit
|
|
66 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
67 |
*/
|
68 |
protected function _prepareLayout() {
|
69 |
-
$
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
);
|
78 |
-
$this->setChild('reset_button',
|
79 |
-
$this->getLayout()
|
80 |
-
->createBlock('adminhtml/widget_button')
|
81 |
-
->setData(array(
|
82 |
-
'label' => Mage::helper('modulecreator')->__('Reset'),
|
83 |
-
'onclick' => 'setLocation(\''.$this->getUrl('*/*/*', array('_current'=>true)).'\')'
|
84 |
-
))
|
85 |
-
);
|
86 |
-
$this->setChild('save_button',
|
87 |
-
$this->getLayout()
|
88 |
-
->createBlock('adminhtml/widget_button')
|
89 |
-
->setData(array(
|
90 |
-
'label' => Mage::helper('modulecreator')->__('Save'),
|
91 |
-
'onclick' => 'moduleForm.submit()',
|
92 |
-
'class' => 'save'
|
93 |
-
))
|
94 |
-
);
|
95 |
-
$this->setChild('save_and_edit_button',
|
96 |
-
$this->getLayout()
|
97 |
-
->createBlock('adminhtml/widget_button')
|
98 |
-
->setData(array(
|
99 |
-
'label' => Mage::helper('modulecreator')->__('Save and Continue Edit'),
|
100 |
-
'onclick' => 'saveAndContinueEdit(\''.$this->getSaveAndContinueUrl().'\')',
|
101 |
-
'class' => 'save'
|
102 |
-
))
|
103 |
-
);
|
104 |
-
$this->setChild('add-entity',
|
105 |
-
$this->getLayout()
|
106 |
-
->createBlock('adminhtml/widget_button')
|
107 |
-
->setData(array(
|
108 |
-
'label' => Mage::helper('modulecreator')->__('Add entity'),
|
109 |
-
'class' => 'add add-entity'
|
110 |
-
))
|
111 |
-
);
|
112 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
113 |
$block = Mage::app()->getLayout()
|
114 |
-
->createBlock('modulecreator/adminhtml_modulecreator_edit_tab_entities_entity')
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
$this->setChild('entity-template', $block);
|
119 |
|
|
|
120 |
$block = Mage::app()->getLayout()
|
121 |
-
->createBlock('modulecreator/adminhtml_modulecreator_edit_tab_entities_entity_attribute')
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
$this->setChild('attribute-template', $block);
|
127 |
|
128 |
$this->setChild('menu-selector', Mage::app()->getLayout()->createBlock('modulecreator/adminhtml_modulecreator_menu'));
|
@@ -231,7 +237,9 @@ class Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit
|
|
231 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
232 |
*/
|
233 |
public function getRelationSelectTemplate() {
|
234 |
-
|
|
|
|
|
235 |
$template = '<select class="relation-select" name="relation[#{e1}][#{e2}]" id="relation_#{e1}_#{e2}">';
|
236 |
foreach ($types as $type=>$values){
|
237 |
$template .= '<option value="'.$type.'">'.(string)$values->label.'</option>';
|
66 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
67 |
*/
|
68 |
protected function _prepareLayout() {
|
69 |
+
/** @var Mage_Adminhtml_Block_Widget_Button $backButton */
|
70 |
+
$backButton = $this->getLayout()
|
71 |
+
->createBlock('adminhtml/widget_button')
|
72 |
+
->setData(array(
|
73 |
+
'label' => Mage::helper('modulecreator')->__('Back'),
|
74 |
+
'onclick' => 'setLocation(\''.$this->getUrl('*/*/').'\')',
|
75 |
+
'class' => 'back'
|
76 |
+
));
|
77 |
+
$this->setChild('back_button', $backButton);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
|
79 |
+
/** @var Mage_Adminhtml_Block_Widget_Button $resetButton */
|
80 |
+
$resetButton = $this->getLayout()
|
81 |
+
->createBlock('adminhtml/widget_button')
|
82 |
+
->setData(array(
|
83 |
+
'label' => Mage::helper('modulecreator')->__('Reset'),
|
84 |
+
'onclick' => 'setLocation(\''.$this->getUrl('*/*/*', array('_current'=>true)).'\')'
|
85 |
+
));
|
86 |
+
$this->setChild('reset_button', $resetButton);
|
87 |
+
|
88 |
+
/** @var Mage_Adminhtml_Block_Widget_Button $saveButton */
|
89 |
+
$saveButton = $this->getLayout()
|
90 |
+
->createBlock('adminhtml/widget_button')
|
91 |
+
->setData(array(
|
92 |
+
'label' => Mage::helper('modulecreator')->__('Save'),
|
93 |
+
'onclick' => 'moduleForm.submit()',
|
94 |
+
'class' => 'save'
|
95 |
+
));
|
96 |
+
$this->setChild('save_button', $saveButton);
|
97 |
+
|
98 |
+
/** @var Mage_Adminhtml_Block_Widget_Button $saveEditButton */
|
99 |
+
$saveEditButton = $this->getLayout()
|
100 |
+
->createBlock('adminhtml/widget_button')
|
101 |
+
->setData(array(
|
102 |
+
'label' => Mage::helper('modulecreator')->__('Save and Continue Edit'),
|
103 |
+
'onclick' => 'saveAndContinueEdit(\''.$this->getSaveAndContinueUrl().'\')',
|
104 |
+
'class' => 'save'
|
105 |
+
));
|
106 |
+
$this->setChild('save_and_edit_button', $saveEditButton);
|
107 |
+
|
108 |
+
/** @var Mage_Adminhtml_Block_Widget_Button $addEntityButton */
|
109 |
+
$addEntityButton = $this->getLayout()
|
110 |
+
->createBlock('adminhtml/widget_button')
|
111 |
+
->setData(array(
|
112 |
+
'label' => Mage::helper('modulecreator')->__('Add entity'),
|
113 |
+
'class' => 'add add-entity'
|
114 |
+
));
|
115 |
+
$this->setChild('add-entity', $addEntityButton);
|
116 |
+
|
117 |
+
/** @var Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Entities_Entity $block */
|
118 |
$block = Mage::app()->getLayout()
|
119 |
+
->createBlock('modulecreator/adminhtml_modulecreator_edit_tab_entities_entity');
|
120 |
+
$block->setTemplate('ultimate_modulecreator/edit/tab/entities/entity.phtml');
|
121 |
+
$block->setDefaultEntity();
|
122 |
+
$block->setIncrement('{{entity_id}}');
|
123 |
$this->setChild('entity-template', $block);
|
124 |
|
125 |
+
/** @var Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Entities_Entity_Attribute $block */
|
126 |
$block = Mage::app()->getLayout()
|
127 |
+
->createBlock('modulecreator/adminhtml_modulecreator_edit_tab_entities_entity_attribute');
|
128 |
+
$block->setTemplate('ultimate_modulecreator/edit/tab/entities/entity/attribute.phtml');
|
129 |
+
$block->setDefaultAttributeInstance();
|
130 |
+
$block->setIncrement('{{attribute_id}}');
|
131 |
+
$block->setEntityId('{{entity_id}}');
|
132 |
$this->setChild('attribute-template', $block);
|
133 |
|
134 |
$this->setChild('menu-selector', Mage::app()->getLayout()->createBlock('modulecreator/adminhtml_modulecreator_menu'));
|
237 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
238 |
*/
|
239 |
public function getRelationSelectTemplate() {
|
240 |
+
/** @var Ultimate_ModuleCreator_Helper_Data $helper */
|
241 |
+
$helper = Mage::helper('modulecreator');
|
242 |
+
$types = $helper->getRelationTypes();
|
243 |
$template = '<select class="relation-select" name="relation[#{e1}][#{e2}]" id="relation_#{e1}_#{e2}">';
|
244 |
foreach ($types as $type=>$values){
|
245 |
$template .= '<option value="'.$type.'">'.(string)$values->label.'</option>';
|
app/code/community/Ultimate/ModuleCreator/Block/Adminhtml/Modulecreator/Edit/Form.php
CHANGED
@@ -30,7 +30,11 @@ class Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Form
|
|
30 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
31 |
*/
|
32 |
protected function _prepareForm() {
|
33 |
-
$form = new Varien_Data_Form(array(
|
|
|
|
|
|
|
|
|
34 |
$form->setUseContainer(true);
|
35 |
$this->setForm($form);
|
36 |
return parent::_prepareForm();
|
30 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
31 |
*/
|
32 |
protected function _prepareForm() {
|
33 |
+
$form = new Varien_Data_Form(array(
|
34 |
+
'id' => 'edit_form',
|
35 |
+
'action' => $this->getUrl('*/modulecreator/save', array('id' => $this->getRequest()->getParam('id'))),
|
36 |
+
'method' => 'post'
|
37 |
+
));
|
38 |
$form->setUseContainer(true);
|
39 |
$this->setForm($form);
|
40 |
return parent::_prepareForm();
|
app/code/community/Ultimate/ModuleCreator/Block/Adminhtml/Modulecreator/Edit/Tab/Entities.php
CHANGED
@@ -80,6 +80,7 @@ class Ultimate_ModuleCreator_Block_Adminhtml_ModuleCreator_Edit_Tab_Entities
|
|
80 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
81 |
*/
|
82 |
public function getEntities() {
|
|
|
83 |
$module = Mage::registry('current_module');
|
84 |
if ($module) {
|
85 |
return $module->getEntities();
|
80 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
81 |
*/
|
82 |
public function getEntities() {
|
83 |
+
/** @var null|Ultimate_ModuleCreator_Model_Module $module */
|
84 |
$module = Mage::registry('current_module');
|
85 |
if ($module) {
|
86 |
return $module->getEntities();
|
app/code/community/Ultimate/ModuleCreator/Block/Adminhtml/Modulecreator/Edit/Tab/Entities/Entity.php
CHANGED
@@ -22,6 +22,12 @@
|
|
22 |
* @package Ultimate_ModuleCreator
|
23 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
24 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
class Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Entities_Entity
|
26 |
extends Mage_Adminhtml_Block_Widget_Form {
|
27 |
/**
|
@@ -31,7 +37,9 @@ class Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Entities_Ent
|
|
31 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
32 |
*/
|
33 |
protected function _prepareForm() {
|
34 |
-
|
|
|
|
|
35 |
$form->setHtmlIdPrefix('entity_'.$this->getIncrement().'_');
|
36 |
$form->addFieldNameSuffix('entity['.$this->getIncrement().']');
|
37 |
$this->setForm($form);
|
@@ -46,6 +54,7 @@ class Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Entities_Ent
|
|
46 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
47 |
*/
|
48 |
public function setDefaultEntity() {
|
|
|
49 |
$entity = Mage::getModel('modulecreator/entity');
|
50 |
$settings = Mage::getStoreConfig(Ultimate_ModuleCreator_Helper_Data::XML_ENTITY_CONFIG_PATH);
|
51 |
$entity->addData($settings);
|
22 |
* @package Ultimate_ModuleCreator
|
23 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
24 |
*/
|
25 |
+
/**
|
26 |
+
* @method Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Entities_Entity setEntity()
|
27 |
+
* @method Varien_Object getEntity()
|
28 |
+
* @method Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Entities_Entity setIncrement()
|
29 |
+
* @method int getIncrement()
|
30 |
+
*/
|
31 |
class Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Entities_Entity
|
32 |
extends Mage_Adminhtml_Block_Widget_Form {
|
33 |
/**
|
37 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
38 |
*/
|
39 |
protected function _prepareForm() {
|
40 |
+
/** @var Ultimate_ModuleCreator_Helper_Data $helper */
|
41 |
+
$helper = Mage::helper('modulecreator');
|
42 |
+
$form = $helper->getXmlForm('entity');
|
43 |
$form->setHtmlIdPrefix('entity_'.$this->getIncrement().'_');
|
44 |
$form->addFieldNameSuffix('entity['.$this->getIncrement().']');
|
45 |
$this->setForm($form);
|
54 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
55 |
*/
|
56 |
public function setDefaultEntity() {
|
57 |
+
/** @var Ultimate_ModuleCreator_Model_Entity $entity */
|
58 |
$entity = Mage::getModel('modulecreator/entity');
|
59 |
$settings = Mage::getStoreConfig(Ultimate_ModuleCreator_Helper_Data::XML_ENTITY_CONFIG_PATH);
|
60 |
$entity->addData($settings);
|
app/code/community/Ultimate/ModuleCreator/Block/Adminhtml/Modulecreator/Edit/Tab/Entities/Entity/Attribute.php
CHANGED
@@ -22,6 +22,14 @@
|
|
22 |
* @package Ultimate_ModuleCreator
|
23 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
24 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
class Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Entities_Entity_Attribute
|
26 |
extends Mage_Adminhtml_Block_Widget_Form {
|
27 |
/**
|
@@ -31,7 +39,9 @@ class Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Entities_Ent
|
|
31 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
32 |
*/
|
33 |
protected function _prepareForm() {
|
34 |
-
|
|
|
|
|
35 |
$form->setHtmlIdPrefix('attribute_'.$this->getEntityId().'_'.$this->getIncrement().'_');
|
36 |
$form->addFieldNameSuffix('entity['.$this->getEntityId().'][attributes]['.$this->getIncrement().']');
|
37 |
$this->setForm($form);
|
@@ -46,6 +56,7 @@ class Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Entities_Ent
|
|
46 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
47 |
*/
|
48 |
public function setDefaultAttributeInstance() {
|
|
|
49 |
$attribute = Mage::getModel('modulecreator/attribute');
|
50 |
$settings = Mage::getStoreConfig(Ultimate_ModuleCreator_Helper_Data::XML_ATTRIBUTE_CONFIG_PATH);
|
51 |
$attribute->addData($settings);
|
22 |
* @package Ultimate_ModuleCreator
|
23 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
24 |
*/
|
25 |
+
/**
|
26 |
+
* @method Varien_Object getAttributeInstance()
|
27 |
+
* @method Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Entities_Entity_Attribute setAttributeInstance()
|
28 |
+
* @method string getEntityId()
|
29 |
+
* @method Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Entities_Entity_Attribute setIncrement()
|
30 |
+
* @method int getIncrement()
|
31 |
+
* @method Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Entities_Entity_Attribute setEntityId()
|
32 |
+
*/
|
33 |
class Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Entities_Entity_Attribute
|
34 |
extends Mage_Adminhtml_Block_Widget_Form {
|
35 |
/**
|
39 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
40 |
*/
|
41 |
protected function _prepareForm() {
|
42 |
+
/** @var Ultimate_ModuleCreator_Helper_Data $helper */
|
43 |
+
$helper = Mage::helper('modulecreator');
|
44 |
+
$form = $helper->getXmlForm('attribute', false);
|
45 |
$form->setHtmlIdPrefix('attribute_'.$this->getEntityId().'_'.$this->getIncrement().'_');
|
46 |
$form->addFieldNameSuffix('entity['.$this->getEntityId().'][attributes]['.$this->getIncrement().']');
|
47 |
$this->setForm($form);
|
56 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
57 |
*/
|
58 |
public function setDefaultAttributeInstance() {
|
59 |
+
/** @var Ultimate_ModuleCreator_Model_Attribute $attribute */
|
60 |
$attribute = Mage::getModel('modulecreator/attribute');
|
61 |
$settings = Mage::getStoreConfig(Ultimate_ModuleCreator_Helper_Data::XML_ATTRIBUTE_CONFIG_PATH);
|
62 |
$attribute->addData($settings);
|
app/code/community/Ultimate/ModuleCreator/Block/Adminhtml/Modulecreator/Edit/Tab/Help.php
CHANGED
@@ -91,6 +91,9 @@ class Ultimate_ModuleCreator_Block_Adminhtml_ModuleCreator_Edit_Tab_Help
|
|
91 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
92 |
*/
|
93 |
protected function _prepareLayout() {
|
|
|
|
|
|
|
94 |
$columns = array(
|
95 |
'label' => array(
|
96 |
'header'=>Mage::helper('modulecreator')->__('Field'),
|
@@ -115,28 +118,33 @@ class Ultimate_ModuleCreator_Block_Adminhtml_ModuleCreator_Edit_Tab_Help
|
|
115 |
'key' =>'tooltip'
|
116 |
),
|
117 |
);
|
118 |
-
$settingsTabHelp
|
119 |
-
|
|
|
120 |
->setColumns($columns)
|
121 |
->setDescription(Mage::helper('modulecreator')->__('General settings tab.'));
|
122 |
|
123 |
-
$entityTabHelp
|
124 |
-
|
|
|
125 |
->setColumns($columns)
|
126 |
->setDescription(Mage::helper('modulecreator')->__('Entity management.'));
|
127 |
|
128 |
-
$attributeTabHelp
|
129 |
-
|
|
|
130 |
->setColumns($columns)
|
131 |
->setDescription(Mage::helper('modulecreator')->__('Field/Attribute management.'));
|
132 |
|
133 |
$fieldTypes = array(
|
134 |
'field_types'=> array(
|
135 |
-
'label'=>Mage::helper('modulecreator')->__('Supported field / attribute types'),
|
136 |
-
'fields' =>
|
137 |
);
|
138 |
-
|
139 |
-
|
|
|
|
|
140 |
->setColumns(array(
|
141 |
'label' => array(
|
142 |
'header'=>Mage::helper('modulecreator')->__('Field'),
|
@@ -149,14 +157,15 @@ class Ultimate_ModuleCreator_Block_Adminhtml_ModuleCreator_Edit_Tab_Help
|
|
149 |
),
|
150 |
))
|
151 |
->setDescription(Mage::helper('modulecreator')->__('Supported field / attribute types'));
|
152 |
-
|
153 |
$relationTypes = array(
|
154 |
'field_types'=> array(
|
155 |
-
'label'=>Mage::helper('modulecreator')->__('Relation types'),
|
156 |
-
'fields' =>
|
157 |
));
|
158 |
-
|
159 |
-
|
|
|
|
|
160 |
->setColumns(array(
|
161 |
'label' => array(
|
162 |
'header'=>Mage::helper('modulecreator')->__('Relation'),
|
@@ -178,23 +187,24 @@ class Ultimate_ModuleCreator_Block_Adminhtml_ModuleCreator_Edit_Tab_Help
|
|
178 |
$objM->restricted = implode(', ',array_keys($routers));
|
179 |
$objM->label = Mage::helper('modulecreator')->__('Disallowed module names');
|
180 |
|
181 |
-
$entityRestrictedNames = implode(', ',array_keys((array)
|
182 |
$objE = new stdClass();
|
183 |
$objE->restricted = $entityRestrictedNames;
|
184 |
$objE->label = Mage::helper('modulecreator')->__('Disallowed entity names');
|
185 |
|
186 |
-
$attributeRestrictedNames = implode(', ',array_keys((array)
|
187 |
$objA = new stdClass();
|
188 |
$objA->restricted = $attributeRestrictedNames;
|
189 |
$objA->label = Mage::helper('modulecreator')->__('Disallowed field/attribute names');
|
190 |
$restrictions = array(
|
191 |
'field_types'=> array(
|
192 |
-
'label'=>Mage::helper('modulecreator')->__('Naming restrictions'),
|
193 |
'fields' => array($objN, $objM, $objE, $objA))
|
194 |
);
|
195 |
|
196 |
-
$restrictionsHelp
|
197 |
-
|
|
|
198 |
->setColumns(array(
|
199 |
'label' => array(
|
200 |
'header'=>Mage::helper('modulecreator')->__('Entity'),
|
@@ -206,21 +216,24 @@ class Ultimate_ModuleCreator_Block_Adminhtml_ModuleCreator_Edit_Tab_Help
|
|
206 |
),
|
207 |
))
|
208 |
->setDescription(Mage::helper('modulecreator')->__('Naming restrictions'));
|
|
|
209 |
$currentModule = Mage::registry('current_module');
|
210 |
if (!$currentModule){
|
|
|
211 |
$currentModule = Mage::getModel('modulecreator/module');
|
212 |
}
|
213 |
$files = $currentModule->getConfig()->getNode('files');
|
214 |
$allowedFiles = array();
|
215 |
-
foreach ((array)$files as $
|
216 |
if ($file->scope == 'disabled'){
|
217 |
continue;
|
218 |
}
|
219 |
$allowedFiles[] = $file;
|
220 |
}
|
221 |
|
222 |
-
$filesHelp
|
223 |
-
|
|
|
224 |
'files'=> array(
|
225 |
'label'=>Mage::helper('modulecreator')->__('Generated files'),
|
226 |
'fields' => $allowedFiles)
|
@@ -253,9 +266,11 @@ class Ultimate_ModuleCreator_Block_Adminhtml_ModuleCreator_Edit_Tab_Help
|
|
253 |
$this->setChild('restrictions_help', $restrictionsHelp);
|
254 |
$this->setChild('files_help', $filesHelp);
|
255 |
|
256 |
-
$releaseNotes = (array)
|
257 |
-
|
258 |
-
|
|
|
|
|
259 |
->setColumns(array(
|
260 |
'type' => array(
|
261 |
'header'=>Mage::helper('modulecreator')->__('Type'),
|
@@ -274,11 +289,12 @@ class Ultimate_ModuleCreator_Block_Adminhtml_ModuleCreator_Edit_Tab_Help
|
|
274 |
;
|
275 |
$this->setChild('release_notes', $releaseNotesHelp);
|
276 |
|
277 |
-
$thanks
|
278 |
-
|
|
|
279 |
'files'=> array(
|
280 |
-
'label'=>Mage::helper('modulecreator')->__('Thanks'),
|
281 |
-
'fields' => (array)
|
282 |
))
|
283 |
->setColumns(array(
|
284 |
'type' => array(
|
91 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
92 |
*/
|
93 |
protected function _prepareLayout() {
|
94 |
+
/** @var Ultimate_ModuleCreator_Helper_Data $helper */
|
95 |
+
$helper = Mage::helper('modulecreator');
|
96 |
+
|
97 |
$columns = array(
|
98 |
'label' => array(
|
99 |
'header'=>Mage::helper('modulecreator')->__('Field'),
|
118 |
'key' =>'tooltip'
|
119 |
),
|
120 |
);
|
121 |
+
/** @var Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Help_Fieldset $settingsTabHelp */
|
122 |
+
$settingsTabHelp = $this->getLayout()->createBlock('modulecreator/adminhtml_modulecreator_edit_tab_help_fieldset');
|
123 |
+
$settingsTabHelp->setFieldsets($helper->getFieldsetXmlData('settings'))
|
124 |
->setColumns($columns)
|
125 |
->setDescription(Mage::helper('modulecreator')->__('General settings tab.'));
|
126 |
|
127 |
+
/** @var Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Help_Fieldset $entityTabHelp */
|
128 |
+
$entityTabHelp = $this->getLayout()->createBlock('modulecreator/adminhtml_modulecreator_edit_tab_help_fieldset');
|
129 |
+
$entityTabHelp->setFieldsets($helper->getFieldsetXmlData('entity'))
|
130 |
->setColumns($columns)
|
131 |
->setDescription(Mage::helper('modulecreator')->__('Entity management.'));
|
132 |
|
133 |
+
/** @var Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Help_Fieldset $attributeTabHelp */
|
134 |
+
$attributeTabHelp = $this->getLayout()->createBlock('modulecreator/adminhtml_modulecreator_edit_tab_help_fieldset');
|
135 |
+
$attributeTabHelp->setFieldsets($helper->getFieldsetXmlData('attribute'))
|
136 |
->setColumns($columns)
|
137 |
->setDescription(Mage::helper('modulecreator')->__('Field/Attribute management.'));
|
138 |
|
139 |
$fieldTypes = array(
|
140 |
'field_types'=> array(
|
141 |
+
'label' => Mage::helper('modulecreator')->__('Supported field / attribute types'),
|
142 |
+
'fields' => $helper->getAttributeTypes())
|
143 |
);
|
144 |
+
|
145 |
+
/** @var Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Help_Fieldset $fieldTypesHelp */
|
146 |
+
$fieldTypesHelp = $this->getLayout()->createBlock('modulecreator/adminhtml_modulecreator_edit_tab_help_fieldset');
|
147 |
+
$fieldTypesHelp->setFieldsets($fieldTypes)
|
148 |
->setColumns(array(
|
149 |
'label' => array(
|
150 |
'header'=>Mage::helper('modulecreator')->__('Field'),
|
157 |
),
|
158 |
))
|
159 |
->setDescription(Mage::helper('modulecreator')->__('Supported field / attribute types'));
|
|
|
160 |
$relationTypes = array(
|
161 |
'field_types'=> array(
|
162 |
+
'label'=> Mage::helper('modulecreator')->__('Relation types'),
|
163 |
+
'fields' => $helper->getRelationTypes()
|
164 |
));
|
165 |
+
|
166 |
+
/** @var Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Help_Fieldset $relationsTypesHelp */
|
167 |
+
$relationsTypesHelp = $this->getLayout()->createBlock('modulecreator/adminhtml_modulecreator_edit_tab_help_fieldset');
|
168 |
+
$relationsTypesHelp->setFieldsets($relationTypes)
|
169 |
->setColumns(array(
|
170 |
'label' => array(
|
171 |
'header'=>Mage::helper('modulecreator')->__('Relation'),
|
187 |
$objM->restricted = implode(', ',array_keys($routers));
|
188 |
$objM->label = Mage::helper('modulecreator')->__('Disallowed module names');
|
189 |
|
190 |
+
$entityRestrictedNames = implode(', ',array_keys((array)$helper->getConfig()->getNode('restricted/entity')));
|
191 |
$objE = new stdClass();
|
192 |
$objE->restricted = $entityRestrictedNames;
|
193 |
$objE->label = Mage::helper('modulecreator')->__('Disallowed entity names');
|
194 |
|
195 |
+
$attributeRestrictedNames = implode(', ',array_keys((array)$helper->getConfig()->getNode('restricted/attribute')));
|
196 |
$objA = new stdClass();
|
197 |
$objA->restricted = $attributeRestrictedNames;
|
198 |
$objA->label = Mage::helper('modulecreator')->__('Disallowed field/attribute names');
|
199 |
$restrictions = array(
|
200 |
'field_types'=> array(
|
201 |
+
'label' => Mage::helper('modulecreator')->__('Naming restrictions'),
|
202 |
'fields' => array($objN, $objM, $objE, $objA))
|
203 |
);
|
204 |
|
205 |
+
/** @var Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Help_Fieldset $restrictionsHelp */
|
206 |
+
$restrictionsHelp = $this->getLayout()->createBlock('modulecreator/adminhtml_modulecreator_edit_tab_help_fieldset');
|
207 |
+
$restrictionsHelp->setFieldsets($restrictions)
|
208 |
->setColumns(array(
|
209 |
'label' => array(
|
210 |
'header'=>Mage::helper('modulecreator')->__('Entity'),
|
216 |
),
|
217 |
))
|
218 |
->setDescription(Mage::helper('modulecreator')->__('Naming restrictions'));
|
219 |
+
/** @var null|Ultimate_ModuleCreator_Model_Module $currentModule */
|
220 |
$currentModule = Mage::registry('current_module');
|
221 |
if (!$currentModule){
|
222 |
+
/** @var Ultimate_ModuleCreator_Model_Module $currentModule */
|
223 |
$currentModule = Mage::getModel('modulecreator/module');
|
224 |
}
|
225 |
$files = $currentModule->getConfig()->getNode('files');
|
226 |
$allowedFiles = array();
|
227 |
+
foreach ((array)$files as $file){
|
228 |
if ($file->scope == 'disabled'){
|
229 |
continue;
|
230 |
}
|
231 |
$allowedFiles[] = $file;
|
232 |
}
|
233 |
|
234 |
+
/** @var Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Help_Fieldset $filesHelp */
|
235 |
+
$filesHelp = $this->getLayout()->createBlock('modulecreator/adminhtml_modulecreator_edit_tab_help_fieldset');
|
236 |
+
$filesHelp->setFieldsets(array(
|
237 |
'files'=> array(
|
238 |
'label'=>Mage::helper('modulecreator')->__('Generated files'),
|
239 |
'fields' => $allowedFiles)
|
266 |
$this->setChild('restrictions_help', $restrictionsHelp);
|
267 |
$this->setChild('files_help', $filesHelp);
|
268 |
|
269 |
+
$releaseNotes = (array)$helper->getReleaseNotes();
|
270 |
+
|
271 |
+
/** @var Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Help_Fieldset $releaseNotesHelp */
|
272 |
+
$releaseNotesHelp = $this->getLayout()->createBlock('modulecreator/adminhtml_modulecreator_edit_tab_help_fieldset');
|
273 |
+
$releaseNotesHelp->setFieldsets($releaseNotes)
|
274 |
->setColumns(array(
|
275 |
'type' => array(
|
276 |
'header'=>Mage::helper('modulecreator')->__('Type'),
|
289 |
;
|
290 |
$this->setChild('release_notes', $releaseNotesHelp);
|
291 |
|
292 |
+
/** @var Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Help_Fieldset $thanks */
|
293 |
+
$thanks = $this->getLayout()->createBlock('modulecreator/adminhtml_modulecreator_edit_tab_help_fieldset');
|
294 |
+
$thanks->setFieldsets(array(
|
295 |
'files'=> array(
|
296 |
+
'label' =>Mage::helper('modulecreator')->__('Thanks'),
|
297 |
+
'fields' => (array)$helper->getThanks())
|
298 |
))
|
299 |
->setColumns(array(
|
300 |
'type' => array(
|
app/code/community/Ultimate/ModuleCreator/Block/Adminhtml/Modulecreator/Edit/Tab/Help/Fieldset.php
CHANGED
@@ -22,6 +22,11 @@
|
|
22 |
* @package Ultimate_ModuleCreator
|
23 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
24 |
*/
|
|
|
|
|
|
|
|
|
|
|
25 |
class Ultimate_ModuleCreator_Block_Adminhtml_ModuleCreator_Edit_Tab_Help_Fieldset
|
26 |
extends Mage_Adminhtml_Block_Template {
|
27 |
/**
|
22 |
* @package Ultimate_ModuleCreator
|
23 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
24 |
*/
|
25 |
+
/**
|
26 |
+
* @method Ultimate_ModuleCreator_Block_Adminhtml_ModuleCreator_Edit_Tab_Help_Fieldset setFieldsets()
|
27 |
+
* @method Ultimate_ModuleCreator_Block_Adminhtml_ModuleCreator_Edit_Tab_Help_Fieldset setColumns()
|
28 |
+
* @method Ultimate_ModuleCreator_Block_Adminhtml_ModuleCreator_Edit_Tab_Help_Fieldset setDescription()
|
29 |
+
*/
|
30 |
class Ultimate_ModuleCreator_Block_Adminhtml_ModuleCreator_Edit_Tab_Help_Fieldset
|
31 |
extends Mage_Adminhtml_Block_Template {
|
32 |
/**
|
app/code/community/Ultimate/ModuleCreator/Block/Adminhtml/Modulecreator/Edit/Tab/Relation.php
CHANGED
@@ -21,6 +21,9 @@
|
|
21 |
* @package Ultimate_ModuleCreator
|
22 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
23 |
*/
|
|
|
|
|
|
|
24 |
class Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Relation
|
25 |
extends Mage_Adminhtml_Block_Widget_Form
|
26 |
implements Mage_Adminhtml_Block_Widget_Tab_Interface {
|
21 |
* @package Ultimate_ModuleCreator
|
22 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
23 |
*/
|
24 |
+
/**
|
25 |
+
* @method array getRelations()
|
26 |
+
*/
|
27 |
class Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Relation
|
28 |
extends Mage_Adminhtml_Block_Widget_Form
|
29 |
implements Mage_Adminhtml_Block_Widget_Tab_Interface {
|
app/code/community/Ultimate/ModuleCreator/Block/Adminhtml/Modulecreator/Edit/Tab/Settings.php
CHANGED
@@ -65,11 +65,13 @@ class Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Settings
|
|
65 |
/**
|
66 |
* prepare the form
|
67 |
* @access public
|
68 |
-
* @return
|
69 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
70 |
*/
|
71 |
protected function _prepareForm() {
|
72 |
-
|
|
|
|
|
73 |
$form->setHtmlIdPrefix('settings_');
|
74 |
$module = Mage::registry('current_module');
|
75 |
$values = array();
|
65 |
/**
|
66 |
* prepare the form
|
67 |
* @access public
|
68 |
+
* @return Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tab_Settings
|
69 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
70 |
*/
|
71 |
protected function _prepareForm() {
|
72 |
+
/** @var Ultimate_ModuleCreator_Helper_Data $helper */
|
73 |
+
$helper = Mage::helper('modulecreator');
|
74 |
+
$form = $helper->getXmlForm('settings');
|
75 |
$form->setHtmlIdPrefix('settings_');
|
76 |
$module = Mage::registry('current_module');
|
77 |
$values = array();
|
app/code/community/Ultimate/ModuleCreator/Block/Adminhtml/Modulecreator/Edit/Tabs.php
CHANGED
@@ -22,6 +22,9 @@
|
|
22 |
* @package Ultimate_ModuleCreator
|
23 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
24 |
*/
|
|
|
|
|
|
|
25 |
class Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tabs
|
26 |
extends Mage_Adminhtml_Block_Widget_Tabs {
|
27 |
/**
|
22 |
* @package Ultimate_ModuleCreator
|
23 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
24 |
*/
|
25 |
+
/**
|
26 |
+
* @method Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tabs setTitle
|
27 |
+
*/
|
28 |
class Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Edit_Tabs
|
29 |
extends Mage_Adminhtml_Block_Widget_Tabs {
|
30 |
/**
|
app/code/community/Ultimate/ModuleCreator/Block/Adminhtml/Modulecreator/Grid.php
CHANGED
@@ -20,7 +20,10 @@
|
|
20 |
* @category Ultimate
|
21 |
* @package Ultimate_ModuleCreator
|
22 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
23 |
-
*/
|
|
|
|
|
|
|
24 |
class Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Grid
|
25 |
extends Mage_Adminhtml_Block_Widget_Grid {
|
26 |
/**
|
@@ -161,7 +164,7 @@ class Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Grid
|
|
161 |
/**
|
162 |
* Row URL getter
|
163 |
* @access public
|
164 |
-
* @param Ultimate_ModuleCreator_Model_Module
|
165 |
* @return string
|
166 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
167 |
*/
|
20 |
* @category Ultimate
|
21 |
* @package Ultimate_ModuleCreator
|
22 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
23 |
+
*/
|
24 |
+
/**
|
25 |
+
* @method Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Grid setUseAjax()
|
26 |
+
*/
|
27 |
class Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Grid
|
28 |
extends Mage_Adminhtml_Block_Widget_Grid {
|
29 |
/**
|
164 |
/**
|
165 |
* Row URL getter
|
166 |
* @access public
|
167 |
+
* @param Ultimate_ModuleCreator_Model_Module $row
|
168 |
* @return string
|
169 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
170 |
*/
|
app/code/community/Ultimate/ModuleCreator/Block/Adminhtml/Modulecreator/Grid/Column/Renderer/Download.php
CHANGED
@@ -32,10 +32,14 @@ class Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_Grid_Column_Renderer_
|
|
32 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
33 |
*/
|
34 |
public function render(Varien_Object $row) {
|
|
|
35 |
$what = $this->getColumn()->getWhat();
|
|
|
36 |
$id = $row->getSafeId();
|
37 |
$packageName = base64_decode(strtr($id, '-_,', '+/='));
|
38 |
-
|
|
|
|
|
39 |
switch ($what) {
|
40 |
case 'config':
|
41 |
$file = $path.'package'.DS.$packageName . '.xml';
|
32 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
33 |
*/
|
34 |
public function render(Varien_Object $row) {
|
35 |
+
/** @var string $what */
|
36 |
$what = $this->getColumn()->getWhat();
|
37 |
+
/** @var string $id */
|
38 |
$id = $row->getSafeId();
|
39 |
$packageName = base64_decode(strtr($id, '-_,', '+/='));
|
40 |
+
/** @var Ultimate_ModuleCreator_Helper_Data $helper */
|
41 |
+
$helper = Mage::helper('modulecreator');
|
42 |
+
$path = $helper->getLocalModulesDir();
|
43 |
switch ($what) {
|
44 |
case 'config':
|
45 |
$file = $path.'package'.DS.$packageName . '.xml';
|
app/code/community/Ultimate/ModuleCreator/Block/Adminhtml/Modulecreator/System/Config/Form/Fieldset/Abstract.php
CHANGED
@@ -53,10 +53,12 @@ abstract class Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_System_Confi
|
|
53 |
*/
|
54 |
public function render(Varien_Data_Form_Element_Abstract $element) {
|
55 |
$html = $this->_getHeaderHtml($element);
|
56 |
-
|
|
|
|
|
57 |
$formName = $this->getFormName();
|
58 |
if (!$config->getNode('forms/'.$formName)) {
|
59 |
-
return
|
60 |
}
|
61 |
$fieldsets = $config->getNode('forms/'.$formName.'/fieldsets');
|
62 |
$index = 0;
|
@@ -102,7 +104,7 @@ abstract class Ultimate_ModuleCreator_Block_Adminhtml_Modulecreator_System_Confi
|
|
102 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
103 |
*/
|
104 |
protected function _getFieldHtml($fieldset, $key, $field){
|
105 |
-
|
106 |
$formName = $this->getFormName();
|
107 |
$path = 'modulecreator/'.$formName.'/' . $key;
|
108 |
$data = Mage::getStoreConfig($path, 0);
|
53 |
*/
|
54 |
public function render(Varien_Data_Form_Element_Abstract $element) {
|
55 |
$html = $this->_getHeaderHtml($element);
|
56 |
+
/** @var Ultimate_ModuleCreator_Helper_Data $helper */
|
57 |
+
$helper = Mage::helper('modulecreator');
|
58 |
+
$config = $helper->getConfig();
|
59 |
$formName = $this->getFormName();
|
60 |
if (!$config->getNode('forms/'.$formName)) {
|
61 |
+
return '';
|
62 |
}
|
63 |
$fieldsets = $config->getNode('forms/'.$formName.'/fieldsets');
|
64 |
$index = 0;
|
104 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
105 |
*/
|
106 |
protected function _getFieldHtml($fieldset, $key, $field){
|
107 |
+
//$configData = $this->getConfigData();
|
108 |
$formName = $this->getFormName();
|
109 |
$path = 'modulecreator/'.$formName.'/' . $key;
|
110 |
$data = Mage::getStoreConfig($path, 0);
|
app/code/community/Ultimate/ModuleCreator/Exception.php
CHANGED
@@ -15,6 +15,7 @@
|
|
15 |
* @license http://opensource.org/licenses/mit-license.php MIT License
|
16 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
17 |
*/
|
18 |
-
class Ultimate_ModuleCreator_Exception
|
|
|
19 |
|
20 |
}
|
15 |
* @license http://opensource.org/licenses/mit-license.php MIT License
|
16 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
17 |
*/
|
18 |
+
class Ultimate_ModuleCreator_Exception
|
19 |
+
extends Mage_Core_Exception {
|
20 |
|
21 |
}
|
app/code/community/Ultimate/ModuleCreator/Helper/Data.php
CHANGED
@@ -150,11 +150,10 @@ class Ultimate_ModuleCreator_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
150 |
* get a form
|
151 |
* @access public
|
152 |
* @param $formName
|
153 |
-
* @param $useFieldset
|
154 |
* @return Varien_Data_Form
|
155 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
156 |
*/
|
157 |
-
public function getXmlForm($formName
|
158 |
$xmlForms = $this->getConfig();
|
159 |
$form = new Varien_Data_Form();
|
160 |
if (!$xmlForms->getNode('forms/'.$formName)){
|
@@ -246,7 +245,7 @@ class Ultimate_ModuleCreator_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
246 |
foreach ($positions as $fields) {
|
247 |
$sorted = array_merge($sorted, $fields);
|
248 |
}
|
249 |
-
foreach($sorted as $
|
250 |
$data[$key]['fields'][] = $field;
|
251 |
}
|
252 |
$index++;
|
@@ -339,17 +338,20 @@ class Ultimate_ModuleCreator_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
339 |
/**
|
340 |
* load a module
|
341 |
* $access public
|
342 |
-
* @param $xml
|
343 |
-
* @return
|
344 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
345 |
*/
|
346 |
public function loadModule($xml) {
|
|
|
347 |
$module = Mage::getModel('modulecreator/module');
|
348 |
$moduleFields = $module->getXmlAttributes();
|
|
|
349 |
foreach ($moduleFields as $field) {
|
350 |
$data[$field] = (string)$xml->$field;
|
351 |
}
|
352 |
$module->setData($data);
|
|
|
353 |
$entity = Mage::getModel('modulecreator/entity');
|
354 |
$entityFields = $entity->getXmlAttributes();
|
355 |
foreach ($xml->entities->entity as $entityNode) {
|
@@ -378,6 +380,7 @@ class Ultimate_ModuleCreator_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
378 |
$e1 = $module->getEntity($parts[0]);
|
379 |
$e2 = $module->getEntity($parts[1]);
|
380 |
if ($e1 && $e2) {
|
|
|
381 |
$relation = Mage::getModel('modulecreator/relation');
|
382 |
$relation->setEntities($e1 , $e2, (string)$type);
|
383 |
$module->addRelation($relation);
|
150 |
* get a form
|
151 |
* @access public
|
152 |
* @param $formName
|
|
|
153 |
* @return Varien_Data_Form
|
154 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
155 |
*/
|
156 |
+
public function getXmlForm($formName) {
|
157 |
$xmlForms = $this->getConfig();
|
158 |
$form = new Varien_Data_Form();
|
159 |
if (!$xmlForms->getNode('forms/'.$formName)){
|
245 |
foreach ($positions as $fields) {
|
246 |
$sorted = array_merge($sorted, $fields);
|
247 |
}
|
248 |
+
foreach($sorted as $field) {
|
249 |
$data[$key]['fields'][] = $field;
|
250 |
}
|
251 |
$index++;
|
338 |
/**
|
339 |
* load a module
|
340 |
* $access public
|
341 |
+
* @param Varien_Simplexml_Element $xml
|
342 |
+
* @return bool|Ultimate_ModuleCreator_Model_Module
|
343 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
344 |
*/
|
345 |
public function loadModule($xml) {
|
346 |
+
/** @var Ultimate_ModuleCreator_Model_Module $module */
|
347 |
$module = Mage::getModel('modulecreator/module');
|
348 |
$moduleFields = $module->getXmlAttributes();
|
349 |
+
$data = array();
|
350 |
foreach ($moduleFields as $field) {
|
351 |
$data[$field] = (string)$xml->$field;
|
352 |
}
|
353 |
$module->setData($data);
|
354 |
+
/** @var Ultimate_ModuleCreator_Model_Entity $entity */
|
355 |
$entity = Mage::getModel('modulecreator/entity');
|
356 |
$entityFields = $entity->getXmlAttributes();
|
357 |
foreach ($xml->entities->entity as $entityNode) {
|
380 |
$e1 = $module->getEntity($parts[0]);
|
381 |
$e2 = $module->getEntity($parts[1]);
|
382 |
if ($e1 && $e2) {
|
383 |
+
/** @var Ultimate_ModuleCreator_Model_Relation $relation */
|
384 |
$relation = Mage::getModel('modulecreator/relation');
|
385 |
$relation->setEntities($e1 , $e2, (string)$type);
|
386 |
$module->addRelation($relation);
|
app/code/community/Ultimate/ModuleCreator/Model/Abstract.php
CHANGED
@@ -61,15 +61,15 @@ class Ultimate_ModuleCreator_Model_Abstract extends Varien_Object{
|
|
61 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
62 |
*/
|
63 |
public function getXmlAttributes(){
|
64 |
-
$dom
|
65 |
-
$code
|
66 |
return array_keys((array)$dom->getNode('xml_attributes/'.$code));
|
67 |
}
|
68 |
|
69 |
/**
|
70 |
* getter for helper member
|
71 |
* @access public
|
72 |
-
* @return
|
73 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
74 |
*/
|
75 |
public function getHelper(){
|
@@ -88,7 +88,7 @@ class Ultimate_ModuleCreator_Model_Abstract extends Varien_Object{
|
|
88 |
*/
|
89 |
public function getPadding($length = 1){
|
90 |
if (is_null($this->_padding)){
|
91 |
-
$this->_padding =
|
92 |
}
|
93 |
return str_repeat($this->_padding, $length);
|
94 |
}
|
@@ -101,7 +101,7 @@ class Ultimate_ModuleCreator_Model_Abstract extends Varien_Object{
|
|
101 |
*/
|
102 |
public function getEol(){
|
103 |
if (is_null($this->_eol)){
|
104 |
-
$this->_eol =
|
105 |
}
|
106 |
return $this->_eol;
|
107 |
}
|
61 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
62 |
*/
|
63 |
public function getXmlAttributes(){
|
64 |
+
$dom = $this->getHelper()->getConfig();
|
65 |
+
$code = $this->_entityCode;
|
66 |
return array_keys((array)$dom->getNode('xml_attributes/'.$code));
|
67 |
}
|
68 |
|
69 |
/**
|
70 |
* getter for helper member
|
71 |
* @access public
|
72 |
+
* @return Ultimate_ModuleCreator_Helper_Data|mixed
|
73 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
74 |
*/
|
75 |
public function getHelper(){
|
88 |
*/
|
89 |
public function getPadding($length = 1){
|
90 |
if (is_null($this->_padding)){
|
91 |
+
$this->_padding = $this->getHelper()->getPadding();
|
92 |
}
|
93 |
return str_repeat($this->_padding, $length);
|
94 |
}
|
101 |
*/
|
102 |
public function getEol(){
|
103 |
if (is_null($this->_eol)){
|
104 |
+
$this->_eol = $this->getHelper()->getEol();
|
105 |
}
|
106 |
return $this->_eol;
|
107 |
}
|
app/code/community/Ultimate/ModuleCreator/Model/Attribute.php
CHANGED
@@ -15,6 +15,50 @@
|
|
15 |
* @license http://opensource.org/licenses/mit-license.php MIT License
|
16 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
17 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
class Ultimate_ModuleCreator_Model_Attribute extends Ultimate_ModuleCreator_Model_Abstract{
|
19 |
/**
|
20 |
* custom option separator
|
@@ -83,9 +127,11 @@ class Ultimate_ModuleCreator_Model_Attribute extends Ultimate_ModuleCreator_Mode
|
|
83 |
if (!$this->_typeInstance){
|
84 |
$type = $this->getType();
|
85 |
try{
|
86 |
-
$types =
|
87 |
$instanceModel = $types->$type->type_model;
|
88 |
-
|
|
|
|
|
89 |
$this->_typeInstance->setAttribute($this);
|
90 |
}
|
91 |
catch (Exception $e){
|
@@ -243,7 +289,7 @@ class Ultimate_ModuleCreator_Model_Attribute extends Ultimate_ModuleCreator_Mode
|
|
243 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
244 |
*/
|
245 |
public function getDdlSqlColumn(){
|
246 |
-
$helper =
|
247 |
$ddl = '';
|
248 |
$ddl .= "->addColumn('{$this->getCode()}', Varien_Db_Ddl_Table::".$this->getTypeDdl().", ".$this->getSizeDdl().", array(".$this->getEol();
|
249 |
if ($this->getRequired()){
|
15 |
* @license http://opensource.org/licenses/mit-license.php MIT License
|
16 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
17 |
*/
|
18 |
+
/**
|
19 |
+
* @method Ultimate_ModuleCreator_Model_Attribute setIndex()
|
20 |
+
* @method string getForcedDefaultValue()
|
21 |
+
* @method string getDefaultValue()
|
22 |
+
* @method string getOptionsSourceAttribute()
|
23 |
+
* @method string getLabel()
|
24 |
+
* @method string getNote()
|
25 |
+
* @method int getPosition()
|
26 |
+
* @method string getCode()
|
27 |
+
* @method bool getIsName()
|
28 |
+
* @method Ultimate_ModuleCreator_Model_Attribute setUserDefined
|
29 |
+
* @method Ultimate_ModuleCreator_Model_Attribute setEditor
|
30 |
+
* @method string getType()
|
31 |
+
* @method Ultimate_ModuleCreator_Model_Attribute setCode()
|
32 |
+
* @method Ultimate_ModuleCreator_Model_Attribute setType()
|
33 |
+
* @method Ultimate_ModuleCreator_Model_Attribute setLabel()
|
34 |
+
* @method string getOptionsSource()
|
35 |
+
* @method Ultimate_ModuleCreator_Model_Attribute setOptionsSource()
|
36 |
+
* @method Ultimate_ModuleCreator_Model_Attribute setForcedSource()
|
37 |
+
* @method Ultimate_ModuleCreator_Model_Attribute setScope()
|
38 |
+
* @method Ultimate_ModuleCreator_Model_Attribute setUseFilterIndex()
|
39 |
+
* @method Ultimate_ModuleCreator_Model_Attribute setPosition()
|
40 |
+
* @method Ultimate_ModuleCreator_Model_Attribute setForcedSetupType()
|
41 |
+
* @method Ultimate_ModuleCreator_Model_Attribute setForcedVisible()
|
42 |
+
* @method string getPreElementText()
|
43 |
+
* @method bool getUseFilterIndex()
|
44 |
+
* @method bool hasForcedSetupType()
|
45 |
+
* @method string getForcedSetupType()
|
46 |
+
* @method string getForcedSetupBackend()
|
47 |
+
* @method string getForcedSource()
|
48 |
+
* @method int getScope()
|
49 |
+
* @method bool hasForcedVisible()
|
50 |
+
* @method string getForcedVisible()
|
51 |
+
* @method Ultimate_ModuleCreator_Model_Attribute setDefaultValue()
|
52 |
+
* @method Ultimate_ModuleCreator_Model_Attribute setForcedSetupBackend()
|
53 |
+
* @method Ultimate_ModuleCreator_Model_Attribute setIgnoreApi()
|
54 |
+
* @method Ultimate_ModuleCreator_Model_Attribute setOptions()
|
55 |
+
* @method Ultimate_ModuleCreator_Model_Attribute setForcedDefaultValue()
|
56 |
+
* @method bool getWidget()
|
57 |
+
* @method bool getFrontend()
|
58 |
+
* @method bool getIgnoreApi()
|
59 |
+
* @method int getIndex()
|
60 |
+
*
|
61 |
+
*/
|
62 |
class Ultimate_ModuleCreator_Model_Attribute extends Ultimate_ModuleCreator_Model_Abstract{
|
63 |
/**
|
64 |
* custom option separator
|
127 |
if (!$this->_typeInstance){
|
128 |
$type = $this->getType();
|
129 |
try{
|
130 |
+
$types = $this->getHelper()->getAttributeTypes(false);
|
131 |
$instanceModel = $types->$type->type_model;
|
132 |
+
/** @var Ultimate_ModuleCreator_Model_Attribute_Type_Abstract $typeInstance */
|
133 |
+
$typeInstance = Mage::getModel($instanceModel);
|
134 |
+
$this->_typeInstance = $typeInstance;
|
135 |
$this->_typeInstance->setAttribute($this);
|
136 |
}
|
137 |
catch (Exception $e){
|
289 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
290 |
*/
|
291 |
public function getDdlSqlColumn(){
|
292 |
+
$helper = $this->getHelper();
|
293 |
$ddl = '';
|
294 |
$ddl .= "->addColumn('{$this->getCode()}', Varien_Db_Ddl_Table::".$this->getTypeDdl().", ".$this->getSizeDdl().", array(".$this->getEol();
|
295 |
if ($this->getRequired()){
|
app/code/community/Ultimate/ModuleCreator/Model/Attribute/Type/Abstract.php
CHANGED
@@ -22,6 +22,9 @@
|
|
22 |
* @package Ultimate_ModuleCreator
|
23 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
24 |
*/
|
|
|
|
|
|
|
25 |
class Ultimate_ModuleCreator_Model_Attribute_Type_Abstract
|
26 |
extends Ultimate_ModuleCreator_Model_Abstract {
|
27 |
/**
|
@@ -325,7 +328,7 @@ class Ultimate_ModuleCreator_Model_Attribute_Type_Abstract
|
|
325 |
* getter config for attribute
|
326 |
* @access public
|
327 |
* @param $path
|
328 |
-
* @return
|
329 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
330 |
*/
|
331 |
public function getConfig($path = null) {
|
@@ -335,7 +338,9 @@ class Ultimate_ModuleCreator_Model_Attribute_Type_Abstract
|
|
335 |
else {
|
336 |
$path = $this->getTypeConfigPath();
|
337 |
}
|
338 |
-
|
|
|
|
|
339 |
}
|
340 |
/**
|
341 |
* check if attribute can behave as name
|
22 |
* @package Ultimate_ModuleCreator
|
23 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
24 |
*/
|
25 |
+
/**
|
26 |
+
* @method bool getIsMultipleSelect()
|
27 |
+
*/
|
28 |
class Ultimate_ModuleCreator_Model_Attribute_Type_Abstract
|
29 |
extends Ultimate_ModuleCreator_Model_Abstract {
|
30 |
/**
|
328 |
* getter config for attribute
|
329 |
* @access public
|
330 |
* @param $path
|
331 |
+
* @return Varien_Simplexml_Element
|
332 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
333 |
*/
|
334 |
public function getConfig($path = null) {
|
338 |
else {
|
339 |
$path = $this->getTypeConfigPath();
|
340 |
}
|
341 |
+
/** @var Ultimate_ModuleCreator_Helper_Data $helper */
|
342 |
+
$helper = Mage::helper('modulecreator');
|
343 |
+
return $helper->getConfig()->getNode($path);
|
344 |
}
|
345 |
/**
|
346 |
* check if attribute can behave as name
|
app/code/community/Ultimate/ModuleCreator/Model/Attribute/Type/Country.php
CHANGED
@@ -69,8 +69,6 @@ class Ultimate_ModuleCreator_Model_Attribute_Type_Country
|
|
69 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
70 |
*/
|
71 |
public function getRssText() {
|
72 |
-
$entityName = $this->getEntity()->getNameSingular(true);
|
73 |
-
$ucEntity = ucfirst($entityName);
|
74 |
$module = $this->getModule()->getLowerModuleName();
|
75 |
$namespace = $this->getNamespace(true);
|
76 |
return $this->getPadding(3).'$description .= \'<div>\'.Mage::helper(\''.$namespace.'_'.$module.'\')->__("'.$this->getAttribute()->getLabel().'").\':\'.(($item->get'.$this->getAttribute()->getMagicMethodCode().'()) ? Mage::getModel(\'directory/country\')->load($item->get'.$this->getAttribute()->getMagicMethodCode().'())->getName():Mage::helper(\''.$namespace.'_'.$module.'\')->__(\'None\')).\'</div>\';'.$this->getEol();
|
@@ -83,7 +81,6 @@ class Ultimate_ModuleCreator_Model_Attribute_Type_Country
|
|
83 |
*/
|
84 |
public function getFrontendHtml() {
|
85 |
$entityName = $this->getEntity()->getNameSingular(true);
|
86 |
-
$ucEntity = ucfirst($entityName);
|
87 |
$module = $this->getModule()->getLowerModuleName();
|
88 |
$namespace = $this->getNamespace(true);
|
89 |
if ($this->getEntity()->getIsEav()){
|
@@ -110,7 +107,6 @@ class Ultimate_ModuleCreator_Model_Attribute_Type_Country
|
|
110 |
*/
|
111 |
public function getFormOptions(){
|
112 |
$options = parent::getFormOptions();
|
113 |
-
$module = $this->getModule()->getLowerModuleName();
|
114 |
$options .= $this->getPadding(3)."'values'=> Mage::getResourceModel('directory/country_collection')->toOptionArray(),".$this->getEol();
|
115 |
return $options;
|
116 |
}
|
69 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
70 |
*/
|
71 |
public function getRssText() {
|
|
|
|
|
72 |
$module = $this->getModule()->getLowerModuleName();
|
73 |
$namespace = $this->getNamespace(true);
|
74 |
return $this->getPadding(3).'$description .= \'<div>\'.Mage::helper(\''.$namespace.'_'.$module.'\')->__("'.$this->getAttribute()->getLabel().'").\':\'.(($item->get'.$this->getAttribute()->getMagicMethodCode().'()) ? Mage::getModel(\'directory/country\')->load($item->get'.$this->getAttribute()->getMagicMethodCode().'())->getName():Mage::helper(\''.$namespace.'_'.$module.'\')->__(\'None\')).\'</div>\';'.$this->getEol();
|
81 |
*/
|
82 |
public function getFrontendHtml() {
|
83 |
$entityName = $this->getEntity()->getNameSingular(true);
|
|
|
84 |
$module = $this->getModule()->getLowerModuleName();
|
85 |
$namespace = $this->getNamespace(true);
|
86 |
if ($this->getEntity()->getIsEav()){
|
107 |
*/
|
108 |
public function getFormOptions(){
|
109 |
$options = parent::getFormOptions();
|
|
|
110 |
$options .= $this->getPadding(3)."'values'=> Mage::getResourceModel('directory/country_collection')->toOptionArray(),".$this->getEol();
|
111 |
return $options;
|
112 |
}
|
app/code/community/Ultimate/ModuleCreator/Model/Attribute/Type/Dropdown.php
CHANGED
@@ -110,10 +110,8 @@ class Ultimate_ModuleCreator_Model_Attribute_Type_Dropdown
|
|
110 |
*/
|
111 |
public function getRssText(){
|
112 |
$entityName = $this->getEntity()->getNameSingular(true);
|
113 |
-
$ucEntity = ucfirst($entityName);
|
114 |
$module = $this->getModule()->getLowerModuleName();
|
115 |
$namespace = $this->getNamespace(true);
|
116 |
-
$content = '';
|
117 |
if ($this->getAttribute()->getEntity()->getIsEav()){
|
118 |
return $this->getPadding(3).'$description .= \'<div>\'.Mage::helper(\''.$namespace.'_'.$module.'\')->__("'.$this->getAttribute()->getLabel().'").\': \'.$item->getAttributeText(\''.$this->getAttribute()->getCode().'\').\'</div>\';'.$this->getEol();
|
119 |
}
|
@@ -143,9 +141,13 @@ class Ultimate_ModuleCreator_Model_Attribute_Type_Dropdown
|
|
143 |
if (!$this->_subTypeInstance){
|
144 |
$type = $this->getAttribute()->getOptionsSource();
|
145 |
try{
|
146 |
-
|
|
|
|
|
147 |
$instanceModel = (string)$types->$type->type_model;
|
148 |
-
|
|
|
|
|
149 |
$this->_subTypeInstance->setTypeAttribute($this);
|
150 |
}
|
151 |
catch (Exception $e){
|
@@ -171,7 +173,6 @@ class Ultimate_ModuleCreator_Model_Attribute_Type_Dropdown
|
|
171 |
*/
|
172 |
public function getFrontendHtml() {
|
173 |
$entityName = $this->getEntity()->getNameSingular(true);
|
174 |
-
$ucEntity = ucfirst($entityName);
|
175 |
$module = $this->getModule()->getLowerModuleName();
|
176 |
$namespace = $this->getNamespace(true);
|
177 |
if ($this->getAttribute()->getEntity()->getIsEav()){
|
@@ -201,12 +202,9 @@ class Ultimate_ModuleCreator_Model_Attribute_Type_Dropdown
|
|
201 |
public function getFormOptions(){
|
202 |
$options = parent::getFormOptions();
|
203 |
$padding = $this->getPadding(3);
|
204 |
-
$tab = $this->getPadding();
|
205 |
-
$eol = $this->getEol();
|
206 |
$module = $this->getModule()->getLowerModuleName();
|
207 |
$entity = $this->getEntity()->getNameSingular(true);
|
208 |
$namespace = $this->getNamespace(true);
|
209 |
-
$flag = $this->getOptionsFlag();
|
210 |
$options .= $padding."'values'=> Mage::getModel('".$namespace.'_'.$module.'/'.$entity."_attribute_source_".$this->getAttribute()->getCodeForFileName(false)."')->getAllOptions(".$this->getOptionsFlag()."),".$this->getEol();
|
211 |
return $options;
|
212 |
}
|
110 |
*/
|
111 |
public function getRssText(){
|
112 |
$entityName = $this->getEntity()->getNameSingular(true);
|
|
|
113 |
$module = $this->getModule()->getLowerModuleName();
|
114 |
$namespace = $this->getNamespace(true);
|
|
|
115 |
if ($this->getAttribute()->getEntity()->getIsEav()){
|
116 |
return $this->getPadding(3).'$description .= \'<div>\'.Mage::helper(\''.$namespace.'_'.$module.'\')->__("'.$this->getAttribute()->getLabel().'").\': \'.$item->getAttributeText(\''.$this->getAttribute()->getCode().'\').\'</div>\';'.$this->getEol();
|
117 |
}
|
141 |
if (!$this->_subTypeInstance){
|
142 |
$type = $this->getAttribute()->getOptionsSource();
|
143 |
try{
|
144 |
+
/** @var Ultimate_ModuleCreator_Helper_Data $helper */
|
145 |
+
$helper = Mage::helper('modulecreator');
|
146 |
+
$types = $helper->getDropdownSubtypes(false);
|
147 |
$instanceModel = (string)$types->$type->type_model;
|
148 |
+
/** @var Ultimate_ModuleCreator_Model_Attribute_Type_Dropdown_Abstract $subtypeInstance */
|
149 |
+
$subtypeInstance = Mage::getModel($instanceModel);
|
150 |
+
$this->_subTypeInstance = $subtypeInstance;
|
151 |
$this->_subTypeInstance->setTypeAttribute($this);
|
152 |
}
|
153 |
catch (Exception $e){
|
173 |
*/
|
174 |
public function getFrontendHtml() {
|
175 |
$entityName = $this->getEntity()->getNameSingular(true);
|
|
|
176 |
$module = $this->getModule()->getLowerModuleName();
|
177 |
$namespace = $this->getNamespace(true);
|
178 |
if ($this->getAttribute()->getEntity()->getIsEav()){
|
202 |
public function getFormOptions(){
|
203 |
$options = parent::getFormOptions();
|
204 |
$padding = $this->getPadding(3);
|
|
|
|
|
205 |
$module = $this->getModule()->getLowerModuleName();
|
206 |
$entity = $this->getEntity()->getNameSingular(true);
|
207 |
$namespace = $this->getNamespace(true);
|
|
|
208 |
$options .= $padding."'values'=> Mage::getModel('".$namespace.'_'.$module.'/'.$entity."_attribute_source_".$this->getAttribute()->getCodeForFileName(false)."')->getAllOptions(".$this->getOptionsFlag()."),".$this->getEol();
|
209 |
return $options;
|
210 |
}
|
app/code/community/Ultimate/ModuleCreator/Model/Attribute/Type/Dropdown/Abstract.php
CHANGED
@@ -22,6 +22,12 @@
|
|
22 |
* @package Ultimate_ModuleCreator
|
23 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
24 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
class Ultimate_ModuleCreator_Model_Attribute_Type_Dropdown_Abstract
|
26 |
extends Ultimate_ModuleCreator_Model_Abstract {
|
27 |
/**
|
22 |
* @package Ultimate_ModuleCreator
|
23 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
24 |
*/
|
25 |
+
/**
|
26 |
+
* @method string getAttributeOptions
|
27 |
+
* @method string getSetupType()
|
28 |
+
* @method string getTypeDdl()
|
29 |
+
* @method string getSizeDdl()
|
30 |
+
*/
|
31 |
class Ultimate_ModuleCreator_Model_Attribute_Type_Dropdown_Abstract
|
32 |
extends Ultimate_ModuleCreator_Model_Abstract {
|
33 |
/**
|
app/code/community/Ultimate/ModuleCreator/Model/Attribute/Type/Dropdown/Custom.php
CHANGED
@@ -73,7 +73,7 @@ class Ultimate_ModuleCreator_Model_Attribute_Type_Dropdown_Custom
|
|
73 |
$module = $this->getTypeAttribute()->getAttribute()->getEntity()->getModule()->getLowerModuleName();
|
74 |
$namespace = $this->getTypeAttribute()->getAttribute()->getEntity()->getModule()->getNamespace(true);
|
75 |
if ($this->getTypeAttribute()->getAttribute()->getOptions()) {
|
76 |
-
$content
|
77 |
foreach ($this->getTypeAttribute()->getAttribute()->getOptions(true) as $index=>$option) {
|
78 |
$content .= $padding.$tab.'array('.$eol;
|
79 |
$content .= $padding.$tab.$tab."'label' => Mage::helper('".$namespace.'_'.$module."')->__('".Mage::helper('core')->jsQuoteEscape($option)."'),".$eol;
|
73 |
$module = $this->getTypeAttribute()->getAttribute()->getEntity()->getModule()->getLowerModuleName();
|
74 |
$namespace = $this->getTypeAttribute()->getAttribute()->getEntity()->getModule()->getNamespace(true);
|
75 |
if ($this->getTypeAttribute()->getAttribute()->getOptions()) {
|
76 |
+
$content .= $padding.'$options = array('.$eol;
|
77 |
foreach ($this->getTypeAttribute()->getAttribute()->getOptions(true) as $index=>$option) {
|
78 |
$content .= $padding.$tab.'array('.$eol;
|
79 |
$content .= $padding.$tab.$tab."'label' => Mage::helper('".$namespace.'_'.$module."')->__('".Mage::helper('core')->jsQuoteEscape($option)."'),".$eol;
|
app/code/community/Ultimate/ModuleCreator/Model/Attribute/Type/Dropdown/Product.php
CHANGED
@@ -43,9 +43,7 @@ class Ultimate_ModuleCreator_Model_Attribute_Type_Dropdown_Product
|
|
43 |
public function getAttributeOptions(){
|
44 |
$content = '';
|
45 |
$padding = $this->getPadding(2);
|
46 |
-
$tab = $this->getPadding();
|
47 |
$eol = $this->getEol();
|
48 |
-
$module = $this->getTypeAttribute()->getAttribute()->getEntity()->getModule()->getLowerModuleName();
|
49 |
$attrCode = $this->getTypeAttribute()->getAttribute()->getOptionsSourceAttribute();
|
50 |
$content .= $padding.'$'."source = Mage::getModel('eav/config')->getAttribute('".$this->getEntityCode()."', '".$attrCode."');".$eol;
|
51 |
$content .= $padding.'return $source->getSource()->getAllOptions($withEmpty, $defaultValues);';
|
@@ -69,9 +67,9 @@ class Ultimate_ModuleCreator_Model_Attribute_Type_Dropdown_Product
|
|
69 |
*/
|
70 |
public function getSetupType(){
|
71 |
$attrCode = $this->getTypeAttribute()->getAttribute()->getOptionsSourceAttribute();
|
72 |
-
|
73 |
-
Mage::
|
74 |
-
|
75 |
if ($productAttribute->getId()){
|
76 |
$type = $productAttribute->getBackendType();
|
77 |
if ($type == 'static'){
|
@@ -143,13 +141,15 @@ class Ultimate_ModuleCreator_Model_Attribute_Type_Dropdown_Product
|
|
143 |
/**
|
144 |
* get the source model attribute
|
145 |
* @access public
|
146 |
-
* @return null|
|
147 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
148 |
*/
|
149 |
protected function _getEntityAttribute(){
|
150 |
if (is_null($this->_entityAttribute)){
|
151 |
$attrCode = $this->getTypeAttribute()->getAttribute()->getOptionsSourceAttribute();
|
152 |
-
|
|
|
|
|
153 |
$this->_entityAttribute = $productAttribute;
|
154 |
}
|
155 |
return $this->_entityAttribute;
|
43 |
public function getAttributeOptions(){
|
44 |
$content = '';
|
45 |
$padding = $this->getPadding(2);
|
|
|
46 |
$eol = $this->getEol();
|
|
|
47 |
$attrCode = $this->getTypeAttribute()->getAttribute()->getOptionsSourceAttribute();
|
48 |
$content .= $padding.'$'."source = Mage::getModel('eav/config')->getAttribute('".$this->getEntityCode()."', '".$attrCode."');".$eol;
|
49 |
$content .= $padding.'return $source->getSource()->getAllOptions($withEmpty, $defaultValues);';
|
67 |
*/
|
68 |
public function getSetupType(){
|
69 |
$attrCode = $this->getTypeAttribute()->getAttribute()->getOptionsSourceAttribute();
|
70 |
+
/** @var Mage_Eav_Model_Config $config */
|
71 |
+
$config = Mage::getModel('eav/config');
|
72 |
+
$productAttribute = $config->getAttribute($this->getEntityCode(), $attrCode);
|
73 |
if ($productAttribute->getId()){
|
74 |
$type = $productAttribute->getBackendType();
|
75 |
if ($type == 'static'){
|
141 |
/**
|
142 |
* get the source model attribute
|
143 |
* @access public
|
144 |
+
* @return null|Mage_Eav_Model_Entity_Attribute_Abstract
|
145 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
146 |
*/
|
147 |
protected function _getEntityAttribute(){
|
148 |
if (is_null($this->_entityAttribute)){
|
149 |
$attrCode = $this->getTypeAttribute()->getAttribute()->getOptionsSourceAttribute();
|
150 |
+
/** @var Mage_Eav_Model_Config $config */
|
151 |
+
$config = Mage::getModel('eav/config');
|
152 |
+
$productAttribute = $config->getAttribute($this->getEntityCode(), $attrCode);
|
153 |
$this->_entityAttribute = $productAttribute;
|
154 |
}
|
155 |
return $this->_entityAttribute;
|
app/code/community/Ultimate/ModuleCreator/Model/Attribute/Type/File.php
CHANGED
@@ -70,7 +70,6 @@ class Ultimate_ModuleCreator_Model_Attribute_Type_File
|
|
70 |
public function getRssText(){
|
71 |
$content = '';
|
72 |
$entityName = $this->getEntity()->getNameSingular(true);
|
73 |
-
$ucEntity = ucfirst($entityName);
|
74 |
$eol = $this->getEol();
|
75 |
$module = $this->getModule()->getLowerModuleName();
|
76 |
$namespace = $this->getNamespace(true);
|
@@ -96,7 +95,6 @@ class Ultimate_ModuleCreator_Model_Attribute_Type_File
|
|
96 |
$content = '';
|
97 |
$eol = $this->getEol();
|
98 |
$entityName = $this->getAttribute()->getEntity()->getNameSingular(true);
|
99 |
-
$ucEntity = ucfirst($entityName);
|
100 |
$module = $this->getModule()->getLowerModuleName();
|
101 |
$namespace = $this->getNamespace(true);
|
102 |
$content .= $this->getPadding().'<?php if ($_'.$entityName.'->get'.$this->getAttribute()->getMagicMethodCode().'()) :?>'.$eol;
|
70 |
public function getRssText(){
|
71 |
$content = '';
|
72 |
$entityName = $this->getEntity()->getNameSingular(true);
|
|
|
73 |
$eol = $this->getEol();
|
74 |
$module = $this->getModule()->getLowerModuleName();
|
75 |
$namespace = $this->getNamespace(true);
|
95 |
$content = '';
|
96 |
$eol = $this->getEol();
|
97 |
$entityName = $this->getAttribute()->getEntity()->getNameSingular(true);
|
|
|
98 |
$module = $this->getModule()->getLowerModuleName();
|
99 |
$namespace = $this->getNamespace(true);
|
100 |
$content .= $this->getPadding().'<?php if ($_'.$entityName.'->get'.$this->getAttribute()->getMagicMethodCode().'()) :?>'.$eol;
|
app/code/community/Ultimate/ModuleCreator/Model/Attribute/Type/Image.php
CHANGED
@@ -71,7 +71,6 @@ class Ultimate_ModuleCreator_Model_Attribute_Type_Image
|
|
71 |
$eol = $this->getEol();
|
72 |
$content = '';
|
73 |
$entityName = $this->getEntity()->getNameSingular(true);
|
74 |
-
$ucEntity = ucfirst($entityName);
|
75 |
$module = $this->getModule()->getLowerModuleName();
|
76 |
$namespace = $this->getNamespace(true);
|
77 |
$content .= $this->getPadding(3).'if ($item->get'.$this->getAttribute()->getMagicMethodCode().'()) {'.$eol;
|
@@ -92,7 +91,6 @@ class Ultimate_ModuleCreator_Model_Attribute_Type_Image
|
|
92 |
$eol = $this->getEol();
|
93 |
$content = '';
|
94 |
$entityName = $this->getEntity()->getNameSingular(true);
|
95 |
-
$ucEntity = ucfirst($entityName);
|
96 |
$module = $this->getModule()->getLowerModuleName();
|
97 |
$namespace = $this->getNamespace(true);
|
98 |
$content .= '<?php if ($_'.$entityName.'->get'.$this->getAttribute()->getMagicMethodCode().'()) :?>'.$eol;
|
71 |
$eol = $this->getEol();
|
72 |
$content = '';
|
73 |
$entityName = $this->getEntity()->getNameSingular(true);
|
|
|
74 |
$module = $this->getModule()->getLowerModuleName();
|
75 |
$namespace = $this->getNamespace(true);
|
76 |
$content .= $this->getPadding(3).'if ($item->get'.$this->getAttribute()->getMagicMethodCode().'()) {'.$eol;
|
91 |
$eol = $this->getEol();
|
92 |
$content = '';
|
93 |
$entityName = $this->getEntity()->getNameSingular(true);
|
|
|
94 |
$module = $this->getModule()->getLowerModuleName();
|
95 |
$namespace = $this->getNamespace(true);
|
96 |
$content .= '<?php if ($_'.$entityName.'->get'.$this->getAttribute()->getMagicMethodCode().'()) :?>'.$eol;
|
app/code/community/Ultimate/ModuleCreator/Model/Attribute/Type/Timestamp.php
CHANGED
@@ -78,7 +78,6 @@ class Ultimate_ModuleCreator_Model_Attribute_Type_Timestamp
|
|
78 |
*/
|
79 |
public function getFrontendHtml() {
|
80 |
$entityName = $this->getEntity()->getNameSingular(true);
|
81 |
-
$ucEntity = ucfirst($entityName);
|
82 |
$module = $this->getModule()->getLowerModuleName();
|
83 |
$namespace = $this->getNamespace(true);
|
84 |
return '<?php echo Mage::helper(\''.$namespace.'_'.$module.'\')->__("'.$this->getAttribute()->getLabel().'");?>: <?php echo Mage::helper(\'core\')->formatDate($_'.$entityName.'->get'.$this->getAttribute()->getMagicMethodCode().'(), \'full\');?>'.$this->getEol();
|
78 |
*/
|
79 |
public function getFrontendHtml() {
|
80 |
$entityName = $this->getEntity()->getNameSingular(true);
|
|
|
81 |
$module = $this->getModule()->getLowerModuleName();
|
82 |
$namespace = $this->getNamespace(true);
|
83 |
return '<?php echo Mage::helper(\''.$namespace.'_'.$module.'\')->__("'.$this->getAttribute()->getLabel().'");?>: <?php echo Mage::helper(\'core\')->formatDate($_'.$entityName.'->get'.$this->getAttribute()->getMagicMethodCode().'(), \'full\');?>'.$this->getEol();
|
app/code/community/Ultimate/ModuleCreator/Model/Attribute/Type/Yesno.php
CHANGED
@@ -85,8 +85,6 @@ class Ultimate_ModuleCreator_Model_Attribute_Type_Yesno
|
|
85 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
86 |
*/
|
87 |
public function getRssText() {
|
88 |
-
$entityName = $this->getEntity()->getNameSingular(true);
|
89 |
-
$ucEntity = ucfirst($entityName);
|
90 |
$module = $this->getModule()->getLowerModuleName();
|
91 |
$namespace = $this->getNamespace(true);
|
92 |
return $this->getPadding(3).'$description .= \'<div>\'.Mage::helper(\''.$namespace.'_'.$module.'\')->__("'.$this->getAttribute()->getLabel().'").\':\'.(($item->get'.$this->getAttribute()->getMagicMethodCode().'() == 1) ? Mage::helper(\''.$namespace.'_'.$module.'\')->__(\'Yes\') : Mage::helper(\''.$namespace.'_'.$module.'\')->__(\'No\')).\'</div>\';'.$this->getEol();
|
@@ -99,7 +97,6 @@ class Ultimate_ModuleCreator_Model_Attribute_Type_Yesno
|
|
99 |
*/
|
100 |
public function getFrontendHtml() {
|
101 |
$entityName = $this->getEntity()->getNameSingular(true);
|
102 |
-
$ucEntity = ucfirst($entityName);
|
103 |
$module = $this->getModule()->getLowerModuleName();
|
104 |
$namespace = $this->getNamespace(true);
|
105 |
return '<?php echo Mage::helper(\''.$namespace.'_'.$module.'\')->__("'.$this->getAttribute()->getLabel().'");?>:<?php echo ($_'.$entityName.'->get'.$this->getAttribute()->getMagicMethodCode().'() == 1)?Mage::helper(\''.$module.'\')->__(\'Yes\'):Mage::helper(\''.$module.'\')->__(\'No\') ?>'.$this->getEol();
|
85 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
86 |
*/
|
87 |
public function getRssText() {
|
|
|
|
|
88 |
$module = $this->getModule()->getLowerModuleName();
|
89 |
$namespace = $this->getNamespace(true);
|
90 |
return $this->getPadding(3).'$description .= \'<div>\'.Mage::helper(\''.$namespace.'_'.$module.'\')->__("'.$this->getAttribute()->getLabel().'").\':\'.(($item->get'.$this->getAttribute()->getMagicMethodCode().'() == 1) ? Mage::helper(\''.$namespace.'_'.$module.'\')->__(\'Yes\') : Mage::helper(\''.$namespace.'_'.$module.'\')->__(\'No\')).\'</div>\';'.$this->getEol();
|
97 |
*/
|
98 |
public function getFrontendHtml() {
|
99 |
$entityName = $this->getEntity()->getNameSingular(true);
|
|
|
100 |
$module = $this->getModule()->getLowerModuleName();
|
101 |
$namespace = $this->getNamespace(true);
|
102 |
return '<?php echo Mage::helper(\''.$namespace.'_'.$module.'\')->__("'.$this->getAttribute()->getLabel().'");?>:<?php echo ($_'.$entityName.'->get'.$this->getAttribute()->getMagicMethodCode().'() == 1)?Mage::helper(\''.$module.'\')->__(\'Yes\'):Mage::helper(\''.$module.'\')->__(\'No\') ?>'.$this->getEol();
|
app/code/community/Ultimate/ModuleCreator/Model/Config.php
CHANGED
@@ -47,7 +47,7 @@ class Ultimate_ModuleCreator_Model_Config extends Varien_Simplexml_Config {
|
|
47 |
/**
|
48 |
* translate node
|
49 |
* @access protected
|
50 |
-
* @param $node
|
51 |
* @return Ultimate_ModuleCreator_Model_Config
|
52 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
53 |
*/
|
47 |
/**
|
48 |
* translate node
|
49 |
* @access protected
|
50 |
+
* @param Varien_Simplexml_Element $node
|
51 |
* @return Ultimate_ModuleCreator_Model_Config
|
52 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
53 |
*/
|
app/code/community/Ultimate/ModuleCreator/Model/Entity.php
CHANGED
@@ -22,11 +22,48 @@
|
|
22 |
* @package Ultimate_ModuleCreator
|
23 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
24 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
class Ultimate_ModuleCreator_Model_Entity
|
26 |
extends Ultimate_ModuleCreator_Model_Abstract {
|
27 |
/**
|
28 |
* reference to type instance
|
29 |
-
* @var null
|
30 |
*/
|
31 |
protected $_typeInstance = null;
|
32 |
/**
|
@@ -107,7 +144,9 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
107 |
$this->_attributes[$attribute->getCode()] = $attribute;
|
108 |
if ($attribute->getIsName()){
|
109 |
if (!$attribute->getIsAllowedAsName()){
|
110 |
-
|
|
|
|
|
111 |
throw new Ultimate_ModuleCreator_Exception(Mage::helper('modulecreator')->__('An attribute that acts as name must have one of the types "%s".', implode(', ', $attributeTypes)));
|
112 |
}
|
113 |
$attribute->setUserDefined(false);
|
@@ -142,12 +181,13 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
142 |
return $this;
|
143 |
}
|
144 |
$attributesByPosition = array();
|
145 |
-
foreach ($this->_attributes as $
|
|
|
146 |
$attributesByPosition[$attribute->getPosition()][] = $attribute;
|
147 |
}
|
148 |
ksort($attributesByPosition);
|
149 |
$attributes = array();
|
150 |
-
foreach ($attributesByPosition as $
|
151 |
foreach ($attributeList as $attribute){
|
152 |
$attributes[$attribute->getCode()] = $attribute;
|
153 |
}
|
@@ -187,12 +227,6 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
187 |
if (!empty($rootName)) {
|
188 |
$xml.= '<'.$rootName.'>'.$this->getEol();
|
189 |
}
|
190 |
-
$start = '';
|
191 |
-
$end = '';
|
192 |
-
if ($addCdata){
|
193 |
-
$start = '<![CDATA[';
|
194 |
-
$end = ']]>';
|
195 |
-
}
|
196 |
$xml .= parent::toXml($this->getXmlAttributes(), '', false, $addCdata);
|
197 |
$xml .= '<attributes>'.$this->getEol();
|
198 |
foreach ($this->getAttributes() as $attribute){
|
@@ -321,7 +355,7 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
321 |
/**
|
322 |
* get list template
|
323 |
* @access public
|
324 |
-
* @return
|
325 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
326 |
*/
|
327 |
public function getListTemplate(){
|
@@ -342,7 +376,7 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
342 |
/**
|
343 |
* get list template
|
344 |
* @access public
|
345 |
-
* @return
|
346 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
347 |
*/
|
348 |
public function getViewTemplate(){
|
@@ -454,7 +488,7 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
454 |
* get the related entities
|
455 |
* @access public
|
456 |
* @param mixed $type
|
457 |
-
* @return
|
458 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
459 |
*/
|
460 |
public function getRelatedEntities($type = null){
|
@@ -513,9 +547,13 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
513 |
public function getTypeInstance(){
|
514 |
if (is_null($this->_typeInstance)) {
|
515 |
$type = $this->getType();
|
516 |
-
|
|
|
|
|
517 |
if (isset($types[$type])) {
|
518 |
-
|
|
|
|
|
519 |
}
|
520 |
else {
|
521 |
throw new Ultimate_ModuleCreator_Exception(Mage::helper('modulecreator')->__('Entity "%s" type is not valid', $type));
|
@@ -739,6 +777,9 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
739 |
if ($this->getUrlRewrite() && $this->getUrlSuffix()){
|
740 |
$text.= $padding3.$padding.'<url_suffix>'.$this->getUrlSuffix().'</url_suffix>'.$eol;
|
741 |
}
|
|
|
|
|
|
|
742 |
if ($this->getAllowComment()){
|
743 |
$text.= $padding3.$padding.'<allow_comment>1</allow_comment>'.$eol;
|
744 |
}
|
@@ -827,7 +868,6 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
827 |
$title = ucwords($this->getLabelSingular());
|
828 |
$entity = strtolower($this->getNameSingular());
|
829 |
$action = $module.'_'.$entity;
|
830 |
-
$sortOrder = $this->getPosition();
|
831 |
$eol = $this->getEol();
|
832 |
|
833 |
$text = $this->getPadding($padding).'<'.$entity.' translate="title" module="'.$extension.'">'.$eol;
|
@@ -857,11 +897,8 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
857 |
*/
|
858 |
public function getMenuAcl($padding){
|
859 |
$extension = $this->getModule()->getExtensionName(true);
|
860 |
-
$module = $this->getModule()->getLowerModuleName();
|
861 |
$title = ucwords($this->getLabelSingular());
|
862 |
$entity = $this->getNameSingular(true);
|
863 |
-
$action = $module.'_'.$entity;
|
864 |
-
$sortOrder = $this->getPosition();
|
865 |
$eol = $this->getEol();
|
866 |
|
867 |
$text = $this->getPadding($padding).'<'.$entity.' translate="title" module="'.$extension.'">'.$eol;
|
@@ -994,6 +1031,7 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
994 |
$parents = $this->getRelatedEntities(Ultimate_ModuleCreator_Model_Relation::RELATION_TYPE_CHILD);
|
995 |
$content = '';
|
996 |
foreach ($parents as $parent){
|
|
|
997 |
$attr = Mage::getModel('modulecreator/attribute');
|
998 |
$attr->setCode($parent->getPlaceholders('{{entity}}').'_id');
|
999 |
$attr->setLabel($parent->getPlaceholders('{{EntityLabel}}'). ' ID');
|
@@ -1009,10 +1047,11 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1009 |
* @param mixed $type
|
1010 |
* @param bool $ignoreSettings
|
1011 |
* @param array $except
|
1012 |
-
* @return
|
1013 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
1014 |
*/
|
1015 |
public function getSimulatedAttributes($type = null, $ignoreSettings = false, $except = array()){
|
|
|
1016 |
$attributes = array();
|
1017 |
$namespace = $this->getNamespace(true);
|
1018 |
if (is_null($type)){
|
@@ -1027,6 +1066,7 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1027 |
}
|
1028 |
switch ($type){
|
1029 |
case 'status':
|
|
|
1030 |
$attr = Mage::getModel('modulecreator/attribute');
|
1031 |
$attr->setCode('status');
|
1032 |
$attr->setLabel('Enabled');
|
@@ -1036,6 +1076,7 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1036 |
break;
|
1037 |
case 'url_rewrite':
|
1038 |
if ($this->getUrlRewrite() || $ignoreSettings){
|
|
|
1039 |
$attr = Mage::getModel('modulecreator/attribute');
|
1040 |
$attr->setCode('url_key');
|
1041 |
$attr->setLabel('URL key');
|
@@ -1048,12 +1089,14 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1048 |
break;
|
1049 |
case 'tree' :
|
1050 |
if ($this->getIsTree() || $ignoreSettings){
|
|
|
1051 |
$attr = Mage::getModel('modulecreator/attribute');
|
1052 |
$attr->setCode('parent_id');
|
1053 |
$attr->setLabel('Parent id');
|
1054 |
$attr->setType('int');
|
1055 |
$attributes[] = $attr;
|
1056 |
|
|
|
1057 |
$attr = Mage::getModel('modulecreator/attribute');
|
1058 |
$attr->setCode('path');
|
1059 |
$attr->setLabel('Path');
|
@@ -1061,6 +1104,7 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1061 |
$attr->setIgnoreApi(true);
|
1062 |
$attributes[] = $attr;
|
1063 |
|
|
|
1064 |
$attr = Mage::getModel('modulecreator/attribute');
|
1065 |
$attr->setCode('position');
|
1066 |
$attr->setLabel('Position');
|
@@ -1068,6 +1112,7 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1068 |
$attr->setIgnoreApi(true);
|
1069 |
$attributes[] = $attr;
|
1070 |
|
|
|
1071 |
$attr = Mage::getModel('modulecreator/attribute');
|
1072 |
$attr->setCode('level');
|
1073 |
$attr->setLabel('Level');
|
@@ -1075,6 +1120,7 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1075 |
$attr->setIgnoreApi(true);
|
1076 |
$attributes[] = $attr;
|
1077 |
|
|
|
1078 |
$attr = Mage::getModel('modulecreator/attribute');
|
1079 |
$attr->setCode('children_count');
|
1080 |
$attr->setLabel('Children count');
|
@@ -1085,6 +1131,7 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1085 |
break;
|
1086 |
case 'rss':
|
1087 |
if($this->getRss() || $ignoreSettings){
|
|
|
1088 |
$attr = Mage::getModel('modulecreator/attribute');
|
1089 |
$attr->setCode('in_rss');
|
1090 |
$attr->setLabel('In RSS');
|
@@ -1095,12 +1142,14 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1095 |
break;
|
1096 |
case 'seo':
|
1097 |
if ($this->getAddSeo() || $ignoreSettings){
|
|
|
1098 |
$attr = Mage::getModel('modulecreator/attribute');
|
1099 |
$attr->setCode('meta_title');
|
1100 |
$attr->setLabel('Meta title');
|
1101 |
$attr->setType('text');
|
1102 |
$attributes[] = $attr;
|
1103 |
|
|
|
1104 |
$attr = Mage::getModel('modulecreator/attribute');
|
1105 |
$attr->setCode('meta_keywords');
|
1106 |
$attr->setLabel('Meta keywords');
|
@@ -1116,6 +1165,7 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1116 |
break;
|
1117 |
case 'comment':
|
1118 |
if ($this->getAllowComment() || $ignoreSettings){
|
|
|
1119 |
$attr = Mage::getModel('modulecreator/attribute');
|
1120 |
$attr->setCode('allow_comment');
|
1121 |
$attr->setLabel('Allow Comment');
|
@@ -1180,7 +1230,9 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1180 |
}
|
1181 |
$children = $this->getRelatedEntities(Ultimate_ModuleCreator_Model_Relation::RELATION_TYPE_PARENT);
|
1182 |
$siblings = $this->getRelatedEntities(Ultimate_ModuleCreator_Model_Relation::RELATION_TYPE_SIBLING);
|
1183 |
-
|
|
|
|
|
1184 |
$content .= $this->getPadding().'<block type="'.$namespace.'_'.$module.'/'.$entityName.'_'.strtolower($entity->getNameSingular()).'_list" name="'.$entityName.'.'.strtolower($entity->getNameSingular()).'_list" as="'.$entityName.'_'.strtolower($this->getNamePlural()).'" template="'.$namespace.'_'.$module.'/'.$entityName.'/'.strtolower($entity->getNameSingular()).'/list.phtml" />'.$eol.$this->getPadding(2);
|
1185 |
}
|
1186 |
if ($this->getAllowComment()) {
|
@@ -1287,6 +1339,18 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1287 |
$position += 10;
|
1288 |
}
|
1289 |
if ($this->getUrlRewrite()){
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1290 |
$content .= $padding.'<url_prefix translate="label comment">'.$eol;
|
1291 |
$content .= $padding.$tab.'<label>URL prefix</label>'.$eol;
|
1292 |
$content .= $padding.$tab.'<frontend_type>text</frontend_type>'.$eol;
|
@@ -1430,7 +1494,6 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1430 |
if ($this->getIsTree()){
|
1431 |
$module = $this->getModule()->getLowerModuleName();
|
1432 |
$entity = $this->getNameSingular(true);
|
1433 |
-
$entityLabelUc = ucfirst($this->getLabelSingular());
|
1434 |
$entityLabel = strtolower($this->getLabelSingular());
|
1435 |
$entitiesLabel = strtolower($this->getLabelPlural());
|
1436 |
$content = $prefix.'<level translate="title" module="'.$extension.'">'.$eol;
|
@@ -1491,7 +1554,6 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1491 |
}
|
1492 |
$siblings = $this->getRelatedEntities(Ultimate_ModuleCreator_Model_Relation::RELATION_TYPE_SIBLING);
|
1493 |
foreach ($siblings as $sibling){
|
1494 |
-
$siblingName = $sibling->getNameSingular(true);
|
1495 |
$siblingNameUc = ucfirst($sibling->getNameSingular());
|
1496 |
$siblingLabel = strtolower($sibling->getLabelSingular());
|
1497 |
$string .= $this->getApiRelationsSection($siblingNameUc, $siblingLabel);
|
@@ -1510,13 +1572,9 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1510 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
1511 |
*/
|
1512 |
public function getApiFaultsSection($relatedCode, $relatedLabel, $code){
|
1513 |
-
$string = '';
|
1514 |
$padding = $this->getPadding();
|
1515 |
$prefix = str_repeat($padding, 5);
|
1516 |
$eol = $this->getEol();
|
1517 |
-
$entity = $this->getNameSingular(true);
|
1518 |
-
$entityLabelUc = ucfirst($this->getLabelSingular());
|
1519 |
-
$entityLabel = strtolower($this->getLabelSingular());
|
1520 |
$string = '';
|
1521 |
$string .= $prefix.'<'.$relatedCode.'_not_exists>'.$eol;
|
1522 |
$string .= $prefix.$padding.'<code>'.$code.'</code>'.$eol;
|
@@ -1540,7 +1598,6 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1540 |
$code = 105;
|
1541 |
$entity = $this->getNameSingular(true);
|
1542 |
$entityLabelUc = ucfirst($this->getLabelSingular());
|
1543 |
-
$entityLabel = strtolower($this->getLabelSingular());
|
1544 |
if ($this->getIsTree()){
|
1545 |
$string .= $prefix.'<not_moved>'.$eol;
|
1546 |
$string .= $prefix.$padding.'<code>'.$code.'</code>'.$eol;
|
@@ -1559,8 +1616,6 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1559 |
$siblings = $this->getRelatedEntities(Ultimate_ModuleCreator_Model_Relation::RELATION_TYPE_SIBLING);
|
1560 |
foreach ($siblings as $sibling){
|
1561 |
$siblingName = $sibling->getNameSingular(true);
|
1562 |
-
$siblingNameUc = ucfirst($sibling->getNameSingular());
|
1563 |
-
$siblingLabel = strtolower($sibling->getLabelSingular());
|
1564 |
$siblingLabelUc = ucfirst($sibling->getLabelSingular());
|
1565 |
|
1566 |
$string .= $this->getApiFaultsSection($entity.'_'.$siblingName, $siblingLabelUc, $code);
|
@@ -1584,10 +1639,6 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1584 |
$eol = $this->getEol();
|
1585 |
$extension = $this->getModule()->getExtensionName(true);
|
1586 |
if ($this->getIsTree()){
|
1587 |
-
$module = $this->getModule()->getLowerModuleName();
|
1588 |
-
$entity = $this->getNameSingular(true);
|
1589 |
-
$entityLabelUc = ucfirst($this->getLabelSingular());
|
1590 |
-
$entityLabel = strtolower($this->getLabelSingular());
|
1591 |
$content .= $prefix.'<move translate="title" module="'.$extension.'">'.$eol;
|
1592 |
$content .= $prefix.$padding.'<title>Move</title>'.$eol;
|
1593 |
$content .= $prefix.'</move>'.$eol;
|
@@ -1610,6 +1661,7 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1610 |
$eol = $this->getEol();
|
1611 |
$content = '';
|
1612 |
foreach ($parents as $parent){
|
|
|
1613 |
$attr = Mage::getModel('modulecreator/attribute');
|
1614 |
$attr->setCode($parent->getNameSingular().'_id');
|
1615 |
$attr->setLabel($parent->getLabelSingular());
|
@@ -1713,8 +1765,6 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1713 |
foreach ($siblings as $sibling){
|
1714 |
$siblingName = $sibling->getNameSingular(true);
|
1715 |
$siblingNameUc = ucfirst($sibling->getNameSingular());
|
1716 |
-
$siblingLabel = strtolower($sibling->getLabelSingular());
|
1717 |
-
|
1718 |
$content .= $this->getWsdlRelationTypesSection($siblingNameUc, $siblingName, $wsi);
|
1719 |
|
1720 |
}
|
@@ -1746,7 +1796,6 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1746 |
$padding = $tab.$tab;
|
1747 |
$eol = $this->getEol();
|
1748 |
$module = $this->getModule()->getLowerModuleName();
|
1749 |
-
$entity = $this->getNameSingular(true);
|
1750 |
$entityUc = ucfirst($this->getNameSingular());
|
1751 |
$label = strtolower($this->getLabelSingular());
|
1752 |
$tagPrefix = ($wsi) ? 'wsdl:':'';
|
@@ -1802,8 +1851,7 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1802 |
}
|
1803 |
$siblings = $this->getRelatedEntities(Ultimate_ModuleCreator_Model_Relation::RELATION_TYPE_SIBLING);
|
1804 |
foreach ($siblings as $sibling){
|
1805 |
-
$
|
1806 |
-
$siblingNameUc = ucfirst($sibling->getNameSingular());
|
1807 |
$siblingLabel = strtolower($sibling->getLabelSingular());
|
1808 |
|
1809 |
$content .= $this->getWsdlPortTypeRelationSection($siblingNameUc, $siblingLabel, $wsi);
|
@@ -1838,7 +1886,6 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1838 |
$module = $this->getModule()->getLowerModuleName();
|
1839 |
$entity = $this->getNameSingular(true);
|
1840 |
$entityUc = ucfirst($entity);
|
1841 |
-
$label = strtolower($this->getLabelSingular());
|
1842 |
|
1843 |
$content .= $padding.'<operation name="'.$module.$entityUc.$sectionName.'">'.$eol;
|
1844 |
$content .= $padding.$tab.'<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />'.$eol;
|
@@ -1859,11 +1906,6 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1859 |
*/
|
1860 |
public function getWsdlRelationBinding(){
|
1861 |
$content = '';
|
1862 |
-
$module = $this->getModule()->getLowerModuleName();
|
1863 |
-
$entity = $this->getNameSingular(true);
|
1864 |
-
$entityUc = ucfirst($this->getNameSingular());
|
1865 |
-
$label = strtolower($this->getLabelSingular());
|
1866 |
-
|
1867 |
if ($this->getIsTree()){
|
1868 |
$content .= $this->getWsdlRelationBindingSection('Move');
|
1869 |
}
|
@@ -1880,8 +1922,6 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1880 |
foreach ($siblings as $sibling){
|
1881 |
$siblingName = $sibling->getNameSingular(true);
|
1882 |
$siblingNameUc = ucfirst($siblingName);
|
1883 |
-
$siblingLabel = strtolower($sibling->getLabelSingular());
|
1884 |
-
|
1885 |
$content .= $this->getWsdlRelationBindingSection('Assign'.$siblingNameUc);
|
1886 |
$content .= $this->getWsdlRelationBindingSection('Unassign'.$siblingNameUc);
|
1887 |
}
|
@@ -1905,7 +1945,6 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1905 |
$module = $this->getModule()->getLowerModuleName();
|
1906 |
$entity = $this->getNameSingular(true);
|
1907 |
$entityUc = ucfirst($entity);
|
1908 |
-
$label = strtolower($this->getLabelSingular());
|
1909 |
|
1910 |
$content .= $padding.'<wsdl:operation name="'.$module.$entityUc.$sectionName.'">'.$eol;
|
1911 |
$content .= $padding.$tab.'<soap:operation soapAction="" />'.$eol;
|
@@ -1927,11 +1966,6 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1927 |
*/
|
1928 |
public function getWsiRelationBinding(){
|
1929 |
$content = '';
|
1930 |
-
$module = $this->getModule()->getLowerModuleName();
|
1931 |
-
$entity = $this->getNameSingular(true);
|
1932 |
-
$entityUc = ucfirst($entity);
|
1933 |
-
$label = strtolower($this->getLabelSingular());
|
1934 |
-
|
1935 |
if ($this->getIsTree()){
|
1936 |
$content .= $this->getWsiRelationBindingSection('Move');
|
1937 |
}
|
@@ -1948,7 +1982,6 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1948 |
foreach ($siblings as $sibling){
|
1949 |
$siblingName = $sibling->getNameSingular(true);
|
1950 |
$siblingNameUc = ucfirst($siblingName);
|
1951 |
-
$siblingLabel = strtolower($sibling->getLabelSingular());
|
1952 |
|
1953 |
$content .= $this->getWsiRelationBindingSection('Assign'.$siblingNameUc);
|
1954 |
$content .= $this->getWsiRelationBindingSection('Unassign'.$siblingNameUc);
|
@@ -1973,7 +2006,6 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
1973 |
$module = $this->getModule()->getLowerModuleName();
|
1974 |
$entity = $this->getNameSingular(true);
|
1975 |
$entityUc = ucfirst($entity);
|
1976 |
-
$label = strtolower($this->getLabelSingular());
|
1977 |
$content .= $padding.'<xsd:element name="'.$module.$entityUc.'Assign'.$sectionName.'RequestParam">'.$eol;
|
1978 |
$content .= $padding.$tab.'<xsd:complexType>'.$eol;
|
1979 |
$content .= $padding.str_repeat($tab, 2).'<xsd:sequence>'.$eol;
|
@@ -2027,7 +2059,6 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
2027 |
$module = $this->getModule()->getLowerModuleName();
|
2028 |
$entity = $this->getNameSingular(true);
|
2029 |
$entityUc = ucfirst($entity);
|
2030 |
-
$label = strtolower($this->getLabelSingular());
|
2031 |
|
2032 |
if ($this->getIsTree()){
|
2033 |
$content .= $padding.'<xsd:element name="'.$module.$entityUc.'MoveRequestParam">'.$eol;
|
@@ -2062,8 +2093,6 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
2062 |
foreach ($siblings as $sibling){
|
2063 |
$siblingName = $sibling->getNameSingular(true);
|
2064 |
$siblingNameUc = ucfirst($siblingName);
|
2065 |
-
$siblingLabel = strtolower($sibling->getLabelSingular());
|
2066 |
-
|
2067 |
$content .= $this->getWsiRelationParamTypesSection($siblingNameUc, $siblingName);
|
2068 |
}
|
2069 |
$content .= $tab.$tab;
|
@@ -2084,7 +2113,6 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
2084 |
$module = $this->getModule()->getLowerModuleName();
|
2085 |
$entity = $this->getNameSingular(true);
|
2086 |
$entityUc = ucfirst($entity);
|
2087 |
-
$label = strtolower($this->getLabelSingular());
|
2088 |
|
2089 |
$content .= $padding.'<wsdl:message name="'.$module.$entityUc.$sectionName.'Request">'.$eol;
|
2090 |
$content .= $padding.$tab.'<wsdl:part name="parameters" element="typens:'.$module.$entityUc.$sectionName.'RequestParam" />'.$eol;
|
@@ -2121,7 +2149,6 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
2121 |
foreach ($siblings as $sibling){
|
2122 |
$siblingName = $sibling->getNameSingular(true);
|
2123 |
$siblingNameUc = ucfirst($siblingName);
|
2124 |
-
$siblingLabel = strtolower($sibling->getLabelSingular());
|
2125 |
|
2126 |
$content .= $this->getWsiRelationMessagesSection('Assign'.$siblingNameUc);
|
2127 |
$content .= $this->getWsiRelationMessagesSection('Unassign'.$siblingNameUc);
|
@@ -2205,7 +2232,6 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
2205 |
foreach ($siblings as $sibling){
|
2206 |
$siblingName = $sibling->getNameSingular(true);
|
2207 |
$siblingNameUc = ucfirst($siblingName);
|
2208 |
-
$siblingLabel = strtolower($sibling->getLabelSingular());
|
2209 |
|
2210 |
$content .= $this->getWsdlMessagesSection($siblingNameUc, $siblingName);
|
2211 |
}
|
@@ -2683,11 +2709,9 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
2683 |
$content = '';
|
2684 |
if ($this->getAllowComment()) {
|
2685 |
$padding = $this->getPadding(3);
|
2686 |
-
$tab = $this->getPadding();
|
2687 |
$module = $this->getModule()->getLowerModuleName();
|
2688 |
$entity = $this->getNameSingular(true);
|
2689 |
$eol = $this->getEol();
|
2690 |
-
$ns = $this->getNamespace(true);
|
2691 |
$content .= $eol;
|
2692 |
$content .= $padding.'<'.$entity.'_comment>'.$module.'_'.$entity.'_comment</'.$entity.'_comment>';
|
2693 |
}
|
@@ -2704,7 +2728,6 @@ class Ultimate_ModuleCreator_Model_Entity
|
|
2704 |
$content = '';
|
2705 |
if ($this->getAllowComment()) {
|
2706 |
$padding = $this->getPadding(4);
|
2707 |
-
$tab = $this->getPadding();
|
2708 |
$module = $this->getModule()->getLowerModuleName();
|
2709 |
$entity = strtolower($this->getNameSingular());
|
2710 |
$eol = $this->getEol();
|
22 |
* @package Ultimate_ModuleCreator
|
23 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
24 |
*/
|
25 |
+
/**
|
26 |
+
* @method Ultimate_ModuleCreator_Model_Entity setIndex()
|
27 |
+
* @method Ultimate_ModuleCreator_Model_Entity setEditor()
|
28 |
+
* @method Ultimate_ModuleCreator_Model_Entity setHasImage()
|
29 |
+
* @method Ultimate_ModuleCreator_Model_Entity setHasFile()
|
30 |
+
* @method Ultimate_ModuleCreator_Model_Entity setHasCountry()
|
31 |
+
* @method Ultimate_ModuleCreator_Model_Entity setHasMultipleSelect()
|
32 |
+
* @method bool getCreateFrontend()
|
33 |
+
* @method bool getLinkProduct()
|
34 |
+
* @method bool getLinkCategory()
|
35 |
+
* @method bool getIsTree()
|
36 |
+
* @method string getType()
|
37 |
+
* @method string getLabelSingular()
|
38 |
+
* @method string getLabelPlural()
|
39 |
+
* @method string getProductAttributeCode()
|
40 |
+
* @method string getCategoryAttributeCode()
|
41 |
+
* @method int getPosition()
|
42 |
+
* @method string getUrlRewriteList()
|
43 |
+
* @method bool getAllowComment()
|
44 |
+
* @method bool getStore()
|
45 |
+
* @method bool getShowCategory()
|
46 |
+
* @method int getProductAttributeScope()
|
47 |
+
* @method int getCategoryAttributeScope()
|
48 |
+
* @method bool getProductAttribute();
|
49 |
+
* @method bool getCategoryAttribute()
|
50 |
+
* @method string getProductAttributeGroup()
|
51 |
+
* @method string getCategoryAttributeGroup()
|
52 |
+
* @method int getListMenu()
|
53 |
+
* @method bool getRest()
|
54 |
+
* @method Ultimate_ModuleCreator_Model_Entity setPosition()
|
55 |
+
* @method Ultimate_ModuleCreator_Model_Entity setRss()
|
56 |
+
* @method bool getEditor()
|
57 |
+
* @method bool getApi()
|
58 |
+
* @method bool getHasCountry()
|
59 |
+
* @method bool getSearch()
|
60 |
+
* @method int getIndex()
|
61 |
+
*/
|
62 |
class Ultimate_ModuleCreator_Model_Entity
|
63 |
extends Ultimate_ModuleCreator_Model_Abstract {
|
64 |
/**
|
65 |
* reference to type instance
|
66 |
+
* @var null|Ultimate_ModuleCreator_Model_Entity_Type_Abstract
|
67 |
*/
|
68 |
protected $_typeInstance = null;
|
69 |
/**
|
144 |
$this->_attributes[$attribute->getCode()] = $attribute;
|
145 |
if ($attribute->getIsName()){
|
146 |
if (!$attribute->getIsAllowedAsName()){
|
147 |
+
/** @var Ultimate_ModuleCreator_Helper_Data $helper */
|
148 |
+
$helper = Mage::helper('modulecreator');
|
149 |
+
$attributeTypes = $helper->getNameAttributeTypes(true);
|
150 |
throw new Ultimate_ModuleCreator_Exception(Mage::helper('modulecreator')->__('An attribute that acts as name must have one of the types "%s".', implode(', ', $attributeTypes)));
|
151 |
}
|
152 |
$attribute->setUserDefined(false);
|
181 |
return $this;
|
182 |
}
|
183 |
$attributesByPosition = array();
|
184 |
+
foreach ($this->_attributes as $attribute){
|
185 |
+
/** @var Ultimate_ModuleCreator_Model_Attribute $attribute */
|
186 |
$attributesByPosition[$attribute->getPosition()][] = $attribute;
|
187 |
}
|
188 |
ksort($attributesByPosition);
|
189 |
$attributes = array();
|
190 |
+
foreach ($attributesByPosition as $attributeList){
|
191 |
foreach ($attributeList as $attribute){
|
192 |
$attributes[$attribute->getCode()] = $attribute;
|
193 |
}
|
227 |
if (!empty($rootName)) {
|
228 |
$xml.= '<'.$rootName.'>'.$this->getEol();
|
229 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
230 |
$xml .= parent::toXml($this->getXmlAttributes(), '', false, $addCdata);
|
231 |
$xml .= '<attributes>'.$this->getEol();
|
232 |
foreach ($this->getAttributes() as $attribute){
|
355 |
/**
|
356 |
* get list template
|
357 |
* @access public
|
358 |
+
* @return string
|
359 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
360 |
*/
|
361 |
public function getListTemplate(){
|
376 |
/**
|
377 |
* get list template
|
378 |
* @access public
|
379 |
+
* @return string
|
380 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
381 |
*/
|
382 |
public function getViewTemplate(){
|
488 |
* get the related entities
|
489 |
* @access public
|
490 |
* @param mixed $type
|
491 |
+
* @return Ultimate_ModuleCreator_Model_Entity[]
|
492 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
493 |
*/
|
494 |
public function getRelatedEntities($type = null){
|
547 |
public function getTypeInstance(){
|
548 |
if (is_null($this->_typeInstance)) {
|
549 |
$type = $this->getType();
|
550 |
+
/** @var Ultimate_ModuleCreator_Helper_Data $helper */
|
551 |
+
$helper = Mage::helper('modulecreator');
|
552 |
+
$types = $helper->getEntityTypes(false);
|
553 |
if (isset($types[$type])) {
|
554 |
+
/** @var Ultimate_ModuleCreator_Model_Entity_Type_Abstract $typeInstance */
|
555 |
+
$typeInstance = Mage::getModel((string)$types[$type]->type_model);
|
556 |
+
$this->_typeInstance = $typeInstance;
|
557 |
}
|
558 |
else {
|
559 |
throw new Ultimate_ModuleCreator_Exception(Mage::helper('modulecreator')->__('Entity "%s" type is not valid', $type));
|
777 |
if ($this->getUrlRewrite() && $this->getUrlSuffix()){
|
778 |
$text.= $padding3.$padding.'<url_suffix>'.$this->getUrlSuffix().'</url_suffix>'.$eol;
|
779 |
}
|
780 |
+
if ($this->getUrlRewrite() && $this->getUrlRewriteList()) {
|
781 |
+
$text.= $padding3.$padding.'<url_rewrite_list>'.$this->getUrlRewriteList().'</url_rewrite_list>'.$eol;
|
782 |
+
}
|
783 |
if ($this->getAllowComment()){
|
784 |
$text.= $padding3.$padding.'<allow_comment>1</allow_comment>'.$eol;
|
785 |
}
|
868 |
$title = ucwords($this->getLabelSingular());
|
869 |
$entity = strtolower($this->getNameSingular());
|
870 |
$action = $module.'_'.$entity;
|
|
|
871 |
$eol = $this->getEol();
|
872 |
|
873 |
$text = $this->getPadding($padding).'<'.$entity.' translate="title" module="'.$extension.'">'.$eol;
|
897 |
*/
|
898 |
public function getMenuAcl($padding){
|
899 |
$extension = $this->getModule()->getExtensionName(true);
|
|
|
900 |
$title = ucwords($this->getLabelSingular());
|
901 |
$entity = $this->getNameSingular(true);
|
|
|
|
|
902 |
$eol = $this->getEol();
|
903 |
|
904 |
$text = $this->getPadding($padding).'<'.$entity.' translate="title" module="'.$extension.'">'.$eol;
|
1031 |
$parents = $this->getRelatedEntities(Ultimate_ModuleCreator_Model_Relation::RELATION_TYPE_CHILD);
|
1032 |
$content = '';
|
1033 |
foreach ($parents as $parent){
|
1034 |
+
/** @var Ultimate_ModuleCreator_Model_Attribute $attr */
|
1035 |
$attr = Mage::getModel('modulecreator/attribute');
|
1036 |
$attr->setCode($parent->getPlaceholders('{{entity}}').'_id');
|
1037 |
$attr->setLabel($parent->getPlaceholders('{{EntityLabel}}'). ' ID');
|
1047 |
* @param mixed $type
|
1048 |
* @param bool $ignoreSettings
|
1049 |
* @param array $except
|
1050 |
+
* @return Ultimate_ModuleCreator_Model_Attribute[]
|
1051 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
1052 |
*/
|
1053 |
public function getSimulatedAttributes($type = null, $ignoreSettings = false, $except = array()){
|
1054 |
+
/** @var Ultimate_ModuleCreator_Model_Attribute[] $attributes */
|
1055 |
$attributes = array();
|
1056 |
$namespace = $this->getNamespace(true);
|
1057 |
if (is_null($type)){
|
1066 |
}
|
1067 |
switch ($type){
|
1068 |
case 'status':
|
1069 |
+
/** @var Ultimate_ModuleCreator_Model_Attribute $attr */
|
1070 |
$attr = Mage::getModel('modulecreator/attribute');
|
1071 |
$attr->setCode('status');
|
1072 |
$attr->setLabel('Enabled');
|
1076 |
break;
|
1077 |
case 'url_rewrite':
|
1078 |
if ($this->getUrlRewrite() || $ignoreSettings){
|
1079 |
+
/** @var Ultimate_ModuleCreator_Model_Attribute $attr */
|
1080 |
$attr = Mage::getModel('modulecreator/attribute');
|
1081 |
$attr->setCode('url_key');
|
1082 |
$attr->setLabel('URL key');
|
1089 |
break;
|
1090 |
case 'tree' :
|
1091 |
if ($this->getIsTree() || $ignoreSettings){
|
1092 |
+
/** @var Ultimate_ModuleCreator_Model_Attribute $attr */
|
1093 |
$attr = Mage::getModel('modulecreator/attribute');
|
1094 |
$attr->setCode('parent_id');
|
1095 |
$attr->setLabel('Parent id');
|
1096 |
$attr->setType('int');
|
1097 |
$attributes[] = $attr;
|
1098 |
|
1099 |
+
/** @var Ultimate_ModuleCreator_Model_Attribute $attr */
|
1100 |
$attr = Mage::getModel('modulecreator/attribute');
|
1101 |
$attr->setCode('path');
|
1102 |
$attr->setLabel('Path');
|
1104 |
$attr->setIgnoreApi(true);
|
1105 |
$attributes[] = $attr;
|
1106 |
|
1107 |
+
/** @var Ultimate_ModuleCreator_Model_Attribute $attr */
|
1108 |
$attr = Mage::getModel('modulecreator/attribute');
|
1109 |
$attr->setCode('position');
|
1110 |
$attr->setLabel('Position');
|
1112 |
$attr->setIgnoreApi(true);
|
1113 |
$attributes[] = $attr;
|
1114 |
|
1115 |
+
/** @var Ultimate_ModuleCreator_Model_Attribute $attr */
|
1116 |
$attr = Mage::getModel('modulecreator/attribute');
|
1117 |
$attr->setCode('level');
|
1118 |
$attr->setLabel('Level');
|
1120 |
$attr->setIgnoreApi(true);
|
1121 |
$attributes[] = $attr;
|
1122 |
|
1123 |
+
/** @var Ultimate_ModuleCreator_Model_Attribute $attr */
|
1124 |
$attr = Mage::getModel('modulecreator/attribute');
|
1125 |
$attr->setCode('children_count');
|
1126 |
$attr->setLabel('Children count');
|
1131 |
break;
|
1132 |
case 'rss':
|
1133 |
if($this->getRss() || $ignoreSettings){
|
1134 |
+
/** @var Ultimate_ModuleCreator_Model_Attribute $attr */
|
1135 |
$attr = Mage::getModel('modulecreator/attribute');
|
1136 |
$attr->setCode('in_rss');
|
1137 |
$attr->setLabel('In RSS');
|
1142 |
break;
|
1143 |
case 'seo':
|
1144 |
if ($this->getAddSeo() || $ignoreSettings){
|
1145 |
+
/** @var Ultimate_ModuleCreator_Model_Attribute $attr */
|
1146 |
$attr = Mage::getModel('modulecreator/attribute');
|
1147 |
$attr->setCode('meta_title');
|
1148 |
$attr->setLabel('Meta title');
|
1149 |
$attr->setType('text');
|
1150 |
$attributes[] = $attr;
|
1151 |
|
1152 |
+
/** @var Ultimate_ModuleCreator_Model_Attribute $attr */
|
1153 |
$attr = Mage::getModel('modulecreator/attribute');
|
1154 |
$attr->setCode('meta_keywords');
|
1155 |
$attr->setLabel('Meta keywords');
|
1165 |
break;
|
1166 |
case 'comment':
|
1167 |
if ($this->getAllowComment() || $ignoreSettings){
|
1168 |
+
/** @var Ultimate_ModuleCreator_Model_Attribute $attr */
|
1169 |
$attr = Mage::getModel('modulecreator/attribute');
|
1170 |
$attr->setCode('allow_comment');
|
1171 |
$attr->setLabel('Allow Comment');
|
1230 |
}
|
1231 |
$children = $this->getRelatedEntities(Ultimate_ModuleCreator_Model_Relation::RELATION_TYPE_PARENT);
|
1232 |
$siblings = $this->getRelatedEntities(Ultimate_ModuleCreator_Model_Relation::RELATION_TYPE_SIBLING);
|
1233 |
+
/** @var Ultimate_ModuleCreator_Model_Entity[] $relatedEntities */
|
1234 |
+
$relatedEntities = array_merge($children, $siblings);
|
1235 |
+
foreach ($relatedEntities as $entity){
|
1236 |
$content .= $this->getPadding().'<block type="'.$namespace.'_'.$module.'/'.$entityName.'_'.strtolower($entity->getNameSingular()).'_list" name="'.$entityName.'.'.strtolower($entity->getNameSingular()).'_list" as="'.$entityName.'_'.strtolower($this->getNamePlural()).'" template="'.$namespace.'_'.$module.'/'.$entityName.'/'.strtolower($entity->getNameSingular()).'/list.phtml" />'.$eol.$this->getPadding(2);
|
1237 |
}
|
1238 |
if ($this->getAllowComment()) {
|
1339 |
$position += 10;
|
1340 |
}
|
1341 |
if ($this->getUrlRewrite()){
|
1342 |
+
$content .= $padding.'<url_rewrite_list translate="label comment">'.$eol;
|
1343 |
+
$content .= $padding.$tab.'<label>URL key for list page</label>'.$eol;
|
1344 |
+
$content .= $padding.$tab.'<frontend_type>text</frontend_type>'.$eol;
|
1345 |
+
$content .= $padding.$tab.'<sort_order>'.$position.'</sort_order>'.$eol;
|
1346 |
+
$content .= $padding.$tab.'<show_in_default>1</show_in_default>'.$eol;
|
1347 |
+
$content .= $padding.$tab.'<show_in_website>1</show_in_website>'.$eol;
|
1348 |
+
$content .= $padding.$tab.'<show_in_store>1</show_in_store>'.$eol;
|
1349 |
+
$content .= $padding.$tab.'<comment>Leave empty to use default URL module/controller/action</comment>'.$eol;
|
1350 |
+
$content .= $padding.'</url_rewrite_list>'.$eol;
|
1351 |
+
$position += 10;
|
1352 |
+
|
1353 |
+
|
1354 |
$content .= $padding.'<url_prefix translate="label comment">'.$eol;
|
1355 |
$content .= $padding.$tab.'<label>URL prefix</label>'.$eol;
|
1356 |
$content .= $padding.$tab.'<frontend_type>text</frontend_type>'.$eol;
|
1494 |
if ($this->getIsTree()){
|
1495 |
$module = $this->getModule()->getLowerModuleName();
|
1496 |
$entity = $this->getNameSingular(true);
|
|
|
1497 |
$entityLabel = strtolower($this->getLabelSingular());
|
1498 |
$entitiesLabel = strtolower($this->getLabelPlural());
|
1499 |
$content = $prefix.'<level translate="title" module="'.$extension.'">'.$eol;
|
1554 |
}
|
1555 |
$siblings = $this->getRelatedEntities(Ultimate_ModuleCreator_Model_Relation::RELATION_TYPE_SIBLING);
|
1556 |
foreach ($siblings as $sibling){
|
|
|
1557 |
$siblingNameUc = ucfirst($sibling->getNameSingular());
|
1558 |
$siblingLabel = strtolower($sibling->getLabelSingular());
|
1559 |
$string .= $this->getApiRelationsSection($siblingNameUc, $siblingLabel);
|
1572 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
1573 |
*/
|
1574 |
public function getApiFaultsSection($relatedCode, $relatedLabel, $code){
|
|
|
1575 |
$padding = $this->getPadding();
|
1576 |
$prefix = str_repeat($padding, 5);
|
1577 |
$eol = $this->getEol();
|
|
|
|
|
|
|
1578 |
$string = '';
|
1579 |
$string .= $prefix.'<'.$relatedCode.'_not_exists>'.$eol;
|
1580 |
$string .= $prefix.$padding.'<code>'.$code.'</code>'.$eol;
|
1598 |
$code = 105;
|
1599 |
$entity = $this->getNameSingular(true);
|
1600 |
$entityLabelUc = ucfirst($this->getLabelSingular());
|
|
|
1601 |
if ($this->getIsTree()){
|
1602 |
$string .= $prefix.'<not_moved>'.$eol;
|
1603 |
$string .= $prefix.$padding.'<code>'.$code.'</code>'.$eol;
|
1616 |
$siblings = $this->getRelatedEntities(Ultimate_ModuleCreator_Model_Relation::RELATION_TYPE_SIBLING);
|
1617 |
foreach ($siblings as $sibling){
|
1618 |
$siblingName = $sibling->getNameSingular(true);
|
|
|
|
|
1619 |
$siblingLabelUc = ucfirst($sibling->getLabelSingular());
|
1620 |
|
1621 |
$string .= $this->getApiFaultsSection($entity.'_'.$siblingName, $siblingLabelUc, $code);
|
1639 |
$eol = $this->getEol();
|
1640 |
$extension = $this->getModule()->getExtensionName(true);
|
1641 |
if ($this->getIsTree()){
|
|
|
|
|
|
|
|
|
1642 |
$content .= $prefix.'<move translate="title" module="'.$extension.'">'.$eol;
|
1643 |
$content .= $prefix.$padding.'<title>Move</title>'.$eol;
|
1644 |
$content .= $prefix.'</move>'.$eol;
|
1661 |
$eol = $this->getEol();
|
1662 |
$content = '';
|
1663 |
foreach ($parents as $parent){
|
1664 |
+
/** @var Ultimate_ModuleCreator_Model_Attribute $attr */
|
1665 |
$attr = Mage::getModel('modulecreator/attribute');
|
1666 |
$attr->setCode($parent->getNameSingular().'_id');
|
1667 |
$attr->setLabel($parent->getLabelSingular());
|
1765 |
foreach ($siblings as $sibling){
|
1766 |
$siblingName = $sibling->getNameSingular(true);
|
1767 |
$siblingNameUc = ucfirst($sibling->getNameSingular());
|
|
|
|
|
1768 |
$content .= $this->getWsdlRelationTypesSection($siblingNameUc, $siblingName, $wsi);
|
1769 |
|
1770 |
}
|
1796 |
$padding = $tab.$tab;
|
1797 |
$eol = $this->getEol();
|
1798 |
$module = $this->getModule()->getLowerModuleName();
|
|
|
1799 |
$entityUc = ucfirst($this->getNameSingular());
|
1800 |
$label = strtolower($this->getLabelSingular());
|
1801 |
$tagPrefix = ($wsi) ? 'wsdl:':'';
|
1851 |
}
|
1852 |
$siblings = $this->getRelatedEntities(Ultimate_ModuleCreator_Model_Relation::RELATION_TYPE_SIBLING);
|
1853 |
foreach ($siblings as $sibling){
|
1854 |
+
$siblingNameUc = ucfirst($sibling->getNameSingular());
|
|
|
1855 |
$siblingLabel = strtolower($sibling->getLabelSingular());
|
1856 |
|
1857 |
$content .= $this->getWsdlPortTypeRelationSection($siblingNameUc, $siblingLabel, $wsi);
|
1886 |
$module = $this->getModule()->getLowerModuleName();
|
1887 |
$entity = $this->getNameSingular(true);
|
1888 |
$entityUc = ucfirst($entity);
|
|
|
1889 |
|
1890 |
$content .= $padding.'<operation name="'.$module.$entityUc.$sectionName.'">'.$eol;
|
1891 |
$content .= $padding.$tab.'<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />'.$eol;
|
1906 |
*/
|
1907 |
public function getWsdlRelationBinding(){
|
1908 |
$content = '';
|
|
|
|
|
|
|
|
|
|
|
1909 |
if ($this->getIsTree()){
|
1910 |
$content .= $this->getWsdlRelationBindingSection('Move');
|
1911 |
}
|
1922 |
foreach ($siblings as $sibling){
|
1923 |
$siblingName = $sibling->getNameSingular(true);
|
1924 |
$siblingNameUc = ucfirst($siblingName);
|
|
|
|
|
1925 |
$content .= $this->getWsdlRelationBindingSection('Assign'.$siblingNameUc);
|
1926 |
$content .= $this->getWsdlRelationBindingSection('Unassign'.$siblingNameUc);
|
1927 |
}
|
1945 |
$module = $this->getModule()->getLowerModuleName();
|
1946 |
$entity = $this->getNameSingular(true);
|
1947 |
$entityUc = ucfirst($entity);
|
|
|
1948 |
|
1949 |
$content .= $padding.'<wsdl:operation name="'.$module.$entityUc.$sectionName.'">'.$eol;
|
1950 |
$content .= $padding.$tab.'<soap:operation soapAction="" />'.$eol;
|
1966 |
*/
|
1967 |
public function getWsiRelationBinding(){
|
1968 |
$content = '';
|
|
|
|
|
|
|
|
|
|
|
1969 |
if ($this->getIsTree()){
|
1970 |
$content .= $this->getWsiRelationBindingSection('Move');
|
1971 |
}
|
1982 |
foreach ($siblings as $sibling){
|
1983 |
$siblingName = $sibling->getNameSingular(true);
|
1984 |
$siblingNameUc = ucfirst($siblingName);
|
|
|
1985 |
|
1986 |
$content .= $this->getWsiRelationBindingSection('Assign'.$siblingNameUc);
|
1987 |
$content .= $this->getWsiRelationBindingSection('Unassign'.$siblingNameUc);
|
2006 |
$module = $this->getModule()->getLowerModuleName();
|
2007 |
$entity = $this->getNameSingular(true);
|
2008 |
$entityUc = ucfirst($entity);
|
|
|
2009 |
$content .= $padding.'<xsd:element name="'.$module.$entityUc.'Assign'.$sectionName.'RequestParam">'.$eol;
|
2010 |
$content .= $padding.$tab.'<xsd:complexType>'.$eol;
|
2011 |
$content .= $padding.str_repeat($tab, 2).'<xsd:sequence>'.$eol;
|
2059 |
$module = $this->getModule()->getLowerModuleName();
|
2060 |
$entity = $this->getNameSingular(true);
|
2061 |
$entityUc = ucfirst($entity);
|
|
|
2062 |
|
2063 |
if ($this->getIsTree()){
|
2064 |
$content .= $padding.'<xsd:element name="'.$module.$entityUc.'MoveRequestParam">'.$eol;
|
2093 |
foreach ($siblings as $sibling){
|
2094 |
$siblingName = $sibling->getNameSingular(true);
|
2095 |
$siblingNameUc = ucfirst($siblingName);
|
|
|
|
|
2096 |
$content .= $this->getWsiRelationParamTypesSection($siblingNameUc, $siblingName);
|
2097 |
}
|
2098 |
$content .= $tab.$tab;
|
2113 |
$module = $this->getModule()->getLowerModuleName();
|
2114 |
$entity = $this->getNameSingular(true);
|
2115 |
$entityUc = ucfirst($entity);
|
|
|
2116 |
|
2117 |
$content .= $padding.'<wsdl:message name="'.$module.$entityUc.$sectionName.'Request">'.$eol;
|
2118 |
$content .= $padding.$tab.'<wsdl:part name="parameters" element="typens:'.$module.$entityUc.$sectionName.'RequestParam" />'.$eol;
|
2149 |
foreach ($siblings as $sibling){
|
2150 |
$siblingName = $sibling->getNameSingular(true);
|
2151 |
$siblingNameUc = ucfirst($siblingName);
|
|
|
2152 |
|
2153 |
$content .= $this->getWsiRelationMessagesSection('Assign'.$siblingNameUc);
|
2154 |
$content .= $this->getWsiRelationMessagesSection('Unassign'.$siblingNameUc);
|
2232 |
foreach ($siblings as $sibling){
|
2233 |
$siblingName = $sibling->getNameSingular(true);
|
2234 |
$siblingNameUc = ucfirst($siblingName);
|
|
|
2235 |
|
2236 |
$content .= $this->getWsdlMessagesSection($siblingNameUc, $siblingName);
|
2237 |
}
|
2709 |
$content = '';
|
2710 |
if ($this->getAllowComment()) {
|
2711 |
$padding = $this->getPadding(3);
|
|
|
2712 |
$module = $this->getModule()->getLowerModuleName();
|
2713 |
$entity = $this->getNameSingular(true);
|
2714 |
$eol = $this->getEol();
|
|
|
2715 |
$content .= $eol;
|
2716 |
$content .= $padding.'<'.$entity.'_comment>'.$module.'_'.$entity.'_comment</'.$entity.'_comment>';
|
2717 |
}
|
2728 |
$content = '';
|
2729 |
if ($this->getAllowComment()) {
|
2730 |
$padding = $this->getPadding(4);
|
|
|
2731 |
$module = $this->getModule()->getLowerModuleName();
|
2732 |
$entity = strtolower($this->getNameSingular());
|
2733 |
$eol = $this->getEol();
|
app/code/community/Ultimate/ModuleCreator/Model/Entity/Type/Eav.php
CHANGED
@@ -159,10 +159,8 @@ class Ultimate_ModuleCreator_Model_Entity_Type_Eav extends Ultimate_ModuleCreato
|
|
159 |
*/
|
160 |
public function getAdditionalMenuAcl($padding) {
|
161 |
$extension = $this->getModule()->getExtensionName(true);
|
162 |
-
$module = $this->getLowerModuleName();
|
163 |
$entity = $this->getEntity()->getNameSingular(true);
|
164 |
$entityTitle = $this->getEntity()->getLabelSingular();
|
165 |
-
$action = $module.'_'.$entity;
|
166 |
$eol = $this->getEol();
|
167 |
|
168 |
$text = $this->getPadding($padding).'<'.$entity.'_attributes translate="title" module="'.$extension.'">'.$eol;
|
@@ -184,7 +182,7 @@ class Ultimate_ModuleCreator_Model_Entity_Type_Eav extends Ultimate_ModuleCreato
|
|
184 |
/**
|
185 |
* get parent attributes
|
186 |
* @access protected
|
187 |
-
* @return
|
188 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
189 |
*/
|
190 |
protected function _getParentAttributes(){
|
@@ -195,6 +193,7 @@ class Ultimate_ModuleCreator_Model_Entity_Type_Eav extends Ultimate_ModuleCreato
|
|
195 |
$module = $parent->getModule()->getLowerModuleName();
|
196 |
$namespace = $parent->getModule()->getNamespace(true);
|
197 |
$name = $parent->getNameSingular();
|
|
|
198 |
$attr = Mage::getModel('modulecreator/attribute');
|
199 |
$attr->setCode($name.'_id');
|
200 |
$attr->setLabel($parent->getLabelSingular());
|
@@ -298,7 +297,6 @@ class Ultimate_ModuleCreator_Model_Entity_Type_Eav extends Ultimate_ModuleCreato
|
|
298 |
$content = '';
|
299 |
$eol = $this->getEol();
|
300 |
$entity = $this->getEntity()->getNameSingular(true);
|
301 |
-
$module = $this->getLowerModuleName();
|
302 |
if ($this->getEntity()->getLinkProduct()) {
|
303 |
$content .= $padding.'protected $'.'_'.$entity.'ProductTable = null;'.$eol;
|
304 |
}
|
@@ -308,7 +306,6 @@ class Ultimate_ModuleCreator_Model_Entity_Type_Eav extends Ultimate_ModuleCreato
|
|
308 |
$related = $this->getEntity()->getRelatedEntities(Ultimate_ModuleCreator_Model_Relation::RELATION_TYPE_SIBLING);
|
309 |
foreach ($related as $_entity) {
|
310 |
$_entityUc = ucfirst($_entity->getNameSingular());
|
311 |
-
$_entityLower = $_entity->getNameSingular(true);
|
312 |
$content .= $padding.'protected $'.'_'.$entity.$_entityUc.'Table = null;'.$eol;
|
313 |
}
|
314 |
return $content;
|
@@ -606,7 +603,6 @@ class Ultimate_ModuleCreator_Model_Entity_Type_Eav extends Ultimate_ModuleCreato
|
|
606 |
$content = '';
|
607 |
$padding = $this->getPadding(5);
|
608 |
$tab = $this->getPadding();
|
609 |
-
$module = $this->getLowerModuleName();
|
610 |
$entity = $this->getEntity()->getNameSingular(true);
|
611 |
$eol = $this->getEol();
|
612 |
$title = $this->getEntity()->getLabelSingular().' Attributes';
|
@@ -658,7 +654,6 @@ class Ultimate_ModuleCreator_Model_Entity_Type_Eav extends Ultimate_ModuleCreato
|
|
658 |
public function getApiResourcesAlias() {
|
659 |
$content = '';
|
660 |
$padding = $this->getPadding(3);
|
661 |
-
$tab = $this->getPadding();
|
662 |
$module = $this->getLowerModuleName();
|
663 |
$entity = $this->getEntity()->getNameSingular(true);
|
664 |
$eol = $this->getEol();
|
@@ -675,7 +670,6 @@ class Ultimate_ModuleCreator_Model_Entity_Type_Eav extends Ultimate_ModuleCreato
|
|
675 |
public function getApiResourcesAliasV2() {
|
676 |
$content = '';
|
677 |
$padding = $this->getPadding(4);
|
678 |
-
$tab = $this->getPadding();
|
679 |
$module = $this->getLowerModuleName();
|
680 |
$entity = $this->getEntity()->getNameSingular(true);
|
681 |
$eol = $this->getEol();
|
159 |
*/
|
160 |
public function getAdditionalMenuAcl($padding) {
|
161 |
$extension = $this->getModule()->getExtensionName(true);
|
|
|
162 |
$entity = $this->getEntity()->getNameSingular(true);
|
163 |
$entityTitle = $this->getEntity()->getLabelSingular();
|
|
|
164 |
$eol = $this->getEol();
|
165 |
|
166 |
$text = $this->getPadding($padding).'<'.$entity.'_attributes translate="title" module="'.$extension.'">'.$eol;
|
182 |
/**
|
183 |
* get parent attributes
|
184 |
* @access protected
|
185 |
+
* @return Ultimate_ModuleCreator_Model_Attribute[]
|
186 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
187 |
*/
|
188 |
protected function _getParentAttributes(){
|
193 |
$module = $parent->getModule()->getLowerModuleName();
|
194 |
$namespace = $parent->getModule()->getNamespace(true);
|
195 |
$name = $parent->getNameSingular();
|
196 |
+
/** @var Ultimate_ModuleCreator_Model_Attribute $attr */
|
197 |
$attr = Mage::getModel('modulecreator/attribute');
|
198 |
$attr->setCode($name.'_id');
|
199 |
$attr->setLabel($parent->getLabelSingular());
|
297 |
$content = '';
|
298 |
$eol = $this->getEol();
|
299 |
$entity = $this->getEntity()->getNameSingular(true);
|
|
|
300 |
if ($this->getEntity()->getLinkProduct()) {
|
301 |
$content .= $padding.'protected $'.'_'.$entity.'ProductTable = null;'.$eol;
|
302 |
}
|
306 |
$related = $this->getEntity()->getRelatedEntities(Ultimate_ModuleCreator_Model_Relation::RELATION_TYPE_SIBLING);
|
307 |
foreach ($related as $_entity) {
|
308 |
$_entityUc = ucfirst($_entity->getNameSingular());
|
|
|
309 |
$content .= $padding.'protected $'.'_'.$entity.$_entityUc.'Table = null;'.$eol;
|
310 |
}
|
311 |
return $content;
|
603 |
$content = '';
|
604 |
$padding = $this->getPadding(5);
|
605 |
$tab = $this->getPadding();
|
|
|
606 |
$entity = $this->getEntity()->getNameSingular(true);
|
607 |
$eol = $this->getEol();
|
608 |
$title = $this->getEntity()->getLabelSingular().' Attributes';
|
654 |
public function getApiResourcesAlias() {
|
655 |
$content = '';
|
656 |
$padding = $this->getPadding(3);
|
|
|
657 |
$module = $this->getLowerModuleName();
|
658 |
$entity = $this->getEntity()->getNameSingular(true);
|
659 |
$eol = $this->getEol();
|
670 |
public function getApiResourcesAliasV2() {
|
671 |
$content = '';
|
672 |
$padding = $this->getPadding(4);
|
|
|
673 |
$module = $this->getLowerModuleName();
|
674 |
$entity = $this->getEntity()->getNameSingular(true);
|
675 |
$eol = $this->getEol();
|
app/code/community/Ultimate/ModuleCreator/Model/Module.php
CHANGED
@@ -15,7 +15,56 @@
|
|
15 |
* @license http://opensource.org/licenses/mit-license.php MIT License
|
16 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
17 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_Abstract{
|
|
|
|
|
19 |
/**
|
20 |
* entity code
|
21 |
* @var string
|
@@ -206,12 +255,6 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
|
|
206 |
if (!empty($rootName)) {
|
207 |
$xml.= '<'.$rootName.'>'.$eol;
|
208 |
}
|
209 |
-
$start = '';
|
210 |
-
$end = '';
|
211 |
-
if ($addCdata){
|
212 |
-
$start = '<![CDATA[';
|
213 |
-
$end = ']]>';
|
214 |
-
}
|
215 |
$xml .= parent::toXml($this->getXmlAttributes(), '', false, $addCdata);
|
216 |
$xml .= '<entities>'.$eol;
|
217 |
foreach ($this->getEntities() as $entity){
|
@@ -265,7 +308,7 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
|
|
265 |
* get module relations
|
266 |
* @access public
|
267 |
* @param mixed $type
|
268 |
-
* @return
|
269 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
270 |
*/
|
271 |
public function getRelations($type = null){
|
@@ -288,7 +331,7 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
|
|
288 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
289 |
*/
|
290 |
public function getXmlPath(){
|
291 |
-
return
|
292 |
}
|
293 |
/**
|
294 |
* save the module as xml
|
@@ -310,10 +353,9 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
|
|
310 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
311 |
*/
|
312 |
public function validate(){
|
313 |
-
$
|
314 |
-
$config = Mage::helper('modulecreator')->getConfig();
|
315 |
$settings = $config->getNode('forms/settings/fieldsets');
|
316 |
-
foreach ($settings->fieldset as $
|
317 |
foreach ($set->fields->children() as $key => $values){
|
318 |
$v = $this->getData($key);
|
319 |
if ((string)$values->required == 1 && (!$this->hasData($key) || $v === "")) {
|
@@ -363,7 +405,7 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
|
|
363 |
}
|
364 |
$restrictedAttributes = $this->getRestrictedAttributeCodes();
|
365 |
//validate attributes
|
366 |
-
foreach ($entity->getAttributes() as $
|
367 |
$code = $attribute->getCode();
|
368 |
if (isset($restrictedAttributes[$code])){
|
369 |
//presume "not guilty"
|
@@ -416,7 +458,7 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
|
|
416 |
$this->_errors[$attribute] = '';
|
417 |
}
|
418 |
else{
|
419 |
-
$this->_errors[$attribute] .=
|
420 |
}
|
421 |
$this->_errors[$attribute] .= $message;
|
422 |
}
|
@@ -436,9 +478,9 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
|
|
436 |
$io = $this->getIo();
|
437 |
$io->mkdir(dirname($destinationFile));
|
438 |
/**
|
439 |
-
* Varien_Io_File has changed in 1.8.1 A LOT
|
440 |
*/
|
441 |
-
if (version_compare(Mage::getVersion(),
|
442 |
$io->write($destinationFile, $contents, 0777);
|
443 |
}
|
444 |
else {
|
@@ -453,6 +495,19 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
|
|
453 |
}
|
454 |
return $this;
|
455 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
456 |
/**
|
457 |
* get the IO - class
|
458 |
* @access public
|
@@ -505,7 +560,7 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
|
|
505 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
506 |
*/
|
507 |
public function getRestrictedEntityNames(){
|
508 |
-
return $this->getDataSetDefault('restricted_entity_names', array_keys((array)
|
509 |
}
|
510 |
/**
|
511 |
* get the restricted attribute codes
|
@@ -514,7 +569,7 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
|
|
514 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
515 |
*/
|
516 |
public function getRestrictedAttributeCodes(){
|
517 |
-
return $this->getDataSetDefault('restricted_attribute_codes', (array)
|
518 |
}
|
519 |
/**
|
520 |
* get the restricted attribute codes because of the method names
|
@@ -548,7 +603,7 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
|
|
548 |
$config = $this->getConfig();
|
549 |
$files = $config->getNode('files');
|
550 |
$messages = array();
|
551 |
-
foreach ((array)$files as $
|
552 |
if ($file->scope == 'disabled'){
|
553 |
continue;
|
554 |
}
|
@@ -567,6 +622,7 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
|
|
567 |
foreach ($this->_files as $filename=>$file){
|
568 |
$contents[] = $this->getRelativeBasePath().$filename;
|
569 |
}
|
|
|
570 |
$_writer = Mage::getModel('modulecreator/writer', $contents);
|
571 |
$_writer->setNamePackage(Mage::getBaseDir('var').DS.'modulecreator'.DS.$this->getExtensionName());
|
572 |
$_writer->composePackage()->archivePackage();
|
@@ -670,7 +726,7 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
|
|
670 |
}
|
671 |
$lines[] = "DELETE FROM core_resource WHERE code = '".$namespace.'_'.$module."_setup';";
|
672 |
$lines[] = "DELETE FROM core_config_data WHERE path like '".$namespace.'_'.$module."/%';";
|
673 |
-
$text = implode(
|
674 |
$this->_writeFile($this->getUninstallPath(),$text);
|
675 |
return $this;
|
676 |
}
|
@@ -699,7 +755,7 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
|
|
699 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
700 |
*/
|
701 |
public function getLogPath(){
|
702 |
-
return
|
703 |
}
|
704 |
/**
|
705 |
* get path for uninstall sql file
|
@@ -708,7 +764,7 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
|
|
708 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
709 |
*/
|
710 |
public function getUninstallPath(){
|
711 |
-
return
|
712 |
}
|
713 |
|
714 |
/**
|
@@ -738,7 +794,7 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
|
|
738 |
/**
|
739 |
* get the module config
|
740 |
* @access public
|
741 |
-
* @return
|
742 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
743 |
*/
|
744 |
public function getConfig(){
|
@@ -790,12 +846,13 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
|
|
790 |
/**
|
791 |
* validate xml condition
|
792 |
* @access protected
|
793 |
-
* @param $entity
|
794 |
-
* @param $conditions
|
|
|
795 |
* @return bool
|
796 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
797 |
*/
|
798 |
-
protected function _validateDepend($entity, $conditions, $params = null){
|
799 |
if (!$conditions){
|
800 |
return true;
|
801 |
}
|
@@ -831,11 +888,10 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
|
|
831 |
}
|
832 |
else{
|
833 |
$code = $this->_sortCodeFiles((array)$config->code);
|
834 |
-
foreach ($code as $
|
835 |
$sourceContent = $this->getFileContents($sourceFolder.(string)$file->name);
|
836 |
$scope = (string)$file->scope;
|
837 |
$depend = $file->depend;
|
838 |
-
$scope = $file->scope;
|
839 |
if ($scope == 'entity'){
|
840 |
foreach ($this->getEntities() as $entity){
|
841 |
if ($this->_validateDepend($entity, $depend)){
|
@@ -846,6 +902,7 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
|
|
846 |
}
|
847 |
elseif($scope == 'attribute'){
|
848 |
$depend = $file->depend;
|
|
|
849 |
$dependType = $file->depend_type;
|
850 |
foreach ($this->getEntities() as $entity){
|
851 |
foreach ($entity->getAttributes() as $attribute){
|
@@ -959,10 +1016,11 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
|
|
959 |
continue;
|
960 |
}
|
961 |
$code = $this->_sortCodeFiles((array)$config->code);
|
962 |
-
foreach ($code as $
|
963 |
$sourceContent = $this->getFileContents($sourceFolder.(string)$file->name);
|
964 |
$scope = (string)$file->scope;
|
965 |
$depend = $file->depend;
|
|
|
966 |
$dependType = $file->depend_type;
|
967 |
if ($scope == 'attribute'){
|
968 |
foreach ($entity->getAttributes() as $attribute){
|
@@ -1067,7 +1125,7 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
|
|
1067 |
$destinationFile = $this->_filterString((string)$config->destination, $filetype, $placeholders, true);
|
1068 |
$content = '';
|
1069 |
$code = $this->_sortCodeFiles((array)$config->code);
|
1070 |
-
foreach ($code as $
|
1071 |
$depend = $file->depend;
|
1072 |
if (!$this->_validateDepend($relation, $depend, $index)){
|
1073 |
continue;
|
@@ -1111,7 +1169,7 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
|
|
1111 |
$destinationFile = $this->_filterString((string)$config->destination, $filetype, $placeholders, true);
|
1112 |
$content = '';
|
1113 |
$code = $this->_sortCodeFiles((array)$config->code);
|
1114 |
-
foreach ($code as $
|
1115 |
$depend = $file->depend;
|
1116 |
if (!$this->_validateDepend($relation, $depend)){
|
1117 |
continue;
|
@@ -1146,8 +1204,8 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
|
|
1146 |
continue;
|
1147 |
}
|
1148 |
$code = $this->_sortCodeFiles((array)$config->code);
|
1149 |
-
foreach ($code as $
|
1150 |
-
$depend
|
1151 |
if (!$this->_validateDepend($attribute, $depend)){
|
1152 |
continue;
|
1153 |
}
|
@@ -1375,12 +1433,12 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
|
|
1375 |
*/
|
1376 |
protected function _sortCodeFiles($files, $sortField = 'sort_order'){
|
1377 |
$sorted = array();
|
1378 |
-
foreach ($files as $
|
1379 |
$sorted[(int)$values->$sortField][] = $values;
|
1380 |
}
|
1381 |
ksort($sorted);
|
1382 |
$return = array();
|
1383 |
-
foreach ($sorted as $
|
1384 |
foreach ($values as $file){
|
1385 |
$return[] = $file;
|
1386 |
}
|
@@ -1588,7 +1646,6 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
|
|
1588 |
foreach ($this->getEntities() as $entity) {
|
1589 |
$name = $entity->getNameSingular(true);
|
1590 |
$names = $entity->getNamePlural(true);
|
1591 |
-
$label = $entity->getLabelPlural();
|
1592 |
if ($entity->getShowOnProduct()) {
|
1593 |
$content .= $padding.'<block type="'.$ns.'_'.$module.'/catalog_category_list_'.$name.'" name="category.info.'.$names.'" as="category_'.$names.'" template="'.$ns.'_'.$module.'/catalog/category/list/'.$name.'.phtml" after="-" />'.$eol;
|
1594 |
}
|
@@ -1606,7 +1663,9 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
|
|
1606 |
$padding = $this->getPadding(1);
|
1607 |
$tab = $this->getPadding();
|
1608 |
$eol = $this->getEol();
|
|
|
1609 |
$top = array();
|
|
|
1610 |
$footer = array();
|
1611 |
$content = $eol.$padding;
|
1612 |
$namespace = $this->getNamespace(true);
|
@@ -1809,7 +1868,6 @@ class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_A
|
|
1809 |
*/
|
1810 |
public function getEavOptionsDefaults() {
|
1811 |
$content = '';
|
1812 |
-
$eol = $this->getEol();
|
1813 |
foreach ($this->getEntities() as $entity) {
|
1814 |
if ($entity->getIsEav()) {
|
1815 |
foreach ($entity->getAttributes() as $attribute) {
|
15 |
* @license http://opensource.org/licenses/mit-license.php MIT License
|
16 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
17 |
*/
|
18 |
+
/**
|
19 |
+
* @method string getFilenameId()
|
20 |
+
* @method string getMenuParent()
|
21 |
+
* @method Ultimate_ModuleCreator_Model_Module setRss()
|
22 |
+
* @method Ultimate_ModuleCreator_Model_Module setHasFile()
|
23 |
+
* @method Ultimate_ModuleCreator_Model_Module setHasImage()
|
24 |
+
* @method Ultimate_ModuleCreator_Model_Module setAddSeo()
|
25 |
+
* @method Ultimate_ModuleCreator_Model_Module setWidget()
|
26 |
+
* @method Ultimate_ModuleCreator_Model_Module setCreateFrontend()
|
27 |
+
* @method Ultimate_ModuleCreator_Model_Module setCanCreateRouter()
|
28 |
+
* @method Ultimate_ModuleCreator_Model_Module setCreateList()
|
29 |
+
* @method Ultimate_ModuleCreator_Model_Module setHasTree()
|
30 |
+
* @method Ultimate_ModuleCreator_Model_Module setEditor()
|
31 |
+
* @method Ultimate_ModuleCreator_Model_Module setHasConfigDefaults()
|
32 |
+
* @method Ultimate_ModuleCreator_Model_Module setLinkProduct()
|
33 |
+
* @method Ultimate_ModuleCreator_Model_Module setHasObserver()
|
34 |
+
* @method Ultimate_ModuleCreator_Model_Module setLinkCategory()
|
35 |
+
* @method Ultimate_ModuleCreator_Model_Module setLinkCore()
|
36 |
+
* @method Ultimate_ModuleCreator_Model_Module setUrlRewrite()
|
37 |
+
* @method Ultimate_ModuleCreator_Model_Module setHasEav()
|
38 |
+
* @method Ultimate_ModuleCreator_Model_Module setHasFlat()
|
39 |
+
* @method Ultimate_ModuleCreator_Model_Module setApi()
|
40 |
+
* @method Ultimate_ModuleCreator_Model_Module setAllowComment()
|
41 |
+
* @method Ultimate_ModuleCreator_Model_Module setAllowCommentByStore()
|
42 |
+
* @method Ultimate_ModuleCreator_Model_Module setHasCountry()
|
43 |
+
* @method Ultimate_ModuleCreator_Model_Module setHasSeo()
|
44 |
+
* @method Ultimate_ModuleCreator_Model_Module setShowOnProduct()
|
45 |
+
* @method Ultimate_ModuleCreator_Model_Module setShowOnCategory()
|
46 |
+
* @method Ultimate_ModuleCreator_Model_Module setShowInCategoryMenu()
|
47 |
+
* @method Ultimate_ModuleCreator_Model_Module setSearch()
|
48 |
+
* @method Ultimate_ModuleCreator_Model_Module setHasCatalogAttribute()
|
49 |
+
* @method Ultimate_ModuleCreator_Model_Module setRest()
|
50 |
+
* @method string getModuleName()
|
51 |
+
* @method int getInstall()
|
52 |
+
* @method Ultimate_ModuleCreator_Model_Module setInstall()
|
53 |
+
* @method bool getHasEav()
|
54 |
+
* @method int getSortOrder()
|
55 |
+
* @method string getMenuText()
|
56 |
+
* @method string getCodepool()
|
57 |
+
* @method string getVersion()
|
58 |
+
* @method bool getCreateFrontend()
|
59 |
+
* @method bool getLinkProduct()
|
60 |
+
* @method bool getLinkCategory()
|
61 |
+
* @method bool getHasCatalogAttribute()
|
62 |
+
* @method bool getLinkCore()
|
63 |
+
* @method bool getShowInCategoryMenu()
|
64 |
+
*/
|
65 |
class Ultimate_ModuleCreator_Model_Module extends Ultimate_ModuleCreator_Model_Abstract{
|
66 |
+
const EFFIN_VERSION_ENTERPRISE = '1.13.1';
|
67 |
+
const EFFIN_VERSION_COMMUNITY = '1.8.1';
|
68 |
/**
|
69 |
* entity code
|
70 |
* @var string
|
255 |
if (!empty($rootName)) {
|
256 |
$xml.= '<'.$rootName.'>'.$eol;
|
257 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
258 |
$xml .= parent::toXml($this->getXmlAttributes(), '', false, $addCdata);
|
259 |
$xml .= '<entities>'.$eol;
|
260 |
foreach ($this->getEntities() as $entity){
|
308 |
* get module relations
|
309 |
* @access public
|
310 |
* @param mixed $type
|
311 |
+
* @return Ultimate_ModuleCreator_Model_Relation[]
|
312 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
313 |
*/
|
314 |
public function getRelations($type = null){
|
331 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
332 |
*/
|
333 |
public function getXmlPath(){
|
334 |
+
return $this->getHelper()->getLocalPackagesPath().$this->getNamespace()."_".$this->getModuleName().'.xml';
|
335 |
}
|
336 |
/**
|
337 |
* save the module as xml
|
353 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
354 |
*/
|
355 |
public function validate(){
|
356 |
+
$config = $this->getHelper()->getConfig();
|
|
|
357 |
$settings = $config->getNode('forms/settings/fieldsets');
|
358 |
+
foreach ($settings->fieldset as $set){
|
359 |
foreach ($set->fields->children() as $key => $values){
|
360 |
$v = $this->getData($key);
|
361 |
if ((string)$values->required == 1 && (!$this->hasData($key) || $v === "")) {
|
405 |
}
|
406 |
$restrictedAttributes = $this->getRestrictedAttributeCodes();
|
407 |
//validate attributes
|
408 |
+
foreach ($entity->getAttributes() as $attribute){
|
409 |
$code = $attribute->getCode();
|
410 |
if (isset($restrictedAttributes[$code])){
|
411 |
//presume "not guilty"
|
458 |
$this->_errors[$attribute] = '';
|
459 |
}
|
460 |
else{
|
461 |
+
$this->_errors[$attribute] .= $separator;
|
462 |
}
|
463 |
$this->_errors[$attribute] .= $message;
|
464 |
}
|
478 |
$io = $this->getIo();
|
479 |
$io->mkdir(dirname($destinationFile));
|
480 |
/**
|
481 |
+
* Varien_Io_File has changed in CE 1.8.1 / EE 1.13.1 A LOT
|
482 |
*/
|
483 |
+
if (version_compare(Mage::getVersion(), $this->getEffinVersion(), '<')) {
|
484 |
$io->write($destinationFile, $contents, 0777);
|
485 |
}
|
486 |
else {
|
495 |
}
|
496 |
return $this;
|
497 |
}
|
498 |
+
|
499 |
+
/**
|
500 |
+
* get the version for which the io writer has changed
|
501 |
+
* @access public
|
502 |
+
* @return string
|
503 |
+
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
504 |
+
*/
|
505 |
+
public function getEffinVersion() {
|
506 |
+
if (Mage::getEdition() == Mage::EDITION_ENTERPRISE) {
|
507 |
+
return self::EFFIN_VERSION_ENTERPRISE;
|
508 |
+
}
|
509 |
+
return self::EFFIN_VERSION_COMMUNITY;
|
510 |
+
}
|
511 |
/**
|
512 |
* get the IO - class
|
513 |
* @access public
|
560 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
561 |
*/
|
562 |
public function getRestrictedEntityNames(){
|
563 |
+
return $this->getDataSetDefault('restricted_entity_names', array_keys((array)$this->getHelper()->getConfig()->getNode('restricted/entity')));
|
564 |
}
|
565 |
/**
|
566 |
* get the restricted attribute codes
|
569 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
570 |
*/
|
571 |
public function getRestrictedAttributeCodes(){
|
572 |
+
return $this->getDataSetDefault('restricted_attribute_codes', (array)$this->getHelper()->getConfig()->getNode('restricted/attribute'));
|
573 |
}
|
574 |
/**
|
575 |
* get the restricted attribute codes because of the method names
|
603 |
$config = $this->getConfig();
|
604 |
$files = $config->getNode('files');
|
605 |
$messages = array();
|
606 |
+
foreach ((array)$files as $file){
|
607 |
if ($file->scope == 'disabled'){
|
608 |
continue;
|
609 |
}
|
622 |
foreach ($this->_files as $filename=>$file){
|
623 |
$contents[] = $this->getRelativeBasePath().$filename;
|
624 |
}
|
625 |
+
/** @var Ultimate_ModuleCreator_Model_Writer $_writer */
|
626 |
$_writer = Mage::getModel('modulecreator/writer', $contents);
|
627 |
$_writer->setNamePackage(Mage::getBaseDir('var').DS.'modulecreator'.DS.$this->getExtensionName());
|
628 |
$_writer->composePackage()->archivePackage();
|
726 |
}
|
727 |
$lines[] = "DELETE FROM core_resource WHERE code = '".$namespace.'_'.$module."_setup';";
|
728 |
$lines[] = "DELETE FROM core_config_data WHERE path like '".$namespace.'_'.$module."/%';";
|
729 |
+
$text = implode($this->getEol(), $lines);
|
730 |
$this->_writeFile($this->getUninstallPath(),$text);
|
731 |
return $this;
|
732 |
}
|
755 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
756 |
*/
|
757 |
public function getLogPath(){
|
758 |
+
return $this->getHelper()->getLocalPackagesPath().$this->getExtensionName().'/files.log';
|
759 |
}
|
760 |
/**
|
761 |
* get path for uninstall sql file
|
764 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
765 |
*/
|
766 |
public function getUninstallPath(){
|
767 |
+
return $this->getHelper()->getLocalPackagesPath().$this->getExtensionName().'/uninstall.sql';
|
768 |
}
|
769 |
|
770 |
/**
|
794 |
/**
|
795 |
* get the module config
|
796 |
* @access public
|
797 |
+
* @return Varien_Simplexml_Config
|
798 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
799 |
*/
|
800 |
public function getConfig(){
|
846 |
/**
|
847 |
* validate xml condition
|
848 |
* @access protected
|
849 |
+
* @param Ultimate_ModuleCreator_Model_Abstract $entity
|
850 |
+
* @param Mage_Core_Model_Config_Element $conditions
|
851 |
+
* @param mixed $params
|
852 |
* @return bool
|
853 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
854 |
*/
|
855 |
+
protected function _validateDepend(Ultimate_ModuleCreator_Model_Abstract $entity, Mage_Core_Model_Config_Element $conditions, $params = null){
|
856 |
if (!$conditions){
|
857 |
return true;
|
858 |
}
|
888 |
}
|
889 |
else{
|
890 |
$code = $this->_sortCodeFiles((array)$config->code);
|
891 |
+
foreach ($code as $file){
|
892 |
$sourceContent = $this->getFileContents($sourceFolder.(string)$file->name);
|
893 |
$scope = (string)$file->scope;
|
894 |
$depend = $file->depend;
|
|
|
895 |
if ($scope == 'entity'){
|
896 |
foreach ($this->getEntities() as $entity){
|
897 |
if ($this->_validateDepend($entity, $depend)){
|
902 |
}
|
903 |
elseif($scope == 'attribute'){
|
904 |
$depend = $file->depend;
|
905 |
+
/** @var Mage_Core_Model_Config_Element $dependType */
|
906 |
$dependType = $file->depend_type;
|
907 |
foreach ($this->getEntities() as $entity){
|
908 |
foreach ($entity->getAttributes() as $attribute){
|
1016 |
continue;
|
1017 |
}
|
1018 |
$code = $this->_sortCodeFiles((array)$config->code);
|
1019 |
+
foreach ($code as $file){
|
1020 |
$sourceContent = $this->getFileContents($sourceFolder.(string)$file->name);
|
1021 |
$scope = (string)$file->scope;
|
1022 |
$depend = $file->depend;
|
1023 |
+
/** @var Mage_Core_Model_Config_Element $dependType */
|
1024 |
$dependType = $file->depend_type;
|
1025 |
if ($scope == 'attribute'){
|
1026 |
foreach ($entity->getAttributes() as $attribute){
|
1125 |
$destinationFile = $this->_filterString((string)$config->destination, $filetype, $placeholders, true);
|
1126 |
$content = '';
|
1127 |
$code = $this->_sortCodeFiles((array)$config->code);
|
1128 |
+
foreach ($code as $file){
|
1129 |
$depend = $file->depend;
|
1130 |
if (!$this->_validateDepend($relation, $depend, $index)){
|
1131 |
continue;
|
1169 |
$destinationFile = $this->_filterString((string)$config->destination, $filetype, $placeholders, true);
|
1170 |
$content = '';
|
1171 |
$code = $this->_sortCodeFiles((array)$config->code);
|
1172 |
+
foreach ($code as $file){
|
1173 |
$depend = $file->depend;
|
1174 |
if (!$this->_validateDepend($relation, $depend)){
|
1175 |
continue;
|
1204 |
continue;
|
1205 |
}
|
1206 |
$code = $this->_sortCodeFiles((array)$config->code);
|
1207 |
+
foreach ($code as $file){
|
1208 |
+
$depend = $file->depend;
|
1209 |
if (!$this->_validateDepend($attribute, $depend)){
|
1210 |
continue;
|
1211 |
}
|
1433 |
*/
|
1434 |
protected function _sortCodeFiles($files, $sortField = 'sort_order'){
|
1435 |
$sorted = array();
|
1436 |
+
foreach ($files as $values){
|
1437 |
$sorted[(int)$values->$sortField][] = $values;
|
1438 |
}
|
1439 |
ksort($sorted);
|
1440 |
$return = array();
|
1441 |
+
foreach ($sorted as $values){
|
1442 |
foreach ($values as $file){
|
1443 |
$return[] = $file;
|
1444 |
}
|
1646 |
foreach ($this->getEntities() as $entity) {
|
1647 |
$name = $entity->getNameSingular(true);
|
1648 |
$names = $entity->getNamePlural(true);
|
|
|
1649 |
if ($entity->getShowOnProduct()) {
|
1650 |
$content .= $padding.'<block type="'.$ns.'_'.$module.'/catalog_category_list_'.$name.'" name="category.info.'.$names.'" as="category_'.$names.'" template="'.$ns.'_'.$module.'/catalog/category/list/'.$name.'.phtml" after="-" />'.$eol;
|
1651 |
}
|
1663 |
$padding = $this->getPadding(1);
|
1664 |
$tab = $this->getPadding();
|
1665 |
$eol = $this->getEol();
|
1666 |
+
/** @var Ultimate_ModuleCreator_Model_Entity[] $top */
|
1667 |
$top = array();
|
1668 |
+
/** @var Ultimate_ModuleCreator_Model_Entity[] $footer */
|
1669 |
$footer = array();
|
1670 |
$content = $eol.$padding;
|
1671 |
$namespace = $this->getNamespace(true);
|
1868 |
*/
|
1869 |
public function getEavOptionsDefaults() {
|
1870 |
$content = '';
|
|
|
1871 |
foreach ($this->getEntities() as $entity) {
|
1872 |
if ($entity->getIsEav()) {
|
1873 |
foreach ($entity->getAttributes() as $attribute) {
|
app/code/community/Ultimate/ModuleCreator/Model/Module/Collection.php
CHANGED
@@ -47,7 +47,8 @@ class Ultimate_ModuleCreator_Model_Module_Collection
|
|
47 |
public function __construct() {
|
48 |
$this->_baseDir = Mage::getBaseDir('var') . DS . 'modulecreator'.DS.'package';
|
49 |
$io = new Varien_Io_File();
|
50 |
-
$io->setAllowCreateFolders(true)
|
|
|
51 |
$this->addTargetDir($this->_baseDir);
|
52 |
}
|
53 |
|
47 |
public function __construct() {
|
48 |
$this->_baseDir = Mage::getBaseDir('var') . DS . 'modulecreator'.DS.'package';
|
49 |
$io = new Varien_Io_File();
|
50 |
+
$io->setAllowCreateFolders(true);
|
51 |
+
$io->createDestinationDir($this->_baseDir);
|
52 |
$this->addTargetDir($this->_baseDir);
|
53 |
}
|
54 |
|
app/code/community/Ultimate/ModuleCreator/Model/Relation.php
CHANGED
@@ -81,7 +81,7 @@ class Ultimate_ModuleCreator_Model_Relation extends Ultimate_ModuleCreator_Model
|
|
81 |
/**
|
82 |
* get relation entities
|
83 |
* @access public
|
84 |
-
* @return
|
85 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
86 |
*/
|
87 |
public function getEntities(){
|
81 |
/**
|
82 |
* get relation entities
|
83 |
* @access public
|
84 |
+
* @return Ultimate_ModuleCreator_Model_Entity[]
|
85 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
86 |
*/
|
87 |
public function getEntities(){
|
app/code/community/Ultimate/ModuleCreator/Model/Source/Attribute/Type.php
CHANGED
@@ -37,8 +37,10 @@ class Ultimate_ModuleCreator_Model_Source_Attribute_Type {
|
|
37 |
*/
|
38 |
public function toArray($withEmpty = false) {
|
39 |
if (is_null($this->_options)){
|
40 |
-
$
|
41 |
-
$
|
|
|
|
|
42 |
foreach ($groups as $key=>$group) {
|
43 |
$this->_options[$key] = array('label'=>(string)$group->label, 'value'=>array());
|
44 |
}
|
37 |
*/
|
38 |
public function toArray($withEmpty = false) {
|
39 |
if (is_null($this->_options)){
|
40 |
+
/** @var Ultimate_ModuleCreator_Helper_Data $helper */
|
41 |
+
$helper = Mage::helper('modulecreator');
|
42 |
+
$types = $helper->getAttributeTypes();
|
43 |
+
$groups = $helper->getAttributeTypeGroups();
|
44 |
foreach ($groups as $key=>$group) {
|
45 |
$this->_options[$key] = array('label'=>(string)$group->label, 'value'=>array());
|
46 |
}
|
app/code/community/Ultimate/ModuleCreator/Model/Source/Attribute/Value/Source.php
CHANGED
@@ -38,7 +38,9 @@ class Ultimate_ModuleCreator_Model_Source_Attribute_Value_Source {
|
|
38 |
*/
|
39 |
public function toArray($withEmpty = false) {
|
40 |
if (is_null($this->_options)) {
|
41 |
-
|
|
|
|
|
42 |
$this->_options = array();
|
43 |
foreach ($options as $key=>$option){
|
44 |
$this->_options[$key] = $option->label;
|
38 |
*/
|
39 |
public function toArray($withEmpty = false) {
|
40 |
if (is_null($this->_options)) {
|
41 |
+
/** @var Ultimate_ModuleCreator_Helper_Data $helper */
|
42 |
+
$helper = Mage::helper('modulecreator');
|
43 |
+
$options = $helper->getDropdownSubtypes(true);
|
44 |
$this->_options = array();
|
45 |
foreach ($options as $key=>$option){
|
46 |
$this->_options[$key] = $option->label;
|
app/code/community/Ultimate/ModuleCreator/Model/Source/Codepool.php
CHANGED
@@ -47,7 +47,7 @@ class Ultimate_ModuleCreator_Model_Source_Codepool {
|
|
47 |
*/
|
48 |
public function getAllOptions($withEmpty = true){
|
49 |
$options = array();
|
50 |
-
foreach ($this->toOptionArray($withEmpty) as $
|
51 |
$options[$option['value']] = $option['label'];
|
52 |
}
|
53 |
return $options;
|
47 |
*/
|
48 |
public function getAllOptions($withEmpty = true){
|
49 |
$options = array();
|
50 |
+
foreach ($this->toOptionArray($withEmpty) as $option){
|
51 |
$options[$option['value']] = $option['label'];
|
52 |
}
|
53 |
return $options;
|
app/code/community/Ultimate/ModuleCreator/Model/Source/Entity/Layout.php
CHANGED
@@ -37,7 +37,9 @@ class Ultimate_ModuleCreator_Model_Source_Entity_Layout {
|
|
37 |
*/
|
38 |
public function toArray($withEmpty = false){
|
39 |
if (is_null($this->_options)){
|
40 |
-
$
|
|
|
|
|
41 |
foreach ($_options as $option){
|
42 |
$this->_options[$option['value']] = $option['label'];
|
43 |
}
|
37 |
*/
|
38 |
public function toArray($withEmpty = false){
|
39 |
if (is_null($this->_options)){
|
40 |
+
/** @var Mage_Page_Model_Source_Layout $layoutModel */
|
41 |
+
$layoutModel = Mage::getSingleton('page/source_layout');
|
42 |
+
$_options = $layoutModel->toOptionArray();
|
43 |
foreach ($_options as $option){
|
44 |
$this->_options[$option['value']] = $option['label'];
|
45 |
}
|
app/code/community/Ultimate/ModuleCreator/Model/Source/Entity/Type.php
CHANGED
@@ -37,7 +37,9 @@ class Ultimate_ModuleCreator_Model_Source_Entity_Type {
|
|
37 |
*/
|
38 |
public function toArray($withEmpty = false) {
|
39 |
if (is_null($this->_options)){
|
40 |
-
|
|
|
|
|
41 |
foreach ($types as $type=>$values){
|
42 |
$this->_options[$type] = Mage::helper('modulecreator')->__((string)$values->label);
|
43 |
}
|
37 |
*/
|
38 |
public function toArray($withEmpty = false) {
|
39 |
if (is_null($this->_options)){
|
40 |
+
/** @var Ultimate_ModuleCreator_Helper_Data $helper */
|
41 |
+
$helper = Mage::helper('modulecreator');
|
42 |
+
$types = $helper->getEntityTypes();
|
43 |
foreach ($types as $type=>$values){
|
44 |
$this->_options[$type] = Mage::helper('modulecreator')->__((string)$values->label);
|
45 |
}
|
app/code/community/Ultimate/ModuleCreator/Model/Source/Install.php
CHANGED
@@ -56,7 +56,7 @@ class Ultimate_ModuleCreator_Model_Source_Install {
|
|
56 |
*/
|
57 |
public function getAllOptions($withEmpty = true) {
|
58 |
$options = array();
|
59 |
-
foreach ($this->toOptionArray($withEmpty) as $
|
60 |
$options[$option['value']] = $option['label'];
|
61 |
}
|
62 |
return $options;
|
56 |
*/
|
57 |
public function getAllOptions($withEmpty = true) {
|
58 |
$options = array();
|
59 |
+
foreach ($this->toOptionArray($withEmpty) as $option) {
|
60 |
$options[$option['value']] = $option['label'];
|
61 |
}
|
62 |
return $options;
|
app/code/community/Ultimate/ModuleCreator/Model/Writer.php
CHANGED
@@ -21,7 +21,8 @@
|
|
21 |
* @package Ultimate_ModuleCreator
|
22 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
23 |
*/
|
24 |
-
class Ultimate_ModuleCreator_Model_Writer
|
|
|
25 |
/**
|
26 |
* prefix for path
|
27 |
* @var string
|
21 |
* @package Ultimate_ModuleCreator
|
22 |
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
23 |
*/
|
24 |
+
class Ultimate_ModuleCreator_Model_Writer
|
25 |
+
extends Mage_Connect_Package_Writer {
|
26 |
/**
|
27 |
* prefix for path
|
28 |
* @var string
|
app/code/community/Ultimate/ModuleCreator/controllers/Adminhtml/ModulecreatorController.php
CHANGED
@@ -91,12 +91,14 @@ class Ultimate_ModuleCreator_Adminhtml_ModulecreatorController
|
|
91 |
$packageName = base64_decode(strtr($this->getRequest()->getParam('id'), '-_,', '+/='));
|
92 |
if ($packageName) {
|
93 |
try {
|
94 |
-
|
|
|
|
|
95 |
$packageName = basename($packageName);
|
96 |
$xmlFile = $path . $packageName . '.xml';
|
97 |
if (file_exists($xmlFile) && is_readable($xmlFile)) {
|
98 |
$xml = simplexml_load_file($xmlFile, 'Varien_Simplexml_Element');
|
99 |
-
$module =
|
100 |
Mage::register('current_module', $module);
|
101 |
return $module;
|
102 |
}
|
@@ -118,6 +120,7 @@ class Ultimate_ModuleCreator_Adminhtml_ModulecreatorController
|
|
118 |
*/
|
119 |
protected function _initModuleFromData($data) {
|
120 |
$entitiesByIndex = array();
|
|
|
121 |
$module = Mage::getModel('modulecreator/module');
|
122 |
if (isset($data['settings'])) {
|
123 |
$module->addData($data['settings']);
|
@@ -126,6 +129,7 @@ class Ultimate_ModuleCreator_Adminhtml_ModulecreatorController
|
|
126 |
$entities = $data['entity'];
|
127 |
if (is_array($entities)) {
|
128 |
foreach ($entities as $key=>$entityData) {
|
|
|
129 |
$entity = Mage::getModel('modulecreator/entity');
|
130 |
$entity->addData($entityData);
|
131 |
$entity->setIndex($key);
|
@@ -138,6 +142,7 @@ class Ultimate_ModuleCreator_Adminhtml_ModulecreatorController
|
|
138 |
}
|
139 |
}
|
140 |
foreach ($entityData['attributes'] as $aKey=>$attributeData) {
|
|
|
141 |
$attribute = Mage::getModel('modulecreator/attribute');
|
142 |
$attribute->addData($attributeData);
|
143 |
$attribute->setIndex($aKey);
|
@@ -152,6 +157,7 @@ class Ultimate_ModuleCreator_Adminhtml_ModulecreatorController
|
|
152 |
foreach($data['relation'] as $index=>$values){
|
153 |
foreach ($values as $jndex=>$type){
|
154 |
if (isset($entitiesByIndex[$index]) && isset($entitiesByIndex[$jndex])) {
|
|
|
155 |
$relation = Mage::getModel('modulecreator/relation');
|
156 |
$relation->setEntities($entitiesByIndex[$index], $entitiesByIndex[$jndex], $type);
|
157 |
$module->addRelation($relation);
|
@@ -224,7 +230,9 @@ class Ultimate_ModuleCreator_Adminhtml_ModulecreatorController
|
|
224 |
public function downloadAction(){
|
225 |
$what = $this->getRequest()->getParam('type');
|
226 |
$packageName = base64_decode(strtr($this->getRequest()->getParam('id'), '-_,', '+/='));
|
227 |
-
|
|
|
|
|
228 |
$namePrefix = '';
|
229 |
switch ($what) {
|
230 |
case 'config' :
|
91 |
$packageName = base64_decode(strtr($this->getRequest()->getParam('id'), '-_,', '+/='));
|
92 |
if ($packageName) {
|
93 |
try {
|
94 |
+
/** @var Ultimate_ModuleCreator_Helper_Data $helper */
|
95 |
+
$helper = Mage::helper('modulecreator');
|
96 |
+
$path = $helper->getLocalPackagesPath();
|
97 |
$packageName = basename($packageName);
|
98 |
$xmlFile = $path . $packageName . '.xml';
|
99 |
if (file_exists($xmlFile) && is_readable($xmlFile)) {
|
100 |
$xml = simplexml_load_file($xmlFile, 'Varien_Simplexml_Element');
|
101 |
+
$module = $helper->loadModule($xml);
|
102 |
Mage::register('current_module', $module);
|
103 |
return $module;
|
104 |
}
|
120 |
*/
|
121 |
protected function _initModuleFromData($data) {
|
122 |
$entitiesByIndex = array();
|
123 |
+
/** @var Ultimate_ModuleCreator_Model_Module $module */
|
124 |
$module = Mage::getModel('modulecreator/module');
|
125 |
if (isset($data['settings'])) {
|
126 |
$module->addData($data['settings']);
|
129 |
$entities = $data['entity'];
|
130 |
if (is_array($entities)) {
|
131 |
foreach ($entities as $key=>$entityData) {
|
132 |
+
/** @var Ultimate_ModuleCreator_Model_Entity $entity */
|
133 |
$entity = Mage::getModel('modulecreator/entity');
|
134 |
$entity->addData($entityData);
|
135 |
$entity->setIndex($key);
|
142 |
}
|
143 |
}
|
144 |
foreach ($entityData['attributes'] as $aKey=>$attributeData) {
|
145 |
+
/** @var Ultimate_ModuleCreator_Model_Attribute $attribute */
|
146 |
$attribute = Mage::getModel('modulecreator/attribute');
|
147 |
$attribute->addData($attributeData);
|
148 |
$attribute->setIndex($aKey);
|
157 |
foreach($data['relation'] as $index=>$values){
|
158 |
foreach ($values as $jndex=>$type){
|
159 |
if (isset($entitiesByIndex[$index]) && isset($entitiesByIndex[$jndex])) {
|
160 |
+
/** @var Ultimate_ModuleCreator_Model_Relation $relation */
|
161 |
$relation = Mage::getModel('modulecreator/relation');
|
162 |
$relation->setEntities($entitiesByIndex[$index], $entitiesByIndex[$jndex], $type);
|
163 |
$module->addRelation($relation);
|
230 |
public function downloadAction(){
|
231 |
$what = $this->getRequest()->getParam('type');
|
232 |
$packageName = base64_decode(strtr($this->getRequest()->getParam('id'), '-_,', '+/='));
|
233 |
+
/** @var Ultimate_ModuleCreator_Helper_Data $helper */
|
234 |
+
$helper = Mage::helper('modulecreator');
|
235 |
+
$path = $helper->getLocalModulesDir();
|
236 |
$namePrefix = '';
|
237 |
switch ($what) {
|
238 |
case 'config' :
|
app/code/community/Ultimate/ModuleCreator/etc/config.xml
CHANGED
@@ -19,7 +19,7 @@
|
|
19 |
<config>
|
20 |
<modules>
|
21 |
<Ultimate_ModuleCreator>
|
22 |
-
<version>1.9.
|
23 |
<build></build>
|
24 |
</Ultimate_ModuleCreator>
|
25 |
</modules>
|
19 |
<config>
|
20 |
<modules>
|
21 |
<Ultimate_ModuleCreator>
|
22 |
+
<version>1.9.4.1</version>
|
23 |
<build></build>
|
24 |
</Ultimate_ModuleCreator>
|
25 |
</modules>
|
app/code/community/Ultimate/ModuleCreator/etc/source/app/code/Block/Adminhtml/Entity/Edit/Tab/Attributes/021_default_values
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
$this->_setFieldset($attributes, $fieldset, array());
|
2 |
+
$formValues = Mage::registry('current_{{entity}}')->getData();
|
3 |
+
if (!Mage::registry('current_{{entity}}')->getId()) {
|
4 |
+
foreach ($attributes as $attribute) {
|
5 |
+
if (!isset($formValues[$attribute->getAttributeCode()])) {
|
6 |
+
$formValues[$attribute->getAttributeCode()] = $attribute->getDefaultValue();
|
7 |
+
}
|
8 |
+
}
|
9 |
+
}
|
app/code/community/Ultimate/ModuleCreator/etc/source/app/code/Block/Adminhtml/Entity/Edit/Tab/Attributes/022_default_values_tree
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
//do not set default value for path
|
2 |
+
unset($formValues['path']);
|
app/code/community/Ultimate/ModuleCreator/etc/source/app/code/Block/Adminhtml/Entity/Edit/Tab/Attributes/023_layout
CHANGED
@@ -1,12 +1,3 @@
|
|
1 |
-
$this->_setFieldset($attributes, $fieldset, array());
|
2 |
-
$formValues = Mage::registry('current_{{entity}}')->getData();
|
3 |
-
if (!Mage::registry('current_{{entity}}')->getId()) {
|
4 |
-
foreach ($attributes as $attribute) {
|
5 |
-
if (!isset($formValues[$attribute->getAttributeCode()])) {
|
6 |
-
$formValues[$attribute->getAttributeCode()] = $attribute->getDefaultValue();
|
7 |
-
}
|
8 |
-
}
|
9 |
-
}
|
10 |
$form->addValues($formValues);
|
11 |
$form->setFieldNameSuffix('{{entity}}');
|
12 |
$this->setForm($form);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
$form->addValues($formValues);
|
2 |
$form->setFieldNameSuffix('{{entity}}');
|
3 |
$this->setForm($form);
|
app/code/community/Ultimate/ModuleCreator/etc/source/app/code/Controller/Router/020_entity
CHANGED
@@ -1,6 +1,8 @@
|
|
1 |
$check['{{entity}}'] = new Varien_Object(array(
|
2 |
'prefix' => Mage::getStoreConfig('{{namespace}}_{{module}}/{{entity}}/url_prefix'),
|
3 |
'suffix' => Mage::getStoreConfig('{{namespace}}_{{module}}/{{entity}}/url_suffix'),
|
|
|
|
|
4 |
'model' =>'{{namespace}}_{{module}}/{{entity}}',
|
5 |
'controller' => '{{entity}}',
|
6 |
'action' => 'view',
|
1 |
$check['{{entity}}'] = new Varien_Object(array(
|
2 |
'prefix' => Mage::getStoreConfig('{{namespace}}_{{module}}/{{entity}}/url_prefix'),
|
3 |
'suffix' => Mage::getStoreConfig('{{namespace}}_{{module}}/{{entity}}/url_suffix'),
|
4 |
+
'list_key' => Mage::getStoreConfig('{{namespace}}_{{module}}/{{entity}}/url_rewrite_list'),
|
5 |
+
'list_action' => 'index',
|
6 |
'model' =>'{{namespace}}_{{module}}/{{entity}}',
|
7 |
'controller' => '{{entity}}',
|
8 |
'action' => 'view',
|
app/code/community/Ultimate/ModuleCreator/etc/source/app/code/Controller/Router/030_footer
CHANGED
@@ -1,4 +1,16 @@
|
|
1 |
foreach ($check as $key=>$settings) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
if ($settings['prefix']){
|
3 |
$parts = explode('/', $urlKey);
|
4 |
if ($parts[0] != $settings['prefix'] || count($parts) != 2){
|
1 |
foreach ($check as $key=>$settings) {
|
2 |
+
if ($settings->getListKey()) {
|
3 |
+
if ($urlKey == $settings->getListKey()) {
|
4 |
+
$request->setModuleName('{{frontKey}}')
|
5 |
+
->setControllerName($settings->getController())
|
6 |
+
->setActionName($settings->getListAction());
|
7 |
+
$request->setAlias(
|
8 |
+
Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS,
|
9 |
+
$urlKey
|
10 |
+
);
|
11 |
+
return true;
|
12 |
+
}
|
13 |
+
}
|
14 |
if ($settings['prefix']){
|
15 |
$parts = explode('/', $urlKey);
|
16 |
if ($parts[0] != $settings['prefix'] || count($parts) != 2){
|
app/code/community/Ultimate/ModuleCreator/etc/source/app/code/Helper/Entity/020_create_list
CHANGED
@@ -5,5 +5,8 @@
|
|
5 |
* {{qwertyuiop}}
|
6 |
*/
|
7 |
public function get{{Entities}}Url(){
|
|
|
|
|
|
|
8 |
return Mage::getUrl('{{namespace}}_{{module}}/{{entity}}/index');
|
9 |
}
|
5 |
* {{qwertyuiop}}
|
6 |
*/
|
7 |
public function get{{Entities}}Url(){
|
8 |
+
if ($listKey = Mage::getStoreConfig('{{namespace}}_{{module}}/{{entity}}/url_rewrite_list')) {
|
9 |
+
return Mage::getUrl('', array('_direct'=>$listKey));
|
10 |
+
}
|
11 |
return Mage::getUrl('{{namespace}}_{{module}}/{{entity}}/index');
|
12 |
}
|
app/code/community/Ultimate/ModuleCreator/etc/source/app/locale/130_url_rewrite
CHANGED
@@ -7,3 +7,5 @@
|
|
7 |
"Leave empty for no prefix","Leave empty for no prefix"
|
8 |
"What goes after the dot. Leave empty for no suffix.","What goes after the dot. Leave empty for no suffix."
|
9 |
"URL suffix","URL suffix"
|
|
|
|
7 |
"Leave empty for no prefix","Leave empty for no prefix"
|
8 |
"What goes after the dot. Leave empty for no suffix.","What goes after the dot. Leave empty for no suffix."
|
9 |
"URL suffix","URL suffix"
|
10 |
+
"URL key for list page","URL key for list page"
|
11 |
+
"Leave empty to use default URL module/controller/action","Leave empty to use default URL module/controller/action"
|
app/code/community/Ultimate/ModuleCreator/etc/umc.xml
CHANGED
@@ -356,6 +356,15 @@
|
|
356 |
<tooltip><![CDATA[If you set this to 'Yes', a new field will be added to your entity called 'url_key'.<br />This will allow you to use SEF url's for your entity view pages. Example: http://mysite.com/some-key-here.html]]></tooltip>
|
357 |
<additional><![CDATA[If is set to 'No' your entity view page will be accessed in the default way http://mysite.com/module/controller/action/id/7<br /><span class="label label-warning">warning</span>This field is available only if 'Create entity view page' is set to 'Yes'.]]></additional>
|
358 |
</url_rewrite>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
359 |
<url_prefix translate="label tooltip" module="modulecreator">
|
360 |
<label>URL prefix</label>
|
361 |
<type>text</type>
|
@@ -758,6 +767,7 @@
|
|
758 |
<view_template />
|
759 |
<add_seo />
|
760 |
<url_rewrite />
|
|
|
761 |
<url_prefix />
|
762 |
<url_suffix />
|
763 |
<rss />
|
@@ -1020,6 +1030,27 @@
|
|
1020 |
<f>YmFzZTY0X2RlY29kZQ==</f>
|
1021 |
</system>
|
1022 |
<release_notes>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1023 |
<v1_9_4_0>
|
1024 |
<version>1.9.4.0</version>
|
1025 |
<date>2014-08-19</date>
|
356 |
<tooltip><![CDATA[If you set this to 'Yes', a new field will be added to your entity called 'url_key'.<br />This will allow you to use SEF url's for your entity view pages. Example: http://mysite.com/some-key-here.html]]></tooltip>
|
357 |
<additional><![CDATA[If is set to 'No' your entity view page will be accessed in the default way http://mysite.com/module/controller/action/id/7<br /><span class="label label-warning">warning</span>This field is available only if 'Create entity view page' is set to 'Yes'.]]></additional>
|
358 |
</url_rewrite>
|
359 |
+
<url_rewrite_list translate="label tooltip" module="modulecreator">
|
360 |
+
<label>List page url rewrite</label>
|
361 |
+
<type>text</type>
|
362 |
+
<required>0</required>
|
363 |
+
<position>71</position>
|
364 |
+
<class>use-frontend use-create-list use-url-rewrite</class>
|
365 |
+
<system>0</system>
|
366 |
+
<tooltip><![CDATA[Fill in here the url for the list page. Leave empty to use 'module/entity/index'. It can later be changed from the config section.]]></tooltip>
|
367 |
+
</url_rewrite_list>
|
368 |
<url_prefix translate="label tooltip" module="modulecreator">
|
369 |
<label>URL prefix</label>
|
370 |
<type>text</type>
|
767 |
<view_template />
|
768 |
<add_seo />
|
769 |
<url_rewrite />
|
770 |
+
<url_rewrite_list />
|
771 |
<url_prefix />
|
772 |
<url_suffix />
|
773 |
<rss />
|
1030 |
<f>YmFzZTY0X2RlY29kZQ==</f>
|
1031 |
</system>
|
1032 |
<release_notes>
|
1033 |
+
<v1_9_4_1>
|
1034 |
+
<version>1.9.4.1</version>
|
1035 |
+
<date>TBD</date>
|
1036 |
+
<data>
|
1037 |
+
<tree_eav translate="label type comment">
|
1038 |
+
<label>EAV tree entities admin tree not refreshing on save</label>
|
1039 |
+
<type>Bug Fix</type>
|
1040 |
+
<comment>The left side tree on the admin add/edit form for EAV tree entities does not refresh when a new entity instance is added.</comment>
|
1041 |
+
</tree_eav>
|
1042 |
+
<list_url translate="label type comment">
|
1043 |
+
<label>Support for url rewrites for entity list pages</label>
|
1044 |
+
<type>Feature</type>
|
1045 |
+
<comment>You can now set a SEF url for the entity list page on frontend instead of 'module/controller/action'. The value can be changed later.</comment>
|
1046 |
+
</list_url>
|
1047 |
+
<cleanup translate="label type comment">
|
1048 |
+
<label>Cleaned a bit the code</label>
|
1049 |
+
<type>Improvement</type>
|
1050 |
+
<comment>Removed some unused variables, added some type hints. I hope I didn't break anything.</comment>
|
1051 |
+
</cleanup>
|
1052 |
+
</data>
|
1053 |
+
</v1_9_4_1>
|
1054 |
<v1_9_4_0>
|
1055 |
<version>1.9.4.0</version>
|
1056 |
<date>2014-08-19</date>
|
app/code/community/Ultimate/ModuleCreator/etc/umc_source.xml
CHANGED
@@ -1309,6 +1309,17 @@
|
|
1309 |
</depend>
|
1310 |
<sort_order>20</sort_order>
|
1311 |
</tree>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1312 |
<layout>
|
1313 |
<name>023_layout</name>
|
1314 |
<sort_order>23</sort_order>
|
1309 |
</depend>
|
1310 |
<sort_order>20</sort_order>
|
1311 |
</tree>
|
1312 |
+
<default_values>
|
1313 |
+
<name>021_default_values</name>
|
1314 |
+
<sort_order>21</sort_order>
|
1315 |
+
</default_values>
|
1316 |
+
<default_values_tree>
|
1317 |
+
<name>022_default_values_tree</name>
|
1318 |
+
<sort_order>22</sort_order>
|
1319 |
+
<depend>
|
1320 |
+
<is_tree />
|
1321 |
+
</depend>
|
1322 |
+
</default_values_tree>
|
1323 |
<layout>
|
1324 |
<name>023_layout</name>
|
1325 |
<sort_order>23</sort_order>
|
app/design/adminhtml/default/default/layout/ultimate_modulecreator.xml
CHANGED
@@ -17,8 +17,8 @@
|
|
17 |
*/
|
18 |
/**
|
19 |
* @category Ultimate
|
20 |
-
* @package
|
21 |
-
* @author
|
22 |
*/
|
23 |
-->
|
24 |
<layout>
|
17 |
*/
|
18 |
/**
|
19 |
* @category Ultimate
|
20 |
+
* @package Ultimate_ModuleCreator
|
21 |
+
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
22 |
*/
|
23 |
-->
|
24 |
<layout>
|
app/design/adminhtml/default/default/template/ultimate_modulecreator/edit.phtml
CHANGED
@@ -19,7 +19,7 @@
|
|
19 |
* module edit template
|
20 |
* @category Ultimate
|
21 |
* @package Ultimate_ModuleCreator
|
22 |
-
* @author Marius Strajeru <
|
23 |
*/
|
24 |
?>
|
25 |
<script type="text/javascript">
|
19 |
* module edit template
|
20 |
* @category Ultimate
|
21 |
* @package Ultimate_ModuleCreator
|
22 |
+
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
23 |
*/
|
24 |
?>
|
25 |
<script type="text/javascript">
|
app/design/adminhtml/default/default/template/ultimate_modulecreator/edit/tab/entities.phtml
CHANGED
@@ -19,7 +19,7 @@
|
|
19 |
* entities tab template
|
20 |
* @category Ultimate
|
21 |
* @package Ultimate_ModuleCreator
|
22 |
-
* @author Marius Strajeru <
|
23 |
*/
|
24 |
?>
|
25 |
<?php $_entities = $this->getEntities();?>
|
19 |
* entities tab template
|
20 |
* @category Ultimate
|
21 |
* @package Ultimate_ModuleCreator
|
22 |
+
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
23 |
*/
|
24 |
?>
|
25 |
<?php $_entities = $this->getEntities();?>
|
app/design/adminhtml/default/default/template/ultimate_modulecreator/edit/tab/entities/entity.phtml
CHANGED
@@ -18,9 +18,10 @@
|
|
18 |
* entity template
|
19 |
* @category Ultimate
|
20 |
* @package Ultimate_ModuleCreator
|
21 |
-
* @author Marius Strajeru <
|
22 |
*/
|
23 |
?>
|
|
|
24 |
<?php $_entity = $this->getEntity();?>
|
25 |
<div class="entry-edit modulecreator-entity" id="entity_<?php echo $this->getIncrement();?>">
|
26 |
<div class="entry-edit-head">
|
18 |
* entity template
|
19 |
* @category Ultimate
|
20 |
* @package Ultimate_ModuleCreator
|
21 |
+
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
22 |
*/
|
23 |
?>
|
24 |
+
<?php /** @var Ultimate_ModuleCreator_Model_Entity $_entity */?>
|
25 |
<?php $_entity = $this->getEntity();?>
|
26 |
<div class="entry-edit modulecreator-entity" id="entity_<?php echo $this->getIncrement();?>">
|
27 |
<div class="entry-edit-head">
|
app/design/adminhtml/default/default/template/ultimate_modulecreator/edit/tab/entities/entity/attribute.phtml
CHANGED
@@ -26,6 +26,7 @@
|
|
26 |
<?php $_attribute = $this->getAttributeInstance();?>
|
27 |
<div class="entry-edit modulecreator-attribute" id="attribute_<?php echo $_id?>">
|
28 |
<?php echo $this->getFormHtml()?>
|
|
|
29 |
<?php if ($_attribute->getIsName()) : ?>
|
30 |
<script type="text/javascript">
|
31 |
document.observe("dom:loaded", function() {
|
26 |
<?php $_attribute = $this->getAttributeInstance();?>
|
27 |
<div class="entry-edit modulecreator-attribute" id="attribute_<?php echo $_id?>">
|
28 |
<?php echo $this->getFormHtml()?>
|
29 |
+
<?php /** @var Ultimate_ModuleCreator_Model_Attribute $_attribute */?>
|
30 |
<?php if ($_attribute->getIsName()) : ?>
|
31 |
<script type="text/javascript">
|
32 |
document.observe("dom:loaded", function() {
|
app/design/adminhtml/default/default/template/ultimate_modulecreator/edit/tab/help.phtml
CHANGED
@@ -19,7 +19,7 @@
|
|
19 |
* help template
|
20 |
* @category Ultimate
|
21 |
* @package Ultimate_ModuleCreator
|
22 |
-
* @author Marius Strajeru <
|
23 |
*/
|
24 |
?>
|
25 |
<div id="modulecreator_help_container">
|
19 |
* help template
|
20 |
* @category Ultimate
|
21 |
* @package Ultimate_ModuleCreator
|
22 |
+
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
23 |
*/
|
24 |
?>
|
25 |
<div id="modulecreator_help_container">
|
app/design/adminhtml/default/default/template/ultimate_modulecreator/edit/tab/help/fieldset.phtml
CHANGED
@@ -18,7 +18,7 @@
|
|
18 |
* help fieldset
|
19 |
* @category Ultimate
|
20 |
* @package Ultimate_ModuleCreator
|
21 |
-
* @author Marius Strajeru <
|
22 |
*/
|
23 |
?>
|
24 |
<?php $fieldsets = $this->getFieldsets();?>
|
18 |
* help fieldset
|
19 |
* @category Ultimate
|
20 |
* @package Ultimate_ModuleCreator
|
21 |
+
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
22 |
*/
|
23 |
?>
|
24 |
<?php $fieldsets = $this->getFieldsets();?>
|
app/design/adminhtml/default/default/template/ultimate_modulecreator/edit/tab/relation.phtml
CHANGED
@@ -19,7 +19,7 @@
|
|
19 |
* relation tab template
|
20 |
* @category Ultimate
|
21 |
* @package Ultimate_ModuleCreator
|
22 |
-
* @author Marius Strajeru <
|
23 |
*/
|
24 |
?>
|
25 |
<div id="modulecreator_relations_container" class="box custom-options"></div>
|
19 |
* relation tab template
|
20 |
* @category Ultimate
|
21 |
* @package Ultimate_ModuleCreator
|
22 |
+
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
23 |
*/
|
24 |
?>
|
25 |
<div id="modulecreator_relations_container" class="box custom-options"></div>
|
app/design/adminhtml/default/default/template/ultimate_modulecreator/tooltip.phtml
CHANGED
@@ -17,8 +17,8 @@
|
|
17 |
/**
|
18 |
* tooltip template
|
19 |
* @category Ultimate
|
20 |
-
* @package
|
21 |
-
* @author
|
22 |
*/
|
23 |
?>
|
24 |
<div class="f-right ">
|
17 |
/**
|
18 |
* tooltip template
|
19 |
* @category Ultimate
|
20 |
+
* @package Ultimate_ModuleCreator
|
21 |
+
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
22 |
*/
|
23 |
?>
|
24 |
<div class="f-right ">
|
app/locale/en_US/Ultimate_ModuleCreator.csv
CHANGED
@@ -151,6 +151,7 @@ Categories,Categories
|
|
151 |
"Changed identation from TAB to 4x space","Changed identation from TAB to 4x space"
|
152 |
"Changed the class aliases from `module` to `namespace_module`. For example a model will be instantiated using `Mage::getModel('namespace_module/some_model')` to avoid extension conflicts.","Changed the class aliases from `module` to `namespace_module`. For example a model will be instantiated using `Mage::getModel('namespace_module/some_model')` to avoid extension conflicts."
|
153 |
"Changed the way sibling entities relations are saved","Changed the way sibling entities relations are saved"
|
|
|
154 |
"Code pool","Code pool"
|
155 |
"Collection resource model for entities that are related many to many","Collection resource model for entities that are related many to many"
|
156 |
"Collection resource model for entity category relation","Collection resource model for entity category relation"
|
@@ -216,6 +217,7 @@ EAV,EAV
|
|
216 |
"EAV attribute resource model.","EAV attribute resource model."
|
217 |
"EAV entity admin controller (not tree).","EAV entity admin controller (not tree)."
|
218 |
"EAV entity admin controller EAV Tree.","EAV entity admin controller EAV Tree."
|
|
|
219 |
"Each entity must have a label used for buttons, links, messages.<br />This is the singular form of the label. For example in a blog module, the post entity will have the label in singular form 'Post'","Each entity must have a label used for buttons, links, messages.<br />This is the singular form of the label. For example in a blog module, the post entity will have the label in singular form 'Post'"
|
220 |
"Each entity must have an attribute to behave as ""Name"". This attribute will be used to identify different entities among themselves. It will also be used in dropdowns with entities. This option is available only for text, number and decimal attributes.","Each entity must have an attribute to behave as ""Name"". This attribute will be used to identify different entities among themselves. It will also be used in dropdowns with entities. This option is available only for text, number and decimal attributes."
|
221 |
"Each field has a tooltip about what it means, but there are all listed here.","Each field has a tooltip about what it means, but there are all listed here."
|
@@ -314,6 +316,7 @@ File,File
|
|
314 |
"File save backend model","File save backend model"
|
315 |
"File used for translation with all the texts in the module","File used for translation with all the texts in the module"
|
316 |
"Fill in a default value for the attribute. Leave empty for no value. For dropdown and multiselect attributes the value, must be a valid value. not valid ones will be removed. For the multiselect attributes add one default value on each line. For Yes/No attribtues enter 1 for Yes, 0 for No. For country attributes fill in the country ISO2 code. You cannot set a default value for dropdown and multiselect attributes that use a source model and on image and file attributes.","Fill in a default value for the attribute. Leave empty for no value. For dropdown and multiselect attributes the value, must be a valid value. not valid ones will be removed. For the multiselect attributes add one default value on each line. For Yes/No attribtues enter 1 for Yes, 0 for No. For country attributes fill in the country ISO2 code. You cannot set a default value for dropdown and multiselect attributes that use a source model and on image and file attributes."
|
|
|
317 |
"Fill in the dropdown attribute code.","Fill in the dropdown attribute code."
|
318 |
Fix,Fix
|
319 |
"Fix url rewrite save","Fix url rewrite save"
|
@@ -557,6 +560,7 @@ License,License
|
|
557 |
"Link to related entities in grids and add/edit forms","Link to related entities in grids and add/edit forms"
|
558 |
"Links to entities related to categories had a wrong format in the category view page.","Links to entities related to categories had a wrong format in the category view page."
|
559 |
"List page template","List page template"
|
|
|
560 |
"MOdel used for EAV attributes","MOdel used for EAV attributes"
|
561 |
"Made extension ""extensible""","Made extension ""extensible"""
|
562 |
"Magento offers a REST API for managing products, categories and other entities.<br />If this is set to 'Yes', then your entity will also be available for managing through the REST API.<br />It generates the classes and xml files needed.","Magento offers a REST API for managing products, categories and other entities.<br />If this is set to 'Yes', then your entity will also be available for managing through the REST API.<br />It generates the classes and xml files needed."
|
@@ -657,6 +661,7 @@ Relation,Relation
|
|
657 |
"Remove entity","Remove entity"
|
658 |
"Remove field / attribute","Remove field / attribute"
|
659 |
"Removed frontend package and theme fields","Removed frontend package and theme fields"
|
|
|
660 |
"Renderer used for EAV attribute form","Renderer used for EAV attribute form"
|
661 |
"Replaced 'addFilter' with 'addFieldToFilter'","Replaced 'addFilter' with 'addFieldToFilter'"
|
662 |
Required,Required
|
@@ -698,6 +703,7 @@ Save,Save
|
|
698 |
"Source file refactoring","Source file refactoring"
|
699 |
"Store View","Store View"
|
700 |
"Stores tab for editing comments.","Stores tab for editing comments."
|
|
|
701 |
"Supported field / attribute types","Supported field / attribute types"
|
702 |
"System -> Configuration tab name","System -> Configuration tab name"
|
703 |
"System -> Configuration tab position","System -> Configuration tab position"
|
@@ -757,6 +763,7 @@ Thanks,Thanks
|
|
757 |
"The generated files could not pe written to disk because of the changes in Varien_Io_File in this version.","The generated files could not pe written to disk because of the changes in Varien_Io_File in this version."
|
758 |
"The guest handler model for the entity REST API","The guest handler model for the entity REST API"
|
759 |
"The image attributes/fields were displayed wrong on frontend for EAV entities.","The image attributes/fields were displayed wrong on frontend for EAV entities."
|
|
|
760 |
"The main handler model for the entity REST API","The main handler model for the entity REST API"
|
761 |
"The main model for the entity REST API","The main model for the entity REST API"
|
762 |
"The module configuration file","The module configuration file"
|
@@ -897,6 +904,7 @@ Yes,Yes
|
|
897 |
"You are editing the module: %s","You are editing the module: %s"
|
898 |
"You can choose to allow customers to write comments on your entities.","You can choose to allow customers to write comments on your entities."
|
899 |
"You can not generate the files needed for the REST API of you entities.","You can not generate the files needed for the REST API of you entities."
|
|
|
900 |
"You can set the configuration tab name and position when creating a module.","You can set the configuration tab name and position when creating a module."
|
901 |
"You can set the version of your generated module.","You can set the version of your generated module."
|
902 |
"You cannot use the front key %s. It is used by the module %s","You cannot use the front key %s. It is used by the module %s"
|
151 |
"Changed identation from TAB to 4x space","Changed identation from TAB to 4x space"
|
152 |
"Changed the class aliases from `module` to `namespace_module`. For example a model will be instantiated using `Mage::getModel('namespace_module/some_model')` to avoid extension conflicts.","Changed the class aliases from `module` to `namespace_module`. For example a model will be instantiated using `Mage::getModel('namespace_module/some_model')` to avoid extension conflicts."
|
153 |
"Changed the way sibling entities relations are saved","Changed the way sibling entities relations are saved"
|
154 |
+
"Cleaned a bit the code","Cleaned a bit the code"
|
155 |
"Code pool","Code pool"
|
156 |
"Collection resource model for entities that are related many to many","Collection resource model for entities that are related many to many"
|
157 |
"Collection resource model for entity category relation","Collection resource model for entity category relation"
|
217 |
"EAV attribute resource model.","EAV attribute resource model."
|
218 |
"EAV entity admin controller (not tree).","EAV entity admin controller (not tree)."
|
219 |
"EAV entity admin controller EAV Tree.","EAV entity admin controller EAV Tree."
|
220 |
+
"EAV tree entities admin tree not refreshing on save","EAV tree entities admin tree not refreshing on save"
|
221 |
"Each entity must have a label used for buttons, links, messages.<br />This is the singular form of the label. For example in a blog module, the post entity will have the label in singular form 'Post'","Each entity must have a label used for buttons, links, messages.<br />This is the singular form of the label. For example in a blog module, the post entity will have the label in singular form 'Post'"
|
222 |
"Each entity must have an attribute to behave as ""Name"". This attribute will be used to identify different entities among themselves. It will also be used in dropdowns with entities. This option is available only for text, number and decimal attributes.","Each entity must have an attribute to behave as ""Name"". This attribute will be used to identify different entities among themselves. It will also be used in dropdowns with entities. This option is available only for text, number and decimal attributes."
|
223 |
"Each field has a tooltip about what it means, but there are all listed here.","Each field has a tooltip about what it means, but there are all listed here."
|
316 |
"File save backend model","File save backend model"
|
317 |
"File used for translation with all the texts in the module","File used for translation with all the texts in the module"
|
318 |
"Fill in a default value for the attribute. Leave empty for no value. For dropdown and multiselect attributes the value, must be a valid value. not valid ones will be removed. For the multiselect attributes add one default value on each line. For Yes/No attribtues enter 1 for Yes, 0 for No. For country attributes fill in the country ISO2 code. You cannot set a default value for dropdown and multiselect attributes that use a source model and on image and file attributes.","Fill in a default value for the attribute. Leave empty for no value. For dropdown and multiselect attributes the value, must be a valid value. not valid ones will be removed. For the multiselect attributes add one default value on each line. For Yes/No attribtues enter 1 for Yes, 0 for No. For country attributes fill in the country ISO2 code. You cannot set a default value for dropdown and multiselect attributes that use a source model and on image and file attributes."
|
319 |
+
"Fill in here the url for the list page. Leave empty to use 'module/entity/index'. It can later be changed from the config section.","Fill in here the url for the list page. Leave empty to use 'module/entity/index'. It can later be changed from the config section."
|
320 |
"Fill in the dropdown attribute code.","Fill in the dropdown attribute code."
|
321 |
Fix,Fix
|
322 |
"Fix url rewrite save","Fix url rewrite save"
|
560 |
"Link to related entities in grids and add/edit forms","Link to related entities in grids and add/edit forms"
|
561 |
"Links to entities related to categories had a wrong format in the category view page.","Links to entities related to categories had a wrong format in the category view page."
|
562 |
"List page template","List page template"
|
563 |
+
"List page url rewrite","List page url rewrite"
|
564 |
"MOdel used for EAV attributes","MOdel used for EAV attributes"
|
565 |
"Made extension ""extensible""","Made extension ""extensible"""
|
566 |
"Magento offers a REST API for managing products, categories and other entities.<br />If this is set to 'Yes', then your entity will also be available for managing through the REST API.<br />It generates the classes and xml files needed.","Magento offers a REST API for managing products, categories and other entities.<br />If this is set to 'Yes', then your entity will also be available for managing through the REST API.<br />It generates the classes and xml files needed."
|
661 |
"Remove entity","Remove entity"
|
662 |
"Remove field / attribute","Remove field / attribute"
|
663 |
"Removed frontend package and theme fields","Removed frontend package and theme fields"
|
664 |
+
"Removed some unused variables, added some type hints. I hope I didn't break anything.","Removed some unused variables, added some type hints. I hope I didn't break anything."
|
665 |
"Renderer used for EAV attribute form","Renderer used for EAV attribute form"
|
666 |
"Replaced 'addFilter' with 'addFieldToFilter'","Replaced 'addFilter' with 'addFieldToFilter'"
|
667 |
Required,Required
|
703 |
"Source file refactoring","Source file refactoring"
|
704 |
"Store View","Store View"
|
705 |
"Stores tab for editing comments.","Stores tab for editing comments."
|
706 |
+
"Support for url rewrites for entity list pages","Support for url rewrites for entity list pages"
|
707 |
"Supported field / attribute types","Supported field / attribute types"
|
708 |
"System -> Configuration tab name","System -> Configuration tab name"
|
709 |
"System -> Configuration tab position","System -> Configuration tab position"
|
763 |
"The generated files could not pe written to disk because of the changes in Varien_Io_File in this version.","The generated files could not pe written to disk because of the changes in Varien_Io_File in this version."
|
764 |
"The guest handler model for the entity REST API","The guest handler model for the entity REST API"
|
765 |
"The image attributes/fields were displayed wrong on frontend for EAV entities.","The image attributes/fields were displayed wrong on frontend for EAV entities."
|
766 |
+
"The left side tree on the admin add/edit form for EAV tree entities does not refresh when a new entity instance is added.","The left side tree on the admin add/edit form for EAV tree entities does not refresh when a new entity instance is added."
|
767 |
"The main handler model for the entity REST API","The main handler model for the entity REST API"
|
768 |
"The main model for the entity REST API","The main model for the entity REST API"
|
769 |
"The module configuration file","The module configuration file"
|
904 |
"You are editing the module: %s","You are editing the module: %s"
|
905 |
"You can choose to allow customers to write comments on your entities.","You can choose to allow customers to write comments on your entities."
|
906 |
"You can not generate the files needed for the REST API of you entities.","You can not generate the files needed for the REST API of you entities."
|
907 |
+
"You can now set a SEF url for the entity list page on frontend instead of 'module/controller/action'. The value can be changed later.","You can now set a SEF url for the entity list page on frontend instead of 'module/controller/action'. The value can be changed later."
|
908 |
"You can set the configuration tab name and position when creating a module.","You can set the configuration tab name and position when creating a module."
|
909 |
"You can set the version of your generated module.","You can set the version of your generated module."
|
910 |
"You cannot use the front key %s. It is used by the module %s","You cannot use the front key %s. It is used by the module %s"
|
js/ultimate_modulecreator.js
CHANGED
@@ -17,7 +17,7 @@
|
|
17 |
* js for module creation UI
|
18 |
* @category Ultimate
|
19 |
* @package Ultimate_ModuleCreator
|
20 |
-
* @author Marius Strajeru <
|
21 |
*/
|
22 |
if(typeof UMC=='undefined') {
|
23 |
var UMC = {};
|
17 |
* js for module creation UI
|
18 |
* @category Ultimate
|
19 |
* @package Ultimate_ModuleCreator
|
20 |
+
* @author Marius Strajeru <ultimate.module.creator@gmail.com>
|
21 |
*/
|
22 |
if(typeof UMC=='undefined') {
|
23 |
var UMC = {};
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Ultimate_ModuleCreator</name>
|
4 |
-
<version>1.9.4.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/MIT">MIT License</license>
|
7 |
<channel>community</channel>
|
@@ -9,15 +9,18 @@
|
|
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>Feature
|
12 |
-
-
|
13 |

|
14 |
-
Bug
|
15 |
-
-
|
16 |
-
|
|
|
|
|
|
|
17 |
<authors><author><name>Marius</name><user>tzyganu</user><email>tzyganu@gmail.com</email></author></authors>
|
18 |
-
<date>2014-08-
|
19 |
-
<time>
|
20 |
-
<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="a6855a30efbe87f5b1c593c83bfe2342"/><dir name="Tab"><dir name="Entities"><dir name="Entity"><file name="Attribute.php" hash="1c9379375866c9239163bc56be11e114"/></dir><file name="Entity.php" hash="2f182d8c35a1f4228efa8bdb23945aca"/></dir><file name="Entities.php" hash="6f770aec8ae66a09c5304e876bb5f8f0"/><dir name="Help"><file name="Fieldset.php" hash="f7d687241b4f60475fd1d6b0d9862fcc"/></dir><file name="Help.php" hash="85427034d5f35125d13e75b17f9f64f8"/><file name="Relation.php" hash="579b6d87747b82789ee65d737fc1e315"/><file name="Settings.php" hash="cf3a8b5980bd39d7fa591091f8394a5f"/></dir><file name="Tabs.php" hash="0a9fa3fae23d5b7f815e77e53da2537d"/></dir><file name="Edit.php" hash="e7d396642d6408ce9034ede7517b7046"/><dir name="Grid"><dir name="Column"><dir name="Renderer"><file name="Download.php" hash="b0cf83e2273cff29cd203c8635b2fff5"/></dir></dir></dir><file name="Grid.php" hash="72f199fe34b312cd8aada2957ed4f3cd"/><file name="Menu.php" hash="40ee71583453626a03967c822a78164b"/><dir name="System"><dir name="Config"><dir name="Form"><dir name="Fieldset"><file name="Abstract.php" hash="70c0e64c09521b7a98dd4be7187c7ea2"/><file name="Attribute.php" hash="ffab3a73feb7f37c4047081cf43419b9"/><file name="Entity.php" hash="427369fa1062bc11978710d67fe2e71a"/><file name="Settings.php" hash="61b1b50af247081a066a8af9e9e54a2a"/></dir></dir></dir></dir></dir><file name="Modulecreator.php" hash="ce93deb82c8b64d0e059e9434d2174a0"/></dir></dir><file name="Exception.php" hash="f060d2ba3fac64341c3749d2cebbaac1"/><dir name="Helper"><file name="Data.php" hash="7f61b02c0583b20d0322e792b2cf040e"/></dir><dir name="Model"><file name="Abstract.php" hash="f3ac316da79db7d628b2c3b893df48ab"/><dir name="Attribute"><dir name="Type"><file name="Abstract.php" hash="27a3880a7520e08adbaa0f245555c9d4"/><file name="Country.php" hash="7009b88ee14e9c66b767f7bc90a3250d"/><file name="Decimal.php" hash="bf3df688974cae17f9e16b6b6bb166a1"/><dir name="Dropdown"><file name="Abstract.php" hash="3f73a641f1c2e993677c3ffba0710c34"/><file name="Category.php" hash="da47dd40ae39238a5395652a228549e0"/><file name="Custom.php" hash="c401e6905868955b86f5206e0f15e609"/><file name="Customer.php" hash="6b5f51e69c38ef99ee8d7e119c5f2346"/><file name="Product.php" hash="4144613d5dd6699ff7dd29d59a7c876d"/></dir><file name="Dropdown.php" hash="3544e492b621a027efb95d6d08c92e3d"/><file name="File.php" hash="93b160916baa561247dcd8040361f6f2"/><file name="Image.php" hash="25f0b1b1abdef560d0d778338b0d8d8d"/><file name="Int.php" hash="35a5bf8b9cd1fc772b7c4f1647d7ac6f"/><file name="Multiselect.php" hash="11558da53178821cb3dbdbf3f2fa7a99"/><file name="Text.php" hash="1649397e1bde1c2223d2656ac520bc48"/><file name="Textarea.php" hash="cb194ab2636b2b3fb26ccaa11b6b2559"/><file name="Timestamp.php" hash="45b63de13d8f8847ed37cc3a286f70f9"/><file name="Yesno.php" hash="127caade490a16be15cc9bff97dc17e4"/></dir></dir><file name="Attribute.php" hash="94626efc4fa978e9f4ff2ef76135f106"/><file name="Config.php" hash="9d66fecf768d2a34908bab41a7b3504b"/><dir name="Entity"><dir name="Type"><file name="Abstract.php" hash="503265801e11e97e6baa863bb8cb96a3"/><file name="Eav.php" hash="adb0d9e8ad02fc1405b18e81752c5b73"/><file name="Flat.php" hash="c8de6e6997cf0728f2e0cdfa86a17a94"/></dir></dir><file name="Entity.php" hash="fc7e3b65338f93971beb9c94200abdb6"/><dir name="Module"><file name="Collection.php" hash="60ccda6198d5fd2dfd7a60fcb1815f04"/></dir><file name="Module.php" hash="00459169fc5b815348d9b9c8733beaf1"/><file name="Relation.php" hash="4a529c42ac26526c12c62fad38ad99c0"/><dir name="Source"><dir name="Attribute"><file name="Scope.php" hash="681d3030cf2dc35b53f4e7e447db35e9"/><file name="Type.php" hash="64eb092c4a5f9baa717f221c4a530a23"/><dir name="Value"><file name="Source.php" hash="5b455b0d1f41e66bbc36ebfe72a84298"/></dir></dir><file name="Codepool.php" hash="ffbf45052406fecaf43673ee7c9b61a2"/><dir name="Entity"><file name="Layout.php" hash="4105f906cb3274b6b2b230a420d7795f"/><file name="Menu.php" hash="4dc0dc33661f310e7e15e62ff5e4741f"/><file name="Type.php" hash="ce97a7bf1d6e6b068f114c1efcd81464"/></dir><file name="Install.php" hash="475f6da35aee1bafd4fe162721d01666"/></dir><file name="Writer.php" hash="e99f2326600d2ed162af7c3e12d8e620"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="ModulecreatorController.php" hash="64e8ba96f84f59b4fe56b61e8077f16b"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="841cab623830270784e5752ceb1c0b5e"/><file name="config.xml" hash="da0b13ccaa191544f8ca09f3e0613124"/><file name="jstranslator.xml" hash="197089f92ccb2cf369fe7e401945ecb5"/><dir name="source"><dir name="app"><dir name="code"><dir name="Block"><dir name="Adminhtml"><dir name="Catalog"><dir name="Category"><dir name="Tab"><dir name="Entity"><file name="010_tree" hash="71ef3094dedfc7d9e414cb697e3d539a"/><file name="020_not_tree" hash="2e86dacfe0362ce6aa38d25e82524b56"/></dir></dir></dir><dir name="Product"><dir name="Edit"><dir name="Tab"><dir name="Entity"><file name="010_top" hash="dd67d1c7c6b352a71965868a06697988"/><file name="020_not_tree" hash="a7be24f5cc397ef37ca22bb40e1527e9"/><file name="030_tree" hash="bd02537f09e5d8260144eeb3704f6401"/><file name="040_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir></dir></dir></dir></dir><dir name="Entity"><file name="010_top" hash="44aa5df6aab34804fd961137d9c7720d"/><file name="020_eav" hash="d38b3883793eff2891b06995e5082b68"/><file name="030_footer" hash="dfe5fb1e14742631320317fdb64ac885"/><dir name="Abstract"><file name="010_content" hash="62e973ae6efd0e36b775d538496954d1"/></dir><dir name="Attribute"><file name="010_content" hash="37764dc55ce7b4d9aa84809327943236"/><dir name="Edit"><file name="010_content" hash="8b42c988f42c6f0bffca550b18cad8a1"/><dir name="Form"><file name="010_content" hash="a263f608e4abdc3ec96e89052b527aad"/></dir><dir name="Tab"><dir name="Main"><file name="010_content" hash="05f4aa0555d8cfd9e124f99b3d0b7d04"/></dir><dir name="Options"><file name="010_content" hash="03570e69a55e721f961425a5172369cd"/></dir></dir><dir name="Tabs"><file name="010_content" hash="2b58699bdec1699e78a56e97f54605b7"/></dir></dir><dir name="Grid"><file name="010_content" hash="fb0ce347335b8deb92c6a9eb534894a0"/></dir></dir><dir name="Comment"><file name="010_content" hash="2aad8608b533909000e8b48458da0a3e"/><dir name="Edit"><file name="010_content" hash="3a43b33ef1731abb327d58ea4454445f"/><dir name="Form"><file name="010_content" hash="233d80b778a00c2e648fb6de70984de4"/></dir><dir name="Tab"><dir name="Form"><file name="010_top" hash="5654766f5a10ea79f985348ae8e1af45"/><file name="020_stores" hash="c7dea0c3fcf3f795ab5da4d2b262f523"/><file name="030_footer" hash="064e9107e3d0c0c99f905cb537877af6"/></dir><dir name="Stores"><file name="010_content" hash="b32ca2512c5e7679aa7c8b764be57c6b"/></dir></dir><dir name="Tabs"><file name="010_top" hash="967ecca69509dd46542623ebf7997767"/><file name="020_stores" hash="ca6ebaaafcb7d002971667a1d564ae27"/><file name="030_footer" hash="4488490317047e328c140b54951a26ca"/></dir></dir><dir name="Grid"><file name="010_top" hash="da6cd2d19fefbd5be0d5fc311571ea0e"/><file name="013_store_data" hash="f570d17a1052b9a8046ba3755a023051"/><file name="016_prepare" hash="472a0698416a84ea47c82136f875f39e"/><file name="020_stores" hash="f687942567140176aa4880c33a7263b2"/><file name="030_content" hash="66542005515d3e559d08ce71a5a51f15"/><file name="040_store_filter" hash="b84a10ad4e2f39480082af313a399959"/><file name="050_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir></dir><dir name="Edit"><file name="010_top" hash="964785e013506cf5d4e05c0d28c50f7c"/><file name="020_tree" hash="e56ca7916c16b857b2d1bc5249bbd21d"/><file name="030_not_tree" hash="47fa3c2b9e77b57153b3f8a0f65a06ac"/><dir name="Form"><file name="010_top" hash="d0478b32e45e042916b28f5586ff69ad"/><file name="020_prepare_form" hash="eca2778ff92b76e6f3ac85b674e1460a"/><file name="025_prepare_form_eav" hash="ef76808baf8d37a2911843f511e1f6d2"/><file name="030_tree_top" hash="354a7fab693ceb69477eef69cc358cb0"/><file name="040_product_relation" hash="af98a2c088ac78b6d6fa8be0e61f79e8"/><file name="050_entity_relation" hash="292d2fbe7909805ecb9c214ba4e8d814"/><file name="060_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir><dir name="Tab"><dir name="Attributes"><file name="010_top" hash="e72033bd8e9dbae97171f5d98a082d58"/><file name="020_tree" hash="c2c9894426c3940418571436243c1187"/><file name="023_layout" hash="66be97ceef6a6972181419062c490019"/><file name="025_after_html_top" hash="e5fc8150b1ed7bb72a00b66611a1a218"/><file name="026_after_html" hash="1592e14d6de7e9bc8e55e446a2bcc337"/><file name="027_after_html_footer" hash="a277507fa5955bce889c679c508388be"/><file name="030_footer" hash="d0ec668477e12567a13e4ccc638e455f"/></dir><dir name="Categories"><file name="010_content" hash="e20886b79464507bec2b16f55e99fc8d"/></dir><dir name="Form"><file name="010_top" hash="1ac27a852fe07bd1f7912f72744e933d"/><file name="020_image" hash="ae451284767c290d0296194d4fc3cdfc"/><file name="030_file" hash="c8b1533c27644b7292da44e3e5075182"/><file name="040_wysiwyg" hash="a9f496f0a360903d1654b19d5430bf9f"/><file name="050_wysiwyg_is_tree" hash="59014226536c7bdfaba780a6bbbb5793"/><file name="060_path_tree" hash="d484f7fa33f1f092da2b241926cbebe8"/><file name="070_parents" hash="eb406f81670d46929c473cf49a66c387"/><file name="080_attributes" hash="99af6befb259348dd3f8df1bc0abba90"/><file name="090_url_rewrite" hash="18d636d351172ac645665b5fa0666ea0"/><file name="100_status" hash="782adfdcddf0cc6e362212ec18767b46"/><file name="110_rss" hash="0639b5c95b847303dd9a78332cc7933e"/><file name="120_stores" hash="1f3467451ba06db6cd40fce76ba431e6"/><file name="130_allow_comment" hash="1e4a500f05e2047024481d4e9a7b7469"/><file name="140_add_values_not_tree" hash="e1e054e2dc6696cbcd4b24e58f251f24"/><file name="150_add_values_tree" hash="c55e02ed1b018553d2525d1259eece10"/><file name="160_get_entity_tree" hash="381ec60c1dd0dd6c814dec91e8d46582"/><file name="170_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir><dir name="Meta"><file name="010_content" hash="49d0707a5037f1810d0a441ff20ed595"/></dir><dir name="Product"><file name="010_content" hash="9933e63eb427541140837b24af8f4619"/></dir><dir name="Sibling"><file name="010_top" hash="ba8a142d41f861168b2630a942c88e33"/><file name="020_not_tree" hash="e288ac29c834ced318f1082bd4b842e8"/><file name="030_tree" hash="3b5ef23cdb0b9b567c48eada21f78dc6"/><file name="040_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir><dir name="Stores"><file name="010_content" hash="7b096cda06f6f93eb6bdc52d1c0b016d"/></dir></dir><dir name="Tabs"><file name="010_top" hash="3ae69e6c370264f0deed58e079ae154c"/><file name="020_flat_not_tree_prepare" hash="c9cdc338692f7600e8be71fb398f8c59"/><file name="030_flat_tree_prepare" hash="4f9b40a9a6f7831ed5a0da4fb5cf2be6"/><file name="040_eav_prepare_top" hash="56ff77fa7809b550070cec4143f24480"/><file name="042_eav_tree_prepare_top" hash="abb75c407e5e9c03d55d05d4402f97d1"/><file name="043_eav_seo_prepare" hash="61cffd93a3c33dbe12a5982f1a2e36f0"/><file name="047_eav_prepare_bottom" hash="3e1ed9863f0a13c2b5cd82f020421801"/><file name="048_eav_prepare_bottom_tree" hash="d7a268cbdd380f9432ae59fde52c3e1e"/><file name="049_eav_prepare_real_bottom" hash="a8b98afa000e57649d0c3817f0421c75"/><file name="050_seo" hash="831d9fce4e93ea6857db7041e74846ce"/><file name="055_seo_eav" hash="0eccfe9d8b8743400af74a7c2649a70f"/><file name="060_stores" hash="70a6a54560b40f6be67ff54042cd8e9e"/><file name="070_relation_not_tree" hash="37057553194dab96aa89776dd5e5bb41"/><file name="080_relation_tree" hash="5e3f27c006232d637464126d87eded50"/><file name="090_product_relation_not_tree" hash="a906db60873d481e1a1551d7ac9e89e8"/><file name="100_product_relation_tree" hash="b03028a427b64a825f7fa0ac6941f212"/><file name="110_category_relation_not_tree" hash="f2c7186e89f310c6c30ae16feb960cf0"/><file name="120_category_relation_tree" hash="4ce1e47bf3a1a97c5613e97d5ff5c08f"/><file name="130_end_prepare_not_tree" hash="eeb1743c5582f0b0d6bb7315e976ed79"/><file name="140_end_prepare_tree" hash="eeb1743c5582f0b0d6bb7315e976ed79"/><file name="150_footer" hash="750622e2965e5bcb8bf88674614f0ec2"/></dir></dir><dir name="Grid"><file name="010_top" hash="dc1ae56bab399b8687fc55da8a040658"/><file name="020_parents" hash="694c129db89ef3095f5b0dcdbf61f12e"/><file name="030_name_attribute" hash="a771e41d5af27b91a9595f9d642299ef"/><file name="040_grid_attributes" hash="4ef4f2cd9efbef4cb4d0638d163190a8"/><file name="050_url_rewrite" hash="4f688b429c00490a909e0476f42b8c39"/><file name="060_stores" hash="eea00206f5570b3aef5f7980f0cbbd3a"/><file name="070_created_at" hash="bdffe8831ecdada3514d4c9cda0514e8"/><file name="080_updated_at" hash="e732b86e31ae7d14d309f98c1a2405cb"/><file name="090_columns_footer" hash="ed6bcf9d2a0f66b4a7c5fbccff5a6941"/><file name="100_eav_functions" hash="d972bd0811ec04e2bb851305a1b0ef2c"/><file name="110_mass_action_top" hash="46e42d2d57468e2ced716c77e41bb010"/><file name="120_mass_action_flags" hash="ee39259db1169a85c024b0d05e7baedd"/><file name="130_mass_action_parents" hash="529e188155dd0cbc382b8228caccbf70"/><file name="140_collection_end" hash="8d6cbd0cbae4a7c3ca0add81f97ff5f2"/><file name="145_collection_walk" hash="006d866e55eee02fb6767a5c6ceb955d"/><file name="150_store_filter" hash="b395005eae63f8b30fbddc15057281f2"/><file name="160_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir><dir name="Helper"><dir name="File"><file name="010_content" hash="d355e5da535b3e0cfccb5d217e1a170e"/></dir><dir name="Image"><file name="010_content" hash="e157ea8cd01b05b55eecda599191fc3f"/></dir></dir><dir name="Tree"><file name="010_top" hash="727a04df04b9b80db6cefdc1b4c60419"/><file name="020_store_switcher" hash="b6d1e1a1742425c0b3f8a02ee8f64d32"/><file name="030_content" hash="2055bf21f85a1b953664e2aaeb3b763c"/><file name="040_eav" hash="5deee6fe249f7ea1ddc60b8276e3758c"/><file name="050_methods" hash="0c4d45292eb83da095668795585ed264"/><file name="060_store_switcher_block" hash="9ebb73a790da8983dfc85574af127399"/><file name="070_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir><dir name="Widget"><dir name="Chooser"><file name="010_top" hash="f5bc94317c2c6c0d14882ba15eb6407b"/><file name="020_not_tree" hash="9fee15af4f12185d3197293692c338a3"/><file name="030_not_tree_eav" hash="0d63352bbb0abc265ab13da33c2204b2"/><file name="040_not_tree_content" hash="48e22a4e365563c69632bb74d0db99de"/><file name="050_not_tree_store" hash="b26d7218d7bcff222c679aa5e07c8e78"/><file name="060_not_tree_footer" hash="345e81687c80d6119461c5cade1edd00"/><file name="070_not_tree_flat" hash="a3ebee24e32e43eb5b6aae582ae5e449"/><file name="080_tree" hash="f857bd064de6c07d1599b47f0ffd9d1a"/><file name="090_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir></dir></dir><dir name="Helper"><dir name="Column"><dir name="Renderer"><dir name="Parent"><file name="010_content" hash="da6055368584a12c81c3e577fa9e2475"/></dir><dir name="Relation"><file name="010_content" hash="2aaedc2f263a540e3e9418357d4e57c9"/></dir></dir></dir><dir name="Wysiwyg"><file name="010_content" hash="9ed57fe215b6d0e0169431902eb2afd8"/></dir></dir><dir name="Module"><dir name="Helper"><dir name="Form"><dir name="Wysiwyg"><dir name="Content"><file name="010_content" hash="7275f215b7d9172874faad0adc8fa936"/></dir></dir></dir></dir><dir name="Renderer"><dir name="Fieldset"><dir name="Element"><file name="010_content" hash="0d61c16f0f376875912c71817afd6846"/></dir></dir></dir></dir></dir><dir name="Catalog"><dir name="Category"><dir name="List"><dir name="Entity"><file name="010_top" hash="45187464be8d2fcba46051d82bb50d94"/><file name="020_store" hash="5d4378ac1469cee33c19375021c8c9d6"/><file name="030_eav" hash="378270a4fb279491fa8237f7232d9661"/><file name="040_not_eav" hash="c61d22711029de35ea23c8cc5582c37d"/><file name="050_footer" hash="3310177fcbadb4048cb5130d57da91dd"/></dir></dir></dir><dir name="Product"><dir name="List"><dir name="Entity"><file name="010_top" hash="05ebc701573a2381f1929d0f3fd1d6b8"/><file name="020_store" hash="5d4378ac1469cee33c19375021c8c9d6"/><file name="030_eav" hash="62e0e3f434eac5d7646ca67253b94657"/><file name="040_not_eav" hash="c61d22711029de35ea23c8cc5582c37d"/><file name="050_footer" hash="0f75591667e0afae13d399833a7a8a1b"/></dir></dir></dir></dir><dir name="Entity"><dir name="Catalog"><dir name="Category"><dir name="List"><file name="010_content" hash="6c201af0ef142175a8078a93138a098b"/></dir></dir><dir name="Product"><dir name="List"><file name="010_content" hash="ffd30c32262494c2378583817d08cf59"/></dir></dir></dir><dir name="Child"><dir name="List"><file name="010_content" hash="6da876bcf90940c58da4bcbd01cab880"/></dir></dir><dir name="Children"><file name="010_content" hash="d34a0f45f86b2573310fa4fb423fac38"/></dir><dir name="Comment"><dir name="Form"><file name="010_content" hash="a22dbea3608170f316f8a4eec14229ad"/></dir><dir name="List"><file name="010_top" hash="f8bf579c5879e621e7df165465ec744f"/><file name="020_stores" hash="1a60133a8449a1bd4d25a2bab577770b"/><file name="030_footer" hash="8610627b14ec5f50ec149fbbcbc3be17"/></dir></dir><dir name="Customer"><dir name="Comment"><dir name="List"><file name="010_top" hash="e16c62c85566442b4877ae0263c203e5"/><file name="020_store" hash="f07cc10c13871c59a0c0300dce0ec56c"/><file name="030_filter_eav" hash="e6d6c6009d19f1b98520902649a6a30b"/><file name="040_filter_flat" hash="4321e0b31704ca31099f3ed39010a7c0"/><file name="050_footer" hash="ada9954ac40ef54c9e34df34e386df61"/></dir><dir name="View"><file name="010_content" hash="95db6a28de6c1692727a03eed355e86c"/></dir></dir></dir><dir name="List"><file name="010_top" hash="ce7935dd65bafcf532cb160cc7788803"/><file name="020_stores" hash="1a60133a8449a1bd4d25a2bab577770b"/><file name="030_attributes" hash="7bebacd043bc336aa31ccdc9dc266d89"/><file name="040_status" hash="b69d2141c5536497d662c0e8cdba19ed"/><file name="050_not_tree" hash="d20e7e08d7ee8ada6175dc6fe78ae558"/><file name="060_tree_flat" hash="e5e7821bd8b6c235c81cc27e24ef3011"/><file name="070_tree_eav" hash="5a0cfa7f968eef1206c0ac790d95071e"/><file name="080_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir><dir name="Rss"><file name="010_top" hash="f7c37e18de4f2c414c433061b47a9eba"/><file name="020_stores" hash="d0e26ab44bfcc5cdf03ec07ee1892d3c"/><file name="025_eav" hash="a807bf30d9099707957723afde2c551b"/><file name="030_content" hash="dc62f579677a86de9388a45ac4a098d8"/><file name="035_tree" hash="ee870fe0ca6aaf095331706b990c0bbe"/><file name="040_attributes" hash="60b1b3fab87fd4e4dcbc2f0520e03d96"/><file name="050_footer" hash="0b4ea347619c4e5e1a22c292cac994f3"/></dir><dir name="Sibling"><dir name="List"><file name="010_content" hash="b04170108593b8e355f647064e4009f2"/></dir></dir><dir name="View"><file name="010_content" hash="20fbe7cdcb216c66f1c5251e970b5537"/></dir><dir name="Widget"><dir name="Link"><file name="010_content" hash="c4fa4367c50464a64468f33ed21c743c"/></dir><dir name="Subtree"><file name="010_content" hash="8e67bb76eaf6429add47d0cbc04cfb72"/></dir><dir name="View"><file name="010_content" hash="d5e6f76c199865aa9ed3ecf94cf504c7"/><file name="020_not_tree" hash="3c3223f687e821acadbd7bde19bd2cfd"/><file name="030_tree" hash="9bd327687df296fd0711c6447dce9125"/><file name="040_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir></dir></dir><dir name="Rss"><file name="010_content" hash="14b33c43cdc5ad5c6ea380202a5164bc"/></dir></dir><dir name="Controller"><dir name="Adminhtml"><dir name="Module"><file name="010_content" hash="f510ed431b5bab046332cd6f3c38769e"/></dir></dir><dir name="Router"><file name="010_top" hash="6a76e84bcfb10be23d0eb33d8d343449"/><file name="020_entity" hash="a59adc2495266732dd52b1325a4c830a"/><file name="030_footer" hash="f7c38d8f972dea142b1361d40184e12d"/></dir></dir><dir name="Helper"><dir name="Category"><file name="010_top" hash="392f1c1f15aef77b14d030142e9e0911"/><file name="020_content" hash="b0f85cae35d0ea79785366cdbafb8c90"/><file name="030_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir><dir name="Data"><file name="010_content" hash="8f198e3360c8e7521d742cacdd476508"/></dir><dir name="Entity"><file name="010_top" hash="2fde677bbbfc2e09fd17262124f74a13"/><file name="020_create_list" hash="d8457e9a07ab48ba715a309441746627"/><file name="030_breadcrumbs" hash="a46e398f83bd4082a7a152d749dd1f61"/><file name="040_tree" hash="08344c280e0fd774758c61a4cc4e44c8"/><file name="050_rss" hash="520dda1d6fc1865d1ae9df572b620e06"/><file name="060_file" hash="9ed3e363751611299e4e45aecdc1fd49"/><file name="070_eav" hash="45848ed420d251949373264ba057c741"/><file name="080_footer" hash="df3995adfef69bc118334aef3a6911ad"/><dir name="Image"><file name="010_content" hash="4ea39c0d2c473ffe77bfc1137e4dc235"/></dir></dir><dir name="Image"><dir name="Abstract"><file name="010_content" hash="c8088806800b22611ee521e473562912"/></dir></dir><dir name="Product"><file name="010_top" hash="f1ce7ecd9ddc4aa8b2db8c2565dbb8a5"/><file name="020_content" hash="bdce693f564f5eba013a31521e405058"/><file name="030_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir></dir><dir name="Model"><dir name="Adminhtml"><dir name="Observer"><file name="010_top" hash="45fae6e032afa21958f2fb7772d10d55"/><file name="020_entity_product" hash="173aaa3b9c38a62ad3ff6f8e64bbfa5a"/><file name="030_entity_product_save" hash="ba94bb27ccd3509ac4c5f82e4554ca7e"/><file name="040_entity_product_save_tree" hash="461d0c5305ace01323b5e007dc4197cd"/><file name="050_entity_category" hash="b1e6c102cb60ca8891ae3d77c529514c"/><file name="055_entity_category_tree" hash="7706c91cc09a7823fcaea416cec9fbfc"/><file name="060_entity_category_save" hash="8f7e379ebc7263da3999ee82250c0bfd"/><file name="070_entity_category_save_tree" hash="081d7667b0b3455880cce2704646c6e1"/><file name="080_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir><dir name="Search"><dir name="Entity"><file name="010_content" hash="430bc31e965daaeb9d58e27010bc6ce9"/></dir></dir><dir name="Source"><dir name="Yesnodefault"><file name="010_content" hash="4b65106d152b7f525f69b92e8ac630fe"/></dir></dir></dir><dir name="Api2"><dir name="Entity"><file name="010_top" hash="1c1fafa410c7f3594a382b60cd82b895"/><file name="020_eav" hash="c2009e3f271b934758c006563688f013"/><file name="030_footer" hash="df3995adfef69bc118334aef3a6911ad"/><dir name="Rest"><file name="010_top" hash="6943d53a27e5be13125d02cafd65a8a4"/><file name="015_tree_filter" hash="118d710b629243636f8bee1ccc0ca540"/><file name="020_store_collection" hash="2e424d6ea253d9d31e3cab3f314c3f8f"/><file name="030_collection_center" hash="d7dfdbb2d4155b227ae8b7419a872b36"/><file name="040_url" hash="2740a317d14cdb1bce61c804e1a30fee"/><file name="050_center" hash="26bb3431af58671f8a463bd2e0502bfe"/><file name="060_eav" hash="700b2c2a42b32d2673bfd66da6b58dbd"/><file name="070_load" hash="1c27ea317ad3606042e0bd0e02d7fc8e"/><file name="080_store" hash="4eecd5e32bd395f0cae0f774f2409528"/><file name="090_footer" hash="b2309d4a6f23d5628e45ae91e5f0bfe3"/><dir name="Admin"><dir name="V1"><file name="010_top" hash="5b5d86ac37f2e7dc488bc218617611ee"/><file name="020_tree_filter" hash="118d710b629243636f8bee1ccc0ca540"/><file name="030_footer" hash="c4e2e6415f3967822a7824b592f1a9f1"/></dir></dir><dir name="Customer"><dir name="V1"><file name="010_content" hash="f81f187ca29560a66102e518f7559ba8"/></dir></dir><dir name="Guest"><dir name="V1"><file name="010_content" hash="b6fc9dd8769b27d28722b67c267f956c"/></dir></dir></dir></dir></dir><dir name="Attribute"><file name="010_content" hash="8c70785be3fba9e4293bf460f8b4978e"/><dir name="Source"><dir name="Country"><file name="010_content" hash="c2b0da3332b0ffe9874eb5e0021ab7a6"/></dir></dir></dir><dir name="Entity"><file name="010_top" hash="31f795dbbcc01e5c599ddfbf5cfbe36d"/><file name="020_var_sibling" hash="4b7512938ed84c1851008644e1142626"/><file name="030_var_product_relation" hash="0a235d5a42529098101a1db4a7e09a7c"/><file name="040_var_category_relation" hash="acc309d3f08cd90366b56f05b32c660e"/><file name="050_construct" hash="08d00c8908572e0b0b997f5a81ed7e2b"/><file name="060_url" hash="e4b59be60c17bb5916f7693a9d804520"/><file name="070_url_rewrite" hash="68f3bace5d21beb76ecae3a14836a3d2"/><file name="080_editors" hash="b1eee42fd1b5bd76852673f6e720a9ca"/><file name="090_after_save_top" hash="3e696a9ed8b6bb6bb17a9549080fde09"/><file name="100_after_save_product" hash="ebbe3a0c8e4263543e1eab8390c58c4f"/><file name="110_after_save_category" hash="d62441af6e2443c374e2d409bc7f123c"/><file name="120_after_save_sibling" hash="03d3fd215da4502784f499bfcb0dfc80"/><file name="130_after_save_footer" hash="bdee8f14a98fb1d71110feeedfa6e5cc"/><file name="140_product_relation" hash="b935922e8a4cc2fca7dc2ef429a7071a"/><file name="150_category_relation" hash="6a19b688bb96f42cfa6f2a192cbbd979"/><file name="160_sibling_relation" hash="365a712f9a1797d56462f936d8898d44"/><file name="163_children_relation" hash="4778629c5b6175577b0659925afaa285"/><file name="165_parent_relation" hash="a5e6b9434dd2b570645d5cb54b36ecc2"/><file name="170_tree" hash="08fe1c89e0c59c1ecb8cf8cf9742f457"/><file name="175_eav_default_attribute_set" hash="a7d8bcce3193f0fcc36ab51bb357f1ac"/><file name="180_allow_comment" hash="8cd61a9ca67829edbe9d68c23727100a"/><file name="190_default_values" hash="097d3f12cda0e3cf3abd506dcdd1ba79"/><file name="200_default_values_rss" hash="646194a1ca9053973723596c20330800"/><file name="210_default_values_comment" hash="6b94a24151b5f8e646afa3b0f466e860"/><file name="215_default_attribute_values" hash="3cf469c78b16513f851023cab27e663b"/><file name="220_footer" hash="0f02e5c5b98bdf5aa1a781b00676adf1"/><dir name="Api"><file name="010_top" hash="6fd8834981a39002193c5dbd803a0073"/><file name="013_eav" hash="9470ddabf3ae917f5c1a7c64ab828e96"/><file name="014_tree_filter" hash="c767d9267165ada747dd6e38b66dd56a"/><file name="016_content" hash="715afd3c921c488be03ca702fcc48398"/><file name="017_add_eav" hash="23e74a43cae5808801c43e75522e16aa"/><file name="018_add_end" hash="c6cf5082c2aca919313c81723d94c7de"/><file name="019_update_eav" hash="79e99889476117fedf4ba4208cb7dc44"/><file name="020_update_footer" hash="a06789ebc0c9a1a0a9c95ee1e1d07558"/><file name="024_product_relation_info" hash="d8c79d9993895ddae6b22656ec00003e"/><file name="030_category_relation_info" hash="860d30c4a465eb9a911c5463e41b2861"/><file name="040_sibling_info" hash="18d4d13b426a7ee501077968fab64553"/><file name="050_info_footer" hash="f5cc640d359f31cd56e688615e914e76"/><file name="060_tree" hash="164eac71584eb3498f072f346cdfcd3f"/><file name="070_product_relation" hash="f09f9bd9b0a6b330a75b783e4bf759c1"/><file name="080_category_relation" hash="0a353f9e41824ed8cd1c718235189b00"/><file name="090_sibling_relation" hash="963e92fcb74d02267de706cc7b485077"/><file name="095_sibling_relation_tree" hash="c18bfc04bc1de27d1c7d69bd7cfb57c2"/><file name="097_get_attributes" hash="cbc4a2bab7afd5b761bde5cd6f15ae5c"/><file name="098_get_api_data_flat" hash="f5825e7a144f02a37d2ca0eb35e3418a"/><file name="099_get_api_data_eav" hash="c4ef595faa4d4a4e200badc6bceae5f8"/><file name="100_footer" hash="df3995adfef69bc118334aef3a6911ad"/><dir name="V2"><file name="010_top" hash="71c410ce154cf8f19c7c092033617dab"/><file name="020_product_relation" hash="4f8a836af7c07103a2458eb1a5934eb7"/><file name="030_category_relation" hash="fca88f5026f5362ebb02efb84e6960b3"/><file name="040_sibling_relation" hash="91a324ff552519e703c32f11f7eb53bb"/><file name="050_footer" hash="967560f87a90d6f3ce298622c3022261"/></dir></dir><dir name="Attribute"><dir name="Api"><file name="010_content" hash="b604da1dd0cb4d6bfe781fccf908d98f"/><dir name="V2"><file name="010_content" hash="2bc0b18f3500e13ac707fac0f0db22d0"/></dir></dir><dir name="Backend"><dir name="File"><file name="010_content" hash="4a53a37506ec061f5c18b5fcae4ccb2e"/></dir><dir name="Image"><file name="010_content" hash="d890cc8ca52dc509387edcc41ab615e7"/></dir><dir name="Urlkey"><file name="010_content" hash="0b984983ce537c8db91dad4a81a3ba7d"/></dir></dir><dir name="Source"><dir name="Attributecode"><file name="010_content" hash="d2a8fa231aaeb8157b228a744f60ce91"/><file name="020_eav" hash="565eab6bdde007ce5549c4c04f53195c"/><file name="030_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir></dir></dir><dir name="Category"><file name="010_content" hash="843bad4119f9596e10159a5863f38c3b"/></dir><dir name="Comment"><file name="010_content" hash="558285d2e72d7b1baa581e5a4310f72f"/><dir name="Api"><file name="010_content" hash="8116ff11103d0bbb2063aebecbc96915"/><dir name="V2"><file name="010_content" hash="70ccd2ca6adb5d2677d5d364dfbf28ae"/></dir></dir></dir><dir name="Product"><file name="010_content" hash="51a5166350a2362d09e446e8c90ea40f"/></dir><dir name="Sibling"><file name="010_content" hash="10f829bac28892b7b87cde0d257f0196"/></dir><dir name="Source"><file name="010_top" hash="95a53880e82a27f59c59cc757daab698"/><file name="020_eav" hash="face552e254a9d5cb270590d66014427"/><file name="030_footer" hash="62834cfd6dd511f091c6036327f083bf"/></dir></dir><dir name="Observer"><file name="010_top" hash="2f39cf94f4778240b136a34d80ce1eae"/><file name="020_entity" hash="3be4e17190b2528d881cd9e9ef8f33aa"/><file name="030_footer" hash="54adfbade96adb4d8eb64b60f1762539"/></dir><dir name="Resource"><dir name="Attribute"><file name="010_content" hash="1dec815470580eb3bb649dad41d3f1a6"/></dir><dir name="Eav"><dir name="Attribute"><file name="010_content" hash="8f1e4a80ed73fb79bfda6c24d9fa54d3"/></dir></dir><dir name="Entity"><file name="010_top" hash="52ed0ddb8d8c3c5ab91ff55d8cd0e712"/><file name="020_tree_var" hash="803cd2c9fb0e326a8da7324d646772bc"/><file name="030_constructor" hash="6d6df4466051b610eef517de022e1565"/><file name="032_eav_construct" hash="a23e3d0786a73b5a9af2183614a0a985"/><file name="037_store" hash="a1e166e91511d02049837f550e485d57"/><file name="040_not_tree" hash="a0db425c376f08808ca74a8570ebc9bc"/><file name="045_before_save_multiple" hash="bd778b2226c5b1ff68b993d068b0eb06"/><file name="050_tree" hash="40c503c5d8c152801193aae4a6306c9c"/><file name="052_tree_store" hash="0343050748d07930db2d0009a0715cd6"/><file name="053_tree_after" hash="2d2cbab84a8052b25e1b37fed79ce638"/><file name="055_tree_eav" hash="b0f032390da9245957ebb9be758a2706"/><file name="060_tree_before_save_no_url_rewrite" hash="d0bc2fe70ff868d212e3698fdf90fe14"/><file name="070_eav_tree_before_save_url_rewrite" hash="d0bc2fe70ff868d212e3698fdf90fe14"/><file name="080_tree_before_save_url_rewrite" hash="e36fcd134b8f611d2efc466aff42280c"/><file name="090_content" hash="438df7ae371ed58cfd8fa7e805a351b1"/><file name="100_url_rewrite" hash="772b39b033f271a34aa22df73a041672"/><file name="103_url_rewrite_store" hash="2a48d4e67762841635078c3f53fc0a16"/><file name="107_url_rewrite_no_store" hash="fd7796f4e7b45835b69d18f5c1c36969"/><file name="110_url_rewrite_before_save_not_tree" hash="ad6af13f19f703ec1a8f2df31ec5defc"/><file name="120_url_rewrite_eav" hash="329d8134036b7752b137f2249f8d1440"/><file name="130_footer" hash="df3995adfef69bc118334aef3a6911ad"/><dir name="Attribute"><dir name="Collection"><file name="010_content" hash="4a4ecbc27408f93a04d87b7097d6ba64"/></dir></dir><dir name="Category"><file name="010_top" hash="39aaf309aada910997d87b1a2dca71db"/><file name="020_not_tree" hash="395092f56c11e09ec1ed3724d2aa319d"/><file name="030_tree" hash="1a27671b95fbc88a4e2309cbc55300aa"/><file name="040_footer" hash="df3995adfef69bc118334aef3a6911ad"/><dir name="Collection"><file name="010_content" hash="ad079021de3491eead24d4b2cf009fb5"/></dir></dir><dir name="Collection"><file name="010_top" hash="e2aac1dc442877c27b919bb64b609983"/><file name="020_top_store" hash="02ac73aafce3b0f45fb49063d8d138e8"/><file name="030_content" hash="fb287480f5f5c581cd3415cfbb4d880f"/><file name="040_store" hash="d8db10c2a523f91f9b6416a746db75c2"/><file name="050_tree" hash="12df937d796c84906cb8d935cd6d4032"/><file name="060_not_tree" hash="aa562dd58bc027412d1cb2b1ee49e26b"/><file name="070_product_relation" hash="1546d5a1607cd6b36687dad4d8ffc447"/><file name="080_category_relation" hash="750d894c947bf1b965c4020f5b5aad34"/><file name="090_sibling_relation" hash="c23388818a8a79df074a74721aa95902"/><file name="100_footer" hash="f53d84c0a99e10a5839cbe00d7758894"/></dir><dir name="Comment"><file name="010_top" hash="c27763a3ceebc3040d72625c83f61fac"/><file name="020_store" hash="3c2ecae139ef84007951cf382e3b91d2"/><file name="030_footer" hash="df3995adfef69bc118334aef3a6911ad"/><dir name="Collection"><file name="010_top" hash="ab17d39abbecb97d7f4b0050f8a73153"/><file name="020_top_store" hash="02ac73aafce3b0f45fb49063d8d138e8"/><file name="030_content" hash="fb287480f5f5c581cd3415cfbb4d880f"/><file name="040_store" hash="40b8268a6b02d72e102aa6a8010c8d25"/><file name="050_footer" hash="f53d84c0a99e10a5839cbe00d7758894"/></dir><dir name="Entity"><dir name="Collection"><file name="010_top" hash="c07f6aa18d1deb31f2ca3d337c487f15"/><file name="020_store_var" hash="3620225301b89a45fa4c15b7eb9c4b7a"/><file name="030_construct" hash="f5359fb3850daff182c56af87ffe2a49"/><file name="040_construct_store" hash="a4e310f526aedfdc272bd0506575b47f"/><file name="050_content" hash="9a2d9499cd23a37d7b7bf38fb1074e43"/><file name="060_eav_title" hash="708315d25bb5703319b586075e3c854c"/><file name="070_more_content" hash="811fe686230a300c3a7cd4a6124f6b2f"/><file name="073_select_count_store" hash="aa326fbcfdd7292d99b0207c87db1348"/><file name="075_select_sql" hash="119d632bcf5e5f00de1b3e82de27bb0c"/><file name="080_store_top" hash="42aac25b822ee9a76bf90ed29086c89b"/><file name="090_flat_store" hash="e5fa3cb0b097373b7b9ccdc207ba7607"/><file name="100_store" hash="40e089a5b2e560b3704c558a29ff853d"/><file name="110_filter" hash="f06c225b111cd561ea42442cbddc820b"/><file name="120_store_filter" hash="3a97b2f851b75e134d9386eab2864fb7"/><file name="130_footer" hash="cf9e3a21123b393055caace4283d9cf4"/></dir></dir></dir><dir name="Product"><file name="010_top" hash="54bee728d2b28478580d9775b465fe0c"/><file name="020_not_tree" hash="c1f8116878e4bc7f55474793f5ea8fc1"/><file name="030_tree" hash="ce58097cbcd22db0917b94672f007fb5"/><file name="040_footer" hash="df3995adfef69bc118334aef3a6911ad"/><dir name="Collection"><file name="010_content" hash="e09ca44678a76f7a1a62078dec473ed8"/></dir></dir><dir name="Sibling"><file name="010_top" hash="63ad063ff499996377e437e1c982ee42"/><file name="020_save_relation" hash="1bb5232b3965901d947a8e93555ebde3"/><file name="030_save_relation_tree" hash="8fd13f972d33aa73064c524fc6b5eed1"/><file name="040_footer" hash="df3995adfef69bc118334aef3a6911ad"/><dir name="Collection"><file name="010_content" hash="d7c1feb03479792547216ef160201fb3"/></dir></dir><dir name="Tree"><file name="010_top" hash="d94eb147e0b86237b8571ec56408d751"/><file name="020_eav" hash="756d3fa32a2607a3fe1179fd0dbcb89f"/><file name="030_content" hash="f93f44659f99d936f6114dd5d12f2b25"/><file name="040_flat_collection" hash="18a3ae2dc1fdb9b4ad8612942878b735"/><file name="050_eav_collection" hash="dda84ce3ad429c1311147aedfb1e7200"/><file name="060_footer" hash="ec6aa607fd5a32c77f6c69883f26bd5e"/></dir></dir><dir name="Setup"><file name="010_top" hash="10ddb159051eeb6b5f3a365075df6c27"/><file name="020_eav_top" hash="8fbeb530b4e7be6b20feffa4055a397b"/><file name="030_eav" hash="2a67d14756e724608b88947dbce2f2a2"/><file name="040_eav_footer" hash="e239c95376c76b802f24d1d0e75e6323"/><file name="050_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Module"><dir name="Entity"><dir name="AttributeController"><file name="010_content" hash="22b48b83e785b7a3ab39f6f2df017b2d"/></dir><dir name="Catalog"><dir name="CategoryController"><file name="010_top" hash="da38228f766c1f6110b3eee4f29aa3ff"/><file name="020_not_tree" hash="eeccc102e390d8ef2e5bd9a35caf5d51"/><file name="030_tree" hash="498b2762986db20e32272298356b46f1"/><file name="040_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir><dir name="ProductController"><file name="010_top" hash="017c2ad6dd7dcafa16456f8a72ba7530"/><file name="020_not_tree" hash="e8227936a2baf50dc23ea45dd3e689c0"/><file name="030_tree" hash="5ea06f642a2eb06c325383bacf5fd0a2"/><file name="040_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir></dir><dir name="CommentController"><file name="010_content" hash="710884a2484cf47da0094774a46491b6"/></dir><dir name="WidgetController"><file name="010_top" hash="401bc2877ec22157889b662ad7369bca"/><file name="020_tree" hash="4ca3ce9a440967216f09b7b0daf85280"/><file name="030_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir></dir><dir name="EntityControllerEavNotTree"><file name="010_top" hash="5d2787a18e2c2c2deff29843ba134ab7"/><file name="020_save_product_relation" hash="5f64d703ad51f457791021034dac9a22"/><file name="030_save_category_relation" hash="97e2d1bb3c452bc1977c6cc29762266a"/><file name="040_sibling_save" hash="e5a3043a283aafc6c202db9210d26b0b"/><file name="045_sibling_save_tree" hash="5798921bd354c057e3b952885f068814"/><file name="050_middle" hash="9b65758c552847e9511b71b64f6e4c11"/><file name="060_mass_action" hash="4760d1e79c619d606ddfad74f72fdd27"/><file name="065_mass_parents" hash="15d0f2a1dc964f5c2779fa53e09e5840"/><file name="070_product_relation_actions" hash="dff5825fb9ffdcdf851ddf1e78331c2e"/><file name="080_category_relation_actions" hash="5a1adebee4394d06171f9f0dc74e63eb"/><file name="090_sibling_grid" hash="9f437e1f0ff316bc4f08ffb19b8471e9"/><file name="100_sibling_actions_tree" hash="ec816c2575fdd3d5921decf6c486215e"/><file name="110_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir><dir name="EntityControllerEavTree"><file name="010_top" hash="ebd5ae7a078df0a90473cde61203dc29"/><file name="020_product_data" hash="ef35afd04bfedbdd9a08dbb2254eabdd"/><file name="030_category_data" hash="97e2d1bb3c452bc1977c6cc29762266a"/><file name="040_sibling_data" hash="cf7e5061ac1cf2d8600e5f545954de2c"/><file name="045_sibling_data_tree" hash="5798921bd354c057e3b952885f068814"/><file name="050_real_save" hash="cedbb11e16dab61867f9cfa8182da39b"/><file name="060_product_relation_action" hash="3827c87fbd6c722791ab202a385deff4"/><file name="070_category_relation_action" hash="2993db7b85b7164b88cd8d9ef2fd92c6"/><file name="080_sibling_actions" hash="58e028e693705952165fe5677ccc543d"/><file name="090_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir><dir name="EntityControllerFlatNotTree"><file name="010_top" hash="c42ffcf05fbe24b0828ea4b5f0abe0bd"/><file name="020_upload_image" hash="8eb947a4dbf6989e635fd5ce1381d0d0"/><file name="030_upload_files" hash="424e24cfae698c29d36d405d060617f2"/><file name="040_save_product_relation" hash="5f64d703ad51f457791021034dac9a22"/><file name="050_save_category_relation" hash="97e2d1bb3c452bc1977c6cc29762266a"/><file name="060_save_sibling_relation" hash="4857f358e471ec22bb35b893b5e8aaab"/><file name="070_save_sibling_relation_tree" hash="5798921bd354c057e3b952885f068814"/><file name="080_save" hash="a74adf52f0b222e1a30990e75e1f2860"/><file name="090_exception_upload" hash="ca7b53f3c03d0c3e0c926ad312ef1981"/><file name="100_exception" hash="00f90ef0513b82fffc0f19585ac7cd8b"/><file name="110_center" hash="c74f082a97590533a66550d04cd28501"/><file name="120_mass_update" hash="3ace1d78a8dab8648a85047515395bbf"/><file name="130_mass_parents" hash="15d0f2a1dc964f5c2779fa53e09e5840"/><file name="140_product_relation_actions" hash="dff5825fb9ffdcdf851ddf1e78331c2e"/><file name="150_category_relation_actions" hash="5a1adebee4394d06171f9f0dc74e63eb"/><file name="160_sibling_actions" hash="eded044ea2c515756bf78dbbd48154ca"/><file name="170_sibling_actions_tree" hash="ec816c2575fdd3d5921decf6c486215e"/><file name="180_footer" hash="1de3e8c1cf941195894ba438de23b6cf"/></dir><dir name="EntityControllerFlatTree"><file name="010_top" hash="399f46b7f4f1ed5e05223ef4d6b33e69"/><file name="020_wysiwyg" hash="d43e8888ad2c3a2be5e9ab4f6c8ea112"/><file name="030_save" hash="89499414fd87eee842bf7c68c5b72ace"/><file name="040_upload_image" hash="8eb947a4dbf6989e635fd5ce1381d0d0"/><file name="050_upload_file" hash="424e24cfae698c29d36d405d060617f2"/><file name="060_save_continue" hash="517334331bc285ac1fd2a395bb110af6"/><file name="070_product_data" hash="69fb7236c7346aa998a68aee646904c6"/><file name="080_category_data" hash="97e2d1bb3c452bc1977c6cc29762266a"/><file name="090_sibling_data" hash="cf7e5061ac1cf2d8600e5f545954de2c"/><file name="095_sibling_data_tree" hash="5798921bd354c057e3b952885f068814"/><file name="100_real_save" hash="ae703e1d79cbb3b989a3e79d68616d7e"/><file name="110_product_relation_action" hash="3827c87fbd6c722791ab202a385deff4"/><file name="120_category_relation_action" hash="2993db7b85b7164b88cd8d9ef2fd92c6"/><file name="130_sibling_actions" hash="58e028e693705952165fe5677ccc543d"/><file name="135_sibling_actions_tree" hash="ec816c2575fdd3d5921decf6c486215e"/><file name="140_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir></dir></dir><dir name="Entity"><dir name="Customer"><dir name="CommentController"><file name="010_top" hash="9f62f4cf9623a20a21051add6d53e33a"/><file name="020_entity_eav" hash="e3928f0c5176f7ef8c2e9c1cfc5c7e39"/><file name="030_entity_flat" hash="8111faf8ab205e42f80a01364e910d90"/><file name="040_store" hash="35770a11b9af34946533859a9bfd1c8f"/><file name="050_entity_flat_store" hash="15a379ec302d933bc618a8f3b19c6b93"/><file name="060_footer" hash="e20522e04290376a1e49520b11206983"/></dir></dir></dir><dir name="EntityController"><file name="010_top" hash="86d72db023b8b448068a4c156b29e630"/><file name="020_list" hash="446e82cd88ff847dbcb2c0d80b8ee542"/><file name="030_list_seo" hash="f2ca1a03f3af0b0e6fac01d698bf5b4e"/><file name="040_list_footer" hash="765f671c6c8df0b2dc138adadaef66d8"/><file name="050_view" hash="72625bb483a975414a34ff7ba6add736"/><file name="060_view_tree" hash="3fe6f66fcb554cb3ba4a0d60cbafc912"/><file name="070_view2" hash="25a8b855f1d531064b2e1c1b7aee060f"/><file name="080_breadcrumbs" hash="317bbb91ae8b80682df6f82f6b325ec3"/><file name="090_breadcrumbs_tree" hash="0d01c24d56ce14a946209225180a15f7"/><file name="100_breadcrumbs_footer" hash="4c00b1852b26c7782dc7ef0af43bf688"/><file name="110_view_seo" hash="df29b452c36d9f51c93ad3442f09089f"/><file name="120_view_footer" hash="765f671c6c8df0b2dc138adadaef66d8"/><file name="130_rss" hash="b64a15b83af918ffd04a7923436d8978"/><file name="140_comment" hash="fc67e1a965ff7ece556c426bdee0af0a"/><file name="150_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir></dir><dir name="data"><dir name="namespace_module_setup"><dir name="data-install"><file name="010_top" hash="9baa375f86c77c971bdf4ff58a1c0490"/><file name="020_entity" hash="bf3f9669f77cc9123c49814307991d2b"/></dir></dir></dir><dir name="etc"><dir name="adminhtml"><file name="010_content" hash="5b38ce3527f5c51f6159da6d5dccabdb"/></dir><dir name="api"><file name="010_top" hash="867c51b5c21efd691c7c3df3af4bc693"/><file name="020_entity_api" hash="b31ed12c80316bbdf61b6ff04eb3a51f"/><file name="030_resource_alias" hash="b943f39407ab6131bf93d6e6e44936e8"/><file name="040_entity_resource_alias" hash="d7f51e1ed157c61dda3ddb9a22f484fc"/><file name="050_v2" hash="12dcbc42e0ec81ef5f8d0d563fbf885f"/><file name="060_v2_entity" hash="c0e32ae7d754a1d36302a501ff23ca18"/><file name="070_acl" hash="4f900c28a8eef538b9f5710b6116631e"/><file name="080_acl_entity" hash="9f3c85df11943be774a2a6bf316e66e1"/><file name="090_footer" hash="325809a4d6fd615e7c2c9743b3655c53"/></dir><dir name="api2"><file name="010_content" hash="3cee98654e6d59b601235e45dcf4d2b6"/></dir><dir name="config"><file name="010_top" hash="5b6ad2628b143dcae6b168ca4bf14904"/><file name="020_tables" hash="81a36d80bacf44a97c8d59887d0e2164"/><file name="030_store_tables" hash="73114fc78d20c8ab8f8d79a3d984dc87"/><file name="040_siblings_table" hash="e362aa300301fc423c8641ad434f0eac"/><file name="050_product_relation_table" hash="ab5676590138330d4ff36a15002bee5d"/><file name="060_category_relation_table" hash="5ed5fbeaab8d1fd7ca3dbc1343d71f0a"/><file name="070_comment_table" hash="c0181d16ba7087f4f981bfcc1c6dc8ad"/><file name="080_comment_store_table" hash="2d19f290726a6a9a80f534fd404595e0"/><file name="090_eav_attribute" hash="49b2ecc7c4d9940bb4e934b11df4dbbc"/><file name="100_global" hash="bcc43369c66a79dd5ceb6ca31cd944b1"/><file name="110_url_rewrite" hash="b9020832f4c9d77474687d409bf07369"/><file name="120_adminhtml" hash="750c8c73a53ba5d80148cf5628468efd"/><file name="130_relation_events_top" hash="7d655aaf8e39e8e21234c4589e9c0f75"/><file name="140_relation_product_top" hash="5edc7f53f573872a9bfd6122f3961702"/><file name="150_relation_events_middle" hash="6f4be5a184572f9a5ec53e1bc6341380"/><file name="160_relation_category_top" hash="e07d99af7575f411274c0e2b86aa144c"/><file name="170_relation_product_bottom_start" hash="c4389c5178de3b3491d021f6bd292e35"/><file name="180_relation_product_bottom" hash="2cac1148f2d56395435902be1d350d36"/><file name="190_relation_product_bottom_end" hash="cddbb3962c99a02f3b7e449b7c02baf1"/><file name="200_relation_category_bottom_start" hash="a5ea816ddaf504e565945c4fa5c5c93d"/><file name="210_relation_category_bottom" hash="e6776a83e08a397b8a3ca255bdf386e4"/><file name="220_relation_category_bottom_end" hash="1d55309dbdeb0dd473ef6a8bac71a785"/><file name="230_relation_events_bottom" hash="a5862d4611e980ff9553372b34560ce6"/><file name="240_global_search_top" hash="949ac50acd8c5fe3b68b66204d00e938"/><file name="250_global_search_entity" hash="3db0a74a189b145960107a16dc86086a"/><file name="260_global_search_footer" hash="4387151e9004196f17df55f4031fb471"/><file name="270_admin" hash="c1df2cc861cbb4644e6f0b8d46896664"/><file name="280_frontend" hash="17f720c665a0c4c3d2d6f0b21cae4139"/><file name="284_router" hash="9e4cb67792931dd76b552305e61e125f"/><file name="287_frontend_footer" hash="51f85cf376369ebf50cf3701b469b1c9"/><file name="290_default_top" hash="c81ae31e57983c412c3f286b83a20a5c"/><file name="300_default" hash="0daa38656f72266230a6ee8162a0353d"/><file name="310_default_footer" hash="8d9422cb320d29d38c21c42f22c00c1f"/><file name="320_footer" hash="5766fab0272399ec661c78736a631dc1"/></dir><dir name="system"><file name="010_top" hash="213a55275becea72f93398fb19813039"/><file name="020_entity" hash="091e1ee91fde3b161f3da0988aa7f710"/><file name="030_footer" hash="626d555d520d969b4eba12d3b6dc32c0"/></dir><dir name="widget"><file name="010_top" hash="29a6efa02a0f04ce056cc53d0b4e2272"/><file name="020_entity" hash="acff756a0ba07434c3ffb280b90af55c"/><file name="030_tree" hash="305740f2e0e3bb6ef2959d1c60476c4c"/><file name="040_footer" hash="cef2c02165fc166d7f62359f295c776a"/></dir><dir name="wsdl"><file name="010_top" hash="17165c0a86e1cec22cf8daf487086939"/><file name="020_entity_types" hash="7c4b90a6ee31d11cfff79eac452bc574"/><file name="023_entity_comment_types" hash="99ef208d5e2cd4c0c94a4514e2c5b038"/><file name="026_entity_attribute_types" hash="9fdc466d3ee17f47abe4f3012ddf7a16"/><file name="030_schema_footer" hash="b108663b3854ef338073d82182c99e63"/><file name="040_entity_messages" hash="d3e739a2efae20883d9ebf4149c46507"/><file name="043_entity_comment_messages" hash="d515922a475bcc48492416fe5205cf48"/><file name="046_entity_attribute_messages" hash="c3374cad433dee3ceecb4ccb950f58e5"/><file name="050_porttype_top" hash="1bc699e11eacc6c8df7326525db516d4"/><file name="060_porttype_entity" hash="adeb7d5741d6578fed57e8db68e50d0b"/><file name="063_porttype_entity_comment" hash="8fdacfec6cb6383961730d5a8fd1f15a"/><file name="066_porttype_entity_attribute" hash="82406651e497f919b7ab1efcd9dc263d"/><file name="070_porttype_footer" hash="d47918d188cadf66538eb0d81b382520"/><file name="080_binding_top" hash="6c9a2fa40d2d8ce3e8f5bd69574f16c5"/><file name="090_entity_binding" hash="a09b0b6dd147a65d5ead46ad0b910174"/><file name="093_entity_binding_comment" hash="9a57fd5962d4e1f369f126dbd9439fc3"/><file name="096_entity_binding_attribute" hash="7ee2aa999385c857a4e82f85beafbec8"/><file name="100_footer" hash="fd1c8b122b4873e1e68d94929e44fba7"/></dir><dir name="wsi"><file name="010_top" hash="a0c873516a509f5d9da5f17345540ec8"/><file name="020_entity_types" hash="ad25a26d30bf2dafbcd8a514b8b04395"/><file name="023_entity_comment_types" hash="2944750eb27bd12cc57be639220da60e"/><file name="026_entity_attribute_types" hash="48a70b7e2ef28331b84adabb948ea151"/><file name="030_schema_footer" hash="6e5916b770444e599eb9b9fe9454302a"/><file name="040_entity_messages" hash="98db3bd67659f19d66b22e7ed8607d0b"/><file name="043_entity_comment_messages" hash="8ba13f08ac9abafa741777d9b34d5c5a"/><file name="046_entity_attribute_messages" hash="e2df4b87853fe7e1dc8978e5c6b43e29"/><file name="050_porttype_top" hash="5ef5138db4c8c80c945359baa23f0102"/><file name="060_porttype_entity" hash="f4c0fd664d81b2337dd675ad297c535c"/><file name="063_porttype_entity_comment" hash="c59251b07a2317a33f98121c20d7b291"/><file name="066_porttype_entity_attribute" hash="9ab778046249f0f75f37e6f7a7926f87"/><file name="070_porttype_footer" hash="6c49b132200e7cb361cc8379736af66b"/><file name="080_binding_top" hash="5fe0693515fd41176023a7b5ee52ff31"/><file name="090_entity_binding" hash="b3334a6ec6e894350104009fc604c07b"/><file name="093_entity_binding_comment" hash="a41e98f20978067107bc1d03589c1135"/><file name="096_entity_binding_attribute" hash="862d06d59664343b00c28b48e9042952"/><file name="100_footer" hash="d58e080977127430d922eec5ed9be32a"/></dir></dir><dir name="sql"><dir name="namespace_module_setup"><dir name="install"><file name="010_top" hash="b626615168f25d23e910d0ee731cd010"/><file name="020_entity_flat" hash="8e4b8c5bd1b349028a7f091610826a9a"/><file name="030_entity_store" hash="5a880c3319500d9f7a0ac2355377f91d"/><file name="040_entity_eav" hash="dd4148c35d0a6728931461e26a06d679"/><file name="050_product_relation" hash="0318d0b29d914aaf23eb2ab96fd5ceec"/><file name="060_category_relation" hash="6c4ab8177a09a19b1e9c0e608914da94"/><file name="070_comments" hash="1e3850eeca0ddb910bdc7a687e1cf161"/><file name="080_comments_store" hash="98792a81673a34296b2985e6b1ecb9eb"/><file name="090_sibling_relation" hash="98a41a2f9c90bccffa10ea294d5038f3"/><file name="100_has_eav" hash="376ee9448c597d8f5742aee9c9fddcef"/><file name="110_product_attribute" hash="067cf2c53917c651e122575cb5378286"/><file name="120_category_attribute" hash="a8bbc66944d73b1f8a8510bb74b1b898"/><file name="125_eav_options_default" hash="c2798f5b82089781ace1074bec6e7fe7"/><file name="130_footer" hash="72aa99adf9ca490f11fabcedd5290fc4"/></dir></dir></dir></dir><dir name="design"><dir name="adminhtml"><dir name="layout"><dir name="namespace_module"><file name="010_top" hash="c657e63ddce2df350b7d45c57620e967"/><file name="020_entity_not_tree" hash="9a4c1b28ee061042cc76a236da9d86a8"/><file name="023_eav" hash="a90cef461e9496016b4d5d1818ec50b2"/><file name="027_entity_not_tree_footer" hash="d41d8cd98f00b204e9800998ecf8427e"/><file name="028_entity_edit_eav" hash="d41d8cd98f00b204e9800998ecf8427e"/><file name="029_edit_footer" hash="d41d8cd98f00b204e9800998ecf8427e"/><file name="030_relation_product" hash="147ec1c3620a12c30d8c7fbf4a047bb0"/><file name="040_relation_category" hash="e0c37abbaae3c58705a8921c3f10d13d"/><file name="050_relation_sibling" hash="4b7a308623c095ba6ef28ecb70cffee2"/><file name="060_entity_tree" hash="f75243adcc56c69711cb7dca55dee7d0"/><file name="070_relation_product_tree" hash="29adcc4c866977bbda2939a48b3f9377"/><file name="080_relation_category_tree" hash="a2f99eefe2903a2bbcab8b6282c48328"/><file name="090_relation_sibling_tree" hash="87af8f9a93be9ade1f8ebd73de47b80f"/><file name="100_eav_attribute_edit" hash="01db5571ca8b30844fb404563fefcffd"/><file name="110_comment" hash="338f02e3de7f86d2b28f112c96dcf143"/><file name="120_footer" hash="e38301056eb83a4de70947444e0e047f"/></dir></dir><dir name="template"><dir name="namespace_module"><dir name="attribute"><dir name="js"><file name="010_content" hash="88a5e01babe2d4e8d45bdb69a0dcf9c5"/></dir></dir><dir name="catalog"><dir name="category"><dir name="tab"><dir name="entities"><file name="010_content" hash="14dddd04c3798f3714f5263c95335f3c"/></dir></dir></dir><dir name="product"><dir name="edit"><dir name="tab"><dir name="entity"><file name="010_content" hash="4e2496ed7414b06c0b68a93cbeba3b34"/></dir></dir></dir></dir></dir><dir name="entity"><dir name="edit"><file name="010_content" hash="457f5e7ee94eaa075549b402cc04c90d"/><dir name="form"><file name="010_top" hash="5d504dea5b45f8af43a0d6e7c9d851f3"/><file name="020_product_hidden" hash="86402e52c83df9cbae8f0af1b281b912"/><file name="030_category_hidden" hash="e2ecbfcd825531e55174a97d833d339e"/><file name="040_sibling_hidden" hash="d1b52e8c4306a5689198d8020921a466"/><file name="050_content" hash="86d631712b4dc672bbf543e72edbac01"/><file name="060_product_relation" hash="20632de5f0caa7b33fde47fa6ae91dec"/><file name="070_sibling_relations" hash="62f27a022840d3fa15f217664454ca3b"/><file name="080_footer" hash="f5b26f293440dfb08e77e30e6eab9eee"/></dir><dir name="tab"><dir name="categories"><file name="010_content" hash="5833c90e662af9e44ac764b230d3b131"/></dir><dir name="sibling"><file name="010_content" hash="44c9f6b54559c7939b0275b1211f18b5"/></dir></dir></dir><dir name="tree"><file name="010_not_eav" hash="05b8c2e11f6db22e0e3de68d18605582"/><file name="020_eav" hash="29e7479f4da2b2cdcba0838bf96369a7"/></dir><dir name="widget"><dir name="tree"><file name="010_content" hash="4fafa06db66187e73fbf4e0c525791be"/></dir></dir></dir><dir name="form"><dir name="renderer"><dir name="fieldset"><dir name="element"><file name="010_content" hash="e8718e51805c0ca1eebdfc27557f579f"/></dir></dir></dir></dir><dir name="grid"><file name="010_content" hash="6651c76539c9fbc066d14bfa5f8b6d25"/></dir></dir></dir></dir><dir name="frontend"><dir name="layout"><dir name="namespace_module"><file name="010_top" hash="15cdb696e6db3f0724b315d817774edf"/><file name="020_comment" hash="24c52d027dd42a0355d12563a4654d16"/><file name="060_list" hash="6c7e4b877f895c0159171f4e6c6a103c"/><file name="070_view" hash="b9963e0c35ccc5b228531e6623905995"/><file name="080_entity_rss" hash="da751f73d104cf1daa35e39753b4e8d3"/><file name="090_rss_top" hash="5546694e606a9b3be3167398144f1fe0"/><file name="100_rss" hash="c0d78771dd8ceb256e10dc158fa4f113"/><file name="110_rss_footer" hash="8a0ce083998ffae9647b1dfce6ff28d7"/><file name="120_relation_product" hash="ccb980dcb8b4672df02ecc58821ab7e2"/><file name="130_relation_category" hash="14472da688c261667c742a8479b8aeb3"/><file name="135_entity_comment" hash="7e811871e23a1d44b4b34779a00de792"/><file name="140_footer" hash="e38301056eb83a4de70947444e0e047f"/></dir></dir><dir name="template"><dir name="namespace_module"><dir name="catalog"><dir name="category"><dir name="list"><dir name="entity"><file name="010_content" hash="255e7a9acb16106c8708c40aa92741e5"/></dir></dir></dir><dir name="product"><dir name="list"><dir name="entity"><file name="010_content" hash="8b3559297dc3824c14d09a46a188f749"/></dir></dir></dir></dir><dir name="entity"><dir name="catalog"><dir name="category"><dir name="list"><file name="010_content" hash="46e48fce4680a1725c1c285ac61e55a8"/></dir></dir><dir name="product"><dir name="list"><file name="010_content" hash="2e394b64cb6ecbf8975083ccbe69b709"/></dir></dir></dir><dir name="child"><dir name="list"><file name="010_content" hash="5a0ecef8ff01c476373504ae2032329b"/></dir></dir><dir name="children"><file name="010_content" hash="8485f70bdc2a819f432375d643099268"/></dir><dir name="comment"><dir name="form"><file name="010_content" hash="f2f695b4da6462e954eba77a4b369ec2"/></dir><dir name="list"><file name="010_content" hash="8649e79743f7d5dc6a634d3ef656ede6"/></dir></dir><dir name="customer"><dir name="comment"><dir name="list"><file name="010_content" hash="7fb9364fe69c4d40f6514cb7fd988a03"/></dir><dir name="view"><file name="010_content" hash="09d7914ec8ea7166ed90151cc9298a7d"/></dir></dir></dir><dir name="list"><file name="010_top" hash="a7cc8748eb003a18af68f7abc7164522"/><file name="020_rss_link" hash="7053e8c95be2facf2673b3b4d7a9bc99"/><file name="030_footer" hash="bb5d1c8a7a9070c10402dc152d736c09"/><file name="040_footer_is_tree" hash="28067e09720d62f0e928a09eeee94de8"/></dir><dir name="sibling"><dir name="list"><file name="010_content" hash="63893b913cb62e847712b408caa43cfb"/></dir></dir><dir name="view"><file name="010_content" hash="709e3570777e6e3ee5cb4453940bb06b"/></dir><dir name="widget"><dir name="link"><file name="010_content" hash="f38d2755f4ffda5d801117ed1fbfce0e"/></dir><dir name="subtree"><file name="010_content" hash="d4ca6ed68bf9cd7c69a75cf2852aa7db"/></dir><dir name="view"><file name="010_content" hash="e3907ff9a83026d7a54701f55fb06d23"/></dir></dir></dir><dir name="rss"><file name="010_content" hash="98fb61cdce9133a0b68f3ed5fb00827e"/></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><dir name="Namespace_Module"><file name="010_content" hash="a41ceeea2ef52bd7108aab9e3724d6e4"/></dir></dir></dir><dir name="locale"><file name="010_global" hash="406695b232401f92114f0228223960cb"/><file name="020_entity" hash="7b3b9580e421493434ae3e498c48bbd0"/><file name="030_attribute" hash="0bc9532d35587f2225e398156cc3ef7f"/><file name="040_rss" hash="5e72d78710b03b014b69a492438d5602"/><file name="050_seo" hash="1c5889d31d3410540715b6c866966178"/><file name="060_attribute_yesno" hash="20eaf2d5eaa8224e5fa1c7a63634b1c0"/><file name="070_file" hash="8bebcdd48d5ae7b533cc53e789f03ef2"/><file name="080_product_relation" hash="b96f377dfa788f2772f2f8b7f156aebd"/><file name="090_category_relation" hash="5e8c099f6269eb2c18bac7003c40950b"/><file name="100_relations" hash="b7e6d3ed392ec8f0083588e7feb20bad"/><file name="110_tree" hash="37bf0971ca18e0e4222ae2b0d3ba6311"/><file name="120_tree_entity" hash="0ebe3d6c664ef1eece3031a0fc1558b8"/><file name="130_url_rewrite" hash="9b4c0c91f4e5001812d825503841433e"/><file name="140_api" hash="58e27bb8ef0a04a711e20207dce037a4"/><file name="150_api_entity" hash="5f79e38c8a97f2e171eedc2d5246910d"/><file name="160_api_product_related" hash="f6875de876ab6e34595e5513aa35628b"/><file name="170_api_category_related" hash="06843fd4b33897e431ac4f86190e4433"/><file name="180_api_tree" hash="99bae32405e8a3eff292b0a12fd972f5"/><file name="190_api_sibling" hash="096605fae72bf35317dc4601406a23d0"/><file name="200_entity_eav" hash="f07b6cabd42c0a2878b68d6f786f2cfc"/><file name="210_eav" hash="af526c63d99167884a226b43580fb305"/><file name="220_entity_comment" hash="81d3484f7ab23fe3fa48f691017ec954"/><file name="230_comment" hash="31344b22a3622cb2e8d16fd509579000"/><file name="240_comment_store" hash="0cfb47a807925d64f8c69d97731a0c01"/><file name="250_api_comment" hash="bf31f09d8ae78799d3f037749cf17875"/><file name="260_eav_api" hash="6bee23c604fa04bf8b97571b30a26ec7"/><file name="270_frontend" hash="dd6eb8db5b99a5d5412106f3b11f0948"/><file name="280_entity_seo" hash="69afaf0eb278d53a50f8b56b80f810fa"/><file name="290_rest" hash="5fa69e22784f680e3f6b25254c097e74"/><file name="300_rest_entity" hash="a5a9c01f79a015f1041ab61de0ddfffa"/><file name="310_parent" hash="67424563811389a605b8d2d1be287a90"/></dir></dir><dir name="skin"><dir name="css"><dir name="namespace_module"><dir name="tree"><file name="010_content" hash="ebab2fbc43a5609ca870e49ca1e5be79"/></dir></dir></dir><dir name="images"><dir name="namespace_module"><dir name="collapsedgif"><file name="010_content.gif" hash="ef74c08289e94b7aae81766fb00d4195"/></dir><dir name="collapsedpng"><file name="010_content.png" hash="0613450d25c762b6a40c51768b02462d"/></dir><dir name="expandedgif"><file name="010_content.gif" hash="3f5512a54f359343273caf7b3787ee8a"/></dir><dir name="expandedpng"><file name="010_content.png" hash="f7f28ae897708c78b28ead22c3692bb8"/></dir><dir name="line1gif"><file name="010_content.gif" hash="65b0c812c8d57ea72b84fc69a077a40a"/></dir><dir name="line1png"><file name="010_content.png" hash="4e01064a2c78b8885f65ff7a40f78c02"/></dir><dir name="line2gif"><file name="010_content.gif" hash="95fc5c58069ece5eb44e198ee53b3fe1"/></dir><dir name="line2png"><file name="010_content.png" hash="6adbb4ca64d943f5ee5528d713757fde"/></dir></dir><dir name="placeholder"><dir name="entity"><file name="010_content" hash="4b2c997fd2142a6dab492f82269dd310"/></dir></dir></dir><dir name="js"><dir name="namespace_module"><dir name="tree"><file name="010_content" hash="fbfaa20b029a6a8679c21b3b8932ab0b"/></dir></dir></dir></dir></dir><file name="system.xml" hash="d921fe7409ddf9fb30e439a4766f643a"/><file name="umc.xml" hash="a9a2d21710e90558c104f7cf08283944"/><file name="umc_source.xml" hash="04a92a6d25b470e276ca4a1ed3671d54"/></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="c2a7eacd872e0149a21f6d1b2a6712e9"/></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="1653a058cdeb4ad723493f2bbb22ef23"/></dir><file name="entity.phtml" hash="39ba62b4cf330df1136a44f1912795eb"/></dir><file name="entities.phtml" hash="c647c306a75d9212b538642d4fa5b53e"/><dir name="help"><file name="fieldset.phtml" hash="0eba0b67b3ef0935c73db56657ec98b8"/></dir><file name="help.phtml" hash="31f035951bbd8a23bf372401ebb784e3"/><file name="relation.phtml" hash="975cc452bda652141f17f9b446c9adf5"/></dir></dir><file name="edit.phtml" hash="7b65e0bd3c93f51d95fe001ae2874a09"/><file name="tooltip.phtml" hash="cb545a9f068cf348a6546295daad3834"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Ultimate_ModuleCreator.xml" hash="82c74149ad25681e1490577ddb609d18"/></dir></target><target name="magelocale"><dir name="en_US"><file name="Ultimate_ModuleCreator.csv" hash="ceeca438e9e52de58768dd89c98e4f1b"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><file name="ultimate_modulecreator.css" hash="8079fa763d027f90d98ae86ccb0a588e"/><dir name="images"><dir name="ultimate_modulecreator"><file name="collapsed.png" hash="0613450d25c762b6a40c51768b02462d"/><file name="expanded.png" hash="f7f28ae897708c78b28ead22c3692bb8"/><file name="line1.png" hash="4e01064a2c78b8885f65ff7a40f78c02"/><file name="line2.png" hash="6adbb4ca64d943f5ee5528d713757fde"/></dir></dir></dir></dir></dir></target><target name="mage"><dir name="js"><file name="ultimate_modulecreator.js" hash="b69279b7c1c8f4e2d504d52a68d0ed01"/></dir></target></contents>
|
21 |
<compatible/>
|
22 |
<dependencies><required><php><min>5.0.0</min><max>7.0.0</max></php></required></dependencies>
|
23 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Ultimate_ModuleCreator</name>
|
4 |
+
<version>1.9.4.1</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/MIT">MIT License</license>
|
7 |
<channel>community</channel>
|
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>Feature
|
12 |
+
- Support for URL rewrites for entity list pages
|
13 |

|
14 |
+
Bug Fix: 
|
15 |
+
- EAV tree entities admin tree not refreshing on save
|
16 |
+

|
17 |
+
Improvement
|
18 |
+
- Cleaned a bit the code
|
19 |
+
</notes>
|
20 |
<authors><author><name>Marius</name><user>tzyganu</user><email>tzyganu@gmail.com</email></author></authors>
|
21 |
+
<date>2014-08-27</date>
|
22 |
+
<time>06:32:57</time>
|
23 |
+
<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="d489bf7c750cbc116fea72ca06bceb2a"/><dir name="Tab"><dir name="Entities"><dir name="Entity"><file name="Attribute.php" hash="8d78446203c60b3e6928cd90fa73c01b"/></dir><file name="Entity.php" hash="e59d4aa1289e37d7a8bd4396e599254d"/></dir><file name="Entities.php" hash="c866e6b2eaedd25cb0033011a77a1b81"/><dir name="Help"><file name="Fieldset.php" hash="437cdb778be67cc82b9922fa032b8c9b"/></dir><file name="Help.php" hash="54d2bcfa013811fc9688c456912f79af"/><file name="Relation.php" hash="81b9528e757798d4972d1c3a52d48aa6"/><file name="Settings.php" hash="6716374f4607489660a8b5d9c80c1b85"/></dir><file name="Tabs.php" hash="8f7cd935aaf72666f8483b202ab392ff"/></dir><file name="Edit.php" hash="ecc7d9f78a0930e5114dc8ebc222e172"/><dir name="Grid"><dir name="Column"><dir name="Renderer"><file name="Download.php" hash="c2a8bc859e1f2a94ba5c04b0f72e8d56"/></dir></dir></dir><file name="Grid.php" hash="f39988527df06fb4b924fae0325fcff8"/><file name="Menu.php" hash="40ee71583453626a03967c822a78164b"/><dir name="System"><dir name="Config"><dir name="Form"><dir name="Fieldset"><file name="Abstract.php" hash="e6009d52ebf8103878f34624b78a000a"/><file name="Attribute.php" hash="ffab3a73feb7f37c4047081cf43419b9"/><file name="Entity.php" hash="427369fa1062bc11978710d67fe2e71a"/><file name="Settings.php" hash="61b1b50af247081a066a8af9e9e54a2a"/></dir></dir></dir></dir></dir><file name="Modulecreator.php" hash="ce93deb82c8b64d0e059e9434d2174a0"/></dir></dir><file name="Exception.php" hash="cd01fc4454c59825fce4eae9b1a8fc53"/><dir name="Helper"><file name="Data.php" hash="545caa2c818f11ccb45e79237f74312d"/></dir><dir name="Model"><file name="Abstract.php" hash="5ddddfd991de9ca6d62f5e3597642eff"/><dir name="Attribute"><dir name="Type"><file name="Abstract.php" hash="6786430eee2d5beb56298cd9085bbe81"/><file name="Country.php" hash="17013d81ef900ee3e6a9334ade997c75"/><file name="Decimal.php" hash="bf3df688974cae17f9e16b6b6bb166a1"/><dir name="Dropdown"><file name="Abstract.php" hash="a8d404f7995c95c2bd465b2956960cc4"/><file name="Category.php" hash="da47dd40ae39238a5395652a228549e0"/><file name="Custom.php" hash="f40804fac44aa660dad81476cae4a811"/><file name="Customer.php" hash="6b5f51e69c38ef99ee8d7e119c5f2346"/><file name="Product.php" hash="5da8a1ac84f65c52e4c33d865f53dd06"/></dir><file name="Dropdown.php" hash="22e88823b0edc4ea731388042891ff84"/><file name="File.php" hash="03f790458c9f3098ee987f266b7e6a75"/><file name="Image.php" hash="aa06a75f175d8c9eae11e0a8536a3948"/><file name="Int.php" hash="35a5bf8b9cd1fc772b7c4f1647d7ac6f"/><file name="Multiselect.php" hash="11558da53178821cb3dbdbf3f2fa7a99"/><file name="Text.php" hash="1649397e1bde1c2223d2656ac520bc48"/><file name="Textarea.php" hash="cb194ab2636b2b3fb26ccaa11b6b2559"/><file name="Timestamp.php" hash="740f84889cd092f999332938513c8566"/><file name="Yesno.php" hash="19a252a975a5ba304e44e49a8a5bfc88"/></dir></dir><file name="Attribute.php" hash="100203e8174b3f389e9f6fc2d5ce1c76"/><file name="Config.php" hash="9527732a429d49c3855d8f4d977bfe8b"/><dir name="Entity"><dir name="Type"><file name="Abstract.php" hash="503265801e11e97e6baa863bb8cb96a3"/><file name="Eav.php" hash="aecb3cd96c66b454538185158b3aaf98"/><file name="Flat.php" hash="c8de6e6997cf0728f2e0cdfa86a17a94"/></dir></dir><file name="Entity.php" hash="341f46e911969b80b53c08d2f334a865"/><dir name="Module"><file name="Collection.php" hash="89ae8df9e4ee5beed2d1686fe329fe3a"/></dir><file name="Module.php" hash="7daec0dbb39d88a47b18491dbd5fdbe1"/><file name="Relation.php" hash="36d6ac4d801998a32283032258f5a36e"/><dir name="Source"><dir name="Attribute"><file name="Scope.php" hash="681d3030cf2dc35b53f4e7e447db35e9"/><file name="Type.php" hash="bcc8d092e5e593600923b5b1809c2579"/><dir name="Value"><file name="Source.php" hash="abd1e4db0397711de4a098b2d0e79f87"/></dir></dir><file name="Codepool.php" hash="8d71e411fbb410136dc39853088c0128"/><dir name="Entity"><file name="Layout.php" hash="5e5058acf997c487634482199f57580a"/><file name="Menu.php" hash="4dc0dc33661f310e7e15e62ff5e4741f"/><file name="Type.php" hash="fe0b3c8e51e99abb02314ef57df4f737"/></dir><file name="Install.php" hash="f409ea5293d5e5fcaf697c7a37663c1a"/></dir><file name="Writer.php" hash="5045fd81e80ecd37a53e22412b270c68"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="ModulecreatorController.php" hash="10a36d26e4de52ac7e1b65d0b380d773"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="841cab623830270784e5752ceb1c0b5e"/><file name="config.xml" hash="aa4b93d4c82602010f7b708098c9ff24"/><file name="jstranslator.xml" hash="197089f92ccb2cf369fe7e401945ecb5"/><dir name="source"><dir name="app"><dir name="code"><dir name="Block"><dir name="Adminhtml"><dir name="Catalog"><dir name="Category"><dir name="Tab"><dir name="Entity"><file name="010_tree" hash="71ef3094dedfc7d9e414cb697e3d539a"/><file name="020_not_tree" hash="2e86dacfe0362ce6aa38d25e82524b56"/></dir></dir></dir><dir name="Product"><dir name="Edit"><dir name="Tab"><dir name="Entity"><file name="010_top" hash="dd67d1c7c6b352a71965868a06697988"/><file name="020_not_tree" hash="a7be24f5cc397ef37ca22bb40e1527e9"/><file name="030_tree" hash="bd02537f09e5d8260144eeb3704f6401"/><file name="040_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir></dir></dir></dir></dir><dir name="Entity"><file name="010_top" hash="44aa5df6aab34804fd961137d9c7720d"/><file name="020_eav" hash="d38b3883793eff2891b06995e5082b68"/><file name="030_footer" hash="dfe5fb1e14742631320317fdb64ac885"/><dir name="Abstract"><file name="010_content" hash="62e973ae6efd0e36b775d538496954d1"/></dir><dir name="Attribute"><file name="010_content" hash="37764dc55ce7b4d9aa84809327943236"/><dir name="Edit"><file name="010_content" hash="8b42c988f42c6f0bffca550b18cad8a1"/><dir name="Form"><file name="010_content" hash="a263f608e4abdc3ec96e89052b527aad"/></dir><dir name="Tab"><dir name="Main"><file name="010_content" hash="05f4aa0555d8cfd9e124f99b3d0b7d04"/></dir><dir name="Options"><file name="010_content" hash="03570e69a55e721f961425a5172369cd"/></dir></dir><dir name="Tabs"><file name="010_content" hash="2b58699bdec1699e78a56e97f54605b7"/></dir></dir><dir name="Grid"><file name="010_content" hash="fb0ce347335b8deb92c6a9eb534894a0"/></dir></dir><dir name="Comment"><file name="010_content" hash="2aad8608b533909000e8b48458da0a3e"/><dir name="Edit"><file name="010_content" hash="3a43b33ef1731abb327d58ea4454445f"/><dir name="Form"><file name="010_content" hash="233d80b778a00c2e648fb6de70984de4"/></dir><dir name="Tab"><dir name="Form"><file name="010_top" hash="5654766f5a10ea79f985348ae8e1af45"/><file name="020_stores" hash="c7dea0c3fcf3f795ab5da4d2b262f523"/><file name="030_footer" hash="064e9107e3d0c0c99f905cb537877af6"/></dir><dir name="Stores"><file name="010_content" hash="b32ca2512c5e7679aa7c8b764be57c6b"/></dir></dir><dir name="Tabs"><file name="010_top" hash="967ecca69509dd46542623ebf7997767"/><file name="020_stores" hash="ca6ebaaafcb7d002971667a1d564ae27"/><file name="030_footer" hash="4488490317047e328c140b54951a26ca"/></dir></dir><dir name="Grid"><file name="010_top" hash="da6cd2d19fefbd5be0d5fc311571ea0e"/><file name="013_store_data" hash="f570d17a1052b9a8046ba3755a023051"/><file name="016_prepare" hash="472a0698416a84ea47c82136f875f39e"/><file name="020_stores" hash="f687942567140176aa4880c33a7263b2"/><file name="030_content" hash="66542005515d3e559d08ce71a5a51f15"/><file name="040_store_filter" hash="b84a10ad4e2f39480082af313a399959"/><file name="050_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir></dir><dir name="Edit"><file name="010_top" hash="964785e013506cf5d4e05c0d28c50f7c"/><file name="020_tree" hash="e56ca7916c16b857b2d1bc5249bbd21d"/><file name="030_not_tree" hash="47fa3c2b9e77b57153b3f8a0f65a06ac"/><dir name="Form"><file name="010_top" hash="d0478b32e45e042916b28f5586ff69ad"/><file name="020_prepare_form" hash="eca2778ff92b76e6f3ac85b674e1460a"/><file name="025_prepare_form_eav" hash="ef76808baf8d37a2911843f511e1f6d2"/><file name="030_tree_top" hash="354a7fab693ceb69477eef69cc358cb0"/><file name="040_product_relation" hash="af98a2c088ac78b6d6fa8be0e61f79e8"/><file name="050_entity_relation" hash="292d2fbe7909805ecb9c214ba4e8d814"/><file name="060_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir><dir name="Tab"><dir name="Attributes"><file name="010_top" hash="e72033bd8e9dbae97171f5d98a082d58"/><file name="020_tree" hash="c2c9894426c3940418571436243c1187"/><file name="021_default_values" hash="629b42efc0b7d9399fc0d704a89bfd2c"/><file name="022_default_values_tree" hash="7dbd8dda6f0e945ce615ebdb7644654f"/><file name="023_layout" hash="6f95a6eb75f55833a3342f85635317a3"/><file name="025_after_html_top" hash="e5fc8150b1ed7bb72a00b66611a1a218"/><file name="026_after_html" hash="1592e14d6de7e9bc8e55e446a2bcc337"/><file name="027_after_html_footer" hash="a277507fa5955bce889c679c508388be"/><file name="030_footer" hash="d0ec668477e12567a13e4ccc638e455f"/></dir><dir name="Categories"><file name="010_content" hash="e20886b79464507bec2b16f55e99fc8d"/></dir><dir name="Form"><file name="010_top" hash="1ac27a852fe07bd1f7912f72744e933d"/><file name="020_image" hash="ae451284767c290d0296194d4fc3cdfc"/><file name="030_file" hash="c8b1533c27644b7292da44e3e5075182"/><file name="040_wysiwyg" hash="a9f496f0a360903d1654b19d5430bf9f"/><file name="050_wysiwyg_is_tree" hash="59014226536c7bdfaba780a6bbbb5793"/><file name="060_path_tree" hash="d484f7fa33f1f092da2b241926cbebe8"/><file name="070_parents" hash="eb406f81670d46929c473cf49a66c387"/><file name="080_attributes" hash="99af6befb259348dd3f8df1bc0abba90"/><file name="090_url_rewrite" hash="18d636d351172ac645665b5fa0666ea0"/><file name="100_status" hash="782adfdcddf0cc6e362212ec18767b46"/><file name="110_rss" hash="0639b5c95b847303dd9a78332cc7933e"/><file name="120_stores" hash="1f3467451ba06db6cd40fce76ba431e6"/><file name="130_allow_comment" hash="1e4a500f05e2047024481d4e9a7b7469"/><file name="140_add_values_not_tree" hash="e1e054e2dc6696cbcd4b24e58f251f24"/><file name="150_add_values_tree" hash="c55e02ed1b018553d2525d1259eece10"/><file name="160_get_entity_tree" hash="381ec60c1dd0dd6c814dec91e8d46582"/><file name="170_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir><dir name="Meta"><file name="010_content" hash="49d0707a5037f1810d0a441ff20ed595"/></dir><dir name="Product"><file name="010_content" hash="9933e63eb427541140837b24af8f4619"/></dir><dir name="Sibling"><file name="010_top" hash="ba8a142d41f861168b2630a942c88e33"/><file name="020_not_tree" hash="e288ac29c834ced318f1082bd4b842e8"/><file name="030_tree" hash="3b5ef23cdb0b9b567c48eada21f78dc6"/><file name="040_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir><dir name="Stores"><file name="010_content" hash="7b096cda06f6f93eb6bdc52d1c0b016d"/></dir></dir><dir name="Tabs"><file name="010_top" hash="3ae69e6c370264f0deed58e079ae154c"/><file name="020_flat_not_tree_prepare" hash="c9cdc338692f7600e8be71fb398f8c59"/><file name="030_flat_tree_prepare" hash="4f9b40a9a6f7831ed5a0da4fb5cf2be6"/><file name="040_eav_prepare_top" hash="56ff77fa7809b550070cec4143f24480"/><file name="042_eav_tree_prepare_top" hash="abb75c407e5e9c03d55d05d4402f97d1"/><file name="043_eav_seo_prepare" hash="61cffd93a3c33dbe12a5982f1a2e36f0"/><file name="047_eav_prepare_bottom" hash="3e1ed9863f0a13c2b5cd82f020421801"/><file name="048_eav_prepare_bottom_tree" hash="d7a268cbdd380f9432ae59fde52c3e1e"/><file name="049_eav_prepare_real_bottom" hash="a8b98afa000e57649d0c3817f0421c75"/><file name="050_seo" hash="831d9fce4e93ea6857db7041e74846ce"/><file name="055_seo_eav" hash="0eccfe9d8b8743400af74a7c2649a70f"/><file name="060_stores" hash="70a6a54560b40f6be67ff54042cd8e9e"/><file name="070_relation_not_tree" hash="37057553194dab96aa89776dd5e5bb41"/><file name="080_relation_tree" hash="5e3f27c006232d637464126d87eded50"/><file name="090_product_relation_not_tree" hash="a906db60873d481e1a1551d7ac9e89e8"/><file name="100_product_relation_tree" hash="b03028a427b64a825f7fa0ac6941f212"/><file name="110_category_relation_not_tree" hash="f2c7186e89f310c6c30ae16feb960cf0"/><file name="120_category_relation_tree" hash="4ce1e47bf3a1a97c5613e97d5ff5c08f"/><file name="130_end_prepare_not_tree" hash="eeb1743c5582f0b0d6bb7315e976ed79"/><file name="140_end_prepare_tree" hash="eeb1743c5582f0b0d6bb7315e976ed79"/><file name="150_footer" hash="750622e2965e5bcb8bf88674614f0ec2"/></dir></dir><dir name="Grid"><file name="010_top" hash="dc1ae56bab399b8687fc55da8a040658"/><file name="020_parents" hash="694c129db89ef3095f5b0dcdbf61f12e"/><file name="030_name_attribute" hash="a771e41d5af27b91a9595f9d642299ef"/><file name="040_grid_attributes" hash="4ef4f2cd9efbef4cb4d0638d163190a8"/><file name="050_url_rewrite" hash="4f688b429c00490a909e0476f42b8c39"/><file name="060_stores" hash="eea00206f5570b3aef5f7980f0cbbd3a"/><file name="070_created_at" hash="bdffe8831ecdada3514d4c9cda0514e8"/><file name="080_updated_at" hash="e732b86e31ae7d14d309f98c1a2405cb"/><file name="090_columns_footer" hash="ed6bcf9d2a0f66b4a7c5fbccff5a6941"/><file name="100_eav_functions" hash="d972bd0811ec04e2bb851305a1b0ef2c"/><file name="110_mass_action_top" hash="46e42d2d57468e2ced716c77e41bb010"/><file name="120_mass_action_flags" hash="ee39259db1169a85c024b0d05e7baedd"/><file name="130_mass_action_parents" hash="529e188155dd0cbc382b8228caccbf70"/><file name="140_collection_end" hash="8d6cbd0cbae4a7c3ca0add81f97ff5f2"/><file name="145_collection_walk" hash="006d866e55eee02fb6767a5c6ceb955d"/><file name="150_store_filter" hash="b395005eae63f8b30fbddc15057281f2"/><file name="160_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir><dir name="Helper"><dir name="File"><file name="010_content" hash="d355e5da535b3e0cfccb5d217e1a170e"/></dir><dir name="Image"><file name="010_content" hash="e157ea8cd01b05b55eecda599191fc3f"/></dir></dir><dir name="Tree"><file name="010_top" hash="727a04df04b9b80db6cefdc1b4c60419"/><file name="020_store_switcher" hash="b6d1e1a1742425c0b3f8a02ee8f64d32"/><file name="030_content" hash="2055bf21f85a1b953664e2aaeb3b763c"/><file name="040_eav" hash="5deee6fe249f7ea1ddc60b8276e3758c"/><file name="050_methods" hash="0c4d45292eb83da095668795585ed264"/><file name="060_store_switcher_block" hash="9ebb73a790da8983dfc85574af127399"/><file name="070_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir><dir name="Widget"><dir name="Chooser"><file name="010_top" hash="f5bc94317c2c6c0d14882ba15eb6407b"/><file name="020_not_tree" hash="9fee15af4f12185d3197293692c338a3"/><file name="030_not_tree_eav" hash="0d63352bbb0abc265ab13da33c2204b2"/><file name="040_not_tree_content" hash="48e22a4e365563c69632bb74d0db99de"/><file name="050_not_tree_store" hash="b26d7218d7bcff222c679aa5e07c8e78"/><file name="060_not_tree_footer" hash="345e81687c80d6119461c5cade1edd00"/><file name="070_not_tree_flat" hash="a3ebee24e32e43eb5b6aae582ae5e449"/><file name="080_tree" hash="f857bd064de6c07d1599b47f0ffd9d1a"/><file name="090_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir></dir></dir><dir name="Helper"><dir name="Column"><dir name="Renderer"><dir name="Parent"><file name="010_content" hash="da6055368584a12c81c3e577fa9e2475"/></dir><dir name="Relation"><file name="010_content" hash="2aaedc2f263a540e3e9418357d4e57c9"/></dir></dir></dir><dir name="Wysiwyg"><file name="010_content" hash="9ed57fe215b6d0e0169431902eb2afd8"/></dir></dir><dir name="Module"><dir name="Helper"><dir name="Form"><dir name="Wysiwyg"><dir name="Content"><file name="010_content" hash="7275f215b7d9172874faad0adc8fa936"/></dir></dir></dir></dir><dir name="Renderer"><dir name="Fieldset"><dir name="Element"><file name="010_content" hash="0d61c16f0f376875912c71817afd6846"/></dir></dir></dir></dir></dir><dir name="Catalog"><dir name="Category"><dir name="List"><dir name="Entity"><file name="010_top" hash="45187464be8d2fcba46051d82bb50d94"/><file name="020_store" hash="5d4378ac1469cee33c19375021c8c9d6"/><file name="030_eav" hash="378270a4fb279491fa8237f7232d9661"/><file name="040_not_eav" hash="c61d22711029de35ea23c8cc5582c37d"/><file name="050_footer" hash="3310177fcbadb4048cb5130d57da91dd"/></dir></dir></dir><dir name="Product"><dir name="List"><dir name="Entity"><file name="010_top" hash="05ebc701573a2381f1929d0f3fd1d6b8"/><file name="020_store" hash="5d4378ac1469cee33c19375021c8c9d6"/><file name="030_eav" hash="62e0e3f434eac5d7646ca67253b94657"/><file name="040_not_eav" hash="c61d22711029de35ea23c8cc5582c37d"/><file name="050_footer" hash="0f75591667e0afae13d399833a7a8a1b"/></dir></dir></dir></dir><dir name="Entity"><dir name="Catalog"><dir name="Category"><dir name="List"><file name="010_content" hash="6c201af0ef142175a8078a93138a098b"/></dir></dir><dir name="Product"><dir name="List"><file name="010_content" hash="ffd30c32262494c2378583817d08cf59"/></dir></dir></dir><dir name="Child"><dir name="List"><file name="010_content" hash="6da876bcf90940c58da4bcbd01cab880"/></dir></dir><dir name="Children"><file name="010_content" hash="d34a0f45f86b2573310fa4fb423fac38"/></dir><dir name="Comment"><dir name="Form"><file name="010_content" hash="a22dbea3608170f316f8a4eec14229ad"/></dir><dir name="List"><file name="010_top" hash="f8bf579c5879e621e7df165465ec744f"/><file name="020_stores" hash="1a60133a8449a1bd4d25a2bab577770b"/><file name="030_footer" hash="8610627b14ec5f50ec149fbbcbc3be17"/></dir></dir><dir name="Customer"><dir name="Comment"><dir name="List"><file name="010_top" hash="e16c62c85566442b4877ae0263c203e5"/><file name="020_store" hash="f07cc10c13871c59a0c0300dce0ec56c"/><file name="030_filter_eav" hash="e6d6c6009d19f1b98520902649a6a30b"/><file name="040_filter_flat" hash="4321e0b31704ca31099f3ed39010a7c0"/><file name="050_footer" hash="ada9954ac40ef54c9e34df34e386df61"/></dir><dir name="View"><file name="010_content" hash="95db6a28de6c1692727a03eed355e86c"/></dir></dir></dir><dir name="List"><file name="010_top" hash="ce7935dd65bafcf532cb160cc7788803"/><file name="020_stores" hash="1a60133a8449a1bd4d25a2bab577770b"/><file name="030_attributes" hash="7bebacd043bc336aa31ccdc9dc266d89"/><file name="040_status" hash="b69d2141c5536497d662c0e8cdba19ed"/><file name="050_not_tree" hash="d20e7e08d7ee8ada6175dc6fe78ae558"/><file name="060_tree_flat" hash="e5e7821bd8b6c235c81cc27e24ef3011"/><file name="070_tree_eav" hash="5a0cfa7f968eef1206c0ac790d95071e"/><file name="080_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir><dir name="Rss"><file name="010_top" hash="f7c37e18de4f2c414c433061b47a9eba"/><file name="020_stores" hash="d0e26ab44bfcc5cdf03ec07ee1892d3c"/><file name="025_eav" hash="a807bf30d9099707957723afde2c551b"/><file name="030_content" hash="dc62f579677a86de9388a45ac4a098d8"/><file name="035_tree" hash="ee870fe0ca6aaf095331706b990c0bbe"/><file name="040_attributes" hash="60b1b3fab87fd4e4dcbc2f0520e03d96"/><file name="050_footer" hash="0b4ea347619c4e5e1a22c292cac994f3"/></dir><dir name="Sibling"><dir name="List"><file name="010_content" hash="b04170108593b8e355f647064e4009f2"/></dir></dir><dir name="View"><file name="010_content" hash="20fbe7cdcb216c66f1c5251e970b5537"/></dir><dir name="Widget"><dir name="Link"><file name="010_content" hash="c4fa4367c50464a64468f33ed21c743c"/></dir><dir name="Subtree"><file name="010_content" hash="8e67bb76eaf6429add47d0cbc04cfb72"/></dir><dir name="View"><file name="010_content" hash="d5e6f76c199865aa9ed3ecf94cf504c7"/><file name="020_not_tree" hash="3c3223f687e821acadbd7bde19bd2cfd"/><file name="030_tree" hash="9bd327687df296fd0711c6447dce9125"/><file name="040_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir></dir></dir><dir name="Rss"><file name="010_content" hash="14b33c43cdc5ad5c6ea380202a5164bc"/></dir></dir><dir name="Controller"><dir name="Adminhtml"><dir name="Module"><file name="010_content" hash="f510ed431b5bab046332cd6f3c38769e"/></dir></dir><dir name="Router"><file name="010_top" hash="6a76e84bcfb10be23d0eb33d8d343449"/><file name="020_entity" hash="11eff30f3428dca6cc3cc389d10f9aed"/><file name="030_footer" hash="d40d12171626629c0fae3734f97a843f"/></dir></dir><dir name="Helper"><dir name="Category"><file name="010_top" hash="392f1c1f15aef77b14d030142e9e0911"/><file name="020_content" hash="b0f85cae35d0ea79785366cdbafb8c90"/><file name="030_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir><dir name="Data"><file name="010_content" hash="8f198e3360c8e7521d742cacdd476508"/></dir><dir name="Entity"><file name="010_top" hash="2fde677bbbfc2e09fd17262124f74a13"/><file name="020_create_list" hash="cb1d306d2a2c2e5f2f70d24f4d9c40f4"/><file name="030_breadcrumbs" hash="a46e398f83bd4082a7a152d749dd1f61"/><file name="040_tree" hash="08344c280e0fd774758c61a4cc4e44c8"/><file name="050_rss" hash="520dda1d6fc1865d1ae9df572b620e06"/><file name="060_file" hash="9ed3e363751611299e4e45aecdc1fd49"/><file name="070_eav" hash="45848ed420d251949373264ba057c741"/><file name="080_footer" hash="df3995adfef69bc118334aef3a6911ad"/><dir name="Image"><file name="010_content" hash="4ea39c0d2c473ffe77bfc1137e4dc235"/></dir></dir><dir name="Image"><dir name="Abstract"><file name="010_content" hash="c8088806800b22611ee521e473562912"/></dir></dir><dir name="Product"><file name="010_top" hash="f1ce7ecd9ddc4aa8b2db8c2565dbb8a5"/><file name="020_content" hash="bdce693f564f5eba013a31521e405058"/><file name="030_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir></dir><dir name="Model"><dir name="Adminhtml"><dir name="Observer"><file name="010_top" hash="45fae6e032afa21958f2fb7772d10d55"/><file name="020_entity_product" hash="173aaa3b9c38a62ad3ff6f8e64bbfa5a"/><file name="030_entity_product_save" hash="ba94bb27ccd3509ac4c5f82e4554ca7e"/><file name="040_entity_product_save_tree" hash="461d0c5305ace01323b5e007dc4197cd"/><file name="050_entity_category" hash="b1e6c102cb60ca8891ae3d77c529514c"/><file name="055_entity_category_tree" hash="7706c91cc09a7823fcaea416cec9fbfc"/><file name="060_entity_category_save" hash="8f7e379ebc7263da3999ee82250c0bfd"/><file name="070_entity_category_save_tree" hash="081d7667b0b3455880cce2704646c6e1"/><file name="080_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir><dir name="Search"><dir name="Entity"><file name="010_content" hash="430bc31e965daaeb9d58e27010bc6ce9"/></dir></dir><dir name="Source"><dir name="Yesnodefault"><file name="010_content" hash="4b65106d152b7f525f69b92e8ac630fe"/></dir></dir></dir><dir name="Api2"><dir name="Entity"><file name="010_top" hash="1c1fafa410c7f3594a382b60cd82b895"/><file name="020_eav" hash="c2009e3f271b934758c006563688f013"/><file name="030_footer" hash="df3995adfef69bc118334aef3a6911ad"/><dir name="Rest"><file name="010_top" hash="6943d53a27e5be13125d02cafd65a8a4"/><file name="015_tree_filter" hash="118d710b629243636f8bee1ccc0ca540"/><file name="020_store_collection" hash="2e424d6ea253d9d31e3cab3f314c3f8f"/><file name="030_collection_center" hash="d7dfdbb2d4155b227ae8b7419a872b36"/><file name="040_url" hash="2740a317d14cdb1bce61c804e1a30fee"/><file name="050_center" hash="26bb3431af58671f8a463bd2e0502bfe"/><file name="060_eav" hash="700b2c2a42b32d2673bfd66da6b58dbd"/><file name="070_load" hash="1c27ea317ad3606042e0bd0e02d7fc8e"/><file name="080_store" hash="4eecd5e32bd395f0cae0f774f2409528"/><file name="090_footer" hash="b2309d4a6f23d5628e45ae91e5f0bfe3"/><dir name="Admin"><dir name="V1"><file name="010_top" hash="5b5d86ac37f2e7dc488bc218617611ee"/><file name="020_tree_filter" hash="118d710b629243636f8bee1ccc0ca540"/><file name="030_footer" hash="c4e2e6415f3967822a7824b592f1a9f1"/></dir></dir><dir name="Customer"><dir name="V1"><file name="010_content" hash="f81f187ca29560a66102e518f7559ba8"/></dir></dir><dir name="Guest"><dir name="V1"><file name="010_content" hash="b6fc9dd8769b27d28722b67c267f956c"/></dir></dir></dir></dir></dir><dir name="Attribute"><file name="010_content" hash="8c70785be3fba9e4293bf460f8b4978e"/><dir name="Source"><dir name="Country"><file name="010_content" hash="c2b0da3332b0ffe9874eb5e0021ab7a6"/></dir></dir></dir><dir name="Entity"><file name="010_top" hash="31f795dbbcc01e5c599ddfbf5cfbe36d"/><file name="020_var_sibling" hash="4b7512938ed84c1851008644e1142626"/><file name="030_var_product_relation" hash="0a235d5a42529098101a1db4a7e09a7c"/><file name="040_var_category_relation" hash="acc309d3f08cd90366b56f05b32c660e"/><file name="050_construct" hash="08d00c8908572e0b0b997f5a81ed7e2b"/><file name="060_url" hash="e4b59be60c17bb5916f7693a9d804520"/><file name="070_url_rewrite" hash="68f3bace5d21beb76ecae3a14836a3d2"/><file name="080_editors" hash="b1eee42fd1b5bd76852673f6e720a9ca"/><file name="090_after_save_top" hash="3e696a9ed8b6bb6bb17a9549080fde09"/><file name="100_after_save_product" hash="ebbe3a0c8e4263543e1eab8390c58c4f"/><file name="110_after_save_category" hash="d62441af6e2443c374e2d409bc7f123c"/><file name="120_after_save_sibling" hash="03d3fd215da4502784f499bfcb0dfc80"/><file name="130_after_save_footer" hash="bdee8f14a98fb1d71110feeedfa6e5cc"/><file name="140_product_relation" hash="b935922e8a4cc2fca7dc2ef429a7071a"/><file name="150_category_relation" hash="6a19b688bb96f42cfa6f2a192cbbd979"/><file name="160_sibling_relation" hash="365a712f9a1797d56462f936d8898d44"/><file name="163_children_relation" hash="4778629c5b6175577b0659925afaa285"/><file name="165_parent_relation" hash="a5e6b9434dd2b570645d5cb54b36ecc2"/><file name="170_tree" hash="08fe1c89e0c59c1ecb8cf8cf9742f457"/><file name="175_eav_default_attribute_set" hash="a7d8bcce3193f0fcc36ab51bb357f1ac"/><file name="180_allow_comment" hash="8cd61a9ca67829edbe9d68c23727100a"/><file name="190_default_values" hash="097d3f12cda0e3cf3abd506dcdd1ba79"/><file name="200_default_values_rss" hash="646194a1ca9053973723596c20330800"/><file name="210_default_values_comment" hash="6b94a24151b5f8e646afa3b0f466e860"/><file name="215_default_attribute_values" hash="3cf469c78b16513f851023cab27e663b"/><file name="220_footer" hash="0f02e5c5b98bdf5aa1a781b00676adf1"/><dir name="Api"><file name="010_top" hash="6fd8834981a39002193c5dbd803a0073"/><file name="013_eav" hash="9470ddabf3ae917f5c1a7c64ab828e96"/><file name="014_tree_filter" hash="c767d9267165ada747dd6e38b66dd56a"/><file name="016_content" hash="715afd3c921c488be03ca702fcc48398"/><file name="017_add_eav" hash="23e74a43cae5808801c43e75522e16aa"/><file name="018_add_end" hash="c6cf5082c2aca919313c81723d94c7de"/><file name="019_update_eav" hash="79e99889476117fedf4ba4208cb7dc44"/><file name="020_update_footer" hash="a06789ebc0c9a1a0a9c95ee1e1d07558"/><file name="024_product_relation_info" hash="d8c79d9993895ddae6b22656ec00003e"/><file name="030_category_relation_info" hash="860d30c4a465eb9a911c5463e41b2861"/><file name="040_sibling_info" hash="18d4d13b426a7ee501077968fab64553"/><file name="050_info_footer" hash="f5cc640d359f31cd56e688615e914e76"/><file name="060_tree" hash="164eac71584eb3498f072f346cdfcd3f"/><file name="070_product_relation" hash="f09f9bd9b0a6b330a75b783e4bf759c1"/><file name="080_category_relation" hash="0a353f9e41824ed8cd1c718235189b00"/><file name="090_sibling_relation" hash="963e92fcb74d02267de706cc7b485077"/><file name="095_sibling_relation_tree" hash="c18bfc04bc1de27d1c7d69bd7cfb57c2"/><file name="097_get_attributes" hash="cbc4a2bab7afd5b761bde5cd6f15ae5c"/><file name="098_get_api_data_flat" hash="f5825e7a144f02a37d2ca0eb35e3418a"/><file name="099_get_api_data_eav" hash="c4ef595faa4d4a4e200badc6bceae5f8"/><file name="100_footer" hash="df3995adfef69bc118334aef3a6911ad"/><dir name="V2"><file name="010_top" hash="71c410ce154cf8f19c7c092033617dab"/><file name="020_product_relation" hash="4f8a836af7c07103a2458eb1a5934eb7"/><file name="030_category_relation" hash="fca88f5026f5362ebb02efb84e6960b3"/><file name="040_sibling_relation" hash="91a324ff552519e703c32f11f7eb53bb"/><file name="050_footer" hash="967560f87a90d6f3ce298622c3022261"/></dir></dir><dir name="Attribute"><dir name="Api"><file name="010_content" hash="b604da1dd0cb4d6bfe781fccf908d98f"/><dir name="V2"><file name="010_content" hash="2bc0b18f3500e13ac707fac0f0db22d0"/></dir></dir><dir name="Backend"><dir name="File"><file name="010_content" hash="4a53a37506ec061f5c18b5fcae4ccb2e"/></dir><dir name="Image"><file name="010_content" hash="d890cc8ca52dc509387edcc41ab615e7"/></dir><dir name="Urlkey"><file name="010_content" hash="0b984983ce537c8db91dad4a81a3ba7d"/></dir></dir><dir name="Source"><dir name="Attributecode"><file name="010_content" hash="d2a8fa231aaeb8157b228a744f60ce91"/><file name="020_eav" hash="565eab6bdde007ce5549c4c04f53195c"/><file name="030_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir></dir></dir><dir name="Category"><file name="010_content" hash="843bad4119f9596e10159a5863f38c3b"/></dir><dir name="Comment"><file name="010_content" hash="558285d2e72d7b1baa581e5a4310f72f"/><dir name="Api"><file name="010_content" hash="8116ff11103d0bbb2063aebecbc96915"/><dir name="V2"><file name="010_content" hash="70ccd2ca6adb5d2677d5d364dfbf28ae"/></dir></dir></dir><dir name="Product"><file name="010_content" hash="51a5166350a2362d09e446e8c90ea40f"/></dir><dir name="Sibling"><file name="010_content" hash="10f829bac28892b7b87cde0d257f0196"/></dir><dir name="Source"><file name="010_top" hash="95a53880e82a27f59c59cc757daab698"/><file name="020_eav" hash="face552e254a9d5cb270590d66014427"/><file name="030_footer" hash="62834cfd6dd511f091c6036327f083bf"/></dir></dir><dir name="Observer"><file name="010_top" hash="2f39cf94f4778240b136a34d80ce1eae"/><file name="020_entity" hash="3be4e17190b2528d881cd9e9ef8f33aa"/><file name="030_footer" hash="54adfbade96adb4d8eb64b60f1762539"/></dir><dir name="Resource"><dir name="Attribute"><file name="010_content" hash="1dec815470580eb3bb649dad41d3f1a6"/></dir><dir name="Eav"><dir name="Attribute"><file name="010_content" hash="8f1e4a80ed73fb79bfda6c24d9fa54d3"/></dir></dir><dir name="Entity"><file name="010_top" hash="52ed0ddb8d8c3c5ab91ff55d8cd0e712"/><file name="020_tree_var" hash="803cd2c9fb0e326a8da7324d646772bc"/><file name="030_constructor" hash="6d6df4466051b610eef517de022e1565"/><file name="032_eav_construct" hash="a23e3d0786a73b5a9af2183614a0a985"/><file name="037_store" hash="a1e166e91511d02049837f550e485d57"/><file name="040_not_tree" hash="a0db425c376f08808ca74a8570ebc9bc"/><file name="045_before_save_multiple" hash="bd778b2226c5b1ff68b993d068b0eb06"/><file name="050_tree" hash="40c503c5d8c152801193aae4a6306c9c"/><file name="052_tree_store" hash="0343050748d07930db2d0009a0715cd6"/><file name="053_tree_after" hash="2d2cbab84a8052b25e1b37fed79ce638"/><file name="055_tree_eav" hash="b0f032390da9245957ebb9be758a2706"/><file name="060_tree_before_save_no_url_rewrite" hash="d0bc2fe70ff868d212e3698fdf90fe14"/><file name="070_eav_tree_before_save_url_rewrite" hash="d0bc2fe70ff868d212e3698fdf90fe14"/><file name="080_tree_before_save_url_rewrite" hash="e36fcd134b8f611d2efc466aff42280c"/><file name="090_content" hash="438df7ae371ed58cfd8fa7e805a351b1"/><file name="100_url_rewrite" hash="772b39b033f271a34aa22df73a041672"/><file name="103_url_rewrite_store" hash="2a48d4e67762841635078c3f53fc0a16"/><file name="107_url_rewrite_no_store" hash="fd7796f4e7b45835b69d18f5c1c36969"/><file name="110_url_rewrite_before_save_not_tree" hash="ad6af13f19f703ec1a8f2df31ec5defc"/><file name="120_url_rewrite_eav" hash="329d8134036b7752b137f2249f8d1440"/><file name="130_footer" hash="df3995adfef69bc118334aef3a6911ad"/><dir name="Attribute"><dir name="Collection"><file name="010_content" hash="4a4ecbc27408f93a04d87b7097d6ba64"/></dir></dir><dir name="Category"><file name="010_top" hash="39aaf309aada910997d87b1a2dca71db"/><file name="020_not_tree" hash="395092f56c11e09ec1ed3724d2aa319d"/><file name="030_tree" hash="1a27671b95fbc88a4e2309cbc55300aa"/><file name="040_footer" hash="df3995adfef69bc118334aef3a6911ad"/><dir name="Collection"><file name="010_content" hash="ad079021de3491eead24d4b2cf009fb5"/></dir></dir><dir name="Collection"><file name="010_top" hash="e2aac1dc442877c27b919bb64b609983"/><file name="020_top_store" hash="02ac73aafce3b0f45fb49063d8d138e8"/><file name="030_content" hash="fb287480f5f5c581cd3415cfbb4d880f"/><file name="040_store" hash="d8db10c2a523f91f9b6416a746db75c2"/><file name="050_tree" hash="12df937d796c84906cb8d935cd6d4032"/><file name="060_not_tree" hash="aa562dd58bc027412d1cb2b1ee49e26b"/><file name="070_product_relation" hash="1546d5a1607cd6b36687dad4d8ffc447"/><file name="080_category_relation" hash="750d894c947bf1b965c4020f5b5aad34"/><file name="090_sibling_relation" hash="c23388818a8a79df074a74721aa95902"/><file name="100_footer" hash="f53d84c0a99e10a5839cbe00d7758894"/></dir><dir name="Comment"><file name="010_top" hash="c27763a3ceebc3040d72625c83f61fac"/><file name="020_store" hash="3c2ecae139ef84007951cf382e3b91d2"/><file name="030_footer" hash="df3995adfef69bc118334aef3a6911ad"/><dir name="Collection"><file name="010_top" hash="ab17d39abbecb97d7f4b0050f8a73153"/><file name="020_top_store" hash="02ac73aafce3b0f45fb49063d8d138e8"/><file name="030_content" hash="fb287480f5f5c581cd3415cfbb4d880f"/><file name="040_store" hash="40b8268a6b02d72e102aa6a8010c8d25"/><file name="050_footer" hash="f53d84c0a99e10a5839cbe00d7758894"/></dir><dir name="Entity"><dir name="Collection"><file name="010_top" hash="c07f6aa18d1deb31f2ca3d337c487f15"/><file name="020_store_var" hash="3620225301b89a45fa4c15b7eb9c4b7a"/><file name="030_construct" hash="f5359fb3850daff182c56af87ffe2a49"/><file name="040_construct_store" hash="a4e310f526aedfdc272bd0506575b47f"/><file name="050_content" hash="9a2d9499cd23a37d7b7bf38fb1074e43"/><file name="060_eav_title" hash="708315d25bb5703319b586075e3c854c"/><file name="070_more_content" hash="811fe686230a300c3a7cd4a6124f6b2f"/><file name="073_select_count_store" hash="aa326fbcfdd7292d99b0207c87db1348"/><file name="075_select_sql" hash="119d632bcf5e5f00de1b3e82de27bb0c"/><file name="080_store_top" hash="42aac25b822ee9a76bf90ed29086c89b"/><file name="090_flat_store" hash="e5fa3cb0b097373b7b9ccdc207ba7607"/><file name="100_store" hash="40e089a5b2e560b3704c558a29ff853d"/><file name="110_filter" hash="f06c225b111cd561ea42442cbddc820b"/><file name="120_store_filter" hash="3a97b2f851b75e134d9386eab2864fb7"/><file name="130_footer" hash="cf9e3a21123b393055caace4283d9cf4"/></dir></dir></dir><dir name="Product"><file name="010_top" hash="54bee728d2b28478580d9775b465fe0c"/><file name="020_not_tree" hash="c1f8116878e4bc7f55474793f5ea8fc1"/><file name="030_tree" hash="ce58097cbcd22db0917b94672f007fb5"/><file name="040_footer" hash="df3995adfef69bc118334aef3a6911ad"/><dir name="Collection"><file name="010_content" hash="e09ca44678a76f7a1a62078dec473ed8"/></dir></dir><dir name="Sibling"><file name="010_top" hash="63ad063ff499996377e437e1c982ee42"/><file name="020_save_relation" hash="1bb5232b3965901d947a8e93555ebde3"/><file name="030_save_relation_tree" hash="8fd13f972d33aa73064c524fc6b5eed1"/><file name="040_footer" hash="df3995adfef69bc118334aef3a6911ad"/><dir name="Collection"><file name="010_content" hash="d7c1feb03479792547216ef160201fb3"/></dir></dir><dir name="Tree"><file name="010_top" hash="d94eb147e0b86237b8571ec56408d751"/><file name="020_eav" hash="756d3fa32a2607a3fe1179fd0dbcb89f"/><file name="030_content" hash="f93f44659f99d936f6114dd5d12f2b25"/><file name="040_flat_collection" hash="18a3ae2dc1fdb9b4ad8612942878b735"/><file name="050_eav_collection" hash="dda84ce3ad429c1311147aedfb1e7200"/><file name="060_footer" hash="ec6aa607fd5a32c77f6c69883f26bd5e"/></dir></dir><dir name="Setup"><file name="010_top" hash="10ddb159051eeb6b5f3a365075df6c27"/><file name="020_eav_top" hash="8fbeb530b4e7be6b20feffa4055a397b"/><file name="030_eav" hash="2a67d14756e724608b88947dbce2f2a2"/><file name="040_eav_footer" hash="e239c95376c76b802f24d1d0e75e6323"/><file name="050_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Module"><dir name="Entity"><dir name="AttributeController"><file name="010_content" hash="22b48b83e785b7a3ab39f6f2df017b2d"/></dir><dir name="Catalog"><dir name="CategoryController"><file name="010_top" hash="da38228f766c1f6110b3eee4f29aa3ff"/><file name="020_not_tree" hash="eeccc102e390d8ef2e5bd9a35caf5d51"/><file name="030_tree" hash="498b2762986db20e32272298356b46f1"/><file name="040_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir><dir name="ProductController"><file name="010_top" hash="017c2ad6dd7dcafa16456f8a72ba7530"/><file name="020_not_tree" hash="e8227936a2baf50dc23ea45dd3e689c0"/><file name="030_tree" hash="5ea06f642a2eb06c325383bacf5fd0a2"/><file name="040_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir></dir><dir name="CommentController"><file name="010_content" hash="710884a2484cf47da0094774a46491b6"/></dir><dir name="WidgetController"><file name="010_top" hash="401bc2877ec22157889b662ad7369bca"/><file name="020_tree" hash="4ca3ce9a440967216f09b7b0daf85280"/><file name="030_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir></dir><dir name="EntityControllerEavNotTree"><file name="010_top" hash="5d2787a18e2c2c2deff29843ba134ab7"/><file name="020_save_product_relation" hash="5f64d703ad51f457791021034dac9a22"/><file name="030_save_category_relation" hash="97e2d1bb3c452bc1977c6cc29762266a"/><file name="040_sibling_save" hash="e5a3043a283aafc6c202db9210d26b0b"/><file name="045_sibling_save_tree" hash="5798921bd354c057e3b952885f068814"/><file name="050_middle" hash="9b65758c552847e9511b71b64f6e4c11"/><file name="060_mass_action" hash="4760d1e79c619d606ddfad74f72fdd27"/><file name="065_mass_parents" hash="15d0f2a1dc964f5c2779fa53e09e5840"/><file name="070_product_relation_actions" hash="dff5825fb9ffdcdf851ddf1e78331c2e"/><file name="080_category_relation_actions" hash="5a1adebee4394d06171f9f0dc74e63eb"/><file name="090_sibling_grid" hash="9f437e1f0ff316bc4f08ffb19b8471e9"/><file name="100_sibling_actions_tree" hash="ec816c2575fdd3d5921decf6c486215e"/><file name="110_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir><dir name="EntityControllerEavTree"><file name="010_top" hash="ebd5ae7a078df0a90473cde61203dc29"/><file name="020_product_data" hash="ef35afd04bfedbdd9a08dbb2254eabdd"/><file name="030_category_data" hash="97e2d1bb3c452bc1977c6cc29762266a"/><file name="040_sibling_data" hash="cf7e5061ac1cf2d8600e5f545954de2c"/><file name="045_sibling_data_tree" hash="5798921bd354c057e3b952885f068814"/><file name="050_real_save" hash="cedbb11e16dab61867f9cfa8182da39b"/><file name="060_product_relation_action" hash="3827c87fbd6c722791ab202a385deff4"/><file name="070_category_relation_action" hash="2993db7b85b7164b88cd8d9ef2fd92c6"/><file name="080_sibling_actions" hash="58e028e693705952165fe5677ccc543d"/><file name="090_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir><dir name="EntityControllerFlatNotTree"><file name="010_top" hash="c42ffcf05fbe24b0828ea4b5f0abe0bd"/><file name="020_upload_image" hash="8eb947a4dbf6989e635fd5ce1381d0d0"/><file name="030_upload_files" hash="424e24cfae698c29d36d405d060617f2"/><file name="040_save_product_relation" hash="5f64d703ad51f457791021034dac9a22"/><file name="050_save_category_relation" hash="97e2d1bb3c452bc1977c6cc29762266a"/><file name="060_save_sibling_relation" hash="4857f358e471ec22bb35b893b5e8aaab"/><file name="070_save_sibling_relation_tree" hash="5798921bd354c057e3b952885f068814"/><file name="080_save" hash="a74adf52f0b222e1a30990e75e1f2860"/><file name="090_exception_upload" hash="ca7b53f3c03d0c3e0c926ad312ef1981"/><file name="100_exception" hash="00f90ef0513b82fffc0f19585ac7cd8b"/><file name="110_center" hash="c74f082a97590533a66550d04cd28501"/><file name="120_mass_update" hash="3ace1d78a8dab8648a85047515395bbf"/><file name="130_mass_parents" hash="15d0f2a1dc964f5c2779fa53e09e5840"/><file name="140_product_relation_actions" hash="dff5825fb9ffdcdf851ddf1e78331c2e"/><file name="150_category_relation_actions" hash="5a1adebee4394d06171f9f0dc74e63eb"/><file name="160_sibling_actions" hash="eded044ea2c515756bf78dbbd48154ca"/><file name="170_sibling_actions_tree" hash="ec816c2575fdd3d5921decf6c486215e"/><file name="180_footer" hash="1de3e8c1cf941195894ba438de23b6cf"/></dir><dir name="EntityControllerFlatTree"><file name="010_top" hash="399f46b7f4f1ed5e05223ef4d6b33e69"/><file name="020_wysiwyg" hash="d43e8888ad2c3a2be5e9ab4f6c8ea112"/><file name="030_save" hash="89499414fd87eee842bf7c68c5b72ace"/><file name="040_upload_image" hash="8eb947a4dbf6989e635fd5ce1381d0d0"/><file name="050_upload_file" hash="424e24cfae698c29d36d405d060617f2"/><file name="060_save_continue" hash="517334331bc285ac1fd2a395bb110af6"/><file name="070_product_data" hash="69fb7236c7346aa998a68aee646904c6"/><file name="080_category_data" hash="97e2d1bb3c452bc1977c6cc29762266a"/><file name="090_sibling_data" hash="cf7e5061ac1cf2d8600e5f545954de2c"/><file name="095_sibling_data_tree" hash="5798921bd354c057e3b952885f068814"/><file name="100_real_save" hash="ae703e1d79cbb3b989a3e79d68616d7e"/><file name="110_product_relation_action" hash="3827c87fbd6c722791ab202a385deff4"/><file name="120_category_relation_action" hash="2993db7b85b7164b88cd8d9ef2fd92c6"/><file name="130_sibling_actions" hash="58e028e693705952165fe5677ccc543d"/><file name="135_sibling_actions_tree" hash="ec816c2575fdd3d5921decf6c486215e"/><file name="140_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir></dir></dir><dir name="Entity"><dir name="Customer"><dir name="CommentController"><file name="010_top" hash="9f62f4cf9623a20a21051add6d53e33a"/><file name="020_entity_eav" hash="e3928f0c5176f7ef8c2e9c1cfc5c7e39"/><file name="030_entity_flat" hash="8111faf8ab205e42f80a01364e910d90"/><file name="040_store" hash="35770a11b9af34946533859a9bfd1c8f"/><file name="050_entity_flat_store" hash="15a379ec302d933bc618a8f3b19c6b93"/><file name="060_footer" hash="e20522e04290376a1e49520b11206983"/></dir></dir></dir><dir name="EntityController"><file name="010_top" hash="86d72db023b8b448068a4c156b29e630"/><file name="020_list" hash="446e82cd88ff847dbcb2c0d80b8ee542"/><file name="030_list_seo" hash="f2ca1a03f3af0b0e6fac01d698bf5b4e"/><file name="040_list_footer" hash="765f671c6c8df0b2dc138adadaef66d8"/><file name="050_view" hash="72625bb483a975414a34ff7ba6add736"/><file name="060_view_tree" hash="3fe6f66fcb554cb3ba4a0d60cbafc912"/><file name="070_view2" hash="25a8b855f1d531064b2e1c1b7aee060f"/><file name="080_breadcrumbs" hash="317bbb91ae8b80682df6f82f6b325ec3"/><file name="090_breadcrumbs_tree" hash="0d01c24d56ce14a946209225180a15f7"/><file name="100_breadcrumbs_footer" hash="4c00b1852b26c7782dc7ef0af43bf688"/><file name="110_view_seo" hash="df29b452c36d9f51c93ad3442f09089f"/><file name="120_view_footer" hash="765f671c6c8df0b2dc138adadaef66d8"/><file name="130_rss" hash="b64a15b83af918ffd04a7923436d8978"/><file name="140_comment" hash="fc67e1a965ff7ece556c426bdee0af0a"/><file name="150_footer" hash="df3995adfef69bc118334aef3a6911ad"/></dir></dir><dir name="data"><dir name="namespace_module_setup"><dir name="data-install"><file name="010_top" hash="9baa375f86c77c971bdf4ff58a1c0490"/><file name="020_entity" hash="bf3f9669f77cc9123c49814307991d2b"/></dir></dir></dir><dir name="etc"><dir name="adminhtml"><file name="010_content" hash="5b38ce3527f5c51f6159da6d5dccabdb"/></dir><dir name="api"><file name="010_top" hash="867c51b5c21efd691c7c3df3af4bc693"/><file name="020_entity_api" hash="b31ed12c80316bbdf61b6ff04eb3a51f"/><file name="030_resource_alias" hash="b943f39407ab6131bf93d6e6e44936e8"/><file name="040_entity_resource_alias" hash="d7f51e1ed157c61dda3ddb9a22f484fc"/><file name="050_v2" hash="12dcbc42e0ec81ef5f8d0d563fbf885f"/><file name="060_v2_entity" hash="c0e32ae7d754a1d36302a501ff23ca18"/><file name="070_acl" hash="4f900c28a8eef538b9f5710b6116631e"/><file name="080_acl_entity" hash="9f3c85df11943be774a2a6bf316e66e1"/><file name="090_footer" hash="325809a4d6fd615e7c2c9743b3655c53"/></dir><dir name="api2"><file name="010_content" hash="3cee98654e6d59b601235e45dcf4d2b6"/></dir><dir name="config"><file name="010_top" hash="5b6ad2628b143dcae6b168ca4bf14904"/><file name="020_tables" hash="81a36d80bacf44a97c8d59887d0e2164"/><file name="030_store_tables" hash="73114fc78d20c8ab8f8d79a3d984dc87"/><file name="040_siblings_table" hash="e362aa300301fc423c8641ad434f0eac"/><file name="050_product_relation_table" hash="ab5676590138330d4ff36a15002bee5d"/><file name="060_category_relation_table" hash="5ed5fbeaab8d1fd7ca3dbc1343d71f0a"/><file name="070_comment_table" hash="c0181d16ba7087f4f981bfcc1c6dc8ad"/><file name="080_comment_store_table" hash="2d19f290726a6a9a80f534fd404595e0"/><file name="090_eav_attribute" hash="49b2ecc7c4d9940bb4e934b11df4dbbc"/><file name="100_global" hash="bcc43369c66a79dd5ceb6ca31cd944b1"/><file name="110_url_rewrite" hash="b9020832f4c9d77474687d409bf07369"/><file name="120_adminhtml" hash="750c8c73a53ba5d80148cf5628468efd"/><file name="130_relation_events_top" hash="7d655aaf8e39e8e21234c4589e9c0f75"/><file name="140_relation_product_top" hash="5edc7f53f573872a9bfd6122f3961702"/><file name="150_relation_events_middle" hash="6f4be5a184572f9a5ec53e1bc6341380"/><file name="160_relation_category_top" hash="e07d99af7575f411274c0e2b86aa144c"/><file name="170_relation_product_bottom_start" hash="c4389c5178de3b3491d021f6bd292e35"/><file name="180_relation_product_bottom" hash="2cac1148f2d56395435902be1d350d36"/><file name="190_relation_product_bottom_end" hash="cddbb3962c99a02f3b7e449b7c02baf1"/><file name="200_relation_category_bottom_start" hash="a5ea816ddaf504e565945c4fa5c5c93d"/><file name="210_relation_category_bottom" hash="e6776a83e08a397b8a3ca255bdf386e4"/><file name="220_relation_category_bottom_end" hash="1d55309dbdeb0dd473ef6a8bac71a785"/><file name="230_relation_events_bottom" hash="a5862d4611e980ff9553372b34560ce6"/><file name="240_global_search_top" hash="949ac50acd8c5fe3b68b66204d00e938"/><file name="250_global_search_entity" hash="3db0a74a189b145960107a16dc86086a"/><file name="260_global_search_footer" hash="4387151e9004196f17df55f4031fb471"/><file name="270_admin" hash="c1df2cc861cbb4644e6f0b8d46896664"/><file name="280_frontend" hash="17f720c665a0c4c3d2d6f0b21cae4139"/><file name="284_router" hash="9e4cb67792931dd76b552305e61e125f"/><file name="287_frontend_footer" hash="51f85cf376369ebf50cf3701b469b1c9"/><file name="290_default_top" hash="c81ae31e57983c412c3f286b83a20a5c"/><file name="300_default" hash="0daa38656f72266230a6ee8162a0353d"/><file name="310_default_footer" hash="8d9422cb320d29d38c21c42f22c00c1f"/><file name="320_footer" hash="5766fab0272399ec661c78736a631dc1"/></dir><dir name="system"><file name="010_top" hash="213a55275becea72f93398fb19813039"/><file name="020_entity" hash="091e1ee91fde3b161f3da0988aa7f710"/><file name="030_footer" hash="626d555d520d969b4eba12d3b6dc32c0"/></dir><dir name="widget"><file name="010_top" hash="29a6efa02a0f04ce056cc53d0b4e2272"/><file name="020_entity" hash="acff756a0ba07434c3ffb280b90af55c"/><file name="030_tree" hash="305740f2e0e3bb6ef2959d1c60476c4c"/><file name="040_footer" hash="cef2c02165fc166d7f62359f295c776a"/></dir><dir name="wsdl"><file name="010_top" hash="17165c0a86e1cec22cf8daf487086939"/><file name="020_entity_types" hash="7c4b90a6ee31d11cfff79eac452bc574"/><file name="023_entity_comment_types" hash="99ef208d5e2cd4c0c94a4514e2c5b038"/><file name="026_entity_attribute_types" hash="9fdc466d3ee17f47abe4f3012ddf7a16"/><file name="030_schema_footer" hash="b108663b3854ef338073d82182c99e63"/><file name="040_entity_messages" hash="d3e739a2efae20883d9ebf4149c46507"/><file name="043_entity_comment_messages" hash="d515922a475bcc48492416fe5205cf48"/><file name="046_entity_attribute_messages" hash="c3374cad433dee3ceecb4ccb950f58e5"/><file name="050_porttype_top" hash="1bc699e11eacc6c8df7326525db516d4"/><file name="060_porttype_entity" hash="adeb7d5741d6578fed57e8db68e50d0b"/><file name="063_porttype_entity_comment" hash="8fdacfec6cb6383961730d5a8fd1f15a"/><file name="066_porttype_entity_attribute" hash="82406651e497f919b7ab1efcd9dc263d"/><file name="070_porttype_footer" hash="d47918d188cadf66538eb0d81b382520"/><file name="080_binding_top" hash="6c9a2fa40d2d8ce3e8f5bd69574f16c5"/><file name="090_entity_binding" hash="a09b0b6dd147a65d5ead46ad0b910174"/><file name="093_entity_binding_comment" hash="9a57fd5962d4e1f369f126dbd9439fc3"/><file name="096_entity_binding_attribute" hash="7ee2aa999385c857a4e82f85beafbec8"/><file name="100_footer" hash="fd1c8b122b4873e1e68d94929e44fba7"/></dir><dir name="wsi"><file name="010_top" hash="a0c873516a509f5d9da5f17345540ec8"/><file name="020_entity_types" hash="ad25a26d30bf2dafbcd8a514b8b04395"/><file name="023_entity_comment_types" hash="2944750eb27bd12cc57be639220da60e"/><file name="026_entity_attribute_types" hash="48a70b7e2ef28331b84adabb948ea151"/><file name="030_schema_footer" hash="6e5916b770444e599eb9b9fe9454302a"/><file name="040_entity_messages" hash="98db3bd67659f19d66b22e7ed8607d0b"/><file name="043_entity_comment_messages" hash="8ba13f08ac9abafa741777d9b34d5c5a"/><file name="046_entity_attribute_messages" hash="e2df4b87853fe7e1dc8978e5c6b43e29"/><file name="050_porttype_top" hash="5ef5138db4c8c80c945359baa23f0102"/><file name="060_porttype_entity" hash="f4c0fd664d81b2337dd675ad297c535c"/><file name="063_porttype_entity_comment" hash="c59251b07a2317a33f98121c20d7b291"/><file name="066_porttype_entity_attribute" hash="9ab778046249f0f75f37e6f7a7926f87"/><file name="070_porttype_footer" hash="6c49b132200e7cb361cc8379736af66b"/><file name="080_binding_top" hash="5fe0693515fd41176023a7b5ee52ff31"/><file name="090_entity_binding" hash="b3334a6ec6e894350104009fc604c07b"/><file name="093_entity_binding_comment" hash="a41e98f20978067107bc1d03589c1135"/><file name="096_entity_binding_attribute" hash="862d06d59664343b00c28b48e9042952"/><file name="100_footer" hash="d58e080977127430d922eec5ed9be32a"/></dir></dir><dir name="sql"><dir name="namespace_module_setup"><dir name="install"><file name="010_top" hash="b626615168f25d23e910d0ee731cd010"/><file name="020_entity_flat" hash="8e4b8c5bd1b349028a7f091610826a9a"/><file name="030_entity_store" hash="5a880c3319500d9f7a0ac2355377f91d"/><file name="040_entity_eav" hash="dd4148c35d0a6728931461e26a06d679"/><file name="050_product_relation" hash="0318d0b29d914aaf23eb2ab96fd5ceec"/><file name="060_category_relation" hash="6c4ab8177a09a19b1e9c0e608914da94"/><file name="070_comments" hash="1e3850eeca0ddb910bdc7a687e1cf161"/><file name="080_comments_store" hash="98792a81673a34296b2985e6b1ecb9eb"/><file name="090_sibling_relation" hash="98a41a2f9c90bccffa10ea294d5038f3"/><file name="100_has_eav" hash="376ee9448c597d8f5742aee9c9fddcef"/><file name="110_product_attribute" hash="067cf2c53917c651e122575cb5378286"/><file name="120_category_attribute" hash="a8bbc66944d73b1f8a8510bb74b1b898"/><file name="125_eav_options_default" hash="c2798f5b82089781ace1074bec6e7fe7"/><file name="130_footer" hash="72aa99adf9ca490f11fabcedd5290fc4"/></dir></dir></dir></dir><dir name="design"><dir name="adminhtml"><dir name="layout"><dir name="namespace_module"><file name="010_top" hash="c657e63ddce2df350b7d45c57620e967"/><file name="020_entity_not_tree" hash="9a4c1b28ee061042cc76a236da9d86a8"/><file name="023_eav" hash="a90cef461e9496016b4d5d1818ec50b2"/><file name="027_entity_not_tree_footer" hash="d41d8cd98f00b204e9800998ecf8427e"/><file name="028_entity_edit_eav" hash="d41d8cd98f00b204e9800998ecf8427e"/><file name="029_edit_footer" hash="d41d8cd98f00b204e9800998ecf8427e"/><file name="030_relation_product" hash="147ec1c3620a12c30d8c7fbf4a047bb0"/><file name="040_relation_category" hash="e0c37abbaae3c58705a8921c3f10d13d"/><file name="050_relation_sibling" hash="4b7a308623c095ba6ef28ecb70cffee2"/><file name="060_entity_tree" hash="f75243adcc56c69711cb7dca55dee7d0"/><file name="070_relation_product_tree" hash="29adcc4c866977bbda2939a48b3f9377"/><file name="080_relation_category_tree" hash="a2f99eefe2903a2bbcab8b6282c48328"/><file name="090_relation_sibling_tree" hash="87af8f9a93be9ade1f8ebd73de47b80f"/><file name="100_eav_attribute_edit" hash="01db5571ca8b30844fb404563fefcffd"/><file name="110_comment" hash="338f02e3de7f86d2b28f112c96dcf143"/><file name="120_footer" hash="e38301056eb83a4de70947444e0e047f"/></dir></dir><dir name="template"><dir name="namespace_module"><dir name="attribute"><dir name="js"><file name="010_content" hash="88a5e01babe2d4e8d45bdb69a0dcf9c5"/></dir></dir><dir name="catalog"><dir name="category"><dir name="tab"><dir name="entities"><file name="010_content" hash="14dddd04c3798f3714f5263c95335f3c"/></dir></dir></dir><dir name="product"><dir name="edit"><dir name="tab"><dir name="entity"><file name="010_content" hash="4e2496ed7414b06c0b68a93cbeba3b34"/></dir></dir></dir></dir></dir><dir name="entity"><dir name="edit"><file name="010_content" hash="457f5e7ee94eaa075549b402cc04c90d"/><dir name="form"><file name="010_top" hash="5d504dea5b45f8af43a0d6e7c9d851f3"/><file name="020_product_hidden" hash="86402e52c83df9cbae8f0af1b281b912"/><file name="030_category_hidden" hash="e2ecbfcd825531e55174a97d833d339e"/><file name="040_sibling_hidden" hash="d1b52e8c4306a5689198d8020921a466"/><file name="050_content" hash="86d631712b4dc672bbf543e72edbac01"/><file name="060_product_relation" hash="20632de5f0caa7b33fde47fa6ae91dec"/><file name="070_sibling_relations" hash="62f27a022840d3fa15f217664454ca3b"/><file name="080_footer" hash="f5b26f293440dfb08e77e30e6eab9eee"/></dir><dir name="tab"><dir name="categories"><file name="010_content" hash="5833c90e662af9e44ac764b230d3b131"/></dir><dir name="sibling"><file name="010_content" hash="44c9f6b54559c7939b0275b1211f18b5"/></dir></dir></dir><dir name="tree"><file name="010_not_eav" hash="05b8c2e11f6db22e0e3de68d18605582"/><file name="020_eav" hash="29e7479f4da2b2cdcba0838bf96369a7"/></dir><dir name="widget"><dir name="tree"><file name="010_content" hash="4fafa06db66187e73fbf4e0c525791be"/></dir></dir></dir><dir name="form"><dir name="renderer"><dir name="fieldset"><dir name="element"><file name="010_content" hash="e8718e51805c0ca1eebdfc27557f579f"/></dir></dir></dir></dir><dir name="grid"><file name="010_content" hash="6651c76539c9fbc066d14bfa5f8b6d25"/></dir></dir></dir></dir><dir name="frontend"><dir name="layout"><dir name="namespace_module"><file name="010_top" hash="15cdb696e6db3f0724b315d817774edf"/><file name="020_comment" hash="24c52d027dd42a0355d12563a4654d16"/><file name="060_list" hash="6c7e4b877f895c0159171f4e6c6a103c"/><file name="070_view" hash="b9963e0c35ccc5b228531e6623905995"/><file name="080_entity_rss" hash="da751f73d104cf1daa35e39753b4e8d3"/><file name="090_rss_top" hash="5546694e606a9b3be3167398144f1fe0"/><file name="100_rss" hash="c0d78771dd8ceb256e10dc158fa4f113"/><file name="110_rss_footer" hash="8a0ce083998ffae9647b1dfce6ff28d7"/><file name="120_relation_product" hash="ccb980dcb8b4672df02ecc58821ab7e2"/><file name="130_relation_category" hash="14472da688c261667c742a8479b8aeb3"/><file name="135_entity_comment" hash="7e811871e23a1d44b4b34779a00de792"/><file name="140_footer" hash="e38301056eb83a4de70947444e0e047f"/></dir></dir><dir name="template"><dir name="namespace_module"><dir name="catalog"><dir name="category"><dir name="list"><dir name="entity"><file name="010_content" hash="255e7a9acb16106c8708c40aa92741e5"/></dir></dir></dir><dir name="product"><dir name="list"><dir name="entity"><file name="010_content" hash="8b3559297dc3824c14d09a46a188f749"/></dir></dir></dir></dir><dir name="entity"><dir name="catalog"><dir name="category"><dir name="list"><file name="010_content" hash="46e48fce4680a1725c1c285ac61e55a8"/></dir></dir><dir name="product"><dir name="list"><file name="010_content" hash="2e394b64cb6ecbf8975083ccbe69b709"/></dir></dir></dir><dir name="child"><dir name="list"><file name="010_content" hash="5a0ecef8ff01c476373504ae2032329b"/></dir></dir><dir name="children"><file name="010_content" hash="8485f70bdc2a819f432375d643099268"/></dir><dir name="comment"><dir name="form"><file name="010_content" hash="f2f695b4da6462e954eba77a4b369ec2"/></dir><dir name="list"><file name="010_content" hash="8649e79743f7d5dc6a634d3ef656ede6"/></dir></dir><dir name="customer"><dir name="comment"><dir name="list"><file name="010_content" hash="7fb9364fe69c4d40f6514cb7fd988a03"/></dir><dir name="view"><file name="010_content" hash="09d7914ec8ea7166ed90151cc9298a7d"/></dir></dir></dir><dir name="list"><file name="010_top" hash="a7cc8748eb003a18af68f7abc7164522"/><file name="020_rss_link" hash="7053e8c95be2facf2673b3b4d7a9bc99"/><file name="030_footer" hash="bb5d1c8a7a9070c10402dc152d736c09"/><file name="040_footer_is_tree" hash="28067e09720d62f0e928a09eeee94de8"/></dir><dir name="sibling"><dir name="list"><file name="010_content" hash="63893b913cb62e847712b408caa43cfb"/></dir></dir><dir name="view"><file name="010_content" hash="709e3570777e6e3ee5cb4453940bb06b"/></dir><dir name="widget"><dir name="link"><file name="010_content" hash="f38d2755f4ffda5d801117ed1fbfce0e"/></dir><dir name="subtree"><file name="010_content" hash="d4ca6ed68bf9cd7c69a75cf2852aa7db"/></dir><dir name="view"><file name="010_content" hash="e3907ff9a83026d7a54701f55fb06d23"/></dir></dir></dir><dir name="rss"><file name="010_content" hash="98fb61cdce9133a0b68f3ed5fb00827e"/></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><dir name="Namespace_Module"><file name="010_content" hash="a41ceeea2ef52bd7108aab9e3724d6e4"/></dir></dir></dir><dir name="locale"><file name="010_global" hash="406695b232401f92114f0228223960cb"/><file name="020_entity" hash="7b3b9580e421493434ae3e498c48bbd0"/><file name="030_attribute" hash="0bc9532d35587f2225e398156cc3ef7f"/><file name="040_rss" hash="5e72d78710b03b014b69a492438d5602"/><file name="050_seo" hash="1c5889d31d3410540715b6c866966178"/><file name="060_attribute_yesno" hash="20eaf2d5eaa8224e5fa1c7a63634b1c0"/><file name="070_file" hash="8bebcdd48d5ae7b533cc53e789f03ef2"/><file name="080_product_relation" hash="b96f377dfa788f2772f2f8b7f156aebd"/><file name="090_category_relation" hash="5e8c099f6269eb2c18bac7003c40950b"/><file name="100_relations" hash="b7e6d3ed392ec8f0083588e7feb20bad"/><file name="110_tree" hash="37bf0971ca18e0e4222ae2b0d3ba6311"/><file name="120_tree_entity" hash="0ebe3d6c664ef1eece3031a0fc1558b8"/><file name="130_url_rewrite" hash="f2364f59558c87cc918ac627fd6be92d"/><file name="140_api" hash="58e27bb8ef0a04a711e20207dce037a4"/><file name="150_api_entity" hash="5f79e38c8a97f2e171eedc2d5246910d"/><file name="160_api_product_related" hash="f6875de876ab6e34595e5513aa35628b"/><file name="170_api_category_related" hash="06843fd4b33897e431ac4f86190e4433"/><file name="180_api_tree" hash="99bae32405e8a3eff292b0a12fd972f5"/><file name="190_api_sibling" hash="096605fae72bf35317dc4601406a23d0"/><file name="200_entity_eav" hash="f07b6cabd42c0a2878b68d6f786f2cfc"/><file name="210_eav" hash="af526c63d99167884a226b43580fb305"/><file name="220_entity_comment" hash="81d3484f7ab23fe3fa48f691017ec954"/><file name="230_comment" hash="31344b22a3622cb2e8d16fd509579000"/><file name="240_comment_store" hash="0cfb47a807925d64f8c69d97731a0c01"/><file name="250_api_comment" hash="bf31f09d8ae78799d3f037749cf17875"/><file name="260_eav_api" hash="6bee23c604fa04bf8b97571b30a26ec7"/><file name="270_frontend" hash="dd6eb8db5b99a5d5412106f3b11f0948"/><file name="280_entity_seo" hash="69afaf0eb278d53a50f8b56b80f810fa"/><file name="290_rest" hash="5fa69e22784f680e3f6b25254c097e74"/><file name="300_rest_entity" hash="a5a9c01f79a015f1041ab61de0ddfffa"/><file name="310_parent" hash="67424563811389a605b8d2d1be287a90"/></dir></dir><dir name="skin"><dir name="css"><dir name="namespace_module"><dir name="tree"><file name="010_content" hash="ebab2fbc43a5609ca870e49ca1e5be79"/></dir></dir></dir><dir name="images"><dir name="namespace_module"><dir name="collapsedgif"><file name="010_content.gif" hash="ef74c08289e94b7aae81766fb00d4195"/></dir><dir name="collapsedpng"><file name="010_content.png" hash="0613450d25c762b6a40c51768b02462d"/></dir><dir name="expandedgif"><file name="010_content.gif" hash="3f5512a54f359343273caf7b3787ee8a"/></dir><dir name="expandedpng"><file name="010_content.png" hash="f7f28ae897708c78b28ead22c3692bb8"/></dir><dir name="line1gif"><file name="010_content.gif" hash="65b0c812c8d57ea72b84fc69a077a40a"/></dir><dir name="line1png"><file name="010_content.png" hash="4e01064a2c78b8885f65ff7a40f78c02"/></dir><dir name="line2gif"><file name="010_content.gif" hash="95fc5c58069ece5eb44e198ee53b3fe1"/></dir><dir name="line2png"><file name="010_content.png" hash="6adbb4ca64d943f5ee5528d713757fde"/></dir></dir><dir name="placeholder"><dir name="entity"><file name="010_content" hash="4b2c997fd2142a6dab492f82269dd310"/></dir></dir></dir><dir name="js"><dir name="namespace_module"><dir name="tree"><file name="010_content" hash="fbfaa20b029a6a8679c21b3b8932ab0b"/></dir></dir></dir></dir></dir><file name="system.xml" hash="d921fe7409ddf9fb30e439a4766f643a"/><file name="umc.xml" hash="cece67b01ee2e44f70d5fad3cb154d7d"/><file name="umc_source.xml" hash="97b25c3610755d1301f8d6ff9b260370"/></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="7fe024bab018b7612b6dc08211039968"/></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="27c8c9a4bd2277d259d27077203650c8"/></dir><file name="entity.phtml" hash="da83f08d5ff04003c02f094dca71271e"/></dir><file name="entities.phtml" hash="bae43279fd4d7f8adb3143b7a712a8b2"/><dir name="help"><file name="fieldset.phtml" hash="797ba4de22b39047880680b8e3445005"/></dir><file name="help.phtml" hash="47d3329bb38616348eee04127e941bd3"/><file name="relation.phtml" hash="29f7155d54c5ea9a344051ed6bbae125"/></dir></dir><file name="edit.phtml" hash="6fb48af7bcc7400eb86d618486e18b07"/><file name="tooltip.phtml" hash="fa2de6f84eaea5d175da8eaac72d34fe"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Ultimate_ModuleCreator.xml" hash="82c74149ad25681e1490577ddb609d18"/></dir></target><target name="magelocale"><dir name="en_US"><file name="Ultimate_ModuleCreator.csv" hash="eac24b97b9a8f2fb50cd0f6a447c4077"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><file name="ultimate_modulecreator.css" hash="8079fa763d027f90d98ae86ccb0a588e"/><dir name="images"><dir name="ultimate_modulecreator"><file name="collapsed.png" hash="0613450d25c762b6a40c51768b02462d"/><file name="expanded.png" hash="f7f28ae897708c78b28ead22c3692bb8"/><file name="line1.png" hash="4e01064a2c78b8885f65ff7a40f78c02"/><file name="line2.png" hash="6adbb4ca64d943f5ee5528d713757fde"/></dir></dir></dir></dir></dir></target><target name="mage"><dir name="js"><file name="ultimate_modulecreator.js" hash="242cd77bbb0976c08c0f3a722bc7b1a4"/></dir></target></contents>
|
24 |
<compatible/>
|
25 |
<dependencies><required><php><min>5.0.0</min><max>7.0.0</max></php></required></dependencies>
|
26 |
</package>
|