Сортировка топиков по последним действиям. Плагин "Discussion Stream"

Плагин сортирует топики по последним действиям (добавление нового топика или комментария в топик).
Совместимость с версией 0.4.1 и выше
По мотивам livestreet.ru/blog/tips_and_tricks/3771.html, упаковал в плагин.
Кто хочет поддержать автора, кошелек WebMoney: R333668814351

До премодерации доступен тут.
После модерации доступен в каталоге.

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

avatar
Приятно было бы увидеть этот плагин установленным здесь(livestreet.ru)
avatar
Замечательный Плагин!
avatar
Установил, но изменений не заметил. Где должно появиться?
avatar
Не ставил плагин себе, но, насколько понимаю, сейчас он влияет только на выдачу главной страницы. В принципе, по аналогии можно настроить и все остальные.
avatar
можно настроить, но для этого придется изменять всю структуру плагина, поскольку там придется наследовать модуль topic
avatar
после установки в меню Все Коллективные Персональные TOP появляется дополнительный пункт: поток
avatar
0.4.2 и ничего не появилось :) может в шаблоне что-то не то?
avatar
а какой шаблон то? там хуки есть?
avatar
Шаблон new
Вот кусок где меню выводится
<div class="contain">
		<ul class="nav-main">
			<li {if $sMenuHeadItemSelect=='blog'}class="active"{/if}><a href="{router page='blog'}">{$aLang.blogs}</a></li>
			<li {if $sMenuHeadItemSelect=='people'}class="active"{/if}><a href="{router page='people'}">{$aLang.people}</a></li>
			<li {if $sAction=='page' and $sEvent=='about'}class="active"{/if}><a href="{router page='page'}about/">{$aLang.page_about}</a></li>
		</ul>
		
		{if $menu}
			{if in_array($menu,$aMenuContainers)}{$aMenuFetch.$menu}{else}{include file=menu.$menu.tpl}{/if}
		{/if}
avatar
ну вообщето поток похватывается из menu.blog.tpl
avatar
Ок, заработало. Спасибо.
avatar
напишите это в описании плагина, а тои сам уж нервничать начал, что не работает %)
avatar
О спасибо. Работает. Немного правда изменил под себя.
Убрал из него «персональные блоги». Теперь отображаются только «коллективные»

