Catalin_Seo - Version 2.1.0

Version Notes

- fixed layout issues for the Magento 1.9 theme
- fixed price slider to select products including ones that have the price equal to min and max.
- updated native.history.js
- removed the price slider delayed auto submit - counter intuitive and harmfull
- fixed issue with AM and AM+ filters
- minimum supported Magento version is 1.9
- fixed issues with flat catalog category enabled

Download this release

Release Info

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


Code changes from version 2.0.8 to 2.1.0

Files changed (226) hide show
  1. app/code/community/Catalin/SEO/Block/Catalog/Layer/Filter/Attribute.php +0 -0
  2. app/code/community/Catalin/SEO/Block/Catalog/Layer/Filter/Price.php +5 -21
  3. app/code/community/Catalin/SEO/Block/Catalog/Layer/State.php +0 -0
  4. app/code/community/Catalin/SEO/Block/Catalog/Product/List/Pager.php +0 -0
  5. app/code/community/Catalin/SEO/Block/Catalog/Product/List/Toolbar.php +0 -0
  6. app/code/community/Catalin/SEO/Block/CatalogSearch/Layer/Filter/Attribute.php +0 -0
  7. app/code/community/Catalin/SEO/Controller/Router.php +1 -1
  8. app/code/community/Catalin/SEO/Helper/Data.php +0 -20
  9. app/code/community/Catalin/SEO/Helper/data/x00.php +0 -0
  10. app/code/community/Catalin/SEO/Helper/data/x01.php +0 -0
  11. app/code/community/Catalin/SEO/Helper/data/x02.php +0 -0
  12. app/code/community/Catalin/SEO/Helper/data/x03.php +0 -0
  13. app/code/community/Catalin/SEO/Helper/data/x04.php +0 -0
  14. app/code/community/Catalin/SEO/Helper/data/x05.php +0 -0
  15. app/code/community/Catalin/SEO/Helper/data/x06.php +0 -0
  16. app/code/community/Catalin/SEO/Helper/data/x07.php +0 -0
  17. app/code/community/Catalin/SEO/Helper/data/x09.php +0 -0
  18. app/code/community/Catalin/SEO/Helper/data/x0a.php +0 -0
  19. app/code/community/Catalin/SEO/Helper/data/x0b.php +0 -0
  20. app/code/community/Catalin/SEO/Helper/data/x0c.php +0 -0
  21. app/code/community/Catalin/SEO/Helper/data/x0d.php +0 -0
  22. app/code/community/Catalin/SEO/Helper/data/x0e.php +0 -0
  23. app/code/community/Catalin/SEO/Helper/data/x0f.php +0 -0
  24. app/code/community/Catalin/SEO/Helper/data/x10.php +0 -0
  25. app/code/community/Catalin/SEO/Helper/data/x11.php +0 -0
  26. app/code/community/Catalin/SEO/Helper/data/x12.php +0 -0
  27. app/code/community/Catalin/SEO/Helper/data/x13.php +0 -0
  28. app/code/community/Catalin/SEO/Helper/data/x14.php +0 -0
  29. app/code/community/Catalin/SEO/Helper/data/x15.php +0 -0
  30. app/code/community/Catalin/SEO/Helper/data/x16.php +0 -0
  31. app/code/community/Catalin/SEO/Helper/data/x17.php +0 -0
  32. app/code/community/Catalin/SEO/Helper/data/x18.php +0 -0
  33. app/code/community/Catalin/SEO/Helper/data/x1e.php +0 -0
  34. app/code/community/Catalin/SEO/Helper/data/x1f.php +0 -0
  35. app/code/community/Catalin/SEO/Helper/data/x20.php +0 -0
  36. app/code/community/Catalin/SEO/Helper/data/x21.php +0 -0
  37. app/code/community/Catalin/SEO/Helper/data/x22.php +0 -0
  38. app/code/community/Catalin/SEO/Helper/data/x23.php +0 -0
  39. app/code/community/Catalin/SEO/Helper/data/x24.php +0 -0
  40. app/code/community/Catalin/SEO/Helper/data/x25.php +0 -0
  41. app/code/community/Catalin/SEO/Helper/data/x26.php +0 -0
  42. app/code/community/Catalin/SEO/Helper/data/x27.php +0 -0
  43. app/code/community/Catalin/SEO/Helper/data/x28.php +0 -0
  44. app/code/community/Catalin/SEO/Helper/data/x2e.php +0 -0
  45. app/code/community/Catalin/SEO/Helper/data/x2f.php +0 -0
  46. app/code/community/Catalin/SEO/Helper/data/x30.php +0 -0
  47. app/code/community/Catalin/SEO/Helper/data/x31.php +0 -0
  48. app/code/community/Catalin/SEO/Helper/data/x32.php +0 -0
  49. app/code/community/Catalin/SEO/Helper/data/x33.php +0 -0
  50. app/code/community/Catalin/SEO/Helper/data/x4d.php +0 -0
  51. app/code/community/Catalin/SEO/Helper/data/x4e.php +0 -0
  52. app/code/community/Catalin/SEO/Helper/data/x4f.php +0 -0
  53. app/code/community/Catalin/SEO/Helper/data/x50.php +0 -0
  54. app/code/community/Catalin/SEO/Helper/data/x51.php +0 -0
  55. app/code/community/Catalin/SEO/Helper/data/x52.php +0 -0
  56. app/code/community/Catalin/SEO/Helper/data/x53.php +0 -0
  57. app/code/community/Catalin/SEO/Helper/data/x54.php +0 -0
  58. app/code/community/Catalin/SEO/Helper/data/x55.php +0 -0
  59. app/code/community/Catalin/SEO/Helper/data/x56.php +0 -0
  60. app/code/community/Catalin/SEO/Helper/data/x57.php +0 -0
  61. app/code/community/Catalin/SEO/Helper/data/x58.php +0 -0
  62. app/code/community/Catalin/SEO/Helper/data/x59.php +0 -0
  63. app/code/community/Catalin/SEO/Helper/data/x5a.php +0 -0
  64. app/code/community/Catalin/SEO/Helper/data/x5b.php +0 -0
  65. app/code/community/Catalin/SEO/Helper/data/x5c.php +0 -0
  66. app/code/community/Catalin/SEO/Helper/data/x5d.php +0 -0
  67. app/code/community/Catalin/SEO/Helper/data/x5e.php +0 -0
  68. app/code/community/Catalin/SEO/Helper/data/x5f.php +0 -0
  69. app/code/community/Catalin/SEO/Helper/data/x60.php +0 -0
  70. app/code/community/Catalin/SEO/Helper/data/x61.php +0 -0
  71. app/code/community/Catalin/SEO/Helper/data/x62.php +0 -0
  72. app/code/community/Catalin/SEO/Helper/data/x63.php +0 -0
  73. app/code/community/Catalin/SEO/Helper/data/x64.php +0 -0
  74. app/code/community/Catalin/SEO/Helper/data/x65.php +0 -0
  75. app/code/community/Catalin/SEO/Helper/data/x66.php +0 -0
  76. app/code/community/Catalin/SEO/Helper/data/x67.php +0 -0
  77. app/code/community/Catalin/SEO/Helper/data/x68.php +0 -0
  78. app/code/community/Catalin/SEO/Helper/data/x69.php +0 -0
  79. app/code/community/Catalin/SEO/Helper/data/x6a.php +0 -0
  80. app/code/community/Catalin/SEO/Helper/data/x6b.php +0 -0
  81. app/code/community/Catalin/SEO/Helper/data/x6c.php +0 -0
  82. app/code/community/Catalin/SEO/Helper/data/x6d.php +0 -0
  83. app/code/community/Catalin/SEO/Helper/data/x6e.php +0 -0
  84. app/code/community/Catalin/SEO/Helper/data/x6f.php +0 -0
  85. app/code/community/Catalin/SEO/Helper/data/x70.php +0 -0
  86. app/code/community/Catalin/SEO/Helper/data/x71.php +0 -0
  87. app/code/community/Catalin/SEO/Helper/data/x72.php +0 -0
  88. app/code/community/Catalin/SEO/Helper/data/x73.php +0 -0
  89. app/code/community/Catalin/SEO/Helper/data/x74.php +0 -0
  90. app/code/community/Catalin/SEO/Helper/data/x75.php +0 -0
  91. app/code/community/Catalin/SEO/Helper/data/x76.php +0 -0
  92. app/code/community/Catalin/SEO/Helper/data/x77.php +0 -0
  93. app/code/community/Catalin/SEO/Helper/data/x78.php +0 -0
  94. app/code/community/Catalin/SEO/Helper/data/x79.php +0 -0
  95. app/code/community/Catalin/SEO/Helper/data/x7a.php +0 -0
  96. app/code/community/Catalin/SEO/Helper/data/x7b.php +0 -0
  97. app/code/community/Catalin/SEO/Helper/data/x7c.php +0 -0
  98. app/code/community/Catalin/SEO/Helper/data/x7d.php +0 -0
  99. app/code/community/Catalin/SEO/Helper/data/x7e.php +0 -0
  100. app/code/community/Catalin/SEO/Helper/data/x7f.php +0 -0
  101. app/code/community/Catalin/SEO/Helper/data/x80.php +0 -0
  102. app/code/community/Catalin/SEO/Helper/data/x81.php +0 -0
  103. app/code/community/Catalin/SEO/Helper/data/x82.php +0 -0
  104. app/code/community/Catalin/SEO/Helper/data/x83.php +0 -0
  105. app/code/community/Catalin/SEO/Helper/data/x84.php +0 -0
  106. app/code/community/Catalin/SEO/Helper/data/x85.php +0 -0
  107. app/code/community/Catalin/SEO/Helper/data/x86.php +0 -0
  108. app/code/community/Catalin/SEO/Helper/data/x87.php +0 -0
  109. app/code/community/Catalin/SEO/Helper/data/x88.php +0 -0
  110. app/code/community/Catalin/SEO/Helper/data/x89.php +0 -0
  111. app/code/community/Catalin/SEO/Helper/data/x8a.php +0 -0
  112. app/code/community/Catalin/SEO/Helper/data/x8b.php +0 -0
  113. app/code/community/Catalin/SEO/Helper/data/x8c.php +0 -0
  114. app/code/community/Catalin/SEO/Helper/data/x8d.php +0 -0
  115. app/code/community/Catalin/SEO/Helper/data/x8e.php +0 -0
  116. app/code/community/Catalin/SEO/Helper/data/x8f.php +0 -0
  117. app/code/community/Catalin/SEO/Helper/data/x90.php +0 -0
  118. app/code/community/Catalin/SEO/Helper/data/x91.php +0 -0
  119. app/code/community/Catalin/SEO/Helper/data/x92.php +0 -0
  120. app/code/community/Catalin/SEO/Helper/data/x93.php +0 -0
  121. app/code/community/Catalin/SEO/Helper/data/x94.php +0 -0
  122. app/code/community/Catalin/SEO/Helper/data/x95.php +0 -0
  123. app/code/community/Catalin/SEO/Helper/data/x96.php +0 -0
  124. app/code/community/Catalin/SEO/Helper/data/x97.php +0 -0
  125. app/code/community/Catalin/SEO/Helper/data/x98.php +0 -0
  126. app/code/community/Catalin/SEO/Helper/data/x99.php +0 -0
  127. app/code/community/Catalin/SEO/Helper/data/x9a.php +0 -0
  128. app/code/community/Catalin/SEO/Helper/data/x9b.php +0 -0
  129. app/code/community/Catalin/SEO/Helper/data/x9c.php +0 -0
  130. app/code/community/Catalin/SEO/Helper/data/x9d.php +0 -0
  131. app/code/community/Catalin/SEO/Helper/data/x9e.php +0 -0
  132. app/code/community/Catalin/SEO/Helper/data/x9f.php +0 -0
  133. app/code/community/Catalin/SEO/Helper/data/xa0.php +0 -0
  134. app/code/community/Catalin/SEO/Helper/data/xa1.php +0 -0
  135. app/code/community/Catalin/SEO/Helper/data/xa2.php +0 -0
  136. app/code/community/Catalin/SEO/Helper/data/xa3.php +0 -0
  137. app/code/community/Catalin/SEO/Helper/data/xa4.php +0 -0
  138. app/code/community/Catalin/SEO/Helper/data/xac.php +0 -0
  139. app/code/community/Catalin/SEO/Helper/data/xad.php +0 -0
  140. app/code/community/Catalin/SEO/Helper/data/xae.php +0 -0
  141. app/code/community/Catalin/SEO/Helper/data/xaf.php +0 -0
  142. app/code/community/Catalin/SEO/Helper/data/xb0.php +0 -0
  143. app/code/community/Catalin/SEO/Helper/data/xb1.php +0 -0
  144. app/code/community/Catalin/SEO/Helper/data/xb2.php +0 -0
  145. app/code/community/Catalin/SEO/Helper/data/xb3.php +0 -0
  146. app/code/community/Catalin/SEO/Helper/data/xb4.php +0 -0
  147. app/code/community/Catalin/SEO/Helper/data/xb5.php +0 -0
  148. app/code/community/Catalin/SEO/Helper/data/xb6.php +0 -0
  149. app/code/community/Catalin/SEO/Helper/data/xb7.php +0 -0
  150. app/code/community/Catalin/SEO/Helper/data/xb8.php +0 -0
  151. app/code/community/Catalin/SEO/Helper/data/xb9.php +0 -0
  152. app/code/community/Catalin/SEO/Helper/data/xba.php +0 -0
  153. app/code/community/Catalin/SEO/Helper/data/xbb.php +0 -0
  154. app/code/community/Catalin/SEO/Helper/data/xbc.php +0 -0
  155. app/code/community/Catalin/SEO/Helper/data/xbd.php +0 -0
  156. app/code/community/Catalin/SEO/Helper/data/xbe.php +0 -0
  157. app/code/community/Catalin/SEO/Helper/data/xbf.php +0 -0
  158. app/code/community/Catalin/SEO/Helper/data/xc0.php +0 -0
  159. app/code/community/Catalin/SEO/Helper/data/xc1.php +0 -0
  160. app/code/community/Catalin/SEO/Helper/data/xc2.php +0 -0
  161. app/code/community/Catalin/SEO/Helper/data/xc3.php +0 -0
  162. app/code/community/Catalin/SEO/Helper/data/xc4.php +0 -0
  163. app/code/community/Catalin/SEO/Helper/data/xc5.php +0 -0
  164. app/code/community/Catalin/SEO/Helper/data/xc6.php +0 -0
  165. app/code/community/Catalin/SEO/Helper/data/xc7.php +0 -0
  166. app/code/community/Catalin/SEO/Helper/data/xc8.php +0 -0
  167. app/code/community/Catalin/SEO/Helper/data/xc9.php +0 -0
  168. app/code/community/Catalin/SEO/Helper/data/xca.php +0 -0
  169. app/code/community/Catalin/SEO/Helper/data/xcb.php +0 -0
  170. app/code/community/Catalin/SEO/Helper/data/xcc.php +0 -0
  171. app/code/community/Catalin/SEO/Helper/data/xcd.php +0 -0
  172. app/code/community/Catalin/SEO/Helper/data/xce.php +0 -0
  173. app/code/community/Catalin/SEO/Helper/data/xcf.php +0 -0
  174. app/code/community/Catalin/SEO/Helper/data/xd0.php +0 -0
  175. app/code/community/Catalin/SEO/Helper/data/xd1.php +0 -0
  176. app/code/community/Catalin/SEO/Helper/data/xd2.php +0 -0
  177. app/code/community/Catalin/SEO/Helper/data/xd3.php +0 -0
  178. app/code/community/Catalin/SEO/Helper/data/xd4.php +0 -0
  179. app/code/community/Catalin/SEO/Helper/data/xd5.php +0 -0
  180. app/code/community/Catalin/SEO/Helper/data/xd6.php +0 -0
  181. app/code/community/Catalin/SEO/Helper/data/xd7.php +0 -0
  182. app/code/community/Catalin/SEO/Helper/data/xf9.php +0 -0
  183. app/code/community/Catalin/SEO/Helper/data/xfa.php +0 -0
  184. app/code/community/Catalin/SEO/Helper/data/xfb.php +0 -0
  185. app/code/community/Catalin/SEO/Helper/data/xfc.php +0 -0
  186. app/code/community/Catalin/SEO/Helper/data/xfd.php +0 -0
  187. app/code/community/Catalin/SEO/Helper/data/xfe.php +0 -0
  188. app/code/community/Catalin/SEO/Helper/data/xff.php +0 -0
  189. app/code/community/Catalin/SEO/Model/Catalog/Layer.php +0 -0
  190. app/code/community/Catalin/SEO/Model/Catalog/Layer/Filter/Attribute.php +0 -0
  191. app/code/community/Catalin/SEO/Model/Catalog/Layer/Filter/Category.php +36 -16
  192. app/code/community/Catalin/SEO/Model/Catalog/Layer/Filter/Item.php +0 -0
  193. app/code/community/Catalin/SEO/Model/Catalog/Layer/Filter/Price.php +8 -8
  194. app/code/community/Catalin/SEO/Model/Catalog/Resource/Layer/Filter/Attribute.php +0 -0
  195. app/code/community/Catalin/SEO/Model/Catalog/Resource/Layer/Filter/Price.php +77 -0
  196. app/code/community/Catalin/SEO/Model/CatalogSearch/Layer.php +0 -0
  197. app/code/community/Catalin/SEO/Model/CatalogSearch/Layer/Filter/Attribute.php +0 -0
  198. app/code/community/Catalin/SEO/Model/Indexer/Attribute.php +0 -0
  199. app/code/community/Catalin/SEO/Model/Resource/Attribute/Urlkey.php +0 -0
  200. app/code/community/Catalin/SEO/Model/Resource/Indexer/Attribute.php +18 -3
  201. app/code/community/Catalin/SEO/Model/System/Config/Backend/Seo/Catalog.php +0 -0
  202. app/code/community/Catalin/SEO/Model/System/Config/Source/Slider/Submit/Type.php +0 -43
  203. app/code/community/Catalin/SEO/controllers/CategoryController.php +0 -0
  204. app/code/community/Catalin/SEO/controllers/ResultController.php +0 -0
  205. app/code/community/Catalin/SEO/etc/adminhtml.xml +0 -0
  206. app/code/community/Catalin/SEO/etc/config.xml +1 -2
  207. app/code/community/Catalin/SEO/etc/system.xml +0 -27
  208. app/code/community/Catalin/SEO/sql/catalin_seo_setup/install-2.0.0.php +0 -0
  209. app/design/frontend/{default → base}/default/layout/catalin_seo.xml +12 -4
  210. app/design/frontend/base/default/template/catalin_seo/catalog/layer/filter.phtml +22 -0
  211. app/design/frontend/base/default/template/catalin_seo/catalog/layer/price.phtml +31 -0
  212. app/design/frontend/base/default/template/catalin_seo/catalog/layer/view.phtml +32 -0
  213. app/design/frontend/base/default/template/catalin_seo/catalog/product/list.phtml +179 -0
  214. app/design/frontend/default/default/template/catalin_seo/catalog/layer/filter.phtml +0 -26
  215. app/design/frontend/default/default/template/catalin_seo/catalog/layer/price.phtml +0 -63
  216. app/design/frontend/default/default/template/catalin_seo/catalog/layer/view.phtml +0 -35
  217. app/design/frontend/default/default/template/catalin_seo/catalog/product/list.phtml +0 -222
  218. app/etc/modules/Catalin_SEO.xml +0 -0
  219. package.xml +13 -7
  220. skin/frontend/base/default/css/catalin_seo/style.css +21 -0
  221. skin/frontend/{default/default/images/price_slider → base/default/images/catalin_seo}/bkg_slider.png +0 -0
  222. skin/frontend/{default/default/images/price_slider → base/default/images/catalin_seo}/slider.png +0 -0
  223. skin/frontend/base/default/js/catalin_seo/handler.js +152 -0
  224. skin/frontend/base/default/js/catalin_seo/native.history.js +1 -0
  225. skin/frontend/default/default/css/price_slider/style.css +0 -18
  226. skin/frontend/default/default/js/catalin_seo/native.history.js +0 -1
