0 Пользователей и 1 Гость просматривают эту тему.
  • 15 Ответов
  • 2258 Просмотров
*

rentony

  • Захожу иногда
  • 93
  • 0 / 0
в расширенном поиске игнорируются настройки поиска по пунктам Check-box, по всему остальному поиск идет, а по этим пунктам ничего, хоть ставишь галочку, хоть нет, показывает всё
подскажите с чем это может быть связанно, и если это стандартная проблема адсменеджера, можно ли это исправить?
« Последнее редактирование: 07.02.2012, 14:15:48 от rentony »
*

rentony

  • Захожу иногда
  • 93
  • 0 / 0
Re: не работает поиск Check Box (Single)
« Ответ #1 : 03.02.2012, 12:06:20 »
почитал по форуму, наткнулся на много записей что в стандартной сборке адсменеджера, не работает толком Check Box (Multiple), но про Silngle ни слова...
*

rentony

  • Захожу иногда
  • 93
  • 0 / 0
Re: не работает поиск Check Box (Single)
« Ответ #2 : 03.02.2012, 13:39:42 »
Проверил Multiple, тоже как то криво работает((
*

Alex89

  • Давно я тут
  • 555
  • 198 / 1
  • Joomlaman :)
надо обмозговать...
Увеличить посещаемость сайта помогут здесь - http://tinyurl.com/kpaprwy
Если помог, ткните "крестик" в репу!
*

rentony

  • Захожу иногда
  • 93
  • 0 / 0
уже второй день мозгую(( желательно починить Multiple конечно, т.к. это очень важная деталь AdsManager'a... он как то криво запрос поиска отправляет по ходу
*

Alex89

  • Давно я тут
  • 555
  • 198 / 1
  • Joomlaman :)
Убил сцуко столько времени, чтобы починить пока single checkbox, он сцуко такая ни в какую не хотел считывать состояние галочки (отмечена, не отмечена), всё время передавалась пустая строка...
и какого же сцуко было моё удивление когда залез в исходник страницы расширенного поиска - в теге name у checkbox'a вместо имени поля был его заголовок, вот бл... слов не хватает
Итак, открываем файлик \components\com_adsmanager\helpers\field.php ищем функцию showFieldSearch, в теле функции меняем строки
Код
case 'checkbox':
     if ($value == 1)
          echo "<input class='inputbox' type='checkbox' name='".$field->title."' value='1' checked='checked' />\n";
     else
          echo "<input class='inputbox' type='checkbox' name='".$field->title."' value='1' />\n";
     break;
на
Код
case 'checkbox':
     if ($value == 1)
          echo "<input class='inputbox' type='checkbox' name='".$field->name."' value='1' checked='checked' />\n";
     else
          echo "<input class='inputbox' type='checkbox' name='".$field->name."' value='1' />\n";
     break;
Открываем файлик \administrator\components\com_adsmanager\models\field.php, ищем функцию getSearchFieldsSql, в теле функции находим
Код
case 'checkbox':
меняем на
Код
case 'checkbox':
     $value = JRequest::getVar( $fsearch->name, "");
     if ($value==1) $search .= " AND a.$fsearch->name = ".$this->_db->Quote($value);
     else $search .= " AND a.$fsearch->name <> 1";
     break;
Всё, поиск по галкам работает, мультигалки завтра посмотрю
Увеличить посещаемость сайта помогут здесь - http://tinyurl.com/kpaprwy
Если помог, ткните "крестик" в репу!
*

rentony

  • Захожу иногда
  • 93
  • 0 / 0
хех) мда) мне вот интересно, вроде умные люди делаю адсменеджер, а такие глупые косяки оставляют)
*

rentony

  • Захожу иногда
  • 93
  • 0 / 0
мне вот это тоже странно показалось)
Код
case 'checkbox':
но в PHP не мастер еще, ну и подумал может ссылается это на нижнюю строку там...
*

Alex89

  • Давно я тут
  • 555
  • 198 / 1
  • Joomlaman :)
ну а с мультигалками дело обстоит сложнее, в зависимости от сайта можно сделать поиск с точным совпадением отмеченных значений и значений в БД либо с частичным совпадением... какой способ нужен Вам?
Увеличить посещаемость сайта помогут здесь - http://tinyurl.com/kpaprwy
Если помог, ткните "крестик" в репу!
*

rentony

  • Захожу иногда
  • 93
  • 0 / 0
с точным совпадением желательно
*

rentony

  • Захожу иногда
  • 93
  • 0 / 0
Alex89, поиск по Single работает так сейчас) - если не ставить ни какие галочки, то выводит объявления ТОЛЬКО без галочек, если есть галочки, то он их не выводит... по идеи должен выводить же все, покапаюсь сейчас сам, мож допру (в чем сильно сомневаюсь), но расчитываю на Вашу светлую голову)
*

rentony

  • Захожу иногда
  • 93
  • 0 / 0
всё) разобрался)
просто из файла "\administrator\components\com_adsmanager\models\field.php"
из функции getSearchFieldsSql удалил одну строчку, было так:
Код
case 'checkbox':
     $value = JRequest::getVar( $fsearch->name, "");
     if ($value==1) $search .= " AND a.$fsearch->name = ".$this->_db->Quote($value);
     else $search .= " AND a.$fsearch->name <> 1";
     break;
