Тикет написан из: | |
---|---|
IP-адрес: | |
Устройство: | |
Браузер: | |
User-Agent: | |
Средние траты (3 мес.): | |
Часовой пояс: |
|
Приоритетная проверка позиций: |
Фильтры используются для получения, редактирования или удаления определенных объектов.
id используется для получения, редактирования или удаления конкретного объекта.
filters представляет собой массив, содержащий объекты фильтров fieldFilter.
Фильтр имеет следующие характеристики:
{"filters":[{"name": /* Имя поля (строка) */, "operator": /* Оператор сравнения (строка) */, "values":[ /* Значения фильтра */ ]}, /*...*/]}
fieldFilter.values может содержать числа, строки или имена полей
Оператор | Описание сравнения | Функция |
---|---|---|
EQUALS | равно указанному значению | = |
NOT_EQUALS | не равно указанному значению | != |
IN | есть в указанных значениях | IN() |
NOT_IN | нет в указанных значениях | NOT IN() |
GREATER_THAN | больше, чем указанное значение | > |
GREATER_THAN_EQUALS | больше или равно указанному значению | >= |
LESS_THAN | меньше, чем указанное значение | < |
LESS_THAN_EQUALS | меньше или равно указанному значению | <= |
BETWEEN |
в промежутке между значениями 1 и 2. Последовательно можно перечислять несолько промежутков:values = [10,20,50,100]; // 10..20 или 50..100
|
BETWEEN |
STARTS_WITH | начинается с указанного значения | LIKE '%_' |
CONTAINS | содержит подстроку с указанным значением | LIKE '%_%' |
DOES_NOT_CONTAIN | не содержит подстроку с указанным значением | NOT LIKE '%_%' |
REGEXP | удовлетворяет указанному регулярному выражению | REGEXP() |
NOT_REGEXP | не удовлетворяет указанному регулярному выражению | NOT REGEXP() |
IS_NULL | поле установлено в NULL | IS NULL |
IS_NOT_NULL | поле не установлено в NULL | IS NOT NULL |
* Регулярные выражения на wiki, пример записи:
^\w+$
Обратите внимание, если в запросе передан параметр id, он будет добавлен к фильтрам в виде:
{"name":"id", "operator":"EQUALS", "values":["{Значение_параметра_id}"]}
Таким образом, параметр id есть краткая запись фильтра по id.
Этот параметр рекомендуется использовать при редактировании одного объекта.
Для примера получим список ключевых слов, добавленных в ядро проекта NN, у которых установлен тег 2 или 3.
POST /v2/json/get/keywords_2/keywords/
{"project_id": /* id проекта (число) */,"fields":["id","name","tags"]}
{"result":[{"id":"80764821","name":"тестовый запрос 1","tags":"2"},{"id":"80764822","name":"тестовый запрос 2","tags":"2"},{"id":"80764823","name":"тестовый запрос 3","tags":"3"},{"id":"80764824","name":"тестовый запрос 4","tags":"4"},{"id":"80764825","name":"тестовый запрос 5","tags":"5"}]}
POST /v2/json/get/keywords_2/keywords/
{"project_id": /* id проекта (число) */,"fields":["id","name","tags"],"filters":[{"name":"tags","operator":"IN","values":[2,3]}]}
{"result":[{"id":"80764821","name":"тестовый запрос 1","tags":"2"},{"id":"80764822","name":"тестовый запрос 2","tags":"2"},{"id":"80764823","name":"тестовый запрос 3","tags":"3"}]}
POST /v2/json/get/keywords_2/keywords/
{"project_id": /* id проекта (число) */,"fields":["id","name","tags"],"id":80764821}
{"result":[{"id":"80764821","name":"тестовый запрос 1","tags":"2"}]}
Для примера получим список ключевых слов, добавленных в ядро проекта NN, у которых установлен тег 2 или 3.
<?php
$projectId = '%NN%'; // ID of your project
$TVSession = new TV\Session();
$selectorKeywords = new TV\Pen($TVSession, 'get', 'keywords_2', 'keywords');
$selectorKeywords->setFields(['id', 'name', 'tags']);
$selectorKeywords->setData(['project_id' => $project_id]);
$selectorKeywords->setFilters([
TV\Fields::genFilterData('tags', 'IN', [2, 3])
]);
$page = $selectorKeywords->exec();
if(is_null($page->getResult())) return var_dump($page->getErrors());
// $page - array of keywords
foreach($page->getResult() as $resultItem){
var_dump($resultItem);
}