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

ХАК для вывода категорий и подкатегорий в вертикальное меню средсвами 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;
    
}
Другие новости по теме:

Категория: Хаки ----- Просмотров: 5342 ----- Комментариев: 18

Вернуться

  • BiluyX

  • 16 января 2010 13:09
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
сильно большой код, насколько я знаю ето все можно написать с помощю css и конд двига ковырять не нужно
ребята как сделать рейтинг новостей так как на картинке
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
BiluyX, хыыы заменить картинки, и установить рейтинг для твоей версии
  • kilya

  • 18 января 2010 10:16
  • Группа: User
  • ICQ: --
  • Регистрация: 4.01.2010
  • Комментариев: 16
  • Публикаций: 5
^
Переписал и оптимизировал код - Sander(ом) - ему респект!!!
Используется $cat_info. Кэш. 0 запросов. Выводит также только одну подкатегорию.
Чтобы было больше - нужно стили переписывать.

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

--------------------
  • azaq3

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

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

DLE 8.3. .

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

автор исправил свои ошибки и выложил графические файлы... но закинул все на Рапиду... я с нее качать не могу... переложите куда-нибудь плиз....
  • kilya

  • 18 января 2010 20:35
  • Группа: User
  • ICQ: --
  • Регистрация: 4.01.2010
  • Комментариев: 16
  • Публикаций: 5
^
azaq3, лови http://depositfiles.com/files/0288liq8l

--------------------
  • azaq3

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

на многих сайтах смотрю так пишут, мода что ли?
  • kilya

  • 18 января 2010 21:40
  • Группа: User
  • ICQ: --
  • Регистрация: 4.01.2010
  • Комментариев: 16
  • Публикаций: 5
^
azaq3,
http://letitbit.net/download/3305.34603839b273485e9cd75ac01/cat_menu.zip.html

--------------------
  • azaq3

  • 18 января 2010 22:45
  • Группа: User
  • ICQ: --
  • Регистрация: 18.01.2010
  • Комментариев: 12
  • Публикаций: 0
^
Немногие бы парились из -за одного человека - спасибо тебе bully

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


))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))
  • Strange

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

  • 19 февраля 2010 23:29
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
Strange,

пасмарел, и ни фига не нашел майн точка сиэсэс
чё за зверь, у ся в папке шаблона такого файла днем с огнем............
если уж начали за здравия то давайте расписывайте до конца
ну нет в природе такого файла
если его гдето надо взять скажи и не выделывайся
хы
я ведь так понимаю, что где-то создается список этого {cat_menu} за пределами шаблона. А вот где?
Этого понять не могу
тупой че поделашь
  • ReZoV

  • 27 февраля 2010 15:21
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
Помогите устранить проблему, меню подкатегорий полностью не вылазит

_http://s03.radikal.ru/i176/1002/3e/5d2b44befc32.png
  • seez

  • 20 марта 2010 13:16
  • Группа: User
  • ICQ: --
  • Регистрация: 6.05.2009
  • Комментариев: 16
  • Публикаций: 0
^
Нифига не пашет - 10 angry
  • Группа: Гости
  • 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" />

Вот у меня так
  • newud

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

--------------------
  • Группа: User
  • ICQ: --
  • Регистрация: 16.07.2010
  • Комментариев: 1
  • Публикаций: 0
^
Здоровый код, можно и короче постараться сделать!

--------------------