8Dle
Авторизация

Активные категории

Модуль Активные категории

Данный модуль позволяет присваивать класс (html class) для активной категории непосредственно в шаблоне через {include file=''}.

Скачать мод:
[attachment=853]


Распаковываем и заливаем его в папку: engine/modules/

Исходный код мода:
<?php
  
/**
* Скрипт выводит html класс (class) для подсветки категории или места нахождения пользователя на сайте.
* Note: Подсвечиваются абсолютно все категории выбранной новости.
*/
  
if( ! defined( 'DATALIFEENGINE' ) ) {
    die( "Hacking attempt!" );
}
  
global $category_id, $cat_info, $do;
  
if( $action != "section" ) {
  
    $categoryArray = explode( ',', $category_id );
    $categoryArraySelected = explode( ',', $id );
    $selectedArray = array_intersect( $categoryArray, $categoryArraySelected );
    
}
  
switch( $action ) {
  
    case "sub" :
        if( $category_id && !empty( $selectedArray ) ) echo "sub_selected";
        break;
  
    case "section" :
        if( $do == $name ) echo " selected";
        break;
  
    default :
        if( $category_id && !empty( $selectedArray ) ) echo " selected";
  
}
  
unset( $categoryArray, $categoryArraySelected, $selectedArray );
  
?>


Теперь небольшие пояснения к коду, который написан специально для бесплатного шаблона TopDownloads:
$action - переменная, отвечающая за класс HTML: в нашем случае их 3 - раздел на сайте (section), категория (default) и подкатегория (sub). В зависимости от ее значения будет присваиваться определенный html class, который и будет отображать на сайте активную категорию/раздел.

Это все было лирическое отступление :) Теперь главное указать работу модуля непосредственно в шаблоне. Делается это с помощью специального тега {include}.

Например, есть у нас следующая строчка (пример из шаблона topdownloads):
<a href="/news/" class="index"><span>Новости</span></a>

На примере тег A уже имеет класс "index", и чтобы категория стала активной (подсвечивалась), необходимо добавить еще класс "selected". Как определить активна ли категория и когда ему присваивать этот класс "selected"? Это и сделает за вас скрипт, выложенный выше.
Подключаем его следующим образом:
<a href="/news/" class="index {include file='engine/modules/activecat.php?id=1,2,3'}"><span>Новости</span></a>

id - это id ваших категорий через запятую.

Теперь мы хоти подсвечивать разделы на сайте (поиск, добавление новости, последние комментарии и прочие). Берем в пример этот код:
<li class="index"><a href="/index.php?do=lastcomments" class="index {include file='engine/modules/activecat.php?name=lastcomments&action=section'}"><span>Последние комментарии</span></a></li>

name - переменная, имя раздела (есть в документации к движку);
action - равна section, указываем скрипту, что это не категория, а раздел.

Хочу отметить, что в скрипте переменная action может принимать значение "sub", это сделано только для того, чтобы выводить другое имя класса (из за специфики верстки шаблона).

При желании скрипт можно переписать таким образом, что в него не надо будет даже подглядывать при работе с шаблоном и он станет универсальным. Если будет желающие получить его, то пишите - сделаю, это недолго.

Внимание! Скрипт несет за собой небольшую нагрузку, а именно увеличивается время выполнения скрипта и компиляция шаблона. Перед его использованием стоит задуматься, логично ли его использовать, если у вас очень большое число категорий выводится в шаблоне и сайт расположен на виртуальном хостинге ;) Чтобы не тратить ресурсы сервера, необходимо скрипт интегрировать в сам движок. Подобный скрипт уже встречался мне в сети, поэтому время на создание велосипеда тратить не вижу смысла, но если будут просьбы - конечно, сделаю.

Жмите на Кнопу ниже, или подписывайтесь!


Читайте также
  1. Jamesdgreeze
    14 октября 2010 21:24
    Велосипед в студию!!! lol
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


Dle это движок который изначально проектировался для создания новостных сайтов, но по мере своего развития движка значительно расширил свою функциональность и стал универсальным средством разработки и сопровождения сайтов и блогов различной направленности и тематики. По сравнению с другими бесплатными (и некоторыми платными) CMS системами движок dle обладает довольно обширными возможности.

Авторизация