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-" /> 
					
                        Bu gönderi foxhound tarafından düzenlendi (2015-06-08 12:54, 10 yıllar önce)
                     
                    
				 | 
			
| 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 - создание сайтов, разработка плагинов и тем для Котонти 
					
                        Bu gönderi Kort tarafından düzenlendi (2017-01-27 13:24, 8 yıllar önce)
                     
                    
				 | 
			
| 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);
}
 
                        Bu gönderi Yusupov tarafından düzenlendi (2017-02-28 13:22, 8 yıllar önce)
                     
                    
				 | 
			
| Kort | 
					 | 
			
|---|---|
| 
					 Поле ж вроде бы создано и заполнено. Как -- другой вопрос )) По решению: я бы вынес это в отдельный плагин с указанным хуком. SED.by - создание сайтов, разработка плагинов и тем для Котонти 
					
                        Bu gönderi Kort tarafından düzenlendi (2017-02-28 13:39, 8 yıllar önce)
                     
                    
				 | 
			
| 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??? 
                        Bu gönderi Kopusha tarafından düzenlendi (2017-02-28 14:29, 8 yıllar önce)
                     
                    
				 | 
			
| Yusupov | 
					 | 
			
|---|---|
					
if($area == 'page')
{
    global $db_pages;
    $db->update($db_pages, array('page_rating' => $ratingnewaverage), "page_id=" . $code);
}
  | 
			
| Kopusha | 
					 | 
			
|---|---|
| 
					 Да да, так работает великолепно! Я просто не понял почему и окуда выскочило "ratingnewaverage"  |