Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#1 2009-06-13 00:49:19

panoptus
Участник
Откуда Украина, Николаев
Зарегистрирован: 2009-02-18
Сообщений: 159
Рейтинг :   
Сайт

Сортировка выводимых новостей по дате обновления

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

Не в сети

#2 2009-06-13 01:45:36

vairus
Участник
Зарегистрирован: 2008-10-13
Сообщений: 120
Рейтинг :   

Re: Сортировка выводимых новостей по дате обновления

includes - news.php

найти:     

$orderBy = "pinned desc,  ".$config['default_newsorder'];

заменить на     

$orderBy = "postdate desc, ".$config['default_newsorder'];

Изменено vairus (2009-06-13 01:47:07)

Не в сети

#3 2009-06-13 02:07:59

SeeD
Участник
Откуда Москва
Зарегистрирован: 2008-10-13
Сообщений: 158
Рейтинг :   
Сайт

Re: Сортировка выводимых новостей по дате обновления

эм, я может быть туплю, но разве

Настройки - Управление категориями - Редактировать - Порядок сортировки внутри категории

это не то, что тебе нужно? там и ID и дата и даже по рейтингу. задать новую дату для новости можно во время её редактирования на вкладке Дополнительно.

кстати, хотелось бы попросить хак или плагин, коорый бы позволял пользователю выбирать тип сортировки: дата, просмотры и рейтинг. это наверняка совсем не сложно и еще на шажок приблизило бы CMS к функциональности каталога.


делай, что надо и будь, что будет

Не в сети

#4 2009-06-14 15:24:42

panoptus
Участник
Откуда Украина, Николаев
Зарегистрирован: 2009-02-18
Сообщений: 159
Рейтинг :   
Сайт

Re: Сортировка выводимых новостей по дате обновления

Настройки - Управление категориями - Редактировать - Порядок сортировки внутри категории

то, но там нет "По дате обновления"

Не в сети

#5 2009-06-14 21:18:36

SeeD
Участник
Откуда Москва
Зарегистрирован: 2008-10-13
Сообщений: 158
Рейтинг :   
Сайт

Re: Сортировка выводимых новостей по дате обновления

я ведь все объяснил. меняешь тип сортировки, а при редактировании задаешь новую дату.


делай, что надо и будь, что будет

Не в сети

#6 2009-06-14 23:23:03

panoptus
Участник
Откуда Украина, Николаев
Зарегистрирован: 2009-02-18
Сообщений: 159
Рейтинг :   
Сайт

Re: Сортировка выводимых новостей по дате обновления

я ведь все объяснил. меняешь тип сортировки, а при редактировании задаешь новую дату.

это всем публикующим объявить предлагаешь? + ко всему во вкладке дополнительно вручную вбивать текущую дату и время?

Изменено panoptus (2009-06-14 23:24:47)

Не в сети

#7 2009-06-15 00:07:11

SeeD
Участник
Откуда Москва
Зарегистрирован: 2008-10-13
Сообщений: 158
Рейтинг :   
Сайт

Re: Сортировка выводимых новостей по дате обновления

у тебя десятки новостей каждый день требуют обновления? в таком случае извини, что предложил неподходящее решение. просто сам пользуюсь периодически и никаких проблем не испытываю.

Изменено SeeD (2009-06-15 00:07:25)


делай, что надо и будь, что будет

Не в сети

#8 2009-06-15 01:03:17

panoptus
Участник
Откуда Украина, Николаев
Зарегистрирован: 2009-02-18
Сообщений: 159
Рейтинг :   
Сайт

Re: Сортировка выводимых новостей по дате обновления

SeeD, спасибо за помощь, правда спасибо, но нужна именно доработка, а не способ.

Не в сети

#9 2009-06-15 02:20:23

insider
Участник
Зарегистрирован: 2009-01-25
Сообщений: 229
Рейтинг :   35 
Сайт

Re: Сортировка выводимых новостей по дате обновления

/engine/actions/configuration.php
Найти

	'default_newsorder'				=>	MakeDropDown(array('id desc' => $lang['order_id_desc'], 'id asc' => $lang['order_id_asc'], 'postdate desc' => $lang['order_postdate_desc'], 'postdate asc' => $lang['order_postdate_asc'], 'title desc' => $lang['order_title_desc'], 'title asc' => $lang['order_title_asc']), "save_con[default_newsorder]", $config['default_newsorder']),

Заменить на

	'default_newsorder'				=>	MakeDropDown(array('id desc' => $lang['order_id_desc'], 'id asc' => $lang['order_id_asc'], 'postdate desc' => $lang['order_postdate_desc'], 'postdate asc' => $lang['order_postdate_asc'], 'editdate desc' => "дате редактирования / убывание", 'editdate asc' => "дате редактирования / возрастание", 'title desc' => $lang['order_title_desc'], 'title asc' => $lang['order_title_asc']), "save_con[default_newsorder]", $config['default_newsorder']),

