Скрыть объявление
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

Вывод количества новостей

Тема в разделе "Вопросы- ответы", создана пользователем m0rphine, 19 авг 2015.

19.08.15 в 14:22
25.03.16 в 20:03
16
4.450
0
  1. TopicStarter Overlay
    m0rphine

    m0rphine Новичок

    Регистрация:
    18 авг 2015
    Сообщения:
    28
    Лучших ответов:
    0
    Рейтинги:
    +3 / 0 / -0
    Доброго времени всем!
    Как можно выводить количество новостей на страница, хочу что бы в меню у категории стояла циферка с номером сколько их в этой категории всего, видел разные модули, но как то нет к ним доверия...
    Кто что посоветует? ;)
     
  2. celsoft

    Забанен

    Регистрация:
    6 июн 2015
    Сообщения:
    180
    Лучших ответов:
    0
    Рейтинги:
    +45 / 0 / -0
    Если хоть один из найденных модулей кеширует данные то нормально. Если нет, то смысла нет ставить.
     
  3. TopicStarter Overlay
    m0rphine

    m0rphine Новичок

    Регистрация:
    18 авг 2015
    Сообщения:
    28
    Лучших ответов:
    0
    Рейтинги:
    +3 / 0 / -0
    @celsoft, есть что на примете? это наверно и нагрузка дикая на базу? У меня около 46 категорий
     
  4. celsoft

    Забанен

    Регистрация:
    6 июн 2015
    Сообщения:
    180
    Лучших ответов:
    0
    Рейтинги:
    +45 / 0 / -0
    Я под ключ писал. Поэтому и говорю, что без кеша нет смысла.
     
    • Нравится Нравится x 1
  5. mwax

    Команда форума VIP Кинотрафик v2

    Регистрация:
    21 апр 2015
    Сообщения:
    363
    Лучших ответов:
    0
    Рейтинги:
    +207 / 0 / -0
  6. TopicStarter Overlay
    m0rphine

    m0rphine Новичок

    Регистрация:
    18 авг 2015
    Сообщения:
    28
    Лучших ответов:
    0
    Рейтинги:
    +3 / 0 / -0
  7. mwax

    Команда форума VIP Кинотрафик v2

    Регистрация:
    21 апр 2015
    Сообщения:
    363
    Лучших ответов:
    0
    Рейтинги:
    +207 / 0 / -0
    @m0rphine, странный вы какой то.
    Сначала пишете, что вам нужен хак реализации вывода количества новостей каждой отдельной категории.
    А теперь пишете, что вас устроил хак обычной статистики:
    1. Вывод общего количества новостей;
    2. Вывод количества новостей за месяц;
    2. Вывод количества новостей за неделю;
    2. Вывод количества новостей за день;*

    Полная неопределенность :eek:
     
  8. TopicStarter Overlay
    m0rphine

    m0rphine Новичок

    Регистрация:
    18 авг 2015
    Сообщения:
    28
    Лучших ответов:
    0
    Рейтинги:
    +3 / 0 / -0
    Не та ссылка, соррян :D http://blogokod.ru/datalife-engine-...ichestvo-novostey-v-kategoriyah-dlya-dle.html
     
  9. simych

    Команда форума VIP Кинотрафик v2

    Регистрация:
    19 окт 2015
    Сообщения:
    43
    Лучших ответов:
    0
    Рейтинги:
    +7 / 0 / -0
    BlockPro пафнутия в последней версии хорошо решает такие вопросы, остается только научится им пользоваться )
     
  10. PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.414
    Лучших ответов:
    32
    Рейтинги:
    +4.034 / 116 / -0
    Что он решает ? Он предназначен для гибкого вывода новостей а не количества по каждой категории.
     
  11. simych

    Команда форума VIP Кинотрафик v2

    Регистрация:
    19 окт 2015
    Сообщения:
    43
    Лучших ответов:
    0
    Рейтинги:
    +7 / 0 / -0
    не силен в программировании, но насколько пробовал его, там вроде массивами идет вывод новостей, и насколько я понял можно задавать переменную считающую количество новостей. Сори информация не проверенная.
    Понял в чем загвоздка - тут нужно выводить колчество во всех категориях.
    Тогда модуль сандера - с пониженной нагрузкой.
     
    #11 simych, 19 ноя 2015
    Последнее редактирование: 19 ноя 2015
  12. Dr.ZLo

    Команда форума VIP Кинотрафик v2

    Регистрация:
    1 фев 2015
    Сообщения:
    493
    Лучших ответов:
    0
    Рейтинги:
    +396 / 18 / -0
    Рабочий хак вывода количества постов для DLE 10 - 11, с кешированием.
    1) В файле /engine/modules/main.php, находим строку:
    Код:
    $tpl->set ( '{AJAX}', $ajax );
    Перед этой строки добавляем :
    Код:
    /*********Главное меню**********/
    $count_news = dle_cache( "count_news_of_category", $config[’skin’] );
    if( !$count_news )
    {
      //кэш с количеством новостей пуст
      $all = '';
        $sql_result = $db->query("SELECT category FROM ".PREFIX."_post WHERE approve = '1'");
        while($row = $db->get_row($sql_result)){$all .= $row['category'].',';}
        /**В кэш **/
        create_cache( 'count_news_of_category', substr($all, 0, -1));
        $db->free();
        $all = explode(",", substr($all, 0, -1));
        $allar = array_count_values($all);
        //выводим по тегам кол-во новостей
    foreach ($allar as $key => $value) {
        $tpl->set('{categnum-'.$key.'}', $value);
        ${'categnum-'.$key} = $value;
        }
    $catidall = "";
    foreach ($cat_info as $cat) {
        $catidall .= $cat['id'].',';      
        if ($cat['parentid'] > 0) {
            ${'categnum-'.$cat['parentid']} = ${'categnum-'.$cat['parentid']} + ${'categnum-'.$cat['id']};
            $tpl->set('{categnum-'.$cat['parentid'].'}', ${'categnum-'.$cat['parentid']});
            }
        }
    $catidall = array_diff(explode(",", substr($catidall, 0, -1)), $all);
    foreach ($catidall as $catnull) {
        $tpl->set('{categnum-'.$catnull.'}', '0');
        }
    }
    else
    {
      //достанем количество новостей из кэша
        $all = explode(",", $count_news);
        $allar = array_count_values($all);
        //выводим по тегам кол-во новостей
    foreach ($allar as $key => $value) {
        $tpl->set('{categnum-'.$key.'}', $value);
        ${'categnum-'.$key} = $value;
        }
    $catidall = "";
    foreach ($cat_info as $cat) {
        $catidall .= $cat['id'].',';      
        if ($cat['parentid'] > 0) {
            ${'categnum-'.$cat['parentid']} = ${'categnum-'.$cat['parentid']} + ${'categnum-'.$cat['id']};
            $tpl->set('{categnum-'.$cat['parentid'].'}', ${'categnum-'.$cat['parentid']});
            }
        }
    $catidall = array_diff(explode(",", substr($catidall, 0, -1)), $all);
    foreach ($catidall as $catnull) {
        $tpl->set('{categnum-'.$catnull.'}', '0');
        }
    }
    /************************************/
    2) Открываем файл /engine/modules/addnews.php .Находим строку :
    Код:
    if( $config['allow_alt_url'] ) msgbox( $lang['add_ok']
    Перед этой строки добавляем :
    Код:
    clear_cache('count_news_of_category');
    3) Открываем файл /engine/ajax/editnews.php Ищем строку:
    Код:
    clear_cache( array( 'news_', 'rss', $cprefix ) );
    После этой строки добавляем :
    Код:
    clear_cache('count_news_of_category');
    В шаблон втыкается тегом {categnum-ИД категории}
     
    #12 Dr.ZLo, 27 дек 2015
    Последнее редактирование: 24 мар 2016
    • Нравится Нравится x 2
  13. JustCain

    JustCain Бывалый

    Регистрация:
    24 июн 2015
    Сообщения:
    452
    Лучших ответов:
    0
    Рейтинги:
    +135 / 0 / -0
    На 11 dle проверял кто?
     
  14. Dr.ZLo

    Команда форума VIP Кинотрафик v2

    Регистрация:
    1 фев 2015
    Сообщения:
    493
    Лучших ответов:
    0
    Рейтинги:
    +396 / 18 / -0
    @Quwake, Работает на 11
     
    • Нравится Нравится x 1
  15. JustCain

    JustCain Бывалый

    Регистрация:
    24 июн 2015
    Сообщения:
    452
    Лучших ответов:
    0
    Рейтинги:
    +135 / 0 / -0
    Да, спасибо
     
  16. Marques

    PRO Users

    Регистрация:
    12 апр 2015
    Сообщения:
    1.885
    Лучших ответов:
    0
    Рейтинги:
    +693 / 3 / -0
  17. PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.414
    Лучших ответов:
    32
    Рейтинги:
    +4.034 / 116 / -0
Яндекс.Метрика