стало так:
Код
case 'checkbox':
     $value = JRequest::getVar( $fsearch->name, "");
     if ($value==1) $search .= " AND a.$fsearch->name = ".$this->_db->Quote($value);
     break;
*

Alex89

  • Давно я тут
  • 555
  • 198 / 1
  • Joomlaman :)
Такс, для мультигалок поменять нужно только поисковый запрос
в файле \administrator\components\com_adsmanager\models\field.php меняем в функции getSearchFieldsSql кусок кода с такого:
Код
case 'multicheckbox':
case 'multiselect':
$value = JRequest::getVar( $fsearch->name, array() );
for($i = 0,$nb=count($value);$i < $nb;$i++)
{
if ($i == 0)
$search .= " AND (";
$search .= "a.$fsearch->name = ".$this->_db->Quote(",".$value[$i].",");
if ($i < $nb - 1)
$search .= " OR ";
else
$search .= " )";
}
break;
на такой:
Код
case 'multicheckbox':
case 'multiselect':
$value = JRequest::getVar( $fsearch->name, array() );
for($i = 0,$nb=count($value);$i < $nb;$i++)
{
$val .= ','.$value[$i];
if ($i == $nb-1)
$val .= ",";
}
$search .= " AND a.$fsearch->name = ".$this->_db->Quote($val);
break;
Всё!  :D
Увеличить посещаемость сайта помогут здесь - http://tinyurl.com/kpaprwy
Если помог, ткните "крестик" в репу!
*

rentony

  • Захожу иногда
  • 93
  • 0 / 0
*

alexnpost

  • Новичок
  • 2
  • 0 / 0
Такс, для мультигалок поменять нужно только поисковый запрос
в файле \administrator\components\com_adsmanager\models\field.php меняем в функции getSearchFieldsSql кусок кода с такого:
Код
case 'multicheckbox':
case 'multiselect':
$value = JRequest::getVar( $fsearch->name, array() );
for($i = 0,$nb=count($value);$i < $nb;$i++)
{
if ($i == 0)
$search .= " AND (";
$search .= "a.$fsearch->name = ".$this->_db->Quote(",".$value[$i].",");
if ($i < $nb - 1)
$search .= " OR ";
else
$search .= " )";
}
break;
на такой:
Код
case 'multicheckbox':
case 'multiselect':
$value = JRequest::getVar( $fsearch->name, array() );
for($i = 0,$nb=count($value);$i < $nb;$i++)
{
$val .= ','.$value[$i];
if ($i == $nb-1)
$val .= ",";
}
$search .= " AND a.$fsearch->name = ".$this->_db->Quote($val);
break;
Всё!  :D
Привет, благодарю тебя за код опубликованный в посте http://joomlaforum.ru/index.php/topic,199831.0.html
по поиску по мультигалкам.
У меня сейчас с ними такая проблема: ты правильно сделал, что поиск находит при отмеченных сразу нескольких галочках.
Но есть такая штука. он ищет по всем отмеченным полям, а хотелось бы чтобы выводил и те объявления, где присутствует одна из галочек
Например у меня
Район 1
Район 2
Район 3
Есть варианты где выбран каждый из районов, а есть где допустим Выбран 1 и 2 районы одновременно
Когда я ставлю поиск в 1 и 2 районе - он мне выводит только объявление где стоят одновременно обе галки, а хотелось бы, чтобы и те где район 1 и район 2 отдельно стоят по-одиночки.
Я реально тебе заплачу за помощь! У меня существует реальный сайт http://cityyar.ru/ Я Пол года допиливал этот компонент
Теперь встало загвоздкой все на последнем шаге. очень прошу тебя помощи!
*

alexnpost

  • Новичок
  • 2
  • 0 / 0
Код
                case 'multicheckbox':
                case 'multiselect':
                    $value = JRequest::getVar( $fsearch->name,    array() );
                    for($i = 0,$nb=count($value);$i < $nb;$i++)
                    {
                        if ($i == 0)
                            $search .= " AND (";   
                        $search .= "a.$fsearch->name LIKE '%,$value[$i],%'";
                        if ($i < $nb - 1)
                            $search .= " OR ";
                        else
                            $search .= " )";   
                    }                   
                    break;   
Вот как надо исправить! Нашел решение! Простите, что побеспокоил! Все вставляйте этот код, предыдущий немного не коректен. Помощь больше не требуется!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Поиск по текстовым полям AdsManager

Автор Den85

Ответов: 4
Просмотров: 8437
Последний ответ 19.01.2019, 14:28:47
от Den85
AdsManager Расширенный поиск

Автор MakGrouman

Ответов: 1
Просмотров: 10110
Последний ответ 25.12.2018, 08:30:30
от MakGrouman
Выдает ошибку. 1064 You have an error in your SQL syntax; check the manu

Автор designerandrey

Ответов: 1
Просмотров: 1158
Последний ответ 10.10.2018, 20:13:20
от designerandrey
AdsManager поиск в категориях

Автор oleksyayko

Ответов: 4
Просмотров: 16187
Последний ответ 28.01.2018, 14:54:11
от alex79
Не работает ошибка 404

Автор Mick_20

Ответов: 14
Просмотров: 1352
Последний ответ 17.10.2017, 12:36:07
от Mick_20