Сортировка в модуле последние материалы с выбором через админ-панель

808
как известно многим - модуль последние материалы выводит список статей сортируя их по мере создания по убыванию - то есть первыми в списке всегда самые последние статьи раздела. что бы вы не меняли в статье (дату, положение и тд), но ничего не помогает сменить положение статьи в этом списке. на форуме поднималась такая тема - как сменить??? я отписался что мне удалось сменить и теперь у меня сортируется по дате. в связи с тем, что уже несколько человек долбанулись в личку с этим вопросом - отпишусь тут. но есть некоторое дополнение - теперь я сделал у себя возможность выбора метода сортировки в админке
и так приступим
открываем фаил
/admin/modules/mod_latest/backend.xml
меняем его содержимое на следующий код (можете полностью, можете дописать чего не хватает)
Код PHP:
<?xml version="1.0" encoding="windows-1251"?>
<backend>    
    <module>
        <id>mod_latest</id>
        <title>Последние материалы</title>
    </module>
    <params>
        <param type="number" name="newscount" title="Количество материалов" units="шт." default="5" />
        <param type="flag" name="showdesc" title="Показывать анонсы" default="on" />
        <param type="flag" name="showdate" title="Показывать даты и авторов" default="on" />
        <param type="flag" name="showcom" title="Показывать число комментариев" default="on" />
        <param type="flag" name="showrss" title="Показывать ссылку на RSS" default="on" />
        <param type="list_db" name="cat_id" title="Материалы из раздела" src="cms_category" src_title="title" src_value="id" tree="1" />
        <param type="flag" name="subs" title="Вместе с подразделами" default="off" />
	<param type="flag" name="is_pag" title="Использовать пагинацию" default="on" />
	<param type="list" name="orderby" title="Метод сортировки ">
		<option value="id" title="По порядку создания" />
		<option value="ordering" title="По порядку " />
		<option value="title" title="По алфавиту" />
		<option value="pubdate" title="По дате" />
		<option value="hits" title="По просмотрам" />
        </param>
	<param type="list" name="orderto" title="Сортировать " >
		<option value="desc" title="по убыванию" />
		<option value="asc" title="по возрастанию" />
        </param>
    </params>
</backend>
сохраняете
далее открываете
\modules\mod_latest\module.php
находим следующую строку (примерно 56)
Код PHP:
ORDER BY con.id DESC
и заменяем на
Код PHP:
				ORDER BY con.".$cfg['orderby']." ".$cfg['orderto']."
сохраняем
чистим кэш
важный пункт заходим в админку, модуль последние материалы, выбираем метод и тип сортировки и нажимаем сохранить (если этого не сделать будет или ошибка, или написано что нет материалов для отображения, в зависимости от настроек сервера)
небольшие пояснения
По порядку создания - думаю понятно
по порядку - это если стрелочками вверх вниз сортировать
По алфавиту - по названию статей в соответствии с алфавитом
по дате - по дате соответственно
по просмотрам - по количеству просмотров

ps - хак выкладываю бесплатно, но не против благодарностей - если что, реквизиты на стене  zst
Свои иконки форума (часть 3 - изменение иконок подфорумов) | список пользователей в 3 колонки, 4 строки с доп. полями
Комментарии (5)
Максим Шорин 22 сентября 2011 в 21:38 +2
Cпасибо, полезно.
Можно еще было бы дополнительный модуль написать что бы в код не лезть joke
Sergey Platonov 23 сентября 2011 в 00:42 +1
теоретически можно всё, если надо - могу отдельным модулем написать
Sergey Platonov 23 сентября 2011 в 00:45 +1
я если и делаю какие то хаки - то пытаюсь их сделать с управлением через админку, протестирую, а потом только выкладываю тут
Олег с клещами 25 сентября 2011 в 11:11 0
А как такое сделать для модуля последних записей УК? Может кто подскажет......
Sergey Platonov 27 сентября 2011 в 14:04 0
компонент ук не использую, поэтому ничё сказать не могу... очевидно по аналогии