CMS Eleanor - Поиск
Полная версия этой страницы: Официальный форум Eleanor CMS » Новое в блогах
Официальный форум Eleanor CMS » Поддержка пользователей системы Eleanor CMS » Использование системы
Paradox
Пожалуйста, помогите доделать блок для вывода Новое в блогах на RC5, сам наковырял из того что нашел тут на форуме но выводит совсем не то что надо.. Не хочет грузить архив с блоком.. 850 байт :dntknw: Может так у кого есть?
Alexander
Paradox, показывайте что у вас не получилось :)
Paradox
<?php
if (!defined('CMS'))	die('Попытка взлома?');$limit['media']=5; //Кол-во выводимых Файлов, Новостей, Вопросов$strip['media']=25; //Кол-во символов в заголовке выводимых Файлов, Новостей, Вопросов$cache='0'; //1-вкл кэш, 0-выкл кэшif ($cache=='1' && $Mainclass->Cache->Get('block_new_on_site',false)) $content .=$Mainclass->Cache->Get('block_new_on_site',false);else {$mass['count']['blogs']=$c=0; $blogs=$Mainclass->Db->Query('SELECT `url` , `last_url`, `last_title` FROM `f_blogs` LIMIT  '.$limit['media'].' ',__file__,__line__);while($arrn=$Mainclass->Db->Fetch_assoc($blogs)) {	if(strlen($arrn['last_title'])>$strip['media']) $arrn['last_title'] = "".substr($arrn['last_title'], 0, $strip['media'])."...";	$mass['blogs'][]=$arrn['last_title'];	$mass['burl'][]=$arrn['last_url'];	$mass['aurl'][]=$arrn['url'];	$mass['count']['blogs']++;}if ($limit['media']<max($mass['count'])) $limit['media']=max($mass['count']);for ($i=0; $i<$limit['media']; $i++) {if ($c==0) $tbl .='<div class="block"><ul>';if ($mass['count']['blogs']<=$i) $tbl .='';else $tbl .='<img src="/images/com.png" alt="&raquo;" align="left" /> &nbsp; <a href="/blogs/'.$mass['aurl'][$i].'/'.$mass['burl'][$i].'.html">'.$mass['blogs'][$i].'</a>';if ($c==0) {$tbl .='</div>';$c=-1;}$c++;}$content = ''.$tbl.'</ul>';if ($cache=='1') $Mainclass->Cache->Put('block_new_on_site',$content,86400,false);}?>


Не разберусь как правильно составить запрос в бд.. таблицы блогов отличаются от новостей..

Paradox
Alexander

[1] Как вывести Новое в блогах?

[2] в RC5 есть плагин: Самое читаемое, где он находится? так и не нашел и можно ли его подредактировать, выводить новости не по количеству прочтений, а по оценкам пользователей? Думаю нет смысла выводить Самое читаемое, у меня есть статьи у которых тысячи прочтений, только потому, что они в топах в поисковиках, но есть и другие материалы - прочтений гораздо меньше, эти статьи не в топах, но ценность их не меньшая.. более адекватная оценка контента от пользователя.

[3] Как сделать листинг всех новостей прямо на главной? Не нашел ничего по этому вопросу на форуме.&nbsp;
Alexander
Paradox, пронумеруйте вопросы. А то я запутаюсь на них отвечать.
Paradox
пронумеровал.

Нашел plugins для новостей, кому надо выводить популярные новости не по прочтению, а по рейтингу в файле modules/news/plugins.php строка 83 'reads' заменить на 'votes'

Alexander, и для остальных модулей эти плагины были почти готовы, судя по их содержанию.. может есть готовые да не включенные в RC5?
Alexander
Цитата (Paradox @ 2021-12-02 07:27)
[1] Как вывести Новое в блогах?

Вам запрос предоставить или как?

Цитата (Paradox @ 2021-12-02 07:27)
в RC5 есть плагин: Самое читаемое, где он находится?

Я немножко призабыл. А где видно, что он есть? По-моему такое было для новостей, но подзабыл я уже RC5 немного :)

Цитата (Paradox @ 2021-12-02 07:27)
[3] Как сделать листинг всех новостей прямо на главной? Не нашел ничего по этому вопросу на форуме.&nbsp;

Тоесть вам необходимо, чтобы на главной выводились все новости, как на /news.html ? Тоесть, чтобы и листалка страниц и 10 новостей?
Paradox
1. да, если не сложно, запрос правильно составить..
2. нашел уже плагин, сделал вывод по рейтингу. в /modules/news/plugins.php
3. да, именно так как в news.html, чтоб листалка из всех категорий и 10 новостей.
Alexander
Paradox,
  1. Запрос выглядит примерно так (осторожно, псевдокод!):
    
    $Mainclass->Db->Query('SELECT ... FROM `f_blogs_posts` WHERE `status`=1 ORDER BY `date` DESC LIMIT 10');
    while($a=$Mainclass->Db->Fetch_assoc())
    {
    ...
    }
    
  2. Вопрос закрыт?
  3. Перешлите мне ваш файл modules/news/user/index.php на мыло - немного подправлю и перешлю вам его обратно.
Paradox
1.
$Mainclass->Db->Query('SELECT `url`, `title` FROM `el_blogs_posts` WHERE `status`=1 ORDER BY `date` DESC LIMIT 10');

так работает вывод последних блогов, но надо еще получить burl самого блога из таблицы blogs и curl из таблицы blogs_categories (если блог с категориями), чтоб ссылка в блоке Новое в блогах имела вот такой вид:
http://site.ru/blogs/myblog/categories/title.html
а вот как это выразить правильно одним запросом? Пытался нарыть этот запрос в файлах модуля, но там всё слишком мудрёно :blink: больше чем мне надо..

2. Закрыт.
3. Переслал.
Paradox
Alexander, спасибо за файл, листинг работает :)
Alexander
Paradox, пожалуйста. Теперь разбираемся с первым вопросом.

Запрос будет примено такой:
SELECT `p`.`bid`,`p`.`cid`,`p`.`url`,`p`.`title`,`c`.`url` `curl`,`b`.`url` `burl` FROM `f_blogs_posts` `p` INNER JOIN `f_blogs_categories` `c` ON `c`.`id`=`p`.`cid` INNER JOIN `f_blogs` `b` ON `b`.`id`=`p`.`bid` WHERE `p`.`status`=1 ORDER BY `p`.`date` DESC LIMIT 10


Теперь в burl и curl будут нужные вам значения, а именно бардовое и зеленое.
Paradox
бардовое и зеленое мне не нужно, спасибо :) Это я для полной ясности что и куда выделил цветом.
Получилось! Выводит список новых записей в блогах так как нужно с корректным урлом.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.