dle.in.ua » Хаки » ХАК для вывода категорий и подкатегорий в вертикальное меню средсвами css

ХАК для вывода категорий и подкатегорий в вертикальное меню средсвами css

Автор: kilya от 15-01-2010, 11:12
ХАК для вывода категорий и подкатегорий в вертикальное меню средсвами css


Прошу строго не судить!
Подредактировал уже существующий в природе ХАК "Хак Вывод категорий сайта в меню"
(там было срдествами ЯВЫ - что не есть удобно - у кого то она может быть выключена)

Данный ХАК выводит категории сайта в меню средствами css

Тестировалось на DLE8.3
1) Открываем index.php (блокнотом или др.)
2) Ищем

$tpl->set('{AJAX}', $ajax);

3) Вставляем выше(вариант с подкатегориями 1-го уровня с кеш)

#-----------------------------------------#
if(file_exists(ENGINE_DIR.'/cache/cat_menu.tmp'))
{
   $cat_menu=file_get_contents(ENGINE_DIR.'/cache/cat_menu.tmp');
}
   else
{
   $sql_result = $db->query("SELECT id,alt_name,name,parentid FROM " . PREFIX . "_category WHERE parentid=0 ORDER BY posi");

   $cat_menu='<div id="menu">';
   $cat_menu.='<ul>';
   $cat_menu.='<li><a href="'.$config['http_home_url'].'" ><b>'.'Главная'.'</b></a></li>';
  
   while($row = $db->get_row($sql_result))
   {  

      $res = $db->query("SELECT id,alt_name,name,parentid FROM " . PREFIX . "_category WHERE parentid='".$row['id']."' ORDER BY posi");
    
if ($db->num_rows($res)>=1)
{
$cat_menu.='<li><a class="fly" href="'.$config['http_home_url'].$row['alt_name'].'/" alt="'.$row['descr'].'"><b> '.$row['name'].'<!--[if gte IE 7]><!--></b></a><!--<![endif]-->';
} else {
$cat_menu.='<li><a href="'.$config['http_home_url'].$row['alt_name'].'/" alt="'.$row['descr'].'"><b> '.$row['name'].'<!--[if gte IE 7]><!--></b></a><!--<![endif]-->';

        }

$cat_menu.='<!--[if lte IE 6]><table><tr><td><![endif]-->';
$cat_menu.='<ul class="level2">';
      while($row2 = $db->get_row($res))
      {


        
        $cat_menu.='<li> <a href="'.$config['http_home_url'].$row2['alt_name'].'/" alt="'.$row2['descr'].'"><b>'.$row2['name']."</b></a></li>";
        
      }
        $cat_menu.='</ul>';
        $cat_menu.='<!--[if lte IE 6]></td></tr></table></a><![endif]-->';
    $cat_menu.='</li>';    

   }

$cat_menu.='<li><a href="'.$config['http_home_url'].'feedback.html" >'."Обратная связь"."</span></a></li>";
$cat_menu.='<li><a href="'.$config['http_home_url'].'statistics.html" >'."Статистика"."</span></a></li>";
$cat_menu.='<li><a href="'.$config['http_home_url'].'rules.html" >'."Правила"."</span></a></li>";
$cat_menu.='<li><a href="'.$config['http_home_url'].'yasitemap" >'."Карта сайта"."</span></a></li>";


   $cat_menu.='</ul>';
   $cat_menu.='</div>';
   file_put_contents(ENGINE_DIR.'/cache/cat_menu.tmp',$cat_menu);
}
$tpl->set('{cat_menu}', $cat_menu);
#-----------------------------------------#

Сохраняем.

Создаем файл css - dropdown.css ложим в каталог style вашей темы
Содержимое

#menu {position:relative; z-index:500;}
#menu ul {padding:0; margin:0; list-style:none; width:90%; padding:5px; background:transparent;}
#menu ul ul {position:absolute; left:-9999px;}
#menu table {border-collapse:collapse; width:0; height:0; position:absolute; left:-1px; top:-1px;}
#menu ul li {width:98%; background:transparent;background: url("../images/quick_menu.png") no-repeat left top;}
* html #menu ul li {float:left;}
#menu ul li a {display:block; width:98%; padding:8px 10px 8px 5px; font:normal 11px verdana, sans-serif;color: #ff9209;font-weight: bold; text-decoration:none; background: url("../images/quick_menu.png") no-repeat left top; clear:left;}

/*#menu ul li a.fly {background: url("../images/quick_menu.png") no-repeat left top;}*/
#menu ul li a.fly {background: url(../images/arrow.gif) no-repeat 95% center;}


#menu ul li:hover {position:relative;}
#menu ul li a:hover {direction:ltr; background:#89a; color:#fff; border-color:#89a; position:relative;}
#menu ul li:hover > a {background:#ffa507; color:#ffffff; border-color:#89a;}

#menu ul :hover ul,
#menu ul :hover ul :hover ul,
#menu ul :hover ul :hover ul :hover ul,
#menu ul :hover ul :hover ul :hover ul :hover ul {left:100%; top:-5px;}

#menu ul :hover ul ul,
#menu ul :hover ul :hover ul ul,
#menu ul :hover ul :hover ul :hover ul ul {left:-9999px;}


Открываем main.tpl вышего шаблона перед дописываем
<link rel="stylesheet" media="all" type="text/css" href="{THEME}/style/dropdown.css" />


и в нужное Вам место для меню пишем
{cat_menu}


Если не корректно отображается список - проверьте файл стилей main.css
найдите

ul li {
    margin: 5px 0; padding: 0px 0 0px 14px;
    list-style-type: none;
    background: transparent url("../images/li.gif") no-repeat left 5px;
}


И ЗАМЕНИТЕ НА