app/code/community/Catalin/SEO/Block/Catalog/Layer/Filter/Attribute.php CHANGED
File without changes
app/code/community/Catalin/SEO/Block/Catalog/Layer/Filter/Price.php CHANGED
@@ -19,7 +19,7 @@ class Catalin_SEO_Block_Catalog_Layer_Filter_Price extends Mage_Catalog_Block_La
19
 
20
  /**
21
  * Class constructor
22
- *
23
  * Set correct template depending on module state
24
  */
25
  public function __construct()
@@ -54,7 +54,7 @@ class Catalin_SEO_Block_Catalog_Layer_Filter_Price extends Mage_Catalog_Block_La
54
 
55
  /**
56
  * Get current minimum price filter
57
- *
58
  * @return float
59
  */
60
  public function getCurrentMinPriceFilter()
@@ -71,13 +71,13 @@ class Catalin_SEO_Block_Catalog_Layer_Filter_Price extends Mage_Catalog_Block_La
71
 
72
  /**
73
  * Get current maximum price filter
74
- *
75
  * @return float
76
  */
77
  public function getCurrentMaxPriceFilter()
78
  {
79
  list($from, $to) = $this->_filter->getInterval();
80
- $to = floor((float) $to);
81
 
82
  if ($to == 0 || $to > $this->getMaxPriceFloat()) {
83
  return $this->getMaxPriceFloat();
@@ -88,7 +88,7 @@ class Catalin_SEO_Block_Catalog_Layer_Filter_Price extends Mage_Catalog_Block_La
88
 
89
  /**
90
  * URL Pattern used in javascript for price filtering
91
- *
92
  * @return string
93
  */
94
  public function getUrlPattern()
@@ -101,22 +101,6 @@ class Catalin_SEO_Block_Catalog_Layer_Filter_Price extends Mage_Catalog_Block_La
101
  return $item->getUrl();
102
  }
103
 
104
- /**
105
- * Check if price slider can be rendered with a button
106
- *
107
- * @return boolean
108
- */
109
- public function isSubmitTypeButton()
110
- {
111
- $type = $this->helper('catalin_seo')->getPriceSliderSubmitType();
112
-
113
- if ($type == Catalin_SEO_Model_System_Config_Source_Slider_Submit_Type::SUBMIT_BUTTON) {
114
- return true;
115
- }
116
-
117
- return false;
118
- }
119
-
120
  /**
121
  * Retrieve filter items count
122
  *
19
 
20
  /**
21
  * Class constructor
22
+ *
23
  * Set correct template depending on module state
24
  */
25
  public function __construct()
54
 
55
  /**
56
  * Get current minimum price filter
57
+ *
58
  * @return float
59
  */
60
  public function getCurrentMinPriceFilter()
71
 
72
  /**
73
  * Get current maximum price filter
74
+ *
75
  * @return float
76
  */
77
  public function getCurrentMaxPriceFilter()
78
  {
79
  list($from, $to) = $this->_filter->getInterval();
80
+ $to = round((float) $to);
81
 
82
  if ($to == 0 || $to > $this->getMaxPriceFloat()) {
83
  return $this->getMaxPriceFloat();
88
 
89
  /**
90
  * URL Pattern used in javascript for price filtering
91
+ *
92
  * @return string
93
  */
94
  public function getUrlPattern()
101
  return $item->getUrl();
102
  }
103
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
104
  /**
105
  * Retrieve filter items count
106
  *
app/code/community/Catalin/SEO/Block/Catalog/Layer/State.php CHANGED
File without changes
app/code/community/Catalin/SEO/Block/Catalog/Product/List/Pager.php CHANGED
File without changes
app/code/community/Catalin/SEO/Block/Catalog/Product/List/Toolbar.php CHANGED
File without changes
app/code/community/Catalin/SEO/Block/CatalogSearch/Layer/Filter/Attribute.php CHANGED
File without changes
app/code/community/Catalin/SEO/Controller/Router.php CHANGED
@@ -119,7 +119,7 @@ class Catalin_SEO_Controller_Router extends Mage_Core_Controller_Varien_Router_S
119
  }
120
  }
121
  // Add post params to parsed ones from url
122
- // Usefull to easily override params
123
  $layerParams += $request->getPost();
124
  // Add params to request
125
  $request->setParams($layerParams);
119
  }
120
  }
121
  // Add post params to parsed ones from url
122
+ // Useful to easily override params
123
  $layerParams += $request->getPost();
124
  // Add params to request
125
  $request->setParams($layerParams);
app/code/community/Catalin/SEO/Helper/Data.php CHANGED
@@ -71,26 +71,6 @@ class Catalin_SEO_Helper_Data extends Mage_Core_Helper_Data
71
  return Mage::getStoreConfigFlag('catalin_seo/catalog/price_slider');
72
  }
73
 
74
- /**
75
- * Retrieve price slider delay in seconds.
76
- *
77
- * @return integer
78
- */
79
- public function getPriceSliderDelay()
80
- {
81
- return Mage::getStoreConfig('catalin_seo/catalog/price_slider_delay');
82
- }
83
-
84
- /**
85
- * Retrieve how price slider will be submitted (button or delayed auto submit)
86
- *
87
- * @return int
88
- */
89
- public function getPriceSliderSubmitType()
90
- {
91
- return (int) Mage::getStoreConfig('catalin_seo/catalog/price_slider_submit_type');
92
- }
93
-
94
  /**
95
  * Retrieve routing suffix
96
  *
71
  return Mage::getStoreConfigFlag('catalin_seo/catalog/price_slider');
72
  }
73
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74
  /**
75
  * Retrieve routing suffix
76
  *
app/code/community/Catalin/SEO/Helper/data/x00.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x01.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x02.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x03.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x04.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x05.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x06.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x07.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x09.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x0a.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x0b.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x0c.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x0d.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x0e.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x0f.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x10.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x11.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x12.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x13.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x14.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x15.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x16.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x17.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x18.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x1e.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x1f.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x20.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x21.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x22.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x23.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x24.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x25.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x26.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x27.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x28.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x2e.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x2f.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x30.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x31.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x32.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x33.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x4d.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x4e.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x4f.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x50.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x51.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x52.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x53.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x54.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x55.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x56.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x57.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x58.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x59.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x5a.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x5b.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x5c.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x5d.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x5e.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x5f.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x60.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x61.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x62.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x63.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x64.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x65.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x66.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x67.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x68.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x69.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x6a.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x6b.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x6c.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x6d.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x6e.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x6f.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x70.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x71.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x72.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x73.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x74.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x75.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x76.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x77.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x78.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x79.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x7a.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x7b.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x7c.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x7d.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x7e.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x7f.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x80.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x81.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x82.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x83.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x84.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x85.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x86.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x87.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x88.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x89.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x8a.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x8b.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x8c.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x8d.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x8e.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x8f.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x90.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x91.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x92.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x93.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x94.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x95.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x96.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x97.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x98.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x99.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x9a.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x9b.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x9c.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x9d.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x9e.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/x9f.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xa0.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xa1.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xa2.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xa3.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xa4.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xac.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xad.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xae.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xaf.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xb0.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xb1.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xb2.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xb3.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xb4.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xb5.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xb6.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xb7.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xb8.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xb9.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xba.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xbb.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xbc.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xbd.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xbe.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xbf.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xc0.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xc1.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xc2.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xc3.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xc4.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xc5.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xc6.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xc7.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xc8.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xc9.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xca.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xcb.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xcc.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xcd.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xce.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xcf.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xd0.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xd1.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xd2.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xd3.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xd4.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xd5.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xd6.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xd7.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xf9.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xfa.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xfb.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xfc.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xfd.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xfe.php CHANGED
File without changes
app/code/community/Catalin/SEO/Helper/data/xff.php CHANGED
File without changes
app/code/community/Catalin/SEO/Model/Catalog/Layer.php CHANGED
File without changes
app/code/community/Catalin/SEO/Model/Catalog/Layer/Filter/Attribute.php CHANGED
File without changes
app/code/community/Catalin/SEO/Model/Catalog/Layer/Filter/Category.php CHANGED
@@ -16,7 +16,27 @@
16
  */
17
  class Catalin_SEO_Model_Catalog_Layer_Filter_Category extends Mage_Catalog_Model_Layer_Filter_Category
18
  {
19
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  /**
21
  * Get data array for building category filter items
22
  *
@@ -27,14 +47,14 @@ class Catalin_SEO_Model_Catalog_Layer_Filter_Category extends Mage_Catalog_Model
27
  if (!Mage::helper('catalin_seo')->isEnabled()) {
28
  return parent::_getItemsData();
29
  }
30
-
31
- $key = $this->getLayer()->getStateKey().'_SUBCATEGORIES';
32
  $data = $this->getLayer()->getAggregator()->getCacheData($key);
33
 
34
  if ($data === null) {
35
- $categoty = $this->getCategory();
36
- /** @var $categoty Mage_Catalog_Model_Categeory */
37
- $categories = $categoty->getChildrenCategories();
38
 
39
  $this->getLayer()->getProductCollection()
40
  ->addCountToCategories($categories);
@@ -46,9 +66,9 @@ class Catalin_SEO_Model_Catalog_Layer_Filter_Category extends Mage_Catalog_Model
46
  if (empty($urlKey)) {
47
  $urlKey = $category->getId();
48
  }
49
-
50
  $data[] = array(
51
- 'label' => Mage::helper('core')->htmlEscape($category->getName()),
52
  'value' => $urlKey,
53
  'count' => $category->getProductCount(),
54
  );
@@ -59,7 +79,7 @@ class Catalin_SEO_Model_Catalog_Layer_Filter_Category extends Mage_Catalog_Model
59
  }
60
  return $data;
61
  }
62
-
63
  /**
64
  * Apply category filter to layer
65
  *
@@ -72,25 +92,25 @@ class Catalin_SEO_Model_Catalog_Layer_Filter_Category extends Mage_Catalog_Model
72
  if (!Mage::helper('catalin_seo')->isEnabled()) {
73
  return parent::apply($request, $filterBlock);
74
  }
75
-
76
  $filter = $request->getParam($this->getRequestVar());
77
  if (!$filter) {
78
  return $this;
79
  }
80
-
81
  // Load the category filter by url_key
82
  $this->_appliedCategory = Mage::getModel('catalog/category')
83
  ->setStoreId(Mage::app()->getStore()->getId())
84
  ->loadByAttribute('url_key', $filter);
85
 
86
  // Extra check in case it is a category id and not url key
87
- if (! ($this->_appliedCategory instanceof Mage_Catalog_Model_Category)) {
88
  return parent::apply($request, $filterBlock);
89
- }
90
-
91
  $this->_categoryId = $this->_appliedCategory->getId();
92
- Mage::register('current_category_filter', $this->getCategory(), true);
93
-
94
  if ($this->_isValidCategory($this->_appliedCategory)) {
95
  $this->getLayer()->getProductCollection()
96
  ->addCategoryFilter($this->_appliedCategory);
16
  */
17
  class Catalin_SEO_Model_Catalog_Layer_Filter_Category extends Mage_Catalog_Model_Layer_Filter_Category
18
  {
19
+
20
+ /**
21
+ * Retrieve a collection of child categories for the provided category
22
+ *
23
+ * @param Mage_Catalog_Model_Category $category
24
+ * @return Varien_Data_Collection_Db
25
+ */
26
+ protected function _getChildrenCategories(Mage_Catalog_Model_Category $category)
27
+ {
28
+ $collection = $category->getCollection();
29
+ $collection->addAttributeToSelect('url_key')
30
+ ->addAttributeToSelect('name')
31
+ ->addAttributeToSelect('is_anchor')
32
+ ->addAttributeToFilter('is_active', 1)
33
+ ->addIdFilter($category->getChildren())
34
+ ->setOrder('position', Varien_Db_Select::SQL_ASC)
35
+ ->load();
36
+
37
+ return $collection;
38
+ }
39
+
40
  /**
41
  * Get data array for building category filter items
42
  *
47
  if (!Mage::helper('catalin_seo')->isEnabled()) {
48
  return parent::_getItemsData();
49
  }
50
+
51
+ $key = $this->getLayer()->getStateKey() . '_SUBCATEGORIES';
52
  $data = $this->getLayer()->getAggregator()->getCacheData($key);
53
 
54
  if ($data === null) {
55
+ $categoty = $this->getCategory();
56
+ /** @var $categoty Mage_Catalog_Model_Category */
57
+ $categories = $this->_getChildrenCategories($categoty);
58
 
59
  $this->getLayer()->getProductCollection()
60
  ->addCountToCategories($categories);
66
  if (empty($urlKey)) {
67
  $urlKey = $category->getId();
68
  }
69
+
70
  $data[] = array(
71
+ 'label' => Mage::helper('core')->escapeHtml($category->getName()),
72
  'value' => $urlKey,
73
  'count' => $category->getProductCount(),
74
  );
79
  }
80
  return $data;
81
  }
82
+
83
  /**
84
  * Apply category filter to layer
85
  *
92
  if (!Mage::helper('catalin_seo')->isEnabled()) {
93
  return parent::apply($request, $filterBlock);
94
  }
95
+
96
  $filter = $request->getParam($this->getRequestVar());
97
  if (!$filter) {
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)) {
108
  return parent::apply($request, $filterBlock);
109
+ }
110
+
111
  $this->_categoryId = $this->_appliedCategory->getId();
112
+ Mage::register('current_category_filter', $this->getCategory(), true);
113
+
114
  if ($this->_isValidCategory($this->_appliedCategory)) {
115
  $this->getLayer()->getProductCollection()
116
  ->addCategoryFilter($this->_appliedCategory);
app/code/community/Catalin/SEO/Model/Catalog/Layer/Filter/Item.php CHANGED
File without changes
app/code/community/Catalin/SEO/Model/Catalog/Layer/Filter/Price.php CHANGED
@@ -44,10 +44,10 @@ class Catalin_SEO_Model_Catalog_Layer_Filter_Price extends Mage_Catalog_Model_La
44
 
45
  return $this->getData('min_price_float');
46
  }
47
-
48
  /**
49
- * Collect usefull information - max and min price
50
- *
51
  * @return Catalin_SEO_Model_Catalog_Layer_Filter_Price
52
  */
53
  protected function _collectPriceRange()
@@ -55,7 +55,7 @@ class Catalin_SEO_Model_Catalog_Layer_Filter_Price extends Mage_Catalog_Model_La
55
  $collection = $this->getLayer()->getProductCollection();
56
  $select = $collection->getSelect();
57
  $conditions = $select->getPart(Zend_Db_Select::WHERE);
58
-
59
  // Remove price sql conditions
60
  $conditionsNoPrice = array();
61
  foreach ($conditions as $key => $condition) {
@@ -63,15 +63,15 @@ class Catalin_SEO_Model_Catalog_Layer_Filter_Price extends Mage_Catalog_Model_La
63
  continue;
64
  }
65
  $conditionsNoPrice[] = $condition;
66
- }
67
  $select->setPart(Zend_Db_Select::WHERE, $conditionsNoPrice);
68
-
69
  $this->setData('min_price_float', floor($collection->getMinPrice()));
70
  $this->setData('max_price_float', round($collection->getMaxPrice()));
71
-
72
  // Restore all sql conditions
73
  $select->setPart(Zend_Db_Select::WHERE, $conditions);
74
-
75
  return $this;
76
  }
77
 
44
 
45
  return $this->getData('min_price_float');
46
  }
47
+
48
  /**
49
+ * Collect useful information - max and min price
50
+ *
51
  * @return Catalin_SEO_Model_Catalog_Layer_Filter_Price
52
  */
53
  protected function _collectPriceRange()
55
  $collection = $this->getLayer()->getProductCollection();
56
  $select = $collection->getSelect();
57
  $conditions = $select->getPart(Zend_Db_Select::WHERE);
58
+
59
  // Remove price sql conditions
60
  $conditionsNoPrice = array();
61
  foreach ($conditions as $key => $condition) {
63
  continue;
64
  }
65
  $conditionsNoPrice[] = $condition;
66
+ }
67
  $select->setPart(Zend_Db_Select::WHERE, $conditionsNoPrice);
68
+
69
  $this->setData('min_price_float', floor($collection->getMinPrice()));
70
  $this->setData('max_price_float', round($collection->getMaxPrice()));
71
+
72
  // Restore all sql conditions
73
  $select->setPart(Zend_Db_Select::WHERE, $conditions);
74
+
75
  return $this;
76
  }
77
 
app/code/community/Catalin/SEO/Model/Catalog/Resource/Layer/Filter/Attribute.php CHANGED
File without changes
app/code/community/Catalin/SEO/Model/Catalog/Resource/Layer/Filter/Price.php ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Catalin Ciobanu
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) 2014 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
+ {
19
+ /**
20
+ * Get comparing value sql part
21
+ *
22
+ * @param float $price
23
+ * @param Mage_Catalog_Model_Layer_Filter_Price $filter
24
+ * @param bool $decrease
25
+ * @return float
26
+ */
27
+ protected function _getComparingValue($price, $filter, $decrease = true)
28
+ {
29
+ if (Mage::helper('catalin_seo')->isEnabled()
30
+ && Mage::helper('catalin_seo')->isPriceSliderEnabled()
31
+ ) {
32
+ $currencyRate = $filter->getLayer()->getProductCollection()->getCurrencyRate();
33
+ return $price / $currencyRate;
34
+ }
35
+
36
+ return parent::_getComparingValue($price, $filter, $decrease);
37
+ }
38
+
39
+ /**
40
+ * Apply price range filter to product collection
41
+ *
42
+ * @param Mage_Catalog_Model_Layer_Filter_Price $filter
43
+ * @return Mage_Catalog_Model_Resource_Layer_Filter_Price
44
+ */
45
+ public function applyPriceRange($filter)
46
+ {
47
+ $interval = $filter->getInterval();
48
+ if (!$interval) {
49
+ return $this;
50
+ }
51
+
52
+ list($from, $to) = $interval;
53
+ if ($from === '' && $to === '') {
54
+ return $this;
55
+ }
56
+
57
+ $select = $filter->getLayer()->getProductCollection()->getSelect();
58
+ $priceExpr = $this->_getPriceExpression($filter, $select, false);
59
+
60
+ if ($to !== '') {
61
+ $to = (float)$to;
62
+ if ($from == $to) {
63
+ $to += self::MIN_POSSIBLE_PRICE;
64
+ }
65
+ }
66
+
67
+ if ($from !== '') {
68
+ $select->where($priceExpr . ' >= ' . $this->_getComparingValue($from, $filter));
69
+ }
70
+ if ($to !== '') {
71
+ $select->where($priceExpr . ' <= ' . $this->_getComparingValue($to, $filter));
72
+ }
73
+
74
+ return $this;
75
+ }
76
+
77
+ }
app/code/community/Catalin/SEO/Model/CatalogSearch/Layer.php CHANGED
File without changes
app/code/community/Catalin/SEO/Model/CatalogSearch/Layer/Filter/Attribute.php CHANGED
File without changes
app/code/community/Catalin/SEO/Model/Indexer/Attribute.php CHANGED
File without changes
app/code/community/Catalin/SEO/Model/Resource/Attribute/Urlkey.php CHANGED
File without changes
app/code/community/Catalin/SEO/Model/Resource/Indexer/Attribute.php CHANGED
@@ -42,7 +42,7 @@ class Catalin_SEO_Model_Resource_Indexer_Attribute extends Mage_Index_Model_Reso
42
 
43
  /**
44
  * Generate SEO values for catalog product attributes options
45
- *
46
  * @param int $attributeId - transmit this to limit processing to one specific attribute
47
  * @return Catalin_SEO_Model_Resource_Indexer_Attribute
48
  */
@@ -72,7 +72,7 @@ class Catalin_SEO_Model_Resource_Indexer_Attribute extends Mage_Index_Model_Reso
72
 
73
  /**
74
  * Save data into database
75
- *
76
  * @param array $data
77
  * @param array $deleteWhere
78
  */
@@ -139,6 +139,21 @@ class Catalin_SEO_Model_Resource_Indexer_Attribute extends Mage_Index_Model_Reso
139
  // Generate url key
140
  $urlKey = $this->_getHelper()->transliterate($option['label']);
