Warning: fopen(/var/www/admin/data/www/artsss-web.ru/engine/cache/system/category.php): failed to open stream: No such file or directory in /var/www/admin/data/www/artsss-web.ru/engine/modules/functions.php on line 316 Warning: fwrite(): supplied argument is not a valid stream resource in /var/www/admin/data/www/artsss-web.ru/engine/modules/functions.php on line 317 Warning: fclose(): supplied argument is not a valid stream resource in /var/www/admin/data/www/artsss-web.ru/engine/modules/functions.php on line 318 Warning: fopen(/var/www/admin/data/www/artsss-web.ru/engine/cache/system/usergroup.php): failed to open stream: No such file or directory in /var/www/admin/data/www/artsss-web.ru/engine/modules/functions.php on line 316 Warning: fwrite(): supplied argument is not a valid stream resource in /var/www/admin/data/www/artsss-web.ru/engine/modules/functions.php on line 317 Warning: fclose(): supplied argument is not a valid stream resource in /var/www/admin/data/www/artsss-web.ru/engine/modules/functions.php on line 318 Warning: fopen(/var/www/admin/data/www/artsss-web.ru/engine/cache/system/informers.php): failed to open stream: No such file or directory in /var/www/admin/data/www/artsss-web.ru/engine/modules/functions.php on line 316 Warning: fwrite(): supplied argument is not a valid stream resource in /var/www/admin/data/www/artsss-web.ru/engine/modules/functions.php on line 317 Warning: fclose(): supplied argument is not a valid stream resource in /var/www/admin/data/www/artsss-web.ru/engine/modules/functions.php on line 318 Warning: fopen(/var/www/admin/data/www/artsss-web.ru/engine/cache/related_19f3cd308f1455b3fa09a282e0d496f4.tmp): failed to open stream: Permission denied in /var/www/admin/data/www/artsss-web.ru/engine/modules/functions.php on line 374 Warning: fwrite(): supplied argument is not a valid stream resource in /var/www/admin/data/www/artsss-web.ru/engine/modules/functions.php on line 375 Warning: fclose(): supplied argument is not a valid stream resource in /var/www/admin/data/www/artsss-web.ru/engine/modules/functions.php on line 376 Warning: fopen(/var/www/admin/data/www/artsss-web.ru/engine/cache/system/banners.php): failed to open stream: No such file or directory in /var/www/admin/data/www/artsss-web.ru/engine/modules/functions.php on line 316 Warning: fwrite(): supplied argument is not a valid stream resource in /var/www/admin/data/www/artsss-web.ru/engine/modules/functions.php on line 317 Warning: fclose(): supplied argument is not a valid stream resource in /var/www/admin/data/www/artsss-web.ru/engine/modules/functions.php on line 318
DataLife Engine > Хаки DLE > Количество новостей в меню навигации v.3.0
Количество новостей в меню навигации v.3.021-09-2010, 16:20. Разместил: Пряник |
Вот на днях бороздя просторы нета нарыл такой вот интересный на мой взгляд хак для DLE. К сожалению автор мне не известен.
Позволяет проставить количество новостей за сегодня и общее количество по конкретной категории в меню навигации или любом другом месте сайта. Есть возможность ставить количество новостей в каком угодно виде. Кроме того можно проставлять количество новостей в подкаталогах любой вложености. Единственное, что нужно знать для этого - это id категории. Примеры отображения в меню навигации (отображение зависит только от Вашей фантазии) Что нового: 1) кэширование количества новостей; 2) возможность убирать «0», если новостей за сегодня по категории нет; 3) исправлен баг неточного подсчета количества новостей, если новость в нескольких категориях. УСТАНОВКА для версий DLE8.2-8.5 1) Создаем новый php файл, и вставить в него следущий код: <?php /********* Количество новостей в главном меню **********/ $count_news = dle_cache( "count_news_of_category", $config[’skin’] ); if( !$count_news ) { //кэш с количеством новостей пуст $sql_result = $db->query("select ct.id, (select count(*) from ". PREFIX ."_post ps where (ps.category REGEXP concat( '^(' ,ct.id, ',)' ) or ps.category REGEXP concat( '(,' ,ct.id, ',)' ) or ps.category REGEXP concat( '(,' ,ct.id, ')$' ) or 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 REGEXP concat( '^(' ,ct.id, ',)' ) or ps.category REGEXP concat( '(,' ,ct.id, ',)' ) or ps.category REGEXP concat( '(,' ,ct.id, ')$' ) or ps.category=ct.id) AND approve = '1') as allnews_ from ". PREFIX ."_category ct" ); $count_news_of_category = ''; while($row = $db->get_row($sql_result)) { $t = $row['new_'].'|'.$row['allnews_']; $tpl->set('{count_categ_'.$row['id'].'}', $t); $count_news_of_category .= $row['id'].'#'.$t.'¦'; } /**В кэш **/ create_cache( 'count_news_of_category', $count_news_of_category); $db->free(); } else { //достанем количество новостей из кэша $arr_newscount = explode('¦', $count_news); for ($i = 0; $i <= count($arr_newscount) - 2; $i++) { $arr_onenews = explode('#', $arr_newscount[$i]); $tpl->set('{count_categ_'.$arr_onenews[0].'}', $arr_onenews[1]); } } /************************************/ ?> Сохроняем его под именем news_count.php в engine/modules/ 2) Открываем index.php находим require_once ROOT_DIR . '/engine/init.php'; ниже вставляемrequire_once ROOT_DIR . '/engine/modules/news_count.php'; 3) Открываем файл ./engine/modules/addnews.phpнаходим $thistime = date( "Y-m-d H:i:s", $added_time ); ниже вставляемclear_cache('count_news_of_category'); 4) Открываем /engine/ajax/editnews.phpнаходим clear_cache( 'news_' ); ниже вставляемclear_cache('count_news_of_category'); 5) В шаблоне main.tpl ставите теги на количество новостей.Тег выглядит так: {count_categ_2}, где 2 – это id категории. Например у меня в шаблоне main.tpl, где я отображаю менюшку, будет выглядит так: [url=http://dvigov.com/nashe]Наше {count_categ_2}[/url] Вернуться назад |