MSP_Unifeed - Version 1.0.4

Version Notes

Enjoy it ;)

Download this release

Release Info

Developer Riccardo Tempesta
Extension MSP_Unifeed
Version 1.0.4
Comparing to
See all releases


Code changes from version 1.0.2 to 1.0.4

Files changed (54) hide show
  1. .gitignore +3 -0
  2. Changelog.txt +11 -0
  3. License.txt +0 -0
  4. README.md +17 -0
  5. app/code/community/MSP/Unifeed/Block/Adminhtml/Catalog/Category/Edit/Tab/Feed.php +72 -72
  6. app/code/community/MSP/Unifeed/Block/Adminhtml/Template.php +32 -32
  7. app/code/community/MSP/Unifeed/Block/Adminhtml/Template/Edit.php +45 -45
  8. app/code/community/MSP/Unifeed/Block/Adminhtml/Template/Edit/Form.php +82 -82
  9. app/code/community/MSP/Unifeed/Block/Adminhtml/Template/Grid.php +95 -95
  10. app/code/community/MSP/Unifeed/Block/Adminhtml/Unifeed.php +38 -38
  11. app/code/community/MSP/Unifeed/Block/Adminhtml/Unifeed/Edit.php +56 -56
  12. app/code/community/MSP/Unifeed/Block/Adminhtml/Unifeed/Edit/Form.php +36 -36
  13. app/code/community/MSP/Unifeed/Block/Adminhtml/Unifeed/Edit/Tab/Categories.php +33 -33
  14. app/code/community/MSP/Unifeed/Block/Adminhtml/Unifeed/Edit/Tab/Ga.php +69 -69
  15. app/code/community/MSP/Unifeed/Block/Adminhtml/Unifeed/Edit/Tab/Ga/After.php +28 -28
  16. app/code/community/MSP/Unifeed/Block/Adminhtml/Unifeed/Edit/Tab/Settings.php +88 -88
  17. app/code/community/MSP/Unifeed/Block/Adminhtml/Unifeed/Edit/Tab/Settings/After.php +51 -51
  18. app/code/community/MSP/Unifeed/Block/Adminhtml/Unifeed/Edit/Tabs.php +58 -58
  19. app/code/community/MSP/Unifeed/Block/Adminhtml/Unifeed/Grid.php +184 -184
  20. app/code/community/MSP/Unifeed/Helper/Data.php +22 -22
  21. app/code/community/MSP/Unifeed/Model/Eav/Entity/Attribute/Backend/Feed.php +39 -39
  22. app/code/community/MSP/Unifeed/Model/Feed.php +578 -575
  23. app/code/community/MSP/Unifeed/Model/Feed/Attribute.php +58 -58
  24. app/code/community/MSP/Unifeed/Model/Feed/Status.php +45 -45
  25. app/code/community/MSP/Unifeed/Model/Observer.php +40 -40
  26. app/code/community/MSP/Unifeed/Model/Product/Feed.php +79 -79
  27. app/code/community/MSP/Unifeed/Model/Resource/Catalog/Eav/Mysql4/Product/Collection.php +45 -45
  28. app/code/community/MSP/Unifeed/Model/Resource/Feed.php +31 -31
  29. app/code/community/MSP/Unifeed/Model/Resource/Feed/Collection.php +37 -37
  30. app/code/community/MSP/Unifeed/Model/Resource/Template.php +31 -31
  31. app/code/community/MSP/Unifeed/Model/Resource/Template/Collection.php +37 -37
  32. app/code/community/MSP/Unifeed/Model/Template.php +50 -50
  33. app/code/community/MSP/Unifeed/Model/Template/Abstract.php +226 -226
  34. app/code/community/MSP/Unifeed/Model/Template/Container.php +24 -24
  35. app/code/community/MSP/Unifeed/Model/Template/Product.php +96 -96
  36. app/code/community/MSP/Unifeed/Model/Template/Type.php +48 -48
  37. app/code/community/MSP/Unifeed/Model/Tree.php +137 -137
  38. app/code/community/MSP/Unifeed/controllers/{FeedController.php → Adminhtml/Unifeed/FeedController.php} +274 -270
  39. app/code/community/MSP/Unifeed/controllers/{TemplateController.php → Adminhtml/Unifeed/TemplateController.php} +140 -136
  40. app/code/community/MSP/Unifeed/controllers/OutputController.php +94 -94
  41. app/code/community/MSP/Unifeed/etc/config.xml +204 -204
  42. app/code/community/MSP/Unifeed/etc/system.xml +50 -50
  43. app/code/community/MSP/Unifeed/sql/msp_unifeed_setup/mysql4-install-1.0.0.php +81 -81
  44. app/design/adminhtml/default/default/layout/msp_unifeed.xml +29 -29
  45. app/design/adminhtml/default/default/template/msp_unifeed/catalog/category/edit/feed.phtml +38 -38
  46. app/design/adminhtml/default/default/template/msp_unifeed/edit/categories.phtml +90 -90
  47. app/design/adminhtml/default/default/template/msp_unifeed/edit/form.phtml +4 -4
  48. app/design/adminhtml/default/default/template/msp_unifeed/edit/ga/after.phtml +3 -3
  49. app/design/adminhtml/default/default/template/msp_unifeed/edit/settings/after.phtml +1 -1
  50. app/etc/modules/MSP_Unifeed.xml +28 -28
  51. composer.json +23 -0
  52. modman +5 -0
  53. package.xml +2 -18
  54. shell/unifeed.php +33 -25
.gitignore ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ .idea/
2
+ *~
3
+ *.swp
Changelog.txt CHANGED
@@ -1,3 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
1
  1.0.2
2
 
3
  Bugfix release
1
+ 1.0.4
2
+
3
+ Changes related to SUPEE-6788
4
+
5
+ 1.0.3
6
+
7
+ Added controller authorization check
8
+ Standardization of shell script
9
+ Modman and composer config
10
+ Collection fix for 1.9
11
+
12
  1.0.2
13
 
14
  Bugfix release
