Плагин Thanks
- 412 просмотров
- 25 сентября, 2023
- Обновлено: 16 октября, 2023
- admin
- Время чтения: 4 минуты
- 2 (Подробно)
В процессе реанимации плагина было выполнено следующее:
- Рефакторинг и структурирование кода
- Устранение ошибок и несовместимостей с текущей версией Cotonti
- Организация вывода через две основные функции – thanks_render_list() и thanks_render_user()
- Кэширование вывода (весь кэш очищается при добавлении, удалении и синхронизации благодарностей)
- Формат даты переведен в UNIX Timestamp
- Паджинация, включая режим AJAX
- Администрирование благодарностей в панели управления с возможностью удаления благодарностей по одной или всех для конкретного пользователя
- Функция синхронизации (пересчет количества лайков пользователям)
- Функция полной синхронизации (удаление лайков от и в адрес удаленных аккаунтов, а также лайки за удаленные объекты (страницы, посты, комментарии))
- Опциональное исключение из списков пользователей с нулевым количеством благодарностей
- Раздельное включение благодарностей для страниц, форумных постов и комментариев с возможностью раздельного назначения классов соответствующим ссылкам
- Вывод в отдельной локации всех лайков конкретной странице, посту или комментарию с разбивкой на страницы
- После отправки благодарности может быть произведена перезагрузка страницы с выводом соответствующего сообщения, либо перенаправление на отдельную страницу с кнопкой возврата
- Обновление с базовой версии (перевод поля th_date в формат INT(10) и конверсия его значений в UNIX Timestamp)
Структура MySQL-таблицы сохранена, за исключением перевода поля даты в формат Timestamp.
Зачем нужны функции вывода?
Кроме основной локации, списки пользователей и благодарностей теперь можно генерить в панели администрирования. Поэтому соответствующий код был вынесен в функции:
- thanks_render_list() – вывод списка пользователей с количеством благодарностей (для администраторов дополнительный функционал в виде удаления пользователя, т.е. всех благодарностей пользователю – при помощи одной “кнопки”);
- thanks_render_user() – вывод списка благодарностей конкретному пользователю (для администраторов дополнительный функционал в виде удаления конкретной благодарности пользователю – при помощи одной “кнопки”).
Использование функций также позволило выводить благодарности в других локациях, например на главной странице “админки” (шаблон admin.home.tpl) или на странице пользователя (шаблон users.details.tpl).
Использование плагина Thanks
Установка стандартная, но для работы расширения необходимо наличие предустановленной библиотеки Cotlib.
В стандартном варианте использования плагин не требует каких-либо дополнительных настроек. Если планируется использование дополнительных возможностей, необходимо ознакомиться с синтаксисом использования основных функций.
Функция thanks_render_list()
Служит для вывода списка пользователей с количеством благодарностей. Синтаксис следующий:
thanks_render_list ( $tpl = 'thanks.list', // 01. имя шаблона $items = 0, // 02. количество записей $order = '', // 03. сортировка в формате MySQL $extra = '', // 04. дополнительные MySQL-запросы $user = '', // 05. id пользователя $pagination = '', // 06. код паджинации для URL'ов $ajax_block = '', // 07. ID блока для AJAX-паджинации $cache_name = '', // 08. имя записи в таблице кэша $cache_ttl = 0 // 09. срок жизни кэша в секундах )
Примеры использования функции в шаблонах:
// Вывести всех пользователей с количеством благодарностей // (настройка в свойствах плагина исключит записи с нулевым количеством) {PHP|thanks_render_list('thanks.list', 0)} // С паджинацией по 5 записей на страницу {PHP|thanks_render_list('thanks.list', 5, '', '', '', 'th')} // С AJAX-паджинацией по 5 записей на страницу <div id="thanks2ajax"> {PHP|thanks_render_list('thanks.list', 5, '', '', '', 'th', 'thanks2ajax')} </div> // Вывести и закэшировать на 24 часа список из 5 пользователей // с наибольшим количеством благодарностей {PHP|thanks_render_list('thanks.list', 5, 'user_thanks DESC', '', '', '', '', 'thanks_sample', '86400')}
Функция thanks_render_user()
Служит для вывода списка благодарностей пользователя. Синтаксис адалогичен:
thanks_render_user ( $tpl = 'thanks.user', // 01. имя шаблона $items = 0, // 02. количество записей $order = '', // 03. сортировка в формате MySQL $extra = '', // 04. дополнительные MySQL-запросы $user = '', // 05. id пользователя $pagination = '', // 06. код паджинации для URL'ов $ajax_block = '', // 07. ID блока для AJAX-паджинации $cache_name = '', // 08. имя записи в таблице кэша $cache_ttl = 0 // 09. срок жизни кэша в секундах )
Примеры использования функции в шаблонах:
// Список благодарностей пользователя с ID 1 // Сортировка по убыванию даты {PHP|thanks_render_user('thanks.user', '0', 'th_date DESC', '', '1')} // Список всех благодарностей // Сортировка по возрастанию даты {PHP|thanks_render_user('thanks.user', '0', 'th_date ASC')} // Использование в шаблоне users.details.tpl // Все благодарности пользователя {USERS_DETAILS_ID|thanks_render_user('thanks.user')}
Использование аргументов, включая паджинацию, аякс и кэширование, аналогично функции thanks_render_list().
Приятного использования. Свои отзывы, пожелания и багрепорты отставляйте в комментариях на нашем сайте (не требуют регистрации) или в Issues на Github.
Cotonti 0.9.24 14.02.2024
Warning: Trying to access array offset on value of type bool in /var/www/blog/plugins/thanks/thanks.php on line 136
Warning: Trying to access array offset on value of type bool in /var/www/blog/plugins/thanks/thanks.php on line 139
Warning: Trying to access array offset on value of type bool in /var/www/blog/plugins/thanks/thanks.php on line 144
Warning: Trying to access array offset on value of type bool in /var/www/blog/plugins/thanks/thanks.php on line 145
Warning: Trying to access array offset on value of type bool in /var/www/blog/plugins/thanks/thanks.php on line 145
Warning: Trying to access array offset on value of type bool in /var/www/blog/plugins/thanks/thanks.php on line 145
При попытке посмотреть в личных сообщениях за что поблагодарили
путь
/index.php?e=thanks&a=viewdetails&ext=comments&item=3
Может за что поблагодарили удалено уже ?
Новый комментарий