/engine/includes/news.php
Найти

		if (in_array($config['default_newsorder'], array('id desc', 'id asc', 'postdate desc', 'postdate asc', 'title desc', 'title asc'))) {

Заменить на

		if (in_array($config['default_newsorder'], array('id desc', 'id asc', 'postdate desc', 'postdate asc', 'editdate desc', 'editdate asc', 'title desc', 'title asc'))) {

/engine/includes/inc/functions.inc.php
Найти

function OrderList($value) {
	global $lang, $catz;

	$output = "<select name=\"orderby\">\n";
	foreach (array('id desc', 'id asc', 'postdate desc', 'postdate asc', 'title desc', 'title asc', 'rating desc', 'rating asc') as $v) {
	        $vx = str_replace(' ','_',$v);
		$output.='<option value="'.$v.'"'.(($value==$v)?' selected="selected"':'').'>'.$lang["order_$vx"]."</option>\n";
	}
	$output.="</select>\n";
	return $output;
}

Заменить на

function OrderList($value) {
	global $lang, $catz;

	$lang['order_editdate_desc'] = "дате редактирования / убывание";
	$lang['order_editdate_asc'] = "дате редактирования / возрастание";
	$output = "<select name=\"orderby\">\n";
	foreach (array('id desc', 'id asc', 'postdate desc', 'postdate asc', 'editdate desc', 'editdate asc', 'title desc', 'title asc', 'rating desc', 'rating asc') as $v) {
	        $vx = str_replace(' ','_',$v);
		$output.='<option value="'.$v.'"'.(($value==$v)?' selected="selected"':'').'>'.$lang["order_$vx"]."</option>\n";
	}
	$output.="</select>\n";
	return $output;
}

Не в сети

#10 2009-06-15 11:23:38

panoptus
Участник
Откуда Украина, Николаев
Зарегистрирован: 2009-02-18
Сообщений: 159
Рейтинг :   
Сайт

Re: Сортировка выводимых новостей по дате обновления

insider, спасибо. Я видимо не до конца изложил мысль по сортировке - бывает ведь когда новость не редактировалась вообще. Нередактированные новости, судя по всему, сортируются "по ID - убывание"... Не знаю что тут можно придумать... Самый лучший вариант был бы, чтоб у нередактированных новостей в поле "дата редактирования" была дата создания.
ЗЫ: В новый движок этот патч войдет?

Изменено panoptus (2009-06-15 11:53:35)

Не в сети

#11 2009-06-15 16:15:33

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Сортировка выводимых новостей по дате обновления

Вполне возможно.
Основной вопрос в том, что надо будет менять логику хранения информации в поле `дата обновления`.
Сейчас если новость не редактировалась - там стоит 0, а чтобы правильно заработало то, что хочешь ты - там должна стоять дата создания новости.

Не в сети

#12 2009-06-15 16:23:58

panoptus
Участник
Откуда Украина, Николаев
Зарегистрирован: 2009-02-18
Сообщений: 159
Рейтинг :   
Сайт

Re: Сортировка выводимых новостей по дате обновления

Сейчас если новость не редактировалась - там стоит 0, а чтобы правильно заработало то, что хочешь ты - там должна стоять дата создания новости.

этого я и добиваюсь

Не в сети

#13 2013-09-24 23:16:56

infinity237
Модератор
Откуда Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2,674
Рейтинг :   176 
Сайт

Re: Сортировка выводимых новостей по дате обновления

id desc
id asc
postdate desc
postdate asc
title desc
title asc

Не в сети

#14 2013-09-25 19:15:25

infinity237
Модератор
Откуда Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2,674
Рейтинг :   176 
Сайт

Re: Сортировка выводимых новостей по дате обновления

В настройках категории.

Не в сети

#15 2016-02-06 23:58:08

infinity237
Модератор
Откуда Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2,674
Рейтинг :   176 
Сайт

Re: Сортировка выводимых новостей по дате обновления

Для последних версий NG:

1) В engine/includes/inc/functions.inc.php найти:

foreach (array('id desc', 'id asc', 'postdate desc', 'postdate asc', 'title desc', 'title asc', 'rating desc', 'rating asc') as $v) {

Заменить:

foreach (array('id desc', 'id asc', 'postdate desc', 'postdate asc', 'title desc', 'title asc', 'rating desc', 'rating asc', 'xfields_rub desc', 'xfields_rub asc') as $v) {

2) В /engine/lang/russian/admin/categories.ini добавить:

order_xfields_rub_desc  = "По xfields_rub / убывание"
order_xfields_rub_asc   =  "По xfields_rub / возрастание"

В /engine/lang/russian/admin/configuration.ini добавить:

order_xfields_rub_desc  = "По xfields_rub / убывание"
order_xfields_rub_asc   = "По xfields_rub / возрастание"

3) В /engine/includes/inc/libnews.php найти:

if (!in_array($orderBy, array('id desc', 'id asc', 'postdate desc', 'postdate asc', 'title desc', 'title asc')))

Заменить на:

if (!in_array($orderBy, array('id desc', 'id asc', 'postdate desc', 'postdate asc', 'title desc', 'title asc', 'xfields_rub desc', 'xfields_rub asc')))

4) В /engine/skins/default/tpl/configuration.tpl найти:

{{ mkSelect({'name' : 'save_con[default_newsorder]', 'value' : config['default_newsorder'], 'values' : { 'id desc' : lang['order_id_desc'], 'id asc' : lang['order_id_asc'], 'postdate desc' : lang['order_postdate_desc'], 'postdate asc' : lang['order_postdate_asc'], 'title desc' : lang['order_title_desc'], 'title asc' : lang['order_title_asc'] } }) }}

Заменить на:

{{ mkSelect({'name' : 'save_con[default_newsorder]', 'value' : config['default_newsorder'], 'values' : { 'id desc' : lang['order_id_desc'], 'id asc' : lang['order_id_asc'], 'postdate desc' : lang['order_postdate_desc'], 'postdate asc' : lang['order_postdate_asc'], 'title desc' : lang['order_title_desc'], 'title asc' : lang['order_title_asc'], 'xfields_rub asc' : lang['order_xfields_rub_asc'], 'xfields_rub desc' : lang['order_xfields_rub_desc'] } }) }}

Не в сети

Подвал раздела

Работает на FluxBB