Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Хаки » количество новостей в теге на главной странице и metadescription

количество новостей в теге на главной странице и metadescription


     04.10.2014    теги, tags, Метатег title, metatags    Все вопросы » Хаки    2774

вопрос
Хочется вывести количество новостей с определённого тега.

в modules/tagscloud.php за количество новостей отвечает $value['count']
$tags[] = "<a href=\"".$config['http_home_url']."tags/".urlencode($value['tag'])."/\" class=\"{$value['size']}\" title=\"".$lang['tags_count']." ".$value['count']."\">".$value['tag']."</a>";


вот как можно $value['count'] переместить в /engine/engine.php чтоб оно показывало то же количество новостей только уже в $metatags['description'] или $nam_e = stripslashes($tag)

пример:
elseif ($do == 'tags') { $nam_e = stripslashes($tag).  '60 новостей'; 
$metatags['description'] = Смотрите 60 funny постов;
}

Ответил: forc1k


возможно я не правильно понял, но все таки немного иной способ:
1) В файле index.php, находим строку:
$tpl->set ( '{AJAX}', $ajax );

Перед этой строки добавляем :
$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 = ct.id AND (DATE_FORMAT(date, '%Y%m%d')=CURDATE()) AND approve = '1') as new_,
                                 (select count(*) from ". PREFIX ."_post ps where 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]);
  }
}

2) Открываем файл ./engine/modules/addnews.php
Находим строку :
if( $config['allow_alt_url'] == "yes" )

Перед этой строки добавляем :
clear_cache('count_news_of_category');

3) Открываем файл /engine/ajax/editnews.php
Ищем строку:
clear_cache( 'news_' );

После этой строки добавляем :
clear_cache('count_news_of_category');

4) Теперь ставим в шаблоне теги на количество новостей.
Тег выглядит так: “{count_categ _2}” (без кавычек), где 2 – это id категории.
К примеру шаблон main.tpl, где и находиться меню навигации, будет выглядит так:
Софт {count_categ _2}

5 комментариев

hotdog
Юзер

hotdog - 4 октября 2014 19:16 -

есть тег на сайте /tags/funny/ с етим тегом есть 60 постов.
в modules/tagscloud.php есть $value['count'] который показывает в title сколько постов с етим тегом на /tags/ вот как его вывести в main.tpl а так же в engine/engine.php

чтоб было так например.
main.tpl вы сейчас находитесь в funny тегах тут 50 постов.
а для engine.php чтоб в $metatags['description'] для тегов писалось что ....тег funny, найдено 50 постов.

если кто решиться сделать ето плиз кидайте ответ сюда или в личку, а так же wmz в личку на пиффко

FastFud
Юзер

FastFud - 4 октября 2014 19:48 -

Наверное (точно не уверен):
Написать запрос (engine.php) :
$tg = $db->query( "SELECT COUNT(*) AS count FROM " . PREFIX . "_tags ");
$trow = $db->get_row($tg);
в нужном месте
$trow['count']
Как то так..

hotdog
Юзер

hotdog - 4 октября 2014 20:16 -

FastFud,ето выводит количество всех тегов, что тоже будет полезно некоторым.

FastFud
Юзер

FastFud - 4 октября 2014 20:20 -

main.tpl вы сейчас находитесь в funny тегах тут 50 постов.
а для engine.php чтоб в $metatags['description'] для тегов писалось что ....тег funny, найдено 50 постов.

/tags/funny/ - если один то да а если тегов много как быть тогда ? как движку определить что ему вывести то ?

hotdog
Юзер

hotdog - 4 октября 2014 20:38 -

FastFud,
хз...есть же вот такой хак для категорий, я думал можно и для тегов такое сделать.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх