DLE {tags} - хак вывода тегов только уже опубликованных новостей

(Ответов: 1, Просмотров: 777)
  1. Гуру Аватар для MetalMessiah
    • Регистрация: 19.04.2011
    • Сообщений: 745
    • Записей в дневнике: 4
    • Репутация: 189
    Проблема: при отложенном постинге (новости, запланированные для публикации в будущем) теги от них попадают в облако тегов сразу же, в облаке тегов туева хуча ссылок, ведущих на страницу с кодом 404.

    Решение: в \engine\modules\tagscloud.php найти
    PHP код:
    $db->query("SELECT SQL_CALC_FOUND_ROWS tag, COUNT(*) AS count FROM " PREFIX "_tags GROUP BY tag ORDER BY count DESC LIMIT 0,{$config['tags_number']}"); 
    заменить на
    PHP код:
    $db->query("SELECT SQL_CALC_FOUND_ROWS tag, COUNT(*) AS count FROM (SELECT ".PREFIX."_tags.id," PREFIX "_tags.news_id," PREFIX "_tags.tag," PREFIX "_post.date FROM " PREFIX "_tags LEFT JOIN " PREFIX "_post ON " PREFIX "_post.id=" PREFIX "_tags.news_id WHERE date<NOW()) AS tmp1 GROUP BY tag ORDER BY count DESC LIMIT 0,20"); 
    Минус данного способа: утяжеление запроса к базе, существенно при отключенном кешировании DLE.

    Есть еще ссылка "Все теги", но ее проще закрыть от индексации. Улучшения данного хака приветствуются.
    • 0
  2. Sunshine reggae Аватар для OKyJIucT
    • Регистрация: 02.09.2011
    • Сообщений: 3,240
    • Репутация: 1830
    • Webmoney BL: ?
    На мой взгляд, лучше сделать так - быстрее будет выполняться без подзапросов, и кеширование запросов будет на стороне базы осуществляться

    PHP код:
    $now date('Y-m-d H:i:s');
    $db->query("SELECT SQL_CALC_FOUND_ROWS tag, COUNT(*) AS count FROM " PREFIX "_tags LEFT JOIN " PREFIX "_post ON " PREFIX "_post.id=" PREFIX "_tags.news_idWHERE date < " $now " GROUP BY tag ORDER BY count DESC LIMIT 0,{$config['tags_number']}"); 
    • 1

    Спасибо сказали:

    MetalMessiah(26.06.2016),

Похожие темы

Темы Раздел Ответов Последний пост
Meta, h1, tags - не будет ли переспама?
Вопросы от новичков 3 28.02.2014 14:48
Способ вывода похожих новостей
WordPress 4 03.01.2014 00:34
Запрет вывода определенной категории новостей в похожих новостях
DLE 3 11.05.2013 13:37
шаблон вывода новостей по тэгу
DLE 3 22.03.2013 18:39
Кто знает хороший Компонент вывода новостей
Joomla 13 08.12.2012 20:35

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры