Jump to content
Sign in to follow this  
inokentik

topnews для разных категорий

Recommended Posts

Всем привет! А можно ли выводить популярные новости для определенной категории?

Сейчас на сайте популярные новости выводятся по средствам {topnews} и он отображает все новости из всех категорий, а как бы сделать чтоб он выводил новости только из конкретной категории?

Просто хочется сделать так:

1. Популярные личности

2. Музыкальные хиты

и следовательно чтоб новости были из этих категорий

Подскажите кто знает :unsure:

Спасибо за внимание, уже сам нашер решение! Вот, кому интересно:

1. в файле index.php

находим:

$config['http_home_url'] = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );

$config['http_home_url'] = reset ( $config['http_home_url'] );
выше вставляем:
if ( stristr( $tpl->copy_template, "{topnews" ) ) {


        $tpl->copy_template = preg_replace( "#\\{topnews category=['\"](.+?)['\"]\\}#ies", "topnews_print('\\1')", $tpl->copy_template );


    }
2. в файле engine/modules/functions.php добавляем функцию
function topnews_print ($custom_category){ 

global $db,$config;

if(!defined('DATALIFEENGINE'))

{

die("Hacking attempt!");

}

$koma = strpos($custom_category, ',');

if ($koma >= 2)

$categ = substr ($custom_category, 0, 2);

else

$categ = substr ($custom_category, 0, 1);

$topnews = dle_cache("topnews_" . $categ, $config['skin']);


if (!$topnews) {

$custom_category = $db->safesql(str_replace(',', '|', $custom_category));


$this_month = date ('Y-m-d', time()-(3600*24*27));


$db->query("SELECT id, title, date, alt_name FROM " . PREFIX . "_post WHERE approve='1' AND category regexp '[[:<:]]($custom_category)[[:>:]]' AND date >= '$this_month'AND date < '$this_month' + INTERVAL 1 MONTH ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,10");


while($row = $db->get_row()){


$row['date'] = strtotime($row['date']);


if (strlen($row['title']) > 55)

$title = substr ($row['title'], 0, 55)." ...";

else

$title = $row['title'];


$go_page = ($config['ajax']) ? "onclick=\"DlePage('newsid=".$row['id']."'); return false;\" " : "";


if ($config['allow_alt_url'] == "yes")

$link = "<a {$go_page}href=\"".$config['http_home_url'].date('Y/m/d/', $row['date']).$row['alt_name'].".html\">".stripslashes($title)."</a>";

else 

$link = "<a {$go_page}href=\"$PHP_SELF?newsid=".$row['id']."\">".stripslashes($title)."</a>";


$topnews .= "".$link."<br />";

}


$db->free();

create_cache ("topnews_" . $categ, $topnews, $config['skin']);

}


return $topnews;

}

После чего в нужном месте прописываем: {topnews category="ID категории"} пример можно посмотреть здесь www.bez-gnid.ru

Можно выводить несколько раз! Информация взята с http://4dle.ru/2007/06/22/page,1,2,topnews_s_opredelennojj_kategorii.html

Share this post


Link to post
Share on other sites

У тебя они я вижу идут столбиками то есть вертикально , а как тоже самое сделать только горизонтально ??? И сократить до трех новостей с одной категории ??? Очень прошу кто нибудь ответьте ??? :(

Edited by Charli007

Share this post


Link to post
Share on other sites

Можно сделать и в строчку и только 3 новости...

Количество вот в этой тсроке меняется

AND date >= '$this_month'AND date < '$this_month' + INTERVAL 1 MONTH ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,10"); 
а именно 0,10 меняй например на 0,3..... а само оформление вертикально или горизонтально меняй тут
if ($config['allow_alt_url'] == "yes")$link = "<a {$go_page}href=\"".$config['http_home_url'].date('Y/m/d/', $row['date']).$row['alt_name'].".html\">".stripslashes($title)."</a>";else $link = "<a {$go_page}href=\"$PHP_SELF?newsid=".$row['id']."\">".stripslashes($title)."</a>";$topnews .= "".$link."<br />";}

