Допустим мы добавили в таблицу #__content новое поле, к примеру с ценой (price), создали отдельный шаблон вывода материалов в режиме блога templates/шаблон/html/com_content/category.catalog.xml, там же у нас уже есть отображение цены в описании материала режима блог шаблона каталога templates/шаблон/html/com_content/category/catalog_item.php и теперь осталось только сортировать по цене при создании пункта меню
Для этого идем в файл templates/шаблон/html/com_content/category.catalog.xml и примерно с строки 202 делаем так (можно и в языковые файлы вынести)
1 23 45 67 89 1011 1213 1415 1617 18 | <field name="orderby_sec" type="list" description="JGLOBAL_ARTICLE_ORDER_DESC" label="JGLOBAL_ARTICLE_ORDER_LABEL" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="aprice">Цена по возрастанию</option> <option value="raprice">Цена по убыванию</option> <option value="front">COM_CONTENT_FEATURED_ORDER</option> <option value="rdate">JGLOBAL_MOST_RECENT_FIRST</option> <option value="date">JGLOBAL_OLDEST_FIRST</option> <option value="alpha">JGLOBAL_TITLE_ALPHABETICAL</option> <option value="ralpha">JGLOBAL_TITLE_REVERSE_ALPHABETICAL</option> <option value="author">JGLOBAL_AUTHOR_ALPHABETICAL</option> <option value="rauthor">JGLOBAL_AUTHOR_REVERSE_ALPHABETICAL</option> <option value="hits">JGLOBAL_MOST_HITS</option> <option value="rhits">JGLOBAL_LEAST_HITS</option> <option value="order">JGLOBAL_ORDERING</option> </field> |
Далее нам нужен файл \components\com_content\helpers\query.php находим функцию orderbySecondary (строка 63) и добавляем кейсы
1 23 45 67 | case 'aprice' : $orderby = 'a.price';break; case 'raprice' : $orderby = 'a.price DESC';break; |
Если нам нужно добавить не только сортировку, но и фильтрацию по значению этого поля при создании ссылки в меню типа блог то можно почитать вот здесь Добавляем параметр фильтрации материалов в меню
Комментарии