2014 02 июля

Joomla 2.5 Добавляем новую сортировку материалов в меню

Допустим мы добавили в таблицу #__content новое поле, к примеру с ценой (price), создали отдельный шаблон вывода материалов в режиме блога templates/шаблон/html/com_content/category.catalog.xml, там же у нас уже есть отображение цены в описании материала режима блог шаблона каталога templates/шаблон/html/com_content/category/catalog_item.php и теперь осталось только сортировать по цене при создании пункта меню

addOrderingMenuBlog

Для этого идем в файл 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;
На этом все )

Если нам нужно добавить не только сортировку, но и фильтрацию по значению этого поля при создании ссылки в меню типа блог то можно почитать вот здесь Добавляем параметр фильтрации материалов в меню

Комментарии

Оставить коммент

Защитный код
Обновить