Share this post


Link to post
Share on other sites

В общем без ста грамм не разберёшься видно... :lol:

Share this post


Link to post
Share on other sites

В общем без ста грамм не разберёшься видно... :lol:

DESC LIMIT 0,10 (0,10 = 10 новостей)

$topnews .= "".$link."<br />"; (Убери <br />, будет горизонально)

По категориям не знаю, но эти строки меняю в engine/modules/topnews.php

После изменений нужно кэш очистить.

P.S.: Выпил все 350 :)

Edited by Captain

Share this post


Link to post
Share on other sites

вот бы ещё картинки выводила topnews + category + img )

пытался моды прикрутить http://tudimon.com/2009/11/13/dle-xaki-dobavim-kratkoe-opisanie-i-kartinku-v.html

http://dle.in.ua/page,1,3,6045-prodvinutyj-vyvod-rejtingovyx-novostej-s.html#comment

не работает с ними этот мод (

Share this post


Link to post
Share on other sites

С картинками есть модуль на 4дле.ру раньше его использовал я... Но отпала необходимость в ТОП, сделал просто ПОСЛЕДНИЕ новости...

Share this post


Link to post
Share on other sites

С картинками есть модуль на 4дле.ру раньше его использовал я... Но отпала необходимость в ТОП, сделал просто ПОСЛЕДНИЕ новости...

на 4дле.ру много чего есть но что бы {topnews category="ID категории"} + картинки нет

есть там ТИПО http://4dle.ru/mods/1147157525-modul.-news2cat-by-dj-avtosh.html вот такого но это не то.

сделал просто ПОСЛЕДНИЕ новости(С)

вы сделали последние новости (от 1 до 10...новости в блоке )с определеной категории и с картинками {newnews category="ID категории"} + картинки ?

Share this post


Link to post
Share on other sites

да сделал. делается не так как вы написали а {custom}.... Это и подразумевает чт овыводит ПОСЛЕДНИЕ новости с нужной категории и с картинками и как хочешь...

Share this post


Link to post
Share on other sites

наврно типо этого

{custom} + переделанный shortstory

:rolleyes:

Share this post


Link to post
Share on other sites

Да так и есть, создаете еще один шаблон новости, делайте его каким угодно и потом выводите там гед вам угодно

{custom category="номер категории" template="название шаблона" aviable="global" from="0" limit="количество новостей" cache="yes"}

И будет вам счастье

Share this post


Link to post
Share on other sites

Да так и есть, создаете еще один шаблон новости, делайте его каким угодно и потом выводите там гед вам угодно

{custom category="номер категории" template="название шаблона" aviable="global" from="0" limit="количество новостей" cache="yes"}

И будет вам счастье

а интересно как сделать чтобы картинки в этот блоке ...template="название шаблона"...смотрелись как бы привью shortstory и fullstory, грубо говоря как сделать превью новости и что бы отображалась там где надо.

:unsure:

Share this post


Link to post
Share on other sites

По-моему можно например в файле стилей прописать класс ну для короткой новости и там прописать для картинки типа выравнивание по левому краю по умолчанию и чтоб текст обтекал ее... И в шаблоне новости прописать этот класс... Но я обычно теперь делаю картинку пихаю в дополе, а уже само допполе вывожу именно там где мне надо...

Share this post


Link to post
Share on other sites

Народ.. а есть как популярных новостей из опр. каткгорияй для 8.2?

Вышеописанный пример не работает

Share this post


Link to post
Share on other sites

Я это делал на 7.5, на 8.2 не пробывал... :unsure:

Share this post


Link to post
Share on other sites

Все работает.. а как еще вывести название категории?

Share this post


Link to post
Share on other sites

А вот это уже не знаю... Искать, искать и еще раз искать :rolleyes:

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...