ErsteVorherige12345NächsteLetzte
Build customized page list widgets
| foxhound |
|
|---|---|
|
Ok, thanks for confirming that Kort. Than I will have to adjust my idea a bit ;) Added 1 year later: Currently I am trying to add the ratings to the pagelist plugin. I am doing that cause I want to be able to sort pages in a nice list on its rating.
<?php
/* ====================
[BEGIN_COT_EXT]
Hooks=pagelist.loop
[END_COT_EXT]
==================== */
defined('COT_CODE') or die('Wrong URL');
global $cfg;
if ($cfg['plugin']['pagelist']['ratings'] && cot_plugin_active('ratings'))
{
$rowe_urlp = empty($row['page_alias']) ? array('c' => $row['page_cat'], 'id' => $row['page_id']) : array('c' => $row['page_cat'], 'al' => $row['page_alias']);
$t->assign(array(
'PAGE_ROW_RATINGS' => cot_ratings_display('page', $rowe_urlp, 'page', $row['page_id'], $c, $row),
'PAGE_ROW_RATINGS_AVARAGE' => cot_ratings_display('page', $row['page_id'], $row)
));
}
?>
I named it pagelist.ratings.loop.php.
<?php
/* ====================
[BEGIN_COT_EXT]
Hooks=pagelist.query
[END_COT_EXT]
==================== */
defined('COT_CODE') or die('Wrong URL');
global $cfg;
if ($cfg['plugin']['pagelist']['ratings'] && cot_plugin_active('ratings'))
{
global $db_ratings;
require_once cot_incfile('ratings', 'plug');
$cns_join_columns .= ", (SELECT COUNT(*) FROM `$db_ratings` WHERE rating_area = 'page' AND rating_code = p.page_id) AS rating_average";
}
?>
I named this pagelist.ratings.query.php. <img src="http://www.armaholic.com/datas/thumbs/green-sea-battalion-uniforms-version-03-preview_4.jpg" alt="green-sea-battalion-uniforms-version-03-" />
Dieser Beitrag wurde von foxhound (am 8. Juni 2015, 12:54, vor 10 Jahre) bearbeitet |
| Anonymous |
|
|---|---|
$pagination - имя параметра паджинации (опционально, например pld – убедитесь в отсутствии конфликтов одинаковых имен!) Если ставлю FALSE или оставляю параметр пустым то паджинация работает не корректно. Перечень с номерами страниц не перелистываются при переходе на следующую страницу. На старой "сборке" такого нет. |
| Kort |
|
|---|---|
|
Как именно вызывается функция? Только что проверял:
{PHP|pagelist('pagelist', 10, '', '', 'articles')}
и
{PHP|pagelist('pagelist', 10, '', '', 'articles', '', '', true, 'ppp')}
И там и там паджинация работает, тестировал и с главной и с внутряков. В первом случае ссылки паджинации дефолтные http://site.by/?pld=5, во втором пользовательские: http://site.by/about?ppp=2 SED.by - создание сайтов, разработка плагинов и тем для Котонти
Dieser Beitrag wurde von Kort (am 27. Januar 2017, 13:24, vor 8 Jahre) bearbeitet |
| Kopusha |
|
|---|---|
|
Не будет работать {PHP|pagelist('pagelist','4','page_count DESC','page_rating > "0"', '', 'system;archives','news;events','TRUE', 'pld')} ??? |
| Kort |
|
|---|---|
|
Почему нет? Будет! Единственный момент: одновременно whitelist и blacklist не будут работать. Это бессмысленно )) SED.by - создание сайтов, разработка плагинов и тем для Котонти
|
| Yusupov |
|
|---|---|
|
Чет никак найти не могу, где у нас поле page_rating обновляется? И обновляется ли он вообще? |
| Kort |
|
|---|---|
|
Да, такого поля уже нет )) Плагин рейтингов пишет в собственные таблицы SED.by - создание сайтов, разработка плагинов и тем для Котонти
|
| Kopusha |
|
|---|---|
|
Не выводит {PHP|pagelist('pagelist','4','page_rating DESC','page_count > "0"', '', 'system;archives','','TRUE', 'pld')} как надо. С рейтингом ноль первая с рейтингом 6 вторая. При этом ничего не меняется в порядке
{PHP|pagelist('pagelist','4','page_rating ASC')}
{PHP|pagelist('pagelist','4','page_rating DESC')}
|
| Kort |
|
|---|---|
|
По аналогии с заголовками экстраполей: где-то что-то делаешь не так. Без доступа ничем не помогу. Проверь тип поля, посмотри в phpmyadmin что там, отсортируй в нем же. Чудес не бывает. SED.by - создание сайтов, разработка плагинов и тем для Котонти
|
| Kopusha |
|
|---|---|
|
Дима, правильно? Еще провожусь, интерсно самому понять где я олень. |
| Yusupov |
|
|---|---|
|
Не работает потому, что поле page_rating в таблице $db_pages у всех записей по нулям. Ибо значение рейтинга не считается и не записывается в это поле. Добавлено 5 минут спустя: По идее должен помочь такой хак через хук): Создать в плагине ratings файл: ratings.page.ratings.send.done.php
<?php
/* ====================
[BEGIN_COT_EXT]
Hooks=ratings.send.done
[END_COT_EXT]
==================== */
defined('COT_CODE') or die('Wrong URL');
if($area == 'page')
{
global $db_page;
$db->update($db_page, array('page_rating' => $ratingnewaverage), "page_id=" . $code);
}
Dieser Beitrag wurde von Yusupov (am 28. Februar 2017, 13:22, vor 8 Jahre) bearbeitet |
| Kort |
|
|---|---|
|
Поле ж вроде бы создано и заполнено. Как -- другой вопрос )) По решению: я бы вынес это в отдельный плагин с указанным хуком. SED.by - создание сайтов, разработка плагинов и тем для Котонти
Dieser Beitrag wurde von Kort (am 28. Februar 2017, 13:39, vor 8 Jahre) bearbeitet |
| Kopusha |
|
|---|---|
|
Зачем отдельно. Есть рейтинги, Есть желание отсортировать страницы По рейтингу, фактически прямое назначение модуля. Это не какие-то посторонние редко встречающиеся желания, Просто поправить и сделать новую версию. Added 41 minutes later: #42712 Yusupov: Пробую - дошел до такого - $db->update($db_pages, array('page_rating' => $ratings_average), "page_id=" . $code); Не помогло. А вот такое - вроде бы работает. $db->update($db_pages, array('page_rating' => $ratingnewaverage), "page_id=" . $code);
Почему "ratingnewaverage"??? Если переменная выше - ratings_average??? Dieser Beitrag wurde von Kopusha (am 28. Februar 2017, 14:29, vor 8 Jahre) bearbeitet |
| Yusupov |
|
|---|---|
if($area == 'page')
{
global $db_pages;
$db->update($db_pages, array('page_rating' => $ratingnewaverage), "page_id=" . $code);
}
|
| Kopusha |
|
|---|---|
|
Да да, так работает великолепно! Я просто не понял почему и окуда выскочило "ratingnewaverage" |