Forums / National / Russian / Модули и плагины / Recent Items

Kabak
#1 2023-09-01 08:51

Можно ли этим плагином вывести последние сообщения на форумах на титульной странице сайта ?  ( в ограниченном количестве - как в настройках плагина для странице - "Новое на сайте" )

( по-прежнему не работает нормальный поиск на этом сайте )

This post was edited by Kabak (2023-09-01 09:02, 8 months ago)
Kopusha
#2 2023-09-01 23:03

Можно

https://github.com/Cotonti/Cotonti/blob/master/plugins/recentitems/recentitems.index.php

но это темы форума. Не посты.

Kort
#3 2023-09-03 11:51

Можно так: https://github.com/seditio/cot_forman

Список аргументов cot_postlist:

  1. $tpl -- имя шаблона
  2. $items -- количество записей (0 - все)
  3. $order -- порядок сортировки (MySQL)
  4. $extra -- дополнительный фильтр (MySQL)
  5. $group -- группировать посты по топикам (один топик - один пост)
  6. $offset -- сдвиг позиций от начала
  7. $pagination -- код URLа паджинации
  8. $ajax_block -- ID блока для аяксовой паджинации
  9. $cache_name -- имя кэша
  10. $cache_tpl -- срок действия кэша

Примеры использования:

// Все посты
{PHP|cot_postlist()}

// Кастомный шаблон, 5 постов
{PHP|cot_postlist('custom.postlist', 5)}

// Стандартный шаблон, 5 постов, сортировка по дате
{PHP|cot_postlist('forman.postlist', 5, 'fp_updated DESC')}

// Стандартный шаблон, 5 постов, сортировка по дате, только посты админа
{PHP|cot_postlist('forman.postlist', 5, 'fp_updated DESC', 'fp_posterid = 1')}

// Стандартный шаблон, 5 постов, сортировка по дате, сгруппировать по топикам
{PHP|cot_postlist('forman.postlist', 5, 'fp_updated DESC', '', 1)}

// Стандартный шаблон, 5 постов, сортировка по дате, сгруппировать по топикам, без первой записи
{PHP|cot_postlist('forman.postlist', 5, 'fp_updated DESC', '', 1, 1)}

// Стандартный шаблон, 5 постов, сортировка по дате, сгруппировать по топикам, паджинация
{PHP|cot_postlist('forman.postlist', 5, 'fp_updated DESC', '', 1, 0, 'posts')}

// Стандартный шаблон, 5 постов, сортировка по дате, сгруппировать по топикам, ajax-паджинация
<div id="posts2list">
{PHP|cot_postlist('forman.postlist', 5, 'fp_updated DESC', '', 1, 0, 'posts', posts2list)}
</div>

// Стандартный шаблон, 5 постов, сортировка по дате, сгруппировать по топикам, закэшировать на 24 часа
{PHP|cot_postlist('forman.postlist', 5, 'fp_updated DESC', '', 1, 0, '', '', 'posts_global', '86400')}

Для использования ajax-паджинации необходимо дополнительно включить соответствующую опцию в настройках плагина. Для того, чтобы в URL не попадали аргументы функции, желательно включить в настройках шифрование и ввести 16-значные значения ключа и вектора исполнения.

Последняя опция в настройках включит генерацию в шаблоне usertags от fp_posterid по маске PAGE_ROW_USER_

Паджинация (обычная и аяксовая) с кэшем работать не будет. Таков путь.

SED.by - создание сайтов, разработка плагинов и тем для Котонти
This post was edited by Kort (2023-09-04 12:57, 8 months ago)
Kopusha
#4 2023-09-04 08:30

)))) Паджинация (обычная и аяксовая) с кэшем работать не будет. Таков путь.

я как раз трахаюсь с этим) ну логично что не будет ибо бессмысленно.

Хороший плуг для ряда проектов где срач постоянный, у меня сидит о Библии сайт на котонти старом, мож туда суну.

Added 7 minutes later:

		<div class="forman_ajax">
		{PHP|cot_postlist('forman.postlist', 3, 'fp_updated DESC', '0', '0', '0', 'fpag', 'forman_ajax', '', '')}
		</div>
Ссылка такая получается
<li class="page-item"><a class="page-link" href="/ua/?fpag=4" rel="get-forman_ajax;ua/index.php;r=forman&amp;tpl=forman.postlist&amp;items=3&amp;order=fp_updated%20DESC&amp;extra=0&amp;group=0&amp;offset=0&amp;pagination=fpag&amp;ajax_block=forman_ajax&amp;fpag=4">4</a></li>
		<div class="comlist_ajax">
		{PHP|cot_comlist('comlist', 2, 'com_date DESC', '0', '0', 'cpag', 'comlist_ajax', '', '')}
		</div>
