• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Помощь topnews

Статус
В этой теме нельзя размещать новые ответы.
Давно задаюсь этим же вопросом, интересует так же модуль или хак для вывода последних новостей из одной, двух или более категорий. Может быть кто-то реализовывал каким-то способом, поделитесь. Спасибо! :thenks:
Сейчас как альтернативу поставил модуль Remote NewsBlock 1.2, но мне не нравится что он выводит новости через js, хотелось бы чтобы новости выводились напрямую из базы!

попробуй вот этот модуль, выводит напрямую, плюс можно по каждой категории выводить последнюю, случайную, самую популярную новость с картинкой или без, попробовал и остался доволен (нашел на каком то сайте по DLE)

внутри мануал и примеры вывода новостей, хоть в одну, хоть в 10 колонок
 

Вложения

  • warezbot.zip
    341,6 KB · Просмотры: 33
Подписывал бы хоть что выкладываешь, не каждый в слепую будет качать.
это Remote_NewsBlock v1.2
 
Курили бы вы мануалы и у самих бы получалось, dle не такая сложная система
 
так как зделать чтобы новости случайно выводились только из определённой категории/подкатегории?

перечитал все темы, связанные с файлом topnews.php - ничего подходящего не нашел.

версия двига 7.3.

и еще, как зделать, чтобы выводилось максимум не 10, а, например, 20 новостей? По этому поводу была тема, но те манипуляции мне не помогли, меняя
на
 
в index.php перед

