-
Публикации
600 -
Зарегистрирован
-
Посещение
-
Days Won
16
Сообщения, опубликованные пользователем banzai72
-
-
В Agents_list.tpl не нашел
-
7 минут назад, TopRaN сказал:Agents_list.tpl
Если я не ошибаюсь, это (по крайней мере в шаблоне real-spaces) страница всех агентов https://banzai72.ru/agents
А мне нужна страница одного агента https://banzai72.ru/user290.html
-
Помогите пожалуйста советом, где редактировать страницу агента?
https://banzai72.ru/user1.html
Хочу сделать Недвижимость агента по разделам
-
мы пользуемся Тиньковым. Не удобно и всегда висит. Но мы так же и пользуемся Кредитмарт. Очень удобно, рекомендую
-
1 час назад, metrpro сказал:Metrpro.ru на 6м месте - моё детище
? отлично
Но мало. У некоторых агентств нашего города около двух тысяч
Нам есть куда расти
-
8 часов назад, metrpro сказал:Даже удивительно, что никто не сравнивает тут свои ИКСы )))
Кстати, смотрю - на cmsmagazine заменили ТИЦ на ИКС - в первой 20ке для нашего sitebill 3 созданных мною сайта!
Вот мы ))))
-
11 час назад, doma сказал:Надо попробовать -но у нас шаблон реалия.
И еще подскажите пожалуйста, а что значит поиск по сотруднику - у вас у каждого сотрудника свой ID ? или там просто фио?
Если все же выбор по айди - то получается можно обычному пользователю выбрать объявления только по конкретному пользователю ? например у вас всего 30 сотрудников. а вы вписали только айди например 8 пользователей ? и получается в выпадающем списке будут эти 8 пользователей?
и написал вам еще в личкуне усложняйте мысль. Всё просто. Просто поиск по сотруднику(как поиск по улицам). Начинаете писать фамилию, выбираете нужного сотрудника и видите только его объявления.
-
В 15.10.2018 в 19:38, doma сказал:Подскажите а как сделать поиск по группе ? например сделать поиск только по объявлениям первой группы или только второй или только третьей.
Например выбираем однокомнатные и от группы пользователь -подразумевает собственника.
Следует сразу учесть что например всего на сайте 6 групп? а в списке чтобы было только 3 -собственник агентство застройщик.
Интересует как сделать именно выбор объявлений через форму поиска , а не просто где то вывести принадлежность к группе. спасибоВ фильтр:
<div class="col-md-2">
<label>Поиск по группе</label>
{$users_groups_list}
{if $country_list ne ''}
{$country_list}
{/if}
</div>А в /home/uqirahbm/public_html/template/frontend/ВАШ ШАБЛОН/main/main.php
$this->getNewest();
$groups=array();
$DBC=DBC::getInstance();
$query='SELECT group_id, name FROM '.DB_PREFIX.'_group WHERE group_id NOT IN (1,4,19,26,27,28,33) ORDER BY name';
$stmt=$DBC->query($query);
$select='<option value="">Не важно</option>';if($stmt){
while($ar=$DBC->fetch($stmt)){
$groups[$ar['group_id']]=$ar['name'];
$select.='<option value="'.$ar['group_id'].'"'.(intval($_GET['group_id'])==$ar['group_id'] ? ' selected="selected"' : '').'>'.$ar['name'].'</option>';
}
}
$this->template->assign('users_groups_list', '<select name="group_id">'.$select.'</select>');
$this->template->assign('users_groups', $groups);(В скобках запрещенные к показу группы)
А если поиск по пользователям то в фильтре:
<div class="col-md-2">
<label>Поиск по сотруднику</label>
{$users_users_list}
<!--select name="user_id"><option value="">Не важно</option></select--></div>
А в main.php^
$users=array();
$DBC=DBC::getInstance();
$query='SELECT user_id, fio FROM '.DB_PREFIX.'_user WHERE group_id NOT IN (1,4,18,19,26,27,32,38) ORDER BY fio';
$stmt=$DBC->query($query);
$select='<option value="">Не важно</option>';if($stmt){
while($ar=$DBC->fetch($stmt)){
$users[$ar['user_id']]=$ar['fio'];
$select.='<option value="'.$ar['user_id'].'"'.(intval($_GET['user_id'])==$ar['user_id'] ? ' selected="selected"' : '').'>'.$ar['fio'].'</option>';
}
}
$this->template->assign('users_users_list', '<select name="user_id">'.$select.'</select>');
$this->template->assign('users_users', $users);Вот мой файл:
-
-
-
1 час назад, dima сказал:В шаблоне real-spaces это в realty_grid.tpl
<!--noindex-->
{if $grid_items|count>0}
{foreach from=$pager_array.pages item=pager_page}
{if $pager_page.current==1}
{assign var=__curpagenr value=$pager_page.text}
{/if}
{/foreach}{if $__curpagenr-3<1}
{assign var=__startnr value=1}
{assign var=__leftsep value=0}
{else}
{assign var=__startnr value=$__curpagenr-3}
{assign var=__leftsep value=1}
{/if}{if $__curpagenr+3>$pager_array.pages|count}
{assign var=__endnr value=$pager_array.pages|count}
{assign var=__rightsep value=0}
{else}
{assign var=__endnr value=$__curpagenr+3}
{assign var=__rightsep value=1}
{/if}{if $pager_array.pages|count>1}
<div>
<ul class="pagination">
<li><a href="{$pager_array.ppn.href}">‹</a></li>
{if $__leftsep==1}
<li><a href="{$pager_array.pages[1].href}">{$pager_array.pages[1].text}</a></li>
<li><a href="javascript:void(0);" class="selected">...</a></li>
{/if}
{foreach from=$pager_array.pages item=pager_page}
{if $pager_page.text>=$__startnr && $pager_page.text<=$__endnr}
<li{if $pager_page.current==1} class="active"{/if}><a href="{$pager_page.href}">{$pager_page.text}</a></li>
{/if}
{/foreach}
{if $__rightsep==1}
<li><a href="javascript:void(0);" class="selected">...</a></li>
<li><a href="{$pager_array.pages[$pager_array.pages|count].href}">{$pager_array.pages[$pager_array.pages|count].text}</a></li>
{/if}
<li><a href="{$pager_array.npn.href}">›</a></li>
</ul>
</div>
{/if}
{/if}
<!--/noindex--> -
В 13.09.2018 в 13:03, abushyk сказал:давайте вернемся к стартовому посту. что вы сделали, что бы по отметке вашего чекбокса показывались только 18-тигрупповые? Плотому что если в лоб, то вам нужно сделать для непоказа то же самое, только инвертировать условие отбора. Типа было В 18-й, а станет НЕ В 18-й
Это наверное будет слишком нагло с моей стороны, но я попробую спросить.....
Как можно сделать то же самое с новостройками. Поставить в фильтр чекбокс "Только новостройки". Название колонки новостройки у меня в data "new_flat"
-
УРА!!! ПОЛУЧИЛОСЬ!!! СПАСИБО!
Ошибка была в :
/*Если юзеров из запрещенных групп более нуля, то добавляем условие в выборку объектов*/
/*с исключением этих юзеров*/
if(!empty($hide_users)){
$where_array[]=DB_PREFIX.'_data.iser_id NOT IN ('.implode(',', $hide_users).')';
}}
iser заменил на user
-
Никак не могу понять, что не так)))
-
21 час назад, abushyk сказал:Задача своlbтся к стандартной задаче добавления нового элемента формы поиска и обеспечения фильтрации по нему (это если такое поведение должно быть именно с фильтра)
Делается в два шага:
1. собственно добавление элемента на форму
Для этого выбираем имя параметра под которым признак будет проходить в запросах. Например hide_smth. Для большей гибкости мы не будем водить этот параметр по конкретному значению, как в примере =18. Потому что если завтра мы решим как-то расширить диапазон тех, кого прячем, нам не нужно будет править это 18 на 20 или изголяться, что бы сложить туда идешки двух групп. Логику определения, что спрятать, мы уберем в код, который будет формировать запрос. А снаружи оставим только просто параметр, наличие которого будет нам говорить не "что именно нужно спрятать", а "что нам нужно в целом что-то спрятать, а ты сам реши уже что именно".
ПС. Использование в той же переменной name="group_id" value="18" конкретного значения 18 приводит еще к тому, что подменяя 18 на другие ИД (15, 1, 22) я смогу управлять фильтрацией снаружи, без учета того, что хотел владелец сайта предоставить мне. Это не всегда критично, но иногда может вылезти очень сильно боком (особенно если код обработчик просто принимает это число из запроса и ставит его в условия фильтрации без каких либо внутренних проверок).
ППС. Суть создания элементов поисковых форм и их обработчиков состоит не в том, что бы дать пользователю все возможности самому там ковыряться и играть вариантами, а в том, что бы дать ему ровно столько, сколько вы считаете нужным и он не мог выйти за рамки.
Поэтому на форме мы размещаем хтмл вида
<input class="checkbox" type="checkbox" name="hide_smth" value="1"{if intval($smarty.get.hide_smth)==1} checked="checked"{/if} /><label class="ch">Не показыват ЭТИХ</label>
2. прописывание логики поиска
Что бы наш параметр учелся в поиске, мы должны его перехватить и обработать. Для этого мы используем или tempalte_search или локализацию grid_constructor.
Для варианта tempalte_search внутри public function getParams() перехватываем параметр
if(1===intval($this->getRequestValue('hide_smth'))){ $params['hide_smth'] = 1; }
и добавляем обработку внутри public function run()
if(isset($params['hide_smth'])){ $DBC=DBC::getInstance(); $hide_users=array(); /*получаем ИД юзеров из "запрещенных" групп*/ /*вместо 1,2,3,4 через запятую поставить ИД этих групп*/ $query='SELECT `user_id` FROM '.DB_PREFIX.'_user WHERE `group_id` IN (1,2,3,4)'; $stmt=$DBC->query($query); if($stmt){ while($ar=$DBC->fetch($stmt)){ $hide_users[]=$ar['user_id']; } } /*Если юзеров из запрещенных групп более нуля, то добавляем условие в выборку объектов*/ /*с исключением этих юзеров*/ if(!empty($hide_users)){ $where_array[]=DB_PREFIX.'_data.iser_id NOT IN ('.implode(',', $hide_users).')'; } }
В standart_search_form2.tpl вставил :
<input style="float:left;" class="checkbox" type="checkbox" name="group_id" value="18" /><label class="ch"><strong><font color="#B22222">ТОЛЬКО СОБСТВЕННИКИ</font></strong></label><br><br>
<input class="checkbox" type="checkbox" name="hide_smth" value="1"{if intval($smarty.get.hide_smth)==1} checked="checked"{/if} /><label class="ch">Все кроме собственников</label>В /home/uqirahbm/public_html/template/frontend/real-spaces/main/template_search.php сделал так:
<?php
class Template_Search extends SiteBill {
public function getParams(){$params=array();
if(1===intval($this->getRequestValue('hide_smth'))){
$params['hide_smth'] = 1;
}
if($this->getRequestValue('land_square_min') != '' ){
$params['land_square_min'] = $this->getRequestValue('land_square_min');
}
if($this->getRequestValue('srch_word') != '' ){
$params['srch_word'] = $this->getRequestValue('srch_word');
}
if($this->getRequestValue('land_square_max') != '' ){
$params['land_square_max'] = $this->getRequestValue('land_square_max');
}
if(intval($this->getRequestValue('group_id')) >0 ){
$params['group_id'] = intval($this->getRequestValue('group_id'));
}
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['hide_smth'])){
$DBC=DBC::getInstance();
$hide_users=array();
/*получаем ИД юзеров из "запрещенных" групп*/
/*вместо 1,2,3,4 через запятую поставить ИД этих групп*/
$query='SELECT `user_id` FROM '.DB_PREFIX.'_user WHERE `group_id` IN (18)';
$stmt=$DBC->query($query);
if($stmt){
while($ar=$DBC->fetch($stmt)){
$hide_users[]=$ar['user_id'];
}
}
/*Если юзеров из запрещенных групп более нуля, то добавляем условие в выборку объектов*/
/*с исключением этих юзеров*/
if(!empty($hide_users)){
$where_array[]=DB_PREFIX.'_data.iser_id NOT IN ('.implode(',', $hide_users).')';
}}
if(isset($params['land_square_min']) && isset($data_model_array['land_square'])){
$where_array[]=DB_PREFIX."_data.land_square >= ".$params['land_square_min'];
}
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.city_id in (select city_id from '
.DB_PREFIX.'_city where name like \'%' . $params['srch_word'] . '%\')
OR '.DB_PREFIX.'_data.district_id in (select district_id from '.DB_PREFIX.'_district where name like \'%' . $params['srch_word'] . '%\')
OR '.DB_PREFIX.'_data.Mikrorayony_id in (select Mikrorayony_id from '.DB_PREFIX.'_Mikrorayony 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'] . '%\') )
';
}
if(isset($params['land_square_max']) && isset($data_model_array['land_square'])){
$where_array[]=DB_PREFIX."_data.land_square <= ".$params['land_square_max'];
}
if(isset($params['group_id'])){
$where_array[]=DB_PREFIX."_data.user_id IN (SELECT user_id FROM ".DB_PREFIX."_user WHERE group_id=".$params['group_id'].")";
}
if($params['phone'] == 1 && isset($data_model_array['phone'])){
$where_array[]=DB_PREFIX.'_data.owner_phone ='.$params['phone'];}
$phone = trim($this->getRequestValue('phone'));if(''!==$phone){ $params['phone'] = $phone; } if(isset($params['phone'])){ $where_array[]='('.DB_PREFIX.'_data.owner_phone LIKE "%'.$params['phone'].'%")'; }
return array(
'where'=>$where_array,
'params'=>$params
);
}
}Не получилось. при использовании данного чекбокса не выдает не одного объявления (
Подскажите пожалуйста, что я не так понял, не так делаю?
-
1 час назад, abushyk сказал:давайте вернемся к стартовому посту. что вы сделали, что бы по отметке вашего чекбокса показывались только 18-тигрупповые? Плотому что если в лоб, то вам нужно сделать для непоказа то же самое, только инвертировать условие отбора. Типа было В 18-й, а станет НЕ В 18-й
Видимо это сложно для меня. Помогите пожалуйста
-
Это у меня в специальном фильтре, который показывается на сайте только зарегистрированным пользователям(только сотрудникам).
standart_search_form2.tpl
-
Только что, abushyk сказал:давайте вернемся к стартовому посту. что вы сделали, что бы по отметке вашего чекбокса показывались только 18-тигрупповые?
Ничего. Я просто посмотрел, что у меня в фильтре есть вот такой код на количестве комнат:
<input style="float:left;" class="checkbox" type="checkbox" name="room_count[]" value="1" /><label class="ch">1</label>
и подправил его под свои нужды вот так:
<input style="float:left;" class="checkbox" type="checkbox" name="group_id" value="18" /><label class="ch"><strong><font color="#B22222">ТОЛЬКО СОБСТВЕННИКИ</font></strong></label>
И получилось
-
1 минуту назад, abushyk сказал:Если что-то не понятно, то пишите в какой части - в теоретических выкладках, или в примерах реализации.
Если честно то мне стыдно, но не понятно ничего кроме того, что вставить в фильтр код:
<input class="checkbox" type="checkbox" name="hide_smth" value="18"{if intval($smarty.get.hide_smth)==1} checked="checked"{/if} /><label class="ch">Не показывать группу 18</label>
-
Сделал value="18" , вставил в фильтр. Но к сожалению так и не понял, что ещё мне нужно сделать, что бы с применением этого чекбокса не показывать объявления группы 18
-
<input class="checkbox" type="checkbox" name="hide_smth" value="18"{if intval($smarty.get.hide_smth)==1} checked="checked"{/if} /><label class="ch">Не показывать группу 18</label>
-
30 минут назад, abushyk сказал:Задача своlbтся к стандартной задаче добавления нового элемента формы поиска и обеспечения фильтрации по нему (это если такое поведение должно быть именно с фильтра)
Делается в два шага:
1. собственно добавление элемента на форму
Для этого выбираем имя параметра под которым признак будет проходить в запросах. Например hide_smth. Для большей гибкости мы не будем водить этот параметр по конкретному значению, как в примере =18. Потому что если завтра мы решим как-то расширить диапазон тех, кого прячем, нам не нужно будет править это 18 на 20 или изголяться, что бы сложить туда идешки двух групп. Логику определения, что спрятать, мы уберем в код, который будет формировать запрос. А снаружи оставим только просто параметр, наличие которого будет нам говорить не "что именно нужно спрятать", а "что нам нужно в целом что-то спрятать, а ты сам реши уже что именно".
ПС. Использование в той же переменной name="group_id" value="18" конкретного значения 18 приводит еще к тому, что подменяя 18 на другие ИД (15, 1, 22) я смогу управлять фильтрацией снаружи, без учета того, что хотел владелец сайта предоставить мне. Это не всегда критично, но иногда может вылезти очень сильно боком (особенно если код обработчик просто принимает это число из запроса и ставит его в условия фильтрации без каких либо внутренних проверок).
ППС. Суть создания элементов поисковых форм и их обработчиков состоит не в том, что бы дать пользователю все возможности самому там ковыряться и играть вариантами, а в том, что бы дать ему ровно столько, сколько вы считаете нужным и он не мог выйти за рамки.
Поэтому на форме мы размещаем хтмл вида
<input class="checkbox" type="checkbox" name="hide_smth" value="1"{if intval($smarty.get.hide_smth)==1} checked="checked"{/if} /><label class="ch">Не показыват ЭТИХ</label>
2. прописывание логики поиска
Что бы наш параметр учелся в поиске, мы должны его перехватить и обработать. Для этого мы используем или tempalte_search или локализацию grid_constructor.
Для варианта tempalte_search в
Спасибо. Но к сожалению это первый ваш совет который я не понял и не смог реализовать (((
-
-
В 01.04.2015 в 00:50, abushyk сказал:<!--noindex-->шаблон формы поиска<!--/noindex-->
Спасибо
Где страница агента
в Приложения, модули, настройки
Опубликовано: · Report reply
спасибо