Catalin_Seo - Version 3.1.0

Version Notes

- Added support for Magento Configurable Swatches.
- added possibility to add "nofollow" on layered navigation pages.
- Fixed issue with multiple categories having the same url key.
- Fixed issue with multiple attributes having the same label. This led to having attributes with the same url_key.
- Use the store label instead of the admin label of the attribute option to generate the url_value.

Download this release

Release Info

Developer Catalin Ciobanu
Extension Catalin_Seo
Version 3.1.0
Comparing to
See all releases


Code changes from version 3.0.0 to 3.1.0

Files changed (38) hide show
  1. app/code/community/Catalin/SEO/Block/Catalog/Layer/Filter/Attribute.php +4 -4
  2. app/code/community/Catalin/SEO/Block/Catalog/Layer/Filter/Price.php +4 -4
  3. app/code/community/Catalin/SEO/Block/Catalog/Layer/State.php +4 -4
  4. app/code/community/Catalin/SEO/Block/Catalog/Product/List/Pager.php +4 -4
  5. app/code/community/Catalin/SEO/Block/Catalog/Product/List/Toolbar.php +4 -4
  6. app/code/community/Catalin/SEO/Block/CatalogSearch/Layer/Filter/Attribute.php +4 -4
  7. app/code/community/Catalin/SEO/Block/ConfigurableSwatches/Catalog/Layer/State/Swatch.php +49 -0
  8. app/code/community/Catalin/SEO/Block/Enterprise/Catalog/Layer/Filter/Attribute.php +4 -4
  9. app/code/community/Catalin/SEO/Block/Enterprise/CatalogSearch/Layer/Filter/Attribute.php +4 -4
  10. app/code/community/Catalin/SEO/Controller/Router.php +4 -4
  11. app/code/community/Catalin/SEO/Helper/ConfigurableSwatches/Productlist.php +49 -0
  12. app/code/community/Catalin/SEO/Helper/Data.php +13 -5
  13. app/code/community/Catalin/SEO/Model/Catalog/Layer.php +4 -4
  14. app/code/community/Catalin/SEO/Model/Catalog/Layer/Filter/Attribute.php +4 -4
  15. app/code/community/Catalin/SEO/Model/Catalog/Layer/Filter/Category.php +9 -5
  16. app/code/community/Catalin/SEO/Model/Catalog/Layer/Filter/Item.php +4 -4
  17. app/code/community/Catalin/SEO/Model/Catalog/Layer/Filter/Price.php +4 -4
  18. app/code/community/Catalin/SEO/Model/Catalog/Resource/Layer/Filter/Attribute.php +4 -4
  19. app/code/community/Catalin/SEO/Model/Catalog/Resource/Layer/Filter/Price.php +4 -4
  20. app/code/community/Catalin/SEO/Model/CatalogSearch/Layer.php +4 -4
  21. app/code/community/Catalin/SEO/Model/CatalogSearch/Layer/Filter/Attribute.php +4 -4
  22. app/code/community/Catalin/SEO/Model/Enterprise/Catalog/Layer/Filter/Attribute.php +4 -4
  23. app/code/community/Catalin/SEO/Model/Enterprise/Catalog/Layer/Filter/Category.php +9 -5
  24. app/code/community/Catalin/SEO/Model/Indexer/Attribute.php +4 -4
  25. app/code/community/Catalin/SEO/Model/Resource/Attribute/Urlkey.php +6 -6
  26. app/code/community/Catalin/SEO/Model/Resource/Indexer/Attribute.php +105 -82
  27. app/code/community/Catalin/SEO/Model/System/Config/Backend/Seo/Catalog.php +4 -4
  28. app/code/community/Catalin/SEO/controllers/CategoryController.php +6 -6
  29. app/code/community/Catalin/SEO/controllers/ResultController.php +6 -6
  30. app/code/community/Catalin/SEO/etc/config.xml +12 -1
  31. app/code/community/Catalin/SEO/etc/system.xml +14 -2
  32. app/design/frontend/base/default/layout/catalin_seo.xml +1 -1
  33. app/design/frontend/base/default/template/catalin_seo/catalog/layer/filter.phtml +4 -1
  34. app/design/frontend/base/default/template/catalin_seo/catalog/layer/filter/swatches.phtml +45 -0
  35. app/design/frontend/base/default/template/catalin_seo/catalog/product/list.phtml +2 -1
  36. package.xml +11 -6
  37. skin/frontend/base/default/js/catalin_seo/handler-ee-rwd.js +59 -18
  38. skin/frontend/base/default/js/catalin_seo/handler.js +17 -1
app/code/community/Catalin/SEO/Block/Catalog/Layer/Filter/Attribute.php CHANGED
@@ -5,14 +5,14 @@
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
  *
13
  * @package Catalin_Seo
14
- * @copyright Copyright (c) 2015 Catalin Ciobanu
15
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
  */
17
  class Catalin_SEO_Block_Catalog_Layer_Filter_Attribute extends Mage_Catalog_Block_Layer_Filter_Attribute
