Views Contextual Range Filters

Главные вкладки

Аватар пользователя Zerbert Zerbert 11 марта 2016 в 15:08

Приветсвую всех!) Вы можете подсказать как использовать Contextual Range Filter. Я его включил, создал контекстный фильтр, на странице настроек поставил галочку напротив ранее созданного фильтра, а вот как передать ему занчения диапазона? Написано, что можно через url, но я не могу понять как в представлении преобразовать url к нужному виду, чтобы можно было автоматом подхватить значения из него.
У меня есть раскрытая форма фильтрации. Один из пунктов фильтрации позволяет указать диапазон для числового поля. Когда я нажимаю кнопку поиск, то методом get передаются все параметры необходимые, но не в том виде, в котором нужно(arg1--arg2), а через знак &. Я могу их получить без проблем, но как передать эти значения в Contextual Range Filter, я не могу понять. Подскажите пожалуйста

Лучший ответ

Аватар пользователя Zerbert Zerbert 14 марта 2016 в 14:42

Решил вопрос сам. Использовал Specify validation criteria в контекстных фильтрах, подраздел код php.

<?php
$url 
$_SERVER['REQUEST_URI'];
    if(
$url != '/catalogos'){
        
$count substr_count($url,'field_ploshad_value');
        if(
$count != 0){
            
$po strpos($url,'field_ploshad_value');
            
$url substr_replace($url,'',0,$po);
            
$po strpos($url,'&');
            
$url1 substr($url,0,$po);
            
$url substr_replace($url,'',0,$po+1);
            
$po strpos($url1,'=');
            
$min1 substr($url1,$po+1);
            
$po strpos($url,'=');
            
$max1 substr($url,$po+1);
            
$handler->argument $min1."--".$max1;
            return 
true;
        } 
        else{
            
$handler->argument 'all';
            return 
true;
        }
    }else{
        
$handler->argument 'all';
        return 
true;
    }
?>

Может кому нибудь пригодится

Комментарии

Аватар пользователя Zerbert Zerbert 14 марта 2016 в 14:42

Решил вопрос сам. Использовал Specify validation criteria в контекстных фильтрах, подраздел код php.

<?php
$url 
$_SERVER['REQUEST_URI'];
    if(
$url != '/catalogos'){
        
$count substr_count($url,'field_ploshad_value');
        if(
$count != 0){
            
$po strpos($url,'field_ploshad_value');
            
$url substr_replace($url,'',0,$po);
            
$po strpos($url,'&');
            
$url1 substr($url,0,$po);
            
$url substr_replace($url,'',0,$po+1);
            
$po strpos($url1,'=');
            
$min1 substr($url1,$po+1);
            
$po strpos($url,'=');
            
$max1 substr($url,$po+1);
            
$handler->argument $min1."--".$max1;
            return 
true;
        } 
        else{
            
$handler->argument 'all';
            return 
true;
        }
    }else{
        
$handler->argument 'all';
        return 
true;
    }
?>

Может кому нибудь пригодится