1. Уважаемый Гость, в связи с нехваткой свободного времени наш форум продается. Форум богат своими плагинами и различными шаблонами как платными, которые трудно где достать бесплатно так и бесплатными. Если Вас заинтересовал форум, то, обращаемся по почте: administrator_ps@rambler.ru.
Скрыть объявление
Мы рады Вас видеть на нашем форуме! Надеюсь тебе у нас понравится и ты станешь вместе с нами активным и постоянным пользователем)

Вывод количества новостей на главной для DLE 9.x - 10.x

Тема в разделе "Хаки", создана пользователем MaxiRubo, 30 июн 2016.

  1. TopicStarter Overlay
    MaxiRubo

    MaxiRubo Команда форума Основатель

    1.511
    2
    1
    news_count.jpg

    Описание:
    *Хак будет направлен на вывод количества новостей на главной странице DLE:
    1. Вывод общего количества новостей;
    2. Вывод количества новостей за месяц;
    2. Вывод количества новостей за неделю;
    2. Вывод количества новостей за день;*


    Название: Вывод количества новостей на главной
    Автор: webfull
    CMS: DLE 9.x - 10.x

    vivod.jpg

    И так поехали ковырять движок DLE:
    Все правки будут только касаться файла index.php

    Первое выведем "общее количество новостей" на главной DLE:
    Открыть index.php, найти:

    Код:
    $tpl->load_template ( 'main.tpl' );
    После вставить:

    Код:
    $stats_news = dle_cache('news_count');
    if(empty($stats_news)){
        $row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post" );
        $stats_news = $row['count'];
        create_cache('news_count',$stats_news);
    }
    $tpl->set ( '{news_num}', $stats_news );
    В шаблоне будет доступен такой тег:

    Код:
    {news_num}
    Выводим новости опубликованные за месяц:

    Код:
    $cached = 3500;
    
    $stats_month = dle_cache("stats_month");
    if (!$stats_month) {
    $time = time() - $cached;
        $temp_date = date( 'Y-m-d H:i', $_TIME - (3600 * 24 * 31) );
        $row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE date >= '$temp_date'AND date <= '$temp_date' + INTERVAL 31 DAY AND approve ='1'" );
        $stats_month = $row['count'];
        create_cache("stats_month",$stats_month);
    }
    $tpl->set ( '{stats_month}', $stats_month )
    В шаблоне будет доступен тег::

    Код:
    {stats_month}
    Выводим количество опубликованных новостей за неделю:

    Код:
    $stats_week = dle_cache("stats_week");
    if (!$stats_week) {
    $time = time() - $cached;
    $temp_date = date( 'Y-m-d H:i', $_TIME - (3600 * 24 * 7) );
        $row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE date >= '$temp_date'AND date <= '$temp_date' + INTERVAL 7 DAY AND approve ='1'" );
        $stats_week = $row['count'];
       
         create_cache("stats_week",$stats_week);
    }
    $tpl->set ( '{stats_week}', $stats_week );
    Теперь в шаблоне доступен тег вывода количества новостей за сутки:

    Код:
    {stats_week}
    И так последнее выводим количество новостей за день (сутки):

    Код:
    $stats_day = dle_cache("stats_day");
    if (!$stats_day) {
    $time = time() - $cached;
    $temp_date = date( 'Y-m-d H:i', $_TIME - (3596 * 24) );
        $row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE date >= '$temp_date'AND date <= '$temp_date' + INTERVAL 24 HOUR AND approve ='1'" );
        $stats_day = $row['count'];
    create_cache("stats_day",$stats_day);
    }
    $tpl->set ( '{stats_day}', $stats_day );
    В шаблоне вставляем тег обработки новостей за сутки:

    Код:
    {stats_day}

    Все очень просто, не создает дополнительной нагрузки. Все данные кешируются. Такими хаками вы можете разбавить свой проект от надоевшим всем сайты и шаблоны под копирку.
     
Загрузка...