Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Стол заказов » Доработать модуль подкатегорий.

Доработать модуль подкатегорий.


 bratoz    12.03.2013    Стол заказов    2849    6 комментариев

Есть такой модуль, который автоматически выводит подкатегории - nfhelp.ru
Но увы он выводит подкатегории только у той категории, которую я укажу.

Нужно доработать модуль и сделать автоматический вывод подкатегорий сразу у всех категорий.
Я знаю что можно использовать тег [category=x], но в моем случае это гемор, т.к. около 100 категорий и проще всё таки допилить модуль.

Вот пример вывода подкатегорий у меня. Нужно сделать так же для остальных...

6 комментариев

Sander
PHP-developer

Sander - 13 марта 2013 02:46 -

Прочитал вопрос, стало немного понятнее...
Что если в коде попробовать заменить:
$cat = intval($cat);

на
$cat = intval($cat)?intval($cat):$category_id;


Ну и соответственно выводить просто:
{include file="/engine/modules/autosubcats.php"}


Однако при просмотре полной новости этот хак может повести себя несколько непредсказуемо.

SanDev.pro - мой блог.

Telegram: @sandev
Skype: Sander8804

bratoz
Юзер

bratoz - 13 марта 2013 13:05 -

Да, всё работает.
Вот только при нажатии на любую подкатегорию, остается текст "Категории" и рамка.

Было бы хорошо, если бы нажав на подкатегорию активная ссылка бы выделялась другим цветом.

kazantipu
Юзер

kazantipu - 15 марта 2013 12:00 -

создал давно на таком же коде свой модуль, более удобный в оформлении

<link rel="stylesheet" type="text/css" href="/templates/prof/style/autosubcats.css"/>

<div id="cat_menu">
<ul>
<?php

if(!defined('DATALIFEENGINE'))die("Hacking attempt!");
$result = '';

$cat = intval($cat);
foreach($cat_info as $k=>$v){

if ($v['posi'] > 99) {

$padd = $v[icon];
if ($padd <= $cat ) {
$res1 = "<li class='cat_menu_{$padd}'>";
if ($v['id'] == $category_id) { $res1 = "<li id='cat_menu_select' class='cat_menu_{$padd}' >"; }

$title = "'" .$v['metatitle'] ."'";
$titpref ="";
if ($padd > 1) {
$titpref ="• ";
}

$result .= $res1 . $titpref ."<a class=' title={$title} href=\"".$config['http_home_url'].get_url($k)."/#content\">{$v['name']}</a></li>";
}
}
}
echo $result;
?>
</ul></div>

kazantipu
Юзер

kazantipu - 15 марта 2013 12:53 -

в настройках категорий выставляется очередь и уровень вложенности

kazantipu
Юзер

kazantipu - 15 марта 2013 12:53 -

в стилях для каждой подкатегории есть свой класс для оформления
/* auto sub menu category */
/* left menu */


#cat_menu {
border-left:#ced3d7 1px solid;
border-right:#ced3d7 1px solid;
}
#cat_menu ul {
list-style-type: none;
padding-left: 0px;
margin-left: 0px;
}
#cat_menu_select {
background-color:#999;
}

.cat_menu_0 {
margin:15px 0px 0px 0px;
padding-left:5px;
border-bottom:2px #FF0000 groove;
border-top:2px #FF0000 ridge;
line-height:25px;
color:#000000;
}
.cat_menu_0 a {
text-transform:uppercase;
font-weight:bold;
font-size:14px;
color:#000000;
}

.cat_menu_1 {
padding-left:10px;
line-height:20px;
color:#000000;
}
.cat_menu_1 a {
text-transform:capitalize;
font-weight:bold;
font-size:14px;
color:#000000;
}
.cat_menu_2 {
padding-left:15px;
color:#000000;
}
.cat_menu_2 a {
text-transform:lowercase;
font-weight:normal;
font-size:12px;
color:#000000;
}

bratoz
Юзер

bratoz - 15 марта 2013 14:33 -

Да меня в принципе всё устраивает в модуле. Просто нужно сделать так что бы выбранная подкатегория выделялась.
В данный момент при выборе подкатегории я перехожу к ней а все остальные подкатегории пропадают.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте
наверх