-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
12a7253
commit 5f32ab1
Showing
2 changed files
with
179 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,4 +6,5 @@ update.bat | |
*/Thumbs.db | ||
assets/lunr.js/ | ||
assets/bootstrap/ | ||
assets/jquery/ | ||
assets/jquery/ | ||
Thumbs.db |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,177 @@ | ||
--- | ||
layout: doc | ||
title: "Создание пре-фильтровых ссылок" | ||
date: 2013-01-01 12:30:30 | ||
tags: filters setup | ||
intro: "Создание ссылок для автоматической установки фильтров к списку статей." | ||
--- | ||
|
||
Предположим, Вы хотите создать ссылку в меню (или в любом другом месте), которая автоматически будет устанавливать необходимые фильтры для списка статей. Например: _События на следующие 14 дней на расстоянии 20 миль от Лондона_. Вы можете легко это сделать, используя новый интерфейс системы фильтров в Cobalt. | ||
|
||
## 1. Создание URL | ||
|
||
После драматической перекодировки всего механизма фильтрации, мы создали интерфейс для системы фильтров. И теперь Вы можете "общаться" с системой фильтров при помощи ссылок специального формата. | ||
|
||
Формат ссылки состоит из постоянной части и набора параметров. | ||
|
||
Постоянная часть ссылки выглядит так: | ||
|
||
http://www.yoursite.com/index.php?option=com_cobalt&task=records.filter&... | ||
|
||
В таблице ниже перечислены все параметры, которые Вы можете добавить к постоянной части ссылки | ||
|
||
Параметр | Обязательный | Описание | ||
------------------|-----------|------ | ||
section_id | ![Yes][1] | ID раздела | ||
Itemid | ![Yes][1] | Itemid пункта меню. Пожалуйста устанавливайте этот параметр таким, каким Вы его установили в параметрах раздела. | ||
cat_id | ![No][2] | ID категории (если необходимо фильтровать только по одной категории) | ||
filter_name | ![Yes][1] | Массив имен фильтров. Объясняется позже. | ||
filter_val | ![Yes][1] | Массив значений фильтров. Объясняется позже. | ||
|
||
[1]: /assets/img/tick.png | ||
[2]: /assets/img/cross.png | ||
|
||
После нажатия на ссылку необходимые фильтры будут установлены и пользователь будет перенаправлен на список статей со стандартным URL. Вот почему необходимы параметры section_id, itemid and cat_id- чтобы перенаправить пользователя на правильную страницу. Пожалуйста, не забывайте корректно устанавливать эти параметры. | ||
|
||
Каждая ссылка добавляет новые фильтры к уже существующим. Т.о. образом можно создавать каскад фильтров. Если перед установкой нового фильтра необходимо сбросить предварительно примененные фильтры, необходимо добавить в URL параметр `&clean=1`, как показано на примере | ||
|
||
http://www.com/index.php?option=com_cobalt&task=records.filter&clean=1&... | ||
|
||
## 2. Установка фильтров | ||
|
||
Вы можете установить одновременно любое количество фильтров, поэтому параметры `filter_val` и `filter_name` являются массивами. Например: | ||
|
||
&filter_name[0]=filter_tag&filter_val[0]=2 | ||
|
||
В этом примере показываются все статьи с тэгом, у которого ID 2. | ||
|
||
### 2.1. Стандартные фильтры | ||
|
||
В таблице ниже приведен список доступных стандартных имен фильтров `filter_name` и их значений `filter_val`. | ||
|
||
Имя фильтра | Значение фильтра | Описание | ||
--------------|--------------|------------- | ||
filter_tpl | default | Имя шаблона списка статей. If you want to use settings of the template you have to include filter configuration key. Что-то типа `default.b604f5fb1ca89b8be2706881a530680f`. Как получить этот ключ? Just look temmplate select source code in section edit page. | ||
filter_cat | 2 | ID категории | ||
filter_user | 42 | ID пользователя | ||
filter_tag | 2 | ID тэга | ||
filter_type | 1 | ID типа контента | ||
filter_search | what is life | Строка поиска | ||
|
||
Ниже приведен пример. Запись ссылки должна быть в одну строку, я форматировал ее для более удобной читаемости. | ||
|
||
http://www.com/index.php | ||
?option=com_cobalt | ||
&task=records.filter | ||
§ion_id=2 | ||
&Itemid=126 | ||
&filter_name[0]=filter_type | ||
&filter_val[0]=2 | ||
&filter_name[1]=filter_user | ||
&filter_val[1]=42 | ||
|
||
В этом примере будут показаны все записи пользователя Супер Администратор (с ID 42) и типом контента ID 2. | ||
|
||
### 2.2. Фильтры по полям | ||
|
||
Сначала Вы должны создать имя фильтра. Оно состоит из префикса `filter_` и ключа поля. Т.о. имя фильтра будет похоже на следующее | ||
|
||
&filter_name[0]=filter_k2hgsd5FdK79H6Gfdt6hxnsgF55fd | ||
|
||
Теперь Вы должны установить значение фильтра. Это действие может быть различным для каждого конкретного поля, но в основном используются два типа. Простое значение может выглядеть так | ||
|
||
&filter_val[0]=value%201 | ||
|
||
Значение фильтра должно быть в URL кодировке. Для перевода значения в URL кодировку можно воспользоваться [следующим сервисом](http://www.url-encode-decode.com/). Если Вы посмотрите, значение `%20` соответствует пробелу. | ||
|
||
Значение фильтра может быть массивом | ||
|
||
&filter_val[0][]=value%201&filter_val[0][]=value%202 | ||
|
||
В этом случае будут выбраны все записи, содержащие `Value 1` ИЛИ `Value 2` | ||
|
||
Для некоторых полей необходимо устанавливать массив ключей. | ||
Например, координаты для поля Geo | ||
|
||
&filter_val[0][lat]=41.25458745&filter_val[0][lng]=21.2654789 | ||
|
||
или диапазон дат для поля DateTime. Здесь первое значение соответствует начальной дате (data _from_), а второе- конечной дате (date _to_). | ||
|
||
filter_val[0][range]=2014-09-01,2014-09-30 | ||
|
||
Для поля Boolean значениями фильтра будут `true` или `false` | ||
|
||
&filter_val[0]=true | ||
|
||
Немного сложнее устанавливать значения фильтра для поля Multi Level Select. Например, запись значения фильтра может выглядеть так | ||
|
||
filter_val[0][1]=5 | ||
|
||
здесь | ||
`[0]`- индекс значения первого фильтра, | ||
`[1]`- индекс массива, соответствующий второму уровню (т.к. нумерация уровней начинается с 0) , | ||
`5`- ID самого значения фильтра. Это значение можно посмотреть ............ ГДЕ? | ||
|
||
## 3. Сброс фильтров. | ||
|
||
Иногда необходимо сбросить все фильтры или один конкретный фильтр. | ||
|
||
###3.1. Сброс всех фильтров | ||
|
||
index.php?option=com_cobalt | ||
&task=records.cleanall | ||
§ion_id=2 | ||
&Itemid=123 | ||
|
||
###3.2. Сброс конкретного фильтра | ||
|
||
index.php?option=com_cobalt | ||
&task=records.clean | ||
&clean[filter_k58596481bc7070e4adecd4f2e29569de]=1 | ||
§ion_id=2 | ||
&Itemid=123 | ||
|
||
В таблице приведен список возможных параметров для сброса фильтров | ||
|
||
Тип фильтра | Описание | ||
------------------|------------ | ||
`filter_search` | Сброс фильтра по текстовому поиску | ||
`filter_type` | Сброс фильтра по типу контента | ||
`filter_tag` | Сброс фильтра по тэгу | ||
`filter_user` | Сброс фильтра по пользователю | ||
`filter_alpha` | Сброс фильтра по альфа-индексу | ||
`filter_cat` | Сброс фильтра по категории | ||
`filter_[key]` | Сброс фильтра по полю. Вы должны изменить `[key]` на ключ поля, как показано в предыдущем примере. | ||
|
||
Вы можете сбросить несколько фильтров одновременно: | ||
|
||
index.php?option=com_cobalt | ||
&task=records.clean | ||
&clean[filter_k58596481bc7070e4adecd4f2e29569de]=1 | ||
&clean[filter_type]=1 | ||
&clean[filter_alpha]=1 | ||
§ion_id=2 | ||
&Itemid=123 | ||
|
||
## Вопрос: Что такое ключ поля? | ||
|
||
_Ключ поля_ является частью поддержки нескольких типов контента в шаблонах. Ключ поля строится как MD5 из типа поля и его метки. | ||
|
||
$field_key = 'k'.md5($field->label.'-'.$field->field_type); | ||
|
||
Если метка поля _Year_ и тип поля _digits_, то | ||
|
||
$field_key = 'k'.md5('Year-digits'); | ||
|
||
Вы можете посмотреть ключ поля в базе данных в столбце `key` таблицы `jos_js_res_fields`. | ||
|
||
![Field key][im2] | ||
|
||
или в столбце Ключ в менеджере полей **(3)**. | ||
|
||
![Field key][im3] | ||
|
||
[im2]: /assets/img/screenshots/fieldkey.png | ||
[im3]: /assets/img/screenshots/typeandid.png | ||
|
||
|