На всякий случай кому надо, то менять в \plugins\stream\classes\modules\stream 27стока
Было:
public function GetTopicsByUpdate($iPage,$iPerPage,$bAddAccessible=true) {
		$aFilter=array(
			'blog_type' => array(
				'personal',
				'open'
			),
			'topic_publish' => 1,
                        'order' => 't.topic_last_update desc'


Стало (удаляем 'personal')
public function GetTopicsByUpdate($iPage,$iPerPage,$bAddAccessible=true) {
		$aFilter=array(
			'blog_type' => array(
				'open',
			),
			'topic_publish' => 1,
                        'order' => 't.topic_last_update desc'


Ну и естественно, если нужно сделать наоборот, тоесть, чтоб выводились только «персональные», а « коллективных» небыло, то 'personal' оставляем, а 'open' удаляем.
  • Loci
  • 0
avatar
то есть, я конечно же имел введу \plugins\stream\classes\modules\stream\Stream.class.php
avatar
Народ, кто установил, киньте ссылочку на свой сайт — очень хочется пощупать.
avatar
Как настроить что бы в блоке Комментарии / Публикации тоже менялось?
  • Guf
  • 0
avatar
надо блок сделать или вручную править блоки
avatar
Что именно нужно править?
avatar
А как сделать, чтоб такое на главной происходило, а не в блоги/поток?
avatar
там необходимо делегировать ActionIndex
avatar
Если не сложно, можно поподробнее?
Что и где надо заменить?
avatar
присоединяюсь к вопросу
avatar
И я пожалуй тоже спрошу…
avatar
Кстати, когда меняю в строке
$config['router']['config']['action_default']   = 'index';
index на stream, пропадает кнопка написать на главной.
что такого надо добавить в шаблон menu.stream.tpl, или в какой другой, чтобы кнопка была?
avatar
посмотрите header_nav.tpl ;)
avatar
пробовал втупую содержание header_nav.tpl добавить в menu.stream.tpl, словил Bad gateway…
откатил обратно, кэш почистил — все вернулось.
видимо, как-то иначе надо…
avatar
{if $oUserCurrent and ($sAction=='blog' or $sAction=='index' or $sAction=='new' or $sAction=='personal_blog')}
			<div class="write">
				<a href="{router page='topic'}add/" alt="{$aLang.topic_create}" title="{$aLang.topic_create}" class="button small">
					<span><em>{$aLang.topic_create}</em></span>
				</a>
			</div>
		{/if}

нужно добавить $sAction=='stream'
avatar
а куда именно добавить?

кстати, пока была замена index на stream, незалогиненые юзеры тоже Bad gateway видели…
$config['router']['config']['action_default']   = 'index';
avatar
в header_nav.tpl
{if $oUserCurrent and ($sAction=='blog' or $sAction=='index' or $sAction=='new' or $sAction=='personal_blog' or $sAction=='stream')}
			<div class="write">
				<a href="{router page='topic'}add/" alt="{$aLang.topic_create}" title="{$aLang.topic_create}" class="button small">
					<span><em>{$aLang.topic_create}</em></span>
				</a>
			</div>
		{/if}
avatar
Теперь две кнопки стало в коллективных/персональных, а в потоке и на главной она справа находится…
Еще бы этот момент победить, и можно радоваться ;)
avatar
вы добавили или заменили?? :)
avatar
Пробовал и так и так, но если заменить, пропадали все кнопки типа коллективных персональных, и поэтому добавил.
avatar
плагин активировал, и кнопки так и не появилось, адрес сайта: bigcitylife.info
avatar
Работает ли плагин в 1.0.1?
avatar
Скачай, проверь, и нам расскажешь :)
avatar
Не хочется новую тему создавать, но вопрос открыт. Будет ли адаптация под 1.0.1?
  • O3OH
  • 0
avatar
работает, но надо допиливать вручную немного (сортировку поставил ASC).
avatar
Вы не могли бы рассказать немного подробнее?
Сортировку поменяли в GetTopicsByUpdate?
avatar
Да не, не надо там ничего править, так работает, я поменял, но протупил, время сервера слетело, поправил и норм стало.
avatar
А у меня как-то странно сортируются записи, как будто дата публикации не учитывается, а дата последнего комментария – учитывается. У вас вообще все нормально работает?
avatar
Хм… В этом-то и смысл плагина! Сортировать по каментам свежим.
avatar
Не, это я понял :) Не так выразился. Он ведь при активации проходит по топикам и ставит `topic_last_update` = `topic_date_add`. А потом уже каждый коммент, добавленный ПОСЛЕ активации изменяет topic_last_update на текущее время, так и получается сортировка по свежим комментам. Но я только активировал, еще не было новых комментов, а записи отсортированы черт пойми как.

А вот еще – не подскажете как сделать выдачу этого потока на главной, а не на domain.com/stream?
avatar
Там выше спрашивали, но я так и не понял как это сделать :(
avatar
Нет. Я такого не делал по этому не скажу как это сделать проще.
avatar
О, я разобрался.
freetonik: ура, я сделал это :) нужно поменять роутер в конфиге

Config::Set('router.page.stream', 'PluginStream_ActionStream');
на
Config::Set('router.page.index', 'PluginStream_ActionStream');

и там же

'action' => array('stream'),
на
'action' => array('index'),

И еще в ActionStream.class.php сменить путь для генерации пагинатора:

$aPaging=$this->Viewer_MakePaging($aResult['count'],$iPage,Config::Get('module.topic.per_page'),4,Router::GetPath('stream'));
на
$aPaging=$this->Viewer_MakePaging($aResult['count'],$iPage,Config::Get('module.topic.per_page'),4,Router::GetPath('index'));
avatar
Может кто нибудь сможет написать для 1,03?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.