Помощь Список категорий

Тема в разделе "DLE", создана пользователем DiMk@™, 31 дек 2012.

Информация :
Актуальная версия DataLife Engine 11.3
( Final Release v.11.3 | Скачать DataLife Engine | Скачать 11.3 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.2 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Модераторы: killoff
  1. DiMk@™

    DiMk@™

    Регистр.:
    5 май 2006
    Сообщения:
    154
    Симпатии:
    132
    DLE 8.5 пока на сайте не перевалило за 1K уников в сутки было все путен, нынче новостей под 8K, 35 категорий.
    есть подозрение на catlist.php который с каждым пользователем дергает базу и пересччитывает количество новостей по каждой категории
    можно как то оптимизировать -закешировать ???
    сам в коде не разбирусь
    может кто помочь
    заранее сенкс.
     

    Вложения:

    • catlist.php.txt
      Размер файла:
      726 байт
      Просмотров:
      23
    alikk нравится это.
  2. yavasilek

    yavasilek vasilek_gorbunok

    Регистр.:
    5 окт 2008
    Сообщения:
    1.178
    Симпатии:
    423
    Переписал модуль - наверное правильно :D
    У меня работает
    PHP:
    <?php
    /*
    ======================================================================================
    Назначение: Модуль для вывода списка категорий
    ======================================================================================
    Автор: не сообщили
    Добавал кеширование: yavasilek
    ======================================================================================
    Файл: catlist.php
    ======================================================================================
    */
     
    if(!defined('DATALIFEENGINE')){die("шел бы ты отсюда петушок");}        //для красоты ))
     
    $config['allow_cache'] = "yes";                                    //включаем кеширование, а то вдруг оно выключено ))
    $catlist dle_cache("catlist"$config['skin']);                //берем наш кеш, если есть конечно ))
     
    if( !$catlist ) {                                                //проверяем взяли ли из кеша и если нет, то делаем выборку.
        
    $sql_result $db->query("select ct.id, ct.alt_name, ct.name, ct.posi, ct.parentid, (select count(*) from "PREFIX ."_post ps where ps.category = ct.id AND (DATE_FORMAT(date, '%Y%m%d')=CURDATE()) AND approve = '1') as new_, (select count(*) from "PREFIX ."_post ps where ps.category = ct.id AND approve = '1') as allnews_ from "PREFIX ."_category ct ORDER BY ct.posi");
        while(
    $row $db->get_row($sql_result)){
            if (
    $row['parentid']=='0'$catlist .= '<li>&raquo; <a href="'.$config['http_home_url'].$row['alt_name'].'/">'.$row['name'].'</a> ['.($row['allnews_']).']</li>';
            else 
    $catlist .= '<li class="subcat">&raquo; <a href="'.$config['http_home_url'].$row['alt_name'].'/">'.$row['name'].'</a> ['.($row['allnews_']).']</li>';
            }
            
    create_cache("catlist"$catlist$config['skin'] );    //записываем данные в кеш
        
    }
    echo 
    $catlist;                                                    //выводим наши данные
    ?>
     
    alikk, SashaShy и DiMk@™ нравится это.