чтоб работало я нашел такой выход:
правим файл /system/modules/weblog/mod.weblog.php
делаем поиск по строке (копи-пайстем строку вводим в поисковик):
else
{
$sql .= $FNS->sql_andor_string($terms, 'wd.field_id_'.$this->cfields[$PREFS->ini('site_id')][$field_name]).' ';
}
}
добавляем после:
elseif (strncmp($terms, '>', 1) == 0 || strncmp($terms, '<', 1) == 0 || strncmp($terms, '>=', 2) == 0 || strncmp($terms, '<=', 2) == 0)
{
/** ---------------------------------------
/** Терь мона и так: search:int=">500"
/** и так: search:int="<500"
/** и так: search:int=">500|<550"
/** ((( добавлено Олегом в сети - Denik ))) v0.1
/** ---------------------------------------*/
$exp = explode('|',$terms);
if( count($exp) > 0 )
{
foreach( $exp as $val )
{
if (strncmp($val, '>=', 2) == 0 || strncmp($val, '<=', 2) == 0)
$oper = substr($val,0,2); // Вернет <= | >=
else
$oper = substr($val,0,1); // Вернет < | >
$val = trim(substr($val, strlen($oper)));
if( $val != "" && ( $oper == '>' || $oper == '<' || $oper == '>=' || $oper == '<=' ) )
$sql .= 'AND ( '.'wd.field_id_'.$this->cfields[$PREFS->ini('site_id')][$field_name].' '.$oper.' '.intval($val).' AND wd.field_id_'.$this->cfields[$PREFS->ini('site_id')][$field_name].' != \'\' ) ';
}
}
else
{
if (strncmp($terms, '>=', 2) == 0 || strncmp($terms, '<=', 2) == 0)
$oper = substr($terms,0,2); // Вернет <= | >=
else
$oper = substr($terms,0,1); // Вернет < | >
$terms = trim(substr($terms, strlen($oper)));
if( $terms != "" && ( $oper == '>' || $oper == '<' || $oper == '>=' || $oper == '<=' ) )
$sql .= 'AND ( '.'wd.field_id_'.$this->cfields[$PREFS->ini('site_id')][$field_name].' '.$oper.' '.intval($val).' AND wd.field_id_'.$this->cfields[$PREFS->ini('site_id')][$field_name].' != \'\' ) ';
}
}
Копирайт не удаляем
Уточнения размещения внедряемого кода:
- код внедряется в функцию build_sql_query
- после каких строк я уже указал
- перед строками:
else
{
/** ---------------------------------------
/** "Contains" e.g.: search:body="pickle"
/** ---------------------------------------*/
будут вопросы - задавайте
а, да.. как юзать:
{exp:weblog:entries weblog="{my_weblog}" search:filed1=">=500" search:filed2="<=500" search:filed3=">500"}
двойное ограничение для одного и того же кастам филда:
{exp:weblog:entries weblog="{my_weblog}" search:filed=">=500|<1000"}