Перейти к содержимому


Фотография
- - - - -

Изменить ссылку при активной родительской категории


Сообщений в теме: 3

#1 13LTD

13LTD

Отправлено 04 March 2016 - 13:34

День добрый, не получается решить задачу а именно:

категории вывожу модулем categoryZoo задача при активной родительской категории дочерним категориям заместо ссылок присвоить якоря, это элементарно с этим нет проблем, не получается присвоить якоря ТОЛЬКО подкатегориям с активным родителем, может кто подскажет как решить, для наглядности

 

Категория 1 - ссылка активная

--подкатегория 1.1 - якорь

--подкатегория 1.2 - якорь

--подкатегория 1.3 - якорь

Категория 2 - ссылка НЕ активна

--подкатегория 2.1 - ссылка

--подкатегория 2.2 - ссылка

--подкатегория 2.3 - ссылка

 

а вод и сам код модуля, 

$result = array("<ul $attribs>");
		foreach ($category->getChildren($flat ? true : false) as $category) {

			$path = array_reverse($category->getPath());
			$depth = count(array_slice($path, array_search($params->get('category', 0), $path))) - 1;
			if ($max_depth && $max_depth < $depth) {
				continue;
			}

			$current = $current_id == $category->id;
			$active = $current || in_array($current_id, array_keys($category->getChildren(true)));
			$parent = $category->hasChildren() && !($max_depth && $max_depth < $depth + 1);
			$url = $this->app->route->category($category, true, $menu_item);
			$class = ' class="'.($flat ? '' : 'level'.$level).($parent ? ' parent' : '').($current ? ' current' : '').($active ? ' active' : '').'"';

			$result[] = "<li$class>";
			if ($params->get('add_count', 0)) {
				$result[] = "<a href=\"$url\"$class><span>{$category->name} ({$category->itemCount()})</span></a>";
			} else {
				$result[] = "<a href=\"$url\"$class><span>{$category->name}</span></a>";
			}
			if (!$flat && ($active || $expanded) && $parent) {
				$result[] = $this->render($category, $params, $level+1, $flat, 'class="level'.($level+1).'"', $expanded);
			}
			$result[] = '</li>';

		}
		$result[] = '</ul>';

  • 0

#2 SmetDenis

SmetDenis

Отправлено 04 March 2016 - 15:30

Перед тем как решать в коде делать акорь для (под-)категории или нет, можно добавить вот такое условие

$categoryId = $this->app->jbrequest->getSystem('category'); // текущая категория из адреса страницы или пункта меню

...
$parentCategory = $subCategory->getParent();
if ($parentCategory && $parentCategory->id == $categoryId) {
   // делаем якорь
}
...

  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#3 13LTD

13LTD

Отправлено 04 March 2016 - 16:54

не выходит

Notice: Undefined variable: subCategory in /public_html/modules/mod_zoocategory/helper.php on line 55 Fatal error: Call to a member function getParent() on null in /public_html/modules/mod_zoocategory/helper.php on line 55

строка $parentCategory = $subCategory->getParent();


  • 0

#4 SmetDenis

SmetDenis

Отправлено 04 March 2016 - 18:03

Так я же не готовый вариант вам дал, а только идею как это реализовать.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.





Click to return to top of page in style!