Ссылка такая получается
<li class="page-item"><a class="page-link" href="/ua/?cpag=3" rel="get-comlist_ajax;ua/index.php;r=comlist&amp;tpl=comlist&amp;items=2&amp;order=com_date%20DESC&amp;extra=0&amp;group=0&amp;pagination=cpag&amp;ajax_block=comlist_ajax&amp;cpag=3">3</a></li>

Кеш выключил, но не работает без перезагрузки стр почему то? Может в ссылке не хватает класса ajax? Или еще от чего?

Added 5 minutes later:

PS ajax добавил - в утрле /ua/#get-forman_ajax;ua/index.php;r=forman&tpl=forman.postlist&items=3&order=fp_updated DESC&extra=0&group=0&offset=0&pagination=fpag&ajax_block=forman_ajax&fpag=3 но естественно ничего не меняется постранично. Очевидно Грека руку сунул как нибудь не так...

This post was edited by Kopusha (2023-09-04 08:43, 8 months ago)
Kort
#5 2023-09-04 11:25

Аяксовый блок оформляется через ID. Аякс надо включить и в настройках сайта и в настройках плагина. Если все настроено правильно, у анкора появится класс ajax и атрибут rel.

Есть еще нюанс с анкором -- я вижу что разметка паджинации изменена под Бутстрап. Здесь я проблему описал. Как ее исправить временно, могу пояснить, но это уже второй вопрос)

Обязательно обнови плагины из Гитхаба.

SED.by - создание сайтов, разработка плагинов и тем для Котонти
This post was edited by Kort (2023-09-04 11:59, 8 months ago)
Kopusha
#6 2023-09-05 07:13
#47035 Kort:
...
$event = ' class="ajax"';
...

В результате дважды указывается атрибут class, из-за чего или не работает аяксовый паджинатор, или в анкоре не срабатывает "оформительский" класс. Понятно, что для бешеной собаки это не проблема,

У меня именно такая катавасия - два раз класс, а руками в resources.php добавить ajax (<li class="page-item"><a class="page-link ajax") так оно всюду будет. Как проще решить?

Added 1 minute later:

И вдогонку - нельзя ли обойтитсь без таких страшных урлов при подобной пагинации?
/ua/#get-comlist_ajax;ua/index.php;r=comlist&tpl=comlist&items=2&order=com_date DESC&extra=0&group=0&pagination=cpag&ajax_block=comlist_ajax&cpag=13
Что бы урл как был так и оставался.

Kort
#7 2023-09-05 10:14

Привет, параметры передаются через метод GET, и тоже не нравится список аргументов в УРЛе. Как-то это небезопасно выходит. Пока что придумалось только шифровать параметры. Посмотри в предыдущем посте с описанием.

Как вариант можно укоротить эти букофы через использование конфигов. Я думаю, получится сделать.

PS: Обнови сборку из Github'а -- пофиксили нюанс с классом)) Теперь ajax-паджинация будет работать с классом в анкоре -- примерно так:

$R['link_pagenav_current']  = '<li class="page-item active"><a href="{$url}" class="page-link {$ajax_class}" {$rel}>{$num}</a></li>';

$R['link_pagenav_first']    = '<li class="page-item"><a href="{$url}" class="page-link {$class}" {$rel}> << </a></li>';
$R['link_pagenav_prev']     = '<li class="page-item"><a href="{$url}" class="page-link {$class}" {$rel}> < </a></li>';
$R['link_pagenav_main']     = '<li class="page-item"><a href="{$url}" class="page-link {$class}" {$rel}>{$num}</a></li>';
$R['link_pagenav_next']     = '<li class="page-item"><a href="{$url}" class="page-link {$class}" {$rel}> > </a></li>';
$R['link_pagenav_last']     = '<li class="page-item"><a href="{$url}" class="page-link {$class}" {$rel}> >> </a></li>';

$R['link_pagenav_gap']      = '<li class="page-item gap"><span>...</span></li>';

 

SED.by - создание сайтов, разработка плагинов и тем для Котонти
This post was edited by Kort (2023-09-06 06:41, 8 months ago)
Alex300
#8 2023-09-05 12:49
#47053 Kopusha:

И вдогонку - нельзя ли обойтитсь без таких страшных урлов при подобной пагинации?
/ua/#get-comlist_ajax;ua/index.php;r=comlist&tpl=comlist&items=2&order=com_date DESC&extra=0&group=0&pagination=cpag&ajax_block=comlist_ajax&cpag=13
Что бы урл как был так и оставался.

Вопрос ранее обсуждался https://www.cotonti.com/forums?m=posts&q=7541

И в планах есть реализация https://github.com/Cotonti/Cotonti/issues/1728

Заодно попробуем избавиться от jQuery в AjaxHelper'е

Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
This post was edited by Alex300 (2023-09-06 07:51, 8 months ago)