Код:
[COLOR=#000080][B]$config[/B][/COLOR]['http_home_url'][COLOR=#000000] = [/COLOR][COLOR=#008080][B]reset[/B][/COLOR]([COLOR=#008080][B]explode[/B][/COLOR]("index.php", [COLOR=#000080][B]$_SERVER[/B][/COLOR]['PHP_SELF']));

добавляем

Код:
[COLOR=#000000][B]if[/B][/COLOR] ( stristr( [COLOR=#000080][B]$tpl[/B][/COLOR]->copy_template, "{topnews" ) ) {

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

    }

и в файле engine/modules/functions.php добавляем функцию

Код:
[COLOR=#000000][B]function[/B][/COLOR] topnews_print ([COLOR=#000080][B]$custom_category[/B][/COLOR]){    
    [COLOR=#000000][B]global[/B][/COLOR] [COLOR=#000080][B]$db[/B][/COLOR];
[COLOR=#000080][B]$custom_category[/B][/COLOR]  = [COLOR=#000080][B]$db[/B][/COLOR]->safesql([COLOR=#008080][B]str_replace[/B][/COLOR](',', '|', [COLOR=#000080][B]$custom_category[/B][/COLOR]));

[COLOR=#000000][B]if[/B][/COLOR](!defined('DATALIFEENGINE'))
{
  die("Hacking attempt!");
}

[COLOR=#000080][B]$topnews[/B][/COLOR][COLOR=#000000] = [/COLOR]dle_cache("topnews", [COLOR=#000080][B]$config[/B][/COLOR]['skin']);

[COLOR=#000000][B]if[/B][/COLOR] (![COLOR=#000080][B]$topnews[/B][/COLOR]) {

    [COLOR=#000080][B]$this_month[/B][/COLOR][COLOR=#000000] = [/COLOR]date ('Y-m-d', time()-(3600*24*27));

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

    [COLOR=#000000][B]while[/B][/COLOR]([COLOR=#000080][B]$row[/B][/COLOR][COLOR=#000000] = [/COLOR][COLOR=#000080][B]$db[/B][/COLOR]->get_row()){

        [COLOR=#000080][B]$row[/B][/COLOR]['date'][COLOR=#000000] = [/COLOR]strtotime([COLOR=#000080][B]$row[/B][/COLOR]['date']);

        [COLOR=#000000][B]if[/B][/COLOR] ([COLOR=#008080][B]strlen[/B][/COLOR]([COLOR=#000080][B]$row[/B][/COLOR]['title']) > 55)
            [COLOR=#000080][B]$title[/B][/COLOR][COLOR=#000000] = [/COLOR][COLOR=#008080][B]substr[/B][/COLOR] ([COLOR=#000080][B]$row[/B][/COLOR]['title'], 0, 55)." ...";
        [COLOR=#000000][B]else[/B][/COLOR]
            [COLOR=#000080][B]$title[/B][/COLOR][COLOR=#000000] = [/COLOR][COLOR=#000080][B]$row[/B][/COLOR]['title'];

        [COLOR=#000080][B]$go_page[/B][/COLOR][COLOR=#000000] = [/COLOR]([COLOR=#000080][B]$config[/B][/COLOR]['ajax']) ? "onclick=\"DlePage('newsid=".[COLOR=#000080][B]$row[/B][/COLOR]['id']."'); [COLOR=#000000][B]return[/B][/COLOR] [COLOR=#000000][B]false[/B][/COLOR];\" " : "";

        [COLOR=#000000][B]if[/B][/COLOR] ([COLOR=#000080][B]$config[/B][/COLOR]['allow_alt_url'][COLOR=#000000] == [/COLOR]"yes")
            [COLOR=#000080][B]$link[/B][/COLOR][COLOR=#000000] = [/COLOR]"<a {[COLOR=#000080][B]$go_page[/B][/COLOR]}href=\"".[COLOR=#000080][B]$config[/B][/COLOR]['http_home_url'].date('Y/m/d/', [COLOR=#000080][B]$row[/B][/COLOR]['date']).[COLOR=#000080][B]$row[/B][/COLOR]['alt_name'].".html\">".[COLOR=#008080][B]stripslashes[/B][/COLOR]([COLOR=#000080][B]$title[/B][/COLOR])."</a>";
        [COLOR=#000000][B]else[/B][/COLOR] 
            [COLOR=#000080][B]$link[/B][/COLOR][COLOR=#000000] = [/COLOR]"<a {[COLOR=#000080][B]$go_page[/B][/COLOR]}href=\"[COLOR=#000080][B]$PHP_SELF[/B][/COLOR]?newsid=".[COLOR=#000080][B]$row[/B][/COLOR]['id']."\">".[COLOR=#008080][B]stripslashes[/B][/COLOR]([COLOR=#000080][B]$title[/B][/COLOR])."</a>";

        [COLOR=#000080][B]$topnews[/B][/COLOR] .= "&raquo; ".[COLOR=#000080][B]$link[/B][/COLOR]."<br />";
    }

    [COLOR=#000080][B]$db[/B][/COLOR]->free();
    create_cache ("topnews", [COLOR=#000080][B]$topnews[/B][/COLOR], [COLOR=#000080][B]$config[/B][/COLOR]['skin']);
    }
    
    [COLOR=#000000][B]return[/B][/COLOR] [COLOR=#000080][B]$topnews[/B][/COLOR];
}
популярные новости выводим тегом {topnews category="ID категории"}


и встречный вопрос, как сделать что новости выводились за неделю? подозреваю что надо запрос копать, кто поможет?
 
я столкнулся с такойпроблемой, на которую раньше не обращал внимание: тег {topnews} выводит новости добаленные за послений месяц, как поправить, что бы он выодил к примеру за последние 3 месяца?
 
я столкнулся с такойпроблемой, на которую раньше не обращал внимание: тег {topnews} выводит новости добаленные за послений месяц, как поправить, что бы он выодил к примеру за последние 3 месяца?
Вот Для просмотра ссылки Войди или Зарегистрируйся я писал как делать
просто меняешь 1 на 3 и будет вывод за 3 месяца
 
в index.php перед

Код:
[COLOR=#000080][B]$config[/B][/COLOR]['http_home_url'][COLOR=#000000] = [/COLOR][COLOR=#008080][B]reset[/B][/COLOR]([COLOR=#008080][B]explode[/B][/COLOR]("index.php", [COLOR=#000080][B]$_SERVER[/B][/COLOR]['PHP_SELF']));
добавляем

Код:
[COLOR=#000000][B]if[/B][/COLOR] ( stristr( [COLOR=#000080][B]$tpl[/B][/COLOR]->copy_template, "{topnews" ) ) {

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

    }
и в файле engine/modules/functions.php добавляем функцию

Код:
[COLOR=#000000][B]function[/B][/COLOR] topnews_print ([COLOR=#000080][B]$custom_category[/B][/COLOR]){    
    [COLOR=#000000][B]global[/B][/COLOR] [COLOR=#000080][B]$db[/B][/COLOR];
[COLOR=#000080][B]$custom_category[/B][/COLOR]  = [COLOR=#000080][B]$db[/B][/COLOR]->safesql([COLOR=#008080][B]str_replace[/B][/COLOR](',', '|', [COLOR=#000080][B]$custom_category[/B][/COLOR]));

[COLOR=#000000][B]if[/B][/COLOR](!defined('DATALIFEENGINE'))
{
  die("Hacking attempt!");
}

[COLOR=#000080][B]$topnews[/B][/COLOR][COLOR=#000000] = [/COLOR]dle_cache("topnews", [COLOR=#000080][B]$config[/B][/COLOR]['skin']);

[COLOR=#000000][B]if[/B][/COLOR] (![COLOR=#000080][B]$topnews[/B][/COLOR]) {

    [COLOR=#000080][B]$this_month[/B][/COLOR][COLOR=#000000] = [/COLOR]date ('Y-m-d', time()-(3600*24*27));

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

    [COLOR=#000000][B]while[/B][/COLOR]([COLOR=#000080][B]$row[/B][/COLOR][COLOR=#000000] = [/COLOR][COLOR=#000080][B]$db[/B][/COLOR]->get_row()){

        [COLOR=#000080][B]$row[/B][/COLOR]['date'][COLOR=#000000] = [/COLOR]strtotime([COLOR=#000080][B]$row[/B][/COLOR]['date']);

        [COLOR=#000000][B]if[/B][/COLOR] ([COLOR=#008080][B]strlen[/B][/COLOR]([COLOR=#000080][B]$row[/B][/COLOR]['title']) > 55)
            [COLOR=#000080][B]$title[/B][/COLOR][COLOR=#000000] = [/COLOR][COLOR=#008080][B]substr[/B][/COLOR] ([COLOR=#000080][B]$row[/B][/COLOR]['title'], 0, 55)." ...";
        [COLOR=#000000][B]else[/B][/COLOR]
            [COLOR=#000080][B]$title[/B][/COLOR][COLOR=#000000] = [/COLOR][COLOR=#000080][B]$row[/B][/COLOR]['title'];

        [COLOR=#000080][B]$go_page[/B][/COLOR][COLOR=#000000] = [/COLOR]([COLOR=#000080][B]$config[/B][/COLOR]['ajax']) ? "onclick=\"DlePage('newsid=".[COLOR=#000080][B]$row[/B][/COLOR]['id']."'); [COLOR=#000000][B]return[/B][/COLOR] [COLOR=#000000][B]false[/B][/COLOR];\" " : "";

        [COLOR=#000000][B]if[/B][/COLOR] ([COLOR=#000080][B]$config[/B][/COLOR]['allow_alt_url'][COLOR=#000000] == [/COLOR]"yes")
            [COLOR=#000080][B]$link[/B][/COLOR][COLOR=#000000] = [/COLOR]"<a {[COLOR=#000080][B]$go_page[/B][/COLOR]}href=\"".[COLOR=#000080][B]$config[/B][/COLOR]['http_home_url'].date('Y/m/d/', [COLOR=#000080][B]$row[/B][/COLOR]['date']).[COLOR=#000080][B]$row[/B][/COLOR]['alt_name'].".html\">".[COLOR=#008080][B]stripslashes[/B][/COLOR]([COLOR=#000080][B]$title[/B][/COLOR])."</a>";
        [COLOR=#000000][B]else[/B][/COLOR] 
            [COLOR=#000080][B]$link[/B][/COLOR][COLOR=#000000] = [/COLOR]"<a {[COLOR=#000080][B]$go_page[/B][/COLOR]}href=\"[COLOR=#000080][B]$PHP_SELF[/B][/COLOR]?newsid=".[COLOR=#000080][B]$row[/B][/COLOR]['id']."\">".[COLOR=#008080][B]stripslashes[/B][/COLOR]([COLOR=#000080][B]$title[/B][/COLOR])."</a>";

        [COLOR=#000080][B]$topnews[/B][/COLOR] .= "&raquo; ".[COLOR=#000080][B]$link[/B][/COLOR]."<br />";
    }

    [COLOR=#000080][B]$db[/B][/COLOR]->free();
    create_cache ("topnews", [COLOR=#000080][B]$topnews[/B][/COLOR], [COLOR=#000080][B]$config[/B][/COLOR]['skin']);
    }
    
    [COLOR=#000000][B]return[/B][/COLOR] [COLOR=#000080][B]$topnews[/B][/COLOR];
}
популярные новости выводим тегом {topnews category="ID категории"}


и встречный вопрос, как сделать что новости выводились за неделю? подозреваю что надо запрос копать, кто поможет?


а почему он чпу не поддерживает? кто может доработать хак? что бы всё корректно отображалось... или может у кого есть модуль topnews ?
 
...
и встречный вопрос, как сделать что новости выводились за неделю? подозреваю что надо запрос копать, кто поможет?
.../engine/modules/topnews.php (у меня 28 строка)
$db->query( "SELECT id, title, date, alt_name, category, flag FROM " . PREFIX . "_post WHERE approve='1' AND date >= '$this_month' - INTERVAL 1 MONTH AND date < '$this_month' ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,10" );
заменить на
$db->query( "SELECT id, title, date, alt_name, category, flag FROM " . PREFIX . "_post WHERE approve='1' AND date >= '$this_month' - INTERVAL 1 WEEK AND date < '$this_month' ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,10" );
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху