v Количество новостей в меню навигации v.3.0
Главная » Файлы » Все для DLE » Хаки

Количество новостей в меню навигации v.3.0
23.10.2010, 19:50

Скачать
Загрузок: 0

от на днях бороздя просторы нета нарыл такой вот интересный на мой взгляд хак для DLE. К сожалению автор мне не известен.

Позволяет проставить количество новостей за сегодня и общее количество по конкретной категории в меню навигации или любом другом месте сайта. Есть возможность ставить количество новостей в каком угодно виде. Кроме того можно проставлять количество новостей в подкаталогах любой вложености. Единственное, что нужно знать для этого - это id категории.

Что нового:
1) кэширование количества новостей;
2) возможность убирать «0», если новостей за сегодня по категории нет;
3) исправлен баг неточного подсчета количества новостей, если новость в нескольких категориях.

УСТАНОВКА для версий DLE8.2-8.5

1) Создаем новый php файл, и вставить в него следущий код:

Code

/********* Количество новостей в главном меню **********/
$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]);
}
}
/************************************/

?>

Навигация
» Главная
» Реализы
» Бесплатные Модули
» Платные Модули
» Платные Шаблоны
» Бесплатные Шаблоны
» Хаки
» Баг-фиксы
» Советы
» Иконки групп

Лучшее на сайте
» Шаблон webmacter Для DLE 9.0
» Оригинал шаблона неограниченой тематики - GiGanti
» TopDownloads от dlelovers
» Parlaq
» Шаблон "Zeos 2c" для DLE 9.0
» All-cmska
» Шаблон 19721 для DLE 9.0
» LightSteel by CSR
» SkyBack
» DLE mini Chat for DLE 9.0
Топ Юзеров
Команда сайта
Администрация Проекта:

Консультант :
Anatoly96
ТехПоддержка :
Boroda
Код нашей кнопки
Мы будем очень благодарны, если вы установите на своём сайте нашу кнопку или просто текстовую ссылку на наш сайт.

Приморский Сайт поддержки Datalife Engine - Модули, хаки, баг-фиксы, шаблоны

Приморский Сайт поддержки Datalife Engine - Модули, хаки, баг-фиксы, шаблоны

Сайт поддержки 8DLE


Реклама
8Dle » Хаки » Количество новостей в меню навигации v.3.0
Новое на форуме !
Форум Тема Ответов Последний
Интернет Подскажите нормальный хостинг для DLE 4 drenthe
Шаблоны для DLE Hacking attempt в админке 0 Sashiik23
Моды, хаки, локализации переменная группы пользователя 0 vi100k
Интернет Требуются журналисты,редакторы и модераторы на сайт. 3 grad-artem
Общие вопросы Админка в dle 9 0 vi100k
Интернет rss каналы 0 2010kam
FAQ Текст в новостях 1 SERGULL
FAQ изображения в новостях 0 stalker664
Интернет хостинг 3 2010kam
Моды, хаки, локализации Совместимость форума для дле 0 sss2019
Добро пожаловать на 8Dle =)
Скачать datalife engine 8.2 datalife engine 8.2 - dle, datalife engine 8.3 шаблоны для dle
Автор: Darknull Дата: 19.09.09 (2 часа ночи)
Наш сайт от первой до последней страницы посвящён популярной CMS DataLife Engine 8 (dle). Здесь собираются, чтобы пообщаться и скачать полезные файлы, владельцы множества сайтов, построенных именно на этом движке. На нашем портале царит дружеская атмосфера, поэтому здесь каждый может попросить совета у более опытных товарищей или обратиться за помощью к коллегам. Для того, чтобы облегчить общение на профессиональные и просто бытовые темы, на сайте был создан форум, на котором можно обсудить обновки, баги и прочие мелочи из жизни современного веб-разработчика. Итак, дорогой вебмастер, мы рады приветствовать тебя в своих кругах, вливайся!

Хаки > Количество новостей в меню навигации v.3.0

* 51
* 1
* 2
* 3
* 4
* 5

(голосов: 1)
Автор: Darknull Дата: 22-09-2010, 14:07 Прочитано: 211

Количество новостей в меню навигации v.3.0

Вот на днях бороздя просторы нета нарыл такой вот интересный на мой взгляд хак для DLE. К сожалению автор мне не известен.

Позволяет проставить количество новостей за сегодня и общее количество по конкретной категории в меню навигации или любом другом месте сайта. Есть возможность ставить количество новостей в каком угодно виде. Кроме того можно проставлять количество новостей в подкаталогах любой вложености. Единственное, что нужно знать для этого - это id категории.

Что нового:
1) кэширование количества новостей;
2) возможность убирать «0», если новостей за сегодня по категории нет;
3) исправлен баг неточного подсчета количества новостей, если новость в нескольких категориях.

УСТАНОВКА для версий DLE8.2-8.5

1) Создаем новый 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

Code
require_once ROOT_DIR . '/engine/init.php';

ниже вставляем:
Code
clear_cache('count_news_of_category');

5) В шаблоне main.tpl ставите теги на количество новостей.
Тег выглядит так: {count_categ_2}, где 2 – это id категории.
Например у меня в шаблоне main.tpl, где я отображаю менюшку, будет выглядит так:

Отобразиться как Софт 5|258.
(о формировании внешнего вида содержимого тега см. ниже)

Формировании внешнего вида
Внешний вид количества новостей (то, что заменит тег в шаблоне) формируется в файле news_count.php который мы делали на первом этапе.
В строке №16:

Code
$t = $row['new_'].'|'.$row['allnews_'];

Для данной строки содержимое отобразится так: 8|2358

Рассмотрим примеры:
Пример 1:
Если надо скобки – все просто – указанную строку меняем на:

Code
$t = ' ('.$row['new_'].'/'.$row['allnews_']. ' )';

Отобразиться: (8/2358)
Пример 2:
Code
$t = ' ('.$row['allnews_'].'/'.$row['new_']. '+)';

Отобразиться: (2358/8+)
Пример 3:
Code
$t = ' (всего:'.$row['allnews_'].', сегодня:'.$row['new_']. ')';

Отобразиться: (всего: 2358 сегодня: 8)

Кроме того, есть возможность убрать 0 (ноль), если новостей на сегодня нет.
Для этого, в коде, ВМЕСТО строки

Code
$t = $row['new_'].'|'.$row['allnews_'];

ставим 2 строки
Code
[/code]

[code]if( $row['new_'] == '0') {$news_now = '(';} else {$news_now = '('.$row['new_'].'/';};
$t = $news_now.$row['allnews_'].')';
Категория: Хаки | Добавил: Rashid
Просмотров: 670 | Загрузок: 0 | Рейтинг: 0.0/0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Наша кнопка



Наш опрос
Нужно ли добавлять файлы для других CMS таких как DLE| WP|JM?
Всего ответов: 392
Категории раздела
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

---------------------------------------
[ Кто нас сегодня посетил ]