License.txt CHANGED
File without changes
README.md ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # MSP Unifeed Magento extension
2
+ ==================
3
+
4
+ MSP Unifeed is an easy and flexible extension to create product feeds in multiple formats (csv, txt or xml) for any external platform which need to import your catalog.
5
+ You can create feed models with your own syntax using a lot of available variables and directives to retrieve information about stores and products and parse it with conditional and programmable statements.
6
+
7
+ Extension's development is available on github here:
8
+ https://github.com/magespecialist/MSP_Unifeed
9
+ while Magento stable packages are available for free at MageSpecialist website here:
10
+ http://www.magespecialist.it/en/unifeed.html
11
+
12
+ Quick programming reference is available at https://github.com/magespecialist/MSP_Unifeed/wiki/Quick-programming-reference
13
+
14
+ # Dependency notice
15
+ Be sure to install MSP_Common magento extension **before** MSP Unifeed or your store could not work properly.
16
+ You can install it via Magento Connect here: http://www.magentocommerce.com/magento-connect/msp-common.html
17
+ (Ignore this dependency if you use composer to install the extension)
app/code/community/MSP/Unifeed/Block/Adminhtml/Catalog/Category/Edit/Tab/Feed.php CHANGED
@@ -1,72 +1,72 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Block_Adminhtml_Catalog_Category_Edit_Tab_Feed
22
- extends Mage_Adminhtml_Block_Widget
23
- implements Mage_Adminhtml_Block_Widget_Tab_Interface
24
- {
25
- public function getTabLabel()
26
- {
27
- return Mage::helper('msp_unifeed')->__('UniFeed');
28
- }
29
-
30
- public function getTabTitle()
31
- {
32
- return Mage::helper('msp_unifeed')->__('UniFeed');
33
- }
34
-
35
- public function canShowTab()
36
- {
37
- return true;
38
- }
39
-
40
- public function isHidden()
41
- {
42
- return false;
43
- }
44
-
45
- public function getCategory()
46
- {
47
- return Mage::registry('category');
48
- }
49
-
50
- public function getStoreId()
51
- {
52
- return $this->getCategory()->getStoreId();
53
- }
54
-
55
- public function getCategoryId()
56
- {
57
- return $this->getCategory()->getId();
58
- }
59
-
60
- protected function hasFeed($feedId)
61
- {
62
- if (strpos($this->getCategory()->getMspUnifeedIds(), ':'.intval($feedId).':') !== false)
63
- return true;
64
-
65
- return false;
66
- }
67
-
68
- protected function getFeedsCollection()
69
- {
70
- return Mage::getModel('msp_unifeed/feed')->getResourceCollection()->load();
71
- }
72
- }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Block_Adminhtml_Catalog_Category_Edit_Tab_Feed
22
+ extends Mage_Adminhtml_Block_Widget
23
+ implements Mage_Adminhtml_Block_Widget_Tab_Interface
24
+ {
25
+ public function getTabLabel()
26
+ {
27
+ return Mage::helper('msp_unifeed')->__('UniFeed');
28
+ }
29
+
30
+ public function getTabTitle()
31
+ {
32
+ return Mage::helper('msp_unifeed')->__('UniFeed');
33
+ }
34
+
35
+ public function canShowTab()
36
+ {
37
+ return true;
38
+ }
39
+
40
+ public function isHidden()
41
+ {
42
+ return false;
43
+ }
44
+
45
+ public function getCategory()
46
+ {
47
+ return Mage::registry('category');
48
+ }
49
+
50
+ public function getStoreId()
51
+ {
52
+ return $this->getCategory()->getStoreId();
53
+ }
54
+
55
+ public function getCategoryId()
56
+ {
57
+ return $this->getCategory()->getId();
58
+ }
59
+
60
+ protected function hasFeed($feedId)
61
+ {
62
+ if (strpos($this->getCategory()->getMspUnifeedIds(), ':'.intval($feedId).':') !== false)
63
+ return true;
64
+
65
+ return false;
66
+ }
67
+
68
+ protected function getFeedsCollection()
69
+ {
70
+ return Mage::getModel('msp_unifeed/feed')->getResourceCollection()->load();
71
+ }
72
+ }
app/code/community/MSP/Unifeed/Block/Adminhtml/Template.php CHANGED
@@ -1,32 +1,32 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Block_Adminhtml_Template extends Mage_Adminhtml_Block_Widget_Grid_Container
22
- {
23
- public function __construct()
24
- {
25
- $this->_blockGroup = 'msp_unifeed';
26
- $this->_controller = 'adminhtml_template';
27
- $this->_headerText = Mage::helper('msp_unifeed')->__('Templates List');
28
- $this->_addButtonLabel = Mage::helper('msp_unifeed')->__('Add New Template');
29
-
30
- parent::__construct();
31
- }
32
- }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Block_Adminhtml_Template extends Mage_Adminhtml_Block_Widget_Grid_Container
22
+ {
23
+ public function __construct()
24
+ {
25
+ $this->_blockGroup = 'msp_unifeed';
26
+ $this->_controller = 'adminhtml_template';
27
+ $this->_headerText = Mage::helper('msp_unifeed')->__('Templates List');
28
+ $this->_addButtonLabel = Mage::helper('msp_unifeed')->__('Add New Template');
29
+
30
+ parent::__construct();
31
+ }
32
+ }
app/code/community/MSP/Unifeed/Block/Adminhtml/Template/Edit.php CHANGED
@@ -1,45 +1,45 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Block_Adminhtml_Template_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
22
- {
23
- public function __construct()
24
- {
25
- parent::__construct();
26
- $this->_objectId = 'id';
27
- $this->_blockGroup = 'msp_unifeed';
28
- $this->_controller = 'adminhtml_template';
29
-
30
- $this->_updateButton('save', 'label', Mage::helper('msp_unifeed')->__('Save Template'));
31
- $this->_updateButton('delete', 'label', Mage::helper('msp_unifeed')->__('Delete Template'));
32
- }
33
-
34
- public function getHeaderText()
35
- {
36
- if (Mage::registry('msp_unifeed_template_data') && Mage::registry('msp_unifeed_template_data')->getId())
37
- {
38
- return Mage::helper('msp_unifeed')->__("Edit Template '%s'", $this->htmlEscape(Mage::registry('msp_unifeed_template_data')->getName()));
39
- }
40
- else
41
- {
42
- return Mage::helper('msp_unifeed')->__('Add Template');
43
- }
44
- }
45
- }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Block_Adminhtml_Template_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
22
+ {
23
+ public function __construct()
24
+ {
25
+ parent::__construct();
26
+ $this->_objectId = 'id';
27
+ $this->_blockGroup = 'msp_unifeed';
28
+ $this->_controller = 'adminhtml_template';
29
+
30
+ $this->_updateButton('save', 'label', Mage::helper('msp_unifeed')->__('Save Template'));
31
+ $this->_updateButton('delete', 'label', Mage::helper('msp_unifeed')->__('Delete Template'));
32
+ }
33
+
34
+ public function getHeaderText()
35
+ {
36
+ if (Mage::registry('msp_unifeed_template_data') && Mage::registry('msp_unifeed_template_data')->getId())
37
+ {
38
+ return Mage::helper('msp_unifeed')->__("Edit Template '%s'", $this->htmlEscape(Mage::registry('msp_unifeed_template_data')->getName()));
39
+ }
40
+ else
41
+ {
42
+ return Mage::helper('msp_unifeed')->__('Add Template');
43
+ }
44
+ }
45
+ }
app/code/community/MSP/Unifeed/Block/Adminhtml/Template/Edit/Form.php CHANGED
@@ -1,82 +1,82 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Block_Adminhtml_Template_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
22
- {
23
- protected function _prepareForm()
24
- {
25
- $form = new Varien_Data_Form(array(
26
- 'id' => 'edit_form',
27
- 'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))),
28
- 'method' => 'post',
29
- ));
30
-
31
- $fieldset = $form->addFieldset(
32
- 'msp_unifeed_template_form',
33
- array(
34
- 'legend' => Mage::helper('msp_unifeed')->__('Template settings')
35
- )
36
- );
37
-
38
- $fieldset->addField('name', 'text', array(
39
- 'label' => Mage::helper('msp_unifeed')->__('Template name'),
40
- 'class' => 'required-entry',
41
- 'required' => true,
42
- 'name' => 'template[name]',
43
- ));
44
-
45
- $fieldset->addField('type', 'select', array(
46
- 'label' => Mage::helper('msp_unifeed')->__('Type'),
47
- 'name' => 'template[type]',
48
- 'class' => 'required-entry',
49
- 'values' => Mage::getSingleton('msp_unifeed/template_type')->getOptionArray(),
50
- ));
51
-
52
- $fieldset->addField('template_open', 'textarea', array(
53
- 'label' => Mage::helper('msp_unifeed')->__('Template Open'),
54
- 'required' => false,
55
- 'style' => 'width: 600px',
56
- 'name' => 'template[template_open]',
57
- ));
58
-
59
- $fieldset->addField('template_product', 'textarea', array(
60
- 'label' => Mage::helper('msp_unifeed')->__('Product Template'),
61
- 'class' => 'required-entry',
62
- 'required' => true,
63
- 'style' => 'width: 600px',
64
- 'name' => 'template[template_product]',
65
- ));
66
-
67
- $fieldset->addField('template_close', 'textarea', array(
68
- 'label' => Mage::helper('msp_unifeed')->__('Template Close'),
69
- 'required' => false,
70
- 'style' => 'width: 600px',
71
- 'name' => 'template[template_close]',
72
- ));
73
-
74
- if (Mage::registry('msp_unifeed_template_data'))
75
- $form->setValues(Mage::registry('msp_unifeed_template_data')->getData());
76
-
77
- $form->setUseContainer(true);
78
- $this->setForm($form);
79
-
80
- return parent::_prepareForm();
81
- }
82
- }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Block_Adminhtml_Template_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
22
+ {
23
+ protected function _prepareForm()
24
+ {
25
+ $form = new Varien_Data_Form(array(
26
+ 'id' => 'edit_form',
27
+ 'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))),
28
+ 'method' => 'post',
29
+ ));
30
+
31
+ $fieldset = $form->addFieldset(
32
+ 'msp_unifeed_template_form',
33
+ array(
34
+ 'legend' => Mage::helper('msp_unifeed')->__('Template settings')
35
+ )
36
+ );
37
+
38
+ $fieldset->addField('name', 'text', array(
39
+ 'label' => Mage::helper('msp_unifeed')->__('Template name'),
40
+ 'class' => 'required-entry',
41
+ 'required' => true,
42
+ 'name' => 'template[name]',
43
+ ));
44
+
45
+ $fieldset->addField('type', 'select', array(
46
+ 'label' => Mage::helper('msp_unifeed')->__('Type'),
47
+ 'name' => 'template[type]',
48
+ 'class' => 'required-entry',
49
+ 'values' => Mage::getSingleton('msp_unifeed/template_type')->getOptionArray(),
50
+ ));
51
+
52
+ $fieldset->addField('template_open', 'textarea', array(
53
+ 'label' => Mage::helper('msp_unifeed')->__('Template Open'),
54
+ 'required' => false,
55
+ 'style' => 'width: 600px',
56
+ 'name' => 'template[template_open]',
57
+ ));
58
+
59
+ $fieldset->addField('template_product', 'textarea', array(
60
+ 'label' => Mage::helper('msp_unifeed')->__('Product Template'),
61
+ 'class' => 'required-entry',
62
+ 'required' => true,
63
+ 'style' => 'width: 600px',
64
+ 'name' => 'template[template_product]',
65
+ ));
66
+
67
+ $fieldset->addField('template_close', 'textarea', array(
68
+ 'label' => Mage::helper('msp_unifeed')->__('Template Close'),
69
+ 'required' => false,
70
+ 'style' => 'width: 600px',
71
+ 'name' => 'template[template_close]',
72
+ ));
73
+
74
+ if (Mage::registry('msp_unifeed_template_data'))
75
+ $form->setValues(Mage::registry('msp_unifeed_template_data')->getData());
76
+
77
+ $form->setUseContainer(true);
78
+ $this->setForm($form);
79
+
80
+ return parent::_prepareForm();
81
+ }
82
+ }
app/code/community/MSP/Unifeed/Block/Adminhtml/Template/Grid.php CHANGED
@@ -1,95 +1,95 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Block_Adminhtml_Template_Grid extends Mage_Adminhtml_Block_Widget_Grid
22
- {
23
- public function __construct()
24
- {
25
- parent::__construct();
26
- $this->setId('templateGrid');
27
- $this->_controller = 'msp_unifeed_adm';
28
- }
29
-
30
- protected function _prepareCollection()
31
- {
32
- $model = Mage::getModel('msp_unifeed/template');
33
- $collection = $model->getCollection();
34
- $this->setCollection($collection);
35
-
36
- $this->setDefaultSort('name');
37
- $this->setDefaultDir('ASC');
38
- $this->setSaveParametersInSession(true);
39
-
40
- return parent::_prepareCollection();
41
- }
42
-
43
- protected function _prepareColumns()
44
- {
45
- $this->addColumn('id', array(
46
- 'header' => Mage::helper('msp_unifeed')->__('ID'),
47
- 'align' => 'right',
48
- 'width' => '50px',
49
- 'index' => 'msp_unifeed_template_id',
50
- ));
51
-
52
- $this->addColumn('name', array(
53
- 'header' => Mage::helper('msp_unifeed')->__('Name'),
54
- 'align' => 'left',
55
- 'index' => 'name',
56
- 'type' => 'text',
57
- 'truncate' => 50,
58
- 'escape' => true,
59
- ));
60
-
61
- $this->addColumn('type', array(
62
- 'header' => Mage::helper('msp_unifeed')->__('Format Type'),
63
- 'index' => 'type',
64
- 'type' => 'options',
65
- 'options' => Mage::getSingleton('msp_unifeed/template_type')->getHashArray(),
66
- ));
67
-
68
- $this->addColumn('action',
69
- array(
70
- 'header' => Mage::helper('msp_unifeed')->__('Action'),
71
- 'width' => '100px',
72
- 'type' => 'action',
73
- 'getter' => 'getId',
74
- 'actions' => array(array(
75
- 'caption' => Mage::helper('msp_unifeed')->__('Edit'),
76
- 'url' => array(
77
- 'base'=>'*/*/edit'
78
- ),
79
- 'field' => 'id'
80
- )),
81
- 'filter' => false,
82
- 'sortable' => false,
83
- 'index' => 'msp_unifeed',
84
- ));
85
-
86
- return parent::_prepareColumns();
87
- }
88
-
89
- public function getRowUrl($row)
90
- {
91
- return $this->getUrl('*/*/edit', array(
92
- 'id' => $row->getId(),
93
- ));
94
- }
95
- }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Block_Adminhtml_Template_Grid extends Mage_Adminhtml_Block_Widget_Grid
22
+ {
23
+ public function __construct()
24
+ {
25
+ parent::__construct();
26
+ $this->setId('templateGrid');
27
+ $this->_controller = 'msp_unifeed_adm';
28
+ }
29
+
30
+ protected function _prepareCollection()
31
+ {
32
+ $model = Mage::getModel('msp_unifeed/template');
33
+ $collection = $model->getCollection();
34
+ $this->setCollection($collection);
35
+
36
+ $this->setDefaultSort('name');
37
+ $this->setDefaultDir('ASC');
38
+ $this->setSaveParametersInSession(true);
39
+
40
+ return parent::_prepareCollection();
41
+ }
42
+
43
+ protected function _prepareColumns()
44
+ {
45
+ $this->addColumn('id', array(
46
+ 'header' => Mage::helper('msp_unifeed')->__('ID'),
47
+ 'align' => 'right',
48
+ 'width' => '50px',
49
+ 'index' => 'msp_unifeed_template_id',
50
+ ));
51
+
52
+ $this->addColumn('name', array(
53
+ 'header' => Mage::helper('msp_unifeed')->__('Name'),
54
+ 'align' => 'left',
55
+ 'index' => 'name',
56
+ 'type' => 'text',
57
+ 'truncate' => 50,
58
+ 'escape' => true,
59
+ ));
60
+
61
+ $this->addColumn('type', array(
62
+ 'header' => Mage::helper('msp_unifeed')->__('Format Type'),
63
+ 'index' => 'type',
64
+ 'type' => 'options',
65
+ 'options' => Mage::getSingleton('msp_unifeed/template_type')->getHashArray(),
66
+ ));
67
+
68
+ $this->addColumn('action',
69
+ array(
70
+ 'header' => Mage::helper('msp_unifeed')->__('Action'),
71
+ 'width' => '100px',
72
+ 'type' => 'action',
73
+ 'getter' => 'getId',
74
+ 'actions' => array(array(
75
+ 'caption' => Mage::helper('msp_unifeed')->__('Edit'),
76
+ 'url' => array(
77
+ 'base'=>'*/*/edit'
78
+ ),
79
+ 'field' => 'id'
80
+ )),
81
+ 'filter' => false,
82
+ 'sortable' => false,
83
+ 'index' => 'msp_unifeed',
84
+ ));
85
+
86
+ return parent::_prepareColumns();
87
+ }
88
+
89
+ public function getRowUrl($row)
90
+ {
91
+ return $this->getUrl('*/*/edit', array(
92
+ 'id' => $row->getId(),
93
+ ));
94
+ }
95
+ }
app/code/community/MSP/Unifeed/Block/Adminhtml/Unifeed.php CHANGED
@@ -1,38 +1,38 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Block_Adminhtml_Unifeed extends Mage_Adminhtml_Block_Widget_Grid_Container
22
- {
23
- public function __construct()
24
- {
25
- $this->_blockGroup = 'msp_unifeed';
26
- $this->_controller = 'adminhtml_unifeed';
27
- $this->_headerText = Mage::helper('msp_unifeed')->__('Feeds List');
28
- $this->_addButtonLabel = Mage::helper('msp_unifeed')->__('Add New Feed');
29
-
30
- $this->_addButton('rebuild', array(
31
- 'label' => Mage::helper('msp_unifeed')->__('Rebuild Feeds'),
32
- 'onclick' => "self.location.href='".$this->getUrl('*/*/rebuild/')."'",
33
- 'level' => -1
34
- ));
35
-
36
- parent::__construct();
37
- }
38
- }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Block_Adminhtml_Unifeed extends Mage_Adminhtml_Block_Widget_Grid_Container
22
+ {
23
+ public function __construct()
24
+ {
25
+ $this->_blockGroup = 'msp_unifeed';
26
+ $this->_controller = 'adminhtml_unifeed';
27
+ $this->_headerText = Mage::helper('msp_unifeed')->__('Feeds List');
28
+ $this->_addButtonLabel = Mage::helper('msp_unifeed')->__('Add New Feed');
29
+
30
+ $this->_addButton('rebuild', array(
31
+ 'label' => Mage::helper('msp_unifeed')->__('Rebuild Feeds'),
32
+ 'onclick' => "self.location.href='".$this->getUrl('*/*/rebuild/')."'",
33
+ 'level' => -1
34
+ ));
35
+
36
+ parent::__construct();
37
+ }
38
+ }
app/code/community/MSP/Unifeed/Block/Adminhtml/Unifeed/Edit.php CHANGED
@@ -1,56 +1,56 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Block_Adminhtml_Unifeed_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
22
- {
23
- public function __construct()
24
- {
25
- parent::__construct();
26
- $this->_objectId = 'id';
27
- $this->_blockGroup = 'msp_unifeed';
28
- $this->_controller = 'adminhtml_unifeed';
29
-
30
- if (Mage::registry('msp_unifeed_data')->getId())
31
- {
32
- $this->_addButton('rebuild', array(
33
- 'label' => Mage::helper('msp_unifeed')->__('Rebuild Feed'),
34
- 'onclick' => "self.location.href='".$this->getUrl('*/*/rebuild/', array('id' => Mage::registry('msp_unifeed_data')->getId()))."'",
35
- 'level' => -1
36
- ));
37
- }
38
-
39
- $this->_updateButton('save', 'label', Mage::helper('msp_unifeed')->__('Save Feed'));
40
-
41
- if (Mage::registry('msp_unifeed_data')->getId())
42
- $this->_updateButton('delete', 'label', Mage::helper('msp_unifeed')->__('Delete Feed'));
43
- }
44
-
45
- public function getHeaderText()
46
- {
47
- if (Mage::registry('msp_unifeed_data') && Mage::registry('msp_unifeed_data')->getId())
48
- {
49
- return Mage::helper('msp_unifeed')->__("Edit Feed '%s'", $this->htmlEscape(Mage::registry('msp_unifeed_data')->getName()));
50
- }
51
- else
52
- {
53
- return Mage::helper('msp_unifeed')->__('Add Feed');
54
- }
55
- }
56
- }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Block_Adminhtml_Unifeed_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
22
+ {
23
+ public function __construct()
24
+ {
25
+ parent::__construct();
26
+ $this->_objectId = 'id';
27
+ $this->_blockGroup = 'msp_unifeed';
28
+ $this->_controller = 'adminhtml_unifeed';
29
+
30
+ if (Mage::registry('msp_unifeed_data')->getId())
31
+ {
32
+ $this->_addButton('rebuild', array(
33
+ 'label' => Mage::helper('msp_unifeed')->__('Rebuild Feed'),
34
+ 'onclick' => "self.location.href='".$this->getUrl('*/*/rebuild/', array('id' => Mage::registry('msp_unifeed_data')->getId()))."'",
35
+ 'level' => -1
36
+ ));
37
+ }
38
+
39
+ $this->_updateButton('save', 'label', Mage::helper('msp_unifeed')->__('Save Feed'));
40
+
41
+ if (Mage::registry('msp_unifeed_data')->getId())
42
+ $this->_updateButton('delete', 'label', Mage::helper('msp_unifeed')->__('Delete Feed'));
43
+ }
44
+
45
+ public function getHeaderText()
46
+ {
47
+ if (Mage::registry('msp_unifeed_data') && Mage::registry('msp_unifeed_data')->getId())
48
+ {
49
+ return Mage::helper('msp_unifeed')->__("Edit Feed '%s'", $this->htmlEscape(Mage::registry('msp_unifeed_data')->getName()));
50
+ }
51
+ else
52
+ {
53
+ return Mage::helper('msp_unifeed')->__('Add Feed');
54
+ }
55
+ }
56
+ }
app/code/community/MSP/Unifeed/Block/Adminhtml/Unifeed/Edit/Form.php CHANGED
@@ -1,36 +1,36 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Block_Adminhtml_Unifeed_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
22
- {
23
- protected function _prepareForm()
24
- {
25
- $form = new Varien_Data_Form(array(
26
- 'id' => 'edit_form',
27
- 'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))),
28
- 'method' => 'post',
29
- ));
30
-
31
- $form->setUseContainer(true);
32
- $this->setForm($form);
33
-
34
- return parent::_prepareForm();
35
- }
36
- }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Block_Adminhtml_Unifeed_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
22
+ {
23
+ protected function _prepareForm()
24
+ {
25
+ $form = new Varien_Data_Form(array(
26
+ 'id' => 'edit_form',
27
+ 'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))),
28
+ 'method' => 'post',
29
+ ));
30
+
31
+ $form->setUseContainer(true);
32
+ $this->setForm($form);
33
+
34
+ return parent::_prepareForm();
35
+ }
36
+ }
app/code/community/MSP/Unifeed/Block/Adminhtml/Unifeed/Edit/Tab/Categories.php CHANGED
@@ -1,33 +1,33 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Block_Adminhtml_Unifeed_Edit_Tab_Categories extends Mage_Adminhtml_Block_Widget_Container
22
- {
23
- public function __construct()
24
- {
25
- parent::__construct();
26
- $this->setTemplate('msp_unifeed/edit/categories.phtml');
27
- }
28
-
29
- protected function getTreeUrl()
30
- {
31
- return $this->getUrl('*/*/json', array('id' => $this->getRequest()->getParam('id')));
32
- }
33
- }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Block_Adminhtml_Unifeed_Edit_Tab_Categories extends Mage_Adminhtml_Block_Widget_Container
22
+ {
23
+ public function __construct()
24
+ {
25
+ parent::__construct();
26
+ $this->setTemplate('msp_unifeed/edit/categories.phtml');
27
+ }
28
+
29
+ protected function getTreeUrl()
30
+ {
31
+ return $this->getUrl('*/*/json', array('id' => $this->getRequest()->getParam('id')));
32
+ }
33
+ }
app/code/community/MSP/Unifeed/Block/Adminhtml/Unifeed/Edit/Tab/Ga.php CHANGED
@@ -1,69 +1,69 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Block_Adminhtml_Unifeed_Edit_Tab_Ga extends Mage_Adminhtml_Block_Widget_Form
22
- {
23
- protected function _prepareForm()
24
- {
25
- $form = new Varien_Data_Form();
26
- $this->setForm($form);
27
-
28
- $fieldset = $form->addFieldset(
29
- 'msp_unifeed_form_ga',
30
- array(
31
- 'legend' => Mage::helper('msp_unifeed')->__('Google Analytics Tracking')
32
- )
33
- );
34
-
35
- $fieldset->addField('ga_source', 'text', array(
36
- 'label' => Mage::helper('msp_unifeed')->__('Campaign Source'),
37
- 'name' => 'feed[ga_source]',
38
- ));
39
-
40
- $fieldset->addField('ga_medium', 'text', array(
41
- 'label' => Mage::helper('msp_unifeed')->__('Campaign Medium'),
42
- 'name' => 'feed[ga_medium]',
43
- ));
44
-
45
- $fieldset->addField('ga_term', 'text', array(
46
- 'label' => Mage::helper('msp_unifeed')->__('Campaign Term'),
47
- 'name' => 'feed[ga_term]',
48
- ));
49
-
50
- $fieldset->addField('ga_content', 'text', array(
51
- 'label' => Mage::helper('msp_unifeed')->__('Campaign Content'),
52
- 'name' => 'feed[ga_content]',
53
- ));
54
-
55
- $fieldset->addField('ga_name', 'text', array(
56
- 'label' => Mage::helper('msp_unifeed')->__('Campaign Name'),
57
- 'name' => 'feed[ga_name]',
58
- ));
59
-
60
- if (Mage::registry('msp_unifeed_data'))
61
- $form->setValues(Mage::registry('msp_unifeed_data')->getData());
62
-
63
- $this->setChild('form_after',
64
- $this->getLayout()->createBlock('msp_unifeed/adminhtml_unifeed_edit_tab_ga_after')
65
- );
66
-
67
- return parent::_prepareForm();
68
- }
69
- }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Block_Adminhtml_Unifeed_Edit_Tab_Ga extends Mage_Adminhtml_Block_Widget_Form
22
+ {
23
+ protected function _prepareForm()
24
+ {
25
+ $form = new Varien_Data_Form();
26
+ $this->setForm($form);
27
+
28
+ $fieldset = $form->addFieldset(
29
+ 'msp_unifeed_form_ga',
30
+ array(
31
+ 'legend' => Mage::helper('msp_unifeed')->__('Google Analytics Tracking')
32
+ )
33
+ );
34
+
35
+ $fieldset->addField('ga_source', 'text', array(
36
+ 'label' => Mage::helper('msp_unifeed')->__('Campaign Source'),
37
+ 'name' => 'feed[ga_source]',
38
+ ));
39
+
40
+ $fieldset->addField('ga_medium', 'text', array(
41
+ 'label' => Mage::helper('msp_unifeed')->__('Campaign Medium'),
42
+ 'name' => 'feed[ga_medium]',
43
+ ));
44
+
45
+ $fieldset->addField('ga_term', 'text', array(
46
+ 'label' => Mage::helper('msp_unifeed')->__('Campaign Term'),
47
+ 'name' => 'feed[ga_term]',
48
+ ));
49
+
50
+ $fieldset->addField('ga_content', 'text', array(
51
+ 'label' => Mage::helper('msp_unifeed')->__('Campaign Content'),
52
+ 'name' => 'feed[ga_content]',
53
+ ));
54
+
55
+ $fieldset->addField('ga_name', 'text', array(
56
+ 'label' => Mage::helper('msp_unifeed')->__('Campaign Name'),
57
+ 'name' => 'feed[ga_name]',
58
+ ));
59
+
60
+ if (Mage::registry('msp_unifeed_data'))
61
+ $form->setValues(Mage::registry('msp_unifeed_data')->getData());
62
+
63
+ $this->setChild('form_after',
64
+ $this->getLayout()->createBlock('msp_unifeed/adminhtml_unifeed_edit_tab_ga_after')
65
+ );
66
+
67
+ return parent::_prepareForm();
68
+ }
69
+ }
app/code/community/MSP/Unifeed/Block/Adminhtml/Unifeed/Edit/Tab/Ga/After.php CHANGED
@@ -1,28 +1,28 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Block_Adminhtml_Unifeed_Edit_Tab_Ga_After extends Mage_Adminhtml_Block_Widget
22
- {
23
- public function __construct()
24
- {
25
- parent::__construct();
26
- $this->setTemplate('msp_unifeed/edit/ga/after.phtml');
27
- }
28
- }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Block_Adminhtml_Unifeed_Edit_Tab_Ga_After extends Mage_Adminhtml_Block_Widget
22
+ {
23
+ public function __construct()
24
+ {
25
+ parent::__construct();
26
+ $this->setTemplate('msp_unifeed/edit/ga/after.phtml');
27
+ }
28
+ }
app/code/community/MSP/Unifeed/Block/Adminhtml/Unifeed/Edit/Tab/Settings.php CHANGED
@@ -1,88 +1,88 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Block_Adminhtml_Unifeed_Edit_Tab_Settings extends Mage_Adminhtml_Block_Widget_Form
22
- {
23
- protected function _prepareForm()
24
- {
25
- $form = new Varien_Data_Form();
26
- $this->setForm($form);
27
-
28
- $this->setTemplate('msp_unifeed/edit/form.phtml');
29
-
30
- $fieldset = $form->addFieldset(
31
- 'msp_unifeed_form_settings',
32
- array(
33
- 'legend' => Mage::helper('msp_unifeed')->__('Feed settings')
34
- )
35
- );
36
-
37
- $fieldset->addField('code', 'text', array(
38
- 'label' => Mage::helper('msp_unifeed')->__('Feed Code'),
39
- 'class' => 'required-entry',
40
- 'required' => true,
41
- 'name' => 'feed[code]',
42
- 'note' => Mage::helper('msp_unifeed')->__('Must contain only standard lowercase characters or numbers (0-9, a-z)')
43
- ));
44
-
45
- $fieldset->addField('name', 'text', array(
46
- 'label' => Mage::helper('msp_unifeed')->__('Feed Description'),
47
- 'class' => 'required-entry',
48
- 'required' => true,
49
- 'name' => 'feed[name]',
50
- ));
51
-
52
- $fieldset->addField('msp_unifeed_template_id', 'select', array(
53
- 'label' => Mage::helper('msp_unifeed')->__('Template'),
54
- 'name' => 'feed[msp_unifeed_template_id]',
55
- 'class' => 'required-entry',
56
- 'values' => Mage::getSingleton('msp_unifeed/template')->getOptionArray(),
57
- ));
58
-
59
- $fieldset->addField('store_id', 'select', array(
60
- 'label' => Mage::helper('msp_unifeed')->__('Store'),
61
- 'name' => 'feed[store_id]',
62
- 'class' => 'required-entry',
63
- 'values' => Mage::getSingleton('adminhtml/system_config_source_store')->toOptionArray(),
64
- ));
65
-
66
- $fieldset->addField('status', 'select', array(
67
- 'label' => Mage::helper('msp_unifeed')->__('Status'),
68
- 'name' => 'feed[status]',
69
- 'class' => 'required-entry',
70
- 'values' => Mage::getSingleton('msp_unifeed/feed_status')->getOptionArray(),
71
- ));
72
-
73
- if (Mage::registry('msp_unifeed_data') && Mage::registry('msp_unifeed_data')->getData())
74
- {
75
- $data = Mage::registry('msp_unifeed_data')->getData();
76
- $form->setValues($data);
77
- $this->setChild('form_after',
78
- $this->getLayout()->createBlock('msp_unifeed/adminhtml_unifeed_edit_tab_settings_after')->setFeedId($data['msp_unifeed_feed_id'])
79
- );
80
- }
81
- else
82
- {
83
- $form->setValues(array('status' => 1));
84
- }
85
-
86
- return parent::_prepareForm();
87
- }
88
- }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Block_Adminhtml_Unifeed_Edit_Tab_Settings extends Mage_Adminhtml_Block_Widget_Form
22
+ {
23
+ protected function _prepareForm()
24
+ {
25
+ $form = new Varien_Data_Form();
26
+ $this->setForm($form);
27
+
28
+ $this->setTemplate('msp_unifeed/edit/form.phtml');
29
+
30
+ $fieldset = $form->addFieldset(
31
+ 'msp_unifeed_form_settings',
32
+ array(
33
+ 'legend' => Mage::helper('msp_unifeed')->__('Feed settings')
34
+ )
35
+ );
36
+
37
+ $fieldset->addField('code', 'text', array(
38
+ 'label' => Mage::helper('msp_unifeed')->__('Feed Code'),
39
+ 'class' => 'required-entry',
40
+ 'required' => true,
41
+ 'name' => 'feed[code]',
42
+ 'note' => Mage::helper('msp_unifeed')->__('Must contain only standard lowercase characters or numbers (0-9, a-z)')
43
+ ));
44
+
45
+ $fieldset->addField('name', 'text', array(
46
+ 'label' => Mage::helper('msp_unifeed')->__('Feed Description'),
47
+ 'class' => 'required-entry',
48
+ 'required' => true,
49
+ 'name' => 'feed[name]',
50
+ ));
51
+
52
+ $fieldset->addField('msp_unifeed_template_id', 'select', array(
53
+ 'label' => Mage::helper('msp_unifeed')->__('Template'),
54
+ 'name' => 'feed[msp_unifeed_template_id]',
55
+ 'class' => 'required-entry',
56
+ 'values' => Mage::getSingleton('msp_unifeed/template')->getOptionArray(),
57
+ ));
58
+
59
+ $fieldset->addField('store_id', 'select', array(
60
+ 'label' => Mage::helper('msp_unifeed')->__('Store'),
61
+ 'name' => 'feed[store_id]',
62
+ 'class' => 'required-entry',
63
+ 'values' => Mage::getSingleton('adminhtml/system_config_source_store')->toOptionArray(),
64
+ ));
65
+
66
+ $fieldset->addField('status', 'select', array(
67
+ 'label' => Mage::helper('msp_unifeed')->__('Status'),
68
+ 'name' => 'feed[status]',
69
+ 'class' => 'required-entry',
70
+ 'values' => Mage::getSingleton('msp_unifeed/feed_status')->getOptionArray(),
71
+ ));
72
+
73
+ if (Mage::registry('msp_unifeed_data') && Mage::registry('msp_unifeed_data')->getData())
74
+ {
75
+ $data = Mage::registry('msp_unifeed_data')->getData();
76
+ $form->setValues($data);
77
+ $this->setChild('form_after',
78
+ $this->getLayout()->createBlock('msp_unifeed/adminhtml_unifeed_edit_tab_settings_after')->setFeedId($data['msp_unifeed_feed_id'])
79
+ );
80
+ }
81
+ else
82
+ {
83
+ $form->setValues(array('status' => 1));
84
+ }
85
+
86
+ return parent::_prepareForm();
87
+ }
88
+ }
app/code/community/MSP/Unifeed/Block/Adminhtml/Unifeed/Edit/Tab/Settings/After.php CHANGED
@@ -1,51 +1,51 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Block_Adminhtml_Unifeed_Edit_Tab_Settings_After extends Mage_Adminhtml_Block_Widget
22
- {
23
- protected $_feedId;
24
-
25
- public function __construct()
26
- {
27
- parent::__construct();
28
- $this->setTemplate('msp_unifeed/edit/settings/after.phtml');
29
- }
30
-
31
- public function setFeedId($feedId)
32
- {
33
- $this->_feedId = $feedId;
34
- return $this;
35
- }
36
-
37
- public function getFeedId()
38
- {
39
- return $this->_feedId;
40
- }
41
-
42
- public function getFeedUrl()
43
- {
44
- $model = Mage::getModel('msp_unifeed/feed')->load($this->getFeedId());
45
-
46
- $url = Mage::app()->getStore($model->getStoreId())->getUrl('msp_unifeed/output/index', array('code' => $model->getCode()));
47
- $url = preg_replace("/\?.+$/", '', $url);
48
-
49
- return $url;
50
- }
51
- }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Block_Adminhtml_Unifeed_Edit_Tab_Settings_After extends Mage_Adminhtml_Block_Widget
22
+ {
23
+ protected $_feedId;
24
+
25
+ public function __construct()
26
+ {
27
+ parent::__construct();
28
+ $this->setTemplate('msp_unifeed/edit/settings/after.phtml');
29
+ }
30
+
31
+ public function setFeedId($feedId)
32
+ {
33
+ $this->_feedId = $feedId;
34
+ return $this;
35
+ }
36
+
37
+ public function getFeedId()
38
+ {
39
+ return $this->_feedId;
40
+ }
41
+
42
+ public function getFeedUrl()
43
+ {
44
+ $model = Mage::getModel('msp_unifeed/feed')->load($this->getFeedId());
45
+
46
+ $url = Mage::app()->getStore($model->getStoreId())->getUrl('msp_unifeed/output/index', array('code' => $model->getCode()));
47
+ $url = preg_replace("/\?.+$/", '', $url);
48
+
49
+ return $url;
50
+ }
51
+ }
app/code/community/MSP/Unifeed/Block/Adminhtml/Unifeed/Edit/Tabs.php CHANGED
@@ -1,58 +1,58 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Block_Adminhtml_Unifeed_Edit_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
22
- {
23
- public function __construct()
24
- {
25
- parent::__construct();
26
- $this->setId('msp_unifeed_tabs');
27
- $this->setDestElementId('edit_form');
28
- $this->setTitle(Mage::helper('msp_unifeed')->__('Feed'));
29
- }
30
-
31
- public function getFeed()
32
- {
33
- return Mage::registry('msp_unifeed_data');
34
- }
35
-
36
- protected function _beforeToHtml()
37
- {
38
- $this->addTab('settings_section', array(
39
- 'label' => Mage::helper('msp_unifeed')->__('Feed Settings'),
40
- 'title' => Mage::helper('msp_unifeed')->__('Feed Settings'),
41
- 'content' => $this->getLayout()->createBlock('msp_unifeed/adminhtml_unifeed_edit_tab_settings')->toHtml(),
42
- ));
43
-
44
- $this->addTab('categories', array(
45
- 'label' => Mage::helper('msp_unifeed')->__('Categories Selection'),
46
- 'title' => Mage::helper('msp_unifeed')->__('Categories Selection'),
47
- 'content' => $this->getLayout()->createBlock('msp_unifeed/adminhtml_unifeed_edit_tab_categories')->toHtml(),
48
- ));
49
-
50
- $this->addTab('ga_section', array(
51
- 'label' => Mage::helper('msp_unifeed')->__('Google Analytics Tracking'),
52
- 'title' => Mage::helper('msp_unifeed')->__('Google Analytics Tracking'),
53
- 'content' => $this->getLayout()->createBlock('msp_unifeed/adminhtml_unifeed_edit_tab_ga')->toHtml(),
54
- ));
55
-
56
- return parent::_beforeToHtml();
57
- }
58
- }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Block_Adminhtml_Unifeed_Edit_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
22
+ {
23
+ public function __construct()
24
+ {
25
+ parent::__construct();
26
+ $this->setId('msp_unifeed_tabs');
27
+ $this->setDestElementId('edit_form');
28
+ $this->setTitle(Mage::helper('msp_unifeed')->__('Feed'));
29
+ }
30
+
31
+ public function getFeed()
32
+ {
33
+ return Mage::registry('msp_unifeed_data');
34
+ }
35
+
36
+ protected function _beforeToHtml()
37
+ {
38
+ $this->addTab('settings_section', array(
39
+ 'label' => Mage::helper('msp_unifeed')->__('Feed Settings'),
40
+ 'title' => Mage::helper('msp_unifeed')->__('Feed Settings'),
41
+ 'content' => $this->getLayout()->createBlock('msp_unifeed/adminhtml_unifeed_edit_tab_settings')->toHtml(),
42
+ ));
43
+
44
+ $this->addTab('categories', array(
45
+ 'label' => Mage::helper('msp_unifeed')->__('Categories Selection'),
46
+ 'title' => Mage::helper('msp_unifeed')->__('Categories Selection'),
47
+ 'content' => $this->getLayout()->createBlock('msp_unifeed/adminhtml_unifeed_edit_tab_categories')->toHtml(),
48
+ ));
49
+
50
+ $this->addTab('ga_section', array(
51
+ 'label' => Mage::helper('msp_unifeed')->__('Google Analytics Tracking'),
52
+ 'title' => Mage::helper('msp_unifeed')->__('Google Analytics Tracking'),
53
+ 'content' => $this->getLayout()->createBlock('msp_unifeed/adminhtml_unifeed_edit_tab_ga')->toHtml(),
54
+ ));
55
+
56
+ return parent::_beforeToHtml();
57
+ }
58
+ }
app/code/community/MSP/Unifeed/Block/Adminhtml/Unifeed/Grid.php CHANGED
@@ -1,184 +1,184 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Block_Adminhtml_Unifeed_Grid extends Mage_Adminhtml_Block_Widget_Grid
22
- {
23
- public function __construct()
24
- {
25
- parent::__construct();
26
- $this->setId('unifeedGrid');
27
- $this->_controller = 'msp_unifeedadm';
28
- }
29
-
30
- protected function _prepareCollection()
31
- {
32
- $model = Mage::getModel('msp_unifeed/feed');
33
- $collection = $model->getCollection();
34
- $this->setCollection($collection);
35
-
36
- $this->setDefaultSort('name');
37
- $this->setDefaultDir('ASC');
38
- $this->setSaveParametersInSession(true);
39
-
40
- return parent::_prepareCollection();
41
- }
42
-
43
- public function decorateStatus($value, $row, $column, $isExport)
44
- {
45
- $class = '';
46
-
47
- if ($row->getBuildStatus() == MSP_Unifeed_Model_Feed::BUILD_STATUS_NOT_READY)
48
- {
49
- $class = 'critical';
50
- $text = $this->__('Not Ready');
51
- }
52
- elseif ($row->getBuildStatus() == MSP_Unifeed_Model_Feed::BUILD_STATUS_BUILDING)
53
- {
54
- $class = 'major';
55
- $text = $this->__('Building');
56
- }
57
- elseif ($row->getBuildStatus() == MSP_Unifeed_Model_Feed::BUILD_STATUS_UPDATING)
58
- {
59
- $class = 'minor';
60
- $text = $this->__('Updating');
61
- }
62
- elseif ($row->getBuildStatus() == MSP_Unifeed_Model_Feed::BUILD_STATUS_MARKED_REBUILD)
63
- {
64
- $class = 'minor';
65
- $text = $this->__('On queue');
66
- }
67
- else
68
- {
69
- $class = 'notice';
70
- $text = $this->__('Ready');
71
- }
72
-
73
- return '<span class="grid-severity-'.$class.'"><span>'.$text.'</span></span>';
74
- }
75
-
76
- public function decorateDate($value, $row, $column, $isExport)
77
- {
78
- $class = '';
79
-
80
- $date = $row->getBuildDate();
81
-
82
- if (!$date)
83
- return '';
84
-
85
- return date('Y-m-d H:i', $date);
86
- }
87
-
88
- protected function _prepareColumns()
89
- {
90
- $this->addColumn('id', array(
91
- 'header' => Mage::helper('msp_unifeed')->__('ID'),
92
- 'align' => 'right',
93
- 'width' => '50px',
94
- 'index' => 'msp_unifeed_feed_id',
95
- ));
96
-
97
- $this->addColumn('name', array(
98
- 'header' => Mage::helper('msp_unifeed')->__('Name'),
99
- 'align' => 'left',
100
- 'index' => 'name',
101
- 'type' => 'text',
102
- 'truncate' => 50,
103
- 'escape' => true,
104
- ));
105
-
106
- $this->addColumn('code', array(
107
- 'header' => Mage::helper('msp_unifeed')->__('Code'),
108
- 'align' => 'left',
109
- 'index' => 'code',
110
- 'type' => 'text',
111
- 'escape' => true,
112
- ));
113
-
114
- $this->addColumn('msp_unifeed_template_id', array(
115
- 'header' => Mage::helper('msp_unifeed')->__('Template'),
116
- 'index' => 'msp_unifeed_template_id',
117
- 'type' => 'options',
118
- 'options' => Mage::getSingleton('msp_unifeed/template')->getHashArray(),
119
- ));
120
-
121
- $storeHash = array();
122
- $storeOptions = Mage::getSingleton('adminhtml/system_config_source_store')->toOptionArray();
123
- foreach ($storeOptions as $store)
124
- $storeHash[$store['value']] = $store['label'];
125
-
126
- $this->addColumn('store_id', array(
127
- 'header' => Mage::helper('msp_unifeed')->__('Store'),
128
- 'index' => 'store_id',
129
- 'type' => 'options',
130
- 'options' => $storeHash,
131
- ));
132
-
133
- $this->addColumn('status', array(
134
- 'header' => Mage::helper('msp_unifeed')->__('Status'),
135
- 'index' => 'status',
136
- 'type' => 'options',
137
- 'width' => '100px',
138
- 'options' => Mage::getSingleton('msp_unifeed/feed_status')->getHashArray(),
139
- ));
140
-
141
- $this->addColumn('build_status', array(
142
- 'header' => $this->__('Build Status'),
143
- 'width' => '120',
144
- 'filter' => false,
145
- 'align' => 'left',
146
- 'frame_callback' => array($this, 'decorateStatus')
147
- ));
148
-
149
- $this->addColumn('build_date', array(
150
- 'header' => $this->__('Build Date'),
151
- 'width' => '120',
152
- 'filter' => false,
153
- 'align' => 'left',
154
- 'frame_callback' => array($this, 'decorateDate')
155
- ));
156
-
157
- $this->addColumn('action',
158
- array(
159
- 'header' => Mage::helper('msp_unifeed')->__('Action'),
160
- 'width' => '100px',
161
- 'type' => 'action',
162
- 'getter' => 'getId',
163
- 'actions' => array(array(
164
- 'caption' => Mage::helper('msp_unifeed')->__('Edit'),
165
- 'url' => array(
166
- 'base'=>'*/*/edit'
167
- ),
168
- 'field' => 'id'
169
- )),
170
- 'filter' => false,
171
- 'sortable' => false,
172
- 'index' => 'action',
173
- ));
174
-
175
- return parent::_prepareColumns();
176
- }
177
-
178
- public function getRowUrl($row)
179
- {
180
- return $this->getUrl('*/*/edit', array(
181
- 'id' => $row->getId(),
182
- ));
183
- }
184
- }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Block_Adminhtml_Unifeed_Grid extends Mage_Adminhtml_Block_Widget_Grid
22
+ {
23
+ public function __construct()
24
+ {
25
+ parent::__construct();
26
+ $this->setId('unifeedGrid');
27
+ $this->_controller = 'msp_unifeedadm';
28
+ }
29
+
30
+ protected function _prepareCollection()
31
+ {
32
+ $model = Mage::getModel('msp_unifeed/feed');
33
+ $collection = $model->getCollection();
34
+ $this->setCollection($collection);
35
+
36
+ $this->setDefaultSort('name');
37
+ $this->setDefaultDir('ASC');
38
+ $this->setSaveParametersInSession(true);
39
+
40
+ return parent::_prepareCollection();
41
+ }
42
+
43
+ public function decorateStatus($value, $row, $column, $isExport)
44
+ {
45
+ $class = '';
46
+
47
+ if ($row->getBuildStatus() == MSP_Unifeed_Model_Feed::BUILD_STATUS_NOT_READY)
48
+ {
49
+ $class = 'critical';
50
+ $text = $this->__('Not Ready');
51
+ }
52
+ elseif ($row->getBuildStatus() == MSP_Unifeed_Model_Feed::BUILD_STATUS_BUILDING)
53
+ {
54
+ $class = 'major';
55
+ $text = $this->__('Building');
56
+ }
57
+ elseif ($row->getBuildStatus() == MSP_Unifeed_Model_Feed::BUILD_STATUS_UPDATING)
58
+ {
59
+ $class = 'minor';
60
+ $text = $this->__('Updating');
61
+ }
62
+ elseif ($row->getBuildStatus() == MSP_Unifeed_Model_Feed::BUILD_STATUS_MARKED_REBUILD)
63
+ {
64
+ $class = 'minor';
65
+ $text = $this->__('On queue');
66
+ }
67
+ else
68
+ {
69
+ $class = 'notice';
70
+ $text = $this->__('Ready');
71
+ }
72
+
73
+ return '<span class="grid-severity-'.$class.'"><span>'.$text.'</span></span>';
74
+ }
75
+
76
+ public function decorateDate($value, $row, $column, $isExport)
77
+ {
78
+ $class = '';
79
+
80
+ $date = $row->getBuildDate();
81
+
82
+ if (!$date)
83
+ return '';
84
+
85
+ return date('Y-m-d H:i', $date);
86
+ }
87
+
88
+ protected function _prepareColumns()
89
+ {
90
+ $this->addColumn('id', array(
91
+ 'header' => Mage::helper('msp_unifeed')->__('ID'),
92
+ 'align' => 'right',
93
+ 'width' => '50px',
94
+ 'index' => 'msp_unifeed_feed_id',
95
+ ));
96
+
97
+ $this->addColumn('name', array(
98
+ 'header' => Mage::helper('msp_unifeed')->__('Name'),
99
+ 'align' => 'left',
100
+ 'index' => 'name',
101
+ 'type' => 'text',
102
+ 'truncate' => 50,
103
+ 'escape' => true,
104
+ ));
105
+
106
+ $this->addColumn('code', array(
107
+ 'header' => Mage::helper('msp_unifeed')->__('Code'),
108
+ 'align' => 'left',
109
+ 'index' => 'code',
110
+ 'type' => 'text',
111
+ 'escape' => true,
112
+ ));
113
+
114
+ $this->addColumn('msp_unifeed_template_id', array(
115
+ 'header' => Mage::helper('msp_unifeed')->__('Template'),
116
+ 'index' => 'msp_unifeed_template_id',
117
+ 'type' => 'options',
118
+ 'options' => Mage::getSingleton('msp_unifeed/template')->getHashArray(),
119
+ ));
120
+
121
+ $storeHash = array();
122
+ $storeOptions = Mage::getSingleton('adminhtml/system_config_source_store')->toOptionArray();
123
+ foreach ($storeOptions as $store)
124
+ $storeHash[$store['value']] = $store['label'];
125
+
126
+ $this->addColumn('store_id', array(
127
+ 'header' => Mage::helper('msp_unifeed')->__('Store'),
128
+ 'index' => 'store_id',
129
+ 'type' => 'options',
130
+ 'options' => $storeHash,
131
+ ));
132
+
133
+ $this->addColumn('status', array(
134
+ 'header' => Mage::helper('msp_unifeed')->__('Status'),
135
+ 'index' => 'status',
136
+ 'type' => 'options',
137
+ 'width' => '100px',
138
+ 'options' => Mage::getSingleton('msp_unifeed/feed_status')->getHashArray(),
139
+ ));
140
+
141
+ $this->addColumn('build_status', array(
142
+ 'header' => $this->__('Build Status'),
143
+ 'width' => '120',
144
+ 'filter' => false,
145
+ 'align' => 'left',
146
+ 'frame_callback' => array($this, 'decorateStatus')
147
+ ));
148
+
149
+ $this->addColumn('build_date', array(
150
+ 'header' => $this->__('Build Date'),
151
+ 'width' => '120',
152
+ 'filter' => false,
153
+ 'align' => 'left',
154
+ 'frame_callback' => array($this, 'decorateDate')
155
+ ));
156
+
157
+ $this->addColumn('action',
158
+ array(
159
+ 'header' => Mage::helper('msp_unifeed')->__('Action'),
160
+ 'width' => '100px',
161
+ 'type' => 'action',
162
+ 'getter' => 'getId',
163
+ 'actions' => array(array(
164
+ 'caption' => Mage::helper('msp_unifeed')->__('Edit'),
165
+ 'url' => array(
166
+ 'base'=>'*/*/edit'
167
+ ),
168
+ 'field' => 'id'
169
+ )),
170
+ 'filter' => false,
171
+ 'sortable' => false,
172
+ 'index' => 'action',
173
+ ));
174
+
175
+ return parent::_prepareColumns();
176
+ }
177
+
178
+ public function getRowUrl($row)
179
+ {
180
+ return $this->getUrl('*/*/edit', array(
181
+ 'id' => $row->getId(),
182
+ ));
183
+ }
184
+ }
app/code/community/MSP/Unifeed/Helper/Data.php CHANGED
@@ -1,23 +1,23 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Helper_Data extends Mage_Core_Helper_Abstract {
22
-
23
  }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Helper_Data extends Mage_Core_Helper_Abstract {
22
+
23
  }
