doma 22 Жалоба Опубликовано: February 24, 2018 35 минут назад, 72realty сказал: У меня работает. В фильтре поиска: <div class="col-md-4"> <label>Улица или слово:</label> <input name="srch_word" size="10" type="text" value="{$srch_word}" placeholder="Поиск по улице или слову из объявления"> </div> В шаблоне в папке main-template_search.php: if(isset($params['srch_word'])){ $where_array[]= '('.DB_PREFIX.'_data.text LIKE \'%' . $params['srch_word'] . '%\''.' OR '.DB_PREFIX.'_data.address LIKE \'%' . $params['srch_word'] . '%\''.' OR '.DB_PREFIX.'_data.street_id in (select street_id from '.DB_PREFIX.'_street where name like \'%' . $params['srch_word'] . '%\') OR '.DB_PREFIX.'_data.complex_id in (select complex_id from '.DB_PREFIX.'_complex where name like \'%' . $params['srch_word'] . '%\') ) '; } Посмотреть как работает можно здесь В шаблоне реалия такое работает ? вопрос к разработчикам. И попутно спросим в посте написан файл main-template_search.php в шаблоне Реалия такой имеется ? и если есть то где ? и правильно ли в него вносит такие правки? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
TopRaN 235 Жалоба Опубликовано: March 2, 2018 В 25.02.2018 в 00:30, doma сказал: В шаблоне реалия такое работает ? вопрос к разработчикам. И попутно спросим в посте написан файл main-template_search.php в шаблоне Реалия такой имеется ? и если есть то где ? и правильно ли в него вносит такие правки? по-умолчанию данного файла нет. Его создают, если нужно в поиск вывести и обработать дополнительные поля . Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
doma 22 Жалоба Опубликовано: March 2, 2018 Только что, TopRaN сказал: по-умолчанию данного файла нет. Его создают, если нужно в поиск вывести и обработать дополнительные поля . а можно ли сделать поиск по пользователю? причем если например пользователей всего 500 из них например 80 агентств остальные от пользователей. и к примеру в выпадающем списке был бы список всех этих агентств и одно поле "от пользователя" куда объединяться все остальные объявления от частников если это сложно - то можно как вариант сделать поиск по конкретному пользователю -плохо только то что в выпадающем списке будет например 500 и более пользователей Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
TopRaN 235 Жалоба Опубликовано: March 2, 2018 4 минуты назад, doma сказал: а можно ли сделать поиск по пользователю? причем если например пользователей всего 500 из них например 80 агентств остальные от пользователей. и к примеру в выпадающем списке был бы список всех этих агентств и одно поле "от пользователя" куда объединяться все остальные объявления от частнико если это сложно - то можно как вариант сделать поиск по конкретному пользователю -плохо только то что в выпадающем списке будет например 500 и более пользователей Такой поиск (по пользователю сделать можно) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
v19777 1 Жалоба Опубликовано: March 29, 2018 Всем доброе время суток. Есть вопрос по форме поиска. Так как есть в разных регионах населенные пункты с одинаковыми названиями. Как реализовать так чтоб при выборе региона можно было выбрать населенные пункты только этого региона? Честно говоря, думал, что в стандартной форме поиска данная функция была реализована. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
TopRaN 235 Жалоба Опубликовано: March 30, 2018 Наберите в поиске "связанные элементы", "linken","depend" Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Chernetskiy 469 Жалоба Опубликовано: March 30, 2018 12 часа назад, v19777 сказал: Всем доброе время суток. Есть вопрос по форме поиска. Так как есть в разных регионах населенные пункты с одинаковыми названиями. Как реализовать так чтоб при выборе региона можно было выбрать населенные пункты только этого региона? Честно говоря, думал, что в стандартной форме поиска данная функция была реализована. У справочников изначально существует подчиненность - Страна-Регион-Город-Улица. Вы можете в эту цепочку всключить Районы (города) и переподчинить Улицы от городов к Районам (указывается в Настройках). Если вы загрузили справочник городов без привязки их к регионам, то такие города будут общими для всех регионов. Редактируйте свои справочники. Посоветую от дефолтной схемы перейти на "Связанные элементы", т.к. наверняка вам понадобится добавить Районы (областные) и населенные пункты подключить к этому справочнику а уже его к Регионам. Связанные элементы позволят вам подключать справочники в подчиненность по своему усмотрению, хоть Страны к Улицам, хоть Регионы к Шоссе и т.п. 1 v19777 reacted to this Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
metrpro 42 Жалоба Опубликовано: August 28, 2018 В 09.01.2018 в 21:24, abushyk сказал: Я бы посоветовал не использовать параметр с именем srch_word для поиска по тексту. Параметр с таким же именем обрабатывается системой и могут быть нестыковки в результатах. Добрый день. После установки ряда переменных в template_search простой заход в категорию topic вываливает тольк те объявления, что перед этим проходили фильтр. Скажем, в поиске по кастомной boolean-переменной forChildren=1 выходили 3 объявления. Все вроде ок, только теперь, заходя в топик /sanatorii/ вместо 8 объявлений вываливаются те же 3. В чем проблема? UPD: эта фигня теперь даже в админке такая! Только объявления с установленным параметром forChildren=1! Хэлп! Вот template_search: <?php class Template_Search extends SiteBill { public function getParams(){ $params=array(); if(''!==$this->getRequestValue('situated')){$params['situated'] = (int)$this->getRequestValue('situated');} if(NULL!==$this->getRequestValue('forChildren')){$params['forChildren'] = 1;} if(NULL!==$this->getRequestValue('forKids')){$params['forKids'] = 1;} if(NULL!==$this->getRequestValue('forYouth')){$params['forYouth'] = 1;} if(NULL!==$this->getRequestValue('forAdult')){$params['forAdult'] = 1;} if(NULL!==$this->getRequestValue('forOld')){$params['forOld'] = 1;} return $params; } public function run(){ $where_array=array(); $params=$this->getParams(); require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/model/model.php'); $data_model = new Data_Model(); $data_model_array = $data_model->get_kvartira_model(false); $data_model_array = $data_model_array['data']; if(isset($params['situated']) && isset($data_model_array['situated'])){$where_array[]=DB_PREFIX.'_data.situated='.$params['situated'];} if(isset($params['forChildren']) && isset($data_model_array['forChildren'])){$where_array[]=DB_PREFIX.'_data.forChildren=1';} if(isset($params['forKids']) && isset($data_model_array['forKids'])){$where_array[]=DB_PREFIX.'_data.forKids=1';} if(isset($params['forYouth']) && isset($data_model_array['forYouth'])){$where_array[]=DB_PREFIX.'_data.forYouth=1';} if(isset($params['forAdult']) && isset($data_model_array['forAdult'])){$where_array[]=DB_PREFIX.'_data.forAdult=1';} if(isset($params['forOld']) && isset($data_model_array['forOld'])){$where_array[]=DB_PREFIX.'_data.forOld=1';} return array( 'where'=>$where_array, 'params'=>$params ); } } Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: August 28, 2018 if(NULL!==$this->getRequestValue('forChildren')) а если использовать более явную проверку (так как это чекбокс, то можно проверять четко по его значению) ----> if(NULL!==$this->getRequestValue('forChildren') && 1===intval($this->getRequestValue('forChildren'))) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
metrpro 42 Жалоба Опубликовано: August 28, 2018 19 минут назад, abushyk сказал: if(NULL!==$this->getRequestValue('forChildren')) а если использовать более явную проверку (так как это чекбокс, то можно проверять четко по его значению) ----> if(NULL!==$this->getRequestValue('forChildren') && 1===intval($this->getRequestValue('forChildren'))) Что это изменит? Архитектура принципиально же не поменяется. Я вообще удалял из template_search эту проверку - ПОЛНОСТЬЮ - по этому параметру check forChildren - и все равно у меня везде, включая админку, вываливаются только объявления с этим параметром. Где-то не чистится кэш - хотя я вручную подчищал папку cache/compile/ - в этом вот проблема. Может где-то доступы не установлены на 777? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: August 28, 2018 Кеширование запросов в коде есть. Но я не помню включается ли оно автоматически. Посмотрите Настройки - Общее состояние конфигины "Включить кэширование SQL-запросов". Если она установлена в 1, поменяйте на 0 и тогда гляньте, продолжает ли подфильтровывать с этими параметрами. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
metrpro 42 Жалоба Опубликовано: August 28, 2018 3 минуты назад, abushyk сказал: Кеширование запросов в коде есть. Но я не помню включается ли оно автоматически. Посмотрите Настройки - Общее состояние конфигины "Включить кэширование SQL-запросов". Если она установлена в 1, поменяйте на 0 и тогда гляньте, продолжает ли подфильтровывать с этими параметрами. Кэширование выключено, время кэша, кстати, все равно всего 60 сек Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: August 28, 2018 а Настройки - Общее - Разрешить поиск по тэгам во фронтенде (allow_tags_search_frontend) - включена? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
metrpro 42 Жалоба Опубликовано: August 28, 2018 1 минуту назад, abushyk сказал: а Настройки - Общее - Разрешить поиск по тэгам во фронтенде (allow_tags_search_frontend) - включена? Была выключена Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: August 28, 2018 Давайте тогда в ПМ с адресом сайта и фтп. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
metrpro 42 Жалоба Опубликовано: August 29, 2018 В 28.08.2018 в 12:08, abushyk сказал: Давайте тогда в ПМ с адресом сайта и фтп. Короче, помощь больше не нужна - систему подвешивало что-то из следующего в tempplate_: if(''!==$this->getRequestValue('situated')){$params['situated'] = (int)$this->getRequestValue('situated');} ... if(isset($params['situated']) && isset($data_model_array['situated'])){$where_array[]=DB_PREFIX.'_data.situated='.$params['situated'];} Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
doma 22 Жалоба Опубликовано: August 29, 2018 4 часа назад, metrpro сказал: Короче, помощь больше не нужна - систему подвешивало что-то из следующего в tempplate_: if(''!==$this->getRequestValue('situated')){$params['situated'] = (int)$this->getRequestValue('situated');} ... if(isset($params['situated']) && isset($data_model_array['situated'])){$where_array[]=DB_PREFIX.'_data.situated='.$params['situated'];} а что за параметры поиска это ? и где применяется : Можно ссылку ? И где можно посмотреть ? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
metrpro 42 Жалоба Опубликовано: August 30, 2018 5 часов назад, doma сказал: а что за параметры поиска это ? и где применяется : Можно ссылку ? И где можно посмотреть ? Читайте тему, все ж написано Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
doma 22 Жалоба Опубликовано: August 30, 2018 7 часов назад, metrpro сказал: Читайте тему, все ж написано спрашивалось про параметры 'situated'forChildren, forKids'forYouth'forAdult''forOld' это же явно лично вами добавленные параметры. вот и спрашивали где такие параметры вы решили применять, наверное это отображается при заведении объявления, а так же при поиске. Вот и спросили где у вас на сайте это можно посмотреть -можно ссылку вличку отправить Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
doma 22 Жалоба Опубликовано: November 1, 2018 В 18.06.2017 в 23:10, doma сказал: ок. а тогда может как то грамотно создать свои tpl файлы и ссылаться на них? в них будет просто форма, а форма будет формировать нужный список параметров? В 02.08.2017 в 15:57, doma сказал: и еще вопрос -может сделать "разумные" - самодельные ручные формы поиска для удобства? сделав их в виде файлов poisk1.tpl poisk2.tpl poisk3.tpl poisk4.tpl poisk5.tpl и потом когда идет цикл для перебора -проверять их по id? и если такой id имеется то просто сделать inclide="poisk5.tpl" например ? а если такого id нет то вывести автоформируемую. так как ручная форма может дать больше стилистики и форм оформления. Вопрос будут ли они все корректно работать и искать если сделать их inclide ? вывод формы идет выводом переменной {$ftdata.body} а где эта переменная находится -где ее посмотреть ? вернусь к вопросам так как и не было ответов, подскажите как создать свою собственную форму, дело в том , что там идут табы и если использовать в табах разделы-города-улицы то ничего не получается и выводится Select an Option так как видимо эти параметры уже подтягиваются и используются в другой форме. Фактически задача стоит так сделать табы по нескольким формах поиска Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mykvartira 4 Жалоба Опубликовано: February 16, 2019 Так и не смог найти ответа по собственнику (группам) Данный код не сработал <div class="controls"> <input class="checkbox" type="checkbox" name="group" value="3" {if $smarty.request.group=id3} checked="checked"{/if}/> <label class="ch">Частник</label> </div> Подскажите как правильно сделать чек бокс или лучше селект Частник, агент Может у кого-то уже реализовано, поделитесь Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
vda 0 Жалоба Опубликовано: April 8, 2019 В 08.02.2017 в 06:59, rumantic сказал: <?php class Template_Search extends SiteBill { public function getParams() { //Тут определяем задан ли параметр для нашего справочника (select_by_query) в форме поиска if (0 !== intval($this->getRequestValue('spravochnik_id'))) { $params['spravochnik_id'] = intval($this->getRequestValue('spravochnik_id')); } //Тут определяем задан ли параметр для safe_string if ('' != $this->getRequestValue('moya_stroka')) { $params['moya_stroka'] = intval($this->getRequestValue('moya_stroka')); } return $params; } public function run() { $params = $this->getParams(); require_once(SITEBILL_DOCUMENT_ROOT . '/apps/system/lib/model/model.php'); $data_model = new Data_Model(); $data_model_array = $data_model->get_kvartira_model(false); $data_model_array = $data_model_array['data']; if (isset($params['spravochnik_id']) && isset($data_model_array['spravochnik_id'])) { $where_array[] = DB_PREFIX . '_data.spravochnik_id=' . $params['spravochnik_id']; } if (isset($params['moya_stroka']) && isset($data_model_array['moya_stroka'])) { $where_array[] = DB_PREFIX . '_data.moya_stroka=\'' . $params['moya_stroka'].'\''; } return array( 'where' => $where_array, 'params' => $params ); } } А подскажите пожалуйста, что нужно прописать в файле standart_search_form.tpl чтобы вывести поиск по таблице safe_string Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: April 9, 2019 В 08.04.2019 в 13:26, vda сказал: А подскажите пожалуйста, что нужно прописать в файле standart_search_form.tpl чтобы вывести поиск по таблице safe_string Например можно вот так <input type="text" name="imya_peremennoj" value="{if $smarty.get.imya_peremennoj|trim ne ''}{$smarty.get.imya_peremennoj|trim|escape:'html'}{/if}" placeholder="Пояснение, что же ищет это поле"> где imya_peremennoj - ваше имя переменнйо под которым она будет обращаться в запросе. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Кэтти 2 Жалоба Опубликовано: March 18, 2021 а как добавить не чекбокс в поиск , а свой созданный справочник(типа как у вас города и районы), где значения выбираются из выпадающего списка? строка if($params['is_pool'] == 1 && isset($data_model_array['is_pool'])){$where_array[]=DB_PREFIX.'_data.is_pool='.$params['is_pool']; я так понимаю тут уже не подходит..... Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
TopRaN 235 Жалоба Опубликовано: March 19, 2021 Для собственного справочника нужно делать свой обработчик. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах