Version Notes
Add a vertical menu to your site. Features many css classes and several configuration options.
0.4.0: Added Feature Expand on Top Level Request: If a product is requested without categories in the URL vert nav can figure out the first assigned category and expands the category tree
Download this release
Release Info
Developer | Vinai Kopp |
Extension | RicoNeitzel_VertNav |
Version | 0.4.0 |
Comparing to | |
See all releases |
Code changes from version 0.3.1 to 0.4.0
app/code/community/RicoNeitzel/VertNav/Block/Navigation.php
CHANGED
@@ -45,7 +45,7 @@ class RicoNeitzel_VertNav_Block_Navigation extends Mage_Catalog_Block_Navigation
|
|
45 |
{
|
46 |
$key = parent::getCacheKey();
|
47 |
$customerGroupId = $this->_getCustomerGroupId();
|
48 |
-
$productId = Mage::registry('current_product') ? Mage::registry('current_product') : 0;
|
49 |
$cmsPageId = Mage::app()->getRequest()->getParam('page_id', Mage::getStoreConfig(Mage_Cms_Helper_Page::XML_PATH_HOME_PAGE));
|
50 |
|
51 |
return 'VERTNAV_' . $key . '_' . $customerGroupId . '_' . $productId . '_' . $cmsPageId;
|
@@ -118,6 +118,7 @@ class RicoNeitzel_VertNav_Block_Navigation extends Mage_Catalog_Block_Navigation
|
|
118 |
|
119 |
if ($this->_checkLoginCatalog()) return '';
|
120 |
if (! $category->getIsActive()) return '';
|
|
|
121 |
|
122 |
if (! isset($levelClass)) $levelClass = array();
|
123 |
$combineClasses = array();
|
@@ -134,13 +135,13 @@ class RicoNeitzel_VertNav_Block_Navigation extends Mage_Catalog_Block_Navigation
|
|
134 |
$levelClass[] = implode('-', $combineClasses);
|
135 |
|
136 |
$levelClass = array_merge($levelClass, $combineClasses);
|
137 |
-
|
138 |
$levelClass[] = $this->_getClassNameFromCategoryName($category);
|
139 |
-
|
140 |
$productCount = '';
|
141 |
if ($this->displayProductCount())
|
142 |
{
|
143 |
-
$n =
|
144 |
$productCount = '<span class="product-count"> (' . $n . ')</span>';
|
145 |
}
|
146 |
|
@@ -149,14 +150,14 @@ class RicoNeitzel_VertNav_Block_Navigation extends Mage_Catalog_Block_Navigation
|
|
149 |
|
150 |
$autoMaxDepth = Mage::getStoreConfig('catalog/vertnav/expand_all_max_depth');
|
151 |
$autoExpand = Mage::getStoreConfig('catalog/vertnav/expand_all');
|
152 |
-
|
153 |
if (in_array($category->getId(), $this->getCurrentCategoryPath())
|
154 |
|| ($autoExpand && $autoMaxDepth == 0)
|
155 |
|| ($autoExpand && $autoMaxDepth > $level+1)
|
156 |
) {
|
157 |
$children = $this->_getCategoryCollection()
|
158 |
->addIdFilter($category->getChildren());
|
159 |
-
|
160 |
$children = $this->toLinearArray($children);
|
161 |
|
162 |
//usort($children, array($this, '_sortCategoryArrayByName'));
|
@@ -201,7 +202,7 @@ class RicoNeitzel_VertNav_Block_Navigation extends Mage_Catalog_Block_Navigation
|
|
201 |
|
202 |
// indent HTML!
|
203 |
$html[3] = "\n".str_pad ( "", ($level * 2 ) + 2, " " ).'</li>'."\n";
|
204 |
-
|
205 |
ksort($html);
|
206 |
return implode('', $html);
|
207 |
}
|
@@ -322,6 +323,19 @@ class RicoNeitzel_VertNav_Block_Navigation extends Mage_Catalog_Block_Navigation
|
|
322 |
/* @var $category Mage_Catalog_Model_Category */
|
323 |
$category = Mage::getModel('catalog/category');
|
324 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
325 |
$parent = false;
|
326 |
switch (Mage::getStoreConfig('catalog/vertnav/vertnav_root'))
|
327 |
{
|
@@ -359,7 +373,7 @@ class RicoNeitzel_VertNav_Block_Navigation extends Mage_Catalog_Block_Navigation
|
|
359 |
/**
|
360 |
* Thanks to thebod for this patch!
|
361 |
* It enables the setting of the category ID to use via Layout XML:
|
362 |
-
*
|
363 |
* <reference name="catalog.vertnav">
|
364 |
* <action method="setCategoryId"><category_id>8</category_id></action>
|
365 |
* </reference>
|
@@ -367,7 +381,7 @@ class RicoNeitzel_VertNav_Block_Navigation extends Mage_Catalog_Block_Navigation
|
|
367 |
if ($customId = $this->getCategoryId()) {
|
368 |
$parent = $customId;
|
369 |
}
|
370 |
-
|
371 |
if (! $parent && Mage::getStoreConfig('catalog/vertnav/fallback_to_root'))
|
372 |
{
|
373 |
$parent = Mage::app()->getStore()->getRootCategoryId();
|
@@ -382,7 +396,7 @@ class RicoNeitzel_VertNav_Block_Navigation extends Mage_Catalog_Block_Navigation
|
|
382 |
}
|
383 |
$storeCategories = $this->_getCategoryCollection()
|
384 |
->addFieldToFilter('parent_id', $parent);
|
385 |
-
|
386 |
$this->_storeCategories = $storeCategories;
|
387 |
return $storeCategories;
|
388 |
}
|
@@ -408,7 +422,7 @@ class RicoNeitzel_VertNav_Block_Navigation extends Mage_Catalog_Block_Navigation
|
|
408 |
{
|
409 |
$collection->setLoadProductCount(true);
|
410 |
}
|
411 |
-
|
412 |
return $collection;
|
413 |
}
|
414 |
|
45 |
{
|
46 |
$key = parent::getCacheKey();
|
47 |
$customerGroupId = $this->_getCustomerGroupId();
|
48 |
+
$productId = Mage::registry('current_product') ? Mage::registry('current_product')->getId() : 0;
|
49 |
$cmsPageId = Mage::app()->getRequest()->getParam('page_id', Mage::getStoreConfig(Mage_Cms_Helper_Page::XML_PATH_HOME_PAGE));
|
50 |
|
51 |
return 'VERTNAV_' . $key . '_' . $customerGroupId . '_' . $productId . '_' . $cmsPageId;
|
118 |
|
119 |
if ($this->_checkLoginCatalog()) return '';
|
120 |
if (! $category->getIsActive()) return '';
|
121 |
+
if (! $category->getIncludeInMenu()) return '';
|
122 |
|
123 |
if (! isset($levelClass)) $levelClass = array();
|
124 |
$combineClasses = array();
|
135 |
$levelClass[] = implode('-', $combineClasses);
|
136 |
|
137 |
$levelClass = array_merge($levelClass, $combineClasses);
|
138 |
+
|
139 |
$levelClass[] = $this->_getClassNameFromCategoryName($category);
|
140 |
+
|
141 |
$productCount = '';
|
142 |
if ($this->displayProductCount())
|
143 |
{
|
144 |
+
$n = Mage::getModel('catalog/layer')->setCurrentCategory($category->getID())->getProductCollection()->getSize();
|
145 |
$productCount = '<span class="product-count"> (' . $n . ')</span>';
|
146 |
}
|
147 |
|
150 |
|
151 |
$autoMaxDepth = Mage::getStoreConfig('catalog/vertnav/expand_all_max_depth');
|
152 |
$autoExpand = Mage::getStoreConfig('catalog/vertnav/expand_all');
|
153 |
+
|
154 |
if (in_array($category->getId(), $this->getCurrentCategoryPath())
|
155 |
|| ($autoExpand && $autoMaxDepth == 0)
|
156 |
|| ($autoExpand && $autoMaxDepth > $level+1)
|
157 |
) {
|
158 |
$children = $this->_getCategoryCollection()
|
159 |
->addIdFilter($category->getChildren());
|
160 |
+
|
161 |
$children = $this->toLinearArray($children);
|
162 |
|
163 |
//usort($children, array($this, '_sortCategoryArrayByName'));
|
202 |
|
203 |
// indent HTML!
|
204 |
$html[3] = "\n".str_pad ( "", ($level * 2 ) + 2, " " ).'</li>'."\n";
|
205 |
+
|
206 |
ksort($html);
|
207 |
return implode('', $html);
|
208 |
}
|
323 |
/* @var $category Mage_Catalog_Model_Category */
|
324 |
$category = Mage::getModel('catalog/category');
|
325 |
|
326 |
+
/* Set Category Object if Product is requested without category path in URI (top level request). Takes first Category of a Product as Category Object*/
|
327 |
+
|
328 |
+
if( true == (bool) Mage::getStoreConfig( 'catalog/vertnav/show_cat_on_toplevel' ) &&
|
329 |
+
false == Mage::registry('current_category') &&
|
330 |
+
false != Mage::registry('current_product') ) {
|
331 |
+
$product_categories = Mage::registry( 'current_product' )->getCategoryIds();
|
332 |
+
if(count($product_categories) > 0) {
|
333 |
+
$new_active_category = Mage::getModel('catalog/category')->load($product_categories[0]);
|
334 |
+
Mage::register('current_category', $new_active_category);
|
335 |
+
}
|
336 |
+
}
|
337 |
+
|
338 |
+
|
339 |
$parent = false;
|
340 |
switch (Mage::getStoreConfig('catalog/vertnav/vertnav_root'))
|
341 |
{
|
373 |
/**
|
374 |
* Thanks to thebod for this patch!
|
375 |
* It enables the setting of the category ID to use via Layout XML:
|
376 |
+
*
|
377 |
* <reference name="catalog.vertnav">
|
378 |
* <action method="setCategoryId"><category_id>8</category_id></action>
|
379 |
* </reference>
|
381 |
if ($customId = $this->getCategoryId()) {
|
382 |
$parent = $customId;
|
383 |
}
|
384 |
+
|
385 |
if (! $parent && Mage::getStoreConfig('catalog/vertnav/fallback_to_root'))
|
386 |
{
|
387 |
$parent = Mage::app()->getStore()->getRootCategoryId();
|
396 |
}
|
397 |
$storeCategories = $this->_getCategoryCollection()
|
398 |
->addFieldToFilter('parent_id', $parent);
|
399 |
+
|
400 |
$this->_storeCategories = $storeCategories;
|
401 |
return $storeCategories;
|
402 |
}
|
422 |
{
|
423 |
$collection->setLoadProductCount(true);
|
424 |
}
|
425 |
+
|
426 |
return $collection;
|
427 |
}
|
428 |
|
app/code/community/RicoNeitzel/VertNav/etc/config.xml
CHANGED
@@ -23,7 +23,7 @@
|
|
23 |
<config>
|
24 |
<modules>
|
25 |
<RicoNeitzel_VertNav>
|
26 |
-
<version>0.
|
27 |
</RicoNeitzel_VertNav>
|
28 |
</modules>
|
29 |
|
23 |
<config>
|
24 |
<modules>
|
25 |
<RicoNeitzel_VertNav>
|
26 |
+
<version>0.4.0</version>
|
27 |
</RicoNeitzel_VertNav>
|
28 |
</modules>
|
29 |
|
app/code/community/RicoNeitzel/VertNav/etc/system.xml
CHANGED
@@ -67,6 +67,16 @@
|
|
67 |
<show_in_store>1</show_in_store>
|
68 |
<comment>Leave empty or set to 0 for no limit</comment>
|
69 |
</expand_all_max_depth>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
<vertnav_root translate="label" module="vertnav">
|
71 |
<label>Root Categories</label>
|
72 |
<frontend_type>select</frontend_type>
|
67 |
<show_in_store>1</show_in_store>
|
68 |
<comment>Leave empty or set to 0 for no limit</comment>
|
69 |
</expand_all_max_depth>
|
70 |
+
<show_cat_on_toplevel translate="label,comment" module="vertnav">
|
71 |
+
<label>Expand on Top Level</label>
|
72 |
+
<frontend_type>select</frontend_type>
|
73 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
74 |
+
<sort_order>30</sort_order>
|
75 |
+
<show_in_default>1</show_in_default>
|
76 |
+
<show_in_website>1</show_in_website>
|
77 |
+
<show_in_store>1</show_in_store>
|
78 |
+
<comment>If your product is top level requested without a category path should VertNav expand the category listing to the first associated product category.</comment>
|
79 |
+
</show_cat_on_toplevel>
|
80 |
<vertnav_root translate="label" module="vertnav">
|
81 |
<label>Root Categories</label>
|
82 |
<frontend_type>select</frontend_type>
|
app/locale/de_DE/RicoNeitzel_VertNav.csv
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
"Display Product Count","
|
2 |
"Expand all categories","Alle Kategorien öffnen"
|
3 |
"Expand all max depth","Alle öffnen bis max. Tiefe"
|
4 |
"Leave empty or set to 0 for no limit","Leer lassen oder auf 0 setzen für keine Einschränkung"
|
@@ -9,4 +9,6 @@
|
|
9 |
"Same level as current category","Gleiche Ebene wie aktuelle Kategorie"
|
10 |
"Fallback to store base","Auf Store Basis zurückfallen"
|
11 |
"If no current category is selected","Wenn keine aktuelle Kategorie ausgewählt ist"
|
12 |
-
"Category Level %d","Kategorie Ebene %d"
|
|
|
|
1 |
+
"Display Product Count","Artikelanzahl anzeigen"
|
2 |
"Expand all categories","Alle Kategorien öffnen"
|
3 |
"Expand all max depth","Alle öffnen bis max. Tiefe"
|
4 |
"Leave empty or set to 0 for no limit","Leer lassen oder auf 0 setzen für keine Einschränkung"
|
9 |
"Same level as current category","Gleiche Ebene wie aktuelle Kategorie"
|
10 |
"Fallback to store base","Auf Store Basis zurückfallen"
|
11 |
"If no current category is selected","Wenn keine aktuelle Kategorie ausgewählt ist"
|
12 |
+
"Category Level %d","Kategorie Ebene %d"
|
13 |
+
"Expand on Top Level","Aufklappen, wenn Artikel direkt aufgerufen wird"
|
14 |
+
"If a product is top level requested without a category path should VertNav expand the category listing to the first associated category.","Soll der Kategoriebaum zur ersten, dem Artikel zugewiesenen Kategorie aufgeklappt werden, wenn der Artikel direkt (ohne Kategoriepfad in der URL) aufgerufen wurde?"
|
package.xml
CHANGED
@@ -1,18 +1,20 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>RicoNeitzel_VertNav</name>
|
4 |
-
<version>0.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>Vertical Navigation - drop in replacement for the horizontal top navigation.</summary>
|
10 |
<description>Lots of css selectors available.</description>
|
11 |
-
<notes>Add a vertical menu to your site. Features many css classes and several configuration options
|
12 |
-
|
13 |
-
|
14 |
-
<
|
15 |
-
<
|
|
|
|
|
16 |
<compatible/>
|
17 |
-
<dependencies
|
18 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>RicoNeitzel_VertNav</name>
|
4 |
+
<version>0.4.0</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>Vertical Navigation - drop in replacement for the horizontal top navigation.</summary>
|
10 |
<description>Lots of css selectors available.</description>
|
11 |
+
<notes>Add a vertical menu to your site. Features many css classes and several configuration options.
|
12 |
+

|
13 |
+
0.4.0: Added Feature Expand on Top Level Request: If a product is requested without categories in the URL vert nav can figure out the first assigned category and expands the category tree</notes>
|
14 |
+
<authors><author><name>Vinai Kopp</name><user>vinai</user><email>vinai@netzarbeiter.com</email></author><author><name>Rico Neitzel</name><user>rizi</user><email>rico@buro71a.de</email></author></authors>
|
15 |
+
<date>2012-09-03</date>
|
16 |
+
<time>08:55:15</time>
|
17 |
+
<contents><target name="magecommunity"><dir name="RicoNeitzel"><dir name="VertNav"><dir name="Block"><file name="Navigation.php" hash="2a1dbd73a8d665a34ad2e31abea39749"/></dir><dir name="Helper"><file name="Data.php" hash="a3995193a1ce5560edbd95e11720ce8b"/></dir><dir name="Model"><dir name="System"><dir name="Config"><dir name="Source"><file name="Root.php" hash="20696bf2dfef3e1092d7c08caf1dbc8e"/></dir></dir></dir></dir><dir name="etc"><file name="config.xml" hash="eea44d143acdf63090d1206b7ae6b089"/><file name="system.xml" hash="8341b6dc4b1894f7ce0b5241aa8ba547"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="RicoNeitzel_VertNav.xml" hash="227d7980c24ebd629e1c1d4f10b8c62c"/></dir></target><target name="magelocale"><dir name="de_DE"><file name="RicoNeitzel_VertNav.csv" hash="85bf4aa9c2b81187ab5e1c8f62a35110"/></dir><dir name="es_MX"><file name="RicoNeitzel_VertNav.csv" hash="54b83643165bc5b72ca8ce2122fd5422"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="vertnav.xml" hash="956ada78dc7cd460a2e94a718e33dfa9"/></dir><dir name="template"><dir name="vertnav"><file name="left.phtml" hash="e2f0d7e286ad1d3caadd4892fbb0671f"/></dir></dir></dir></dir><dir name="default"><dir name="default"><dir name="layout"><file name="vertnav.xml" hash="956ada78dc7cd460a2e94a718e33dfa9"/></dir><dir name="template"><dir name="vertnav"><file name="left.phtml" hash="e2f0d7e286ad1d3caadd4892fbb0671f"/></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><file name="vertnav.css" hash="48ed54348eefcc8e1e0286feb84cbe4e"/></dir></dir></dir><dir name="default"><dir name="default"><dir name="css"><file name="vertnav.css" hash="48ed54348eefcc8e1e0286feb84cbe4e"/></dir></dir></dir></dir></target></contents>
|
18 |
<compatible/>
|
19 |
+
<dependencies><required><php><min>5.2.6</min><max>6.0.0</max></php></required></dependencies>
|
20 |
</package>
|