ul li {
    margin: 0px 0; padding: 0px 0 0px 0px;
    list-style-type: none;
    
}
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • сильно большой код, насколько я знаю ето все можно написать с помощю css и конд двига ковырять не нужно
    ребята как сделать рейтинг новостей так как на картинке
    • BiluyX
    • Регистрация: --
    • Репутация: (||)
    • 16 января 2010 13:09
    • 1
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • BiluyX, хыыы заменить картинки, и установить рейтинг для твоей версии
    • LifeStyle
    • Регистрация: --
    • Репутация: (||)
    • 16 января 2010 23:24
    • 2
    ^
  • Группа: User
  • Icq: --
  • Комментариев: 16
  • Публикаций: 5
  • Переписал и оптимизировал код - Sander(ом) - ему респект!!!
    Используется $cat_info. Кэш. 0 запросов. Выводит также только одну подкатегорию.
    Чтобы было больше - нужно стили переписывать.

    http://rapidshare.com/files/337093661/cat_menu.zip

    --------------------
    • kilya
    • Регистрация: 3.01.2010
    • Репутация: (0|0|0)
    • 18 января 2010 10:16
    • 3
    ^
  • Группа: User
  • Icq: --
  • Комментариев: 12
  • Публикаций: 0
  • Странно...
    1.У меня не раскрываются категории... в чем причина может быть?
    2.И где это такой "main.css" ??

    И ведь вместо папки style у нас папка css - а никто и не оговорился ниразу...

    DLE 8.3. .

    =========
    Вот здесь в комментариях
    http://4дле.ru/hacks/1147157999-khak-dlja-vyvoda-kategorijj-i.html

    автор исправил свои ошибки и выложил графические файлы... но закинул все на Рапиду... я с нее качать не могу... переложите куда-нибудь плиз....
    • azaq3
    • Регистрация: 18.01.2010
    • Репутация: (0|0|0)
    • 18 января 2010 12:13
    • 4
    ^
  • Группа: User
  • Icq: --
  • Комментариев: 16
  • Публикаций: 5
  • azaq3, лови http://depositfiles.com/files/0288liq8l

    --------------------
    • kilya
    • Регистрация: 3.01.2010
    • Репутация: (0|0|0)
    • 18 января 2010 20:35
    • 5
    ^
  • Группа: User
  • Icq: --
  • Комментариев: 12
  • Публикаций: 0
  • kilya,
    Спасибо тебе большое =))) Но проблема остается wink
    У меня динамический IP - он меняется постоянно - как только до меня доходит очередь скачивания - мне говорят что ссылка для меня уже недействительна =)))
    Скачать смогу тока с letitbit =)) или залей, пожалуйста, еще на multi-up.com
    • azaq3
    • Регистрация: 18.01.2010
    • Репутация: (0|0|0)
    • 18 января 2010 20:44
    • 6
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • а почему меню смешанного языка на скрине? "Мобильный" и "Portable", писали бы уже "Mobile" или "Портативный" belay

    на многих сайтах смотрю так пишут, мода что ли?
    • SysAdmin
    • Регистрация: --
    • Репутация: (||)
    • 18 января 2010 21:05
    • 7
    ^
  • Группа: User
  • Icq: --
  • Комментариев: 16
  • Публикаций: 5
  • azaq3,
    http://letitbit.net/download/3305.34603839b273485e9cd75ac01/cat_menu.zip.html

    --------------------
    • kilya
    • Регистрация: 3.01.2010
    • Репутация: (0|0|0)
    • 18 января 2010 21:40
    • 8
    ^
  • Группа: User
  • Icq: --
  • Комментариев: 12
  • Публикаций: 0
  • Немногие бы парились из -за одного человека - спасибо тебе bully

    Однако не работает... меню отображается - но категории при этом не раскрываются... а где main.css ... может в нем трабла?
    • azaq3
    • Регистрация: 18.01.2010
    • Репутация: (0|0|0)
    • 18 января 2010 22:45
    • 9
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • Цитата: azaq3
    Немногие бы парились из -за одного человека - спасибо тебе Однако не работает... меню отображается - но категории при этом не раскрываются... а где main.css ... может в нем трабла?


    ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    ))))))))
    • stunnaman
    • Регистрация: --
    • Репутация: (||)
    • 26 января 2010 20:20
    • 10
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • ахахха, {THEME}/css/main.css если не понял че такое {THEME} то: шаблон/css/main.css
    • Strange
    • Регистрация: --
    • Репутация: (||)
    • 31 января 2010 10:11
    • 11
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • Strange,

    пасмарел, и ни фига не нашел майн точка сиэсэс
    чё за зверь, у ся в папке шаблона такого файла днем с огнем............
    если уж начали за здравия то давайте расписывайте до конца
    ну нет в природе такого файла
    если его гдето надо взять скажи и не выделывайся
    хы
    я ведь так понимаю, что где-то создается список этого {cat_menu} за пределами шаблона. А вот где?
    Этого понять не могу
    тупой че поделашь
    • yasad
    • Регистрация: --
    • Репутация: (||)
    • 19 февраля 2010 23:29
    • 12
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • Помогите устранить проблему, меню подкатегорий полностью не вылазит

    _http://s03.radikal.ru/i176/1002/3e/5d2b44befc32.png
    • ReZoV
    • Регистрация: --
    • Репутация: (||)
    • 27 февраля 2010 15:21
    • 13
    ^
  • Группа: User
  • Icq: --
  • Комментариев: 16
  • Публикаций: 0
  • Нифига не пашет - 10 angry
    • seez
    • Регистрация: 6.05.2009
    • Репутация: (0|0|0)
    • 20 марта 2010 13:16
    • 14
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • yasad

    Блин, посмотри в main.tpl после тэга <head> какой css у тебя прикручен

    <link href="{THEME}/css/engine.css" type="text/css" rel="stylesheet" />
    <link href="{THEME}/css/defaultpl.css" type="text/css" rel="stylesheet" />

    Вот у меня так
    • AlisTeR_AEON
    • Регистрация: --
    • Репутация: (||)
    • 13 апреля 2010 11:14
    • 15
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • Все отлично работает!!!
    Ребята как дописать вложеность категорий?
    Может кто знает как Я ЗАПЛАЧУ!!!!
    • newud
    • Регистрация: --
    • Репутация: (||)
    • 17 апреля 2010 17:27
    • 16
    ^
  • Группа: User
  • Icq: 393603465
  • Комментариев: 22
  • Публикаций: 0
  • Неработает ваш этот код,ничего не выводит)

    --------------------
    • Sergynio
    • Регистрация: 8.10.2009
    • Репутация: (0|0|0)
    • 17 мая 2010 10:24
    • 17
    ^
  • Группа: User
  • Icq: --
  • Комментариев: 1
  • Публикаций: 0
  • Здоровый код, можно и короче постараться сделать!

    --------------------
    • andrew1982
    • Регистрация: 16.07.2010
    • Репутация: (0|0|0)
    • 3 августа 2010 20:56
    • 18
    ^
    Информация
    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.