18
  {
5
  *
6
  * NOTICE OF LICENSE
7
  *
8
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
12
  *
13
  * @package Catalin_Seo
14
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
15
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
16
  */
17
  class Catalin_SEO_Block_Catalog_Layer_Filter_Attribute extends Mage_Catalog_Block_Layer_Filter_Attribute
18
  {
app/code/community/Catalin/SEO/Block/Catalog/Layer/Filter/Price.php CHANGED
@@ -5,14 +5,14 @@
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
  *
13
  * @package Catalin_Seo
14
- * @copyright Copyright (c) 2015 Catalin Ciobanu
15
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
  */
17
  class Catalin_SEO_Block_Catalog_Layer_Filter_Price extends Mage_Catalog_Block_Layer_Filter_Price
18
  {
5
  *
6
  * NOTICE OF LICENSE
7
  *
8
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
12
  *
13
  * @package Catalin_Seo
14
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
15
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
16
  */
17
  class Catalin_SEO_Block_Catalog_Layer_Filter_Price extends Mage_Catalog_Block_Layer_Filter_Price
18
  {
app/code/community/Catalin/SEO/Block/Catalog/Layer/State.php CHANGED
@@ -5,14 +5,14 @@
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
  *
13
  * @package Catalin_Seo
14
- * @copyright Copyright (c) 2015 Catalin Ciobanu
15
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
  */
17
  class Catalin_SEO_Block_Catalog_Layer_State extends Mage_Catalog_Block_Layer_State
18
  {
5
  *
6
  * NOTICE OF LICENSE
7
  *
8
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
12
  *
13
  * @package Catalin_Seo
14
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
15
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
16
  */
17
  class Catalin_SEO_Block_Catalog_Layer_State extends Mage_Catalog_Block_Layer_State
18
  {
app/code/community/Catalin/SEO/Block/Catalog/Product/List/Pager.php CHANGED
@@ -5,14 +5,14 @@
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
  *
13
  * @package Catalin_Seo
14
- * @copyright Copyright (c) 2015 Catalin Ciobanu
15
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
  */
17
  class Catalin_SEO_Block_Catalog_Product_List_Pager extends Mage_Page_Block_Html_Pager
18
  {
5
  *
6
  * NOTICE OF LICENSE
7
  *
8
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
12
  *
13
  * @package Catalin_Seo
14
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
15
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
16
  */
17
  class Catalin_SEO_Block_Catalog_Product_List_Pager extends Mage_Page_Block_Html_Pager
18
  {
app/code/community/Catalin/SEO/Block/Catalog/Product/List/Toolbar.php CHANGED
@@ -5,14 +5,14 @@
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
  *
13
  * @package Catalin_Seo
14
- * @copyright Copyright (c) 2015 Catalin Ciobanu
15
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
  */
17
  class Catalin_SEO_Block_Catalog_Product_List_Toolbar extends Mage_Catalog_Block_Product_List_Toolbar
18
  {
5
  *
6
  * NOTICE OF LICENSE
7
  *
8
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
12
  *
13
  * @package Catalin_Seo
14
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
15
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
16
  */
17
  class Catalin_SEO_Block_Catalog_Product_List_Toolbar extends Mage_Catalog_Block_Product_List_Toolbar
18
  {
app/code/community/Catalin/SEO/Block/CatalogSearch/Layer/Filter/Attribute.php CHANGED
@@ -5,14 +5,14 @@
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
  *
13
  * @package Catalin_Seo
14
- * @copyright Copyright (c) 2015 Catalin Ciobanu
15
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
  */
17
  class Catalin_SEO_Block_CatalogSearch_Layer_Filter_Attribute extends Catalin_SEO_Block_Catalog_Layer_Filter_Attribute
18
  {
5
  *
6
  * NOTICE OF LICENSE
7
  *
8
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
12
  *
13
  * @package Catalin_Seo
14
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
15
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
16
  */
17
  class Catalin_SEO_Block_CatalogSearch_Layer_Filter_Attribute extends Catalin_SEO_Block_Catalog_Layer_Filter_Attribute
18
  {
app/code/community/Catalin/SEO/Block/ConfigurableSwatches/Catalog/Layer/State/Swatch.php ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Catalin Ciobanu
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
12
+ *
13
+ * @package Catalin_Seo
14
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
15
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
16
+ */
17
+ class Catalin_SEO_Block_ConfigurableSwatches_Catalog_Layer_State_Swatch extends Mage_ConfigurableSwatches_Block_Catalog_Layer_State_Swatch
18
+ {
19
+ /**
20
+ * @inheritdoc
21
+ */
22
+ protected function _init($filter)
23
+ {
24
+ $dimHelper = Mage::helper('configurableswatches/swatchdimensions');
25
+
26
+ $this->setSwatchInnerWidth(
27
+ $dimHelper->getInnerWidth(Mage_ConfigurableSwatches_Helper_Swatchdimensions::AREA_LAYER)
28
+ );
29
+ $this->setSwatchInnerHeight(
30
+ $dimHelper->getInnerHeight(Mage_ConfigurableSwatches_Helper_Swatchdimensions::AREA_LAYER)
31
+ );
32
+ $this->setSwatchOuterWidth(
33
+ $dimHelper->getOuterWidth(Mage_ConfigurableSwatches_Helper_Swatchdimensions::AREA_LAYER)
34
+ );
35
+ $this->setSwatchOuterHeight(
36
+ $dimHelper->getOuterHeight(Mage_ConfigurableSwatches_Helper_Swatchdimensions::AREA_LAYER)
37
+ );
38
+
39
+ $swatchUrl = Mage::helper('configurableswatches/productimg')
40
+ ->getGlobalSwatchUrl(
41
+ $filter,
42
+ $this->stripTags($filter->getLabel()),
43
+ $this->getSwatchInnerWidth(),
44
+ $this->getSwatchInnerHeight()
45
+ );
46
+
47
+ $this->setSwatchUrl($swatchUrl);
48
+ }
49
+ }
app/code/community/Catalin/SEO/Block/Enterprise/Catalog/Layer/Filter/Attribute.php CHANGED
@@ -5,14 +5,14 @@
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
  *
13
  * @package Catalin_Seo
14
- * @copyright Copyright (c) 2013 Catalin Ciobanu
15
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
  */
17
  class Catalin_SEO_Block_Enterprise_Catalog_Layer_Filter_Attribute extends Enterprise_Search_Block_Catalog_Layer_Filter_Attribute
18
  {
5
  *
6
  * NOTICE OF LICENSE
7
  *
8
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
12
  *
13
  * @package Catalin_Seo
14
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
15
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
16
  */
17
  class Catalin_SEO_Block_Enterprise_Catalog_Layer_Filter_Attribute extends Enterprise_Search_Block_Catalog_Layer_Filter_Attribute
18
  {
app/code/community/Catalin/SEO/Block/Enterprise/CatalogSearch/Layer/Filter/Attribute.php CHANGED
@@ -5,14 +5,14 @@
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
  *
13
  * @package Catalin_Seo
14
- * @copyright Copyright (c) 2013 Catalin Ciobanu
15
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
  */
17
  class Catalin_SEO_Block_Enterprise_CatalogSearch_Layer_Filter_Attribute extends Catalin_SEO_Block_Enterprise_Catalog_Layer_Filter_Attribute
18
  {
5
  *
6
  * NOTICE OF LICENSE
7
  *
8
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
12
  *
13
  * @package Catalin_Seo
14
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
15
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
16
  */
17
  class Catalin_SEO_Block_Enterprise_CatalogSearch_Layer_Filter_Attribute extends Catalin_SEO_Block_Enterprise_Catalog_Layer_Filter_Attribute
18
  {
app/code/community/Catalin/SEO/Controller/Router.php CHANGED
@@ -4,14 +4,14 @@
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
  *
12
  * @package Catalin_Seo
13
- * @copyright Copyright (c) 2015 Catalin Ciobanu
14
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
15
  */
16
  class Catalin_SEO_Controller_Router extends Mage_Core_Controller_Varien_Router_Standard
17
  {
4
  *
5
  * NOTICE OF LICENSE
6
  *
7
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
11
  *
12
  * @package Catalin_Seo
13
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
14
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
15
  */
16
  class Catalin_SEO_Controller_Router extends Mage_Core_Controller_Varien_Router_Standard
17
  {
app/code/community/Catalin/SEO/Helper/ConfigurableSwatches/Productlist.php ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Catalin Ciobanu
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
12
+ *
13
+ * @package Catalin_Seo
14
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
15
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
16
+ */
17
+ class Catalin_SEO_Helper_ConfigurableSwatches_Productlist extends Mage_ConfigurableSwatches_Helper_Productlist
18
+ {
19
+ /**
20
+ * @inheritDoc
21
+ */
22
+ public function convertLayerBlock($blockName)
23
+ {
24
+ if (Mage::helper('configurableswatches')->isEnabled()
25
+ && ($block = Mage::app()->getLayout()->getBlock($blockName))
26
+ && $block instanceof Mage_Catalog_Block_Layer_View
27
+ ) {
28
+
29
+ // First, set a new template for the attribute that should show as a swatch
30
+ if ($layer = $block->getLayer()) {
31
+ foreach ($layer->getFilterableAttributes() as $attribute) {
32
+ if (Mage::helper('configurableswatches')->attrIsSwatchType($attribute)) {
33
+ $block->getChild($attribute->getAttributeCode() . '_filter')
34
+ ->setTemplate('catalin_seo/catalog/layer/filter/swatches.phtml');
35
+ }
36
+ }
37
+ }
38
+
39
+ // Then set a specific renderer block for showing "currently shopping by" for the swatch attribute
40
+ // (block class takes care of determining which attribute is applicable)
41
+ if ($stateRenderersBlock = $block->getChild('state_renderers')) {
42
+ $swatchRenderer = Mage::app()->getLayout()
43
+ ->addBlock('configurableswatches/catalog_layer_state_swatch', 'product_list.swatches');
44
+ $swatchRenderer->setTemplate('configurableswatches/catalog/layer/state/swatch.phtml');
45
+ $stateRenderersBlock->append($swatchRenderer);
46
+ }
47
+ }
48
+ }
49
+ }
app/code/community/Catalin/SEO/Helper/Data.php CHANGED
@@ -5,14 +5,14 @@
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
  *
13
  * @package Catalin_Seo
14
- * @copyright Copyright (c) 2015 Catalin Ciobanu
15
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
  */
17
  class Catalin_SEO_Helper_Data extends Mage_Core_Helper_Data
18
  {
@@ -21,6 +21,7 @@ class Catalin_SEO_Helper_Data extends Mage_Core_Helper_Data
21
  */
22
 
23
  const MULTIPLE_FILTERS_DELIMITER = ',';
 
24
 
25
  /**
26
  * Check if module is enabled or not
@@ -177,7 +178,7 @@ class Catalin_SEO_Helper_Data extends Mage_Core_Helper_Data
177
  * Checks for Enterprise and if it is, checks for the dot
178
  * before returning
179
  * @param string $suffix
180
- * @param srting $urlParts
181
  * @return string
182
  */
183
  public function getUrlBody($suffix, $urlParts) {
@@ -503,4 +504,11 @@ class Catalin_SEO_Helper_Data extends Mage_Core_Helper_Data
503
  return "js/catalin_seo/handler.js";
504
  }
505
 
 
 
 
 
 
 
 
506
  }
5
  *
6
  * NOTICE OF LICENSE
7
  *
8
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
12
  *
13
  * @package Catalin_Seo
14
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
15
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
16
  */
17
  class Catalin_SEO_Helper_Data extends Mage_Core_Helper_Data
18
  {
21
  */
22
 
23
  const MULTIPLE_FILTERS_DELIMITER = ',';
24
+ const REL_NOFOLLOW = 'rel="nofollow"';
25
 
26
  /**
27
  * Check if module is enabled or not
178
  * Checks for Enterprise and if it is, checks for the dot
179
  * before returning
180
  * @param string $suffix
181
+ * @param string $urlParts
182
  * @return string
183
  */
184
  public function getUrlBody($suffix, $urlParts) {
504
  return "js/catalin_seo/handler.js";
505
  }
506
 
507
+ public function getNofollow()
508
+ {
509
+ if(Mage::getStoreConfigFlag('catalin_seo/catalog/nofollow')){
510
+ return self::REL_NOFOLLOW;
511
+ }
512
+ }
513
+
514
  }
app/code/community/Catalin/SEO/Model/Catalog/Layer.php CHANGED
@@ -5,14 +5,14 @@
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
  *
13
  * @package Catalin_Seo
14
- * @copyright Copyright (c) 2015 Catalin Ciobanu
15
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
  */
17
  class Catalin_SEO_Model_Catalog_Layer extends Mage_Catalog_Model_Layer
18
  {
5
  *
6
  * NOTICE OF LICENSE
7
  *
8
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
12
  *
13
  * @package Catalin_Seo
14
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
15
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
16
  */
17
  class Catalin_SEO_Model_Catalog_Layer extends Mage_Catalog_Model_Layer
18
  {
app/code/community/Catalin/SEO/Model/Catalog/Layer/Filter/Attribute.php CHANGED
@@ -5,14 +5,14 @@
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
  *
13
  * @package Catalin_Seo
14
- * @copyright Copyright (c) 2015 Catalin Ciobanu
15
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
  */
17
  class Catalin_SEO_Model_Catalog_Layer_Filter_Attribute extends Mage_Catalog_Model_Layer_Filter_Attribute
18
  {
5
  *
6
  * NOTICE OF LICENSE
7
  *
8
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
12
  *
13
  * @package Catalin_Seo
14
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
15
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
16
  */
17
  class Catalin_SEO_Model_Catalog_Layer_Filter_Attribute extends Mage_Catalog_Model_Layer_Filter_Attribute
18
  {
app/code/community/Catalin/SEO/Model/Catalog/Layer/Filter/Category.php CHANGED
@@ -5,14 +5,14 @@
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
  *
13
  * @package Catalin_Seo
14
- * @copyright Copyright (c) 2015 Catalin Ciobanu
15
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
  */
17
  class Catalin_SEO_Model_Catalog_Layer_Filter_Category extends Mage_Catalog_Model_Layer_Filter_Category
18
  {
@@ -65,6 +65,8 @@ class Catalin_SEO_Model_Catalog_Layer_Filter_Category extends Mage_Catalog_Model
65
  $urlKey = $category->getUrlKey();
66
  if (empty($urlKey)) {
67
  $urlKey = $category->getId();
 
 
68
  }
69
 
70
  $data[] = array(
@@ -98,10 +100,12 @@ class Catalin_SEO_Model_Catalog_Layer_Filter_Category extends Mage_Catalog_Model
98
  return $this;
99
  }
100
 
 
 
101
  // Load the category filter by url_key
102
  $this->_appliedCategory = Mage::getModel('catalog/category')
103
  ->setStoreId(Mage::app()->getStore()->getId())
104
- ->loadByAttribute('url_key', $filter);
105
 
106
  // Extra check in case it is a category id and not url key
107
  if (!($this->_appliedCategory instanceof Mage_Catalog_Model_Category)) {
5
  *
6
  * NOTICE OF LICENSE
7
  *
8
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
12
  *
13
  * @package Catalin_Seo
14
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
15
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
16
  */
17
  class Catalin_SEO_Model_Catalog_Layer_Filter_Category extends Mage_Catalog_Model_Layer_Filter_Category
18
  {
65
  $urlKey = $category->getUrlKey();
66
  if (empty($urlKey)) {
67
  $urlKey = $category->getId();
68
+ } else {
69
+ $urlKey = $category->getId() . '-' . $urlKey;
70
  }
71
 
72
  $data[] = array(
100
  return $this;
101
  }
102
 
103
+ $parts = explode('-', $filter);
104
+
105
  // Load the category filter by url_key
106
  $this->_appliedCategory = Mage::getModel('catalog/category')
107
  ->setStoreId(Mage::app()->getStore()->getId())
108
+ ->loadByAttribute('url_key', $parts[0]);
109
 
110
  // Extra check in case it is a category id and not url key
111
  if (!($this->_appliedCategory instanceof Mage_Catalog_Model_Category)) {
app/code/community/Catalin/SEO/Model/Catalog/Layer/Filter/Item.php CHANGED
@@ -5,14 +5,14 @@
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
  *
13
  * @package Catalin_Seo
14
- * @copyright Copyright (c) 2015 Catalin Ciobanu
15
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
  */
17
  class Catalin_SEO_Model_Catalog_Layer_Filter_Item extends Mage_Catalog_Model_Layer_Filter_Item
18
  {
5
  *
6
  * NOTICE OF LICENSE
7
  *
8
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
12
  *
13
  * @package Catalin_Seo
14
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
15
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
16
  */
17
  class Catalin_SEO_Model_Catalog_Layer_Filter_Item extends Mage_Catalog_Model_Layer_Filter_Item
18
  {
app/code/community/Catalin/SEO/Model/Catalog/Layer/Filter/Price.php CHANGED
@@ -5,14 +5,14 @@
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
  *
13
  * @package Catalin_Seo
14
- * @copyright Copyright (c) 2015 Catalin Ciobanu
15
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
  */
17
  class Catalin_SEO_Model_Catalog_Layer_Filter_Price extends Mage_Catalog_Model_Layer_Filter_Price
18
  {
5
  *
6
  * NOTICE OF LICENSE
7
  *
8
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
12
  *
13
  * @package Catalin_Seo
14
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
15
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
16
  */
17
  class Catalin_SEO_Model_Catalog_Layer_Filter_Price extends Mage_Catalog_Model_Layer_Filter_Price
18
  {
app/code/community/Catalin/SEO/Model/Catalog/Resource/Layer/Filter/Attribute.php CHANGED
@@ -5,14 +5,14 @@
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
  *
13
  * @package Catalin_Seo
14
- * @copyright Copyright (c) 2015 Catalin Ciobanu
15
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
  */
17
  class Catalin_SEO_Model_Catalog_Resource_Layer_Filter_Attribute extends Mage_Catalog_Model_Resource_Layer_Filter_Attribute
18
  {
5
  *
6
  * NOTICE OF LICENSE
7
  *
8
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
12
  *
13
  * @package Catalin_Seo
14
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
15
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
16
  */
17
  class Catalin_SEO_Model_Catalog_Resource_Layer_Filter_Attribute extends Mage_Catalog_Model_Resource_Layer_Filter_Attribute
18
  {
app/code/community/Catalin/SEO/Model/Catalog/Resource/Layer/Filter/Price.php CHANGED
@@ -5,14 +5,14 @@
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
  *
13
  * @package Catalin_Seo
14
- * @copyright Copyright (c) 2015 Catalin Ciobanu
15
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
  */
17
  class Catalin_SEO_Model_Catalog_Resource_Layer_Filter_Price extends Mage_Catalog_Model_Resource_Layer_Filter_Price
18
  {
5
  *
6
  * NOTICE OF LICENSE
7
  *
8
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
12
  *
13
  * @package Catalin_Seo
14
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
15
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
16
  */
17
  class Catalin_SEO_Model_Catalog_Resource_Layer_Filter_Price extends Mage_Catalog_Model_Resource_Layer_Filter_Price
18
  {
app/code/community/Catalin/SEO/Model/CatalogSearch/Layer.php CHANGED
@@ -5,14 +5,14 @@
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
  *
13
  * @package Catalin_Seo
14
- * @copyright Copyright (c) 2015 Catalin Ciobanu
15
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
  */
17
  class Catalin_SEO_Model_CatalogSearch_Layer extends Catalin_SEO_Model_Catalog_Layer
18
  {
5
  *
6
  * NOTICE OF LICENSE
7
  *
8
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
12
  *
13
  * @package Catalin_Seo
14
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
15
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
16
  */
17
  class Catalin_SEO_Model_CatalogSearch_Layer extends Catalin_SEO_Model_Catalog_Layer
18
  {
app/code/community/Catalin/SEO/Model/CatalogSearch/Layer/Filter/Attribute.php CHANGED
@@ -5,14 +5,14 @@
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
  *
13
  * @package Catalin_Seo
14
- * @copyright Copyright (c) 2015 Catalin Ciobanu
15
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
  */
17
  class Catalin_SEO_Model_CatalogSearch_Layer_Filter_Attribute extends Catalin_SEO_Model_Catalog_Layer_Filter_Attribute
18
  {
5
  *
6
  * NOTICE OF LICENSE
7
  *
8
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
12
  *
13
  * @package Catalin_Seo
14
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
15
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
16
  */
17
  class Catalin_SEO_Model_CatalogSearch_Layer_Filter_Attribute extends Catalin_SEO_Model_Catalog_Layer_Filter_Attribute
18
  {
app/code/community/Catalin/SEO/Model/Enterprise/Catalog/Layer/Filter/Attribute.php CHANGED
@@ -5,14 +5,14 @@
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
  *
13
  * @package Catalin_Seo
14
- * @copyright Copyright (c) 2013 Catalin Ciobanu
15
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
  */
17
  class Catalin_SEO_Model_Enterprise_Catalog_Layer_Filter_Attribute extends Mage_Catalog_Model_Catalog_Layer_Filter_Attribute
18
  {
5
  *
6
  * NOTICE OF LICENSE
7
  *
8
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
12
  *
13
  * @package Catalin_Seo
14
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
15
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
16
  */
17
  class Catalin_SEO_Model_Enterprise_Catalog_Layer_Filter_Attribute extends Mage_Catalog_Model_Catalog_Layer_Filter_Attribute
18
  {
app/code/community/Catalin/SEO/Model/Enterprise/Catalog/Layer/Filter/Category.php CHANGED
@@ -5,14 +5,14 @@
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
  *
13
  * @package Catalin_Seo
14
- * @copyright Copyright (c) 2013 Catalin Ciobanu
15
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
  */
17
  class Catalin_SEO_Model_Enterprise_Catalog_Layer_Filter_Category extends Enterprise_Search_Model_Catalog_Layer_Filter_Category
18
  {
@@ -65,6 +65,8 @@ class Catalin_SEO_Model_Enterprise_Catalog_Layer_Filter_Category extends Enterpr
65
  $urlKey = $category->getUrlKey();
66
  if (empty($urlKey)) {
67
  $urlKey = $category->getId();
 
 
68
  }
69
 
70
  $data[] = array(
@@ -98,10 +100,12 @@ class Catalin_SEO_Model_Enterprise_Catalog_Layer_Filter_Category extends Enterpr
98
  return $this;
99
  }
100
 
 
 
101
  // Load the category filter by url_key
102
  $this->_appliedCategory = Mage::getModel('catalog/category')
103
  ->setStoreId(Mage::app()->getStore()->getId())
104
- ->loadByAttribute('url_key', $filter);
105
 
106
  // Extra check in case it is a category id and not url key
107
  if (!($this->_appliedCategory instanceof Mage_Catalog_Model_Category)) {
5
  *
6
  * NOTICE OF LICENSE
7
  *
8
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
12
  *
13
  * @package Catalin_Seo
14
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
15
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
16
  */
17
  class Catalin_SEO_Model_Enterprise_Catalog_Layer_Filter_Category extends Enterprise_Search_Model_Catalog_Layer_Filter_Category
18
  {
65
  $urlKey = $category->getUrlKey();
66
  if (empty($urlKey)) {
67
  $urlKey = $category->getId();
68
+ } else {
69
+ $urlKey = $category->getId() . '-' . $urlKey;
70
  }
71
 
72
  $data[] = array(
100
  return $this;
101
  }
102
 
103
+ $parts = explode('-', $filter);
104
+
105
  // Load the category filter by url_key
106
  $this->_appliedCategory = Mage::getModel('catalog/category')
107
  ->setStoreId(Mage::app()->getStore()->getId())
108
+ ->loadByAttribute('url_key', $parts[0]);
109
 
110
  // Extra check in case it is a category id and not url key
111
  if (!($this->_appliedCategory instanceof Mage_Catalog_Model_Category)) {
app/code/community/Catalin/SEO/Model/Indexer/Attribute.php CHANGED
@@ -5,14 +5,14 @@
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
  *
13
  * @package Catalin_Seo
14
- * @copyright Copyright (c) 2015 Catalin Ciobanu
15
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
  */
17
  class Catalin_SEO_Model_Indexer_Attribute extends Mage_Index_Model_Indexer_Abstract
18
  {
5
  *
6
  * NOTICE OF LICENSE
7
  *
8
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
12
  *
13
  * @package Catalin_Seo
14
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
15
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
16
  */
17
  class Catalin_SEO_Model_Indexer_Attribute extends Mage_Index_Model_Indexer_Abstract
18
  {
app/code/community/Catalin/SEO/Model/Resource/Attribute/Urlkey.php CHANGED
@@ -5,14 +5,14 @@
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
  *
13
  * @package Catalin_Seo
14
- * @copyright Copyright (c) 2015 Catalin Ciobanu
15
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
  */
17
  class Catalin_SEO_Model_Resource_Attribute_Urlkey extends Mage_Core_Model_Resource_Db_Abstract
18
  {
@@ -107,8 +107,8 @@ class Catalin_SEO_Model_Resource_Attribute_Urlkey extends Mage_Core_Model_Resour
107
  $data = $readAdapter->fetchAll($select);
108
 
109
  if (!empty($data)) {
110
- self::$_cachedResults[$data['attribute_id']][$storeId] = $data;
111
- self::$_cachedResults[$data['attribute_code']][$storeId] = $data;
112
  } else {
113
  self::$_cachedResults[$whereValue][$storeId] = $data;
114
  }
5
  *
6
  * NOTICE OF LICENSE
7
  *
8
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
12
  *
13
  * @package Catalin_Seo
14
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
15
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
16
  */
17
  class Catalin_SEO_Model_Resource_Attribute_Urlkey extends Mage_Core_Model_Resource_Db_Abstract
18
  {
107
  $data = $readAdapter->fetchAll($select);
108
 
109
  if (!empty($data)) {
110
+ self::$_cachedResults[$data[0]['attribute_id']][$storeId] = $data;
111
+ self::$_cachedResults[$data[0]['attribute_code']][$storeId] = $data;
112
  } else {
113
  self::$_cachedResults[$whereValue][$storeId] = $data;
114
  }
app/code/community/Catalin/SEO/Model/Resource/Indexer/Attribute.php CHANGED
@@ -5,19 +5,26 @@
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
  *
13
  * @package Catalin_Seo
14
- * @copyright Copyright (c) 2015 Catalin Ciobanu
15
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
  */
17
  class Catalin_SEO_Model_Resource_Indexer_Attribute extends Mage_Index_Model_Resource_Abstract
18
  {
19
 
 
 
 
20
  protected $storesIds;
 
 
 
 
21
  protected $helper;
22
 
23
  /**
@@ -49,58 +56,18 @@ class Catalin_SEO_Model_Resource_Indexer_Attribute extends Mage_Index_Model_Reso
49
  public function reindexSeoUrlKeys($attributeId = null)
50
  {
51
  $attributes = $this->getAttributes($attributeId);
52
- $stores = $this->getAllStoresIds();
53
 
54
- $data = array();
55
  foreach ($attributes as $attribute) {
56
  if ($attribute->usesSource()) {
57
- foreach ($stores as $storeId) {
58
- $result = $this->getInsertValues($attribute, $storeId);
59
- $data = array_merge($data, $result);
60
- }
61
  }
62
  }
63
 
64
- if (!empty($attributeId)) {
65
- $this->saveData($data, array("`attribute_id` = ?" => $attributeId));
66
- } else {
67
- $this->saveData($data);
68
- }
69
-
70
  return $this;
71
  }
72
 
73
  /**
74
- * Save data into database
75
- *
76
- * @param array $data
77
- * @param array $deleteWhere
78
- * @throws Exception
79
- */
80
- protected function saveData(array $data, array $deleteWhere = array())
81
- {
82
- // Continue only if we have something to insert
83
- if (empty($data)) {
84
- return $this;
85
- }
86
-
87
- // Do it in one transaction
88
- $this->beginTransaction();
89
-
90
- try {
91
- $writeAdapter = $this->_getWriteAdapter();
92
- $writeAdapter->delete($this->getMainTable(), $deleteWhere);
93
- $writeAdapter->insertMultiple($this->getMainTable(), $data);
94
-
95
- $this->commit();
96
- } catch (Exception $e) {
97
- $this->rollBack();
98
- throw $e;
99
- }
100
- }
101
-
102
- /**
103
- * Retrieve product attributes with frontend input type 'select' and 'multiselect'
104
  *
105
  * @param int|null $attributeId
106
  * @return Mage_Eav_Model_Resource_Entity_Attribute_Collection
@@ -110,7 +77,8 @@ class Catalin_SEO_Model_Resource_Indexer_Attribute extends Mage_Index_Model_Reso
110
  $collection = Mage::getSingleton('eav/config')
111
  ->getEntityType(Mage_Catalog_Model_Product::ENTITY)
112
  ->getAttributeCollection()
113
- ->addFieldToFilter('main_table.frontend_input', array('in' => array('select', 'multiselect')));
 
114
  //->addSetInfo();
115
  if (!empty($attributeId)) {
116
  $collection->addFieldToFilter('main_table.attribute_id', $attributeId);
@@ -120,54 +88,109 @@ class Catalin_SEO_Model_Resource_Indexer_Attribute extends Mage_Index_Model_Reso
120
  }
121
 
122
  /**
123
- * Retrieve data to be insterted after processing attribute
124
  *
125
  * @param Mage_Catalog_Model_Resource_Eav_Attribute $attribute
126
- * @param int $storeId
127
- * @return array
128
  */
129
- protected function getInsertValues($attribute, $storeId)
130
  {
131
- $collection = Mage::getResourceModel('eav/entity_attribute_option_collection')
132
- ->setStoreFilter($storeId)
133
- ->setPositionOrder('asc')
134
- ->setAttributeFilter($attribute->getId())
135
- ->load();
136
- $options = $collection->toOptionArray();
 
 
 
 
 
 
 
137
 
 
 
 
 
 
 
 
 
138
  $data = array();
139
- foreach ($options as $option) {
140
- // Generate url value
141
- $urlValue = $this->getHelper()->transliterate($option['label']);
142
-
143
- // Check if this url key is taken and add -{count}
144
- $count = 0;
145
- $origUrlValue = $urlValue;
146
- do {
147
- $found = false;
148
- foreach ($data as $line) {
149
- if ($line['url_value'] == $urlValue) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
150
  $found = true;
151
  }
152
- }
153
- if ($found) {
154
- $urlValue = $origUrlValue . '-' . ++$count;
155
- }
156
- } while ($found);
157
-
158
- $data[] = array(
159
- 'attribute_code' => $attribute->getAttributeCode(),
160
- 'attribute_id' => $attribute->getId(),
161
- 'store_id' => $storeId,
162
- 'option_id' => $option['value'],
163
- 'url_key' => $this->getHelper()->transliterate($attribute->getStoreLabel($storeId)),
164
- 'url_value' => $urlValue,
165
- );
166
  }
167
 
168
  return $data;
169
  }
170
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
171
  /**
172
  * Retrieve all stores ids
173
  *
5
  *
6
  * NOTICE OF LICENSE
7
  *
8
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
12
  *
13
  * @package Catalin_Seo
14
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
15
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
16
  */
17
  class Catalin_SEO_Model_Resource_Indexer_Attribute extends Mage_Index_Model_Resource_Abstract
18
  {
19
 
20
+ /**
21
+ * @var array
22
+ */
23
  protected $storesIds;
24
+
25
+ /**
26
+ * @var Catalin_SEO_Helper_Data
27
+ */
28
  protected $helper;
29
 
30
  /**
56
  public function reindexSeoUrlKeys($attributeId = null)
57
  {
58
  $attributes = $this->getAttributes($attributeId);
 
59
 
 
60
  foreach ($attributes as $attribute) {
61
  if ($attribute->usesSource()) {
62
+ $this->reindexAttribute($attribute);
 
 
 
63
  }
64
  }
65
 
 
 
 
 
 
 
66
  return $this;
67
  }
68
 
69
  /**
70
+ * Retrieve filterable product attributes with frontend input type 'select' and 'multiselect'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71
  *
72
  * @param int|null $attributeId
73
  * @return Mage_Eav_Model_Resource_Entity_Attribute_Collection
77
  $collection = Mage::getSingleton('eav/config')
78
  ->getEntityType(Mage_Catalog_Model_Product::ENTITY)
79
  ->getAttributeCollection()
80
+ ->addFieldToFilter('main_table.frontend_input', array('in' => array('select', 'multiselect')))
81
+ ->addFieldToFilter(array('is_filterable', 'is_filterable_in_search'), array(array('eq' => 1), array('eq' => 1)));
82
  //->addSetInfo();
83
  if (!empty($attributeId)) {
84
  $collection->addFieldToFilter('main_table.attribute_id', $attributeId);
88
  }
89
 
90
  /**
91
+ * Reindex attribute
92
  *
93
  * @param Mage_Catalog_Model_Resource_Eav_Attribute $attribute
94
+ * @throws Exception
 
95
  */
96
+ protected function reindexAttribute($attribute)
97
  {
98
+ $this->beginTransaction();
99
+ try {
100
+ $writeAdapter = $this->_getWriteAdapter();
101
+
102
+ $writeAdapter->delete($this->getMainTable(), array("attribute_id = ?" => $attribute->getId()));
103
+ $writeAdapter->insertMultiple($this->getMainTable(), $this->getInsertValues($attribute));
104
+
105
+ $this->commit();
106
+ } catch (Exception $e) {
107
+ $this->rollBack();
108
+ throw $e;
109
+ }
110
+ }
111
 
112
+ /**
113
+ * Retrieve data to be inserted
114
+ *
115
+ * @param Mage_Catalog_Model_Resource_Eav_Attribute $attribute
116
+ * @return array
117
+ */
118
+ protected function getInsertValues($attribute)
119
+ {
120
  $data = array();
121
+ foreach ($this->getAllStoresIds() as $storeId) {
122
+ $attribute->setStoreId($storeId);
123
+ if ($attribute->getSourceModel()) {
124
+ $options = $attribute->getSource()->getAllOptions(false);
125
+ } else {
126
+ $collection = Mage::getResourceModel('eav/entity_attribute_option_collection')
127
+ ->setStoreFilter($storeId)
128
+ ->setPositionOrder('asc')
129
+ ->setAttributeFilter($attribute->getId())
130
+ ->load();
131
+ $options = $collection->toOptionArray();
132
+ }
133
+
134
+ foreach ($options as $option) {
135
+ // Generate url value
136
+ $urlValue = $this->getHelper()->transliterate($option['label']);
137
+ $urlKey = $this->getHelper()->transliterate($attribute->getStoreLabel($storeId));
138
+
139
+ // Check if this url value is taken and add -{count}
140
+ $countValue = 0;
141
+ $origUrlValue = $urlValue;
142
+ do {
143
+ $found = false;
144
+ foreach ($data as $line) {
145
+ if ($line['store_id'] == $storeId && $line['url_value'] == $urlValue) {
146
+ $urlValue = $origUrlValue . '-' . ++$countValue;
147
+ $found = true;
148
+ }
149
+ }
150
+ } while ($found);
151
+
152
+ // Check if this url key is taken and add -{count}
153
+ $countKey = 0;
154
+ $origUrlKey = $urlKey;
155
+ do {
156
+ $found = false;
157
+ if ($this->urlKeyExists($attribute->getId(), $urlKey)) {
158
+ $urlKey = $origUrlKey . '-' . ++$countKey;
159
  $found = true;
160
  }
161
+ } while ($found);
162
+
163
+ $data[] = array(
164
+ 'attribute_code' => $attribute->getAttributeCode(),
165
+ 'attribute_id' => $attribute->getId(),
166
+ 'store_id' => $storeId,
167
+ 'option_id' => $option['value'],
168
+ 'url_key' => $urlKey,
169
+ 'url_value' => $urlValue,
170
+ );
171
+ }
 
 
 
172
  }
173
 
174
  return $data;
175
  }
176
 
177
+ /**
178
+ * @param int $attributeId
179
+ * @param string $urlKey
180
+ * @return bool
181
+ */
182
+ protected function urlKeyExists($attributeId, $urlKey)
183
+ {
184
+ $readAdapter = $this->_getReadAdapter();
185
+ $select = $readAdapter->select()
186
+ ->from($this->getMainTable(), array('attribute_id'))
187
+ ->where('attribute_id != ?', $attributeId)
188
+ ->where('url_key = ?', $urlKey)
189
+ ->limit(1);
190
+
191
+ return (bool) $readAdapter->fetchOne($select);
192
+ }
193
+
194
  /**
195
  * Retrieve all stores ids
196
  *
app/code/community/Catalin/SEO/Model/System/Config/Backend/Seo/Catalog.php CHANGED
@@ -5,14 +5,14 @@
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
  *
13
  * @package Catalin_Seo
14
- * @copyright Copyright (c) 2015 Catalin Ciobanu
15
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
  */
17
  class Catalin_SEO_Model_System_Config_Backend_Seo_Catalog extends Mage_Core_Model_Config_Data
18
  {
5
  *
6
  * NOTICE OF LICENSE
7
  *
8
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
12
  *
13
  * @package Catalin_Seo
14
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
15
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
16
  */
17
  class Catalin_SEO_Model_System_Config_Backend_Seo_Catalog extends Mage_Core_Model_Config_Data
18
  {
app/code/community/Catalin/SEO/controllers/CategoryController.php CHANGED
@@ -5,14 +5,14 @@
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
  *
13
  * @package Catalin_Seo
14
- * @copyright Copyright (c) 2015 Catalin Ciobanu
15
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
  */
17
  require_once 'Mage/Catalog/controllers/CategoryController.php';
18
 
@@ -43,7 +43,7 @@ class Catalin_Seo_CategoryController extends Mage_Catalog_CategoryController
43
  $update->addHandle($category->getLayoutUpdateHandle());
44
  $update->addHandle('CATEGORY_' . $category->getId());
45
  // apply custom ajax layout
46
- if ($this->getRequest()->isAjax()) {
47
  $update->addHandle('catalog_category_layered_ajax_layer');
48
  }
49
  $this->loadLayoutUpdates();
@@ -72,7 +72,7 @@ class Catalin_Seo_CategoryController extends Mage_Catalog_CategoryController
72
  $this->_initLayoutMessages('checkout/session');
73
 
74
  // return json formatted response for ajax
75
- if ($this->getRequest()->isAjax()) {
76
 
77
  if(Mage::getEdition() == Mage::EDITION_ENTERPRISE){
78
  $block = $this->getLayout()->getBlock('enterprisecatalog.leftnav');
5
  *
6
  * NOTICE OF LICENSE
7
  *
8
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
12
  *
13
  * @package Catalin_Seo
14
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
15
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
16
  */
17
  require_once 'Mage/Catalog/controllers/CategoryController.php';
18
 
43
  $update->addHandle($category->getLayoutUpdateHandle());
44
  $update->addHandle('CATEGORY_' . $category->getId());
45
  // apply custom ajax layout
46
+ if (Mage::helper('catalin_seo')->isAjaxEnabled() && $this->getRequest()->isAjax()) {
47
  $update->addHandle('catalog_category_layered_ajax_layer');
48
  }
49
  $this->loadLayoutUpdates();
72
  $this->_initLayoutMessages('checkout/session');
73
 
74
  // return json formatted response for ajax
75
+ if (Mage::helper('catalin_seo')->isAjaxEnabled() && $this->getRequest()->isAjax()) {
76
 
77
  if(Mage::getEdition() == Mage::EDITION_ENTERPRISE){
78
  $block = $this->getLayout()->getBlock('enterprisecatalog.leftnav');
app/code/community/Catalin/SEO/controllers/ResultController.php CHANGED
@@ -5,14 +5,14 @@
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
  *
13
  * @package Catalin_Seo
14
- * @copyright Copyright (c) 2015 Catalin Ciobanu
15
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
16
  */
17
  require_once 'Mage/CatalogSearch/controllers/ResultController.php';
18
 
@@ -54,7 +54,7 @@ class Catalin_Seo_ResultController extends Mage_CatalogSearch_ResultController
54
 
55
  $this->loadLayout();
56
  // apply custom ajax layout
57
- if ($this->getRequest()->isAjax()) {
58
  $update = $this->getLayout()->getUpdate();
59
  $update->addHandle('catalog_category_layered_ajax_layer');
60
  }
@@ -62,7 +62,7 @@ class Catalin_Seo_ResultController extends Mage_CatalogSearch_ResultController
62
  $this->_initLayoutMessages('checkout/session');
63
 
64
  // return json formatted response for ajax
65
- if ($this->getRequest()->isAjax()) {
66
  $listing = $this->getLayout()->getBlock('search_result_list')->toHtml();
67
 
68
 
5
  *
6
  * NOTICE OF LICENSE
7
  *
8
+ * This source file is subject to the MIT License (MIT)
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
+ * https://opensource.org/licenses/MIT
12
  *
13
  * @package Catalin_Seo
14
+ * @copyright Copyright (c) 2016 Catalin Ciobanu
15
+ * @license https://opensource.org/licenses/MIT MIT License (MIT)
16
  */
17
  require_once 'Mage/CatalogSearch/controllers/ResultController.php';
18
 
54
 
55
  $this->loadLayout();
56
  // apply custom ajax layout
57
+ if (Mage::helper('catalin_seo')->isAjaxEnabled() && $this->getRequest()->isAjax()) {
58
  $update = $this->getLayout()->getUpdate();
59
  $update->addHandle('catalog_category_layered_ajax_layer');
60
  }
62
  $this->_initLayoutMessages('checkout/session');
63
 
64
  // return json formatted response for ajax
65
+ if (Mage::helper('catalin_seo')->isAjaxEnabled() && $this->getRequest()->isAjax()) {
66
  $listing = $this->getLayout()->getBlock('search_result_list')->toHtml();
67
 
68
 
app/code/community/Catalin/SEO/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Catalin_SEO>
5
- <version>3.0.0</version>
6
  </Catalin_SEO>
7
  </modules>
8
  <global>
@@ -71,11 +71,21 @@
71
  <catalogsearch_layer_filter_attribute>Catalin_SEO_Block_Enterprise_CatalogSearch_Layer_Filter_Attribute</catalogsearch_layer_filter_attribute>
72
  </rewrite>
73
  </enterprise_search>
 
 
 
 
 
74
  <catalin_seo>
75
  <class>Catalin_SEO_Block</class>
76
  </catalin_seo>
77
  </blocks>
78
  <helpers>
 
 
 
 
 
79
  <catalin_seo>
80
  <class>Catalin_SEO_Helper</class>
81
  </catalin_seo>
@@ -131,6 +141,7 @@
131
  <price_slider>1</price_slider>
132
  <multiple_choice_filters>1</multiple_choice_filters>
133
  <routing_suffix>filter</routing_suffix>
 
134
  </catalog>
135
  </catalin_seo>
136
  </default>
2
  <config>
3
  <modules>
4
  <Catalin_SEO>
5
+ <version>3.1.0</version>
6
  </Catalin_SEO>
7
  </modules>
8
  <global>
71
  <catalogsearch_layer_filter_attribute>Catalin_SEO_Block_Enterprise_CatalogSearch_Layer_Filter_Attribute</catalogsearch_layer_filter_attribute>
72
  </rewrite>
73
  </enterprise_search>
74
+ <configurableswatches>
75
+ <rewrite>
76
+ <catalog_layer_state_swatch>Catalin_SEO_Block_ConfigurableSwatches_Catalog_Layer_State_Swatch</catalog_layer_state_swatch>
77
+ </rewrite>
78
+ </configurableswatches>
79
  <catalin_seo>
80
  <class>Catalin_SEO_Block</class>
81
  </catalin_seo>
82
  </blocks>
83
  <helpers>
84
+ <configurableswatches>
85
+ <rewrite>
86
+ <productlist>Catalin_SEO_Helper_ConfigurableSwatches_Productlist</productlist>
87
+ </rewrite>
88
+ </configurableswatches>
89
  <catalin_seo>
90
  <class>Catalin_SEO_Helper</class>
91
  </catalin_seo>
141
  <price_slider>1</price_slider>
142
  <multiple_choice_filters>1</multiple_choice_filters>
143
  <routing_suffix>filter</routing_suffix>
144
+ <nofollow>0</nofollow>
145
  </catalog>
146
  </catalin_seo>
147
  </default>
app/code/community/Catalin/SEO/etc/system.xml CHANGED
@@ -11,7 +11,7 @@
11
  <label>Catalin SEO</label>
12
  <tab>catalin</tab>
13
  <frontend_type>text</frontend_type>
14
- <sort_order>1</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>
@@ -74,7 +74,7 @@
74
  </depends>
75
  </multiple_choice_filters>
76
  <routing_suffix translate="label">
77
- <label>Routing Souffix</label>
78
  <frontend_type>text</frontend_type>
79
  <comment>Used in url generation (it should be alphanumeric) - Do not use slash ( / )</comment>
80
  <backend_model>catalin_seo/system_config_backend_seo_catalog</backend_model>
@@ -86,6 +86,18 @@
86
  <enabled>1</enabled>
87
  </depends>
88
  </routing_suffix>
 
 
 
 
 
 
 
 
 
 
 
 
89
  </fields>
90
  </catalog>
91
  </groups>
11
  <label>Catalin SEO</label>
12
  <tab>catalin</tab>
13
  <frontend_type>text</frontend_type>
14
+ <sort_order>1000</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>
74
  </depends>
75
  </multiple_choice_filters>
76
  <routing_suffix translate="label">
77
+ <label>Routing Suffix</label>
78
  <frontend_type>text</frontend_type>
79
  <comment>Used in url generation (it should be alphanumeric) - Do not use slash ( / )</comment>
80
  <backend_model>catalin_seo/system_config_backend_seo_catalog</backend_model>
86
  <enabled>1</enabled>
87
  </depends>
88
  </routing_suffix>
89
+ <nofollow translate="label">
90
+ <label>Enable Nofollow on Layered Navigation Links</label>
91
+ <frontend_type>select</frontend_type>
92
+ <source_model>adminhtml/system_config_source_yesno</source_model>
93
+ <sort_order>10</sort_order>
94
+ <show_in_default>1</show_in_default>
95
+ <show_in_website>1</show_in_website>
96
+ <show_in_store>1</show_in_store>
97
+ <depends>
98
+ <enabled>1</enabled>
99
+ </depends>
100
+ </nofollow>
101
  </fields>
102
  </catalog>
103
  </groups>
app/design/frontend/base/default/layout/catalin_seo.xml CHANGED
@@ -54,7 +54,7 @@
54
  </action>
55
  <action method="addItem">
56
  <type>skin_js</type>
57
- <name>js/catalin_seo/handler.js</name>
58
  </action>
59
  </reference>
60
  <reference name="search_result_list">
54
  </action>
55
  <action method="addItem">
56
  <type>skin_js</type>
57
+ <name helper="catalin_seo/getSkinJsUrl"/>
58
  </action>
59
  </reference>
60
  <reference name="search_result_list">
app/design/frontend/base/default/template/catalin_seo/catalog/layer/filter.phtml CHANGED
@@ -1,8 +1,11 @@
 
 
 
1
  <ol>
2
  <?php foreach ($this->getItems() as $_item): ?>
3
  <li>
4
  <?php if ($_item->getCount() > 0): ?>
5
- <a href="<?php echo ($_item->isSelected()) ? $_item->getRemoveUrl() : $_item->getUrl() ?>">
6
  <input type="checkbox"<?php if ($_item->isSelected()): ?> checked="checked" <?php endif; ?>/>
7
  <?php echo $_item->getLabel() ?>
8
  <?php if ($this->shouldDisplayProductCount()): ?>
1
+ <?php
2
+ $_nofollow = Mage::helper('catalin_seo')->getNofollow();
3
+ ?>
4
  <ol>
5
  <?php foreach ($this->getItems() as $_item): ?>
6
  <li>
7
  <?php if ($_item->getCount() > 0): ?>
8
+ <a href="<?php echo ($_item->isSelected()) ? $_item->getRemoveUrl() : $_item->getUrl() ?>" <?php echo $_nofollow; ?> >
9
  <input type="checkbox"<?php if ($_item->isSelected()): ?> checked="checked" <?php endif; ?>/>
10
  <?php echo $_item->getLabel() ?>
11
  <?php if ($this->shouldDisplayProductCount()): ?>
app/design/frontend/base/default/template/catalin_seo/catalog/layer/filter/swatches.phtml ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ $_dimHelper = Mage::helper('configurableswatches/swatchdimensions');
4
+ $_swatchInnerWidth = $_dimHelper->getInnerWidth(Mage_ConfigurableSwatches_Helper_Swatchdimensions::AREA_LAYER);
5
+ $_swatchInnerHeight = $_dimHelper->getInnerHeight(Mage_ConfigurableSwatches_Helper_Swatchdimensions::AREA_LAYER);
6
+ $_swatchOuterWidth = $_dimHelper->getOuterWidth(Mage_ConfigurableSwatches_Helper_Swatchdimensions::AREA_LAYER);
7
+ $_swatchOuterHeight = $_dimHelper->getOuterHeight(Mage_ConfigurableSwatches_Helper_Swatchdimensions::AREA_LAYER);
8
+ $_nofollow = Mage::helper('catalin_seo')->getNofollow();
9
+ ?>
10
+
11
+ <ol class="configurable-swatch-list">
12
+ <?php foreach ($this->getItems() as $_item): ?>
13
+ <?php
14
+ $_hasItems = ($_item->getCount() > 0);
15
+ $_label = $_item->getLabel();
16
+ $_swatchUrl = Mage::helper('configurableswatches/productimg')->getGlobalSwatchUrl($_item, $_label, $_swatchInnerWidth, $_swatchInnerHeight);
17
+ $_hasImage = (!empty($_swatchUrl));
18
+ $_linkClass = 'swatch-link' . (($_hasImage) ? ' has-image' : '');
19
+ $_linkCss = 'height:' . $_swatchOuterHeight . 'px; ' . ((!$_hasImage) ? 'min-' : '') . 'width:' . $_swatchOuterWidth . 'px;';
20
+ $_lineHeight = $_swatchOuterHeight + 2;
21
+ ?>
22
+ <li<?php if ($_hasImage){ echo ' style="line-height: ' . $_lineHeight . 'px;"'; } ?>>
23
+ <?php if ($_hasItems): ?>
24
+ <a href="<?php echo $this->urlEscape(($_item->isSelected()) ? $_item->getRemoveUrl() : $_item->getUrl()) ?>" class="<?php echo $_linkClass ?>" <?php echo $_nofollow; ?>>
25
+ <?php else: ?>
26
+ <span class="<?php echo $_linkClass ?>">
27
+ <?php endif; ?>
28
+ <span class="swatch-label"<?php if ($_hasImage){ echo ' style="' . $_linkCss . '"'; } ?>>
29
+ <?php if ($_hasImage): ?>
30
+ <img src="<?php echo $_swatchUrl; ?>" alt="<?php echo $_label; ?>" title="<?php echo $_label ?>" width="<?php echo $_swatchInnerWidth ?>" height="<?php echo $_swatchInnerHeight ?>" />
31
+ <?php else: ?>
32
+ <?php echo $_label; ?>
33
+ <?php endif; ?>
34
+ </span>
35
+ <?php if ($this->shouldDisplayProductCount()): ?>
36
+ <span class="count">(<?php echo $_item->getCount() ?>)</span>
37
+ <?php endif; ?>
38
+ <?php if ($_hasItems): ?>
39
+ </a>
40
+ <?php else: ?>
41
+ </span>
42
+ <?php endif; ?>
43
+ </li>
44
+ <?php endforeach ?>
45
+ </ol>
app/design/frontend/base/default/template/catalin_seo/catalog/product/list.phtml CHANGED
@@ -173,7 +173,8 @@ foreach($_afterChildren as $_afterChildName):
173
  //<![CDATA[
174
  <?php if ($this->helper('catalin_seo')->isAjaxEnabled()): ?>
175
  CatalinSeoHandler.isAjaxEnabled = true;
176
- CatalinSeoHandler.urlSuffix = <?php echo json_encode(Mage::getStoreConfig('catalog/seo/category_url_suffix')) ?>;
 
177
  <?php endif; ?>
178
  CatalinSeoHandler.bindListeners();
179
  //]]>
173
  //<![CDATA[
174
  <?php if ($this->helper('catalin_seo')->isAjaxEnabled()): ?>
175
  CatalinSeoHandler.isAjaxEnabled = true;
176
+ CatalinSeoHandler.urlSuffix = <?php echo json_encode(Mage::helper('catalin_seo')->appendSuffix('', Mage::getStoreConfig('catalog/seo/category_url_suffix'))); ?>;
177
+ CatalinSeoHandler.routingSuffix = <?php echo json_encode(Mage::helper('catalin_seo')->getRoutingSuffix()) ?>;
178
  <?php endif; ?>
179
  CatalinSeoHandler.bindListeners();
180
  //]]>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Catalin_Seo</name>
4
- <version>3.0.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">OSL</license>
7
  <channel>community</channel>
@@ -14,14 +14,19 @@
14
  &lt;li&gt;price slider with submit button&lt;/li&gt;&#xD;
15
  &lt;li&gt;SEO URLs (http://www.example.com/men/shirts/filter/fit/regular,sharp/sleeve_length/long-sleeve.html)&lt;/li&gt;&#xD;
16
  &lt;li&gt;multiple filters for the same attribute&lt;/li&gt;&#xD;
 
 
17
  &lt;/ul&gt;&#xD;
18
  &lt;p&gt;All the above features can be enabled/disabled from backend from "System -&gt; Configuration -&gt; Catalin SEO -&gt; Catalog Layered Navigation"&lt;/p&gt;</description>
19
- <notes>- fix issues introduced with SUPEE6788&#xD;
20
- - other improvements</notes>
 
 
 
21
  <authors><author><name>Catalin Ciobanu</name><user>catalin_ciobanu</user><email>caciobanu@gmail.com</email></author></authors>
22
- <date>2015-11-02</date>
23
- <time>19:23:44</time>
24
- <contents><target name="magecommunity"><dir name="Catalin"><dir name="SEO"><dir name="Block"><dir name="Catalog"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="2f7cdb2d86a331d9810e414213baf724"/><file name="Price.php" hash="ce0827e0a2d5dfda6323242f33956213"/></dir><file name="State.php" hash="5ff4500a94a957ac6013eb7cfff95d3c"/></dir><dir name="Product"><dir name="List"><file name="Pager.php" hash="e4eb82c017956cdb637c98f137a3c2bb"/><file name="Toolbar.php" hash="11c5d2b5ac568ca952fb2fbe6f8b3ee7"/></dir></dir></dir><dir name="CatalogSearch"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="d61b7ab7358d288d9d3ec5648f66b6c7"/></dir></dir></dir><dir name="Enterprise"><dir name="Catalog"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="78c084be7874a6610bc12565842429e1"/></dir></dir></dir><dir name="CatalogSearch"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="fe79783fee5cb3576c3194d8b7c59ce5"/></dir></dir></dir></dir></dir><dir name="Controller"><file name="Router.php" hash="e5ddd71d2f8098c7b3a6619499a7d0d2"/></dir><dir name="Helper"><file name="Data.php" hash="872fabbf012fe028d7ce4d97d967b92c"/><dir name="data"><file name="x00.php" hash="450182e4917ae346e6e64c17ffb63e97"/><file name="x01.php" hash="8e4880febe04e8bbc68c6ee6bc14f112"/><file name="x02.php" hash="919566cf560d5865a4f347cb0cf5ce30"/><file name="x03.php" hash="14dcbdbcde12f478d8657da808fe643d"/><file name="x04.php" hash="b4ca085c2a79244199f079d01c7e2c6b"/><file name="x05.php" hash="3797d79ee103c227f650d39da9bf0fb6"/><file name="x06.php" hash="e4faf649ef87968f2b58f9644687de2c"/><file name="x07.php" hash="5dc7d9d484aa28d77edd934c47cbb38c"/><file name="x09.php" hash="63337e20c61da6c5b5842c39bbfcd033"/><file name="x0a.php" hash="df2383cac3d3164a054d123e428a6ef0"/><file name="x0b.php" hash="55bf005378faa332a988145edfe65bfe"/><file name="x0c.php" hash="d3b45c5fd9d6794907523233e7b5ef73"/><file name="x0d.php" hash="0efd5f8911480341c1c5d9dd2cd96eab"/><file name="x0e.php" hash="00bafa974dd7e72e3cdfa84460146743"/><file name="x0f.php" hash="c5ab298134b47c79f2317ce291f29091"/><file name="x10.php" hash="db5df20e88ef152852d51108a28faf68"/><file name="x11.php" hash="6dbce9e90d9d1c2bffd476fffd9c81ad"/><file name="x12.php" hash="1911521e2aa3cc389e74b33282c80b5a"/><file name="x13.php" hash="ac373e87af343f2f39586f6e01f3bc7a"/><file name="x14.php" hash="618d7ca14ced92c68225108c1fdf3d1f"/><file name="x15.php" hash="6019f2cf672cfcf4486742d640ca0a49"/><file name="x16.php" hash="363b81373dd510f53444d2fca01500d0"/><file name="x17.php" hash="0075d26788b3147ee1b93f1fbe4abcb5"/><file name="x18.php" hash="382dcd23cdbb6a2c1585f91d528aae5c"/><file name="x1e.php" hash="e0d2195ccdb96cf4ea345715de4a2fe0"/><file name="x1f.php" hash="13fffadc97ef3445cbd4969d347b8d32"/><file name="x20.php" hash="ad43141b04fb6d7bab183e13354acb13"/><file name="x21.php" hash="eb84515b6f6be292bf81c576e6ed0b0f"/><file name="x22.php" hash="51ade912682064603ca54b20ecaa9334"/><file name="x23.php" hash="2b153cbc0e81d3151c1ec44e6accd682"/><file name="x24.php" hash="98d4b201e8c670219cc7569e28653d1c"/><file name="x25.php" hash="ee79b56b8b4c5a79af30c30e74b2de22"/><file name="x26.php" hash="88c02bafbf73d21d21c59768419b0c2a"/><file name="x27.php" hash="72bb13e4b32fbf9a174b5d35e6264159"/><file name="x28.php" hash="dcbe588e9d301c627f1dc5ebea623f35"/><file name="x2e.php" hash="a506c372cb82f9e84a514075b788914b"/><file name="x2f.php" hash="577fb5f9d9968471a95906c840c4ec97"/><file name="x30.php" hash="be9214f6b21c651fdd8a7f0ff624826e"/><file name="x31.php" hash="09cb141e4e5b15715b4eb092ff62f6ce"/><file name="x32.php" hash="5781ef2460e4fc93260899c37f3ca6af"/><file name="x33.php" hash="582fcde78a8bb85f11a4c6098b523234"/><file name="x4d.php" hash="8842aa5496002094ae68b2ddc10b3dcc"/><file name="x4e.php" hash="b0d1ed31e7268c2fe7fda95e1eba8bed"/><file name="x4f.php" hash="841625fff58304e2171fef729e6ed695"/><file name="x50.php" hash="dbcc2470e51be09e4d36b8c3ab07767d"/><file name="x51.php" hash="fd96d946cd328ac8e2041b99d64cf37d"/><file name="x52.php" hash="5e3a9fa55c4c8de7d3438b11d930c3ca"/><file name="x53.php" hash="29603023fa46a48c75a5cd5149823894"/><file name="x54.php" hash="3b8da5215b64deecc23f6b51f1c0510d"/><file name="x55.php" hash="06814d53163929c319af8c2a49edcd9b"/><file name="x56.php" hash="2b2ebbadb098a2353ddd659fb8ccb7cd"/><file name="x57.php" hash="725cd6c2ce9ecc6ceaf9aee144741984"/><file name="x58.php" hash="ac31204c457ab7a814ff53939d68447c"/><file name="x59.php" hash="48c0049cb0eb14d13f98cf6c12103db0"/><file name="x5a.php" hash="2ae0dbe06a3d97ae9bcd25fb94fd31c3"/><file name="x5b.php" hash="14f157d36788f292258ed9a83de5da73"/><file name="x5c.php" hash="50bcac83e76c63281f8985320e6e830a"/><file name="x5d.php" hash="862216f95a3590d28cebf287a25c5746"/><file name="x5e.php" hash="fbffe7592bfbe00e9999dde4c83d601d"/><file name="x5f.php" hash="9a87b39043670fdd7cfe07fd49279e22"/><file name="x60.php" hash="e160340e86644fd83c1800026dea241f"/><file name="x61.php" hash="eb3b4d5a8108ba0d1b4f9bd67fadd817"/><file name="x62.php" hash="3e558391bc4ed3768e13e0cace21bcc5"/><file name="x63.php" hash="ade79f321bb4449620e86a77b556a4c4"/><file name="x64.php" hash="664368342658a4aed7853d9a2d65d750"/><file name="x65.php" hash="a1bbc07e58b13d99ed4302ec4e67f4b2"/><file name="x66.php" hash="2f17f60177981e12be650c13f04a49e0"/><file name="x67.php" hash="3a4b21418a78042243721c98f28968d8"/><file name="x68.php" hash="1b8b4ce217986cc3f7550f16e8db1780"/><file name="x69.php" hash="6def6c5b5e469c806a6b38827d0c34f5"/><file name="x6a.php" hash="9fae911d681a0c625fc6e5151ae44d28"/><file name="x6b.php" hash="245472ec4357e0b25da3d16140bcf6d1"/><file name="x6c.php" hash="28fc6a8e4660a0b50566e850e2afc6a3"/><file name="x6d.php" hash="18f83b6b5a6f55520f975057fef4fa3a"/><file name="x6e.php" hash="df5ab12708cd053e6ec8b2228380adbb"/><file name="x6f.php" hash="866c65a813461f43324a24cb463cf4bb"/><file name="x70.php" hash="daf8e99c570287fa4bdac6c353884937"/><file name="x71.php" hash="6b136f7c2a07422d1c0120ff39677b8f"/><file name="x72.php" hash="3312f70e586836e16b3802d24f828888"/><file name="x73.php" hash="010e32351d3ee643e8b4464d391eb51f"/><file name="x74.php" hash="d9c0fb5bb46813b9fd7078d2054ca0b1"/><file name="x75.php" hash="34ee63177ea043bea198fe191327d6e0"/><file name="x76.php" hash="8e1cd7e7db6f45f2e1288ebb90eb31e6"/><file name="x77.php" hash="9e295e80d931332ace899152972f34a0"/><file name="x78.php" hash="ef15567cc00457ca734d18a021b5e52d"/><file name="x79.php" hash="41467fa793d377d10980ab2256993a29"/><file name="x7a.php" hash="bc618f669de10280de11c8678f4d651f"/><file name="x7b.php" hash="d065d37d486d53273b18b0b9f9dd86b2"/><file name="x7c.php" hash="5921121839baed16b78cc36145b52a62"/><file name="x7d.php" hash="f0077edfa1f9859d0f14d3bab15bef0c"/><file name="x7e.php" hash="63d1daf0b583b4c4a66c011894a8cc98"/><file name="x7f.php" hash="c688c38a38e171755e43e905a69e339a"/><file name="x80.php" hash="9070a439e5c0b2ea086f11863746cafb"/><file name="x81.php" hash="06f4d64caf41f3d985caea14ab3a31b0"/><file name="x82.php" hash="6cb491f40badaeaa3f9f292f5bfca217"/><file name="x83.php" hash="d9d39c5e7130705f69b46647f5af8250"/><file name="x84.php" hash="38c71fc265e5b1d431cf2b58e163eaa2"/><file name="x85.php" hash="b112d31fa357b3d3b67842a77cb5310a"/><file name="x86.php" hash="d7fa4167950da670cadd2d451f1a2edb"/><file name="x87.php" hash="80a3ab6690073fe3775ec81f2ee35013"/><file name="x88.php" hash="e05489231b1d4915c42997dec89b15cb"/><file name="x89.php" hash="19d3087264c2dbed0ffa4cd47c6f2853"/><file name="x8a.php" hash="093885354302b9898b8851e09444fd96"/><file name="x8b.php" hash="05588068116c641f70c7e459632f5394"/><file name="x8c.php" hash="b098af3f0e138b56ab8411b2cde600b9"/><file name="x8d.php" hash="a9cb4c30252f615dc452041ccf651467"/><file name="x8e.php" hash="53a2cd6937d88c19f8e1ae228a65c830"/><file name="x8f.php" hash="4e0c37fe92418505c7c4612eb8251e3a"/><file name="x90.php" hash="1112c376c17c3aba6f958dbff6d15362"/><file name="x91.php" hash="f9eeb625c3c66af15a8d82f1db0cdc15"/><file name="x92.php" hash="3be097a2d595bf46323de0661161846c"/><file name="x93.php" hash="beac90d08e9c9753c90afd26db2ad1d0"/><file name="x94.php" hash="45555c59ed7e9e9a0abc470d272835ad"/><file name="x95.php" hash="8ee187be6fbeb7fe3297baa9c89ea6dd"/><file name="x96.php" hash="57b310726908124b27f6ac0d7a5aa95b"/><file name="x97.php" hash="fcfa660695fc43f0ef974416d6417ec2"/><file name="x98.php" hash="88b0e6407503716e4e8d221f77e63f00"/><file name="x99.php" hash="a0924c478967313bd96ca5bc62b955a0"/><file name="x9a.php" hash="d8e1f4684908ffea274e7d62f9b7f210"/><file name="x9b.php" hash="ff855336ea0962b81d9410eea22a8eca"/><file name="x9c.php" hash="9866a2f684ac602cac02ba02f66bdacf"/><file name="x9d.php" hash="64b8d5235c86678f88b3adc1fff2b944"/><file name="x9e.php" hash="c9fad776841bc34fc5fd7700797b65f4"/><file name="x9f.php" hash="f1c6d6cbb8ac5fb5c76e7489bef8774d"/><file name="xa0.php" hash="f27b2025d8a2dc84d5821ee0de443243"/><file name="xa1.php" hash="9079b3e07655b0536153c70d09f2dd41"/><file name="xa2.php" hash="43abb79aa36b6575be2072aca536e770"/><file name="xa3.php" hash="ac0f7f693a8b9b15c14c7e93d16e44d4"/><file name="xa4.php" hash="673c5ca4d9faa59ae7c1fbde0618714d"/><file name="xac.php" hash="113f809d9d7c474d80588d240639dc2f"/><file name="xad.php" hash="16010ec214c0bd856ff4880aba557b18"/><file name="xae.php" hash="c01cb4a18ef68ae1e793e947857e6a72"/><file name="xaf.php" hash="98f242cb0bc7429a5a450e9c82d462db"/><file name="xb0.php" hash="7f37bfe7e9782a8702a8bac106a45627"/><file name="xb1.php" hash="f7105123854bb619b232c2fd9502715a"/><file name="xb2.php" hash="824a10352cf082b71df114bc9362eb3c"/><file name="xb3.php" hash="fabb7f1a18d2632127f405ed5b419f61"/><file name="xb4.php" hash="eff9e802c59769e6f6255ebe3e4c5cb6"/><file name="xb5.php" hash="cbf6d291c99528a3564c1d3ff3a777b3"/><file name="xb6.php" hash="b0d1ab9d95e1e6e82c69a399311df856"/><file name="xb7.php" hash="a685d5656e8f31212e01f64afc6298fc"/><file name="xb8.php" hash="fd7a9295e32870eec0889695a6be3f6c"/><file name="xb9.php" hash="abb9c74fe83846f07826bf6044640e23"/><file name="xba.php" hash="36d7426647eedf90b52cf38f54c1cb0e"/><file name="xbb.php" hash="d547091bb8a6390ef90957c7687b0ab4"/><file name="xbc.php" hash="078a5499d2429ae0460d0277bbdb525d"/><file name="xbd.php" hash="bd9b10559360179d75cd84a389c75f15"/><file name="xbe.php" hash="624c0d43f2f9cf75a1e7da423ef46b07"/><file name="xbf.php" hash="51213b7f0991eb46aee2a1ce730b76e7"/><file name="xc0.php" hash="1a8012c0f8d16de7a93deb57d9907fc0"/><file name="xc1.php" hash="17faeb0f134d296e73b87d31820c7b45"/><file name="xc2.php" hash="95182ef9085fceca36ca1fcd60b6532f"/><file name="xc3.php" hash="a472ff382a6d1b5b43535f0ea339a06d"/><file name="xc4.php" hash="9afbcb6b0f0664ff70f896472dd699cf"/><file name="xc5.php" hash="141d244dc5372cd0abb688106041166e"/><file name="xc6.php" hash="a938470c97c22df1333b1f4de59d10fc"/><file name="xc7.php" hash="6e9e2dbc3b5f8d102ea63fc5599900d2"/><file name="xc8.php" hash="e6a8179a9e4b497e8d04e8ca6240a5d8"/><file name="xc9.php" hash="bf4e9f9324133fa15dd925b4558f258e"/><file name="xca.php" hash="897dd8dd4c588ca9cd34f5b61b1323a9"/><file name="xcb.php" hash="0df0f5b354a5c251e985dad8b7eafdd3"/><file name="xcc.php" hash="910fed76843cbed1b83bdc42b0217768"/><file name="xcd.php" hash="517dd294b9680ef27979cf492274d91b"/><file name="xce.php" hash="e5039314ab0cc94966820e1a7f986e40"/><file name="xcf.php" hash="b346e1ec9989d5c9995330982bbf1247"/><file name="xd0.php" hash="03586ec3fe0a918af9a5b2e0deec7177"/><file name="xd1.php" hash="a817a0340fbc8600e578218ffedd8f6d"/><file name="xd2.php" hash="41024477c699d431f68d8f56c3f6e85b"/><file name="xd3.php" hash="58fb27e572fa053f32920df9e7cd5a34"/><file name="xd4.php" hash="cd0e76107f22781373ed430500c38fc8"/><file name="xd5.php" hash="5d2258b3806920efde76e95838d5f4c3"/><file name="xd6.php" hash="673fe086f96039b1eb010fcb22ef5028"/><file name="xd7.php" hash="e23e0c525b319c846f92fc43bbb482ba"/><file name="xf9.php" hash="5ce24abde1c4f80a24f9af851fd5ae52"/><file name="xfa.php" hash="0beca78d4119f03af6f6af953239ed40"/><file name="xfb.php" hash="add34b1f16d2a6d2beb6eb9d42a89e32"/><file name="xfc.php" hash="04c1d8d478177fa22b4ccfd75a6f7083"/><file name="xfd.php" hash="6e99507389f70dc22fc5b88086edcaa5"/><file name="xfe.php" hash="6172c6780c7a848d8529e65fb08ccfa6"/><file name="xff.php" hash="6731af770a26cad1dcb3c370aa50aea8"/></dir></dir><dir name="Model"><dir name="Catalog"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="a095ec8b9195e35fb65946bbbcd70992"/><file name="Category.php" hash="98c11d32fc67d0cae132b72461d6c5df"/><file name="Item.php" hash="7f84daa98c084341d4f6bc877ca4160f"/><file name="Price.php" hash="a0b83acef25498dcd4e7215101296aba"/></dir></dir><file name="Layer.php" hash="22d221050dbb92f2e4ea99d4fbfb4f06"/><dir name="Resource"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="8347876511185a48c28f8fe8533012a8"/><file name="Price.php" hash="4e1643e73d8920e244394e07960cd906"/></dir></dir></dir></dir><dir name="CatalogSearch"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="5ce335a514b240c66a64ef255caec0da"/></dir></dir><file name="Layer.php" hash="46d36c9f22e2b18b729017f9fc300c38"/></dir><dir name="Enterprise"><dir name="Catalog"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="45addbc9c7a408c1be60a0a6b49e53e2"/><file name="Category.php" hash="18bc9bc411b9aa47ffd0622095d58592"/></dir></dir></dir></dir><dir name="Indexer"><file name="Attribute.php" hash="c4fbbbf14e8e1da8aa9cd93d5ac11342"/></dir><dir name="Resource"><dir name="Attribute"><file name="Urlkey.php" hash="bd0abcaf35f5140263428262e4069878"/></dir><dir name="Indexer"><file name="Attribute.php" hash="3f292eb6253661504d900d747ca45c59"/></dir></dir><dir name="System"><dir name="Config"><dir name="Backend"><dir name="Seo"><file name="Catalog.php" hash="033eb9e049fb896dcbf4430474540ec2"/></dir></dir></dir></dir></dir><dir name="controllers"><file name="CategoryController.php" hash="1e527318a6977d80ffd4ee0fe112115f"/><file name="ResultController.php" hash="bf5dfcb3e69a9033d7a16726855d9f8d"/></dir><dir name="etc"><file name="adminhtml.xml" hash="1719b869d3153268f6d020da7fd25544"/><file name="config.xml" hash="6ba1606ebcf9d5b3d40f3626135b4e52"/><file name="system.xml" hash="e24e6e9f466fb03af5295f0521a4d357"/></dir><dir name="sql"><dir name="catalin_seo_setup"><file name="install-2.0.0.php" hash="999b376f81cf088a6004d1d0ff6c69fb"/><file name="upgrade-2.0.0-3.0.0.php" hash="c40909daa09e186e6bd4893b59d28ef1"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="catalin_seo.xml" hash="dfad30bc85d98828f0e9011f883b74c1"/></dir><dir name="template"><dir name="catalin_seo"><dir><dir name="catalog"><dir name="layer"><file name="filter.phtml" hash="cc5acd4dbad707f881a74726cd91857c"/><file name="price.phtml" hash="9c14c521b8cfef1c9b3e0ecc88ac0d95"/><file name="view.phtml" hash="561a2287bdbea3653c6a003706819b07"/></dir><dir name="product"><file name="list.phtml" hash="8e779537d1b79e8382dc85a1d5ff1c7b"/></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="catalin_seo"><file name="style.css" hash="fca26e893de5054621ad8f8722371fc7"/></dir></dir><dir name="images"><dir name="catalin_seo"><file name="bkg_slider.png" hash="898eb55265200836a479588ed54e1309"/><file name="slider.png" hash="b95e0855075c3a854a220dc886445ea0"/></dir></dir><dir name="js"><dir name="catalin_seo"><file name="handler-ee-rwd.js" hash="167dcde29e9d2c1950ea5976060f1108"/><file name="handler.js" hash="35b5eb60d87a91c1e6483be2ddae87db"/><file name="native.history.js" hash="5d8d6becc18cc0c370aa1a562e532ade"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Catalin_SEO.xml" hash="d8056befe6d816e8a3f9db445f22670a"/></dir></target></contents>
25
  <compatible/>
26
  <dependencies><required><php><min>5.3.0</min><max>7.0.0</max></php></required></dependencies>
27
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Catalin_Seo</name>
4
+ <version>3.1.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">OSL</license>
7
  <channel>community</channel>
14
  &lt;li&gt;price slider with submit button&lt;/li&gt;&#xD;
15
  &lt;li&gt;SEO URLs (http://www.example.com/men/shirts/filter/fit/regular,sharp/sleeve_length/long-sleeve.html)&lt;/li&gt;&#xD;
16
  &lt;li&gt;multiple filters for the same attribute&lt;/li&gt;&#xD;
17
+ &lt;li&gt;supports Magento Configurable Swatches&lt;/li&gt;&#xD;
18
+ &lt;li&gt;possibility to add "nofollow" on layered navigation pages&lt;/li&gt;&#xD;
19
  &lt;/ul&gt;&#xD;
20
  &lt;p&gt;All the above features can be enabled/disabled from backend from "System -&gt; Configuration -&gt; Catalin SEO -&gt; Catalog Layered Navigation"&lt;/p&gt;</description>
21
+ <notes>- Added support for Magento Configurable Swatches.&#xD;
22
+ - added possibility to add "nofollow" on layered navigation pages.&#xD;
23
+ - Fixed issue with multiple categories having the same url key.&#xD;
24
+ - Fixed issue with multiple attributes having the same label. This led to having attributes with the same url_key.&#xD;
25
+ - Use the store label instead of the admin label of the attribute option to generate the url_value.</notes>
26
  <authors><author><name>Catalin Ciobanu</name><user>catalin_ciobanu</user><email>caciobanu@gmail.com</email></author></authors>
27
+ <date>2016-04-14</date>
28
+ <time>18:48:15</time>
29
+ <contents><target name="magecommunity"><dir name="Catalin"><dir name="SEO"><dir name="Block"><dir name="Catalog"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="4c2ce764b158d9da57bee09ce884ef28"/><file name="Price.php" hash="17d3b442d428ab1cc06451fae7349085"/></dir><file name="State.php" hash="85509c1200f936042bccd9784fddb610"/></dir><dir name="Product"><dir name="List"><file name="Pager.php" hash="39c10d3a573b1d905fc3e63feb0d5176"/><file name="Toolbar.php" hash="0a1ed1e69818834cf3211a46ed668505"/></dir></dir></dir><dir name="CatalogSearch"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="f8f1de9a6a90a31f86657499fb1c5b0f"/></dir></dir></dir><dir name="ConfigurableSwatches"><dir name="Catalog"><dir name="Layer"><dir name="State"><file name="Swatch.php" hash="ca03c9a37eef2a41e28f4c93935cf3c4"/></dir></dir></dir></dir><dir name="Enterprise"><dir name="Catalog"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="e2626608bb00b3c1de769cff2c68a912"/></dir></dir></dir><dir name="CatalogSearch"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="3b3874577300d5b88689eedb01346712"/></dir></dir></dir></dir></dir><dir name="Controller"><file name="Router.php" hash="c8e2a69962c3220dfe5f46916922668b"/></dir><dir name="Helper"><dir name="ConfigurableSwatches"><file name="Productlist.php" hash="1b4c40c87d701192d2571a42ef4ad98c"/></dir><file name="Data.php" hash="9e77554e5277bad4f493d6331730d3c5"/><dir name="data"><file name="x00.php" hash="450182e4917ae346e6e64c17ffb63e97"/><file name="x01.php" hash="8e4880febe04e8bbc68c6ee6bc14f112"/><file name="x02.php" hash="919566cf560d5865a4f347cb0cf5ce30"/><file name="x03.php" hash="14dcbdbcde12f478d8657da808fe643d"/><file name="x04.php" hash="b4ca085c2a79244199f079d01c7e2c6b"/><file name="x05.php" hash="3797d79ee103c227f650d39da9bf0fb6"/><file name="x06.php" hash="e4faf649ef87968f2b58f9644687de2c"/><file name="x07.php" hash="5dc7d9d484aa28d77edd934c47cbb38c"/><file name="x09.php" hash="63337e20c61da6c5b5842c39bbfcd033"/><file name="x0a.php" hash="df2383cac3d3164a054d123e428a6ef0"/><file name="x0b.php" hash="55bf005378faa332a988145edfe65bfe"/><file name="x0c.php" hash="d3b45c5fd9d6794907523233e7b5ef73"/><file name="x0d.php" hash="0efd5f8911480341c1c5d9dd2cd96eab"/><file name="x0e.php" hash="00bafa974dd7e72e3cdfa84460146743"/><file name="x0f.php" hash="c5ab298134b47c79f2317ce291f29091"/><file name="x10.php" hash="db5df20e88ef152852d51108a28faf68"/><file name="x11.php" hash="6dbce9e90d9d1c2bffd476fffd9c81ad"/><file name="x12.php" hash="1911521e2aa3cc389e74b33282c80b5a"/><file name="x13.php" hash="ac373e87af343f2f39586f6e01f3bc7a"/><file name="x14.php" hash="618d7ca14ced92c68225108c1fdf3d1f"/><file name="x15.php" hash="6019f2cf672cfcf4486742d640ca0a49"/><file name="x16.php" hash="363b81373dd510f53444d2fca01500d0"/><file name="x17.php" hash="0075d26788b3147ee1b93f1fbe4abcb5"/><file name="x18.php" hash="382dcd23cdbb6a2c1585f91d528aae5c"/><file name="x1e.php" hash="e0d2195ccdb96cf4ea345715de4a2fe0"/><file name="x1f.php" hash="13fffadc97ef3445cbd4969d347b8d32"/><file name="x20.php" hash="ad43141b04fb6d7bab183e13354acb13"/><file name="x21.php" hash="eb84515b6f6be292bf81c576e6ed0b0f"/><file name="x22.php" hash="51ade912682064603ca54b20ecaa9334"/><file name="x23.php" hash="2b153cbc0e81d3151c1ec44e6accd682"/><file name="x24.php" hash="98d4b201e8c670219cc7569e28653d1c"/><file name="x25.php" hash="ee79b56b8b4c5a79af30c30e74b2de22"/><file name="x26.php" hash="88c02bafbf73d21d21c59768419b0c2a"/><file name="x27.php" hash="72bb13e4b32fbf9a174b5d35e6264159"/><file name="x28.php" hash="dcbe588e9d301c627f1dc5ebea623f35"/><file name="x2e.php" hash="a506c372cb82f9e84a514075b788914b"/><file name="x2f.php" hash="577fb5f9d9968471a95906c840c4ec97"/><file name="x30.php" hash="be9214f6b21c651fdd8a7f0ff624826e"/><file name="x31.php" hash="09cb141e4e5b15715b4eb092ff62f6ce"/><file name="x32.php" hash="5781ef2460e4fc93260899c37f3ca6af"/><file name="x33.php" hash="582fcde78a8bb85f11a4c6098b523234"/><file name="x4d.php" hash="8842aa5496002094ae68b2ddc10b3dcc"/><file name="x4e.php" hash="b0d1ed31e7268c2fe7fda95e1eba8bed"/><file name="x4f.php" hash="841625fff58304e2171fef729e6ed695"/><file name="x50.php" hash="dbcc2470e51be09e4d36b8c3ab07767d"/><file name="x51.php" hash="fd96d946cd328ac8e2041b99d64cf37d"/><file name="x52.php" hash="5e3a9fa55c4c8de7d3438b11d930c3ca"/><file name="x53.php" hash="29603023fa46a48c75a5cd5149823894"/><file name="x54.php" hash="3b8da5215b64deecc23f6b51f1c0510d"/><file name="x55.php" hash="06814d53163929c319af8c2a49edcd9b"/><file name="x56.php" hash="2b2ebbadb098a2353ddd659fb8ccb7cd"/><file name="x57.php" hash="725cd6c2ce9ecc6ceaf9aee144741984"/><file name="x58.php" hash="ac31204c457ab7a814ff53939d68447c"/><file name="x59.php" hash="48c0049cb0eb14d13f98cf6c12103db0"/><file name="x5a.php" hash="2ae0dbe06a3d97ae9bcd25fb94fd31c3"/><file name="x5b.php" hash="14f157d36788f292258ed9a83de5da73"/><file name="x5c.php" hash="50bcac83e76c63281f8985320e6e830a"/><file name="x5d.php" hash="862216f95a3590d28cebf287a25c5746"/><file name="x5e.php" hash="fbffe7592bfbe00e9999dde4c83d601d"/><file name="x5f.php" hash="9a87b39043670fdd7cfe07fd49279e22"/><file name="x60.php" hash="e160340e86644fd83c1800026dea241f"/><file name="x61.php" hash="eb3b4d5a8108ba0d1b4f9bd67fadd817"/><file name="x62.php" hash="3e558391bc4ed3768e13e0cace21bcc5"/><file name="x63.php" hash="ade79f321bb4449620e86a77b556a4c4"/><file name="x64.php" hash="664368342658a4aed7853d9a2d65d750"/><file name="x65.php" hash="a1bbc07e58b13d99ed4302ec4e67f4b2"/><file name="x66.php" hash="2f17f60177981e12be650c13f04a49e0"/><file name="x67.php" hash="3a4b21418a78042243721c98f28968d8"/><file name="x68.php" hash="1b8b4ce217986cc3f7550f16e8db1780"/><file name="x69.php" hash="6def6c5b5e469c806a6b38827d0c34f5"/><file name="x6a.php" hash="9fae911d681a0c625fc6e5151ae44d28"/><file name="x6b.php" hash="245472ec4357e0b25da3d16140bcf6d1"/><file name="x6c.php" hash="28fc6a8e4660a0b50566e850e2afc6a3"/><file name="x6d.php" hash="18f83b6b5a6f55520f975057fef4fa3a"/><file name="x6e.php" hash="df5ab12708cd053e6ec8b2228380adbb"/><file name="x6f.php" hash="866c65a813461f43324a24cb463cf4bb"/><file name="x70.php" hash="daf8e99c570287fa4bdac6c353884937"/><file name="x71.php" hash="6b136f7c2a07422d1c0120ff39677b8f"/><file name="x72.php" hash="3312f70e586836e16b3802d24f828888"/><file name="x73.php" hash="010e32351d3ee643e8b4464d391eb51f"/><file name="x74.php" hash="d9c0fb5bb46813b9fd7078d2054ca0b1"/><file name="x75.php" hash="34ee63177ea043bea198fe191327d6e0"/><file name="x76.php" hash="8e1cd7e7db6f45f2e1288ebb90eb31e6"/><file name="x77.php" hash="9e295e80d931332ace899152972f34a0"/><file name="x78.php" hash="ef15567cc00457ca734d18a021b5e52d"/><file name="x79.php" hash="41467fa793d377d10980ab2256993a29"/><file name="x7a.php" hash="bc618f669de10280de11c8678f4d651f"/><file name="x7b.php" hash="d065d37d486d53273b18b0b9f9dd86b2"/><file name="x7c.php" hash="5921121839baed16b78cc36145b52a62"/><file name="x7d.php" hash="f0077edfa1f9859d0f14d3bab15bef0c"/><file name="x7e.php" hash="63d1daf0b583b4c4a66c011894a8cc98"/><file name="x7f.php" hash="c688c38a38e171755e43e905a69e339a"/><file name="x80.php" hash="9070a439e5c0b2ea086f11863746cafb"/><file name="x81.php" hash="06f4d64caf41f3d985caea14ab3a31b0"/><file name="x82.php" hash="6cb491f40badaeaa3f9f292f5bfca217"/><file name="x83.php" hash="d9d39c5e7130705f69b46647f5af8250"/><file name="x84.php" hash="38c71fc265e5b1d431cf2b58e163eaa2"/><file name="x85.php" hash="b112d31fa357b3d3b67842a77cb5310a"/><file name="x86.php" hash="d7fa4167950da670cadd2d451f1a2edb"/><file name="x87.php" hash="80a3ab6690073fe3775ec81f2ee35013"/><file name="x88.php" hash="e05489231b1d4915c42997dec89b15cb"/><file name="x89.php" hash="19d3087264c2dbed0ffa4cd47c6f2853"/><file name="x8a.php" hash="093885354302b9898b8851e09444fd96"/><file name="x8b.php" hash="05588068116c641f70c7e459632f5394"/><file name="x8c.php" hash="b098af3f0e138b56ab8411b2cde600b9"/><file name="x8d.php" hash="a9cb4c30252f615dc452041ccf651467"/><file name="x8e.php" hash="53a2cd6937d88c19f8e1ae228a65c830"/><file name="x8f.php" hash="4e0c37fe92418505c7c4612eb8251e3a"/><file name="x90.php" hash="1112c376c17c3aba6f958dbff6d15362"/><file name="x91.php" hash="f9eeb625c3c66af15a8d82f1db0cdc15"/><file name="x92.php" hash="3be097a2d595bf46323de0661161846c"/><file name="x93.php" hash="beac90d08e9c9753c90afd26db2ad1d0"/><file name="x94.php" hash="45555c59ed7e9e9a0abc470d272835ad"/><file name="x95.php" hash="8ee187be6fbeb7fe3297baa9c89ea6dd"/><file name="x96.php" hash="57b310726908124b27f6ac0d7a5aa95b"/><file name="x97.php" hash="fcfa660695fc43f0ef974416d6417ec2"/><file name="x98.php" hash="88b0e6407503716e4e8d221f77e63f00"/><file name="x99.php" hash="a0924c478967313bd96ca5bc62b955a0"/><file name="x9a.php" hash="d8e1f4684908ffea274e7d62f9b7f210"/><file name="x9b.php" hash="ff855336ea0962b81d9410eea22a8eca"/><file name="x9c.php" hash="9866a2f684ac602cac02ba02f66bdacf"/><file name="x9d.php" hash="64b8d5235c86678f88b3adc1fff2b944"/><file name="x9e.php" hash="c9fad776841bc34fc5fd7700797b65f4"/><file name="x9f.php" hash="f1c6d6cbb8ac5fb5c76e7489bef8774d"/><file name="xa0.php" hash="f27b2025d8a2dc84d5821ee0de443243"/><file name="xa1.php" hash="9079b3e07655b0536153c70d09f2dd41"/><file name="xa2.php" hash="43abb79aa36b6575be2072aca536e770"/><file name="xa3.php" hash="ac0f7f693a8b9b15c14c7e93d16e44d4"/><file name="xa4.php" hash="673c5ca4d9faa59ae7c1fbde0618714d"/><file name="xac.php" hash="113f809d9d7c474d80588d240639dc2f"/><file name="xad.php" hash="16010ec214c0bd856ff4880aba557b18"/><file name="xae.php" hash="c01cb4a18ef68ae1e793e947857e6a72"/><file name="xaf.php" hash="98f242cb0bc7429a5a450e9c82d462db"/><file name="xb0.php" hash="7f37bfe7e9782a8702a8bac106a45627"/><file name="xb1.php" hash="f7105123854bb619b232c2fd9502715a"/><file name="xb2.php" hash="824a10352cf082b71df114bc9362eb3c"/><file name="xb3.php" hash="fabb7f1a18d2632127f405ed5b419f61"/><file name="xb4.php" hash="eff9e802c59769e6f6255ebe3e4c5cb6"/><file name="xb5.php" hash="cbf6d291c99528a3564c1d3ff3a777b3"/><file name="xb6.php" hash="b0d1ab9d95e1e6e82c69a399311df856"/><file name="xb7.php" hash="a685d5656e8f31212e01f64afc6298fc"/><file name="xb8.php" hash="fd7a9295e32870eec0889695a6be3f6c"/><file name="xb9.php" hash="abb9c74fe83846f07826bf6044640e23"/><file name="xba.php" hash="36d7426647eedf90b52cf38f54c1cb0e"/><file name="xbb.php" hash="d547091bb8a6390ef90957c7687b0ab4"/><file name="xbc.php" hash="078a5499d2429ae0460d0277bbdb525d"/><file name="xbd.php" hash="bd9b10559360179d75cd84a389c75f15"/><file name="xbe.php" hash="624c0d43f2f9cf75a1e7da423ef46b07"/><file name="xbf.php" hash="51213b7f0991eb46aee2a1ce730b76e7"/><file name="xc0.php" hash="1a8012c0f8d16de7a93deb57d9907fc0"/><file name="xc1.php" hash="17faeb0f134d296e73b87d31820c7b45"/><file name="xc2.php" hash="95182ef9085fceca36ca1fcd60b6532f"/><file name="xc3.php" hash="a472ff382a6d1b5b43535f0ea339a06d"/><file name="xc4.php" hash="9afbcb6b0f0664ff70f896472dd699cf"/><file name="xc5.php" hash="141d244dc5372cd0abb688106041166e"/><file name="xc6.php" hash="a938470c97c22df1333b1f4de59d10fc"/><file name="xc7.php" hash="6e9e2dbc3b5f8d102ea63fc5599900d2"/><file name="xc8.php" hash="e6a8179a9e4b497e8d04e8ca6240a5d8"/><file name="xc9.php" hash="bf4e9f9324133fa15dd925b4558f258e"/><file name="xca.php" hash="897dd8dd4c588ca9cd34f5b61b1323a9"/><file name="xcb.php" hash="0df0f5b354a5c251e985dad8b7eafdd3"/><file name="xcc.php" hash="910fed76843cbed1b83bdc42b0217768"/><file name="xcd.php" hash="517dd294b9680ef27979cf492274d91b"/><file name="xce.php" hash="e5039314ab0cc94966820e1a7f986e40"/><file name="xcf.php" hash="b346e1ec9989d5c9995330982bbf1247"/><file name="xd0.php" hash="03586ec3fe0a918af9a5b2e0deec7177"/><file name="xd1.php" hash="a817a0340fbc8600e578218ffedd8f6d"/><file name="xd2.php" hash="41024477c699d431f68d8f56c3f6e85b"/><file name="xd3.php" hash="58fb27e572fa053f32920df9e7cd5a34"/><file name="xd4.php" hash="cd0e76107f22781373ed430500c38fc8"/><file name="xd5.php" hash="5d2258b3806920efde76e95838d5f4c3"/><file name="xd6.php" hash="673fe086f96039b1eb010fcb22ef5028"/><file name="xd7.php" hash="e23e0c525b319c846f92fc43bbb482ba"/><file name="xf9.php" hash="5ce24abde1c4f80a24f9af851fd5ae52"/><file name="xfa.php" hash="0beca78d4119f03af6f6af953239ed40"/><file name="xfb.php" hash="add34b1f16d2a6d2beb6eb9d42a89e32"/><file name="xfc.php" hash="04c1d8d478177fa22b4ccfd75a6f7083"/><file name="xfd.php" hash="6e99507389f70dc22fc5b88086edcaa5"/><file name="xfe.php" hash="6172c6780c7a848d8529e65fb08ccfa6"/><file name="xff.php" hash="6731af770a26cad1dcb3c370aa50aea8"/></dir></dir><dir name="Model"><dir name="Catalog"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="44a44ede29dd12f68210c9aa39172a60"/><file name="Category.php" hash="fd05470a5f02ed91423e6fc6cbe74268"/><file name="Item.php" hash="fa1a01ea22b04b07994552f77165ed71"/><file name="Price.php" hash="e0baffe4f0771904435bbcdb7d26d334"/></dir></dir><file name="Layer.php" hash="fe8cceb7cddd3614232a33741244f0dd"/><dir name="Resource"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="ec5b16e7ac8f3114e5597a840a82557e"/><file name="Price.php" hash="cf7596cfdc1c07d617471c53a38b7bc7"/></dir></dir></dir></dir><dir name="CatalogSearch"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="b9c50e30741608e5ea40595e13f38f50"/></dir></dir><file name="Layer.php" hash="3b694b045f339ac1646935902dab41ca"/></dir><dir name="Enterprise"><dir name="Catalog"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="af25932ecdbabc53ab09d0cc3f5dabc7"/><file name="Category.php" hash="51e3df2a35b6ac6d890c5078ffd5d0ee"/></dir></dir></dir></dir><dir name="Indexer"><file name="Attribute.php" hash="2f83425173480b1c6ec3b7a11bb0776c"/></dir><dir name="Resource"><dir name="Attribute"><file name="Urlkey.php" hash="6d71d3b665104255cca241c231f37dc9"/></dir><dir name="Indexer"><file name="Attribute.php" hash="d16d6548876c91398c2b860e8e87a35c"/></dir></dir><dir name="System"><dir name="Config"><dir name="Backend"><dir name="Seo"><file name="Catalog.php" hash="0440edbcf687f5655f5014c0324ef947"/></dir></dir></dir></dir></dir><dir name="controllers"><file name="CategoryController.php" hash="7d3d5b463d7123d3c0c368c4e08bab19"/><file name="ResultController.php" hash="f6b8f3403117641da37dbe1dd5771fb0"/></dir><dir name="etc"><file name="adminhtml.xml" hash="1719b869d3153268f6d020da7fd25544"/><file name="config.xml" hash="bb98330af5f606223c80b28972aafa96"/><file name="system.xml" hash="c801a1108dfc1de78f55a2e586f8afee"/></dir><dir name="sql"><dir name="catalin_seo_setup"><file name="install-2.0.0.php" hash="999b376f81cf088a6004d1d0ff6c69fb"/><file name="upgrade-2.0.0-3.0.0.php" hash="c40909daa09e186e6bd4893b59d28ef1"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="catalin_seo.xml" hash="60c6a543b4c4c1e256154cf8f51b027a"/></dir><dir name="template"><dir name="catalin_seo"><dir><dir name="catalog"><dir name="layer"><dir name="filter"><file name="swatches.phtml" hash="0636741f47a3e0b09943f05b1dd02014"/></dir><file name="filter.phtml" hash="bfe0fce228c84d439e2c76632d125dab"/><file name="price.phtml" hash="9c14c521b8cfef1c9b3e0ecc88ac0d95"/><file name="view.phtml" hash="561a2287bdbea3653c6a003706819b07"/></dir><dir name="product"><file name="list.phtml" hash="82a01442249b0a06f460fcb8cbecfbcb"/></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="catalin_seo"><file name="style.css" hash="fca26e893de5054621ad8f8722371fc7"/></dir></dir><dir name="images"><dir name="catalin_seo"><file name="bkg_slider.png" hash="898eb55265200836a479588ed54e1309"/><file name="slider.png" hash="b95e0855075c3a854a220dc886445ea0"/></dir></dir><dir name="js"><dir name="catalin_seo"><file name="handler-ee-rwd.js" hash="36355a43f5ba94b67895f72fa1b0c852"/><file name="handler.js" hash="9e1b5d1def9f6ea60adee2840a53abf3"/><file name="native.history.js" hash="5d8d6becc18cc0c370aa1a562e532ade"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Catalin_SEO.xml" hash="d8056befe6d816e8a3f9db445f22670a"/></dir></target></contents>
30
  <compatible/>
31
  <dependencies><required><php><min>5.3.0</min><max>7.0.0</max></php></required></dependencies>
32
  </package>
skin/frontend/base/default/js/catalin_seo/handler-ee-rwd.js CHANGED
@@ -31,23 +31,7 @@ var CatalinSeoHandler = {
31
  url = $(el).getValue();
32
  }
33
 
34
- var suffix = CatalinSeoHandler.urlSuffix;
35
- if (suffix !== null && url.substr(-suffix.length) == suffix) {
36
- // Add to the query url so that FPC handles correctly.
37
- var urlWithoutSuffix = url.substr(0, url.length - suffix.length);
38
- if (urlWithoutSuffix.indexOf("/filter") == -1) {
39
- fullUrl = urlWithoutSuffix + "/filter/isLayerAjax/1" + suffix;
40
- } else {
41
- fullUrl = urlWithoutSuffix + "/isLayerAjax/1" + suffix;
42
- }
43
- } else {
44
- // Add this to query string for full page caching systems
45
- if (url.indexOf('?') != -1) {
46
- fullUrl = url + '&isLayerAjax=1';
47
- } else {
48
- fullUrl = url + '?isLayerAjax=1';
49
- }
50
- }
51
 
52
  $('loading').show();
53
  $('ajax-errors').hide();
@@ -68,17 +52,68 @@ var CatalinSeoHandler = {
68
  self.toggleContent();
69
  self.alignProductGridActions();
70
  self.blockCollapsing();
 
 
 
 
 
 
71
  } else {
72
  $('ajax-errors').show();
73
  }
74
  $('loading').hide();
75
- }
 
76
  });
77
 
78
  if (event) {
79
  event.preventDefault();
80
  }
81
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82
  pushState: function (data, link, replace) {
83
  var History = window.History;
84
  if (!History.enabled) {
@@ -162,6 +197,12 @@ var CatalinSeoHandler = {
162
  self.toggleContent();
163
  self.alignProductGridActions();
164
  self.blockCollapsing();
 
 
 
 
 
 
165
  }
166
  });
167
  })(window.History);
31
  url = $(el).getValue();
32
  }
33
 
34
+ fullUrl = self.prepareAjaxUrl(url);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
 
36
  $('loading').show();
37
  $('ajax-errors').hide();
52
  self.toggleContent();
53
  self.alignProductGridActions();
54
  self.blockCollapsing();
55
+
56
+ if (ConfigurableSwatchesList) {
57
+ setTimeout(function(){
58
+ $j(document).trigger('product-media-loaded');
59
+ }, 0);
60
+ }
61
  } else {
62
  $('ajax-errors').show();
63
  }
64
  $('loading').hide();
65
+ },
66
+ onComplete: CatalinSeoHandler.sendUpdateEvent
67
  });
68
 
69
  if (event) {
70
  event.preventDefault();
71
  }
72
  },
73
+ sendUpdateEvent: function() {
74
+ $j(document).trigger('catalin:updatePage');
75
+ },
76
+ prepareAjaxUrl: function (url) {
77
+ // In EE, the FPC caches response headers by request path, without query arguments.
78
+ // So, we need to vary the request path between HTML (category) responses and JSON responses.
79
+ var routingSuffix = CatalinSeoHandler.routingSuffix;
80
+ var urlSuffix = CatalinSeoHandler.urlSuffix;
81
+
82
+ if (url.indexOf('/isLayerAjax/1') != -1) {
83
+ return url;
84
+ }
85
+
86
+ // Can't use split since limit chops the result.
87
+ var prefixLength = routingSuffix.length === 0 ? -1 : url.indexOf(routingSuffix);
88
+ // We have a routing suffix in this link - let's add ajax right after that.
89
+ if (prefixLength !== -1) {
90
+ var prefix = url.substr(0, prefixLength + routingSuffix.length);
91
+ var suffix = url.substr(prefixLength + routingSuffix.length);
92
+ return prefix + '/isLayerAjax/1' + suffix;
93
+ }
94
+
95
+ // None, let's add before the question mark.
96
+ var questionMarkPos = url.indexOf('?');
97
+ if (questionMarkPos !== -1) {
98
+ var prefix = url.substr(0, questionMarkPos);
99
+ var suffix = url.substr(questionMarkPos);
100
+ // Move it before the urlSuffix, not before the question mark.
101
+ if (prefix.substr(prefix.length - urlSuffix.length) == urlSuffix) {
102
+ prefix = prefix.substr(0, prefix.length - urlSuffix.length);
103
+ suffix = urlSuffix + suffix;
104
+ }
105
+ return prefix + routingSuffix + '/isLayerAjax/1' + suffix;
106
+ }
107
+
108
+ // If it ends with the urlSuffix, append there.
109
+ if (url.substr(url.length - urlSuffix.length) == urlSuffix) {
110
+ var prefix = url.substr(0, url.length - urlSuffix.length);
111
+ return prefix + routingSuffix + '/isLayerAjax/1' + urlSuffix;
112
+ }
113
+
114
+ // Nothing, let's put it all together.
115
+ return url + routingSuffix + '/isLayerAjax/1' + urlSuffix;
116
+ },
117
  pushState: function (data, link, replace) {
118
  var History = window.History;
119
  if (!History.enabled) {
197
  self.toggleContent();
198
  self.alignProductGridActions();
199
  self.blockCollapsing();
200
+
201
+ if (ConfigurableSwatchesList) {
202
+ setTimeout(function(){
203
+ $j(document).trigger('product-media-loaded');
204
+ }, 0);
205
+ }
206
  }
207
  });
208
  })(window.History);
skin/frontend/base/default/js/catalin_seo/handler.js CHANGED
@@ -56,17 +56,27 @@ var CatalinSeoHandler = {
56
  self.toggleContent();
57
  self.alignProductGridActions();
58
  self.blockCollapsing();
 
 
 
 
 
 
59
  } else {
60
  $('ajax-errors').show();
61
  }
62
  $('loading').hide();
63
- }
 
64
  });
65
 
66
  if (event) {
67
  event.preventDefault();
68
  }
69
  },
 
 
 
70
  pushState: function (data, link, replace) {
71
  var History = window.History;
72
  if (!History.enabled) {
@@ -150,6 +160,12 @@ var CatalinSeoHandler = {
150
  self.toggleContent();
151
  self.alignProductGridActions();
152
  self.blockCollapsing();
 
 
 
 
 
 
153
  }
154
  });
155
  })(window.History);
56
  self.toggleContent();
57
  self.alignProductGridActions();
58
  self.blockCollapsing();
59
+
60
+ if (ConfigurableSwatchesList) {
61
+ setTimeout(function(){
62
+ $j(document).trigger('product-media-loaded');
63
+ }, 0);
64
+ }
65
  } else {
66
  $('ajax-errors').show();
67
  }
68
  $('loading').hide();
69
+ },
70
+ onComplete: CatalinSeoHandler.sendUpdateEvent
71
  });
72
 
73
  if (event) {
74
  event.preventDefault();
75
  }
76
  },
77
+ sendUpdateEvent: function() {
78
+ $j(document).trigger('catalin:updatePage');
79
+ },
80
  pushState: function (data, link, replace) {
81
  var History = window.History;
82
  if (!History.enabled) {
160
  self.toggleContent();
161
  self.alignProductGridActions();
162
  self.blockCollapsing();
163
+
164
+ if (ConfigurableSwatchesList) {
165
+ setTimeout(function(){
166
+ $j(document).trigger('product-media-loaded');
167
+ }, 0);
168
+ }
169
  }
170
  });
171
  })(window.History);