app/code/community/MSP/Unifeed/Model/Eav/Entity/Attribute/Backend/Feed.php CHANGED
@@ -1,39 +1,39 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Model_Eav_Entity_Attribute_Backend_Feed extends Mage_Eav_Model_Entity_Attribute_Backend_Abstract
22
- {
23
- public function beforeSave($object)
24
- {
25
- $data = $object->getData($this->getAttribute()->getAttributeCode());
26
- if (is_array($data))
27
- {
28
- $data = array_unique($data);
29
- $value = preg_replace('/:+/', ':', ':'.implode(':', $data).':');
30
- $object->setData($this->getAttribute()->getAttributeCode(), $value);
31
- }
32
- else
33
- {
34
- $object->setData($this->getAttribute()->getAttributeCode(), '');
35
- }
36
-
37
- return parent::beforeSave($object);
38
- }
39
- }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Model_Eav_Entity_Attribute_Backend_Feed extends Mage_Eav_Model_Entity_Attribute_Backend_Abstract
22
+ {
23
+ public function beforeSave($object)
24
+ {
25
+ $data = $object->getData($this->getAttribute()->getAttributeCode());
26
+ if (is_array($data))
27
+ {
28
+ $data = array_unique($data);
29
+ $value = preg_replace('/:+/', ':', ':'.implode(':', $data).':');
30
+ $object->setData($this->getAttribute()->getAttributeCode(), $value);
31
+ }
32
+ else
33
+ {
34
+ $object->setData($this->getAttribute()->getAttributeCode(), '');
35
+ }
36
+
37
+ return parent::beforeSave($object);
38
+ }
39
+ }
app/code/community/MSP/Unifeed/Model/Feed.php CHANGED
@@ -1,575 +1,578 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Model_Feed extends Mage_Core_Model_Abstract
22
- {
23
- const BUILD_STATUS_NOT_READY = 0;
24
- const BUILD_STATUS_BUILDING = 1;
25
- const BUILD_STATUS_MARKED_REBUILD = 2;
26
- const BUILD_STATUS_UPDATING = 3;
27
- const BUILD_STATUS_READY = 4;
28
-
29
- protected $_categoryIdsArray = null;
30
- protected $_templateModel = null;
31
- protected $_containerFilter = null;
32
- protected $_productFilter = null;
33
- protected $_categories = array();
34
- protected $_fpBuffer = null;
35
-
36
- public function _construct()
37
- {
38
- parent::_construct();
39
- $this->_init('msp_unifeed/feed');
40
- }
41
-
42
- public function getTemplate()
43
- {
44
- if (!$this->_templateModel)
45
- $this->_templateModel = Mage::getModel('msp_unifeed/template')->load($this->getMspUnifeedTemplateId());
46
-
47
- return $this->_templateModel;
48
- }
49
-
50
- protected function getStore()
51
- {
52
- return Mage::app()->getStore($this->getStoreId());
53
- }
54
-
55
- protected function getUnifeedWorkingPath()
56
- {
57
- $path = Mage::getBaseDir('var').DS.'unifeed';
58
-
59
- if (!is_dir($path))
60
- mkdir($path);
61
-
62
- chmod($path, 0777);
63
-
64
- return $path;
65
- }
66
-
67
- protected function getLockFile()
68
- {
69
- return $this->getUnifeedWorkingPath().DS.'export.lck';
70
- }
71
-
72
- protected function getBufferFileName()
73
- {
74
- if (!$this->getId())
75
- return '';
76
-
77
- return $this->getUnifeedWorkingPath().DS.'unifeed-'.$this->getId().'.buf';
78
- }
79
-
80
- public function getFinalFileName()
81
- {
82
- if (!$this->getId())
83
- return '';
84
-
85
- return $this->getUnifeedWorkingPath().DS.'unifeed-'.$this->getId().'.exp';
86
- }
87
-
88
- protected function getRebuildFileName()
89
- {
90
- if (!$this->getId())
91
- return '';
92
-
93
- return $this->getUnifeedWorkingPath().DS.'unifeed-'.$this->getId().'.reb';
94
- }
95
-
96
- protected function getCategoriesCollection()
97
- {
98
- if (!$this->getId())
99
- return null;
100
-
101
- $store = $this->getStore();
102
- $collection = Mage::getModel('catalog/category')->getCollection();
103
- $collection
104
- ->setStoreId($store->getId())
105
- ->addAttributeToSelect('*')
106
- ->addAttributeToFilter(array(array('attribute'=>'msp_unifeed_ids', 'like'=>"%:".$this->getId().":%")))
107
- ->load();
108
-
109
- return $collection;
110
- }
111
-
112
- protected function getCategoryIdsArray()
113
- {
114
- if (!$this->getId())
115
- return array();
116
-
117
- if (!is_array($this->_categoryIdsArray))
118
- {
119
- $this->_categoryIdsArray = array();
120
-
121
- $categories = $this->getCategoriesCollection();
122
- foreach ($categories as $category)
123
- {
124
- $this->_categoryIdsArray[] = $category->getId();
125
- }
126
- }
127
-
128
- return $this->_categoryIdsArray;
129
- }
130
-
131
- public function getProductsCollection()
132
- {
133
- if (!$this->getId())
134
- return null;
135
-
136
- $store = $this->getStore();
137
- $collection = Mage::getModel('msp_unifeed/resource_catalog_eav_mysql4_product_collection');
138
-
139
- $visibility = array(
140
- Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH,
141
- Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_CATALOG
142
- );
143
-
144
- $categories = $this->getCategoryIdsArray();
145
- if (!count($categories))
146
- return null;
147
-
148
- $collection
149
- ->addAttributeToSelect('*')
150
- ->addStoreFilter($this->getStoreId())
151
- ->addWebsiteFilter($this->getStore()->getWebsite())
152
- ->addPriceData(0, $this->getStore()->getWebsiteId())
153
- ->joinAttribute('custom_name', 'catalog_product/name', 'entity_id', null, 'inner', $store->getId())
154
- ->joinAttribute('status', 'catalog_product/status', 'entity_id', null, 'inner', $store->getId())
155
- ->joinAttribute('visibility', 'catalog_product/visibility', 'entity_id', null, 'inner', $store->getId())
156
- ->addAttributeToFilter('visibility', $visibility)
157
- ->addCategoriesFilter($categories);
158
-
159
- $this->addMediaGalleryAttributeToCollection($collection);
160
-
161
- $collection
162
- ->load();
163
-
164
- return $collection;
165
- }
166
-
167
- protected function getContainerFilterModel()
168
- {
169
- if (!$this->_containerFilter)
170
- $this->_containerFilter = Mage::getModel('msp_unifeed/template_container');
171
-
172
- return $this->_containerFilter;
173
- }
174
-
175
- protected function getProductFilterModel()
176
- {
177
- if (!$this->_productFilter)
178
- $this->_productFilter = Mage::getModel('msp_unifeed/template_product');
179
-
180
- return $this->_productFilter;
181
- }
182
-
183
- /**
184
- * Get category
185
- * @param $id
186
- * @return Mage_Catalog_Model_Category
187
- */
188
- protected function getCategory($id)
189
- {
190
- if (!isset($this->_categories[$id]))
191
- $this->_categories[$id] = Mage::getModel('catalog/category')->load($id);
192
-
193
- return $this->_categories[$id];
194
- }
195
-
196
- /**
197
- * Open buffer file
198
- *
199
- * @return MSP_UniFeed_Model_Feed
200
- */
201
- protected function openBufferFile()
202
- {
203
- if (!$this->getId())
204
- return $this;
205
-
206
- $this->_fpBuffer = fopen($this->getBufferFileName(), 'a');
207
- return $this;
208
- }
209
-
210
- /**
211
- * Clear buffer file
212
- *
213
- * @return MSP_UniFeed_Model_Feed
214
- */
215
- protected function clearBufferFile()
216
- {
217
- if (!$this->getId())
218
- return $this;
219
-
220
- @unlink($this->getBufferFileName());
221
- return $this;
222
- }
223
-
224
- /**
225
- * Write buffer immediately
226
- *
227
- * @param string $buffer
228
- * @return MSP_UniFeed_Model_Feed
229
- */
230
- protected function writeBufferFile($buffer)
231
- {
232
- if (!$this->getId())
233
- return $this;
234
-
235
- if (!$this->_fpBuffer)
236
- $this->openBufferFile();
237
-
238
- fputs($this->_fpBuffer, $buffer);
239
-
240
- return $this;
241
- }
242
-
243
- /**
244
- * Close buffer file
245
- *
246
- * @return MSP_UniFeed_Model_Feed
247
- */
248
- protected function closeBufferFile()
249
- {
250
- if (!$this->getId())
251
- return $this;
252
-
253
- if (!$this->_fpBuffer)
254
- return $this;
255
-
256
- fclose($this->_fpBuffer);
257
- $this->_fpBuffer = 0;
258
- return $this;
259
- }
260
-
261
- /**
262
- * Finalize buffer file
263
- *
264
- * @return MSP_UniFeed_Model_Feed
265
- */
266
- protected function finalizeBufferFile()
267
- {
268
- if (!$this->getId())
269
- return $this;
270
-
271
- @rename($this->getBufferFileName(), $this->getFinalFileName());
272
- @unlink($this->getRebuildFileName());
273
- @unlink($this->getPositionFileName());
274
- @unlink($this->getIdsFileName());
275
-
276
- return $this;
277
- }
278
-
279
- /**
280
- * Get AMP for current format
281
- *
282
- * @return string
283
- */
284
- public function getAmp()
285
- {
286
- if (($this->getType() == 'xml') || ($this->getType() == 'html'))
287
- return '&amp;';
288
-
289
- return '&';
290
- }
291
-
292
- /**
293
- * Get GoogleAnalytics string
294
- *
295
- * @return string
296
- */
297
- public function getGaQueryString()
298
- {
299
- $utm = array();
300
-
301
- $amp = $this->getAmp();
302
-
303
- if ($this->getGaSource())
304
- $utm[] = 'utm_source='.urlencode($this->getGaSource());
305
-
306
- if ($this->getGaMedium())
307
- $utm[] = 'utm_medium='.urlencode($this->getGaMedium());
308
-
309
- if ($this->getGaTerm())
310
- $utm[] = 'utm_term='.urlencode($this->getGaTerm());
311
-
312
- if ($this->getGaContent())
313
- $utm[] = 'utm_content='.urlencode($this->getGaContent());
314
-
315
- if ($this->getGaName())
316
- $utm[] = 'utm_campaign='.urlencode($this->getGaName());
317
-
318
- return join($amp, $utm);
319
- }
320
-
321
- /**
322
- * Load mediagallery with product's collection
323
- *
324
- * @param Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection $productCollection
325
- * @return Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection
326
- */
327
- protected function addMediaGalleryAttributeToCollection(Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection $productCollection)
328
- {
329
- if (!count($productCollection->getAllIds()))
330
- return $productCollection;
331
-
332
- $mediaGalleryAttributeId = Mage::getSingleton('eav/config')->getAttribute('catalog_product', 'media_gallery')->getAttributeId();
333
- $resource = Mage::getSingleton('core/resource');
334
- $read = $resource->getConnection('catalog_read');
335
-
336
- $mediaGalleryData = $read->fetchAll('
337
- SELECT
338
- main.entity_id, `main`.`value_id`, `main`.`value` AS `file`,
339
- `value`.`label`, `value`.`position`, `value`.`disabled`, `default_value`.`label` AS `label_default`,
340
- `default_value`.`position` AS `position_default`,
341
- `default_value`.`disabled` AS `disabled_default`
342
- FROM '.$resource->getTableName('catalog_product_entity_media_gallery').' AS `main`
343
- LEFT JOIN '.$resource->getTableName('catalog_product_entity_media_gallery_value').' AS `value`
344
- ON main.value_id=value.value_id AND value.store_id=' . Mage::app()->getStore()->getId() . '
345
- LEFT JOIN '.$resource->getTableName('catalog_product_entity_media_gallery_value').' AS `default_value`
346
- ON main.value_id=default_value.value_id AND default_value.store_id=0
347
- WHERE (
348
- main.attribute_id = '.$read->quote($mediaGalleryAttributeId).')
349
- AND (main.entity_id IN ('.$read->quote($productCollection->getAllIds()).'))
350
- ORDER BY IF(value.position IS NULL, default_value.position, value.position) ASC
351
- ');
352
-
353
- $mediaGalleryByProductId = array();
354
- foreach ($mediaGalleryData as $galleryImage) {
355
- $k = $galleryImage['entity_id'];
356
- unset($galleryImage['entity_id']);
357
- if (!isset($mediaGalleryByProductId[$k])) {
358
- $mediaGalleryByProductId[$k] = array();
359
- }
360
- $mediaGalleryByProductId[$k][] = $galleryImage;
361
- }
362
- unset($mediaGalleryData);
363
-
364
- foreach ($productCollection as &$product) {
365
- $productId = $product->getData('entity_id');
366
- if (isset($mediaGalleryByProductId[$productId])) {
367
- $product->setData('media_gallery', array('images' => $mediaGalleryByProductId[$productId]));
368
- }
369
- }
370
- unset($mediaGalleryByProductId);
371
-
372
- return $productCollection;
373
- }
374
-
375
- /**
376
- * Return single product feed
377
- *
378
- * @param Mage_Core_Model_Catalog_Product
379
- * @param array $baseInfo [optional]
380
- * @param bool $categorySkip [optional]
381
- * @return string
382
- */
383
- protected function getProductFeed($product, $baseInfo = array())
384
- {
385
- if (!$this->getId())
386
- return '';
387
-
388
- $info = $baseInfo;
389
-
390
- $info['product'] = $product;
391
- $info['stock'] = $this->_stockModel->loadByProduct($product);
392
- $info['final_price'] = $product->getFinalPrice();
393
- $info['final_price_rule'] = Mage::getModel('catalogrule/rule')->calcProductPriceRule($product, $product->getMinimalPrice());
394
- $info['final_price_tax'] = Mage::helper('tax')->getPrice($product, $product->getFinalPrice(), true);
395
- $info['final_price_notax'] = Mage::helper('tax')->getPrice($product, $product->getFinalPrice(), false);
396
- $info['catalog_price'] = $product->getPriceModel()->getFinalPrice(1, $product);
397
-
398
- $info['images'] = array();
399
- $mediaGallery = $product->getMediaGalleryImages();
400
-
401
- foreach ($mediaGallery as $image)
402
- $info['images'][] = $image['url'];
403
-
404
- $n = 0;
405
- $categories = array();
406
- $categoryNames = array();
407
-
408
- $categoryIds = array();
409
- $categoryIdsTmp = $product->getCategoryIds();
410
-
411
- foreach ($categoryIdsTmp as $categoryId) $categoryIds[] = $categoryId;
412
-
413
- foreach ($categoryIds as $categoryId)
414
- {
415
- $category = $this->getCategory($categoryId);
416
- if ($category->getIsActive()) continue;
417
-
418
- $info["category$n"] = $category;
419
-
420
- $categories[] = $category;
421
- $categoryNames[] = $category->getName();
422
- $n++;
423
- }
424
-
425
- $info['categories'] = $categories;
426
- $info['category_names'] = $categoryNames;
427
-
428
- $item = $this->getProductFilterModel()->setVariables($info)->setFeed($this)->filter($this->getTemplate()->getTemplateProduct());
429
-
430
- return $item;
431
- }
432
-
433
- /**
434
- * Set rebuild flag
435
- *
436
- * @return MSP_UniFeed_Model_Feed
437
- */
438
- public function setRebuildFlag()
439
- {
440
- if (!$this->getId())
441
- return $this;
442
-
443
- $fp = fopen($this->getRebuildFileName(), 'w');
444
- fputs($fp, time());
445
- fclose($fp);
446
-
447
- return $this;
448
- }
449
-
450
- /**
451
- * Get rebuild flag
452
- *
453
- * @return bool
454
- */
455
- public function getRebuildFlag()
456
- {
457
- if (!$this->getId())
458
- return 0;
459
-
460
- clearstatcache();
461
- return file_exists($this->getRebuildFileName()) || !file_exists($this->getFinalFileName());
462
- }
463
-
464
- /**
465
- * Get build status
466
- *
467
- * @return int
468
- */
469
- public function getBuildStatus()
470
- {
471
- if (!$this->getId())
472
- return -1;
473
-
474
- if (!file_exists($this->getFinalFileName()))
475
- {
476
- if (file_exists($this->getBufferFileName()))
477
- return self::BUILD_STATUS_BUILDING;
478
-
479
- return self::BUILD_STATUS_NOT_READY;
480
- }
481
-
482
- if (file_exists($this->getRebuildFileName()))
483
- {
484
- if (file_exists($this->getBufferFileName()))
485
- return self::BUILD_STATUS_UPDATING;
486
- else
487
- return self::BUILD_STATUS_MARKED_REBUILD;
488
- }
489
-
490
- return self::BUILD_STATUS_READY;
491
- }
492
-
493
- /**
494
- * Get build date
495
- *
496
- * @return int
497
- */
498
- public function getBuildDate()
499
- {
500
- if (!$this->getId())
501
- return -1;
502
-
503
- if (!file_exists($this->getFinalFileName()))
504
- return 0;
505
-
506
- return filemtime($this->getFinalFileName());
507
- }
508
-
509
- public function buildAll()
510
- {
511
- $fp = fopen($this->getLockFile(), "w");
512
-
513
- if (flock($fp, LOCK_EX|LOCK_NB))
514
- {
515
- $collection = Mage::getModel('msp_unifeed/feed')->getCollection();
516
- foreach ($collection as $f)
517
- {
518
- $feed = Mage::getModel('msp_unifeed/feed')->load($f->getId());
519
- $feed->build();
520
- }
521
-
522
- fclose($fp);
523
- unlink($this->getLockFile());
524
- }
525
- }
526
-
527
- /**
528
- * Build feed
529
- * @return MSP_UniFeed_Model_Feed
530
- */
531
- public function build()
532
- {
533
- if (!$this->getId())
534
- return $this;
535
-
536
- if (!$this->getRebuildFlag())
537
- return $this;
538
-
539
- if (!$this->getStatus())
540
- {
541
- @unlink($this->getBufferFileName());
542
- @unlink($this->getFinalFileName());
543
- return $this;
544
- }
545
-
546
- // Initialize
547
- $this->_stockModel = Mage::getModel('cataloginventory/stock_item');
548
-
549
- // Common data info
550
- $store = $this->getStore();
551
- $baseInfo['store'] = $store;
552
- $baseInfo['timestamp'] = date('Y-m-d').'T'.date('H:i:s').'Z';
553
- $baseInfo['locale'] = Mage::app()->getLocale()->getLocaleCode();
554
-
555
- $this->clearBufferFile();
556
- $this->writeBufferFile($this->getContainerFilterModel()->filter($this->getTemplate()->getTemplateOpen()), null);
557
-
558
- // Categories
559
- $collection = $this->getProductsCollection();
560
- if ($collection)
561
- {
562
- foreach ($collection as $product)
563
- {
564
- $product->setStoreId($store->getId());
565
- $this->writeBufferFile($this->getProductFeed($product, $baseInfo, false));
566
- }
567
- }
568
-
569
- $this->writeBufferFile($this->getContainerFilterModel()->filter($this->getTemplate()->getTemplateClose()), null);
570
- $this->closeBufferFile();
571
- $this->finalizeBufferFile();
572
-
573
- return $this;
574
- }
575
- }
 
 
 
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Model_Feed extends Mage_Core_Model_Abstract
22
+ {
23
+ const BUILD_STATUS_NOT_READY = 0;
24
+ const BUILD_STATUS_BUILDING = 1;
25
+ const BUILD_STATUS_MARKED_REBUILD = 2;
26
+ const BUILD_STATUS_UPDATING = 3;
27
+ const BUILD_STATUS_READY = 4;
28
+
29
+ protected $_categoryIdsArray = null;
30
+ protected $_templateModel = null;
31
+ protected $_containerFilter = null;
32
+ protected $_productFilter = null;
33
+ protected $_categories = array();
34
+ protected $_fpBuffer = null;
35
+
36
+ public function _construct()
37
+ {
38
+ parent::_construct();
39
+ $this->_init('msp_unifeed/feed');
40
+ }
41
+
42
+ public function getTemplate()
43
+ {
44
+ if (!$this->_templateModel)
45
+ $this->_templateModel = Mage::getModel('msp_unifeed/template')->load($this->getMspUnifeedTemplateId());
46
+
47
+ return $this->_templateModel;
48
+ }
49
+
50
+ protected function getStore()
51
+ {
52
+ return Mage::app()->getStore($this->getStoreId());
53
+ }
54
+
55
+ protected function getUnifeedWorkingPath()
56
+ {
57
+ $path = Mage::getBaseDir('var').DS.'unifeed';
58
+
59
+ if (!is_dir($path))
60
+ mkdir($path);
61
+
62
+ chmod($path, 0777);
63
+
64
+ return $path;
65
+ }
66
+
67
+ protected function getLockFile()
68
+ {
69
+ return $this->getUnifeedWorkingPath().DS.'export.lck';
70
+ }
71
+
72
+ protected function getBufferFileName()
73
+ {
74
+ if (!$this->getId())
75
+ return '';
76
+
77
+ return $this->getUnifeedWorkingPath().DS.'unifeed-'.$this->getId().'.buf';
78
+ }
79
+
80
+ public function getFinalFileName()
81
+ {
82
+ if (!$this->getId())
83
+ return '';
84
+
85
+ return $this->getUnifeedWorkingPath().DS.'unifeed-'.$this->getId().'.exp';
86
+ }
87
+
88
+ protected function getRebuildFileName()
89
+ {
90
+ if (!$this->getId())
91
+ return '';
92
+
93
+ return $this->getUnifeedWorkingPath().DS.'unifeed-'.$this->getId().'.reb';
94
+ }
95
+
96
+ protected function getCategoriesCollection()
97
+ {
98
+ if (!$this->getId())
99
+ return null;
100
+
101
+ $store = $this->getStore();
102
+ $collection = Mage::getModel('catalog/category')->getCollection();
103
+ $collection
104
+ ->setStoreId($store->getId())
105
+ ->addAttributeToSelect('*')
106
+ ->addAttributeToFilter(array(array('attribute'=>'msp_unifeed_ids', 'like'=>"%:".$this->getId().":%")))
107
+ ->load();
108
+
109
+ return $collection;
110
+ }
111
+
112
+ protected function getCategoryIdsArray()
113
+ {
114
+ if (!$this->getId())
115
+ return array();
116
+
117
+ if (!is_array($this->_categoryIdsArray))
118
+ {
119
+ $this->_categoryIdsArray = array();
120
+
121
+ $categories = $this->getCategoriesCollection();
122
+ foreach ($categories as $category)
123
+ {
124
+ $this->_categoryIdsArray[] = $category->getId();
125
+ }
126
+ }
127
+
128
+ return $this->_categoryIdsArray;
129
+ }
130
+
131
+ public function getProductsCollection()
132
+ {
133
+ if (!$this->getId())
134
+ return null;
135
+
136
+ $store = $this->getStore();
137
+ $collection = Mage::getModel('msp_unifeed/resource_catalog_eav_mysql4_product_collection');
138
+
139
+ // Fix for Magento 1.9
140
+ $collection->setStoreId($this->getStoreId());
141
+
142
+ $visibility = array(
143
+ Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH,
144
+ Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_CATALOG
145
+ );
146
+
147
+ $categories = $this->getCategoryIdsArray();
148
+ if (!count($categories))
149
+ return null;
150
+
151
+ $collection
152
+ ->addAttributeToSelect('*')
153
+ ->addStoreFilter($this->getStoreId())
154
+ ->addWebsiteFilter($this->getStore()->getWebsite())
155
+ ->addPriceData(0, $this->getStore()->getWebsiteId())
156
+ ->joinAttribute('custom_name', 'catalog_product/name', 'entity_id', null, 'inner', $store->getId())
157
+ ->joinAttribute('status', 'catalog_product/status', 'entity_id', null, 'inner', $store->getId())
158
+ ->joinAttribute('visibility', 'catalog_product/visibility', 'entity_id', null, 'inner', $store->getId())
159
+ ->addAttributeToFilter('visibility', $visibility)
160
+ ->addCategoriesFilter($categories);
161
+
162
+ $this->addMediaGalleryAttributeToCollection($collection);
163
+
164
+ $collection
165
+ ->load();
166
+
167
+ return $collection;
168
+ }
169
+
170
+ protected function getContainerFilterModel()
171
+ {
172
+ if (!$this->_containerFilter)
173
+ $this->_containerFilter = Mage::getModel('msp_unifeed/template_container');
174
+
175
+ return $this->_containerFilter;
176
+ }
177
+
178
+ protected function getProductFilterModel()
179
+ {
180
+ if (!$this->_productFilter)
181
+ $this->_productFilter = Mage::getModel('msp_unifeed/template_product');
182
+
183
+ return $this->_productFilter;
184
+ }
185
+
186
+ /**
187
+ * Get category
188
+ * @param $id
189
+ * @return Mage_Catalog_Model_Category
190
+ */
191
+ protected function getCategory($id)
192
+ {
193
+ if (!isset($this->_categories[$id]))
194
+ $this->_categories[$id] = Mage::getModel('catalog/category')->load($id);
195
+
196
+ return $this->_categories[$id];
197
+ }
198
+
199
+ /**
200
+ * Open buffer file
201
+ *
202
+ * @return MSP_UniFeed_Model_Feed
203
+ */
204
+ protected function openBufferFile()
205
+ {
206
+ if (!$this->getId())
207
+ return $this;
208
+
209
+ $this->_fpBuffer = fopen($this->getBufferFileName(), 'a');
210
+ return $this;
211
+ }
212
+
213
+ /**
214
+ * Clear buffer file
215
+ *
216
+ * @return MSP_UniFeed_Model_Feed
217
+ */
218
+ protected function clearBufferFile()
219
+ {
220
+ if (!$this->getId())
221
+ return $this;
222
+
223
+ @unlink($this->getBufferFileName());
224
+ return $this;
225
+ }
226
+
227
+ /**
228
+ * Write buffer immediately
229
+ *
230
+ * @param string $buffer
231
+ * @return MSP_UniFeed_Model_Feed
232
+ */
233
+ protected function writeBufferFile($buffer)
234
+ {
235
+ if (!$this->getId())
236
+ return $this;
237
+
238
+ if (!$this->_fpBuffer)
239
+ $this->openBufferFile();
240
+
241
+ fputs($this->_fpBuffer, $buffer);
242
+
243
+ return $this;
244
+ }
245
+
246
+ /**
247
+ * Close buffer file
248
+ *
249
+ * @return MSP_UniFeed_Model_Feed
250
+ */
251
+ protected function closeBufferFile()
252
+ {
253
+ if (!$this->getId())
254
+ return $this;
255
+
256
+ if (!$this->_fpBuffer)
257
+ return $this;
258
+
259
+ fclose($this->_fpBuffer);
260
+ $this->_fpBuffer = 0;
261
+ return $this;
262
+ }
263
+
264
+ /**
265
+ * Finalize buffer file
266
+ *
267
+ * @return MSP_UniFeed_Model_Feed
268
+ */
269
+ protected function finalizeBufferFile()
270
+ {
271
+ if (!$this->getId())
272
+ return $this;
273
+
274
+ @rename($this->getBufferFileName(), $this->getFinalFileName());
275
+ @unlink($this->getRebuildFileName());
276
+ @unlink($this->getPositionFileName());
277
+ @unlink($this->getIdsFileName());
278
+
279
+ return $this;
280
+ }
281
+
282
+ /**
283
+ * Get AMP for current format
284
+ *
285
+ * @return string
286
+ */
287
+ public function getAmp()
288
+ {
289
+ if (($this->getType() == 'xml') || ($this->getType() == 'html'))
290
+ return '&amp;';
291
+
292
+ return '&';
293
+ }
294
+
295
+ /**
296
+ * Get GoogleAnalytics string
297
+ *
298
+ * @return string
299
+ */
300
+ public function getGaQueryString()
301
+ {
302
+ $utm = array();
303
+
304
+ $amp = $this->getAmp();
305
+
306
+ if ($this->getGaSource())
307
+ $utm[] = 'utm_source='.urlencode($this->getGaSource());
308
+
309
+ if ($this->getGaMedium())
310
+ $utm[] = 'utm_medium='.urlencode($this->getGaMedium());
311
+
312
+ if ($this->getGaTerm())
313
+ $utm[] = 'utm_term='.urlencode($this->getGaTerm());
314
+
315
+ if ($this->getGaContent())
316
+ $utm[] = 'utm_content='.urlencode($this->getGaContent());
317
+
318
+ if ($this->getGaName())
319
+ $utm[] = 'utm_campaign='.urlencode($this->getGaName());
320
+
321
+ return join($amp, $utm);
322
+ }
323
+
324
+ /**
325
+ * Load mediagallery with product's collection
326
+ *
327
+ * @param Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection $productCollection
328
+ * @return Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection
329
+ */
330
+ protected function addMediaGalleryAttributeToCollection(Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection $productCollection)
331
+ {
332
+ if (!count($productCollection->getAllIds()))
333
+ return $productCollection;
334
+
335
+ $mediaGalleryAttributeId = Mage::getSingleton('eav/config')->getAttribute('catalog_product', 'media_gallery')->getAttributeId();
336
+ $resource = Mage::getSingleton('core/resource');
337
+ $read = $resource->getConnection('catalog_read');
338
+
339
+ $mediaGalleryData = $read->fetchAll('
340
+ SELECT
341
+ main.entity_id, `main`.`value_id`, `main`.`value` AS `file`,
342
+ `value`.`label`, `value`.`position`, `value`.`disabled`, `default_value`.`label` AS `label_default`,
343
+ `default_value`.`position` AS `position_default`,
344
+ `default_value`.`disabled` AS `disabled_default`
345
+ FROM '.$resource->getTableName('catalog_product_entity_media_gallery').' AS `main`
346
+ LEFT JOIN '.$resource->getTableName('catalog_product_entity_media_gallery_value').' AS `value`
347
+ ON main.value_id=value.value_id AND value.store_id=' . Mage::app()->getStore()->getId() . '
348
+ LEFT JOIN '.$resource->getTableName('catalog_product_entity_media_gallery_value').' AS `default_value`
349
+ ON main.value_id=default_value.value_id AND default_value.store_id=0
350
+ WHERE (
351
+ main.attribute_id = '.$read->quote($mediaGalleryAttributeId).')
352
+ AND (main.entity_id IN ('.$read->quote($productCollection->getAllIds()).'))
353
+ ORDER BY IF(value.position IS NULL, default_value.position, value.position) ASC
354
+ ');
355
+
356
+ $mediaGalleryByProductId = array();
357
+ foreach ($mediaGalleryData as $galleryImage) {
358
+ $k = $galleryImage['entity_id'];
359
+ unset($galleryImage['entity_id']);
360
+ if (!isset($mediaGalleryByProductId[$k])) {
361
+ $mediaGalleryByProductId[$k] = array();
362
+ }
363
+ $mediaGalleryByProductId[$k][] = $galleryImage;
364
+ }
365
+ unset($mediaGalleryData);
366
+
367
+ foreach ($productCollection as &$product) {
368
+ $productId = $product->getData('entity_id');
369
+ if (isset($mediaGalleryByProductId[$productId])) {
370
+ $product->setData('media_gallery', array('images' => $mediaGalleryByProductId[$productId]));
371
+ }
372
+ }
373
+ unset($mediaGalleryByProductId);
374
+
375
+ return $productCollection;
376
+ }
377
+
378
+ /**
379
+ * Return single product feed
380
+ *
381
+ * @param Mage_Core_Model_Catalog_Product
382
+ * @param array $baseInfo [optional]
383
+ * @param bool $categorySkip [optional]
384
+ * @return string
385
+ */
386
+ protected function getProductFeed($product, $baseInfo = array())
387
+ {
388
+ if (!$this->getId())
389
+ return '';
390
+
391
+ $info = $baseInfo;
392
+
393
+ $info['product'] = $product;
394
+ $info['stock'] = $this->_stockModel->loadByProduct($product);
395
+ $info['final_price'] = $product->getFinalPrice();
396
+ $info['final_price_rule'] = Mage::getModel('catalogrule/rule')->calcProductPriceRule($product, $product->getMinimalPrice());
397
+ $info['final_price_tax'] = Mage::helper('tax')->getPrice($product, $product->getFinalPrice(), true);
398
+ $info['final_price_notax'] = Mage::helper('tax')->getPrice($product, $product->getFinalPrice(), false);
399
+ $info['catalog_price'] = $product->getPriceModel()->getFinalPrice(1, $product);
400
+
401
+ $info['images'] = array();
402
+ $mediaGallery = $product->getMediaGalleryImages();
403
+
404
+ foreach ($mediaGallery as $image)
405
+ $info['images'][] = $image['url'];
406
+
407
+ $n = 0;
408
+ $categories = array();
409
+ $categoryNames = array();
410
+
411
+ $categoryIds = array();
412
+ $categoryIdsTmp = $product->getCategoryIds();
413
+
414
+ foreach ($categoryIdsTmp as $categoryId) $categoryIds[] = $categoryId;
415
+
416
+ foreach ($categoryIds as $categoryId)
417
+ {
418
+ $category = $this->getCategory($categoryId);
419
+ if ($category->getIsActive()) continue;
420
+
421
+ $info["category$n"] = $category;
422
+
423
+ $categories[] = $category;
424
+ $categoryNames[] = $category->getName();
425
+ $n++;
426
+ }
427
+
428
+ $info['categories'] = $categories;
429
+ $info['category_names'] = $categoryNames;
430
+
431
+ $item = $this->getProductFilterModel()->setVariables($info)->setFeed($this)->filter($this->getTemplate()->getTemplateProduct());
432
+
433
+ return $item;
434
+ }
435
+
436
+ /**
437
+ * Set rebuild flag
438
+ *
439
+ * @return MSP_UniFeed_Model_Feed
440
+ */
441
+ public function setRebuildFlag()
442
+ {
443
+ if (!$this->getId())
444
+ return $this;
445
+
446
+ $fp = fopen($this->getRebuildFileName(), 'w');
447
+ fputs($fp, time());
448
+ fclose($fp);
449
+
450
+ return $this;
451
+ }
452
+
453
+ /**
454
+ * Get rebuild flag
455
+ *
456
+ * @return bool
457
+ */
458
+ public function getRebuildFlag()
459
+ {
460
+ if (!$this->getId())
461
+ return 0;
462
+
463
+ clearstatcache();
464
+ return file_exists($this->getRebuildFileName()) || !file_exists($this->getFinalFileName());
465
+ }
466
+
467
+ /**
468
+ * Get build status
469
+ *
470
+ * @return int
471
+ */
472
+ public function getBuildStatus()
473
+ {
474
+ if (!$this->getId())
475
+ return -1;
476
+
477
+ if (!file_exists($this->getFinalFileName()))
478
+ {
479
+ if (file_exists($this->getBufferFileName()))
480
+ return self::BUILD_STATUS_BUILDING;
481
+
482
+ return self::BUILD_STATUS_NOT_READY;
483
+ }
484
+
485
+ if (file_exists($this->getRebuildFileName()))
486
+ {
487
+ if (file_exists($this->getBufferFileName()))
488
+ return self::BUILD_STATUS_UPDATING;
489
+ else
490
+ return self::BUILD_STATUS_MARKED_REBUILD;
491
+ }
492
+
493
+ return self::BUILD_STATUS_READY;
494
+ }
495
+
496
+ /**
497
+ * Get build date
498
+ *
499
+ * @return int
500
+ */
501
+ public function getBuildDate()
502
+ {
503
+ if (!$this->getId())
504
+ return -1;
505
+
506
+ if (!file_exists($this->getFinalFileName()))
507
+ return 0;
508
+
509
+ return filemtime($this->getFinalFileName());
510
+ }
511
+
512
+ public function buildAll()
513
+ {
514
+ $fp = fopen($this->getLockFile(), "w");
515
+
516
+ if (flock($fp, LOCK_EX|LOCK_NB))
517
+ {
518
+ $collection = Mage::getModel('msp_unifeed/feed')->getCollection();
519
+ foreach ($collection as $f)
520
+ {
521
+ $feed = Mage::getModel('msp_unifeed/feed')->load($f->getId());
522
+ $feed->build();
523
+ }
524
+
525
+ fclose($fp);
526
+ unlink($this->getLockFile());
527
+ }
528
+ }
529
+
530
+ /**
531
+ * Build feed
532
+ * @return MSP_UniFeed_Model_Feed
533
+ */
534
+ public function build()
535
+ {
536
+ if (!$this->getId())
537
+ return $this;
538
+
539
+ if (!$this->getRebuildFlag())
540
+ return $this;
541
+
542
+ if (!$this->getStatus())
543
+ {
544
+ @unlink($this->getBufferFileName());
545
+ @unlink($this->getFinalFileName());
546
+ return $this;
547
+ }
548
+
549
+ // Initialize
550
+ $this->_stockModel = Mage::getModel('cataloginventory/stock_item');
551
+
552
+ // Common data info
553
+ $store = $this->getStore();
554
+ $baseInfo['store'] = $store;
555
+ $baseInfo['timestamp'] = date('Y-m-d').'T'.date('H:i:s').'Z';
556
+ $baseInfo['locale'] = Mage::app()->getLocale()->getLocaleCode();
557
+
558
+ $this->clearBufferFile();
559
+ $this->writeBufferFile($this->getContainerFilterModel()->filter($this->getTemplate()->getTemplateOpen()), null);
560
+
561
+ // Categories
562
+ $collection = $this->getProductsCollection();
563
+ if ($collection)
564
+ {
565
+ foreach ($collection as $product)
566
+ {
567
+ $product->setStoreId($store->getId());
568
+ $this->writeBufferFile($this->getProductFeed($product, $baseInfo, false));
569
+ }
570
+ }
571
+
572
+ $this->writeBufferFile($this->getContainerFilterModel()->filter($this->getTemplate()->getTemplateClose()), null);
573
+ $this->closeBufferFile();
574
+ $this->finalizeBufferFile();
575
+
576
+ return $this;
577
+ }
578
+ }
app/code/community/MSP/Unifeed/Model/Feed/Attribute.php CHANGED
@@ -1,58 +1,58 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Model_Feed_Attribute extends Mage_Core_Model_Abstract
22
- {
23
- protected function _construct()
24
- {
25
- $this->_init('msp_unifeed/feed_attribute');
26
- }
27
-
28
- public function getAllOptions()
29
- {
30
- $model = Mage::getModel("msp_unifeed/feed");
31
- $collection = $model->getCollection();
32
-
33
- $out = array();
34
-
35
- $allids = $collection->getAllIds();
36
- foreach ($allids as $id)
37
- {
38
- $model->load($id);
39
- $out[] = array('label'=>$model->getName(), 'value'=>$model->getId());
40
- }
41
-
42
- return $out;
43
- }
44
-
45
- public function getOptionArray()
46
- {
47
- $options = $this->getOptions();
48
- foreach ($options as $option)
49
- $out[$option['value']] = $option['label'];
50
-
51
- return $out;
52
- }
53
-
54
- public function getOptions()
55
- {
56
- return $this->getAllOptions();
57
- }
58
- }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Model_Feed_Attribute extends Mage_Core_Model_Abstract
22
+ {
23
+ protected function _construct()
24
+ {
25
+ $this->_init('msp_unifeed/feed_attribute');
26
+ }
27
+
28
+ public function getAllOptions()
29
+ {
30
+ $model = Mage::getModel("msp_unifeed/feed");
31
+ $collection = $model->getCollection();
32
+
33
+ $out = array();
34
+
35
+ $allids = $collection->getAllIds();
36
+ foreach ($allids as $id)
37
+ {
38
+ $model->load($id);
39
+ $out[] = array('label'=>$model->getName(), 'value'=>$model->getId());
40
+ }
41
+
42
+ return $out;
43
+ }
44
+
45
+ public function getOptionArray()
46
+ {
47
+ $options = $this->getOptions();
48
+ foreach ($options as $option)
49
+ $out[$option['value']] = $option['label'];
50
+
51
+ return $out;
52
+ }
53
+
54
+ public function getOptions()
55
+ {
56
+ return $this->getAllOptions();
57
+ }
58
+ }
app/code/community/MSP/Unifeed/Model/Feed/Status.php CHANGED
@@ -1,45 +1,45 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
-
22
- class MSP_Unifeed_Model_Feed_Status extends Mage_Core_Model_Abstract
23
- {
24
- const STATUS_ENABLED = 1;
25
- const STATUS_DISABLED = 0;
26
-
27
- static public function getHashArray()
28
- {
29
- return array(
30
- self::STATUS_ENABLED=>Mage::helper('msp_unifeed')->__('Enabled'),
31
- self::STATUS_DISABLED=>Mage::helper('msp_unifeed')->__('Disabled')
32
- );
33
- }
34
-
35
- static public function getOptionArray()
36
- {
37
- $out = array();
38
- $options = self::getHashArray();
39
-
40
- foreach ($options as $k => $v)
41
- $out[] = array('label' => $v, 'value' => $k);
42
-
43
- return $out;
44
- }
45
- }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+
22
+ class MSP_Unifeed_Model_Feed_Status extends Mage_Core_Model_Abstract
23
+ {
24
+ const STATUS_ENABLED = 1;
25
+ const STATUS_DISABLED = 0;
26
+
27
+ static public function getHashArray()
28
+ {
29
+ return array(
30
+ self::STATUS_ENABLED=>Mage::helper('msp_unifeed')->__('Enabled'),
31
+ self::STATUS_DISABLED=>Mage::helper('msp_unifeed')->__('Disabled')
32
+ );
33
+ }
34
+
35
+ static public function getOptionArray()
36
+ {
37
+ $out = array();
38
+ $options = self::getHashArray();
39
+
40
+ foreach ($options as $k => $v)
41
+ $out[] = array('label' => $v, 'value' => $k);
42
+
43
+ return $out;
44
+ }
45
+ }
app/code/community/MSP/Unifeed/Model/Observer.php CHANGED
@@ -1,40 +1,40 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Model_Observer
22
- {
23
- const XML_UNIFEED_GENERAL_ENABLED = "msp_unifeed/general/enabled";
24
- const XML_UNIFEED_GENERAL_DAILY_REBUILD = "msp_unifeed/general/daily-rebuild";
25
-
26
- public function rebuildCatalog()
27
- {
28
- if (!Mage::getStoreConfig(self::XML_UNIFEED_GENERAL_ENABLED))
29
- return;
30
-
31
- if (!Mage::getStoreConfig(self::XML_UNIFEED_GENERAL_DAILY_REBUILD))
32
- return;
33
-
34
- $feeds = Mage::getModel('msp_unifeed/feed')->getCollection();
35
- foreach ($feeds as $feed)
36
- {
37
- $feed->setRebuildFlag();
38
- }
39
- }
40
- }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Model_Observer
22
+ {
23
+ const XML_UNIFEED_GENERAL_ENABLED = "msp_unifeed/general/enabled";
24
+ const XML_UNIFEED_GENERAL_DAILY_REBUILD = "msp_unifeed/general/daily-rebuild";
25
+
26
+ public function rebuildCatalog()
27
+ {
28
+ if (!Mage::getStoreConfig(self::XML_UNIFEED_GENERAL_ENABLED))
29
+ return;
30
+
31
+ if (!Mage::getStoreConfig(self::XML_UNIFEED_GENERAL_DAILY_REBUILD))
32
+ return;
33
+
34
+ $feeds = Mage::getModel('msp_unifeed/feed')->getCollection();
35
+ foreach ($feeds as $feed)
36
+ {
37
+ $feed->setRebuildFlag();
38
+ }
39
+ }
40
+ }
app/code/community/MSP/Unifeed/Model/Product/Feed.php CHANGED
@@ -1,79 +1,79 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Model_Product_Feed extends Mage_Core_Model_Abstract
22
- {
23
- public function setCategories($feedId, $categoryIds)
24
- {
25
- $count = 0;
26
-
27
- $collection = Mage::getModel('catalog/category')
28
- ->getCollection();
29
-
30
- $collection
31
- ->addAttributeToSelect(array('msp_unifeed_ids'))
32
- ->load();
33
-
34
- $categoryModel = Mage::getModel('catalog/category');
35
- foreach ($collection as $category)
36
- {
37
- // Add category
38
- if (in_array($category->getId(), $categoryIds))
39
- {
40
- $categoryFeeds = explode(':', $category->getMspUnifeedIds());
41
- $categoryFeeds[] = $feedId;
42
-
43
- $categoryModel
44
- ->setData(array())
45
- ->load($category->getId())
46
- ->setMspUnifeedIds($categoryFeeds)
47
- ->save();
48
-
49
- $count++;
50
- }
51
-
52
- // Remove category
53
- else
54
- {
55
- $categoryFeeds2 = array();
56
- $categoryFeeds = explode(':', $category->getMspUnifeedIds());
57
-
58
- if (in_array($feedId, $categoryFeeds))
59
- {
60
- foreach ($categoryFeeds as $i)
61
- {
62
- if (!$i || ($i == $feedId))
63
- continue;
64
-
65
- $categoryFeeds2[] = $i;
66
- }
67
-
68
- $categoryModel
69
- ->setData(array())
70
- ->load($category->getId())
71
- ->setMspUnifeedIds($categoryFeeds2)
72
- ->save();
73
- }
74
- }
75
- }
76
-
77
- return $count;
78
- }
79
- }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Model_Product_Feed extends Mage_Core_Model_Abstract
22
+ {
23
+ public function setCategories($feedId, $categoryIds)
24
+ {
25
+ $count = 0;
26
+
27
+ $collection = Mage::getModel('catalog/category')
28
+ ->getCollection();
29
+
30
+ $collection
31
+ ->addAttributeToSelect(array('msp_unifeed_ids'))
32
+ ->load();
33
+
34
+ $categoryModel = Mage::getModel('catalog/category');
35
+ foreach ($collection as $category)
36
+ {
37
+ // Add category
38
+ if (in_array($category->getId(), $categoryIds))
39
+ {
40
+ $categoryFeeds = explode(':', $category->getMspUnifeedIds());
41
+ $categoryFeeds[] = $feedId;
42
+
43
+ $categoryModel
44
+ ->setData(array())
45
+ ->load($category->getId())
46
+ ->setMspUnifeedIds($categoryFeeds)
47
+ ->save();
48
+
49
+ $count++;
50
+ }
51
+
52
+ // Remove category
53
+ else
54
+ {
55
+ $categoryFeeds2 = array();
56
+ $categoryFeeds = explode(':', $category->getMspUnifeedIds());
57
+
58
+ if (in_array($feedId, $categoryFeeds))
59
+ {
60
+ foreach ($categoryFeeds as $i)
61
+ {
62
+ if (!$i || ($i == $feedId))
63
+ continue;
64
+
65
+ $categoryFeeds2[] = $i;
66
+ }
67
+
68
+ $categoryModel
69
+ ->setData(array())
70
+ ->load($category->getId())
71
+ ->setMspUnifeedIds($categoryFeeds2)
72
+ ->save();
73
+ }
74
+ }
75
+ }
76
+
77
+ return $count;
78
+ }
79
+ }
app/code/community/MSP/Unifeed/Model/Resource/Catalog/Eav/Mysql4/Product/Collection.php CHANGED
@@ -1,46 +1,46 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Model_Resource_Catalog_Eav_Mysql4_Product_Collection extends Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection
22
- {
23
- public function addCategoriesFilter($categories)
24
- {
25
- $alias = 'cat_index';
26
- $categoryCondition = $this->getConnection()->quoteInto(
27
- $alias.'.product_id=e.entity_id AND '.$alias.'.store_id=? AND ',
28
- $this->getStoreId()
29
- );
30
-
31
- $categoryCondition.= $alias.'.category_id IN ('.join(',', $categories).')';
32
-
33
- $this->getSelect()
34
- ->distinct()
35
- ->joinInner(
36
- array($alias => $this->getTable('catalog/category_product_index')),
37
- $categoryCondition,
38
- array()
39
- );
40
-
41
- $this->_categoryIndexJoined = true;
42
- $this->_joinFields['position'] = array('table'=>$alias, 'field'=>'position' );
43
-
44
- return $this;
45
- }
46
  }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Model_Resource_Catalog_Eav_Mysql4_Product_Collection extends Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection
22
+ {
23
+ public function addCategoriesFilter($categories)
24
+ {
25
+ $alias = 'cat_index';
26
+ $categoryCondition = $this->getConnection()->quoteInto(
27
+ $alias.'.product_id=e.entity_id AND '.$alias.'.store_id=? AND ',
28
+ $this->getStoreId()
29
+ );
30
+
31
+ $categoryCondition.= $alias.'.category_id IN ('.join(',', $categories).')';
32
+
33
+ $this->getSelect()
34
+ ->distinct()
35
+ ->joinInner(
36
+ array($alias => $this->getTable('catalog/category_product_index')),
37
+ $categoryCondition,
38
+ array()
39
+ );
40
+
41
+ $this->_categoryIndexJoined = true;
42
+ $this->_joinFields['position'] = array('table'=>$alias, 'field'=>'position' );
43
+
44
+ return $this;
45
+ }
46
  }
app/code/community/MSP/Unifeed/Model/Resource/Feed.php CHANGED
@@ -1,32 +1,32 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Model_Resource_Feed extends Mage_Core_Model_Mysql4_Abstract
22
- {
23
- public function _construct()
24
- {
25
- $this->_init('msp_unifeed/feed', 'msp_unifeed_feed_id');
26
- }
27
-
28
- public function getLastInsertId()
29
- {
30
- return $this->_getWriteAdapter()->lastInsertId($this->getMainTable());
31
- }
32
  }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Model_Resource_Feed extends Mage_Core_Model_Mysql4_Abstract
22
+ {
23
+ public function _construct()
24
+ {
25
+ $this->_init('msp_unifeed/feed', 'msp_unifeed_feed_id');
26
+ }
27
+
28
+ public function getLastInsertId()
29
+ {
30
+ return $this->_getWriteAdapter()->lastInsertId($this->getMainTable());
31
+ }
32
  }
app/code/community/MSP/Unifeed/Model/Resource/Feed/Collection.php CHANGED
@@ -1,37 +1,37 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Model_Resource_Feed_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
22
- {
23
- public function _construct()
24
- {
25
- $this->_init('msp_unifeed/feed');
26
- }
27
-
28
- public function toOptionArray($valueField='msp_unifeed_feed_id', $labelField='name')
29
- {
30
- return $this->_toOptionArray($valueField, $labelField);
31
- }
32
-
33
- public function toOptionHash($valueField='msp_unifeed_feed_id', $labelField='name')
34
- {
35
- return $this->_toOptionHash($valueField, $labelField);
36
- }
37
- }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Model_Resource_Feed_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
22
+ {
23
+ public function _construct()
24
+ {
25
+ $this->_init('msp_unifeed/feed');
26
+ }
27
+
28
+ public function toOptionArray($valueField='msp_unifeed_feed_id', $labelField='name')
29
+ {
30
+ return $this->_toOptionArray($valueField, $labelField);
31
+ }
32
+
33
+ public function toOptionHash($valueField='msp_unifeed_feed_id', $labelField='name')
34
+ {
35
+ return $this->_toOptionHash($valueField, $labelField);
36
+ }
37
+ }
app/code/community/MSP/Unifeed/Model/Resource/Template.php CHANGED
@@ -1,32 +1,32 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Model_Resource_Template extends Mage_Core_Model_Mysql4_Abstract
22
- {
23
- public function _construct()
24
- {
25
- $this->_init('msp_unifeed/template', 'msp_unifeed_template_id');
26
- }
27
-
28
- public function getLastInsertId()
29
- {
30
- return $this->_getWriteAdapter()->lastInsertId($this->getMainTable());
31
- }
32
  }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Model_Resource_Template extends Mage_Core_Model_Mysql4_Abstract
22
+ {
23
+ public function _construct()
24
+ {
25
+ $this->_init('msp_unifeed/template', 'msp_unifeed_template_id');
26
+ }
27
+
28
+ public function getLastInsertId()
29
+ {
30
+ return $this->_getWriteAdapter()->lastInsertId($this->getMainTable());
31
+ }
32
  }
app/code/community/MSP/Unifeed/Model/Resource/Template/Collection.php CHANGED
@@ -1,37 +1,37 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Model_Resource_Template_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
22
- {
23
- public function _construct()
24
- {
25
- $this->_init('msp_unifeed/template');
26
- }
27
-
28
- public function toOptionArray($valueField='msp_unifeed_template_id', $labelField='name')
29
- {
30
- return $this->_toOptionArray($valueField, $labelField);
31
- }
32
-
33
- public function toOptionHash($valueField='msp_unifeed_template_id', $labelField='name')
34
- {
35
- return $this->_toOptionHash($valueField, $labelField);
36
- }
37
- }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Model_Resource_Template_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
22
+ {
23
+ public function _construct()
24
+ {
25
+ $this->_init('msp_unifeed/template');
26
+ }
27
+
28
+ public function toOptionArray($valueField='msp_unifeed_template_id', $labelField='name')
29
+ {
30
+ return $this->_toOptionArray($valueField, $labelField);
31
+ }
32
+
33
+ public function toOptionHash($valueField='msp_unifeed_template_id', $labelField='name')
34
+ {
35
+ return $this->_toOptionHash($valueField, $labelField);
36
+ }
37
+ }
app/code/community/MSP/Unifeed/Model/Template.php CHANGED
@@ -1,50 +1,50 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Model_Template extends Mage_Core_Model_Abstract
22
- {
23
- public function _construct()
24
- {
25
- parent::_construct();
26
- $this->_init('msp_unifeed/template');
27
- }
28
-
29
- static public function getHashArray()
30
- {
31
- $out = array();
32
-
33
- $collection = Mage::getModel('msp_unifeed/template')->getCollection();
34
- foreach ($collection as $template)
35
- $out[$template->getid()] = $template->getName();
36
-
37
- return $out;
38
- }
39
-
40
- static public function getOptionArray()
41
- {
42
- $out = array();
43
- $options = self::getHashArray();
44
-
45
- foreach ($options as $k => $v)
46
- $out[] = array('label' => $v, 'value' => $k);
47
-
48
- return $out;
49
- }
50
- }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Model_Template extends Mage_Core_Model_Abstract
22
+ {
23
+ public function _construct()
24
+ {
25
+ parent::_construct();
26
+ $this->_init('msp_unifeed/template');
27
+ }
28
+
29
+ static public function getHashArray()
30
+ {
31
+ $out = array();
32
+
33
+ $collection = Mage::getModel('msp_unifeed/template')->getCollection();
34
+ foreach ($collection as $template)
35
+ $out[$template->getid()] = $template->getName();
36
+
37
+ return $out;
38
+ }
39
+
40
+ static public function getOptionArray()
41
+ {
42
+ $out = array();
43
+ $options = self::getHashArray();
44
+
45
+ foreach ($options as $k => $v)
46
+ $out[] = array('label' => $v, 'value' => $k);
47
+
48
+ return $out;
49
+ }
50
+ }
app/code/community/MSP/Unifeed/Model/Template/Abstract.php CHANGED
@@ -1,226 +1,226 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- abstract class MSP_Unifeed_Model_Template_Abstract extends Mage_Core_Model_Email_Template_Filter
22
- {
23
- const CONSTRUCTION_SET_PATTERN = '/{{set\s*(.*?)}}(.*?){{\\/set\s*}}/si';
24
-
25
- protected $_feed;
26
-
27
- public function getFeed()
28
- {
29
- return $this->_feed;
30
- }
31
-
32
- public function setFeed($feed)
33
- {
34
- $this->_feed = $feed;
35
- return $this;
36
- }
37
-
38
- public function ifDirective($construction)
39
- {
40
- $params = $this->_getIncludeParameters(' '.$construction[1]);
41
-
42
- if (isset($params['a']) && isset($params['b']) && isset($params['op']))
43
- {
44
- $val = false;
45
- switch ($params['op'])
46
- {
47
- case 'eq':
48
- if ($params['a'] == $params['b'])
49
- $val = true;
50
- break;
51
-
52
- case 'lt':
53
- if ($params['a'] < $params['b'])
54
- $val = true;
55
- break;
56
-
57
- case 'gt':
58
- if ($params['a'] > $params['b'])
59
- $val = true;
60
- break;
61
-
62
- case 'le':
63
- if ($params['a'] <= $params['b'])
64
- $val = true;
65
- break;
66
-
67
- case 'ge':
68
- if ($params['a'] >= $params['b'])
69
- $val = true;
70
- break;
71
- }
72
-
73
- if (!$val)
74
- {
75
- if (isset($construction[3]) && isset($construction[4]))
76
- {
77
- return $construction[4];
78
- }
79
- return '';
80
- }
81
- else
82
- {
83
- return $construction[2];
84
- }
85
-
86
- return parent::ifDirective($construction);
87
- }
88
- }
89
-
90
- protected function formatDirective($construction)
91
- {
92
- $params = $this->_getIncludeParameters($construction[2]);
93
- if (!isset($params['var']))
94
- return '';
95
-
96
- if (!isset($params['decimals']))
97
- $params['decimals'] = 2;
98
-
99
- if (!isset($params['separator']))
100
- $params['separator'] = '.';
101
-
102
- $allowedTags = null;
103
-
104
- return number_format($params['var'], $params['decimals'], $params['separator'], '');
105
- }
106
-
107
- protected function striptagsDirective($construction)
108
- {
109
- $params = $this->_getIncludeParameters($construction[2]);
110
- if (!isset($params['var']))
111
- return '';
112
-
113
- return strip_tags($params['var']);
114
- }
115
-
116
- protected function csvquoteDirective($construction)
117
- {
118
- $params = $this->_getIncludeParameters($construction[2]);
119
- if (!isset($params['enc'])) $params['enc'] = '"';
120
-
121
- if (!isset($params['var']))
122
- return $params['enc'].$params['enc'];
123
-
124
- $out = $params['enc'].str_replace($params['enc'], $params['enc'].$params['enc'], $params['var']).$params['enc'];
125
- return $out;
126
- }
127
-
128
- protected function quoteDirective($construction)
129
- {
130
- $params = $this->_getIncludeParameters($construction[2]);
131
- if (!isset($params['enc'])) $params['enc'] = '"';
132
-
133
- if (!isset($params['var']))
134
- return $params['enc'].$params['enc'];
135
-
136
- $out = $params['var'];
137
- $out = str_replace("\\", "\\\\", $out);
138
- $out = str_replace("\n", "\\n", $out);
139
- $out = str_replace($params['enc'], "\\".$params['enc'], $out);
140
-
141
- $out = $params['enc'].$out.$params['enc'];
142
- return $out;
143
- }
144
-
145
- protected function htmlunescapeDirective($construction)
146
- {
147
- $params = $this->_getIncludeParameters($construction[2]);
148
- if (!isset($params['var']))
149
- return '';
150
-
151
- $out = html_entity_decode($params['var']);
152
- return $out;
153
- }
154
-
155
- protected function nlbrDirective($construction)
156
- {
157
- $params = $this->_getIncludeParameters($construction[2]);
158
- if (!isset($params['var']))
159
- return '';
160
-
161
- $out = preg_replace("/[\n\r]+/", '', nl2br($params['var']));
162
- return $out;
163
- }
164
-
165
- protected function newlineDirective($construction)
166
- {
167
- return "\n";
168
- }
169
-
170
- protected function implodeDirective($construction)
171
- {
172
- $params = $this->_getIncludeParameters($construction[2]);
173
- if (!isset($params['glue']))
174
- $params['glue'] = '/';
175
-
176
- if (!isset($params['var']))
177
- return '';
178
-
179
- return implode($params['glue'], $params['var']);
180
- }
181
-
182
- public function setDirective($construction)
183
- {
184
- $params = $this->_getIncludeParameters(' '.$construction[1]);
185
- if (!isset($params['var']))
186
- return '';
187
-
188
- $this->_templateVars[$params['var']] = $this->filter($construction[2]);
189
- return '';
190
- }
191
-
192
- public function filter($value)
193
- {
194
- foreach (array(self::CONSTRUCTION_SET_PATTERN=>'setDirective') as $pattern=>$directive)
195
- {
196
- if (preg_match_all($pattern, $value, $constructions, PREG_SET_ORDER))
197
- {
198
- foreach ($constructions as $index=>$construction)
199
- {
200
- $replacedValue = '';
201
- $callback = array($this, $directive);
202
- if (!is_callable($callback))
203
- {
204
- continue;
205
- }
206
- try
207
- {
208
- $replacedValue = call_user_func($callback, $construction);
209
- }
210
- catch(Exception $e)
211
- {
212
- throw $e;
213
- }
214
-
215
- $value = str_replace($construction[0], $replacedValue, $value);
216
- }
217
- }
218
- }
219
-
220
- $value = trim($value);
221
- $value = parent::filter($value);
222
-
223
- return $value;
224
- }
225
- }
226
-
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ abstract class MSP_Unifeed_Model_Template_Abstract extends Mage_Core_Model_Email_Template_Filter
22
+ {
23
+ const CONSTRUCTION_SET_PATTERN = '/{{set\s*(.*?)}}(.*?){{\\/set\s*}}/si';
24
+
25
+ protected $_feed;
26
+
27
+ public function getFeed()
28
+ {
29
+ return $this->_feed;
30
+ }
31
+
32
+ public function setFeed($feed)
33
+ {
34
+ $this->_feed = $feed;
35
+ return $this;
36
+ }
37
+
38
+ public function ifDirective($construction)
39
+ {
40
+ $params = $this->_getIncludeParameters(' '.$construction[1]);
41
+
42
+ if (isset($params['a']) && isset($params['b']) && isset($params['op']))
43
+ {
44
+ $val = false;
45
+ switch ($params['op'])
46
+ {
47
+ case 'eq':
48
+ if ($params['a'] == $params['b'])
49
+ $val = true;
50
+ break;
51
+
52
+ case 'lt':
53
+ if ($params['a'] < $params['b'])
54
+ $val = true;
55
+ break;
56
+
57
+ case 'gt':
58
+ if ($params['a'] > $params['b'])
59
+ $val = true;
60
+ break;
61
+
62
+ case 'le':
63
+ if ($params['a'] <= $params['b'])
64
+ $val = true;
65
+ break;
66
+
67
+ case 'ge':
68
+ if ($params['a'] >= $params['b'])
69
+ $val = true;
70
+ break;
71
+ }
72
+
73
+ if (!$val)
74
+ {
75
+ if (isset($construction[3]) && isset($construction[4]))
76
+ {
77
+ return $construction[4];
78
+ }
79
+ return '';
80
+ }
81
+ else
82
+ {
83
+ return $construction[2];
84
+ }
85
+
86
+ return parent::ifDirective($construction);
87
+ }
88
+ }
89
+
90
+ protected function formatDirective($construction)
91
+ {
92
+ $params = $this->_getIncludeParameters($construction[2]);
93
+ if (!isset($params['var']))
94
+ return '';
95
+
96
+ if (!isset($params['decimals']))
97
+ $params['decimals'] = 2;
98
+
99
+ if (!isset($params['separator']))
100
+ $params['separator'] = '.';
101
+
102
+ $allowedTags = null;
103
+
104
+ return number_format($params['var'], $params['decimals'], $params['separator'], '');
105
+ }
106
+
107
+ protected function striptagsDirective($construction)
108
+ {
109
+ $params = $this->_getIncludeParameters($construction[2]);
110
+ if (!isset($params['var']))
111
+ return '';
112
+
113
+ return strip_tags($params['var']);
114
+ }
115
+
116
+ protected function csvquoteDirective($construction)
117
+ {
118
+ $params = $this->_getIncludeParameters($construction[2]);
119
+ if (!isset($params['enc'])) $params['enc'] = '"';
120
+
121
+ if (!isset($params['var']))
122
+ return $params['enc'].$params['enc'];
123
+
124
+ $out = $params['enc'].str_replace($params['enc'], $params['enc'].$params['enc'], $params['var']).$params['enc'];
125
+ return $out;
126
+ }
127
+
128
+ protected function quoteDirective($construction)
129
+ {
130
+ $params = $this->_getIncludeParameters($construction[2]);
131
+ if (!isset($params['enc'])) $params['enc'] = '"';
132
+
133
+ if (!isset($params['var']))
134
+ return $params['enc'].$params['enc'];
135
+
136
+ $out = $params['var'];
137
+ $out = str_replace("\\", "\\\\", $out);
138
+ $out = str_replace("\n", "\\n", $out);
139
+ $out = str_replace($params['enc'], "\\".$params['enc'], $out);
140
+
141
+ $out = $params['enc'].$out.$params['enc'];
142
+ return $out;
143
+ }
144
+
145
+ protected function htmlunescapeDirective($construction)
146
+ {
147
+ $params = $this->_getIncludeParameters($construction[2]);
148
+ if (!isset($params['var']))
149
+ return '';
150
+
151
+ $out = html_entity_decode($params['var']);
152
+ return $out;
153
+ }
154
+
155
+ protected function nlbrDirective($construction)
156
+ {
157
+ $params = $this->_getIncludeParameters($construction[2]);
158
+ if (!isset($params['var']))
159
+ return '';
160
+
161
+ $out = preg_replace("/[\n\r]+/", '', nl2br($params['var']));
162
+ return $out;
163
+ }
164
+
165
+ protected function newlineDirective($construction)
166
+ {
167
+ return "\n";
168
+ }
169
+
170
+ protected function implodeDirective($construction)
171
+ {
172
+ $params = $this->_getIncludeParameters($construction[2]);
173
+ if (!isset($params['glue']))
174
+ $params['glue'] = '/';
175
+
176
+ if (!isset($params['var']))
177
+ return '';
178
+
179
+ return implode($params['glue'], $params['var']);
180
+ }
181
+
182
+ public function setDirective($construction)
183
+ {
184
+ $params = $this->_getIncludeParameters(' '.$construction[1]);
185
+ if (!isset($params['var']))
186
+ return '';
187
+
188
+ $this->_templateVars[$params['var']] = $this->filter($construction[2]);
189
+ return '';
190
+ }
191
+
192
+ public function filter($value)
193
+ {
194
+ foreach (array(self::CONSTRUCTION_SET_PATTERN=>'setDirective') as $pattern=>$directive)
195
+ {
196
+ if (preg_match_all($pattern, $value, $constructions, PREG_SET_ORDER))
197
+ {
198
+ foreach ($constructions as $index=>$construction)
199
+ {
200
+ $replacedValue = '';
201
+ $callback = array($this, $directive);
202
+ if (!is_callable($callback))
203
+ {
204
+ continue;
205
+ }
206
+ try
207
+ {
208
+ $replacedValue = call_user_func($callback, $construction);
209
+ }
210
+ catch(Exception $e)
211
+ {
212
+ throw $e;
213
+ }
214
+
215
+ $value = str_replace($construction[0], $replacedValue, $value);
216
+ }
217
+ }
218
+ }
219
+
220
+ $value = trim($value);
221
+ $value = parent::filter($value);
222
+
223
+ return $value;
224
+ }
225
+ }
226
+
app/code/community/MSP/Unifeed/Model/Template/Container.php CHANGED
@@ -1,24 +1,24 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Model_Template_Container extends MSP_Unifeed_Model_Template_Abstract
22
- {
23
-
24
- }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Model_Template_Container extends MSP_Unifeed_Model_Template_Abstract
22
+ {
23
+
24
+ }
app/code/community/MSP/Unifeed/Model/Template/Product.php CHANGED
@@ -1,96 +1,96 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Model_Template_Product extends MSP_Unifeed_Model_Template_Abstract
22
- {
23
- public function gaDirective($construction)
24
- {
25
- $params = $this->_getIncludeParameters($construction[2]);
26
- if (!isset($params['url']))
27
- $params['url'] = $this->_templateVars['product']->getProductUrl();
28
-
29
- $amp = $this->getFeed()->getAmp();
30
-
31
- if (strpos($params['url'], '?'))
32
- $params['url'] .= $amp.$this->getFeed()->getGaQueryString();
33
- else
34
- $params['url'] .= '?'.$this->getFeed()->getGaQueryString();
35
-
36
- return $params['url'];
37
- }
38
-
39
- public function attributesDirective($construction)
40
- {
41
- $params = $this->_getIncludeParameters($construction[2]);
42
-
43
- $product = $this->_templateVars['product'];
44
-
45
- $excludeAttr = array();
46
- if (isset($params['exclude']))
47
- $excludeAttr = preg_split('/\s*,\s*/', $params['exclude']);
48
-
49
- $glue = '|';
50
- if (isset($params['glue']))
51
- $glue = $params['glue'];
52
-
53
- $data = array();
54
- $attributes = $product->getAttributes();
55
-
56
- foreach ($attributes as $attribute)
57
- {
58
- if ($attribute->getIsVisibleOnFront() && !in_array($attribute->getAttributeCode(), $excludeAttr))
59
- {
60
- $value = $attribute->getFrontend()->getValue($product);
61
-
62
- if (!$product->hasData($attribute->getAttributeCode()) || ((string)$value == '') || !$product->getData($attribute->getAttributeCode()))
63
- continue;
64
-
65
- if (is_string($value) && strlen($value))
66
- {
67
- if (!$attribute->getIsFilterable())
68
- continue;
69
-
70
- if (!$attribute->getIsVisibleOnFront())
71
- continue;
72
-
73
- $data[$attribute->getAttributeCode()] = array(
74
- 'label' => $attribute->getFrontendLabel(),
75
- 'value' => $value,
76
- 'code' => $attribute->getAttributeCode()
77
- );
78
- }
79
- }
80
- }
81
-
82
- $return = array();
83
- foreach ($data as $k => $v)
84
- {
85
- if (isset($params['uselabel']) && $params['uselabel'])
86
- $label = $v['label']; //strtolower(preg_replace('/[\W\s]+/', '_', $v['label']));
87
- else
88
- $label = $k;
89
-
90
- $return[] = $label."=".$v['value'];
91
- }
92
-
93
- return implode($glue, $return);
94
- }
95
- }
96
-
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Model_Template_Product extends MSP_Unifeed_Model_Template_Abstract
22
+ {
23
+ public function gaDirective($construction)
24
+ {
25
+ $params = $this->_getIncludeParameters($construction[2]);
26
+ if (!isset($params['url']))
27
+ $params['url'] = $this->_templateVars['product']->getProductUrl();
28
+
29
+ $amp = $this->getFeed()->getAmp();
30
+
31
+ if (strpos($params['url'], '?'))
32
+ $params['url'] .= $amp.$this->getFeed()->getGaQueryString();
33
+ else
34
+ $params['url'] .= '?'.$this->getFeed()->getGaQueryString();
35
+
36
+ return $params['url'];
37
+ }
38
+
39
+ public function attributesDirective($construction)
40
+ {
41
+ $params = $this->_getIncludeParameters($construction[2]);
42
+
43
+ $product = $this->_templateVars['product'];
44
+
45
+ $excludeAttr = array();
46
+ if (isset($params['exclude']))
47
+ $excludeAttr = preg_split('/\s*,\s*/', $params['exclude']);
48
+
49
+ $glue = '|';
50
+ if (isset($params['glue']))
51
+ $glue = $params['glue'];
52
+
53
+ $data = array();
54
+ $attributes = $product->getAttributes();
55
+
56
+ foreach ($attributes as $attribute)
57
+ {
58
+ if ($attribute->getIsVisibleOnFront() && !in_array($attribute->getAttributeCode(), $excludeAttr))
59
+ {
60
+ $value = $attribute->getFrontend()->getValue($product);
61
+
62
+ if (!$product->hasData($attribute->getAttributeCode()) || ((string)$value == '') || !$product->getData($attribute->getAttributeCode()))
63
+ continue;
64
+
65
+ if (is_string($value) && strlen($value))
66
+ {
67
+ if (!$attribute->getIsFilterable())
68
+ continue;
69
+
70
+ if (!$attribute->getIsVisibleOnFront())
71
+ continue;
72
+
73
+ $data[$attribute->getAttributeCode()] = array(
74
+ 'label' => $attribute->getFrontendLabel(),
75
+ 'value' => $value,
76
+ 'code' => $attribute->getAttributeCode()
77
+ );
78
+ }
79
+ }
80
+ }
81
+
82
+ $return = array();
83
+ foreach ($data as $k => $v)
84
+ {
85
+ if (isset($params['uselabel']) && $params['uselabel'])
86
+ $label = $v['label']; //strtolower(preg_replace('/[\W\s]+/', '_', $v['label']));
87
+ else
88
+ $label = $k;
89
+
90
+ $return[] = $label."=".$v['value'];
91
+ }
92
+
93
+ return implode($glue, $return);
94
+ }
95
+ }
96
+
app/code/community/MSP/Unifeed/Model/Template/Type.php CHANGED
@@ -1,48 +1,48 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Model_Template_Type extends Mage_Core_Model_Abstract
22
- {
23
- const TYPE_CSV = 'csv';
24
- const TYPE_XML = 'xml';
25
- const TYPE_TXT = 'txt';
26
- const TYPE_HTML = 'html';
27
-
28
- static public function getHashArray()
29
- {
30
- return array(
31
- self::TYPE_CSV=>Mage::helper('msp_unifeed')->__('CSV'),
32
- self::TYPE_TXT=>Mage::helper('msp_unifeed')->__('TXT'),
33
- self::TYPE_XML=>Mage::helper('msp_unifeed')->__('XML'),
34
- self::TYPE_HTML=>Mage::helper('msp_unifeed')->__('HTML'),
35
- );
36
- }
37
-
38
- static public function getOptionArray()
39
- {
40
- $out = array();
41
- $options = self::getHashArray();
42
-
43
- foreach ($options as $k => $v)
44
- $out[] = array('label' => $v, 'value' => $k);
45
-
46
- return $out;
47
- }
48
- }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Model_Template_Type extends Mage_Core_Model_Abstract
22
+ {
23
+ const TYPE_CSV = 'csv';
24
+ const TYPE_XML = 'xml';
25
+ const TYPE_TXT = 'txt';
26
+ const TYPE_HTML = 'html';
27
+
28
+ static public function getHashArray()
29
+ {
30
+ return array(
31
+ self::TYPE_CSV=>Mage::helper('msp_unifeed')->__('CSV'),
32
+ self::TYPE_TXT=>Mage::helper('msp_unifeed')->__('TXT'),
33
+ self::TYPE_XML=>Mage::helper('msp_unifeed')->__('XML'),
34
+ self::TYPE_HTML=>Mage::helper('msp_unifeed')->__('HTML'),
35
+ );
36
+ }
37
+
38
+ static public function getOptionArray()
39
+ {
40
+ $out = array();
41
+ $options = self::getHashArray();
42
+
43
+ foreach ($options as $k => $v)
44
+ $out[] = array('label' => $v, 'value' => $k);
45
+
46
+ return $out;
47
+ }
48
+ }
app/code/community/MSP/Unifeed/Model/Tree.php CHANGED
@@ -1,137 +1,137 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_Model_Tree extends Mage_Core_Model_Abstract
22
- {
23
- protected $_feed;
24
- protected $_categoryModel;
25
-
26
- public function setFeed($feed)
27
- {
28
- $this->_feed = $feed;
29
- return $this;
30
- }
31
-
32
- public function getFeed()
33
- {
34
- return $this->_feed;
35
- }
36
-
37
- protected function getCategoryModel($categoryId)
38
- {
39
- if (!$this->_categoryModel)
40
- $this->_categoryModel = Mage::getModel('catalog/category');
41
-
42
- return $this->_categoryModel->setData(array())->load($categoryId);
43
- }
44
-
45
- protected function getCategoryChildren($categoryId)
46
- {
47
- // Magento 1.5.1.0 bug
48
- if ($categoryId == Mage_Catalog_Model_Category::TREE_ROOT_ID)
49
- {
50
- $collection = Mage::getResourceModel('catalog/category_collection');
51
- $collection
52
- ->addAttributeToSelect('name')
53
- ->addPathFilter('^'.$categoryId.'/[0-9]+$')
54
- ->load();
55
-
56
- return $collection;
57
- }
58
-
59
- return $this->getCategoryModel($categoryId)->getChildrenCategories();
60
-
61
- return Mage::getResourceModel('catalog/category_collection')
62
- ->addAttributeToSelect('name')
63
- ->addAttributeToSelect('all_children')
64
- ->addAttributeToSelect('is_anchor')
65
- ->addAttributeToFilter('parent_id', $categoryId)
66
- ->joinUrlRewrite()->load();
67
- }
68
-
69
- public function getCategory($categoryId, $depth = 0, $level = 0)
70
- {
71
- $category = $this->getCategoryModel($categoryId);
72
- $children = $this->getCategoryChildren($categoryId);
73
-
74
- $hasChildren = $children->count() ? true : false;
75
- if ($level > $depth)
76
- return;
77
-
78
- $nodeinfo = $this->getCategoryInfo($categoryId);
79
- $out = $nodeinfo;
80
-
81
- if ($hasChildren)
82
- {
83
- $out['subs'] = array();
84
- foreach ($children as $subcategory)
85
- {
86
- $item = $this->getCategory($subcategory->getId(), $depth, $level + 1);
87
- if ($item)
88
- array_push($out['subs'], $item);
89
- }
90
- }
91
-
92
- return $out;
93
- }
94
-
95
- public function getCategoryInfo($categoryId)
96
- {
97
- if (!$categoryId)
98
- return;
99
-
100
- $category = $this->getCategoryModel($categoryId);
101
-
102
- return array(
103
- 'title' => $category->getName(),
104
- 'url' => $category->getUrl(),
105
- 'id' => $category->getId(),
106
- 'checked' => $this->isChecked($category)
107
- );
108
- }
109
-
110
- public function getRootCategory($depth = 0, $level = 0)
111
- {
112
- $categoryId = Mage_Catalog_Model_Category::TREE_ROOT_ID;
113
- $children = $this->getCategoryChildren($categoryId);
114
-
115
- $out = array();
116
-
117
- foreach ($children as $category)
118
- {
119
- if (!$category->getId())
120
- continue;
121
- //if (!$category->getName())
122
- // continue;
123
-
124
- $out[] = $this->getCategory($category->getId(), $depth);
125
- }
126
-
127
- return $out;
128
- }
129
-
130
- public function isChecked(Mage_Catalog_Model_Category $category)
131
- {
132
- if (strpos($category->getMspUnifeedIds(), ':'.intval($this->getFeed()->getId()).':') !== false)
133
- return true;
134
-
135
- return false;
136
- }
137
- }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Model_Tree extends Mage_Core_Model_Abstract
22
+ {
23
+ protected $_feed;
24
+ protected $_categoryModel;
25
+
26
+ public function setFeed($feed)
27
+ {
28
+ $this->_feed = $feed;
29
+ return $this;
30
+ }
31
+
32
+ public function getFeed()
33
+ {
34
+ return $this->_feed;
35
+ }
36
+
37
+ protected function getCategoryModel($categoryId)
38
+ {
39
+ if (!$this->_categoryModel)
40
+ $this->_categoryModel = Mage::getModel('catalog/category');
41
+
42
+ return $this->_categoryModel->setData(array())->load($categoryId);
43
+ }
44
+
45
+ protected function getCategoryChildren($categoryId)
46
+ {
47
+ // Magento 1.5.1.0 bug
48
+ if ($categoryId == Mage_Catalog_Model_Category::TREE_ROOT_ID)
49
+ {
50
+ $collection = Mage::getResourceModel('catalog/category_collection');
51
+ $collection
52
+ ->addAttributeToSelect('name')
53
+ ->addPathFilter('^'.$categoryId.'/[0-9]+$')
54
+ ->load();
55
+
56
+ return $collection;
57
+ }
58
+
59
+ return $this->getCategoryModel($categoryId)->getChildrenCategories();
60
+
61
+ return Mage::getResourceModel('catalog/category_collection')
62
+ ->addAttributeToSelect('name')
63
+ ->addAttributeToSelect('all_children')
64
+ ->addAttributeToSelect('is_anchor')
65
+ ->addAttributeToFilter('parent_id', $categoryId)
66
+ ->joinUrlRewrite()->load();
67
+ }
68
+
69
+ public function getCategory($categoryId, $depth = 0, $level = 0)
70
+ {
71
+ $category = $this->getCategoryModel($categoryId);
72
+ $children = $this->getCategoryChildren($categoryId);
73
+
74
+ $hasChildren = $children->count() ? true : false;
75
+ if ($level > $depth)
76
+ return;
77
+
78
+ $nodeinfo = $this->getCategoryInfo($categoryId);
79
+ $out = $nodeinfo;
80
+
81
+ if ($hasChildren)
82
+ {
83
+ $out['subs'] = array();
84
+ foreach ($children as $subcategory)
85
+ {
86
+ $item = $this->getCategory($subcategory->getId(), $depth, $level + 1);
87
+ if ($item)
88
+ array_push($out['subs'], $item);
89
+ }
90
+ }
91
+
92
+ return $out;
93
+ }
94
+
95
+ public function getCategoryInfo($categoryId)
96
+ {
97
+ if (!$categoryId)
98
+ return;
99
+
100
+ $category = $this->getCategoryModel($categoryId);
101
+
102
+ return array(
103
+ 'title' => $category->getName(),
104
+ 'url' => $category->getUrl(),
105
+ 'id' => $category->getId(),
106
+ 'checked' => $this->isChecked($category)
107
+ );
108
+ }
109
+
110
+ public function getRootCategory($depth = 0, $level = 0)
111
+ {
112
+ $categoryId = Mage_Catalog_Model_Category::TREE_ROOT_ID;
113
+ $children = $this->getCategoryChildren($categoryId);
114
+
115
+ $out = array();
116
+
117
+ foreach ($children as $category)
118
+ {
119
+ if (!$category->getId())
120
+ continue;
121
+ //if (!$category->getName())
122
+ // continue;
123
+
124
+ $out[] = $this->getCategory($category->getId(), $depth);
125
+ }
126
+
127
+ return $out;
128
+ }
129
+
130
+ public function isChecked(Mage_Catalog_Model_Category $category)
131
+ {
132
+ if (strpos($category->getMspUnifeedIds(), ':'.intval($this->getFeed()->getId()).':') !== false)
133
+ return true;
134
+
135
+ return false;
136
+ }
137
+ }
app/code/community/MSP/Unifeed/controllers/{FeedController.php → Adminhtml/Unifeed/FeedController.php} RENAMED
@@ -1,270 +1,274 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_FeedController extends Mage_Adminhtml_Controller_Action
22
- {
23
- protected function _prapareAction()
24
- {
25
- if (Mage::registry('msp_unifeed_data') && Mage::registry('msp_unifeed_data')->getId())
26
- return $this;
27
-
28
- $id = $this->getRequest()->getParam('id');
29
-
30
- $model = Mage::getModel('msp_unifeed/feed');
31
-
32
- if ($id)
33
- $model->load($id);
34
-
35
- Mage::register('msp_unifeed_data', $model);
36
- return $this;
37
- }
38
-
39
- protected function getFeed()
40
- {
41
- return Mage::registry('msp_unifeed_data');
42
- }
43
-
44
- public function indexAction()
45
- {
46
- $this->loadLayout();
47
- $this->_addContent($this->getLayout()->createBlock('msp_unifeed/adminhtml_unifeed'));
48
- $this->renderLayout();
49
- }
50
-
51
- public function newAction()
52
- {
53
- $this->_forward('edit');
54
- }
55
-
56
- public function productsAction()
57
- {
58
- $this->_prapareAction();
59
-
60
- $this->getResponse()->setBody(
61
- $this->getLayout()->createBlock('msp_unifeed/adminhtml_unifeed_edit_tab_products')->toHtml()
62
- );
63
- }
64
-
65
- public function rebuildAction()
66
- {
67
- $this->_prapareAction();
68
-
69
- if ($this->getFeed()->getId())
70
- {
71
- $this->getFeed()->setRebuildFlag();
72
- Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Feed marked for rebuild'));
73
- $this->_redirect('*/*/edit', array('id' => $this->getFeed()->getId()));
74
- }
75
- else
76
- {
77
- $feeds = $this->getFeed()->getCollection();
78
- foreach ($feeds as $feed)
79
- $feed->setRebuildFlag();
80
-
81
- Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('All feeds are marked for rebuild'));
82
- $this->_redirect('*/*/index');
83
- }
84
- }
85
-
86
- public function editAction()
87
- {
88
- $this->_prapareAction();
89
- $model = $this->getFeed();
90
-
91
- $this->loadLayout();
92
- $this->_setActiveMenu('msp_unifeed/items');
93
-
94
- $this->_addContent($this->getLayout()->createBlock('msp_unifeed/adminhtml_unifeed_edit'));
95
- $this->_addLeft($this->getLayout()->createBlock('msp_unifeed/adminhtml_unifeed_edit_tabs'));
96
-
97
- $this->getLayout()->getBlock('head')->setCanLoadExtJs(true);
98
-
99
- $this->renderLayout();
100
- }
101
-
102
- public function saveAction()
103
- {
104
- $this->_prapareAction();
105
- $model = $this->getFeed();
106
-
107
- $feedId = $model->getId();
108
-
109
- if ($this->getRequest()->getPost())
110
- {
111
- try
112
- {
113
- $postData = $this->getRequest()->getPost();
114
- $feedData = $postData['feed'];
115
-
116
- $feedData['code'] = trim($feedData['code']);
117
-
118
- if (!preg_match('/^[a-z0-9]+$/', $feedData['code']))
119
- {
120
- trigger_error(Mage::helper('msp_unifeed')->__('Invalid code format'));
121
- }
122
-
123
- $model
124
- ->setData('name', $feedData['name'])
125
- ->setData('code', $feedData['code'])
126
- ->setData('store_id', $feedData['store_id'])
127
- ->setData('msp_unifeed_template_id', $feedData['msp_unifeed_template_id'])
128
- ->setData('ga_source', $feedData['ga_source'])
129
- ->setData('ga_term', $feedData['ga_term'])
130
- ->setData('ga_content', $feedData['ga_content'])
131
- ->setData('ga_name', $feedData['ga_name'])
132
- ->setData('ga_medium', $feedData['ga_medium'])
133
- ->setData('status', $feedData['status']);
134
-
135
- $model->save();
136
-
137
- if (!$feedId)
138
- $feedId = $model->getId();
139
-
140
- if ($feedId)
141
- Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Feed was successfully saved'));
142
- else
143
- Mage::getSingleton('adminhtml/session')->addError(Mage::helper('adminhtml')->__('One error occurred while trying to save'));
144
-
145
- if ($feedId)
146
- {
147
- $productFeed = Mage::getModel('msp_unifeed/product_feed');
148
- if ($postData['add_sku'])
149
- {
150
- $skus = preg_split("/[\s\n]+/", $postData['add_sku']);
151
- $res = $productFeed->addProducts(array($feedId), $skus, true);
152
-
153
- if ($res)
154
- Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('%d products were added to this feed', $res));
155
- else
156
- Mage::getSingleton('adminhtml/session')->addNotice(Mage::helper('adminhtml')->__('No new products were added to this feed'));
157
- }
158
-
159
- if ($postData['del_sku'])
160
- {
161
- $skus = preg_split("/[\s\n]+/", $postData['del_sku']);
162
- $res = $productFeed->removeProducts(array($feedId), $skus, true);
163
-
164
- if ($res)
165
- Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('%d products were removed from this feed', $res));
166
- else
167
- Mage::getSingleton('adminhtml/session')->addNotice(Mage::helper('adminhtml')->__('No new products were removed from this feed'));
168
- }
169
-
170
- if (!$postData['categories'])
171
- $postData['categories'] = '';
172
-
173
- $ids = explode(",", $postData['categories']);
174
- $res = $productFeed->setCategories($feedId, $ids);
175
-
176
- $this->_redirect('*/*/edit', array('id' => $feedId));
177
- return;
178
- }
179
-
180
- } catch (Exception $e) {
181
- Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
182
- $this->_redirect('*/*/edit', array('id' => $feedId));
183
- return;
184
- }
185
- }
186
-
187
- $this->_redirect('*/*/index');
188
- }
189
-
190
- public function deleteAction()
191
- {
192
- $this->_prapareAction();
193
- $model = $this->getFeed();
194
-
195
- if ($model->getId())
196
- {
197
- try
198
- {
199
- $model->delete();
200
-
201
- Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Feed was successfully deleted'));
202
- $this->_redirect('*/*/index');
203
- }
204
- catch (Exception $e)
205
- {
206
- Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
207
- $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
208
- }
209
- }
210
-
211
- $this->_redirect('*/*/index');
212
- }
213
-
214
- protected function getRecursiveTree($res)
215
- {
216
- $out = array();
217
- foreach ($res as $item)
218
- {
219
- $childrenCount = array_key_exists('subs', $item) ? sizeof($item['subs']) : 0;
220
-
221
- $info = array(
222
- 'id' => $item['id'],
223
- 'text' => $item['title'],
224
- 'expanded' => true,
225
- 'checked' => $item['checked'],
226
- 'leaf' => !$childrenCount,
227
- 'allowDrop' => true,
228
- 'allowDrag' => true,
229
- 'cls' => 'folder'
230
- );
231
-
232
- if ($childrenCount)
233
- {
234
- $info['children'] = $this->getRecursiveTree($item['subs']);
235
- }
236
-
237
- $out[] = $info;
238
- }
239
-
240
- return $out;
241
- }
242
-
243
- public function jsonAction()
244
- {
245
- $this->_prapareAction();
246
-
247
- $categoryId = $this->getRequest()->getParam('node');
248
- $feed = $this->getFeed();
249
-
250
- $model = Mage::getModel('msp_unifeed/tree');
251
- $model->setFeed($feed);
252
-
253
- if ($categoryId)
254
- {
255
- $res = $model->getCategory($categoryId, 100);
256
- if (array_key_exists('subs', $res))
257
- $res = $res['subs'];
258
- else
259
- $res = array();
260
- }
261
- else
262
- {
263
- $res = $model->getRootCategory(100);
264
- }
265
-
266
- $out = $this->getRecursiveTree($res);
267
-
268
- $this->getResponse()->setBody(json_encode($out));
269
- }
270
- }
 
 
 
 
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Adminhtml_Unifeed_FeedController extends Mage_Adminhtml_Controller_Action
22
+ {
23
+ protected function _prapareAction()
24
+ {
25
+ if (Mage::registry('msp_unifeed_data') && Mage::registry('msp_unifeed_data')->getId())
26
+ return $this;
27
+
28
+ $id = $this->getRequest()->getParam('id');
29
+
30
+ $model = Mage::getModel('msp_unifeed/feed');
31
+
32
+ if ($id)
33
+ $model->load($id);
34
+
35
+ Mage::register('msp_unifeed_data', $model);
36
+ return $this;
37
+ }
38
+
39
+ protected function getFeed()
40
+ {
41
+ return Mage::registry('msp_unifeed_data');
42
+ }
43
+
44
+ protected function _isAllowed(){
45
+ return Mage::getSingleton('admin/session')->isAllowed('catalog/msp_unifeed/msp_unifeed_feed');
46
+ }
47
+
48
+ public function indexAction()
49
+ {
50
+ $this->loadLayout();
51
+ $this->_addContent($this->getLayout()->createBlock('msp_unifeed/adminhtml_unifeed'));
52
+ $this->renderLayout();
53
+ }
54
+
55
+ public function newAction()
56
+ {
57
+ $this->_forward('edit');
58
+ }
59
+
60
+ public function productsAction()
61
+ {
62
+ $this->_prapareAction();
63
+
64
+ $this->getResponse()->setBody(
65
+ $this->getLayout()->createBlock('msp_unifeed/adminhtml_unifeed_edit_tab_products')->toHtml()
66
+ );
67
+ }
68
+
69
+ public function rebuildAction()
70
+ {
71
+ $this->_prapareAction();
72
+
73
+ if ($this->getFeed()->getId())
74
+ {
75
+ $this->getFeed()->setRebuildFlag();
76
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Feed marked for rebuild'));
77
+ $this->_redirect('*/*/edit', array('id' => $this->getFeed()->getId()));
78
+ }
79
+ else
80
+ {
81
+ $feeds = $this->getFeed()->getCollection();
82
+ foreach ($feeds as $feed)
83
+ $feed->setRebuildFlag();
84
+
85
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('All feeds are marked for rebuild'));
86
+ $this->_redirect('*/*/index');
87
+ }
88
+ }
89
+
90
+ public function editAction()
91
+ {
92
+ $this->_prapareAction();
93
+ $model = $this->getFeed();
94
+
95
+ $this->loadLayout();
96
+ $this->_setActiveMenu('msp_unifeed/items');
97
+
98
+ $this->_addContent($this->getLayout()->createBlock('msp_unifeed/adminhtml_unifeed_edit'));
99
+ $this->_addLeft($this->getLayout()->createBlock('msp_unifeed/adminhtml_unifeed_edit_tabs'));
100
+
101
+ $this->getLayout()->getBlock('head')->setCanLoadExtJs(true);
102
+
103
+ $this->renderLayout();
104
+ }
105
+
106
+ public function saveAction()
107
+ {
108
+ $this->_prapareAction();
109
+ $model = $this->getFeed();
110
+
111
+ $feedId = $model->getId();
112
+
113
+ if ($this->getRequest()->getPost())
114
+ {
115
+ try
116
+ {
117
+ $postData = $this->getRequest()->getPost();
118
+ $feedData = $postData['feed'];
119
+
120
+ $feedData['code'] = trim($feedData['code']);
121
+
122
+ if (!preg_match('/^[a-z0-9]+$/', $feedData['code']))
123
+ {
124
+ trigger_error(Mage::helper('msp_unifeed')->__('Invalid code format'));
125
+ }
126
+
127
+ $model
128
+ ->setData('name', $feedData['name'])
129
+ ->setData('code', $feedData['code'])
130
+ ->setData('store_id', $feedData['store_id'])
131
+ ->setData('msp_unifeed_template_id', $feedData['msp_unifeed_template_id'])
132
+ ->setData('ga_source', $feedData['ga_source'])
133
+ ->setData('ga_term', $feedData['ga_term'])
134
+ ->setData('ga_content', $feedData['ga_content'])
135
+ ->setData('ga_name', $feedData['ga_name'])
136
+ ->setData('ga_medium', $feedData['ga_medium'])
137
+ ->setData('status', $feedData['status']);
138
+
139
+ $model->save();
140
+
141
+ if (!$feedId)
142
+ $feedId = $model->getId();
143
+
144
+ if ($feedId)
145
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Feed was successfully saved'));
146
+ else
147
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('adminhtml')->__('One error occurred while trying to save'));
148
+
149
+ if ($feedId)
150
+ {
151
+ $productFeed = Mage::getModel('msp_unifeed/product_feed');
152
+ if ($postData['add_sku'])
153
+ {
154
+ $skus = preg_split("/[\s\n]+/", $postData['add_sku']);
155
+ $res = $productFeed->addProducts(array($feedId), $skus, true);
156
+
157
+ if ($res)
158
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('%d products were added to this feed', $res));
159
+ else
160
+ Mage::getSingleton('adminhtml/session')->addNotice(Mage::helper('adminhtml')->__('No new products were added to this feed'));
161
+ }
162
+
163
+ if ($postData['del_sku'])
164
+ {
165
+ $skus = preg_split("/[\s\n]+/", $postData['del_sku']);
166
+ $res = $productFeed->removeProducts(array($feedId), $skus, true);
167
+
168
+ if ($res)
169
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('%d products were removed from this feed', $res));
170
+ else
171
+ Mage::getSingleton('adminhtml/session')->addNotice(Mage::helper('adminhtml')->__('No new products were removed from this feed'));
172
+ }
173
+
174
+ if (!$postData['categories'])
175
+ $postData['categories'] = '';
176
+
177
+ $ids = explode(",", $postData['categories']);
178
+ $res = $productFeed->setCategories($feedId, $ids);
179
+
180
+ $this->_redirect('*/*/edit', array('id' => $feedId));
181
+ return;
182
+ }
183
+
184
+ } catch (Exception $e) {
185
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
186
+ $this->_redirect('*/*/edit', array('id' => $feedId));
187
+ return;
188
+ }
189
+ }
190
+
191
+ $this->_redirect('*/*/index');
192
+ }
193
+
194
+ public function deleteAction()
195
+ {
196
+ $this->_prapareAction();
197
+ $model = $this->getFeed();
198
+
199
+ if ($model->getId())
200
+ {
201
+ try
202
+ {
203
+ $model->delete();
204
+
205
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Feed was successfully deleted'));
206
+ $this->_redirect('*/*/index');
207
+ }
208
+ catch (Exception $e)
209
+ {
210
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
211
+ $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
212
+ }
213
+ }
214
+
215
+ $this->_redirect('*/*/index');
216
+ }
217
+
218
+ protected function getRecursiveTree($res)
219
+ {
220
+ $out = array();
221
+ foreach ($res as $item)
222
+ {
223
+ $childrenCount = array_key_exists('subs', $item) ? sizeof($item['subs']) : 0;
224
+
225
+ $info = array(
226
+ 'id' => $item['id'],
227
+ 'text' => $item['title'],
228
+ 'expanded' => true,
229
+ 'checked' => $item['checked'],
230
+ 'leaf' => !$childrenCount,
231
+ 'allowDrop' => true,
232
+ 'allowDrag' => true,
233
+ 'cls' => 'folder'
234
+ );
235
+
236
+ if ($childrenCount)
237
+ {
238
+ $info['children'] = $this->getRecursiveTree($item['subs']);
239
+ }
240
+
241
+ $out[] = $info;
242
+ }
243
+
244
+ return $out;
245
+ }
246
+
247
+ public function jsonAction()
248
+ {
249
+ $this->_prapareAction();
250
+
251
+ $categoryId = $this->getRequest()->getParam('node');
252
+ $feed = $this->getFeed();
253
+
254
+ $model = Mage::getModel('msp_unifeed/tree');
255
+ $model->setFeed($feed);
256
+
257
+ if ($categoryId)
258
+ {
259
+ $res = $model->getCategory($categoryId, 100);
260
+ if (array_key_exists('subs', $res))
261
+ $res = $res['subs'];
262
+ else
263
+ $res = array();
264
+ }
265
+ else
266
+ {
267
+ $res = $model->getRootCategory(100);
268
+ }
269
+
270
+ $out = $this->getRecursiveTree($res);
271
+
272
+ $this->getResponse()->setBody(json_encode($out));
273
+ }
274
+ }
app/code/community/MSP/Unifeed/controllers/{TemplateController.php → Adminhtml/Unifeed/TemplateController.php} RENAMED
@@ -1,136 +1,140 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_TemplateController extends Mage_Adminhtml_Controller_Action
22
- {
23
- protected function _prapareAction()
24
- {
25
- if (Mage::registry('msp_unifeed_template_data'))
26
- return $this;
27
-
28
- $id = $this->getRequest()->getParam('id');
29
-
30
- $model = Mage::getModel('msp_unifeed/template');
31
-
32
- if ($id)
33
- $model->load($id);
34
-
35
- Mage::register('msp_unifeed_template_data', $model);
36
- return $this;
37
- }
38
-
39
- protected function getFeed()
40
- {
41
- return Mage::registry('msp_unifeed_template_data');
42
- }
43
-
44
- public function indexAction()
45
- {
46
- $this->loadLayout();
47
- $this->_addContent($this->getLayout()->createBlock('msp_unifeed/adminhtml_template'));
48
- $this->renderLayout();
49
- }
50
-
51
- public function newAction()
52
- {
53
- $this->_forward('edit');
54
- }
55
-
56
- public function editAction()
57
- {
58
- $this->_prapareAction();
59
- $model = $this->getFeed();
60
-
61
- $this->loadLayout();
62
- $this->_setActiveMenu('msp_unifeed_template/items');
63
-
64
- $this->_addContent($this->getLayout()->createBlock('msp_unifeed/adminhtml_template_edit'));
65
- $this->renderLayout();
66
- }
67
-
68
- public function saveAction()
69
- {
70
- $this->_prapareAction();
71
- $model = $this->getFeed();
72
-
73
- $templateId = $model->getId();
74
-
75
- if ($this->getRequest()->getPost())
76
- {
77
- try
78
- {
79
- $postData = $this->getRequest()->getPost();
80
- $templateData = $postData['template'];
81
-
82
- $model
83
- ->setData('name', $templateData['name'])
84
- ->setData('template_open', $templateData['template_open'])
85
- ->setData('template_close', $templateData['template_close'])
86
- ->setData('template_product', $templateData['template_product'])
87
- ->setData('type', $templateData['type'])
88
- ;
89
-
90
- $model->save();
91
-
92
- if (!$templateId)
93
- $templateId = $model->getId();
94
-
95
- if ($templateId)
96
- Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Template was successfully saved'));
97
- else
98
- Mage::getSingleton('adminhtml/session')->addError(Mage::helper('adminhtml')->__('One error occurred while trying to save'));
99
-
100
- $this->_redirect('*/*/edit', array('id' => $templateId));
101
- return;
102
-
103
- } catch (Exception $e) {
104
- Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
105
- $this->_redirect('*/*/edit', array('id' => $templateId));
106
- return;
107
- }
108
- }
109
-
110
- $this->_redirect('*/*/index');
111
- }
112
-
113
- public function deleteAction()
114
- {
115
- $this->_prapareAction();
116
- $model = $this->getTemplate();
117
-
118
- if ($model->getId())
119
- {
120
- try
121
- {
122
- $model->delete();
123
-
124
- Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Template was successfully deleted'));
125
- $this->_redirect('*/*/index');
126
- }
127
- catch (Exception $e)
128
- {
129
- Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
130
- $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
131
- }
132
- }
133
-
134
- $this->_redirect('*/*/index');
135
- }
136
- }
 
 
 
 
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_Adminhtml_Unifeed_TemplateController extends Mage_Adminhtml_Controller_Action
22
+ {
23
+ protected function _prapareAction()
24
+ {
25
+ if (Mage::registry('msp_unifeed_template_data'))
26
+ return $this;
27
+
28
+ $id = $this->getRequest()->getParam('id');
29
+
30
+ $model = Mage::getModel('msp_unifeed/template');
31
+
32
+ if ($id)
33
+ $model->load($id);
34
+
35
+ Mage::register('msp_unifeed_template_data', $model);
36
+ return $this;
37
+ }
38
+
39
+ protected function getFeed()
40
+ {
41
+ return Mage::registry('msp_unifeed_template_data');
42
+ }
43
+
44
+ protected function _isAllowed(){
45
+ return Mage::getSingleton('admin/session')->isAllowed('catalog/msp_unifeed/msp_unifeed_template');
46
+ }
47
+
48
+ public function indexAction()
49
+ {
50
+ $this->loadLayout();
51
+ $this->_addContent($this->getLayout()->createBlock('msp_unifeed/adminhtml_template'));
52
+ $this->renderLayout();
53
+ }
54
+
55
+ public function newAction()
56
+ {
57
+ $this->_forward('edit');
58
+ }
59
+
60
+ public function editAction()
61
+ {
62
+ $this->_prapareAction();
63
+ $model = $this->getFeed();
64
+
65
+ $this->loadLayout();
66
+ $this->_setActiveMenu('msp_unifeed_template/items');
67
+
68
+ $this->_addContent($this->getLayout()->createBlock('msp_unifeed/adminhtml_template_edit'));
69
+ $this->renderLayout();
70
+ }
71
+
72
+ public function saveAction()
73
+ {
74
+ $this->_prapareAction();
75
+ $model = $this->getFeed();
76
+
77
+ $templateId = $model->getId();
78
+
79
+ if ($this->getRequest()->getPost())
80
+ {
81
+ try
82
+ {
83
+ $postData = $this->getRequest()->getPost();
84
+ $templateData = $postData['template'];
85
+
86
+ $model
87
+ ->setData('name', $templateData['name'])
88
+ ->setData('template_open', $templateData['template_open'])
89
+ ->setData('template_close', $templateData['template_close'])
90
+ ->setData('template_product', $templateData['template_product'])
91
+ ->setData('type', $templateData['type'])
92
+ ;
93
+
94
+ $model->save();
95
+
96
+ if (!$templateId)
97
+ $templateId = $model->getId();
98
+
99
+ if ($templateId)
100
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Template was successfully saved'));
101
+ else
102
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('adminhtml')->__('One error occurred while trying to save'));
103
+
104
+ $this->_redirect('*/*/edit', array('id' => $templateId));
105
+ return;
106
+
107
+ } catch (Exception $e) {
108
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
109
+ $this->_redirect('*/*/edit', array('id' => $templateId));
110
+ return;
111
+ }
112
+ }
113
+
114
+ $this->_redirect('*/*/index');
115
+ }
116
+
117
+ public function deleteAction()
118
+ {
119
+ $this->_prapareAction();
120
+ $model = $this->getTemplate();
121
+
122
+ if ($model->getId())
123
+ {
124
+ try
125
+ {
126
+ $model->delete();
127
+
128
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Template was successfully deleted'));
129
+ $this->_redirect('*/*/index');
130
+ }
131
+ catch (Exception $e)
132
+ {
133
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
134
+ $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
135
+ }
136
+ }
137
+
138
+ $this->_redirect('*/*/index');
139
+ }
140
+ }
app/code/community/MSP/Unifeed/controllers/OutputController.php CHANGED
@@ -1,94 +1,94 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- class MSP_Unifeed_OutputController extends Mage_Core_Controller_Front_Action
22
- {
23
- protected $_feed;
24
-
25
- const XML_UNIFEED_GENERAL_ENABLED = 'msp_unifeed/general/enabled';
26
-
27
- protected function getFeed($feedCode = null)
28
- {
29
- if (!$this->_feed)
30
- $this->_feed = Mage::getModel('msp_unifeed/feed');
31
-
32
- if (!is_null($feedCode))
33
- $this->_feed->load($feedCode, 'code');
34
-
35
- return $this->_feed;
36
- }
37
-
38
- protected function setContentType($type)
39
- {
40
- header('Content-Type: '.$type);
41
- return $this;
42
- }
43
-
44
- public function buildAction()
45
- {exit;
46
- $feedCode = $this->getRequest()->getParam('code');
47
-
48
- $feed = $this->getFeed($feedCode);
49
- if (!Mage::getStoreConfig(self::XML_UNIFEED_GENERAL_ENABLED) || !$feed->getId() || !$feed->getStatus())
50
- {
51
- $this->norouteAction();
52
- return;
53
- }
54
-
55
- $feed->build();
56
- }
57
-
58
- public function indexAction()
59
- {
60
- $feedCode = $this->getRequest()->getParam('code');
61
-
62
- $feed = $this->getFeed($feedCode);
63
- if (
64
- !Mage::getStoreConfig(self::XML_UNIFEED_GENERAL_ENABLED) ||
65
- !$feed->getId() ||
66
- !$feed->getStatus() ||
67
- !file_exists($feed->getFinalFileName())
68
- ) {
69
- $this->norouteAction();
70
- return;
71
- }
72
-
73
- switch ($feed->getTemplate()->getType())
74
- {
75
- case MSP_Unifeed_Model_Template_Type::TYPE_CSV:
76
- $this->setContentType('text/csv');
77
- break;
78
-
79
- case MSP_Unifeed_Model_Template_Type::TYPE_TXT:
80
- $this->setContentType('text/plain');
81
- break;
82
-
83
- case MSP_Unifeed_Model_Template_Type::TYPE_XML:
84
- $this->setContentType('text/xml');
85
- break;
86
-
87
- case MSP_Unifeed_Model_Template_Type::TYPE_HTML:
88
- $this->setContentType('text/html');
89
- break;
90
- }
91
-
92
- readfile($feed->getFinalFileName());
93
- }
94
- }
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ class MSP_Unifeed_OutputController extends Mage_Core_Controller_Front_Action
22
+ {
23
+ protected $_feed;
24
+
25
+ const XML_UNIFEED_GENERAL_ENABLED = 'msp_unifeed/general/enabled';
26
+
27
+ protected function getFeed($feedCode = null)
28
+ {
29
+ if (!$this->_feed)
30
+ $this->_feed = Mage::getModel('msp_unifeed/feed');
31
+
32
+ if (!is_null($feedCode))
33
+ $this->_feed->load($feedCode, 'code');
34
+
35
+ return $this->_feed;
36
+ }
37
+
38
+ protected function setContentType($type)
39
+ {
40
+ header('Content-Type: '.$type);
41
+ return $this;
42
+ }
43
+
44
+ public function buildAction()
45
+ {exit;
46
+ $feedCode = $this->getRequest()->getParam('code');
47
+
48
+ $feed = $this->getFeed($feedCode);
49
+ if (!Mage::getStoreConfig(self::XML_UNIFEED_GENERAL_ENABLED) || !$feed->getId() || !$feed->getStatus())
50
+ {
51
+ $this->norouteAction();
52
+ return;
53
+ }
54
+
55
+ $feed->build();
56
+ }
57
+
58
+ public function indexAction()
59
+ {
60
+ $feedCode = $this->getRequest()->getParam('code');
61
+
62
+ $feed = $this->getFeed($feedCode);
63
+ if (
64
+ !Mage::getStoreConfig(self::XML_UNIFEED_GENERAL_ENABLED) ||
65
+ !$feed->getId() ||
66
+ !$feed->getStatus() ||
67
+ !file_exists($feed->getFinalFileName())
68
+ ) {
69
+ $this->norouteAction();
70
+ return;
71
+ }
72
+
73
+ switch ($feed->getTemplate()->getType())
74
+ {
75
+ case MSP_Unifeed_Model_Template_Type::TYPE_CSV:
76
+ $this->setContentType('text/csv');
77
+ break;
78
+
79
+ case MSP_Unifeed_Model_Template_Type::TYPE_TXT:
80
+ $this->setContentType('text/plain');
81
+ break;
82
+
83
+ case MSP_Unifeed_Model_Template_Type::TYPE_XML:
84
+ $this->setContentType('text/xml');
85
+ break;
86
+
87
+ case MSP_Unifeed_Model_Template_Type::TYPE_HTML:
88
+ $this->setContentType('text/html');
89
+ break;
90
+ }
91
+
92
+ readfile($feed->getFinalFileName());
93
+ }
94
+ }
app/code/community/MSP/Unifeed/etc/config.xml CHANGED
@@ -1,204 +1,204 @@
1
- <?xml version="1.0"?>
2
- <!--
3
- /**
4
- * IDEALIAGroup srl
5
- *
6
- * NOTICE OF LICENSE
7
- *
8
- * This source file is subject to the Open Software License (OSL 3.0)
9
- * that is bundled with this package in the file LICENSE.txt.
10
- * It is also available through the world-wide-web at this URL:
11
- * http://opensource.org/licenses/osl-3.0.php
12
- * If you did not receive a copy of the license and are unable to
13
- * obtain it through the world-wide-web, please send an email
14
- * to info@idealiagroup.com so we can send you a copy immediately.
15
- *
16
- * @category MSP
17
- * @package MSP_Unifeed
18
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
19
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
20
- */
21
- -->
22
- <config>
23
- <modules>
24
- <MSP_Unifeed>
25
- <version>1.0.2</version>
26
- </MSP_Unifeed>
27
- </modules>
28
-
29
- <global>
30
- <models>
31
- <msp_unifeed>
32
- <class>MSP_Unifeed_Model</class>
33
- <resourceModel>msp_unifeed_resource</resourceModel>
34
- </msp_unifeed>
35
-
36
- <msp_unifeed_resource>
37
- <class>MSP_Unifeed_Model_Resource</class>
38
- <entities>
39
- <feed>
40
- <table>msp_unifeed_feed</table>
41
- </feed>
42
- <template>
43
- <table>msp_unifeed_template</table>
44
- </template>
45
- </entities>
46
- </msp_unifeed_resource>
47
- <catalog_resource>
48
- <rewrite>
49
- <eav_mysql4_product_collection>MSP_Unifeed_Model_Resource_Catalog_Eav_Mysql4_Product_Collection
50
- </eav_mysql4_product_collection>
51
- </rewrite>
52
- </catalog_resource>
53
- </models>
54
-
55
- <blocks>
56
- <msp_unifeed>
57
- <class>MSP_Unifeed_Block</class>
58
- </msp_unifeed>
59
- </blocks>
60
-
61
- <helpers>
62
- <msp_unifeed>
63
- <class>MSP_Unifeed_Helper</class>
64
- </msp_unifeed>
65
- </helpers>
66
-
67
- <resources>
68
- <msp_unifeed_setup>
69
- <setup>
70
- <module>MSP_Unifeed</module>
71
- </setup>
72
- </msp_unifeed_setup>
73
- </resources>
74
- </global>
75
-
76
- <frontend>
77
- <routers>
78
- <msp_unifeed>
79
- <use>standard</use>
80
- <args>
81
- <module>MSP_Unifeed</module>
82
- <frontName>msp_unifeed</frontName>
83
- </args>
84
- </msp_unifeed>
85
- </routers>
86
- </frontend>
87
-
88
- <admin>
89
- <routers>
90
- <msp_unifeedadm>
91
- <use>admin</use>
92
- <args>
93
- <module>MSP_Unifeed</module>
94
- <frontName>msp_unifeedadm</frontName>
95
- </args>
96
- </msp_unifeedadm>
97
- </routers>
98
- </admin>
99
-
100
- <adminhtml>
101
- <translate>
102
- <modules>
103
- <msp_unifeedadm>
104
- <files>
105
- <default>MSP_Unifeed.csv</default>
106
- </files>
107
- </msp_unifeedadm>
108
- </modules>
109
- </translate>
110
- <acl>
111
- <resources>
112
- <admin>
113
- <children>
114
- <system>
115
- <children>
116
- <config>
117
- <children>
118
- <msp_unifeed translate="title" module="msp_unifeed">
119
- <title>MSP Unifeed</title>
120
- <sort_order>1000</sort_order>
121
- </msp_unifeed>
122
- </children>
123
- </config>
124
- </children>
125
- </system>
126
- <catalog>
127
- <children>
128
- <msp_unifeed translate="title" module="msp_unifeed">
129
- <title>MSP Unifeed</title>
130
- <sort_order>1000</sort_order>
131
- <children>
132
- <msp_unifeed_template translate="title" module="msp_unifeed">
133
- <title>Templates</title>
134
- <sort_order>10</sort_order>
135
- </msp_unifeed_template>
136
- <msp_unifeed_feed translate="title" module="msp_unifeed">
137
- <title>Feeds</title>
138
- <sort_order>20</sort_order>
139
- </msp_unifeed_feed>
140
- </children>
141
- </msp_unifeed>
142
- </children>
143
- </catalog>
144
- </children>
145
- </admin>
146
- </resources>
147
- </acl>
148
-
149
- <menu>
150
- <catalog>
151
- <children>
152
- <msp_unifeed translate="title" module="msp_unifeed">
153
- <title>MSP Unifeed</title>
154
- <sort_order>1000</sort_order>
155
-
156
- <children>
157
- <msp_unifeed_template translate="title" module="msp_unifeed">
158
- <title>Templates</title>
159
- <action>msp_unifeedadm/template/index</action>
160
- <sort_order>10</sort_order>
161
- </msp_unifeed_template>
162
- <msp_unifeed_feed translate="title" module="msp_unifeed">
163
- <title>Feeds</title>
164
- <action>msp_unifeedadm/feed/index</action>
165
- <sort_order>20</sort_order>
166
- </msp_unifeed_feed>
167
- </children>
168
-
169
- </msp_unifeed>
170
- </children>
171
- </catalog>
172
- </menu>
173
-
174
- <layout>
175
- <updates>
176
- <msp_unifeed module="msp_unifeed">
177
- <file>msp_unifeed.xml</file>
178
- </msp_unifeed>
179
- </updates>
180
- </layout>
181
- </adminhtml>
182
-
183
- <default>
184
- <msp_unifeed>
185
- <general>
186
- <enabled>1</enabled>
187
- <daily-rebuild>1</daily-rebuild>
188
- </general>
189
- </msp_unifeed>
190
- </default>
191
- <crontab>
192
- <jobs>
193
- <msp_unifeed_rebuild>
194
- <schedule>
195
- <cron_expr>0 22 * * *</cron_expr>
196
- </schedule>
197
- <run>
198
- <model>msp_unifeed/observer::rebuildCatalog</model>
199
- </run>
200
- </msp_unifeed_rebuild>
201
- </jobs>
202
- </crontab>
203
-
204
- </config>
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * IDEALIAGroup srl
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Open Software License (OSL 3.0)
9
+ * that is bundled with this package in the file LICENSE.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/osl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to info@idealiagroup.com so we can send you a copy immediately.
15
+ *
16
+ * @category MSP
17
+ * @package MSP_Unifeed
18
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
19
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
20
+ */
21
+ -->
22
+ <config>
23
+ <modules>
24
+ <MSP_Unifeed>
25
+ <version>1.0.4</version>
26
+ </MSP_Unifeed>
27
+ </modules>
28
+
29
+ <global>
30
+ <models>
31
+ <msp_unifeed>
32
+ <class>MSP_Unifeed_Model</class>
33
+ <resourceModel>msp_unifeed_resource</resourceModel>
34
+ </msp_unifeed>
35
+
36
+ <msp_unifeed_resource>
37
+ <class>MSP_Unifeed_Model_Resource</class>
38
+ <entities>
39
+ <feed>
40
+ <table>msp_unifeed_feed</table>
41
+ </feed>
42
+ <template>
43
+ <table>msp_unifeed_template</table>
44
+ </template>
45
+ </entities>
46
+ </msp_unifeed_resource>
47
+ <catalog_resource>
48
+ <rewrite>
49
+ <eav_mysql4_product_collection>MSP_Unifeed_Model_Resource_Catalog_Eav_Mysql4_Product_Collection
50
+ </eav_mysql4_product_collection>
51
+ </rewrite>
52
+ </catalog_resource>
53
+ </models>
54
+
55
+ <blocks>
56
+ <msp_unifeed>
57
+ <class>MSP_Unifeed_Block</class>
58
+ </msp_unifeed>
59
+ </blocks>
60
+
61
+ <helpers>
62
+ <msp_unifeed>
63
+ <class>MSP_Unifeed_Helper</class>
64
+ </msp_unifeed>
65
+ </helpers>
66
+
67
+ <resources>
68
+ <msp_unifeed_setup>
69
+ <setup>
70
+ <module>MSP_Unifeed</module>
71
+ </setup>
72
+ </msp_unifeed_setup>
73
+ </resources>
74
+ </global>
75
+
76
+ <frontend>
77
+ <routers>
78
+ <msp_unifeed>
79
+ <use>standard</use>
80
+ <args>
81
+ <module>MSP_Unifeed</module>
82
+ <frontName>msp_unifeed</frontName>
83
+ </args>
84
+ </msp_unifeed>
85
+ </routers>
86
+ </frontend>
87
+
88
+ <admin>
89
+ <routers>
90
+ <adminhtml>
91
+ <args>
92
+ <modules>
93
+ <msp_unifeed before="Mage_Adminhtml">MSP_Unifeed_Adminhtml</msp_unifeed>
94
+ </modules>
95
+ </args>
96
+ </adminhtml>
97
+ </routers>
98
+ </admin>
99
+
100
+ <adminhtml>
101
+ <translate>
102
+ <modules>
103
+ <msp_unifeedadm>
104
+ <files>
105
+ <default>MSP_Unifeed.csv</default>
106
+ </files>
107
+ </msp_unifeedadm>
108
+ </modules>
109
+ </translate>
110
+ <acl>
111
+ <resources>
112
+ <admin>
113
+ <children>
114
+ <system>
115
+ <children>
116
+ <config>
117
+ <children>
118
+ <msp_unifeed translate="title" module="msp_unifeed">
119
+ <title>MSP Unifeed</title>
120
+ <sort_order>1000</sort_order>
121
+ </msp_unifeed>
122
+ </children>
123
+ </config>
124
+ </children>
125
+ </system>
126
+ <catalog>
127
+ <children>
128
+ <msp_unifeed translate="title" module="msp_unifeed">
129
+ <title>MSP Unifeed</title>
130
+ <sort_order>1000</sort_order>
131
+ <children>
132
+ <msp_unifeed_template translate="title" module="msp_unifeed">
133
+ <title>Templates</title>
134
+ <sort_order>10</sort_order>
135
+ </msp_unifeed_template>
136
+ <msp_unifeed_feed translate="title" module="msp_unifeed">
137
+ <title>Feeds</title>
138
+ <sort_order>20</sort_order>
139
+ </msp_unifeed_feed>
140
+ </children>
141
+ </msp_unifeed>
142
+ </children>
143
+ </catalog>
144
+ </children>
145
+ </admin>
146
+ </resources>
147
+ </acl>
148
+
149
+ <menu>
150
+ <catalog>
151
+ <children>
152
+ <msp_unifeed translate="title" module="msp_unifeed">
153
+ <title>MSP Unifeed</title>
154
+ <sort_order>1000</sort_order>
155
+
156
+ <children>
157
+ <msp_unifeed_template translate="title" module="msp_unifeed">
158
+ <title>Templates</title>
159
+ <action>adminhtml/unifeed_template</action>
160
+ <sort_order>10</sort_order>
161
+ </msp_unifeed_template>
162
+ <msp_unifeed_feed translate="title" module="msp_unifeed">
163
+ <title>Feeds</title>
164
+ <action>adminhtml/unifeed_feed</action>
165
+ <sort_order>20</sort_order>
166
+ </msp_unifeed_feed>
167
+ </children>
168
+
169
+ </msp_unifeed>
170
+ </children>
171
+ </catalog>
172
+ </menu>
173
+
174
+ <layout>
175
+ <updates>
176
+ <msp_unifeed module="msp_unifeed">
177
+ <file>msp_unifeed.xml</file>
178
+ </msp_unifeed>
179
+ </updates>
180
+ </layout>
181
+ </adminhtml>
182
+
183
+ <default>
184
+ <msp_unifeed>
185
+ <general>
186
+ <enabled>1</enabled>
187
+ <daily-rebuild>1</daily-rebuild>
188
+ </general>
189
+ </msp_unifeed>
190
+ </default>
191
+ <crontab>
192
+ <jobs>
193
+ <msp_unifeed_rebuild>
194
+ <schedule>
195
+ <cron_expr>0 22 * * *</cron_expr>
196
+ </schedule>
197
+ <run>
198
+ <model>msp_unifeed/observer::rebuildCatalog</model>
199
+ </run>
200
+ </msp_unifeed_rebuild>
201
+ </jobs>
202
+ </crontab>
203
+
204
+ </config>
app/code/community/MSP/Unifeed/etc/system.xml CHANGED
@@ -1,51 +1,51 @@
1
- <?xml version="1.0"?>
2
- <config>
3
- <tabs>
4
- <magespecialist translate="label" module="msp_unifeed">
5
- <label>Magespecialist.it</label>
6
- <sort_order>200</sort_order>
7
- </magespecialist>
8
- </tabs>
9
- <sections>
10
- <msp_unifeed translate="label" module="msp_unifeed">
11
- <label>UniFeed</label>
12
- <tab>magespecialist</tab>
13
- <frontend_type>text</frontend_type>
14
- <sort_order>10</sort_order>
15
- <show_in_default>1</show_in_default>
16
- <show_in_website>1</show_in_website>
17
- <show_in_store>1</show_in_store>
18
- <groups>
19
- <general translate="label">
20
- <label>General</label>
21
- <frontend_type>text</frontend_type>
22
- <sort_order>10</sort_order>
23
- <show_in_default>1</show_in_default>
24
- <show_in_website>1</show_in_website>
25
- <show_in_store>1</show_in_store>
26
- <fields>
27
- <enabled translate="label">
28
- <label>Enable UniFeed</label>
29
- <frontend_type>select</frontend_type>
30
- <source_model>adminhtml/system_config_source_yesno</source_model>
31
- <sort_order>10</sort_order>
32
- <show_in_default>1</show_in_default>
33
- <show_in_website>0</show_in_website>
34
- <show_in_store>0</show_in_store>
35
- </enabled>
36
- <daily-rebuild translate="label">
37
- <label>Daily rebuild</label>
38
- <frontend_type>select</frontend_type>
39
- <source_model>adminhtml/system_config_source_yesno</source_model>
40
- <sort_order>20</sort_order>
41
- <show_in_default>1</show_in_default>
42
- <show_in_website>0</show_in_website>
43
- <show_in_store>0</show_in_store>
44
- <comment>(starts at 10.00pm)</comment>
45
- </daily-rebuild>
46
- </fields>
47
- </general>
48
- </groups>
49
- </msp_unifeed>
50
- </sections>
51
  </config>
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <tabs>
4
+ <magespecialist translate="label" module="msp_unifeed">
5
+ <label>Magespecialist.it</label>
6
+ <sort_order>200</sort_order>
7
+ </magespecialist>
8
+ </tabs>
9
+ <sections>
10
+ <msp_unifeed translate="label" module="msp_unifeed">
11
+ <label>UniFeed</label>
12
+ <tab>magespecialist</tab>
13
+ <frontend_type>text</frontend_type>
14
+ <sort_order>10</sort_order>
15
+ <show_in_default>1</show_in_default>
16
+ <show_in_website>1</show_in_website>
17
+ <show_in_store>1</show_in_store>
18
+ <groups>
19
+ <general translate="label">
20
+ <label>General</label>
21
+ <frontend_type>text</frontend_type>
22
+ <sort_order>10</sort_order>
23
+ <show_in_default>1</show_in_default>
24
+ <show_in_website>1</show_in_website>
25
+ <show_in_store>1</show_in_store>
26
+ <fields>
27
+ <enabled translate="label">
28
+ <label>Enable UniFeed</label>
29
+ <frontend_type>select</frontend_type>
30
+ <source_model>adminhtml/system_config_source_yesno</source_model>
31
+ <sort_order>10</sort_order>
32
+ <show_in_default>1</show_in_default>
33
+ <show_in_website>0</show_in_website>
34
+ <show_in_store>0</show_in_store>
35
+ </enabled>
36
+ <daily-rebuild translate="label">
37
+ <label>Daily rebuild</label>
38
+ <frontend_type>select</frontend_type>
39
+ <source_model>adminhtml/system_config_source_yesno</source_model>
40
+ <sort_order>20</sort_order>
41
+ <show_in_default>1</show_in_default>
42
+ <show_in_website>0</show_in_website>
43
+ <show_in_store>0</show_in_store>
44
+ <comment>(starts at 10.00pm)</comment>
45
+ </daily-rebuild>
46
+ </fields>
47
+ </general>
48
+ </groups>
49
+ </msp_unifeed>
50
+ </sections>
51
  </config>