141
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
142
  $data[] = array(
143
  'attribute_code' => $attribute->getAttributeCode(),
144
  'attribute_id' => $attribute->getId(),
@@ -185,7 +200,7 @@ class Catalin_SEO_Model_Resource_Indexer_Attribute extends Mage_Index_Model_Reso
185
 
186
  /**
187
  * Reindex attribute options on attribute save event
188
- *
189
  * @param Mage_Index_Model_Event $event
190
  * @return Catalin_SEO_Model_Resource_Indexer_Attribute
191
  */
42
 
43
  /**
44
  * Generate SEO values for catalog product attributes options
45
+ *
46
  * @param int $attributeId - transmit this to limit processing to one specific attribute
47
  * @return Catalin_SEO_Model_Resource_Indexer_Attribute
48
  */
72
 
73
  /**
74
  * Save data into database
75
+ *
76
  * @param array $data
77
  * @param array $deleteWhere
78
  */
139
  // Generate url key
140
  $urlKey = $this->_getHelper()->transliterate($option['label']);
141
 
142
+ // Check if this url key is taken and add -{count}
143
+ $count = 0;
144
+ $origUrlKey = $urlKey;
145
+ do {
146
+ $found = false;
147
+ foreach ($data as $line) {
148
+ if ($line['url_key'] == $urlKey) {
149
+ $found = true;
150
+ }
151
+ }
152
+ if ($found) {
153
+ $urlKey = $origUrlKey . '-' . ++$count;
154
+ }
155
+ } while ($found);
156
+
157
  $data[] = array(
158
  'attribute_code' => $attribute->getAttributeCode(),
159
  'attribute_id' => $attribute->getId(),
200
 
201
  /**
202
  * Reindex attribute options on attribute save event
203
+ *
204
  * @param Mage_Index_Model_Event $event
205
  * @return Catalin_SEO_Model_Resource_Indexer_Attribute
206
  */
app/code/community/Catalin/SEO/Model/System/Config/Backend/Seo/Catalog.php CHANGED
File without changes
app/code/community/Catalin/SEO/Model/System/Config/Source/Slider/Submit/Type.php DELETED
@@ -1,43 +0,0 @@
1
- <?php
2
-
3
- /**
4
- * Catalin Ciobanu
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_System_Config_Source_Slider_Submit_Type
18
- {
19
-
20
- const SUBMIT_AUTO_DELAYED = 1;
21
- const SUBMIT_BUTTON = 2;
22
-
23
- protected $_options;
24
-
25
- /**
26
- * Retrieve types of submit for price slider filter
27
- *
28
- * @return array
29
- */
30
- public function toOptionArray()
31
- {
32
- if (null === $this->_options) {
33
- $helper = Mage::helper('catalin_seo');
34
- $this->_options = array(
35
- self::SUBMIT_AUTO_DELAYED => $helper->__('Delayed auto submit'),
36
- self::SUBMIT_BUTTON => $helper->__('Submit button')
37
- );
38
- }
39
-
40
- return $this->_options;
41
- }
42
-
43
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Catalin/SEO/controllers/CategoryController.php CHANGED
File without changes
app/code/community/Catalin/SEO/controllers/ResultController.php CHANGED
File without changes
app/code/community/Catalin/SEO/etc/adminhtml.xml CHANGED
File without changes
app/code/community/Catalin/SEO/etc/config.xml CHANGED
@@ -25,6 +25,7 @@
25
  <catalog_resource>
26
  <rewrite>
27
  <layer_filter_attribute>Catalin_SEO_Model_Catalog_Resource_Layer_Filter_Attribute</layer_filter_attribute>
 
28
  </rewrite>
29
  </catalog_resource>
30
  <catalin_seo>
@@ -119,8 +120,6 @@
119
  <enabled>1</enabled>
120
  <ajax_enabled>1</ajax_enabled>
121
  <price_slider>1</price_slider>
122
- <price_slider_submit_type>2</price_slider_submit_type>
123
- <price_slider_delay>3</price_slider_delay>
124
  <multiple_choise_filters>1</multiple_choise_filters>
125
  <routing_suffix>filter</routing_suffix>
126
  </catalog>
25
  <catalog_resource>
26
  <rewrite>
27
  <layer_filter_attribute>Catalin_SEO_Model_Catalog_Resource_Layer_Filter_Attribute</layer_filter_attribute>
28
+ <layer_filter_price>Catalin_SEO_Model_Catalog_Resource_Layer_Filter_Price</layer_filter_price>
29
  </rewrite>
30
  </catalog_resource>
31
  <catalin_seo>
120
  <enabled>1</enabled>
121
  <ajax_enabled>1</ajax_enabled>
122
  <price_slider>1</price_slider>
 
 
123
  <multiple_choise_filters>1</multiple_choise_filters>
124
  <routing_suffix>filter</routing_suffix>
125
  </catalog>
app/code/community/Catalin/SEO/etc/system.xml CHANGED
@@ -60,33 +60,6 @@
60
  <enabled>1</enabled>
61
  </depends>
62
  </price_slider>
63
- <price_slider_submit_type translate="label">
64
- <label>Price Slider Submit Type</label>
65
- <frontend_type>select</frontend_type>
66
- <comment>in seconds</comment>
67
- <source_model>catalin_seo/system_config_source_slider_submit_type</source_model>
68
- <backend_model>catalin_seo/system_config_backend_seo_catalog</backend_model>
69
- <sort_order>4</sort_order>
70
- <show_in_default>1</show_in_default>
71
- <show_in_website>1</show_in_website>
72
- <show_in_store>1</show_in_store>
73
- <depends>
74
- <price_slider>1</price_slider>
75
- </depends>
76
- </price_slider_submit_type>
77
- <price_slider_delay translate="label">
78
- <label>Price Slider Delay</label>
79
- <frontend_type>text</frontend_type>
80
- <comment>in seconds</comment>
81
- <backend_model>catalin_seo/system_config_backend_seo_catalog</backend_model>
82
- <sort_order>5</sort_order>
83
- <show_in_default>1</show_in_default>
84
- <show_in_website>1</show_in_website>
85
- <show_in_store>1</show_in_store>
86
- <depends>
87
- <price_slider_submit_type>1</price_slider_submit_type>
88
- </depends>
89
- </price_slider_delay>
90
  <multiple_choise_filters translate="label">
91
  <label>Enable Multipe Choise Filter</label>
92
  <frontend_type>select</frontend_type>
60
  <enabled>1</enabled>
61
  </depends>
62
  </price_slider>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
  <multiple_choise_filters translate="label">
64
  <label>Enable Multipe Choise Filter</label>
65
  <frontend_type>select</frontend_type>
app/code/community/Catalin/SEO/sql/catalin_seo_setup/install-2.0.0.php CHANGED
File without changes
app/design/frontend/{default → base}/default/layout/catalin_seo.xml RENAMED
@@ -4,12 +4,16 @@
4
  <reference name="head">
5
  <action method="addItem">
6
  <type>skin_css</type>
7
- <name>css/price_slider/style.css</name>
8
  </action>
9
  <action method="addItem">
10
  <type>skin_js</type>
11
  <name>js/catalin_seo/native.history.js</name>
12
  </action>
 
 
 
 
13
  </reference>
14
  <reference name="product_list_toolbar">
15
  <block type="catalin_seo/catalog_product_list_pager" name="product_list_toolbar_pager"/>
@@ -25,24 +29,28 @@
25
  </action>
26
  </reference>
27
  </catalog_category_layered>
28
-
29
  <catalog_category_layered_ajax_layer>
30
  <remove name="right"/>
31
  <remove name="header"/>
32
  <remove name="head"/>
33
  <remove name="footer"/>
34
  </catalog_category_layered_ajax_layer>
35
-
36
  <catalogsearch_result_index>
37
  <reference name="head">
38
  <action method="addItem">
39
  <type>skin_css</type>
40
- <name>css/price_slider/style.css</name>
41
  </action>
42
  <action method="addItem">
43
  <type>skin_js</type>
44
  <name>js/catalin_seo/native.history.js</name>
45
  </action>
 
 
 
 
46
  </reference>
47
  <reference name="search_result_list">
48
  <action method="setTemplate">
4
  <reference name="head">
5
  <action method="addItem">
6
  <type>skin_css</type>
7
+ <name>css/catalin_seo/style.css</name>
8
  </action>
9
  <action method="addItem">
10
  <type>skin_js</type>
11
  <name>js/catalin_seo/native.history.js</name>
12
  </action>
13
+ <action method="addItem">
14
+ <type>skin_js</type>
15
+ <name>js/catalin_seo/handler.js</name>
16
+ </action>
17
  </reference>
18
  <reference name="product_list_toolbar">
19
  <block type="catalin_seo/catalog_product_list_pager" name="product_list_toolbar_pager"/>
29
  </action>
30
  </reference>
31
  </catalog_category_layered>
32
+
33
  <catalog_category_layered_ajax_layer>
34
  <remove name="right"/>
35
  <remove name="header"/>
36
  <remove name="head"/>
37
  <remove name="footer"/>
38
  </catalog_category_layered_ajax_layer>
39
+
40
  <catalogsearch_result_index>
41
  <reference name="head">
42
  <action method="addItem">
43
  <type>skin_css</type>
44
+ <name>css/catalin_seo/style.css</name>
45
  </action>
46
  <action method="addItem">
47
  <type>skin_js</type>
48
  <name>js/catalin_seo/native.history.js</name>
49
  </action>
50
+ <action method="addItem">
51
+ <type>skin_js</type>
52
+ <name>js/catalin_seo/handler.js</name>
53
+ </action>
54
  </reference>
55
  <reference name="search_result_list">
56
  <action method="setTemplate">
app/design/frontend/base/default/template/catalin_seo/catalog/layer/filter.phtml ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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()): ?>
9
+ <span class="count">(<?php echo $_item->getCount() ?>)</span>
10
+ <?php endif; ?>
11
+ </a>
12
+ <?php else: ?>
13
+ <span>
14
+ <?php echo $_item->getLabel(); ?>
15
+ <?php if ($this->shouldDisplayProductCount()): ?>
16
+ <span class="count">(<?php echo $_item->getCount() ?>)</span>
17
+ <?php endif; ?>
18
+ </span>
19
+ <?php endif; ?>
20
+ </li>
21
+ <?php endforeach ?>
22
+ </ol>
app/design/frontend/base/default/template/catalin_seo/catalog/layer/price.phtml ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ($this->getMaxPriceFloat() != $this->getMinPriceFloat()) : ?>
2
+ <div id="price-range" class="filter-track price-slider">
3
+ <span id="price-min" class="filter-handle price-slider-from" title="Scroll to set your minimum value"></span>
4
+ <span id="price-max" class="filter-handle price-slider-to" title="Scroll to set your maximum value"></span>
5
+ </div>
6
+ <ul>
7
+ <li>
8
+ <span id="price-min-display"><?php echo $this->getCurrentMinPriceFilter(); ?></span>
9
+ <span style="float: right;" id="price-max-display"><?php echo $this->getCurrentMaxPriceFilter(); ?></span>
10
+ </li>
11
+ </ul>
12
+ <div class="a-right">
13
+ <button id="button-price-slider" class="button"
14
+ onclick="javascript: CatalinSeoHandler.handlePriceEvent(this.value)" value="">
15
+ <span><span><?php echo $this->__('Update') ?></span></span></button>
16
+ </div>
17
+
18
+ <script type="text/javascript">
19
+ <?php if ($this->helper('catalin_seo')->isAjaxEnabled()): ?>
20
+ CatalinSeoHandler.isAjaxEnabled = true;
21
+ <?php endif; ?>
22
+ CatalinSeoHandler.priceSlider.urlTemplate = '<?php echo $this->getUrlPattern(); ?>';
23
+ CatalinSeoHandler.priceSlider.maxPrice = <?php echo $this->getMaxPriceFloat(); ?>;
24
+ CatalinSeoHandler.priceSlider.minPrice = <?php echo $this->getMinPriceFloat(); ?>;
25
+ CatalinSeoHandler.priceSlider.currentMinPrice = <?php echo $this->getCurrentMinPriceFilter(); ?>;
26
+ CatalinSeoHandler.priceSlider.currentMaxPrice = <?php echo $this->getCurrentMaxPriceFilter(); ?>;
27
+ CatalinSeoHandler.bindPriceSlider();
28
+ </script>
29
+ <?php else: ?>
30
+ <span><?php echo $this->__('Price filter not available.'); ?></span>
31
+ <?php endif; ?>
app/design/frontend/base/default/template/catalin_seo/catalog/layer/view.phtml ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ($this->canShowBlock()): ?>
2
+ <?php if (!$this->getRequest()->isAjax()): ?>
3
+ <div id="layered-navigation">
4
+ <?php endif; ?>
5
+ <div class="block block-layered-nav<?php if (!$this->getLayer()->getState()->getFilters()): ?> block-layered-nav--no-filters<?php endif; ?>">
6
+ <div class="block-title">
7
+ <strong><span><?php echo $this->__('Shop By') ?></span></strong>
8
+ </div>
9
+ <div class="block-content toggle-content">
10
+ <?php echo $this->getStateHtml() ?>
11
+ <?php if ($this->getLayer()->getState()->getFilters()): ?>
12
+ <div class="actions"><a href="<?php echo $this->getClearUrl() ?>"><?php echo $this->__('Clear All') ?></a></div>
13
+ <?php endif; ?>
14
+ <?php if($this->canShowOptions()): ?>
15
+ <p class="block-subtitle block-subtitle--filter"><?php echo $this->__('Filter') ?></p>
16
+ <dl id="narrow-by-list">
17
+ <?php $_filters = $this->getFilters() ?>
18
+ <?php foreach ($_filters as $_filter): ?>
19
+ <?php if($_filter->getItemsCount()): ?>
20
+ <dt><?php echo $this->__($_filter->getName()) ?></dt>
21
+ <dd><?php echo $_filter->getHtml() ?></dd>
22
+ <?php endif; ?>
23
+ <?php endforeach; ?>
24
+ </dl>
25
+ <script type="text/javascript">decorateDataList('narrow-by-list')</script>
26
+ <?php endif; ?>
27
+ </div>
28
+ </div>
29
+ <?php if (!$this->getRequest()->isAjax()): ?>
30
+ </div>
31
+ <?php endif; ?>
32
+ <?php endif; ?>
app/design/frontend/base/default/template/catalin_seo/catalog/product/list.phtml ADDED
@@ -0,0 +1,179 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $_productCollection=$this->getLoadedProductCollection();
3
+ $_helper = $this->helper('catalog/output');
4
+ ?>
5
+ <?php if(!$_productCollection->count()): ?>
6
+ <p class="note-msg"><?php echo $this->__('There are no products matching the selection.') ?></p>
7
+ <?php else: ?>
8
+ <?php if (!$this->getRequest()->isAjax()): ?>
9
+ <div id="ajax-errors" style="display: none;">
10
+ <ul class="messages">
11
+ <li class="error-msg">
12
+ <ul>
13
+ <li><span><?php echo $this->__('An error occurred, please try again later.'); ?></span></li>
14
+ </ul>
15
+ </li>
16
+ </ul>
17
+ </div>
18
+ <div id="loading" class="please-wait" style="display: none;">
19
+ <img alt="" src="<?php echo $this->getSkinUrl('images/ajax-loader.gif'); ?>"> <?php echo $this->__('Loading, please wait...'); ?>
20
+ </div>
21
+ <div id="catalog-listing">
22
+ <?php endif; ?>
23
+ <div class="category-products">
24
+ <?php echo $this->getToolbarHtml() ?>
25
+ <?php // List mode ?>
26
+ <?php if($this->getMode()!='grid'): ?>
27
+ <?php $_iterator = 0; ?>
28
+ <ol class="products-list" id="products-list">
29
+ <?php foreach ($_productCollection as $_product): ?>
30
+ <li class="item<?php if( ++$_iterator == sizeof($_productCollection) ): ?> last<?php endif; ?>">
31
+ <?php // Product Image ?>
32
+ <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" class="product-image">
33
+ <?php /* Based on the native RWD styling, product images are displayed at a max of ~400px wide when viewed on a
34
+ one column page layout with four product columns from a 1280px viewport. For bandwidth reasons,
35
+ we are going to serve a 300px image, as it will look fine at 400px and most of the times, the image
36
+ will be displayed at a smaller size (eg, if two column are being used or viewport is smaller than 1280px).
37
+ This $_imgSize value could even be decreased further, based on the page layout
38
+ (one column, two column, three column) and number of product columns. */ ?>
39
+ <?php $_imgSize = 300; ?>
40
+ <img id="product-collection-image-<?php echo $_product->getId(); ?>"
41
+ src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->keepFrame(false)->resize($_imgSize); ?>"
42
+ alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" />
43
+ </a>
44
+ <?php // Product description ?>
45
+ <div class="product-shop">
46
+ <div class="f-fix">
47
+ <div class="product-primary">
48
+ <?php $_productNameStripped = $this->stripTags($_product->getName(), null, true); ?>
49
+ <h2 class="product-name"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $_productNameStripped; ?>"><?php echo $_helper->productAttribute($_product, $_product->getName() , 'name'); ?></a></h2>
50
+ <?php if($_product->getRatingSummary()): ?>
51
+ <?php echo $this->getReviewsSummaryHtml($_product) ?>
52
+ <?php endif; ?>
53
+
54
+ <?php
55
+ $_nameAfterChildren = $this->getChild('name.after')->getSortedChildren();
56
+ foreach($_nameAfterChildren as $_nameAfterChildName):
57
+ $_nameAfterChild = $this->getChild('name.after')->getChild($_nameAfterChildName);
58
+ $_nameAfterChild->setProduct($_product);
59
+ ?>
60
+ <?php echo $_nameAfterChild->toHtml(); ?>
61
+ <?php endforeach; ?>
62
+ </div>
63
+ <div class="product-secondary">
64
+ <?php echo $this->getPriceHtml($_product, true) ?>
65
+ </div>
66
+ <div class="product-secondary">
67
+ <?php if($_product->isSaleable() && !$_product->canConfigure()): ?>
68
+ <p class="action"><button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button></p>
69
+ <?php elseif($_product->isSaleable()): ?>
70
+ <p class="action"><a title="<?php echo $this->__('View Details') ?>" class="button" href="<?php echo $_product->getProductUrl() ?>"><?php echo $this->__('View Details') ?></a></p>
71
+ <?php else: ?>
72
+ <p class="action availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
73
+ <?php endif; ?>
74
+ <ul class="add-to-links">
75
+ <?php if ($this->helper('wishlist')->isAllow()) : ?>
76
+ <li><a href="<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>" class="link-wishlist"><?php echo $this->__('Add to Wishlist') ?></a></li>
77
+ <?php endif; ?>
78
+ <?php if($_compareUrl=$this->getAddToCompareUrl($_product)): ?>
79
+ <li><span class="separator">|</span> <a href="<?php echo $_compareUrl ?>" class="link-compare"><?php echo $this->__('Add to Compare') ?></a></li>
80
+ <?php endif; ?>
81
+ </ul>
82
+ </div>
83
+ <div class="desc std">
84
+ <?php echo $_helper->productAttribute($_product, $_product->getShortDescription(), 'short_description') ?>
85
+ <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $_productNameStripped ?>" class="link-learn"><?php echo $this->__('Learn More') ?></a>
86
+ </div>
87
+ </div>
88
+ </div>
89
+ </li>
90
+ <?php endforeach; ?>
91
+ </ol>
92
+ <script type="text/javascript">decorateList('products-list', 'none-recursive')</script>
93
+
94
+ <?php else: ?>
95
+
96
+ <?php // Grid Mode ?>
97
+
98
+ <?php $_collectionSize = $_productCollection->count() ?>
99
+ <?php $_columnCount = $this->getColumnCount(); ?>
100
+ <ul class="products-grid products-grid--max-<?php echo $_columnCount; ?>-col">
101
+ <?php $i=0; foreach ($_productCollection as $_product): ?>
102
+ <?php /*if ($i++%$_columnCount==0): ?>
103
+ <?php endif*/ ?>
104
+ <li class="item<?php if(($i-1)%$_columnCount==0): ?> first<?php elseif($i%$_columnCount==0): ?> last<?php endif; ?>">
105
+ <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" class="product-image">
106
+ <?php $_imgSize = 210; ?>
107
+ <img id="product-collection-image-<?php echo $_product->getId(); ?>"
108
+ src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize($_imgSize); ?>"
109
+ alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" />
110
+ </a>
111
+ <div class="product-info">
112
+ <h2 class="product-name"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($_product->getName(), null, true) ?>"><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></a></h2>
113
+
114
+ <?php
115
+ $_nameAfterChildren = $this->getChild('name.after')->getSortedChildren();
116
+ foreach($_nameAfterChildren as $_nameAfterChildName):
117
+ $_nameAfterChild = $this->getChild('name.after')->getChild($_nameAfterChildName);
118
+ $_nameAfterChild->setProduct($_product);
119
+ ?>
120
+ <?php echo $_nameAfterChild->toHtml(); ?>
121
+ <?php endforeach; ?>
122
+
123
+ <?php echo $this->getPriceHtml($_product, true) ?>
124
+ <?php if($_product->getRatingSummary()): ?>
125
+ <?php echo $this->getReviewsSummaryHtml($_product, 'short') ?>
126
+ <?php endif; ?>
127
+ <div class="actions">
128
+ <?php if($_product->isSaleable() && !$_product->canConfigure()): ?>
129
+ <button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button>
130
+ <?php elseif($_product->isSaleable()): ?>
131
+ <a title="<?php echo $this->__('View Details') ?>" class="button" href="<?php echo $_product->getProductUrl() ?>"><?php echo $this->__('View Details') ?></a>
132
+ <?php else: ?>
133
+ <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
134
+ <?php endif; ?>
135
+ <ul class="add-to-links">
136
+ <?php if ($this->helper('wishlist')->isAllow()) : ?>
137
+ <li><a href="<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>" class="link-wishlist"><?php echo $this->__('Add to Wishlist') ?></a></li>
138
+ <?php endif; ?>
139
+ <?php if($_compareUrl=$this->getAddToCompareUrl($_product)): ?>
140
+ <li><span class="separator">|</span> <a href="<?php echo $_compareUrl ?>" class="link-compare"><?php echo $this->__('Add to Compare') ?></a></li>
141
+ <?php endif; ?>
142
+ </ul>
143
+ </div>
144
+ </div>
145
+ </li>
146
+ <?php /*if ($i%$_columnCount==0 || $i==$_collectionSize): ?>
147
+ <?php endif*/ ?>
148
+ <?php endforeach ?>
149
+ </ul>
150
+ <script type="text/javascript">decorateGeneric($$('ul.products-grid'), ['odd','even','first','last'])</script>
151
+ <?php endif; ?>
152
+
153
+ <div class="toolbar-bottom">
154
+ <?php echo $this->getToolbarHtml() ?>
155
+ </div>
156
+ </div>
157
+ <?php if (!$this->getRequest()->isAjax()): ?>
158
+ </div>
159
+ <?php endif; ?>
160
+ <?php endif; ?>
161
+
162
+ <?php
163
+ //set product collection on after blocks
164
+ $_afterChildren = $this->getChild('after')->getSortedChildren();
165
+ foreach($_afterChildren as $_afterChildName):
166
+ $_afterChild = $this->getChild('after')->getChild($_afterChildName);
167
+ $_afterChild->setProductCollection($_productCollection);
168
+ ?>
169
+ <?php echo $_afterChild->toHtml(); ?>
170
+ <?php endforeach; ?>
171
+
172
+ <script type="text/javascript">
173
+ //<![CDATA[
174
+ <?php if ($this->helper('catalin_seo')->isAjaxEnabled()): ?>
175
+ CatalinSeoHandler.isAjaxEnabled = true;
176
+ <?php endif; ?>
177
+ CatalinSeoHandler.bindListeners();
178
+ //]]>
179
+ </script>
app/design/frontend/default/default/template/catalin_seo/catalog/layer/filter.phtml DELETED
@@ -1,26 +0,0 @@
1
- <ol>
2
- <?php foreach ($this->getItems() as $_item): ?>
3
- <li>
4
- <?php if ($_item->getCount() > 0): ?>
5
- <input type="checkbox"<?php if ($_item->isSelected()): ?> checked="checked" <?php endif; ?>
6
- <?php if ($this->helper('catalin_seo')->isAjaxEnabled()): ?>
7
- onclick="$(this).next().click()"
8
- <?php else: ?>
9
- onclick="setLocation('<?php echo ($_item->isSelected()) ? $this->urlEscape($_item->getRemoveUrl()) : $this->urlEscape($_item->getUrl()) ?>')"
10
- <?php endif; ?>
11
- />
12
- <a
13
- <?php if ($_item->isSelected()): ?>
14
- onclick="$(this).previous().checked = false;"
15
- <?php else: ?>
16
- onclick="$(this).previous().checked = true;"
17
- <?php endif; ?>
18
- href="<?php echo ($_item->isSelected()) ? $_item->getRemoveUrl() : $_item->getUrl() ?>"
19
- ><?php echo $_item->getLabel() ?></a>
20
- <?php else: ?>
21
- <?php echo $_item->getLabel() ?>
22
- <?php endif; ?>
23
- (<?php echo $_item->getCount() ?>)
24
- </li>
25
- <?php endforeach ?>
26
- </ol>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/design/frontend/default/default/template/catalin_seo/catalog/layer/price.phtml DELETED
@@ -1,63 +0,0 @@
1
- <div id="price-range" class="filter-track price-slider">
2
- <span id="price-min" class="filter-handle price-slider-from" title="Scroll to set your minimum value"></span>
3
- <span id="price-max" class="filter-handle price-slider-to" title="Scroll to set your maximum value"></span>
4
- </div>
5
- <ul>
6
- <li>
7
- <span id="price-min-display"><?php echo $this->getCurrentMinPriceFilter(); ?></span>
8
- <span style="float: right;" id="price-max-display"><?php echo $this->getCurrentMaxPriceFilter(); ?></span>
9
- </li>
10
- </ul>
11
- <?php if ($this->isSubmitTypeButton()): ?>
12
- <div class="a-right">
13
- <button id="button-price-slider" class="button" onclick="handlePriceEvent(this.value)" value=""><span><span><?php echo $this->__('Update') ?></span></span></button>
14
- </div>
15
- <?php endif; ?>
16
-
17
- <script type="text/javascript">
18
- priceSliderUrlTemplate = '<?php echo $this->getUrlPattern(); ?>';
19
-
20
- <?php if (!$this->getRequest()->isAjax()): ?>
21
- function handlePriceEvent(val) {
22
- if (val) {
23
- var url = priceSliderUrlTemplate.replace('__PRICE_VALUE__', val);
24
- <?php if ($this->helper('catalin_seo')->isAjaxEnabled()): ?>
25
- handleEvent(url);
26
- <?php else: ?>
27
- window.location.href = url;
28
- <?php endif; ?>
29
- }
30
- }
31
- <?php endif; ?>
32
-
33
- maxPriceInt = <?php echo $this->getMaxPriceFloat(); ?>;
34
- minPriceInt = <?php echo $this->getMinPriceFloat(); ?>;
35
- <?php if (!$this->isSubmitTypeButton()): ?>
36
- timerSlider = null;
37
- priceSliderDelay = <?php echo $this->helper('catalin_seo')->getPriceSliderDelay() * 1000 ?>;
38
- <?php endif; ?>
39
- // horizontal slider control with preset values
40
- new Control.Slider([$('price-min'), $('price-max')], 'price-range', {
41
- range: $R(minPriceInt, maxPriceInt),
42
- sliderValue: [<?php echo $this->getCurrentMinPriceFilter(); ?>, <?php echo $this->getCurrentMaxPriceFilter(); ?>],
43
- values: $R(minPriceInt, maxPriceInt),
44
-
45
- restricted: true,
46
- onChange: function(val){
47
- if (val[0] != <?php echo $this->getCurrentMinPriceFilter(); ?> || val[1] != <?php echo $this->getCurrentMaxPriceFilter(); ?>) {
48
- <?php if ($this->isSubmitTypeButton()): ?>
49
- $('button-price-slider').value = val.join('-');
50
- <?php else: ?>
51
- if (timerSlider) {
52
- clearTimeout(timerSlider);
53
- }
54
- timerSlider = setTimeout(handlePriceEvent, priceSliderDelay, val.join('-'));
55
- <?php endif; ?>
56
- }
57
- },
58
- onSlide: function(val){
59
- $('price-max-display').innerHTML = val[1];
60
- $('price-min-display').innerHTML = val[0];
61
- }
62
- });
63
- </script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/design/frontend/default/default/template/catalin_seo/catalog/layer/view.phtml DELETED
@@ -1,35 +0,0 @@
1
- <?php if ($this->canShowBlock()): ?>
2
- <?php if (!$this->getRequest()->isAjax()): ?>
3
- <div id="layered-navigation">
4
- <?php endif; ?>
5
- <div class="block block-layered-nav">
6
- <div class="block-title">
7
- <strong><span><?php echo $this->__('Shop By') ?></span></strong>
8
- </div>
9
- <?php echo $this->getStateHtml() ?>
10
- <div class="block-content">
11
- <?php if ($this->getLayer()->getState()->getFilters()): ?>
12
- <div class="actions"><a href="<?php echo $this->getClearUrl() ?>"><?php echo $this->__('Clear All') ?></a></div>
13
- <?php endif; ?>
14
- <?php if ($this->canShowOptions()): ?>
15
- <p class="block-subtitle"><?php echo $this->__('Shopping Options') ?></p>
16
- <dl id="narrow-by-list">
17
- <?php $_filters = $this->getFilters() ?>
18
- <?php foreach ($_filters as $_filter): ?>
19
- <?php if ($_filter->getItemsCount()): ?>
20
- <dt><?php echo $this->__($_filter->getName()) ?></dt>
21
- <dd><?php echo $_filter->getHtml() ?></dd>
22
- <?php endif; ?>
23
- <?php endforeach; ?>
24
- </dl>
25
- <script type="text/javascript">decorateDataList('narrow-by-list')</script>
26
- <?php endif; ?>
27
- <?php if ($this->getLayer()->getState()->getFilters()): ?>
28
- <div class="actions"><a href="<?php echo $this->getClearUrl() ?>"><?php echo $this->__('Clear All') ?></a></div>
29
- <?php endif; ?>
30
- </div>
31
- </div>
32
- <?php if (!$this->getRequest()->isAjax()): ?>
33
- </div>
34
- <?php endif; ?>
35
- <?php endif; ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/design/frontend/default/default/template/catalin_seo/catalog/product/list.phtml DELETED
@@ -1,222 +0,0 @@
1
- <?php
2
- $_productCollection=$this->getLoadedProductCollection();
3
- $_helper = $this->helper('catalog/output');
4
- ?>
5
- <?php if(!$_productCollection->count()): ?>
6
- <p class="note-msg"><?php echo $this->__('There are no products matching the selection.') ?></p>
7
- <?php else: ?>
8
- <?php if (!$this->getRequest()->isAjax()): ?>
9
- <div id="ajax-errors" style="display: none;">
10
- <ul class="messages">
11
- <li class="error-msg">
12
- <ul>
13
- <li><span><?php echo $this->__('An error occurred, please try again later.'); ?></span></li>
14
- </ul>
15
- </li>
16
- </ul>
17
- </div>
18
- <div id="loading" style="display: none; margin-bottom: 10px; text-align: center;">
19
- <img class="v-middle" alt="" src="<?php echo $this->getSkinUrl('images/opc-ajax-loader.gif'); ?>"> <?php echo $this->__('Loading, please wait...'); ?>
20
- </div>
21
- <div id="catalog-listing">
22
- <?php endif; ?>
23
- <div class="category-products">
24
- <?php echo $this->getToolbarHtml() ?>
25
- <?php // List mode ?>
26
- <?php if($this->getMode()!='grid'): ?>
27
- <?php $_iterator = 0; ?>
28
- <ol class="products-list" id="products-list">
29
- <?php foreach ($_productCollection as $_product): ?>
30
- <li class="item<?php if( ++$_iterator == sizeof($_productCollection) ): ?> last<?php endif; ?>">
31
- <?php // Product Image ?>
32
- <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" class="product-image"><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(135); ?>" width="135" height="135" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" /></a>
33
- <?php // Product description ?>
34
- <div class="product-shop">
35
- <div class="f-fix">
36
- <?php $_productNameStripped = $this->stripTags($_product->getName(), null, true); ?>
37
- <h2 class="product-name"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $_productNameStripped; ?>"><?php echo $_helper->productAttribute($_product, $_product->getName() , 'name'); ?></a></h2>
38
- <?php if($_product->getRatingSummary()): ?>
39
- <?php echo $this->getReviewsSummaryHtml($_product) ?>
40
- <?php endif; ?>
41
- <?php echo $this->getPriceHtml($_product, true) ?>
42
- <?php if($_product->isSaleable()): ?>
43
- <p><button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button></p>
44
- <?php else: ?>
45
- <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
46
- <?php endif; ?>
47
- <div class="desc std">
48
- <?php echo $_helper->productAttribute($_product, $_product->getShortDescription(), 'short_description') ?>
49
- <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $_productNameStripped ?>" class="link-learn"><?php echo $this->__('Learn More') ?></a>
50
- </div>
51
- <ul class="add-to-links">
52
- <?php if ($this->helper('wishlist')->isAllow()) : ?>
53
- <li><a href="<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>" class="link-wishlist"><?php echo $this->__('Add to Wishlist') ?></a></li>
54
- <?php endif; ?>
55
- <?php if($_compareUrl=$this->getAddToCompareUrl($_product)): ?>
56
- <li><span class="separator">|</span> <a href="<?php echo $_compareUrl ?>" class="link-compare"><?php echo $this->__('Add to Compare') ?></a></li>
57
- <?php endif; ?>
58
- </ul>
59
- </div>
60
- </div>
61
- </li>
62
- <?php endforeach; ?>
63
- </ol>
64
- <script type="text/javascript">decorateList('products-list', 'none-recursive')</script>
65
-
66
- <?php else: ?>
67
-
68
- <?php // Grid Mode ?>
69
-
70
- <?php $_collectionSize = $_productCollection->count() ?>
71
- <?php $_columnCount = $this->getColumnCount(); ?>
72
- <?php $i=0; foreach ($_productCollection as $_product): ?>
73
- <?php if ($i++%$_columnCount==0): ?>
74
- <ul class="products-grid">
75
- <?php endif ?>
76
- <li class="item<?php if(($i-1)%$_columnCount==0): ?> first<?php elseif($i%$_columnCount==0): ?> last<?php endif; ?>">
77
- <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" class="product-image"><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(135); ?>" width="135" height="135" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" /></a>
78
- <h2 class="product-name"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($_product->getName(), null, true) ?>"><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></a></h2>
79
- <?php if($_product->getRatingSummary()): ?>
80
- <?php echo $this->getReviewsSummaryHtml($_product, 'short') ?>
81
- <?php endif; ?>
82
- <?php echo $this->getPriceHtml($_product, true) ?>
83
- <div class="actions">
84
- <?php if($_product->isSaleable()): ?>
85
- <button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button>
86
- <?php else: ?>
87
- <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
88
- <?php endif; ?>
89
- <ul class="add-to-links">
90
- <?php if ($this->helper('wishlist')->isAllow()) : ?>
91
- <li><a href="<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>" class="link-wishlist"><?php echo $this->__('Add to Wishlist') ?></a></li>
92
- <?php endif; ?>
93
- <?php if($_compareUrl=$this->getAddToCompareUrl($_product)): ?>
94
- <li><span class="separator">|</span> <a href="<?php echo $_compareUrl ?>" class="link-compare"><?php echo $this->__('Add to Compare') ?></a></li>
95
- <?php endif; ?>
96
- </ul>
97
- </div>
98
- </li>
99
- <?php if ($i%$_columnCount==0 || $i==$_collectionSize): ?>
100
- </ul>
101
- <?php endif ?>
102
- <?php endforeach ?>
103
- <script type="text/javascript">decorateGeneric($$('ul.products-grid'), ['odd','even','first','last'])</script>
104
- <?php endif; ?>
105
-
106
- <div class="toolbar-bottom">
107
- <?php echo $this->getToolbarHtml() ?>
108
- </div>
109
- </div>
110
- <?php if (!$this->getRequest()->isAjax()): ?>
111
- </div>
112
- <?php endif; ?>
113
- <?php endif; ?>
114
-
115
- <?php if ($this->helper('catalin_seo')->isAjaxEnabled() && !$this->getRequest()->isAjax()): ?>
116
- <script type="text/javascript">
117
- //<![CDATA[
118
- function pushState(data, link, replace) {
119
- var History = window.History;
120
- if ( !History.enabled ) {
121
- return false;
122
- }
123
-
124
- if (replace) {
125
- History.replaceState(data, document.title, link);
126
- } else {
127
- History.pushState(data, document.title, link);
128
- }
129
- }
130
-
131
- function handleEvent(el, event) {
132
- var url, fullUrl;
133
- if (typeof el === 'string') {
134
- url = el;
135
- } else if (el.tagName.toLowerCase() === 'a') {
136
- url = $(el).readAttribute('href');
137
- } else if (el.tagName.toLowerCase() === 'select') {
138
- url = $(el).getValue();
139
- }
140
-
141
- <?php // Add this to query string for full page caching systems ?>
142
- if (url.indexOf('?') != -1) {
143
- fullUrl = url + '&isLayerAjax=1';
144
- } else {
145
- fullUrl = url + '?isLayerAjax=1';
146
- }
147
-
148
- $('loading').show();
149
- $('ajax-errors').hide();
150
-
151
- pushState(null, url, false);
152
-
153
- new Ajax.Request(fullUrl, {
154
- method: 'get',
155
- onSuccess: function(transport) {
156
- if (transport.responseJSON) {
157
- $('catalog-listing').update(transport.responseJSON.listing);
158
- $('layered-navigation').update(transport.responseJSON.layer);
159
- pushState({
160
- listing: transport.responseJSON.listing,
161
- layer: transport.responseJSON.layer
162
- }, url, true);
163
- ajaxListener();
164
- } else {
165
- $('ajax-errors').show();
166
- }
167
- $('loading').hide();
168
- }
169
- });
170
-
171
- if (event) {
172
- event.preventDefault();
173
- }
174
- }
175
- function ajaxListener() {
176
- var els;
177
- els = $$('div.pager a').concat(
178
- $$('div.sorter a'),
179
- $$('div.pager select'),
180
- $$('div.sorter select'),
181
- $$('div.block-layered-nav a')
182
- );
183
- els.each(function(el) {
184
- if (el.tagName.toLowerCase() === 'a') {
185
- $(el).observe('click', function(event) {
186
- handleEvent(this, event);
187
- });
188
- } else if (el.tagName.toLowerCase() === 'select') {
189
- $(el).setAttribute('onchange', '');
190
- $(el).observe('change', function(event) {
191
- handleEvent(this, event);
192
- });
193
- }
194
- });
195
- }
196
- document.observe("dom:loaded", function() {
197
- ajaxListener();
198
-
199
- (function(History) {
200
- if ( !History.enabled ) {
201
- return false;
202
- }
203
-
204
- pushState({
205
- listing: $('catalog-listing').innerHTML,
206
- layer: $('layered-navigation').innerHTML
207
- }, document.location.href, true);
208
-
209
- // Bind to StateChange Event
210
- History.Adapter.bind(window, 'popstate', function(event) {
211
- if (event.type == 'popstate') {
212
- var State = History.getState();
213
- $('catalog-listing').update(State.data.listing);
214
- $('layered-navigation').update(State.data.layer);
215
- ajaxListener();
216
- }
217
- });
218
- })(window.History);
219
- });
220
- //]]>
221
- </script>
222
- <?php endif; ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/etc/modules/Catalin_SEO.xml CHANGED
File without changes
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Catalin_Seo</name>
4
- <version>2.0.8</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">OSL</license>
7
  <channel>community</channel>
@@ -11,16 +11,22 @@
11
  &lt;h2&gt;Features&lt;/h2&gt;&#xD;
12
  &lt;ul&gt;&#xD;
13
  &lt;li&gt;ajax navigation using history pushState/popState (only for HTML5 browsers)&lt;/li&gt;&#xD;
14
- &lt;li&gt;price slider with auto update or submit button&lt;/li&gt;&#xD;
15
- &lt;li&gt;SEO URLs (http://www.example.com/apparel/shoes/list/color/Brown,Blue/shoe_type/Sandal.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>Changed price slider images.</notes>
 
 
 
 
 
 
20
  <authors><author><name>Catalin Ciobanu</name><user>catalin_ciobanu</user><email>caciobanu@gmail.com</email></author></authors>
21
- <date>2014-01-19</date>
22
- <time>12:43:40</time>
23
- <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="decdc5633827964ff7aba28f8e8f89ff"/><file name="Price.php" hash="d8e2969eb67d35ceb27fb2fdee0ba8a1"/></dir><file name="State.php" hash="fd21c5a6603427ae81e7eddbef3d827f"/></dir><dir name="Product"><dir name="List"><file name="Pager.php" hash="7720a417475b5a512d383fd06242e43a"/><file name="Toolbar.php" hash="1624c89efb4f94ed1f35622c70fd3d9a"/></dir></dir></dir><dir name="CatalogSearch"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="008e737de084f5a400518bda4dda09f8"/></dir></dir></dir></dir><dir name="Controller"><file name="Router.php" hash="a1fae53e03202bb9f08ea9063b4163e6"/></dir><dir name="Helper"><file name="Data.php" hash="d9f1eec7ba58642c5f62c6b884681222"/><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="17dde650381b5a65dd1c3fc6d942bb2a"/><file name="Category.php" hash="55e98521d3d172ddb4a9ddcdde0d2f58"/><file name="Item.php" hash="13654b27109eebf1a6c619e5629bfb5e"/><file name="Price.php" hash="2a89c5d7fa8cbc4adf1eb4e0cea45710"/></dir></dir><file name="Layer.php" hash="c23bfdfc7bcd8662d40d30b93a98f687"/><dir name="Resource"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="7f235b63e342d77b18da3ffffd97de10"/></dir></dir></dir></dir><dir name="CatalogSearch"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="10d9f2ce5066e42a3338c1a6018f2643"/></dir></dir><file name="Layer.php" hash="3f980ee1a82354d0bd65edde410a2818"/></dir><dir name="Indexer"><file name="Attribute.php" hash="9d5bd74b9c9204c4aee3fd6f0478688b"/></dir><dir name="Resource"><dir name="Attribute"><file name="Urlkey.php" hash="54d9cd6ecff9198f6db4b584d7ca65b8"/></dir><dir name="Indexer"><file name="Attribute.php" hash="c221b943055536b1adb19b9f3ea1d57b"/></dir></dir><dir name="System"><dir name="Config"><dir name="Backend"><dir name="Seo"><file name="Catalog.php" hash="233ca11b938d6198b5a4400a2c5e1d61"/></dir></dir><dir name="Source"><dir name="Slider"><dir name="Submit"><file name="Type.php" hash="cb2383c3568982b09e4878735e598fca"/></dir></dir></dir></dir></dir></dir><dir name="controllers"><file name="CategoryController.php" hash="6d34f9ca5e73384c14f8dd98e0991629"/><file name="ResultController.php" hash="5e520cd6609a0c5f474d956c6a089f89"/></dir><dir name="etc"><file name="adminhtml.xml" hash="240f607b0156d1de84667b382ba3f73c"/><file name="config.xml" hash="56c88700a5efaf312d06f05acf2211c0"/><file name="system.xml" hash="92e698eebc986af7d98f9676138730cd"/></dir><dir name="sql"><dir name="catalin_seo_setup"><file name="install-2.0.0.php" hash="1f1e47269b9658b4a3f53cb17ba728e1"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="default"><dir name="default"><dir name="layout"><file name="catalin_seo.xml" hash="17f80ca298cc0093ef29f69d02e8117b"/></dir><dir name="template"><dir name="catalin_seo"><dir><dir name="catalog"><dir name="layer"><file name="filter.phtml" hash="dd1d3278e691814f0cd242179e5bf53f"/><file name="price.phtml" hash="3095968ded71d4d7c37bd3300606b309"/><file name="view.phtml" hash="bc5f21109be4dab996b152e7a756fe03"/></dir><dir name="product"><file name="list.phtml" hash="8228c48a98c8cca4c2ab18cd2df99239"/></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="default"><dir name="default"><dir name="css"><dir name="price_slider"><file name="style.css" hash="860768c84b59ed6f5cb200f7740ac42d"/></dir></dir><dir name="images"><dir name="price_slider"><file name="bkg_slider.png" hash="898eb55265200836a479588ed54e1309"/><file name="slider.png" hash="b95e0855075c3a854a220dc886445ea0"/></dir></dir><dir name="js"><dir name="catalin_seo"><file name="native.history.js" hash="ee04bc106db73bdbe17a0eac44497df1"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Catalin_SEO.xml" hash="e0ad01abfe976aefb6587fcfb3bf0d2b"/></dir></target></contents>
24
  <compatible/>
25
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
26
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Catalin_Seo</name>
4
+ <version>2.1.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">OSL</license>
7
  <channel>community</channel>
11
  &lt;h2&gt;Features&lt;/h2&gt;&#xD;
12
  &lt;ul&gt;&#xD;
13
  &lt;li&gt;ajax navigation using history pushState/popState (only for HTML5 browsers)&lt;/li&gt;&#xD;
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>- fixed layout issues for the Magento 1.9 theme&#xD;
20
+ - fixed price slider to select products including ones that have the price equal to min and max.&#xD;
21
+ - updated native.history.js&#xD;
22
+ - removed the price slider delayed auto submit - counter intuitive and harmfull&#xD;
23
+ - fixed issue with AM and AM+ filters&#xD;
24
+ - minimum supported Magento version is 1.9&#xD;
25
+ - fixed issues with flat catalog category enabled</notes>
26
  <authors><author><name>Catalin Ciobanu</name><user>catalin_ciobanu</user><email>caciobanu@gmail.com</email></author></authors>
27
+ <date>2014-10-13</date>
28
+ <time>18:14:13</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="decdc5633827964ff7aba28f8e8f89ff"/><file name="Price.php" hash="1a0f2b2c455e50614a4ac1694640cd56"/></dir><file name="State.php" hash="fd21c5a6603427ae81e7eddbef3d827f"/></dir><dir name="Product"><dir name="List"><file name="Pager.php" hash="7720a417475b5a512d383fd06242e43a"/><file name="Toolbar.php" hash="1624c89efb4f94ed1f35622c70fd3d9a"/></dir></dir></dir><dir name="CatalogSearch"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="008e737de084f5a400518bda4dda09f8"/></dir></dir></dir></dir><dir name="Controller"><file name="Router.php" hash="22133b902420683a41df3a6b935a84b7"/></dir><dir name="Helper"><file name="Data.php" hash="513ad6d9c86166adb5749e856c8eb83d"/><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="17dde650381b5a65dd1c3fc6d942bb2a"/><file name="Category.php" hash="2cd4f37176f394c411f9c705507e81d5"/><file name="Item.php" hash="13654b27109eebf1a6c619e5629bfb5e"/><file name="Price.php" hash="007863c9ab2335d90ce99e297231e950"/></dir></dir><file name="Layer.php" hash="c23bfdfc7bcd8662d40d30b93a98f687"/><dir name="Resource"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="7f235b63e342d77b18da3ffffd97de10"/><file name="Price.php" hash="b72298d29e1b021c4e35bf05acd2c3a3"/></dir></dir></dir></dir><dir name="CatalogSearch"><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="10d9f2ce5066e42a3338c1a6018f2643"/></dir></dir><file name="Layer.php" hash="3f980ee1a82354d0bd65edde410a2818"/></dir><dir name="Indexer"><file name="Attribute.php" hash="9d5bd74b9c9204c4aee3fd6f0478688b"/></dir><dir name="Resource"><dir name="Attribute"><file name="Urlkey.php" hash="54d9cd6ecff9198f6db4b584d7ca65b8"/></dir><dir name="Indexer"><file name="Attribute.php" hash="483fdb9cc0429e7111f35403cc5fe1b0"/></dir></dir><dir name="System"><dir name="Config"><dir name="Backend"><dir name="Seo"><file name="Catalog.php" hash="233ca11b938d6198b5a4400a2c5e1d61"/></dir></dir></dir></dir></dir><dir name="controllers"><file name="CategoryController.php" hash="6d34f9ca5e73384c14f8dd98e0991629"/><file name="ResultController.php" hash="5e520cd6609a0c5f474d956c6a089f89"/></dir><dir name="etc"><file name="adminhtml.xml" hash="240f607b0156d1de84667b382ba3f73c"/><file name="config.xml" hash="84497b48a381ac370292a3ac70d3a7b1"/><file name="system.xml" hash="aedb1897f2d1f3f062e626c7c35ee314"/></dir><dir name="sql"><dir name="catalin_seo_setup"><file name="install-2.0.0.php" hash="1f1e47269b9658b4a3f53cb17ba728e1"/></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="61db99f6cfd6fe7bd52b8e0093f34643"/></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="439011ed74a9d1fa4340935891a8ab2c"/></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.js" hash="a6d2ef5787f3fd329c54f68b07225fd4"/><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="e0ad01abfe976aefb6587fcfb3bf0d2b"/></dir></target></contents>
30
  <compatible/>
31
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
32
  </package>
skin/frontend/base/default/css/catalin_seo/style.css ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ div.price-slider {
2
+ background: url("../../images/catalin_seo/bkg_slider.png") repeat-x scroll 0 0 transparent;
3
+ height: 17px;
4
+ }
5
+
6
+ div.price-slider .filter-handle {
7
+ height: 17px;
8
+ width: 10px;
9
+ cursor: e-resize;
10
+ display: block;
11
+ }
12
+
13
+ div.price-slider .price-slider-from {
14
+ background: url("../../images/catalin_seo/slider.png") no-repeat scroll 0 0 transparent;
15
+ }
16
+
17
+ div.price-slider .price-slider-to {
18
+ background: url("../../images/catalin_seo/slider.png") no-repeat scroll -26px 0 transparent;
19
+ cursor: w-resize;
20
+ margin-top: -17px;
21
+ }
skin/frontend/{default/default/images/price_slider → base/default/images/catalin_seo}/bkg_slider.png RENAMED
File without changes
skin/frontend/{default/default/images/price_slider → base/default/images/catalin_seo}/slider.png RENAMED
File without changes
skin/frontend/base/default/js/catalin_seo/handler.js ADDED
@@ -0,0 +1,152 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ var CatalinSeoHandler = {
2
+ listenersBinded: false,
3
+ isAjaxEnabled: false,
4
+ priceSlider: {
5
+ urlTemplate: '',
6
+ minPrice: 0,
7
+ maxPrice: 0,
8
+ currentMinPrice: 0,
9
+ currentMaxPrice: 0
10
+ },
11
+ handlePriceEvent: function (val) {
12
+ var self = this;
13
+ if (val) {
14
+ var url = self.priceSlider.urlTemplate.replace('__PRICE_VALUE__', val);
15
+ if (self.isAjaxEnabled) {
16
+ self.handleEvent(url);
17
+ } else {
18
+ window.location.href = url;
19
+ }
20
+ }
21
+ },
22
+ handleEvent: function (el, event) {
23
+ var url, fullUrl;
24
+ var self = this;
25
+ if (typeof el === 'string') {
26
+ url = el;
27
+ } else if (el.tagName.toLowerCase() === 'a') {
28
+ url = $(el).readAttribute('href');
29
+ } else if (el.tagName.toLowerCase() === 'select') {
30
+ url = $(el).getValue();
31
+ }
32
+
33
+ // Add this to query string for full page caching systems
34
+ if (url.indexOf('?') != -1) {
35
+ fullUrl = url + '&isLayerAjax=1';
36
+ } else {
37
+ fullUrl = url + '?isLayerAjax=1';
38
+ }
39
+
40
+ $('loading').show();
41
+ $('ajax-errors').hide();
42
+
43
+ self.pushState(null, url, false);
44
+
45
+ new Ajax.Request(fullUrl, {
46
+ method: 'get',
47
+ onSuccess: function (transport) {
48
+ if (transport.responseJSON) {
49
+ $('catalog-listing').update(transport.responseJSON.listing);
50
+ $('layered-navigation').update(transport.responseJSON.layer);
51
+ self.pushState({
52
+ listing: transport.responseJSON.listing,
53
+ layer: transport.responseJSON.layer
54
+ }, url, true);
55
+ self.ajaxListener();
56
+ } else {
57
+ $('ajax-errors').show();
58
+ }
59
+ $('loading').hide();
60
+ }
61
+ });
62
+
63
+ if (event) {
64
+ event.preventDefault();
65
+ }
66
+ },
67
+ pushState: function (data, link, replace) {
68
+ var History = window.History;
69
+ if (!History.enabled) {
70
+ return false;
71
+ }
72
+
73
+ if (replace) {
74
+ History.replaceState(data, document.title, link);
75
+ } else {
76
+ History.pushState(data, document.title, link);
77
+ }
78
+ },
79
+ ajaxListener: function () {
80
+ var self = this;
81
+ var els;
82
+ els = $$('div.pager a').concat(
83
+ $$('div.sorter a'),
84
+ $$('div.pager select'),
85
+ $$('div.sorter select'),
86
+ $$('div.block-layered-nav a')
87
+ );
88
+ els.each(function (el) {
89
+ if (el.tagName.toLowerCase() === 'a') {
90
+ $(el).observe('click', function (event) {
91
+ self.handleEvent(this, event);
92
+ });
93
+ } else if (el.tagName.toLowerCase() === 'select') {
94
+ $(el).setAttribute('onchange', '');
95
+ $(el).observe('change', function (event) {
96
+ self.handleEvent(this, event);
97
+ });
98
+ }
99
+ });
100
+ },
101
+ bindPriceSlider: function () {
102
+ var self = this;
103
+ new Control.Slider([$('price-min'), $('price-max')], 'price-range', {
104
+ range: $R(self.priceSlider.minPrice, self.priceSlider.maxPrice),
105
+ sliderValue: [self.priceSlider.currentMinPrice, self.priceSlider.currentMaxPrice],
106
+ values: $R(self.priceSlider.minPrice, self.priceSlider.maxPrice),
107
+
108
+ restricted: true,
109
+ onChange: function (val) {
110
+ if (val[0] != self.priceSlider.currentMinPrice || val[1] != self.priceSlider.currentMaxPrice) {
111
+ $('button-price-slider').value = val.join('-');
112
+ }
113
+ },
114
+ onSlide: function (val) {
115
+ $('price-max-display').innerHTML = val[1];
116
+ $('price-min-display').innerHTML = val[0];
117
+ }
118
+ }
119
+ );
120
+ },
121
+ bindListeners: function () {
122
+ var self = this;
123
+ if (self.listenersBinded || !self.isAjaxEnabled) {
124
+ return false;
125
+ }
126
+ self.listenersBinded = true;
127
+ document.observe("dom:loaded", function () {
128
+ self.ajaxListener();
129
+
130
+ (function (History) {
131
+ if (!History.enabled) {
132
+ return false;
133
+ }
134
+
135
+ self.pushState({
136
+ listing: $('catalog-listing').innerHTML,
137
+ layer: $('layered-navigation').innerHTML
138
+ }, document.location.href, true);
139
+
140
+ // Bind to StateChange Event
141
+ History.Adapter.bind(window, 'popstate', function (event) {
142
+ if (event.type == 'popstate') {
143
+ var State = History.getState();
144
+ $('catalog-listing').update(State.data.listing);
145
+ $('layered-navigation').update(State.data.layer);
146
+ self.ajaxListener();
147
+ }
148
+ });
149
+ })(window.History);
150
+ });
151
+ }
152
+ }
skin/frontend/base/default/js/catalin_seo/native.history.js ADDED
@@ -0,0 +1 @@
 
1
+ (function(e,t){"use strict";var n=e.History=e.History||{};if(typeof n.Adapter!="undefined")throw new Error("History.js Adapter has already been loaded...");n.Adapter={handlers:{},_uid:1,uid:function(e){return e._uid||(e._uid=n.Adapter._uid++)},bind:function(e,t,r){var i=n.Adapter.uid(e);n.Adapter.handlers[i]=n.Adapter.handlers[i]||{},n.Adapter.handlers[i][t]=n.Adapter.handlers[i][t]||[],n.Adapter.handlers[i][t].push(r),e["on"+t]=function(e,t){return function(r){n.Adapter.trigger(e,t,r)}}(e,t)},trigger:function(e,t,r){r=r||{};var i=n.Adapter.uid(e),s,o;n.Adapter.handlers[i]=n.Adapter.handlers[i]||{},n.Adapter.handlers[i][t]=n.Adapter.handlers[i][t]||[];for(s=0,o=n.Adapter.handlers[i][t].length;s<o;++s)n.Adapter.handlers[i][t][s].apply(this,[r])},extractEventData:function(e,n){var r=n&&n[e]||t;return r},onDomLoad:function(t){var n=e.setTimeout(function(){t()},2e3);e.onload=function(){clearTimeout(n),t()}}},typeof n.init!="undefined"&&n.init()})(window),function(e,t){"use strict";var n=e.console||t,r=e.document,i=e.navigator,s=!1,o=e.setTimeout,u=e.clearTimeout,a=e.setInterval,f=e.clearInterval,l=e.JSON,c=e.alert,h=e.History=e.History||{},p=e.history;try{s=e.sessionStorage,s.setItem("TEST","1"),s.removeItem("TEST")}catch(d){s=!1}l.stringify=l.stringify||l.encode,l.parse=l.parse||l.decode;if(typeof h.init!="undefined")throw new Error("History.js Core has already been loaded...");h.init=function(e){return typeof h.Adapter=="undefined"?!1:(typeof h.initCore!="undefined"&&h.initCore(),typeof h.initHtml4!="undefined"&&h.initHtml4(),!0)},h.initCore=function(d){if(typeof h.initCore.initialized!="undefined")return!1;h.initCore.initialized=!0,h.options=h.options||{},h.options.hashChangeInterval=h.options.hashChangeInterval||100,h.options.safariPollInterval=h.options.safariPollInterval||500,h.options.doubleCheckInterval=h.options.doubleCheckInterval||500,h.options.disableSuid=h.options.disableSuid||!1,h.options.storeInterval=h.options.storeInterval||1e3,h.options.busyDelay=h.options.busyDelay||250,h.options.debug=h.options.debug||!1,h.options.initialTitle=h.options.initialTitle||r.title,h.options.html4Mode=h.options.html4Mode||!1,h.options.delayInit=h.options.delayInit||!1,h.intervalList=[],h.clearAllIntervals=function(){var e,t=h.intervalList;if(typeof t!="undefined"&&t!==null){for(e=0;e<t.length;e++)f(t[e]);h.intervalList=null}},h.debug=function(){(h.options.debug||!1)&&h.log.apply(h,arguments)},h.log=function(){var e=typeof n!="undefined"&&typeof n.log!="undefined"&&typeof n.log.apply!="undefined",t=r.getElementById("log"),i,s,o,u,a;e?(u=Array.prototype.slice.call(arguments),i=u.shift(),typeof n.debug!="undefined"?n.debug.apply(n,[i,u]):n.log.apply(n,[i,u])):i="\n"+arguments[0]+"\n";for(s=1,o=arguments.length;s<o;++s){a=arguments[s];if(typeof a=="object"&&typeof l!="undefined")try{a=l.stringify(a)}catch(f){}i+="\n"+a+"\n"}return t?(t.value+=i+"\n-----\n",t.scrollTop=t.scrollHeight-t.clientHeight):e||c(i),!0},h.getInternetExplorerMajorVersion=function(){var e=h.getInternetExplorerMajorVersion.cached=typeof h.getInternetExplorerMajorVersion.cached!="undefined"?h.getInternetExplorerMajorVersion.cached:function(){var e=3,t=r.createElement("div"),n=t.getElementsByTagName("i");while((t.innerHTML="<!--[if gt IE "+ ++e+"]><i></i><![endif]-->")&&n[0]);return e>4?e:!1}();return e},h.isInternetExplorer=function(){var e=h.isInternetExplorer.cached=typeof h.isInternetExplorer.cached!="undefined"?h.isInternetExplorer.cached:Boolean(h.getInternetExplorerMajorVersion());return e},h.options.html4Mode?h.emulated={pushState:!0,hashChange:!0}:h.emulated={pushState:!Boolean(e.history&&e.history.pushState&&e.history.replaceState&&!/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i.test(i.userAgent)&&!/AppleWebKit\/5([0-2]|3[0-2])/i.test(i.userAgent)),hashChange:Boolean(!("onhashchange"in e||"onhashchange"in r)||h.isInternetExplorer()&&h.getInternetExplorerMajorVersion()<8)},h.enabled=!h.emulated.pushState,h.bugs={setHash:Boolean(!h.emulated.pushState&&i.vendor==="Apple Computer, Inc."&&/AppleWebKit\/5([0-2]|3[0-3])/.test(i.userAgent)),safariPoll:Boolean(!h.emulated.pushState&&i.vendor==="Apple Computer, Inc."&&/AppleWebKit\/5([0-2]|3[0-3])/.test(i.userAgent)),ieDoubleCheck:Boolean(h.isInternetExplorer()&&h.getInternetExplorerMajorVersion()<8),hashEscape:Boolean(h.isInternetExplorer()&&h.getInternetExplorerMajorVersion()<7)},h.isEmptyObject=function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0},h.cloneObject=function(e){var t,n;return e?(t=l.stringify(e),n=l.parse(t)):n={},n},h.getRootUrl=function(){var e=r.location.protocol+"//"+(r.location.hostname||r.location.host);if(r.location.port||!1)e+=":"+r.location.port;return e+="/",e},h.getBaseHref=function(){var e=r.getElementsByTagName("base"),t=null,n="";return e.length===1&&(t=e[0],n=t.href.replace(/[^\/]+$/,"")),n=n.replace(/\/+$/,""),n&&(n+="/"),n},h.getBaseUrl=function(){var e=h.getBaseHref()||h.getBasePageUrl()||h.getRootUrl();return e},h.getPageUrl=function(){var e=h.getState(!1,!1),t=(e||{}).url||h.getLocationHref(),n;return n=t.replace(/\/+$/,"").replace(/[^\/]+$/,function(e,t,n){return/\./.test(e)?e:e+"/"}),n},h.getBasePageUrl=function(){var e=h.getLocationHref().replace(/[#\?].*/,"").replace(/[^\/]+$/,function(e,t,n){return/[^\/]$/.test(e)?"":e}).replace(/\/+$/,"")+"/";return e},h.getFullUrl=function(e,t){var n=e,r=e.substring(0,1);return t=typeof t=="undefined"?!0:t,/[a-z]+\:\/\//.test(e)||(r==="/"?n=h.getRootUrl()+e.replace(/^\/+/,""):r==="#"?n=h.getPageUrl().replace(/#.*/,"")+e:r==="?"?n=h.getPageUrl().replace(/[\?#].*/,"")+e:t?n=h.getBaseUrl()+e.replace(/^(\.\/)+/,""):n=h.getBasePageUrl()+e.replace(/^(\.\/)+/,"")),n.replace(/\#$/,"")},h.getShortUrl=function(e){var t=e,n=h.getBaseUrl(),r=h.getRootUrl();return h.emulated.pushState&&(t=t.replace(n,"")),t=t.replace(r,"/"),h.isTraditionalAnchor(t)&&(t="./"+t),t=t.replace(/^(\.\/)+/g,"./").replace(/\#$/,""),t},h.getLocationHref=function(e){return e=e||r,e.URL===e.location.href?e.location.href:e.location.href===decodeURIComponent(e.URL)?e.URL:e.location.hash&&decodeURIComponent(e.location.href.replace(/^[^#]+/,""))===e.location.hash?e.location.href:e.URL.indexOf("#")==-1&&e.location.href.indexOf("#")!=-1?e.location.href:e.URL||e.location.href},h.store={},h.idToState=h.idToState||{},h.stateToId=h.stateToId||{},h.urlToId=h.urlToId||{},h.storedStates=h.storedStates||[],h.savedStates=h.savedStates||[],h.normalizeStore=function(){h.store.idToState=h.store.idToState||{},h.store.urlToId=h.store.urlToId||{},h.store.stateToId=h.store.stateToId||{}},h.getState=function(e,t){typeof e=="undefined"&&(e=!0),typeof t=="undefined"&&(t=!0);var n=h.getLastSavedState();return!n&&t&&(n=h.createStateObject()),e&&(n=h.cloneObject(n),n.url=n.cleanUrl||n.url),n},h.getIdByState=function(e){var t=h.extractId(e.url),n;if(!t){n=h.getStateString(e);if(typeof h.stateToId[n]!="undefined")t=h.stateToId[n];else if(typeof h.store.stateToId[n]!="undefined")t=h.store.stateToId[n];else{for(;;){t=(new Date).getTime()+String(Math.random()).replace(/\D/g,"");if(typeof h.idToState[t]=="undefined"&&typeof h.store.idToState[t]=="undefined")break}h.stateToId[n]=t,h.idToState[t]=e}}return t},h.normalizeState=function(e){var t,n;if(!e||typeof e!="object")e={};if(typeof e.normalized!="undefined")return e;if(!e.data||typeof e.data!="object")e.data={};return t={},t.normalized=!0,t.title=e.title||"",t.url=h.getFullUrl(e.url?e.url:h.getLocationHref()),t.hash=h.getShortUrl(t.url),t.data=h.cloneObject(e.data),t.id=h.getIdByState(t),t.cleanUrl=t.url.replace(/\??\&_suid.*/,""),t.url=t.cleanUrl,n=!h.isEmptyObject(t.data),(t.title||n)&&h.options.disableSuid!==!0&&(t.hash=h.getShortUrl(t.url).replace(/\??\&_suid.*/,""),/\?/.test(t.hash)||(t.hash+="?"),t.hash+="&_suid="+t.id),t.hashedUrl=h.getFullUrl(t.hash),(h.emulated.pushState||h.bugs.safariPoll)&&h.hasUrlDuplicate(t)&&(t.url=t.hashedUrl),t},h.createStateObject=function(e,t,n){var r={data:e,title:t,url:n};return r=h.normalizeState(r),r},h.getStateById=function(e){e=String(e);var n=h.idToState[e]||h.store.idToState[e]||t;return n},h.getStateString=function(e){var t,n,r;return t=h.normalizeState(e),n={data:t.data,title:e.title,url:e.url},r=l.stringify(n),r},h.getStateId=function(e){var t,n;return t=h.normalizeState(e),n=t.id,n},h.getHashByState=function(e){var t,n;return t=h.normalizeState(e),n=t.hash,n},h.extractId=function(e){var t,n,r,i;return e.indexOf("#")!=-1?i=e.split("#")[0]:i=e,n=/(.*)\&_suid=([0-9]+)$/.exec(i),r=n?n[1]||e:e,t=n?String(n[2]||""):"",t||!1},h.isTraditionalAnchor=function(e){var t=!/[\/\?\.]/.test(e);return t},h.extractState=function(e,t){var n=null,r,i;return t=t||!1,r=h.extractId(e),r&&(n=h.getStateById(r)),n||(i=h.getFullUrl(e),r=h.getIdByUrl(i)||!1,r&&(n=h.getStateById(r)),!n&&t&&!h.isTraditionalAnchor(e)&&(n=h.createStateObject(null,null,i))),n},h.getIdByUrl=function(e){var n=h.urlToId[e]||h.store.urlToId[e]||t;return n},h.getLastSavedState=function(){return h.savedStates[h.savedStates.length-1]||t},h.getLastStoredState=function(){return h.storedStates[h.storedStates.length-1]||t},h.hasUrlDuplicate=function(e){var t=!1,n;return n=h.extractState(e.url),t=n&&n.id!==e.id,t},h.storeState=function(e){return h.urlToId[e.url]=e.id,h.storedStates.push(h.cloneObject(e)),e},h.isLastSavedState=function(e){var t=!1,n,r,i;return h.savedStates.length&&(n=e.id,r=h.getLastSavedState(),i=r.id,t=n===i),t},h.saveState=function(e){return h.isLastSavedState(e)?!1:(h.savedStates.push(h.cloneObject(e)),!0)},h.getStateByIndex=function(e){var t=null;return typeof e=="undefined"?t=h.savedStates[h.savedStates.length-1]:e<0?t=h.savedStates[h.savedStates.length+e]:t=h.savedStates[e],t},h.getCurrentIndex=function(){var e=null;return h.savedStates.length<1?e=0:e=h.savedStates.length-1,e},h.getHash=function(e){var t=h.getLocationHref(e),n;return n=h.getHashByUrl(t),n},h.unescapeHash=function(e){var t=h.normalizeHash(e);return t=decodeURIComponent(t),t},h.normalizeHash=function(e){var t=e.replace(/[^#]*#/,"").replace(/#.*/,"");return t},h.setHash=function(e,t){var n,i;return t!==!1&&h.busy()?(h.pushQueue({scope:h,callback:h.setHash,args:arguments,queue:t}),!1):(h.busy(!0),n=h.extractState(e,!0),n&&!h.emulated.pushState?h.pushState(n.data,n.title,n.url,!1):h.getHash()!==e&&(h.bugs.setHash?(i=h.getPageUrl(),h.pushState(null,null,i+"#"+e,!1)):r.location.hash=e),h)},h.escapeHash=function(t){var n=h.normalizeHash(t);return n=e.encodeURIComponent(n),h.bugs.hashEscape||(n=n.replace(/\%21/g,"!").replace(/\%26/g,"&").replace(/\%3D/g,"=").replace(/\%3F/g,"?")),n},h.getHashByUrl=function(e){var t=String(e).replace(/([^#]*)#?([^#]*)#?(.*)/,"$2");return t=h.unescapeHash(t),t},h.setTitle=function(e){var t=e.title,n;t||(n=h.getStateByIndex(0),n&&n.url===e.url&&(t=n.title||h.options.initialTitle));try{r.getElementsByTagName("title")[0].innerHTML=t.replace("<","&lt;").replace(">","&gt;").replace(" & "," &amp; ")}catch(i){}return r.title=t,h},h.queues=[],h.busy=function(e){typeof e!="undefined"?h.busy.flag=e:typeof h.busy.flag=="undefined"&&(h.busy.flag=!1);if(!h.busy.flag){u(h.busy.timeout);var t=function(){var e,n,r;if(h.busy.flag)return;for(e=h.queues.length-1;e>=0;--e){n=h.queues[e];if(n.length===0)continue;r=n.shift(),h.fireQueueItem(r),h.busy.timeout=o(t,h.options.busyDelay)}};h.busy.timeout=o(t,h.options.busyDelay)}return h.busy.flag},h.busy.flag=!1,h.fireQueueItem=function(e){return e.callback.apply(e.scope||h,e.args||[])},h.pushQueue=function(e){return h.queues[e.queue||0]=h.queues[e.queue||0]||[],h.queues[e.queue||0].push(e),h},h.queue=function(e,t){return typeof e=="function"&&(e={callback:e}),typeof t!="undefined"&&(e.queue=t),h.busy()?h.pushQueue(e):h.fireQueueItem(e),h},h.clearQueue=function(){return h.busy.flag=!1,h.queues=[],h},h.stateChanged=!1,h.doubleChecker=!1,h.doubleCheckComplete=function(){return h.stateChanged=!0,h.doubleCheckClear(),h},h.doubleCheckClear=function(){return h.doubleChecker&&(u(h.doubleChecker),h.doubleChecker=!1),h},h.doubleCheck=function(e){return h.stateChanged=!1,h.doubleCheckClear(),h.bugs.ieDoubleCheck&&(h.doubleChecker=o(function(){return h.doubleCheckClear(),h.stateChanged||e(),!0},h.options.doubleCheckInterval)),h},h.safariStatePoll=function(){var t=h.extractState(h.getLocationHref()),n;if(!h.isLastSavedState(t))return n=t,n||(n=h.createStateObject()),h.Adapter.trigger(e,"popstate"),h;return},h.back=function(e){return e!==!1&&h.busy()?(h.pushQueue({scope:h,callback:h.back,args:arguments,queue:e}),!1):(h.busy(!0),h.doubleCheck(function(){h.back(!1)}),p.go(-1),!0)},h.forward=function(e){return e!==!1&&h.busy()?(h.pushQueue({scope:h,callback:h.forward,args:arguments,queue:e}),!1):(h.busy(!0),h.doubleCheck(function(){h.forward(!1)}),p.go(1),!0)},h.go=function(e,t){var n;if(e>0)for(n=1;n<=e;++n)h.forward(t);else{if(!(e<0))throw new Error("History.go: History.go requires a positive or negative integer passed.");for(n=-1;n>=e;--n)h.back(t)}return h};if(h.emulated.pushState){var v=function(){};h.pushState=h.pushState||v,h.replaceState=h.replaceState||v}else h.onPopState=function(t,n){var r=!1,i=!1,s,o;return h.doubleCheckComplete(),s=h.getHash(),s?(o=h.extractState(s||h.getLocationHref(),!0),o?h.replaceState(o.data,o.title,o.url,!1):(h.Adapter.trigger(e,"anchorchange"),h.busy(!1)),h.expectedStateId=!1,!1):(r=h.Adapter.extractEventData("state",t,n)||!1,r?i=h.getStateById(r):h.expectedStateId?i=h.getStateById(h.expectedStateId):i=h.extractState(h.getLocationHref()),i||(i=h.createStateObject(null,null,h.getLocationHref())),h.expectedStateId=!1,h.isLastSavedState(i)?(h.busy(!1),!1):(h.storeState(i),h.saveState(i),h.setTitle(i),h.Adapter.trigger(e,"statechange"),h.busy(!1),!0))},h.Adapter.bind(e,"popstate",h.onPopState),h.pushState=function(t,n,r,i){if(h.getHashByUrl(r)&&h.emulated.pushState)throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(i!==!1&&h.busy())return h.pushQueue({scope:h,callback:h.pushState,args:arguments,queue:i}),!1;h.busy(!0);var s=h.createStateObject(t,n,r);return h.isLastSavedState(s)?h.busy(!1):(h.storeState(s),h.expectedStateId=s.id,p.pushState(s.id,s.title,s.url),h.Adapter.trigger(e,"popstate")),!0},h.replaceState=function(t,n,r,i){if(h.getHashByUrl(r)&&h.emulated.pushState)throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(i!==!1&&h.busy())return h.pushQueue({scope:h,callback:h.replaceState,args:arguments,queue:i}),!1;h.busy(!0);var s=h.createStateObject(t,n,r);return h.isLastSavedState(s)?h.busy(!1):(h.storeState(s),h.expectedStateId=s.id,p.replaceState(s.id,s.title,s.url),h.Adapter.trigger(e,"popstate")),!0};if(s){try{h.store=l.parse(s.getItem("History.store"))||{}}catch(m){h.store={}}h.normalizeStore()}else h.store={},h.normalizeStore();h.Adapter.bind(e,"unload",h.clearAllIntervals),h.saveState(h.storeState(h.extractState(h.getLocationHref(),!0))),s&&(h.onUnload=function(){var e,t,n;try{e=l.parse(s.getItem("History.store"))||{}}catch(r){e={}}e.idToState=e.idToState||{},e.urlToId=e.urlToId||{},e.stateToId=e.stateToId||{};for(t in h.idToState){if(!h.idToState.hasOwnProperty(t))continue;e.idToState[t]=h.idToState[t]}for(t in h.urlToId){if(!h.urlToId.hasOwnProperty(t))continue;e.urlToId[t]=h.urlToId[t]}for(t in h.stateToId){if(!h.stateToId.hasOwnProperty(t))continue;e.stateToId[t]=h.stateToId[t]}h.store=e,h.normalizeStore(),n=l.stringify(e);try{s.setItem("History.store",n)}catch(i){if(i.code!==DOMException.QUOTA_EXCEEDED_ERR)throw i;s.length&&(s.removeItem("History.store"),s.setItem("History.store",n))}},h.intervalList.push(a(h.onUnload,h.options.storeInterval)),h.Adapter.bind(e,"beforeunload",h.onUnload),h.Adapter.bind(e,"unload",h.onUnload));if(!h.emulated.pushState){h.bugs.safariPoll&&h.intervalList.push(a(h.safariStatePoll,h.options.safariPollInterval));if(i.vendor==="Apple Computer, Inc."||(i.appCodeName||"")==="Mozilla")h.Adapter.bind(e,"hashchange",function(){h.Adapter.trigger(e,"popstate")}),h.getHash()&&h.Adapter.onDomLoad(function(){h.Adapter.trigger(e,"hashchange")})}},(!h.options||!h.options.delayInit)&&h.init()}(window)
skin/frontend/default/default/css/price_slider/style.css DELETED
@@ -1,18 +0,0 @@
1
- div.price-slider {
2
- background: url("../../images/price_slider/bkg_slider.png") repeat-x scroll 0 0 transparent;
3
- height: 17px;
4
- }
5
- div.price-slider .filter-handle {
6
- height: 17px;
7
- width: 10px;
8
- cursor: e-resize;
9
- display: block;
10
- }
11
- div.price-slider .price-slider-from {
12
- background: url("../../images/price_slider/slider.png") no-repeat scroll 0 0 transparent;
13
- }
14
- div.price-slider .price-slider-to {
15
- background: url("../../images/price_slider/slider.png") no-repeat scroll -26px 0 transparent;
16
- cursor: w-resize;
17
- margin-top: -17px;
18
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
skin/frontend/default/default/js/catalin_seo/native.history.js DELETED
@@ -1 +0,0 @@
1
- (function(a,b){"use strict";var c=a.History=a.History||{};if(typeof c.Adapter!="undefined")throw new Error("History.js Adapter has already been loaded...");c.Adapter={handlers:{},_uid:1,uid:function(a){return a._uid||(a._uid=c.Adapter._uid++)},bind:function(a,b,d){var e=c.Adapter.uid(a);c.Adapter.handlers[e]=c.Adapter.handlers[e]||{},c.Adapter.handlers[e][b]=c.Adapter.handlers[e][b]||[],c.Adapter.handlers[e][b].push(d),a["on"+b]=function(a,b){return function(d){c.Adapter.trigger(a,b,d)}}(a,b)},trigger:function(a,b,d){d=d||{};var e=c.Adapter.uid(a),f,g;c.Adapter.handlers[e]=c.Adapter.handlers[e]||{},c.Adapter.handlers[e][b]=c.Adapter.handlers[e][b]||[];for(f=0,g=c.Adapter.handlers[e][b].length;f<g;++f)c.Adapter.handlers[e][b][f].apply(this,[d])},extractEventData:function(a,c){var d=c&&c[a]||b;return d},onDomLoad:function(b){var c=a.setTimeout(function(){b()},2e3);a.onload=function(){clearTimeout(c),b()}}},typeof c.init!="undefined"&&c.init()})(window),function(a,b){"use strict";var c=a.console||b,d=a.document,e=a.navigator,f=a.sessionStorage||!1,g=a.setTimeout,h=a.clearTimeout,i=a.setInterval,j=a.clearInterval,k=a.JSON,l=a.alert,m=a.History=a.History||{},n=a.history;k.stringify=k.stringify||k.encode,k.parse=k.parse||k.decode;if(typeof m.init!="undefined")throw new Error("History.js Core has already been loaded...");m.init=function(){return typeof m.Adapter=="undefined"?!1:(typeof m.initCore!="undefined"&&m.initCore(),typeof m.initHtml4!="undefined"&&m.initHtml4(),!0)},m.initCore=function(){if(typeof m.initCore.initialized!="undefined")return!1;m.initCore.initialized=!0,m.options=m.options||{},m.options.hashChangeInterval=m.options.hashChangeInterval||100,m.options.safariPollInterval=m.options.safariPollInterval||500,m.options.doubleCheckInterval=m.options.doubleCheckInterval||500,m.options.storeInterval=m.options.storeInterval||1e3,m.options.busyDelay=m.options.busyDelay||250,m.options.debug=m.options.debug||!1,m.options.initialTitle=m.options.initialTitle||d.title,m.intervalList=[],m.clearAllIntervals=function(){var a,b=m.intervalList;if(typeof b!="undefined"&&b!==null){for(a=0;a<b.length;a++)j(b[a]);m.intervalList=null}},m.debug=function(){(m.options.debug||!1)&&m.log.apply(m,arguments)},m.log=function(){var a=typeof c!="undefined"&&typeof c.log!="undefined"&&typeof c.log.apply!="undefined",b=d.getElementById("log"),e,f,g,h,i;a?(h=Array.prototype.slice.call(arguments),e=h.shift(),typeof c.debug!="undefined"?c.debug.apply(c,[e,h]):c.log.apply(c,[e,h])):e="\n"+arguments[0]+"\n";for(f=1,g=arguments.length;f<g;++f){i=arguments[f];if(typeof i=="object"&&typeof k!="undefined")try{i=k.stringify(i)}catch(j){}e+="\n"+i+"\n"}return b?(b.value+=e+"\n-----\n",b.scrollTop=b.scrollHeight-b.clientHeight):a||l(e),!0},m.getInternetExplorerMajorVersion=function(){var a=m.getInternetExplorerMajorVersion.cached=typeof m.getInternetExplorerMajorVersion.cached!="undefined"?m.getInternetExplorerMajorVersion.cached:function(){var a=3,b=d.createElement("div"),c=b.getElementsByTagName("i");while((b.innerHTML="<!--[if gt IE "+ ++a+"]><i></i><![endif]-->")&&c[0]);return a>4?a:!1}();return a},m.isInternetExplorer=function(){var a=m.isInternetExplorer.cached=typeof m.isInternetExplorer.cached!="undefined"?m.isInternetExplorer.cached:Boolean(m.getInternetExplorerMajorVersion());return a},m.emulated={pushState:!Boolean(a.history&&a.history.pushState&&a.history.replaceState&&!/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i.test(e.userAgent)&&!/AppleWebKit\/5([0-2]|3[0-2])/i.test(e.userAgent)),hashChange:Boolean(!("onhashchange"in a||"onhashchange"in d)||m.isInternetExplorer()&&m.getInternetExplorerMajorVersion()<8)},m.enabled=!m.emulated.pushState,m.bugs={setHash:Boolean(!m.emulated.pushState&&e.vendor==="Apple Computer, Inc."&&/AppleWebKit\/5([0-2]|3[0-3])/.test(e.userAgent)),safariPoll:Boolean(!m.emulated.pushState&&e.vendor==="Apple Computer, Inc."&&/AppleWebKit\/5([0-2]|3[0-3])/.test(e.userAgent)),ieDoubleCheck:Boolean(m.isInternetExplorer()&&m.getInternetExplorerMajorVersion()<8),hashEscape:Boolean(m.isInternetExplorer()&&m.getInternetExplorerMajorVersion()<7)},m.isEmptyObject=function(a){for(var b in a)return!1;return!0},m.cloneObject=function(a){var b,c;return a?(b=k.stringify(a),c=k.parse(b)):c={},c},m.getRootUrl=function(){var a=d.location.protocol+"//"+(d.location.hostname||d.location.host);if(d.location.port||!1)a+=":"+d.location.port;return a+="/",a},m.getBaseHref=function(){var a=d.getElementsByTagName("base"),b=null,c="";return a.length===1&&(b=a[0],c=b.href.replace(/[^\/]+$/,"")),c=c.replace(/\/+$/,""),c&&(c+="/"),c},m.getBaseUrl=function(){var a=m.getBaseHref()||m.getBasePageUrl()||m.getRootUrl();return a},m.getPageUrl=function(){var a=m.getState(!1,!1),b=(a||{}).url||d.location.href,c;return c=b.replace(/\/+$/,"").replace(/[^\/]+$/,function(a,b,c){return/\./.test(a)?a:a+"/"}),c},m.getBasePageUrl=function(){var a=d.location.href.replace(/[#\?].*/,"").replace(/[^\/]+$/,function(a,b,c){return/[^\/]$/.test(a)?"":a}).replace(/\/+$/,"")+"/";return a},m.getFullUrl=function(a,b){var c=a,d=a.substring(0,1);return b=typeof b=="undefined"?!0:b,/[a-z]+\:\/\//.test(a)||(d==="/"?c=m.getRootUrl()+a.replace(/^\/+/,""):d==="#"?c=m.getPageUrl().replace(/#.*/,"")+a:d==="?"?c=m.getPageUrl().replace(/[\?#].*/,"")+a:b?c=m.getBaseUrl()+a.replace(/^(\.\/)+/,""):c=m.getBasePageUrl()+a.replace(/^(\.\/)+/,"")),c.replace(/\#$/,"")},m.getShortUrl=function(a){var b=a,c=m.getBaseUrl(),d=m.getRootUrl();return m.emulated.pushState&&(b=b.replace(c,"")),b=b.replace(d,"/"),m.isTraditionalAnchor(b)&&(b="./"+b),b=b.replace(/^(\.\/)+/g,"./").replace(/\#$/,""),b},m.store={},m.idToState=m.idToState||{},m.stateToId=m.stateToId||{},m.urlToId=m.urlToId||{},m.storedStates=m.storedStates||[],m.savedStates=m.savedStates||[],m.normalizeStore=function(){m.store.idToState=m.store.idToState||{},m.store.urlToId=m.store.urlToId||{},m.store.stateToId=m.store.stateToId||{}},m.getState=function(a,b){typeof a=="undefined"&&(a=!0),typeof b=="undefined"&&(b=!0);var c=m.getLastSavedState();return!c&&b&&(c=m.createStateObject()),a&&(c=m.cloneObject(c),c.url=c.cleanUrl||c.url),c},m.getIdByState=function(a){var b=m.extractId(a.url),c;if(!b){c=m.getStateString(a);if(typeof m.stateToId[c]!="undefined")b=m.stateToId[c];else if(typeof m.store.stateToId[c]!="undefined")b=m.store.stateToId[c];else{for(;;){b=(new Date).getTime()+String(Math.random()).replace(/\D/g,"");if(typeof m.idToState[b]=="undefined"&&typeof m.store.idToState[b]=="undefined")break}m.stateToId[c]=b,m.idToState[b]=a}}return b},m.normalizeState=function(a){var b,c;if(!a||typeof a!="object")a={};if(typeof a.normalized!="undefined")return a;if(!a.data||typeof a.data!="object")a.data={};b={},b.normalized=!0,b.title=a.title||"",b.url=m.getFullUrl(m.unescapeString(a.url||d.location.href)),b.hash=m.getShortUrl(b.url),b.data=m.cloneObject(a.data),b.id=m.getIdByState(b),b.cleanUrl=b.url.replace(/\??\&_suid.*/,""),b.url=b.cleanUrl,c=!m.isEmptyObject(b.data);if(b.title||c)b.hash=m.getShortUrl(b.url).replace(/\??\&_suid.*/,""),/\?/.test(b.hash)||(b.hash+="?"),b.hash+="&_suid="+b.id;return b.hashedUrl=m.getFullUrl(b.hash),(m.emulated.pushState||m.bugs.safariPoll)&&m.hasUrlDuplicate(b)&&(b.url=b.hashedUrl),b},m.createStateObject=function(a,b,c){var d={data:a,title:b,url:c};return d=m.normalizeState(d),d},m.getStateById=function(a){a=String(a);var c=m.idToState[a]||m.store.idToState[a]||b;return c},m.getStateString=function(a){var b,c,d;return b=m.normalizeState(a),c={data:b.data,title:a.title,url:a.url},d=k.stringify(c),d},m.getStateId=function(a){var b,c;return b=m.normalizeState(a),c=b.id,c},m.getHashByState=function(a){var b,c;return b=m.normalizeState(a),c=b.hash,c},m.extractId=function(a){var b,c,d;return c=/(.*)\&_suid=([0-9]+)$/.exec(a),d=c?c[1]||a:a,b=c?String(c[2]||""):"",b||!1},m.isTraditionalAnchor=function(a){var b=!/[\/\?\.]/.test(a);return b},m.extractState=function(a,b){var c=null,d,e;return b=b||!1,d=m.extractId(a),d&&(c=m.getStateById(d)),c||(e=m.getFullUrl(a),d=m.getIdByUrl(e)||!1,d&&(c=m.getStateById(d)),!c&&b&&!m.isTraditionalAnchor(a)&&(c=m.createStateObject(null,null,e))),c},m.getIdByUrl=function(a){var c=m.urlToId[a]||m.store.urlToId[a]||b;return c},m.getLastSavedState=function(){return m.savedStates[m.savedStates.length-1]||b},m.getLastStoredState=function(){return m.storedStates[m.storedStates.length-1]||b},m.hasUrlDuplicate=function(a){var b=!1,c;return c=m.extractState(a.url),b=c&&c.id!==a.id,b},m.storeState=function(a){return m.urlToId[a.url]=a.id,m.storedStates.push(m.cloneObject(a)),a},m.isLastSavedState=function(a){var b=!1,c,d,e;return m.savedStates.length&&(c=a.id,d=m.getLastSavedState(),e=d.id,b=c===e),b},m.saveState=function(a){return m.isLastSavedState(a)?!1:(m.savedStates.push(m.cloneObject(a)),!0)},m.getStateByIndex=function(a){var b=null;return typeof a=="undefined"?b=m.savedStates[m.savedStates.length-1]:a<0?b=m.savedStates[m.savedStates.length+a]:b=m.savedStates[a],b},m.getHash=function(){var a=m.unescapeHash(d.location.hash);return a},m.unescapeString=function(b){var c=b,d;for(;;){d=a.unescape(c);if(d===c)break;c=d}return c},m.unescapeHash=function(a){var b=m.normalizeHash(a);return b=m.unescapeString(b),b},m.normalizeHash=function(a){var b=a.replace(/[^#]*#/,"").replace(/#.*/,"");return b},m.setHash=function(a,b){var c,e,f;return b!==!1&&m.busy()?(m.pushQueue({scope:m,callback:m.setHash,args:arguments,queue:b}),!1):(c=m.escapeHash(a),m.busy(!0),e=m.extractState(a,!0),e&&!m.emulated.pushState?m.pushState(e.data,e.title,e.url,!1):d.location.hash!==c&&(m.bugs.setHash?(f=m.getPageUrl(),m.pushState(null,null,f+"#"+c,!1)):d.location.hash=c),m)},m.escapeHash=function(b){var c=m.normalizeHash(b);return c=a.escape(c),m.bugs.hashEscape||(c=c.replace(/\%21/g,"!").replace(/\%26/g,"&").replace(/\%3D/g,"=").replace(/\%3F/g,"?")),c},m.getHashByUrl=function(a){var b=String(a).replace(/([^#]*)#?([^#]*)#?(.*)/,"$2");return b=m.unescapeHash(b),b},m.setTitle=function(a){var b=a.title,c;b||(c=m.getStateByIndex(0),c&&c.url===a.url&&(b=c.title||m.options.initialTitle));try{d.getElementsByTagName("title")[0].innerHTML=b.replace("<","&lt;").replace(">","&gt;").replace(" & "," &amp; ")}catch(e){}return d.title=b,m},m.queues=[],m.busy=function(a){typeof a!="undefined"?m.busy.flag=a:typeof m.busy.flag=="undefined"&&(m.busy.flag=!1);if(!m.busy.flag){h(m.busy.timeout);var b=function(){var a,c,d;if(m.busy.flag)return;for(a=m.queues.length-1;a>=0;--a){c=m.queues[a];if(c.length===0)continue;d=c.shift(),m.fireQueueItem(d),m.busy.timeout=g(b,m.options.busyDelay)}};m.busy.timeout=g(b,m.options.busyDelay)}return m.busy.flag},m.busy.flag=!1,m.fireQueueItem=function(a){return a.callback.apply(a.scope||m,a.args||[])},m.pushQueue=function(a){return m.queues[a.queue||0]=m.queues[a.queue||0]||[],m.queues[a.queue||0].push(a),m},m.queue=function(a,b){return typeof a=="function"&&(a={callback:a}),typeof b!="undefined"&&(a.queue=b),m.busy()?m.pushQueue(a):m.fireQueueItem(a),m},m.clearQueue=function(){return m.busy.flag=!1,m.queues=[],m},m.stateChanged=!1,m.doubleChecker=!1,m.doubleCheckComplete=function(){return m.stateChanged=!0,m.doubleCheckClear(),m},m.doubleCheckClear=function(){return m.doubleChecker&&(h(m.doubleChecker),m.doubleChecker=!1),m},m.doubleCheck=function(a){return m.stateChanged=!1,m.doubleCheckClear(),m.bugs.ieDoubleCheck&&(m.doubleChecker=g(function(){return m.doubleCheckClear(),m.stateChanged||a(),!0},m.options.doubleCheckInterval)),m},m.safariStatePoll=function(){var b=m.extractState(d.location.href),c;if(!m.isLastSavedState(b))c=b;else return;return c||(c=m.createStateObject()),m.Adapter.trigger(a,"popstate"),m},m.back=function(a){return a!==!1&&m.busy()?(m.pushQueue({scope:m,callback:m.back,args:arguments,queue:a}),!1):(m.busy(!0),m.doubleCheck(function(){m.back(!1)}),n.go(-1),!0)},m.forward=function(a){return a!==!1&&m.busy()?(m.pushQueue({scope:m,callback:m.forward,args:arguments,queue:a}),!1):(m.busy(!0),m.doubleCheck(function(){m.forward(!1)}),n.go(1),!0)},m.go=function(a,b){var c;if(a>0)for(c=1;c<=a;++c)m.forward(b);else{if(!(a<0))throw new Error("History.go: History.go requires a positive or negative integer passed.");for(c=-1;c>=a;--c)m.back(b)}return m};if(m.emulated.pushState){var o=function(){};m.pushState=m.pushState||o,m.replaceState=m.replaceState||o}else m.onPopState=function(b,c){var e=!1,f=!1,g,h;return m.doubleCheckComplete(),g=m.getHash(),g?(h=m.extractState(g||d.location.href,!0),h?m.replaceState(h.data,h.title,h.url,!1):(m.Adapter.trigger(a,"anchorchange"),m.busy(!1)),m.expectedStateId=!1,!1):(e=m.Adapter.extractEventData("state",b,c)||!1,e?f=m.getStateById(e):m.expectedStateId?f=m.getStateById(m.expectedStateId):f=m.extractState(d.location.href),f||(f=m.createStateObject(null,null,d.location.href)),m.expectedStateId=!1,m.isLastSavedState(f)?(m.busy(!1),!1):(m.storeState(f),m.saveState(f),m.setTitle(f),m.Adapter.trigger(a,"statechange"),m.busy(!1),!0))},m.Adapter.bind(a,"popstate",m.onPopState),m.pushState=function(b,c,d,e){if(m.getHashByUrl(d)&&m.emulated.pushState)throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(e!==!1&&m.busy())return m.pushQueue({scope:m,callback:m.pushState,args:arguments,queue:e}),!1;m.busy(!0);var f=m.createStateObject(b,c,d);return m.isLastSavedState(f)?m.busy(!1):(m.storeState(f),m.expectedStateId=f.id,n.pushState(f.id,f.title,f.url),m.Adapter.trigger(a,"popstate")),!0},m.replaceState=function(b,c,d,e){if(m.getHashByUrl(d)&&m.emulated.pushState)throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(e!==!1&&m.busy())return m.pushQueue({scope:m,callback:m.replaceState,args:arguments,queue:e}),!1;m.busy(!0);var f=m.createStateObject(b,c,d);return m.isLastSavedState(f)?m.busy(!1):(m.storeState(f),m.expectedStateId=f.id,n.replaceState(f.id,f.title,f.url),m.Adapter.trigger(a,"popstate")),!0};if(f){try{m.store=k.parse(f.getItem("History.store"))||{}}catch(p){m.store={}}m.normalizeStore()}else m.store={},m.normalizeStore();m.Adapter.bind(a,"beforeunload",m.clearAllIntervals),m.Adapter.bind(a,"unload",m.clearAllIntervals),m.saveState(m.storeState(m.extractState(d.location.href,!0))),f&&(m.onUnload=function(){var a,b;try{a=k.parse(f.getItem("History.store"))||{}}catch(c){a={}}a.idToState=a.idToState||{},a.urlToId=a.urlToId||{},a.stateToId=a.stateToId||{};for(b in m.idToState){if(!m.idToState.hasOwnProperty(b))continue;a.idToState[b]=m.idToState[b]}for(b in m.urlToId){if(!m.urlToId.hasOwnProperty(b))continue;a.urlToId[b]=m.urlToId[b]}for(b in m.stateToId){if(!m.stateToId.hasOwnProperty(b))continue;a.stateToId[b]=m.stateToId[b]}m.store=a,m.normalizeStore(),f.setItem("History.store",k.stringify(a))},m.intervalList.push(i(m.onUnload,m.options.storeInterval)),m.Adapter.bind(a,"beforeunload",m.onUnload),m.Adapter.bind(a,"unload",m.onUnload));if(!m.emulated.pushState){m.bugs.safariPoll&&m.intervalList.push(i(m.safariStatePoll,m.options.safariPollInterval));if(e.vendor==="Apple Computer, Inc."||(e.appCodeName||"")==="Mozilla")m.Adapter.bind(a,"hashchange",function(){m.Adapter.trigger(a,"popstate")}),m.getHash()&&m.Adapter.onDomLoad(function(){m.Adapter.trigger(a,"hashchange")})}},m.init()}(window)