abushyk 694 Жалоба Опубликовано: June 18, 2017 Вы буквально двух строк не дошли до цели) <div class="tab-pane" id="main_sf"> {include file='new_search_form.tpl'} </div> это и есть включение "стандартной" формы. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: June 18, 2017 ВЫВОД ЗАКЛАДОК проверяем есть ли юзер-формы {if isset($local_search_forms) && $local_search_forms|count>0} если есть <ul class="nav nav-tabs" id="search_forms_tabs"> выводим закладочку для стандартной <li><a href="#main_sf" data-toggle="tab">Все</a></li> а теперь в цикле выводим закладочки для юзер-форм {foreach from=$local_search_forms key=ftname item=ftdata} <li{if $ftdata.active==1} class="active"{/if}><a href="#{$ftdata.id}" data-toggle="tab">{$ftname}</a></li> {/foreach} </ul> {else} если юзерформ нет, то и закладок нам не нужно {/if} ВЫВОД ФОРМ проверяем есть ли юзер-формы {if isset($local_search_forms) && $local_search_forms|count>0} <div class="tab-content"> <div class="tab-pane" id="main_sf"> выводим панель стандартной формы {include file='new_search_form.tpl'} </div> а тут в цикле выводим панельки юзерформ {foreach from=$local_search_forms key=ftname item=ftdata} <div class="tab-pane{if $ftdata.active==1} active{/if}" id="{$ftdata.id}"> {$ftdata.body} </div> {/foreach} </div> {else} если юзерформ нет, то высыпаем просто одну нашу стандартную {include file='new_search_form.tpl'} {/if} Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
doma 22 Жалоба Опубликовано: June 18, 2017 Только что, abushyk сказал: ВЫВОД ЗАКЛАДОК проверяем есть ли юзер-формы {if isset($local_search_forms) && $local_search_forms|count>0} если есть <ul class="nav nav-tabs" id="search_forms_tabs"> выводим закладочку для стандартной <li><a href="#main_sf" data-toggle="tab">Все</a></li> а теперь в цикле выводим закладочки для юзер-форм {foreach from=$local_search_forms key=ftname item=ftdata} <li{if $ftdata.active==1} class="active"{/if}><a href="#{$ftdata.id}" data-toggle="tab">{$ftname}</a></li> {/foreach} </ul> {else} если юзерформ нет, то и закладок нам не нужно {/if} ВЫВОД ФОРМ проверяем есть ли юзер-формы {if isset($local_search_forms) && $local_search_forms|count>0} <div class="tab-content"> <div class="tab-pane" id="main_sf"> выводим панель стандартной формы {include file='new_search_form.tpl'} </div> а тут в цикле выводим панельки юзерформ {foreach from=$local_search_forms key=ftname item=ftdata} <div class="tab-pane{if $ftdata.active==1} active{/if}" id="{$ftdata.id}"> {$ftdata.body} </div> {/foreach} </div> {else} если юзерформ нет, то высыпаем просто одну нашу стандартную {include file='new_search_form.tpl'} {/if} а можно ли как то в другом месте сослаться на эти формы-поисков-созданные юзером? так как сейчас если есть несоклько форм то выводится сначала вкладка все, потмо например поиск квартир, потом например поиск гаражей, потом поиск коммерческой недвижимости. и причем это все на главной а можно ли как то в какое то месте вставить просто ссылки поиск гаражей поиск квартир поиск комнедвижимости? причем например это были бы так сказать свои отдельные формы поиска созданные через tpl файлы? или к примеру как то к ним обратиться грамотно типа sait.ru/#poisk-quotkommerc-prodayuquot так как если посмотреть в табах то идет ссыылка именно такая sait.ru/#poisk-quotkommerc-prodayuquot но вот ка кто грамотно обратиться к ней если открыть в новом окне такую строку -не получится- перешлет на главную форму. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: June 18, 2017 14 минуты назад, doma сказал: обратиться к ней если открыть в новом окне такую строку -не получится не получится - это не ссылка 14 минуты назад, doma сказал: имер это были бы так сказать свои отдельные формы поиска созданные через tpl файлы? не выйдет - эти формы не имеют шаблонов и он к ним не может быть подключен - они создаются на лету в коде в виде готовой разметки 15 минут назад, doma сказал: как то к ним обратиться грамотно типа sait.ru/#poisk-quotkommerc-prodayuquot тоже не получится, так как якорь-идентификатор формы создается в момент генерации формы и не является каким-то постоянным или статичным значением которое можно зафиксировать. можно пытаться ловить форму по $ftname (текстовому названию формы, которое является ключем в массиве юзер-форм) , но опять же это будет до первого переименования. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
doma 22 Жалоба Опубликовано: June 18, 2017 Только что, abushyk сказал: не получится - это не ссылка ок. а тогда может как то грамотно создать свои tpl файлы и ссылаться на них? в них будет просто форма, а форма будет формировать нужный список параметров? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
doma 22 Жалоба Опубликовано: June 18, 2017 помнится даже комментировали в основной форме -вывод формы "Расширенный поиск" при нажатию на которую вываливалась какая то новая более развернутая форма - но не рабочая <!-- <a class="search_page_toggle" href="#1">{$L_ADVSEARCH}</a> --> может таким образом и можно организовать более красивый поиск на главной странице? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
doma 22 Жалоба Опубликовано: August 2, 2017 В 18.06.2017 в 21:31, abushyk сказал: ВЫВОД ЗАКЛАДОК проверяем есть ли юзер-формы {if isset($local_search_forms) && $local_search_forms|count>0} если есть <ul class="nav nav-tabs" id="search_forms_tabs"> выводим закладочку для стандартной <li><a href="#main_sf" data-toggle="tab">Все</a></li> а теперь в цикле выводим закладочки для юзер-форм {foreach from=$local_search_forms key=ftname item=ftdata} <li{if $ftdata.active==1} class="active"{/if}><a href="#{$ftdata.id}" data-toggle="tab">{$ftname}</a></li> {/foreach} </ul> {else} если юзерформ нет, то и закладок нам не нужно {/if} ВЫВОД ФОРМ проверяем есть ли юзер-формы {if isset($local_search_forms) && $local_search_forms|count>0} <div class="tab-content"> <div class="tab-pane" id="main_sf"> выводим панель стандартной формы {include file='new_search_form.tpl'} </div> а тут в цикле выводим панельки юзерформ {foreach from=$local_search_forms key=ftname item=ftdata} <div class="tab-pane{if $ftdata.active==1} active{/if}" id="{$ftdata.id}"> {$ftdata.body} </div> {/foreach} </div> {else} если юзерформ нет, то высыпаем просто одну нашу стандартную {include file='new_search_form.tpl'} {/if} Костя или Дмитрий подскажите а где редактируются поля в данных юзер формах ? так как там идет "От" и "До" например цена, площадь, этаж и так далее -форма становится ккорявой и не красивой, не удобной для пользователя и не по феншую -хочется откорректировать и сделать по человечески а то получается как на фото. От и до идет наверное тогда когда поле в админке стоит как is_ranged=1 надо как то его грамотно подкорректировать чтобы одно на другое не налазило Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
doma 22 Жалоба Опубликовано: August 2, 2017 и еще вопрос -может сделать "разумные" - самодельные ручные формы поиска для удобства? сделав их в виде файлов poisk1.tpl poisk2.tpl poisk3.tpl poisk4.tpl poisk5.tpl и потом когда идет цикл для перебора -проверять их по id? и если такой id имеется то просто сделать inclide="poisk5.tpl" например ? а если такого id нет то вывести автоформируемую. так как ручная форма может дать больше стилистики и форм оформления. Вопрос будут ли они все корректно работать и искать если сделать их inclide ? вывод формы идет выводом переменной {$ftdata.body} а где эта переменная находится -где ее посмотреть ? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
doma 22 Жалоба Опубликовано: August 2, 2017 и еще заметили что в этих формах есть кнопка "очистить" но нажимая на нее ничего не происходит -то есть она не работает почему то. Лечится как то или что она очищает? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
doma 22 Жалоба Опубликовано: September 18, 2017 очистка как то срабатывает ? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
doma 22 Жалоба Опубликовано: October 6, 2017 В 02.08.2017 в 15:53, doma сказал: Костя или Дмитрий подскажите а где редактируются поля в данных юзер формах ? так как там идет "От" и "До" например цена, площадь, этаж и так далее -форма становится ккорявой и не красивой, не удобной для пользователя и не по феншую -хочется откорректировать и сделать по человечески а то получается как на фото. От и до идет наверное тогда когда поле в админке стоит как is_ranged=1 надо как то его грамотно подкорректировать чтобы одно на другое не налазило В 02.08.2017 в 16:27, doma сказал: и еще заметили что в этих формах есть кнопка "очистить" но нажимая на нее ничего не происходит -то есть она не работает почему то. Лечится как то или что она очищает? вопросы прежние как "очистить " и как избавиться "от и до" или сделать как то иначе -вписав в 1 строку и в каком файле это настраивается Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
polina23565 0 Жалоба Опубликовано: November 20, 2017 В 15.10.2013 в 13:08, abushyk сказал: Новое поле - это совсем новое или одно из тех, что есть в модели, но не выводится в форме поиска? Здравствуйте, как выводить в форме поиска параметры разные для разных категорий. Допустим для квартиры выводить поиск этаж, а для участка нет? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Дмитрий Кондин 690 Жалоба Опубликовано: November 21, 2017 5 часов назад, polina23565 сказал: Здравствуйте, как выводить в форме поиска параметры разные для разных категорий. Допустим для квартиры выводить поиск этаж, а для участка нет? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Realtor 47 Жалоба Опубликовано: November 21, 2017 6 часов назад, rumantic сказал: Пол подскажите как приметить в этом ролике Тип операции? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Дмитрий Кондин 690 Жалоба Опубликовано: November 23, 2017 В 11/21/2017 в 17:34, Realtor сказал: подскажите как приметить в этом ролике Тип операции? Хватате поле Тип операции справа и переносите в центр. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Кэтти 2 Жалоба Опубликовано: December 17, 2017 созданы новые поля в таблице дата , одно из них safe_string , другое select_by_query ( под который создан отдельный справочник) , простым перетаскиванием они в форму то добавляются , но сам поиск их не учитывает при выдачи выборки. В феврале 2017 года Дмитрий помог написать код ( ниже) и всё стало отлично работать, но месяц назад почему то перестало выводить в результаты поиска нужную инф. Почему так произошло, может что то поменяли в движке и это изменение отразилось на работе этого кода? Как решить проблему? Прописано в в файл template search. php <?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 ); } } Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Дмитрий Кондин 690 Жалоба Опубликовано: December 18, 2017 12 часа назад, Кэтти сказал: созданы новые поля в таблице дата , одно из них safe_string , другое select_by_query ( под который создан отдельный справочник) , простым перетаскиванием они в форму то добавляются , но сам поиск их не учитывает при выдачи выборки. В феврале 2017 года Дмитрий помог написать код ( ниже) и всё стало отлично работать, но месяц назад почему то перестало выводить в результаты поиска нужную инф. Почему так произошло, может что то поменяли в движке и это изменение отразилось на работе этого кода? Как решить проблему? Прописано в в файл template search. php А что меняли в движке? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Кэтти 2 Жалоба Опубликовано: December 18, 2017 я ничего не меняла , я имела ввиду может обновление системы или какое -нибудь дополнение повлияло на работу кода , только месяц назад заметила что поиск перестал выводить инфу по safe_string . Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Дмитрий Кондин 690 Жалоба Опубликовано: December 19, 2017 14 часа назад, Кэтти сказал: я ничего не меняла , я имела ввиду может обновление системы или какое -нибудь дополнение повлияло на работу кода , только месяц назад заметила что поиск перестал выводить инфу по safe_string . Пишите в личку доступы, будем разбираться. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
nagovizin 12 Жалоба Опубликовано: December 26, 2017 <div class="type control-group"> <label class="control-label" for="inputType"> Поиск по описанию </label> <div class="controls"> <action="{$estate_folder}"> <input type="text" id="input-search" name="srch_word" placeholder="Поиск по описанию"> </div> почему такая конструкция не отрабатывает в поиске? вроде должна бы искать по слову в описании, в админке же работает. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Дмитрий Кондин 690 Жалоба Опубликовано: December 27, 2017 20 часов назад, nagovizin сказал: <div class="type control-group"> <label class="control-label" for="inputType"> Поиск по описанию </label> <div class="controls"> <action="{$estate_folder}"> <input type="text" id="input-search" name="srch_word" placeholder="Поиск по описанию"> </div> почему такая конструкция не отрабатывает в поиске? вроде должна бы искать по слову в описании, в админке же работает. Для описания нужно добавить обработчки <?php class Template_Search extends SiteBill { public function getParams(){ $params=array(); if($this->getRequestValue('srch_word') != '' ){ $params['srch_word'] = $this->getRequestValue('srch_word'); } return $params; } public function run(){ $params=$this->getParams(); $where_array=array(); 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['srch_word'])){ $where_array[]= DB_PREFIX.'_data.text LIKE \'%' . $params['srch_word'] . '%\''; } return array( 'where'=>$where_array, 'params'=>$params ); } } Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
nagovizin 12 Жалоба Опубликовано: December 27, 2017 2 часа назад, rumantic сказал: Для описания нужно добавить обработчки я сделал вот так в template_search.php и не работает ((( <?php class Template_Search extends SiteBill { public function getParams(){ $params=array(); if(''!==$this->getRequestValue('optype')){ $params['optype'] = (int)$this->getRequestValue('optype'); } 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($params['optype'] == 1 && isset($data_model_array['optype'])){ $where_array[optype]=DB_PREFIX.'_data.optype ='.$params['optype']; } $phone = trim($this->getRequestValue('phone'));if(''!==$phone){ $params['phone'] = $phone; } if(isset($params['phone'])){ $where_array[]='('.DB_PREFIX.'_data.phone LIKE "%'.$params['phone'].'%")'; } return array( 'where'=>$where_array, 'params'=>$params ); } } $params=array(); if($this->getRequestValue('srch_word') != '' ){ $params['srch_word'] = $this->getRequestValue('srch_word'); } return $params; $params=$this->getParams(); $where_array=array(); 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['srch_word'])){ $where_array[]= DB_PREFIX.'_data.text LIKE \'%' . $params['srch_word'] . '%\''; } return array( 'where'=>$where_array, 'params'=>$params ); Вы уж извеняйте я понимаю что вам не очень есть когда проводить тут курсы основ php, но если не сложно плиз подскажите че я делаю не так? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Дмитрий Кондин 690 Жалоба Опубликовано: December 27, 2017 1 час назад, nagovizin сказал: я сделал вот так в template_search.php и не работает ((( Вы уж извеняйте я понимаю что вам не очень есть когда проводить тут курсы основ php, но если не сложно плиз подскажите че я делаю не так? return $params; Уберите это И вот это не нужно снова делать $params=array(); Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: January 9, 2018 Я бы посоветовал не использовать параметр с именем srch_word для поиска по тексту. Параметр с таким же именем обрабатывается системой и могут быть нестыковки в результатах. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
banzai72 32 Жалоба Опубликовано: February 24, 2018 В 27.12.2017 в 12:03, nagovizin сказал: я сделал вот так в template_search.php и не работает ((( <?php class Template_Search extends SiteBill { public function getParams(){ $params=array(); if(''!==$this->getRequestValue('optype')){ $params['optype'] = (int)$this->getRequestValue('optype'); } 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($params['optype'] == 1 && isset($data_model_array['optype'])){ $where_array[optype]=DB_PREFIX.'_data.optype ='.$params['optype']; } $phone = trim($this->getRequestValue('phone'));if(''!==$phone){ $params['phone'] = $phone; } if(isset($params['phone'])){ $where_array[]='('.DB_PREFIX.'_data.phone LIKE "%'.$params['phone'].'%")'; } return array( 'where'=>$where_array, 'params'=>$params ); } } $params=array(); if($this->getRequestValue('srch_word') != '' ){ $params['srch_word'] = $this->getRequestValue('srch_word'); } return $params; $params=$this->getParams(); $where_array=array(); 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['srch_word'])){ $where_array[]= DB_PREFIX.'_data.text LIKE \'%' . $params['srch_word'] . '%\''; } return array( 'where'=>$where_array, 'params'=>$params ); Вы уж извеняйте я понимаю что вам не очень есть когда проводить тут курсы основ php, но если не сложно плиз подскажите че я делаю не так? У меня работает. В фильтре поиска: <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'] . '%\') ) '; } Посмотреть как работает можно здесь Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах