Проследить за всеми новостями мы не можем, так как новости берутся из открытых источников. Если вы считаете, что новость нарушает ваши права на авторство или дизайн, то обратитесь к администрации данного ресурса.
© artsss-web.ru 2010 - 2012
{dotcat}
Автор: Пряник | 21-09-2010, 16:20
Вот на днях бороздя просторы нета нарыл такой вот интересный на мой взгляд хак для DLE. К сожалению автор мне не известен.
Позволяет проставить количество новостей за сегодня и общее количество по конкретной категории в меню навигации или любом другом месте сайта. Есть возможность ставить количество новостей в каком угодно виде. Кроме того можно проставлять количество новостей в подкаталогах любой вложености. Единственное, что нужно знать для этого - это id категории.
Примеры отображения в меню навигации (отображение зависит только от Вашей фантазии)
Что нового:
1) кэширование количества новостей;
2) возможность убирать «0», если новостей за сегодня по категории нет;
3) исправлен баг неточного подсчета количества новостей, если новость в нескольких категориях.
УСТАНОВКА для версий DLE8.2-8.5
1) Создаем новый php файл, и вставить в него следущий код:
Сохроняем его под именем news_count.php в engine/modules/
2) Открываем index.php
находим
находим
находим
Тег выглядит так: {count_categ_2}, где 2 – это id категории.
Например у меня в шаблоне main.tpl, где я отображаю менюшку, будет выглядит так:
Позволяет проставить количество новостей за сегодня и общее количество по конкретной категории в меню навигации или любом другом месте сайта. Есть возможность ставить количество новостей в каком угодно виде. Кроме того можно проставлять количество новостей в подкаталогах любой вложености. Единственное, что нужно знать для этого - это 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]);
}
}
/************************************/
?>
/********* Количество новостей в главном меню **********/
$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]
Своё Спасибо, еще не выражали.
Рейтинг:
Комментариев: 0 | Просмотров: 1612
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Зарегестрировавшись,вы сможете скачивайть файлы с нашего сервера.Общатся в чате просматривать и вести жизнь на нашем форуме,и многое другое)xD
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Зарегестрировавшись,вы сможете скачивайть файлы с нашего сервера.Общатся в чате просматривать и вести жизнь на нашем форуме,и многое другое)xD
Рекомендуем также:
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.