mFilter2 фильтрация tv
Доброго времени суток подскажите такой момент у ресурса есть tv art по этому полю делаю фильтрацию с помощью mFilter2 все работает но мне нужно что бы при вводе в поле art допустим 2020 находило ресурсы у которых art 2020 и 2020_1, 2020_2 и тд.
Поблагодарить автора
Отправить деньги
Комментарии: 3
Фильтрация как правило предполагает точное совпадения значений, а тебе нужен поиск.
А через расширение класса mse2FiltersHandler не смогу сделать? Нашел вот такую статью ilyaut.ru/reposts/mfilter2-principle-or-change-to-and/
Так делал на одном проекте, нужно было добавить поиск по полю pagetitle. Думаю, что можно и на TV переделать.
вызывается так:
Чанк фильтра:
Но тут момент: если много ресурсов, то может начать тормозить. Так что нужно тестить. На том проекте ресуросов в пределах 500-700 было, фильтровало норм.
<?php
class myCustomFilter extends mse2FiltersHandler {
public function buildPagetitleFilter(array $values, $name = '') {
$tmp = array_keys($values);
if (empty($values) || (count($tmp) < 2 && empty($this->config['showEmptyFilters']))) {
return array();
}
return array(
array(
'value' => strip_tags($_GET[$name]),
'type' => 'string',
'resources' => $ids,
'name' => $name,
)
);
}
public function filterPagetitle(array $requested, array $values, array $ids, $check_recurs = false) {
$matched = array();
$pagetitle = trim(implode(',', $requested));
$tmp = array_flip($ids);
foreach ($values as $key => $resources) {
if (strpos(mb_strtolower($key), mb_strtolower($pagetitle)) !== false) {
foreach ($resources as $id) {
if (isset($tmp[$id])) {
$matched[] = $id;
}
}
}
}
return $matched;
}
}
вызывается так:
'filters' => 'resource|pagetitle:pagetitle',
Чанк фильтра:
{var $key = $table ~ $delimeter ~ $filter}
<input type="text" placeholder="Введите название..." value="{$value}" name="{$filter_key}" id="mse2_{$key}_{$idx}" class="pagetitle-input" autocomplete="off">
==========Но тут момент: если много ресурсов, то может начать тормозить. Так что нужно тестить. На том проекте ресуросов в пределах 500-700 было, фильтровало норм.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.