app/code/community/MSP/Unifeed/sql/msp_unifeed_setup/mysql4-install-1.0.0.php CHANGED
@@ -1,81 +1,81 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- /* @var $this Mage_Core_Model_Resource_Setup */
22
-
23
- $installer = $this;
24
- $installer->startSetup();
25
- $installer->run("
26
- -- DROP TABLE IF EXISTS {$this->getTable('msp_unifeed_feed')};
27
- CREATE TABLE IF NOT EXISTS {$this->getTable('msp_unifeed_feed')} (
28
- `msp_unifeed_feed_id` int(11) NOT NULL auto_increment,
29
- `store_id` int(11) NOT NULL,
30
- `code` char(32) NOT NULL,
31
- `name` varchar(255) NOT NULL,
32
- `status` tinyint(1) NOT NULL default '1',
33
- `msp_unifeed_template_id` int(11) NOT NULL,
34
- `ga_source` text NOT NULL default '',
35
- `ga_medium` text NOT NULL default '',
36
- `ga_term` text NOT NULL default '',
37
- `ga_content` text NOT NULL default '',
38
- `ga_name` text NOT NULL default '',
39
- PRIMARY KEY (`msp_unifeed_feed_id`),
40
- UNIQUE KEY `code` (`code`)
41
- ) ENGINE=InnoDB DEFAULT CHARSET=latin1
42
- ");
43
-
44
- $installer->run("
45
- -- DROP TABLE IF EXISTS {$this->getTable('msp_unifeed_template')};
46
- CREATE TABLE IF NOT EXISTS {$this->getTable('msp_unifeed_template')} (
47
- `msp_unifeed_template_id` int(11) NOT NULL auto_increment,
48
- `name` varchar(255) NOT NULL,
49
- `type` varchar(255) NOT NULL,
50
- `template_open` text NOT NULL default '',
51
- `template_product` text NOT NULL default '',
52
- `template_close` text NOT NULL default '',
53
- PRIMARY KEY (`msp_unifeed_template_id`)
54
- ) ENGINE=InnoDB DEFAULT CHARSET=latin1
55
- ");
56
- /*
57
- $installer->run("
58
- INSERT INTO {$this->getTable('msp_unifeed_template')} (`name`, `type`, `template_open`, `template_product`, `template_close`) VALUES
59
- ('Ciao', 'xml', '<"."?xml version=\"1.0\" encoding=\"UTF-8\" ?".">\r\n<products>', '{{set var=\"cstm_category\"}}{{implode var=\$category_names glue=\"#\"}}{{/set}}\r\n<product num=\"{{var product.getSku()}}\">\r\n<category>{{htmlescape var=\$cstm_category}}</category>\r\n<brand>{{htmlescape var=\$product.getAttributeText(''manufacturer'')}}</brand>\r\n<internal_ref>{{htmlescape var=\$product.getSku()}}</internal_ref>\r\n<designation>{{htmlescape var=\$product.getName()}}</designation>\r\n<price currency=\"{{var store.getBaseCurrencyCode()}}\">{{format var=\$final_price}}</price>\r\n<availability>{{format decimals=0 var=\$stock.getQty()}}</availability>\r\n<url>{{ga url=\$product.getProductUrl()}}</url>\r\n<img>{{var product.getImageUrl()}}</img>\r\n<decription>{{htmlescape var=\$product.getShortDescription()}}</decription>\r\n</product>', '</products>'),
60
- ('Kelkoo', 'xml', '<"."?xml version=\"1.0\" encoding=\"UTF-8\" ?".">\r\n<products>', '{{set var=\"cstm_category\"}}{{implode var=\$category_names glue=\"#\"}}{{/set}}\r\n<product>\r\n<Category>{{htmlescape var=\$cstm_category}}</Category>\r\n<Manufacturer>{{htmlescape var=\$product.getAttributeText(''manufacturer'')}}</Manufacturer>\r\n<Productname>{{htmlescape var=\$product.getName()}}</Productname>\r\n<Productcode>{{htmlescape var=\$product.getSku()}}</Productcode>\r\n<Price>{{format var=\$final_price}}</Price>\r\n<Availability>{{if a=\$stock.getQty() b=0 op=gt}}disponibile{{else}}non disponibile{{/if}}</Availability>\r\n<ProductURL>{{ga url=\$product.getProductUrl()}}</ProductURL>\r\n<ImageURL>{{var product.getImageUrl()}}</ImageURL>\r\n<Description>{{htmlescape var=\$product.getShortDescription()}}</Description>\r\n</product>', '</products>'),
61
- ('Buyplaza', 'txt', '', '{{set var=\"cstm_category\"}}{{implode var=\$category_names glue=\",\"}}{{/set}}\r\n{{var product.getName()}}|{{var product.getAttributeText(''manufacturer'')}}|{{striptags var=\$product.getShortDescription()}}|{{format var=\$final_price separator=\",\"}}|{{ga url=\$product.getProductUrl()}}|{{var cstm_category}}|{{var product.getImageUrl()}}{{newline}}', ''),
62
- ('Ilpiubasso', 'txt', '', '{{set var=\"cstm_category\"}}{{implode var=\$category_names glue=\",\"}}{{/set}}\r\n{{var cstm_category}}|{{var product.getName()}}|{{var product.getAttributeText(''manufacturer'')}}|{{striptags var=\$product.getShortDescription()}}|{{format var=\$final_price separator='',''}}|{{var product.getSku()}}|{{ga url=\$product.getProductUrl()}}|{{if a=\$stock.getQty() b=0 op=gt}}Disponibile{{else}}Non disponibile{{/if}}|{{var product.getImageUrl()}}|Vedi sito<Endrecord>', ''),
63
- ('MrWallet', 'xml', '<"."?xml version=\"1.0\" encoding=\"UTF-8\" ?".">\r\n<prodotti>', '{{set var=\"cstm_category\"}}{{implode var=\$category_names glue=\"#\"}}{{/set}}\r\n<prodotto>\r\n<categoria>{{htmlescape var=\$cstm_category}}</categoria>\r\n<marca>{{htmlescape var=\$product.getAttributeText(''manufacturer'')}}</marca>\r\n<nome>{{htmlescape var=\$product.getName()}}</nome>\r\n<id>{{htmlescape var=\$product.getSku()}}</id>\r\n<prezzo>{{format var=\$final_price}}</prezzo>\r\n<url>{{ga url=\$product.getProductUrl()}}</url>\r\n<immagine>{{var product.getImageUrl()}}</immagine>\r\n<descrizione>{{htmlescape var=\$product.getShortDescription()}}</descrizione>\r\n<lingua>{{var locale.getLocaleCode()}}</lingua>\r\n<valuta>{{var store.getBaseCurrencyCode()}}</valuta>\r\n<speseconsegna>-1</speseconsegna>\r\n</prodotto>', '</prodotti>'),
64
- ('TrovaPrezzi', 'txt', '', '{{set var=\"cstm_category\"}}{{implode var=\$category_names glue=\",\"}}{{/set}}\r\n{{var product.getName()}}|{{var product.getAttributeText(''manufacturer'')}}|{{striptags var=\$product.getShortDescription()}}|{{format var=\$final_price}}|{{var product.getSku()}}|{{ga url=\$product.getProductUrl()}}|{{if a=\$stock.getQty() b=0 op=gt}}disponibile{{else}}non disponibile{{/if}}|{{var cstm_category}}|{{var product.getImageUrl()}}|-1|{{var product.getSku()}}<endrecord>', '');
65
- ");
66
- */
67
- $setup = new Mage_Eav_Model_Entity_Setup('core_setup');
68
- $setup->startSetup();
69
- $setup->addAttribute('catalog_category', 'msp_unifeed_ids', array(
70
- 'label' => 'MSP UniFeed',
71
- 'type' => 'varchar',
72
- 'input' => '',
73
- 'backend' => 'msp_unifeed/eav_entity_attribute_backend_feed',
74
- 'visible' => false,
75
- 'visible_on_front' => false,
76
- 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
77
- 'required' => false
78
- ));
79
-
80
- $setup->endSetup();
81
- $installer->endSetup();
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ /* @var $this Mage_Core_Model_Resource_Setup */
22
+
23
+ $installer = $this;
24
+ $installer->startSetup();
25
+ $installer->run("
26
+ -- DROP TABLE IF EXISTS {$this->getTable('msp_unifeed_feed')};
27
+ CREATE TABLE IF NOT EXISTS {$this->getTable('msp_unifeed_feed')} (
28
+ `msp_unifeed_feed_id` int(11) NOT NULL auto_increment,
29
+ `store_id` int(11) NOT NULL,
30
+ `code` char(32) NOT NULL,
31
+ `name` varchar(255) NOT NULL,
32
+ `status` tinyint(1) NOT NULL default '1',
33
+ `msp_unifeed_template_id` int(11) NOT NULL,
34
+ `ga_source` text NOT NULL default '',
35
+ `ga_medium` text NOT NULL default '',
36
+ `ga_term` text NOT NULL default '',
37
+ `ga_content` text NOT NULL default '',
38
+ `ga_name` text NOT NULL default '',
39
+ PRIMARY KEY (`msp_unifeed_feed_id`),
40
+ UNIQUE KEY `code` (`code`)
41
+ ) ENGINE=InnoDB DEFAULT CHARSET=latin1
42
+ ");
43
+
44
+ $installer->run("
45
+ -- DROP TABLE IF EXISTS {$this->getTable('msp_unifeed_template')};
46
+ CREATE TABLE IF NOT EXISTS {$this->getTable('msp_unifeed_template')} (
47
+ `msp_unifeed_template_id` int(11) NOT NULL auto_increment,
48
+ `name` varchar(255) NOT NULL,
49
+ `type` varchar(255) NOT NULL,
50
+ `template_open` text NOT NULL default '',
51
+ `template_product` text NOT NULL default '',
52
+ `template_close` text NOT NULL default '',
53
+ PRIMARY KEY (`msp_unifeed_template_id`)
54
+ ) ENGINE=InnoDB DEFAULT CHARSET=latin1
55
+ ");
56
+ /*
57
+ $installer->run("
58
+ INSERT INTO {$this->getTable('msp_unifeed_template')} (`name`, `type`, `template_open`, `template_product`, `template_close`) VALUES
59
+ ('Ciao', 'xml', '<"."?xml version=\"1.0\" encoding=\"UTF-8\" ?".">\r\n<products>', '{{set var=\"cstm_category\"}}{{implode var=\$category_names glue=\"#\"}}{{/set}}\r\n<product num=\"{{var product.getSku()}}\">\r\n<category>{{htmlescape var=\$cstm_category}}</category>\r\n<brand>{{htmlescape var=\$product.getAttributeText(''manufacturer'')}}</brand>\r\n<internal_ref>{{htmlescape var=\$product.getSku()}}</internal_ref>\r\n<designation>{{htmlescape var=\$product.getName()}}</designation>\r\n<price currency=\"{{var store.getBaseCurrencyCode()}}\">{{format var=\$final_price}}</price>\r\n<availability>{{format decimals=0 var=\$stock.getQty()}}</availability>\r\n<url>{{ga url=\$product.getProductUrl()}}</url>\r\n<img>{{var product.getImageUrl()}}</img>\r\n<decription>{{htmlescape var=\$product.getShortDescription()}}</decription>\r\n</product>', '</products>'),
60
+ ('Kelkoo', 'xml', '<"."?xml version=\"1.0\" encoding=\"UTF-8\" ?".">\r\n<products>', '{{set var=\"cstm_category\"}}{{implode var=\$category_names glue=\"#\"}}{{/set}}\r\n<product>\r\n<Category>{{htmlescape var=\$cstm_category}}</Category>\r\n<Manufacturer>{{htmlescape var=\$product.getAttributeText(''manufacturer'')}}</Manufacturer>\r\n<Productname>{{htmlescape var=\$product.getName()}}</Productname>\r\n<Productcode>{{htmlescape var=\$product.getSku()}}</Productcode>\r\n<Price>{{format var=\$final_price}}</Price>\r\n<Availability>{{if a=\$stock.getQty() b=0 op=gt}}disponibile{{else}}non disponibile{{/if}}</Availability>\r\n<ProductURL>{{ga url=\$product.getProductUrl()}}</ProductURL>\r\n<ImageURL>{{var product.getImageUrl()}}</ImageURL>\r\n<Description>{{htmlescape var=\$product.getShortDescription()}}</Description>\r\n</product>', '</products>'),
61
+ ('Buyplaza', 'txt', '', '{{set var=\"cstm_category\"}}{{implode var=\$category_names glue=\",\"}}{{/set}}\r\n{{var product.getName()}}|{{var product.getAttributeText(''manufacturer'')}}|{{striptags var=\$product.getShortDescription()}}|{{format var=\$final_price separator=\",\"}}|{{ga url=\$product.getProductUrl()}}|{{var cstm_category}}|{{var product.getImageUrl()}}{{newline}}', ''),
62
+ ('Ilpiubasso', 'txt', '', '{{set var=\"cstm_category\"}}{{implode var=\$category_names glue=\",\"}}{{/set}}\r\n{{var cstm_category}}|{{var product.getName()}}|{{var product.getAttributeText(''manufacturer'')}}|{{striptags var=\$product.getShortDescription()}}|{{format var=\$final_price separator='',''}}|{{var product.getSku()}}|{{ga url=\$product.getProductUrl()}}|{{if a=\$stock.getQty() b=0 op=gt}}Disponibile{{else}}Non disponibile{{/if}}|{{var product.getImageUrl()}}|Vedi sito<Endrecord>', ''),
63
+ ('MrWallet', 'xml', '<"."?xml version=\"1.0\" encoding=\"UTF-8\" ?".">\r\n<prodotti>', '{{set var=\"cstm_category\"}}{{implode var=\$category_names glue=\"#\"}}{{/set}}\r\n<prodotto>\r\n<categoria>{{htmlescape var=\$cstm_category}}</categoria>\r\n<marca>{{htmlescape var=\$product.getAttributeText(''manufacturer'')}}</marca>\r\n<nome>{{htmlescape var=\$product.getName()}}</nome>\r\n<id>{{htmlescape var=\$product.getSku()}}</id>\r\n<prezzo>{{format var=\$final_price}}</prezzo>\r\n<url>{{ga url=\$product.getProductUrl()}}</url>\r\n<immagine>{{var product.getImageUrl()}}</immagine>\r\n<descrizione>{{htmlescape var=\$product.getShortDescription()}}</descrizione>\r\n<lingua>{{var locale.getLocaleCode()}}</lingua>\r\n<valuta>{{var store.getBaseCurrencyCode()}}</valuta>\r\n<speseconsegna>-1</speseconsegna>\r\n</prodotto>', '</prodotti>'),
64
+ ('TrovaPrezzi', 'txt', '', '{{set var=\"cstm_category\"}}{{implode var=\$category_names glue=\",\"}}{{/set}}\r\n{{var product.getName()}}|{{var product.getAttributeText(''manufacturer'')}}|{{striptags var=\$product.getShortDescription()}}|{{format var=\$final_price}}|{{var product.getSku()}}|{{ga url=\$product.getProductUrl()}}|{{if a=\$stock.getQty() b=0 op=gt}}disponibile{{else}}non disponibile{{/if}}|{{var cstm_category}}|{{var product.getImageUrl()}}|-1|{{var product.getSku()}}<endrecord>', '');
65
+ ");
66
+ */
67
+ $setup = new Mage_Eav_Model_Entity_Setup('core_setup');
68
+ $setup->startSetup();
69
+ $setup->addAttribute('catalog_category', 'msp_unifeed_ids', array(
70
+ 'label' => 'MSP UniFeed',
71
+ 'type' => 'varchar',
72
+ 'input' => '',
73
+ 'backend' => 'msp_unifeed/eav_entity_attribute_backend_feed',
74
+ 'visible' => false,
75
+ 'visible_on_front' => false,
76
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
77
+ 'required' => false
78
+ ));
79
+
80
+ $setup->endSetup();
81
+ $installer->endSetup();
app/design/adminhtml/default/default/layout/msp_unifeed.xml CHANGED
@@ -1,29 +1,29 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!--
3
- /**
4
- * IDEALIAGroup srl
5
- *
6
- * NOTICE OF LICENSE
7
- *
8
- * This source file is subject to the Open Software License (OSL 3.0)
9
- * that is bundled with this package in the file LICENSE.txt.
10
- * It is also available through the world-wide-web at this URL:
11
- * http://opensource.org/licenses/osl-3.0.php
12
- * If you did not receive a copy of the license and are unable to
13
- * obtain it through the world-wide-web, please send an email
14
- * to info@idealiagroup.com so we can send you a copy immediately.
15
- *
16
- * @category MSP
17
- * @package MSP_Unifeed
18
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
19
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
20
- */
21
- -->
22
- <layout>
23
- <adminhtml_catalog_category_edit>
24
- <reference name="tabs">
25
- <block type="msp_unifeed/adminhtml_catalog_category_edit_tab_feed" name="tab_msp_unifeed" template="msp_unifeed/catalog/category/edit/feed.phtml" />
26
- <action method="addTab"><name>msp_unifeed</name><block>tab_msp_unifeed</block></action>
27
- </reference>
28
- </adminhtml_catalog_category_edit>
29
- </layout>
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ /**
4
+ * IDEALIAGroup srl
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Open Software License (OSL 3.0)
9
+ * that is bundled with this package in the file LICENSE.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/osl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to info@idealiagroup.com so we can send you a copy immediately.
15
+ *
16
+ * @category MSP
17
+ * @package MSP_Unifeed
18
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
19
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
20
+ */
21
+ -->
22
+ <layout>
23
+ <adminhtml_catalog_category_edit>
24
+ <reference name="tabs">
25
+ <block type="msp_unifeed/adminhtml_catalog_category_edit_tab_feed" name="tab_msp_unifeed" template="msp_unifeed/catalog/category/edit/feed.phtml" />
26
+ <action method="addTab"><name>msp_unifeed</name><block>tab_msp_unifeed</block></action>
27
+ </reference>
28
+ </adminhtml_catalog_category_edit>
29
+ </layout>
app/design/adminhtml/default/default/template/msp_unifeed/catalog/category/edit/feed.phtml CHANGED
@@ -1,38 +1,38 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
- ?>
21
- <div class="entry-edit">
22
- <div class="entry-edit-head">
23
- <h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('msp_unifeed')->__('Catalog feeds')?></h4>
24
- </div>
25
- <fieldset id="fieldset">
26
- <input type="hidden" name="category[msp_unifeed_ids][]" value="" />
27
- <table class="form-list" cellspacing="0">
28
- <tbody>
29
- <?php foreach ($this->getFeedsCollection() as $_feed): ?>
30
- <tr>
31
- <td class="label"><input name="general[msp_unifeed_ids][]" value="<?php echo $_feed->getId() ?>" class="checkbox feed-checkbox" id="category_feed_<?php echo $_feed->getId() ?>" type="checkbox"<?php if ($this->hasFeed($_feed->getId())): ?> checked="true"<?php endif; ?>/>&nbsp;<?php echo $_feed->getName()?></td>
32
- <td class="scope-label">[GLOBAL]</td>
33
- </tr>
34
- <?php endforeach; ?>
35
- </tbody>
36
- </table>
37
- </fieldset>
38
- </div>
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+ ?>
21
+ <div class="entry-edit">
22
+ <div class="entry-edit-head">
23
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('msp_unifeed')->__('Catalog feeds')?></h4>
24
+ </div>
25
+ <fieldset id="fieldset">
26
+ <input type="hidden" name="category[msp_unifeed_ids][]" value="" />
27
+ <table class="form-list" cellspacing="0">
28
+ <tbody>
29
+ <?php foreach ($this->getFeedsCollection() as $_feed): ?>
30
+ <tr>
31
+ <td class="label"><input name="general[msp_unifeed_ids][]" value="<?php echo $_feed->getId() ?>" class="checkbox feed-checkbox" id="category_feed_<?php echo $_feed->getId() ?>" type="checkbox"<?php if ($this->hasFeed($_feed->getId())): ?> checked="true"<?php endif; ?>/>&nbsp;<?php echo $_feed->getName()?></td>
32
+ <td class="scope-label">[GLOBAL]</td>
33
+ </tr>
34
+ <?php endforeach; ?>
35
+ </tbody>
36
+ </table>
37
+ </fieldset>
38
+ </div>
app/design/adminhtml/default/default/template/msp_unifeed/edit/categories.phtml CHANGED
@@ -1,90 +1,90 @@
1
- <div class="tree-actions">
2
- <a href="#" onclick="nodesTree.collapseAll(); return false;"><?php echo Mage::helper('msp_unifeed')->__('Collapse All'); ?></a>
3
- <span class="separator">|</span>
4
- <a href="#" onclick="nodesTree.expandAll(); return false;"><?php echo Mage::helper('msp_unifeed')->__('Expand All'); ?></a>
5
- </div>
6
- <br/>
7
- <div class="tree-holder">
8
- <div id="tree-div" style="width:100%; overflow:auto;"></div>
9
- </div>
10
-
11
- <input type="hidden" name="categories" id="serializedCategories" value="null" />
12
-
13
- <script type="text/javascript">
14
- var nodesTree;
15
- var rootNode;
16
-
17
- function getRecursiveSelected(out, node)
18
- {
19
- try
20
- {
21
- if (node.getUI().checked()) out.push(node.id);
22
- }
23
- catch(e) {}
24
-
25
- if (node.childNodes.length)
26
- {
27
- for (var i=0; i<node.childNodes.length; i++)
28
- {
29
- out = getRecursiveSelected(out, node.childNodes[i]);
30
- }
31
- }
32
-
33
- return out;
34
- }
35
-
36
- function doSave()
37
- {
38
- var sel=new Array();
39
- sel = getRecursiveSelected(sel, rootNode);
40
-
41
- $('serializedCategories').value = sel.join(',');
42
- }
43
-
44
- function nodeCheck(node, state)
45
- {
46
- if (node.childNodes.length)
47
- {
48
- for (var i = 0; i < node.childNodes.length; i++)
49
- {
50
- if (node.childNodes[i].getUI().checked()) continue;
51
- node.childNodes[i].getUI().check(state, true);
52
- }
53
- }
54
-
55
- doSave();
56
- }
57
-
58
- Ext.onReady(function() {
59
- // Build loader
60
- var treeLoader = new Ext.tree.CustomUITreeLoader({
61
- dataUrl : '<?php echo $this->getTreeUrl() ?>',
62
- baseAttr: {
63
- uiProvider: Ext.tree.CheckboxNodeUI
64
- }
65
- });
66
-
67
- // Build tree
68
- nodesTree = new Ext.tree.TreePanel('tree-div', {
69
- animate : true,
70
- loader : treeLoader,
71
- enableDD : false,
72
- rootVisible : false,
73
- containerScroll : true
74
- });
75
-
76
- // Build root
77
- rootNode = new Ext.tree.AsyncTreeNode({
78
- text : '',
79
- draggable : false,
80
- id : '0'
81
- });
82
-
83
- nodesTree.setRootNode(rootNode);
84
- nodesTree.render();
85
- rootNode.expand();
86
-
87
- // Events handler
88
- nodesTree.on('check', nodeCheck);
89
- });
90
- </script>
1
+ <div class="tree-actions">
2
+ <a href="#" onclick="nodesTree.collapseAll(); return false;"><?php echo Mage::helper('msp_unifeed')->__('Collapse All'); ?></a>
3
+ <span class="separator">|</span>
4
+ <a href="#" onclick="nodesTree.expandAll(); return false;"><?php echo Mage::helper('msp_unifeed')->__('Expand All'); ?></a>
5
+ </div>
6
+ <br/>
7
+ <div class="tree-holder">
8
+ <div id="tree-div" style="width:100%; overflow:auto;"></div>
9
+ </div>
10
+
11
+ <input type="hidden" name="categories" id="serializedCategories" value="null" />
12
+
13
+ <script type="text/javascript">
14
+ var nodesTree;
15
+ var rootNode;
16
+
17
+ function getRecursiveSelected(out, node)
18
+ {
19
+ try
20
+ {
21
+ if (node.getUI().checked()) out.push(node.id);
22
+ }
23
+ catch(e) {}
24
+
25
+ if (node.childNodes.length)
26
+ {
27
+ for (var i=0; i<node.childNodes.length; i++)
28
+ {
29
+ out = getRecursiveSelected(out, node.childNodes[i]);
30
+ }
31
+ }
32
+
33
+ return out;
34
+ }
35
+
36
+ function doSave()
37
+ {
38
+ var sel=new Array();
39
+ sel = getRecursiveSelected(sel, rootNode);
40
+
41
+ $('serializedCategories').value = sel.join(',');
42
+ }
43
+
44
+ function nodeCheck(node, state)
45
+ {
46
+ if (node.childNodes.length)
47
+ {
48
+ for (var i = 0; i < node.childNodes.length; i++)
49
+ {
50
+ if (node.childNodes[i].getUI().checked()) continue;
51
+ node.childNodes[i].getUI().check(state, true);
52
+ }
53
+ }
54
+
55
+ doSave();
56
+ }
57
+
58
+ Ext.onReady(function() {
59
+ // Build loader
60
+ var treeLoader = new Ext.tree.CustomUITreeLoader({
61
+ dataUrl : '<?php echo $this->getTreeUrl() ?>',
62
+ baseAttr: {
63
+ uiProvider: Ext.tree.CheckboxNodeUI
64
+ }
65
+ });
66
+
67
+ // Build tree
68
+ nodesTree = new Ext.tree.TreePanel('tree-div', {
69
+ animate : true,
70
+ loader : treeLoader,
71
+ enableDD : false,
72
+ rootVisible : false,
73
+ containerScroll : true
74
+ });
75
+
76
+ // Build root
77
+ rootNode = new Ext.tree.AsyncTreeNode({
78
+ text : '',
79
+ draggable : false,
80
+ id : '0'
81
+ });
82
+
83
+ nodesTree.setRootNode(rootNode);
84
+ nodesTree.render();
85
+ rootNode.expand();
86
+
87
+ // Events handler
88
+ nodesTree.on('check', nodeCheck);
89
+ });
90
+ </script>
app/design/adminhtml/default/default/template/msp_unifeed/edit/form.phtml CHANGED
@@ -1,4 +1,4 @@
1
- <div class="entry-edit">
2
- <?php echo $this->getFormHtml();?>
3
- </div>
4
- <?php echo $this->getChildHtml('form_after');?>
1
+ <div class="entry-edit">
2
+ <?php echo $this->getFormHtml();?>
3
+ </div>
4
+ <?php echo $this->getChildHtml('form_after');?>
app/design/adminhtml/default/default/template/msp_unifeed/edit/ga/after.phtml CHANGED
@@ -1,3 +1,3 @@
1
- <b><?php echo $this->__('Please note:') ?></b><br />
2
- <?php echo $this->__('To activate Google Analytics Tracking you have to use directive "ga" to generate a correct tracking URL in your feed template.') ?><br />
3
- <?php echo $this->__('E.g.: <i>{{ga url=$product.getProductUrl()}}</i>.') ?>
1
+ <b><?php echo $this->__('Please note:') ?></b><br />
2
+ <?php echo $this->__('To activate Google Analytics Tracking you have to use directive "ga" to generate a correct tracking URL in your feed template.') ?><br />
3
+ <?php echo $this->__('E.g.: <i>{{ga url=$product.getProductUrl()}}</i>.') ?>
app/design/adminhtml/default/default/template/msp_unifeed/edit/settings/after.phtml CHANGED
@@ -1 +1 @@
1
- <?php echo $this->__('<b>Feed URL</b>: %s', $this->getFeedUrl()) ?><br />
1
+ <?php echo $this->__('<b>Feed URL</b>: %s', $this->getFeedUrl()) ?><br />
app/etc/modules/MSP_Unifeed.xml CHANGED
@@ -1,29 +1,29 @@
1
- <?xml version="1.0"?>
2
- <!--
3
- /**
4
- * IDEALIAGroup srl
5
- *
6
- * NOTICE OF LICENSE
7
- *
8
- * This source file is subject to the Open Software License (OSL 3.0)
9
- * that is bundled with this package in the file LICENSE.txt.
10
- * It is also available through the world-wide-web at this URL:
11
- * http://opensource.org/licenses/osl-3.0.php
12
- * If you did not receive a copy of the license and are unable to
13
- * obtain it through the world-wide-web, please send an email
14
- * to info@idealiagroup.com so we can send you a copy immediately.
15
- *
16
- * @category MSP
17
- * @package MSP_Unifeed
18
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
19
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
20
- */
21
- -->
22
- <config>
23
- <modules>
24
- <MSP_Unifeed>
25
- <active>true</active>
26
- <codePool>community</codePool>
27
- </MSP_Unifeed>
28
- </modules>
29
  </config>
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * IDEALIAGroup srl
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Open Software License (OSL 3.0)
9
+ * that is bundled with this package in the file LICENSE.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/osl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to info@idealiagroup.com so we can send you a copy immediately.
15
+ *
16
+ * @category MSP
17
+ * @package MSP_Unifeed
18
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
19
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
20
+ */
21
+ -->
22
+ <config>
23
+ <modules>
24
+ <MSP_Unifeed>
25
+ <active>true</active>
26
+ <codePool>community</codePool>
27
+ </MSP_Unifeed>
28
+ </modules>
29
  </config>
composer.json ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "magespecialist/msp_unifeed",
3
+ "license": "OSL-3.0",
4
+ "type": "magento-module",
5
+ "description": "Magento extension for creating products feeds in multiple formats (csv, txt or xml) with fully customizable templates.",
6
+ "homepage": "https://github.com/magespecialist/MSP_Unifeed",
7
+ "require": {
8
+ "magento-hackathon/magento-composer-installer": "*",
9
+ "magespecialist/msp_common": "*"
10
+ },
11
+ "repositories": [
12
+ {
13
+ "type": "vcs",
14
+ "url": "git@github.com:magespecialist/MSP_Common.git"
15
+ }
16
+ ],
17
+ "authors":[
18
+ {
19
+ "name":"MageSpecialist",
20
+ "email":"info@magespecialist.it"
21
+ }
22
+ ]
23
+ }
modman ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ app/code/community/MSP/Unifeed app/code/community/MSP/Unifeed
2
+ app/design/adminhtml/default/default/layout/msp_unifeed.xml app/design/adminhtml/default/default/layout/msp_unifeed.xml
3
+ app/design/adminhtml/default/default/template/msp_unifeed app/design/adminhtml/default/default/template/msp_unifeed
4
+ app/etc/modules/MSP_Unifeed.xml app/etc/modules/MSP_Unifeed.xml
5
+ shell/unifeed.php shell/unifeed.php
package.xml CHANGED
@@ -1,19 +1,3 @@
1
  <?xml version="1.0"?>
2
- <package>
3
- <name>MSP_Unifeed</name>
4
- <version>1.0.2</version>
5
- <stability>stable</stability>
6
- <license>OSL</license>
7
- <channel>community</channel>
8
- <extends/>
9
- <summary>UniFeed is an easy and flexible extension to create feeds in multiple formats.</summary>
10
- <description>New Unifeed is an easy and flexible extension to create product feeds in multiple formats (csv, txt or xml) for any external platform which need to import your catalog.
11
- You can create feed models with your own syntax using a lot of available variables and directives to retrieve information about stores and products and parse it with conditional and programmable statements.</description>
12
- <notes>Enjoy it ;)</notes>
13
- <authors><author><name>Riccardo Tempesta</name><user>idealiagroup</user><email>tempesta@idealiagroup.com</email></author></authors>
14
- <date>2014-09-30</date>
15
- <time>15:10:48</time>
16
- <contents><target name="mageetc"><dir name="modules"><file name="MSP_Unifeed.xml" hash="25a1764e43ceba9e33c69c1d71c7305d"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="msp_unifeed.xml" hash="d58b29b9ed80eb2f6ee2c49991258406"/></dir><dir name="template"><dir name="msp_unifeed"><dir name="catalog"><dir name="category"><dir name="edit"><file name="feed.phtml" hash="e51d110f08b07af8fe7d297118992394"/></dir></dir></dir><dir name="edit"><file name="categories.phtml" hash="a55924211d0754ca3c5411b959cba211"/><file name="form.phtml" hash="07d9ec21daa220cf984483da7f28a2ec"/><dir name="ga"><file name="after.phtml" hash="c9f868dda6080d96b99401ea2ca138f3"/></dir><dir name="settings"><file name="after.phtml" hash="587bd70132a7abcd44910295b4793be5"/></dir></dir></dir></dir></dir></dir></dir></target><target name="magecommunity"><dir name="MSP"><dir name="Unifeed"><dir name="Block"><dir name="Adminhtml"><dir name="Catalog"><dir name="Category"><dir name="Edit"><dir name="Tab"><file name="Feed.php" hash="daac88998046e5bcb8bba2a204cfab62"/></dir></dir></dir></dir><dir name="Template"><dir name="Edit"><file name="Form.php" hash="d3c4d5cd3fb41ccecd141f1d5837447b"/></dir><file name="Edit.php" hash="40711dff46a1ec9839648c0c7d7c76cf"/><file name="Grid.php" hash="ca01f1fc1bbf7afa05008e5388fe1752"/></dir><file name="Template.php" hash="ccdea2f6871b9059468b9cefb3f74629"/><dir name="Unifeed"><dir name="Edit"><file name="Form.php" hash="13d72691770d31ee28b0ea198e785c17"/><dir name="Tab"><file name="Categories.php" hash="f9535ed46f5dc7d25df09691cc8cad4c"/><dir name="Ga"><file name="After.php" hash="9e16c571f526edb7ffad9f593eb50886"/></dir><file name="Ga.php" hash="da0bf500a03c8fb3aeb6a6a0339982f1"/><dir name="Settings"><file name="After.php" hash="61f1dd0570f12cec4e4a38c5624ad55b"/></dir><file name="Settings.php" hash="9bf00ccb20560c16ce757607c927247d"/></dir><file name="Tabs.php" hash="b0059b2e427653e96fdc90b576aeeee7"/></dir><file name="Edit.php" hash="1b5f2f0ae8d3fbad842d586c1c68797b"/><file name="Grid.php" hash="4c57fcdbbe196cc0add2ea88129b8c1c"/></dir><file name="Unifeed.php" hash="4fe9cda2d8344e94b604493d9ec557a5"/></dir></dir><dir name="Helper"><file name="Data.php" hash="30f9ac0e686d5b747d3796bb098f5a27"/></dir><dir name="Model"><dir name="Eav"><dir name="Entity"><dir name="Attribute"><dir name="Backend"><file name="Feed.php" hash="3c0b69958118a59afaa1a19978515037"/></dir></dir></dir></dir><dir name="Feed"><file name="Attribute.php" hash="7712fb54c8ff2a7e505e94815b1e31ff"/><file name="Status.php" hash="0a710ca1ccbdfa44191ab935b2ddd45e"/></dir><file name="Feed.php" hash="25038f531a5a61978eb96a0301484ee4"/><file name="Observer.php" hash="b8d4ed3ab2d62ca738edbc3cb02af261"/><dir name="Product"><file name="Feed.php" hash="35f61b358e553429e445a4d123ec7d17"/></dir><dir name="Resource"><dir name="Catalog"><dir name="Eav"><dir name="Mysql4"><dir name="Product"><file name="Collection.php" hash="af9eb6c7bd3026156733412d56c6057a"/></dir></dir></dir></dir><dir name="Feed"><file name="Collection.php" hash="1703dafd4b4bf686a0808b3c479a677e"/></dir><file name="Feed.php" hash="7fc0e3b80809843902621a19edc0c675"/><dir name="Template"><file name="Collection.php" hash="f0f03cd1b39ab2ea42ff5c7943d3bc9b"/></dir><file name="Template.php" hash="a745a39765ec85abadb97e42aa57a338"/></dir><dir name="Template"><file name="Abstract.php" hash="3342110faa5e1f3bed3f27af41e84aa7"/><file name="Container.php" hash="867c2c53f262ec8ec962061fff74535b"/><file name="Product.php" hash="cb7043e21534af003efe70e01002fd07"/><file name="Type.php" hash="84cc2ad2997f1925484fd1c17a9f4f29"/></dir><file name="Template.php" hash="aaa76afb224952bc8a40572dcf310927"/><file name="Tree.php" hash="c94c537b83f12051b697c61d396e030e"/></dir><dir name="controllers"><file name="FeedController.php" hash="3de5daec7c5d4a85f10521a0653d6006"/><file name="OutputController.php" hash="c814bd2eac947c189c88afc3f9dfa601"/><file name="TemplateController.php" hash="7c5618f004cdc7f61aaba8cecebb9d29"/></dir><dir name="etc"><file name="config.xml" hash="d71c1a2e38a017a31fcb86d6a342df54"/><file name="system.xml" hash="ab66a42e26a4480714a321458ed16e4d"/></dir><dir name="sql"><dir name="msp_unifeed_setup"><file name="mysql4-install-1.0.0.php" hash="3b8c564a513fd35fe2c5a4cf8ea189de"/></dir></dir></dir></dir></target><target name="mage"><dir name="shell"><file name="unifeed.php" hash="060ee36d9bc0222cce1eba933b9fa2e0"/></dir></target></contents>
17
- <compatible/>
18
- <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
19
- </package>
1
  <?xml version="1.0"?>
2
+ <package><name>MSP_Unifeed</name><version>1.0.4</version><stability>stable</stability><license>OSL</license><channel>community</channel><extends></extends><summary>UniFeed is an easy and flexible extension to create feeds in multiple formats.</summary><description>New Unifeed is an easy and flexible extension to create product feeds in multiple formats (csv, txt or xml) for any external platform which need to import your catalog.
3
+ You can create feed models with your own syntax using a lot of available variables and directives to retrieve information about stores and products and parse it with conditional and programmable statements.</description><notes>Enjoy it ;)</notes><authors><author><name>Riccardo Tempesta</name><user>idealiagroup</user><email>tempesta@idealiagroup.com</email></author></authors><date>2015-10-30</date><time>8:04:15</time><compatible></compatible><dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies><contents><target name="mage"><file name="Changelog.txt" hash="6df53246b7c40dbd70ae6c4f8a224c8a"/><file name="Compatibility.txt" hash="c7394ae4c1e4687a8948c81d7275edb9"/><file name="License.txt" hash="c7f02203c7e2483e1fc301cdacb322a6"/><file name="README.md" hash="9af3673a184e13c74f75647649f62924"/><file name="composer.json" hash="f3984a488beafa8c38cde68fa8861a81"/><file name="modman" hash="bf95dc32e9033fe9f63e6afc1c40f1d4"/><file name="package.xml" hash="f258335bbf37cd84bb7cf63bf8b62d0d"/><dir name="shell"><file name="unifeed.php" hash="108e501fb75389eb1220e00a60e947fe"/></dir><dir name="app"><dir name="etc"><dir name="modules"><file name="MSP_Unifeed.xml" hash="d094e7215f28a1a0a95170201142e084"/></dir></dir><dir name="design"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="msp_unifeed"><dir name="catalog"><dir name="category"><dir name="edit"><file name="feed.phtml" hash="3af03ba6da5bde90b4a73b8a8ad0496a"/></dir></dir></dir><dir name="edit"><file name="categories.phtml" hash="ca9b45a8998790c5f4e12a5fe6bdbe0e"/><file name="form.phtml" hash="e0b0a19f87b45f95bfb9bffbeae13a33"/><dir name="ga"><file name="after.phtml" hash="2c5cbbacd75efbb881c686f02b90f58d"/></dir><dir name="settings"><file name="after.phtml" hash="5d073bc5c07439d06492705afb0a9f7f"/></dir></dir></dir></dir><dir name="layout"><file name="msp_unifeed.xml" hash="52dc0ebb7daa1f7f936272127147908a"/></dir></dir></dir></dir></dir><dir name="code"><dir name="community"><dir name="MSP"><dir name="Unifeed"><dir name="Helper"><file name="Data.php" hash="ea4e8c89d22f1d4e880932943cb3a6ee"/></dir><dir name="etc"><file name="config.xml" hash="59de74043aa91b2478d2028d96d69eee"/><file name="system.xml" hash="63ece8965b2974d58709f2616aa727c7"/></dir><dir name="Block"><dir name="Adminhtml"><file name="Template.php" hash="515de1ec84ca64b8beca53c13fb2fd32"/><file name="Unifeed.php" hash="8a27e9d863e03d3bbbf2fee22e802792"/><dir name="Template"><file name="Edit.php" hash="708a10ab0126bd8b2018d879f9369998"/><file name="Grid.php" hash="6f3674df5c7720533acbf3ee466926c6"/><dir name="Edit"><file name="Form.php" hash="183a19de7e0a7fb3dc293525bb7e38f2"/></dir></dir><dir name="Catalog"><dir name="Category"><dir name="Edit"><dir name="Tab"><file name="Feed.php" hash="1a9284d2ad34927b64ea62a7fe9d2f4a"/></dir></dir></dir></dir><dir name="Unifeed"><file name="Edit.php" hash="9a29b22cb678d808d6922b6ac5b2b3dc"/><file name="Grid.php" hash="8665c87adbf03897efb49985c49a9a4a"/><dir name="Edit"><file name="Form.php" hash="0077a621df619418ff98b1dbe00ea7c2"/><file name="Tabs.php" hash="6a0dd2499b4b32c9288e6e9f4cfae644"/><dir name="Tab"><file name="Categories.php" hash="4aaf67324e00e46d4b90a57aebb2cf06"/><file name="Ga.php" hash="e6ac4d390555a48eda3f1f97d568c8c5"/><file name="Settings.php" hash="997d7f51675954084c6d2d2f016ed66d"/><dir name="Ga"><file name="After.php" hash="e0634985a93010f698bacf5c31287409"/></dir><dir name="Settings"><file name="After.php" hash="7cea9cfac14b353a7fbfcdeca19afae7"/></dir></dir></dir></dir></dir></dir><dir name="Model"><file name="Feed.php" hash="92734ae034189eda82f8dbfee9863ff4"/><file name="Observer.php" hash="f4dd2dd2d9ab6eb16fb14513924368e2"/><file name="Template.php" hash="bab06badbcc50789776ea103196214fb"/><file name="Tree.php" hash="92272106e7d0e5cfd441069ab42c3ca9"/><dir name="Template"><file name="Abstract.php" hash="6baaba73565aa8b9144ca8b952d215c4"/><file name="Container.php" hash="291aa0d8a5160cd223358777b5de4517"/><file name="Product.php" hash="879293127ee91aeccc7dbd6a07af37bf"/><file name="Type.php" hash="1d8a9d964175f657ce15d179890808ee"/></dir><dir name="Eav"><dir name="Entity"><dir name="Attribute"><dir name="Backend"><file name="Feed.php" hash="c8731bdfbd3e8f83ce24d350cc32a092"/></dir></dir></dir></dir><dir name="Feed"><file name="Attribute.php" hash="d908d344320df79ac65e34536924c27c"/><file name="Status.php" hash="8c2b39c41cfb4d50a30620e6c7966251"/></dir><dir name="Product"><file name="Feed.php" hash="3f9f74f43ca7bb961af7220c0c2377a0"/></dir><dir name="Resource"><file name="Feed.php" hash="dc28ff1f28ce20c52f580a6214716c62"/><file name="Template.php" hash="7810c4898f06c51027e08f9cd66c65cf"/><dir name="Template"><file name="Collection.php" hash="ef730dbb67cb4cab2a14238533b9e48e"/></dir><dir name="Catalog"><dir name="Eav"><dir name="Mysql4"><dir name="Product"><file name="Collection.php" hash="4deee24b3f1b1471d9eb882af0372875"/></dir></dir></dir></dir><dir name="Feed"><file name="Collection.php" hash="64b833f117e0225b88d57d29450d9b56"/></dir></dir></dir><dir name="sql"><dir name="msp_unifeed_setup"><file name="mysql4-install-1.0.0.php" hash="0eceb6e89545ec031e72f8618fa89c59"/></dir></dir><dir name="controllers"><file name="OutputController.php" hash="b94ed02730aaa0e686613af14ef70f0c"/><dir name="Adminhtml"><dir name="Unifeed"><file name="FeedController.php" hash="ccd3702a837aa15cc71609e93eb50eb0"/><file name="TemplateController.php" hash="bea42ca064a92bb125cfcfb8f5d9e8ba"/></dir></dir></dir></dir></dir></dir></dir></dir></target></contents></package>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
shell/unifeed.php CHANGED
@@ -1,25 +1,33 @@
1
- <?php
2
- /**
3
- * IDEALIAGroup srl
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to info@idealiagroup.com so we can send you a copy immediately.
14
- *
15
- * @category MSP
16
- * @package MSP_Unifeed
17
- * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
- */
20
-
21
- $magePath = dirname(dirname(__FILE__));
22
- require_once($magePath.'/app/Mage.php');
23
-
24
- Mage::app('admin')->setUseSessionInUrl(false);
25
- Mage::getModel('msp_unifeed/feed')->buildAll();
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * IDEALIAGroup srl
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to info@idealiagroup.com so we can send you a copy immediately.
14
+ *
15
+ * @category MSP
16
+ * @package MSP_Unifeed
17
+ * @copyright Copyright (c) 2014 IDEALIAGroup srl (http://www.idealiagroup.com)
18
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
19
+ */
20
+
21
+ require_once 'abstract.php';
22
+
23
+ class MSP_Unifeed_Shell_Unifeed extends Mage_Shell_Abstract
24
+ {
25
+ public function run()
26
+ {
27
+ Mage::app('admin')->setUseSessionInUrl(false);
28
+ Mage::getModel('msp_unifeed/feed')->buildAll();
29
+ }
30
+ }
31
+
32
+ $shell = new MSP_Unifeed_Shell_Unifeed();
33
+ $shell->run();