Kholmatov

Редактирование модуля ПОХОЖИЕ ($similar_data)

Recommended Posts

Доброго времени суток!

Где и как можно настроит модуль Похожие? 

Мне нужно составить запрос чтоб модуль фильтировала по Региону + Расположение и по Ценовому диапазону.

Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1. Создаем локальный обработчика карточки как в http://www.etown.ru/s/topic/1578-редактировать-хлебную-крошку-и-название-объек/?p=17008 

2. В нем создаем функцию 

function getCustomSimilarData($category_structure, $form_data_shared){

 

}

 

И вот тут начинается самое интересное.

Можно написать выборку свою, опираясь на принцип роботы функции Kvartira_View::getSimilar(), можно взять за основу ее код и изменить алгоритм.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1. Создаем локальный обработчика карточки как в http://www.etown.ru/s/topic/1578-редактировать-хлебную-крошку-и-название-объек/?p=17008 

2. В нем создаем функцию 

function getCustomSimilarData($category_structure, $form_data_shared){

 

}

 

И вот тут начинается самое интересное.

Можно написать выборку свою, опираясь на принцип роботы функции Kvartira_View::getSimilar(), можно взять за основу ее код и изменить алгоритм.

 

Спасибо помогло вот только для опирания  и в основу взял код  Kvartira_View::getSimilar() и изменил алгоритм

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Логически эти две функции имеют только одно отличие, в getCustomSimilarData приходят данные текущего объявления в полном составе, а в getSimilar только топик и набор сгенерированных параметров. Поэтому для более хитрых подборок удобнее использовать именно getCustomSimilarData, у нее больше инфы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подскажите пожалуйста, как сделать, чтобы в Похожих выводились карточки только того раздела, объект которого открыт? То есть, в карточке дома чтобы показывались дома, а не все подряд (квартиры, участки, аренда итд итп)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В карточке и так показываются нужные объекты, за исключением если объектов не хватает то выводятся по схожим признакам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подскажите пожалуйста, как сделать, чтобы в Похожих выводились карточки только того раздела, объект которого открыт? То есть, в карточке дома чтобы показывались дома, а не все подряд (квартиры, участки, аренда итд итп)

Одно из условий текущей выборки похожих

    		if($params['topic_id']!=0){    			$where['topic_id']='topic_id='.$params['topic_id'];    		}

Указывает на то, что если есть раздел, то выводится только из него.

Другое дело, что если не хватает там объявлений, то выборка делается из другого раздела.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Одно из условий текущей выборки похожих

    		if($params['topic_id']!=0){    			$where['topic_id']='topic_id='.$params['topic_id'];    		}

Указывает на то, что если есть раздел, то выводится только из него.

Другое дело, что если не хватает там объявлений, то выборка делается из другого раздела.

Где в коде начинается выборка из других разделов? Как убрать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Где в коде начинается выборка из других разделов? Как убрать?

Итак просветвление)

Лёгким способом "Похожие" объявления вы можете подправить на свой вкус в файле /apps/system/lib/frontend/view/kvartira_view.php

В этом большом файле Вам нужен всего лишь этот маленький кусочек 

 

if(method_exists($this, 'getCustomSimilarData')){

$this->template->assign('similar_data', $this->getCustomSimilarData($category_structure, $form_data_shared));
}else{
$simparams=array(
'id'=>(int)$form_data['id']['value'],
'topic_id'=>(int)$form_data['topic_id']['value'],
'city_id'=>(int)$form_data['city_id']['value'],
'district_id'=>(int)$form_data['district_id']['value'],
'street_id'=>(int)$form_data['street_id']['value'],
);
$this->template->assign('similar_data', $this->getSimilar($category_structure, $simparams));
}
 
Убирая строки
 
'id'=>(int)$form_data['id']['value'],
'topic_id'=>(int)$form_data['topic_id']['value'],
'city_id'=>(int)$form_data['city_id']['value'],
'district_id'=>(int)$form_data['district_id']['value'],
'street_id'=>(int)$form_data['street_id']['value'],
 
вы можете оставить выбор объявлений по устраивающим вас категориям. Это могут быть объявления только из одного города, с одной улицы,...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Есть раздел "похожие в городе", ниже раздел "похожие в этом регионе" сделал.

Почему то показывает все время не этот регион, а только один и везде.

Как исключить из "похожих в регионе" город который указан в "похожие в городе"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для этого есть раздел фриланс

Фриланс? Он разве работает?

http://www.etown.ru/s/topic/2041-доработать-навигацию-в-realto/?p=21677

http://www.etown.ru/s/topic/2081-даработать-реалиа-оперативно/?p=21958

 

Почему это предложение не звучит сразу после первого сообщения в этой теме и во всех темах форума?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Почему то показывает все время не этот регион, а только один и везде.

 

Тут нужно смотреть какие условия вы наложили на выборку этого блока похожих.

 

 

 

Как исключить из "похожих в регионе" город который указан в "похожие в городе"?

 

А вот тут настройками упомянутіх віше параметров не обойтись. Нужно смотреть ниже, где формируется сам запрос. Там периодически добавляется условие $where['id']='id NOT IN ('.implode(',',$ids).')'; - указіваем что нужно вібрать все по услловиям, кроме уже пойманых идешек. Для региона нужно поступить схоже

$where['region_id']='region_id NOT IN ('.$region_id.')';

 

Только я уже запутался, что у вас регион, а что город, поэтому пример исключительно для примера, а не для копипаста))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Там условия скопипастил, только вписал 

'region_id'=>(int)$form_data['region_id']['value'],  все остальное в этом месте закомментил,

 

переименовал 

 
if(method_exists($this, 'getCustomSimilarData')){
$this->template->assign('similar_data1',
 
и в форме реалти виев тпл скопипастил и переименовал.
Наверно этого не достаточно.  Попытаюсь собрать руками на выборку region_id, по идее регионы надо тоже раздробить на меньшие кластеризации.

 

Регион, город, район. Район сейчас отключен, но вроде как потребуется в больших городах.

 

Спасибо, копипастить я люблю, это известный факт)

 

пс наверну эту штуку не прицепил

$form_data['region_id']['value_string']=$form_data[$tlocationElement]['value_string']['region_id'];

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 22.12.2015 в 16:50, VladSI сказал:

Итак просветвление)

Лёгким способом "Похожие" объявления вы можете подправить на свой вкус в файле /apps/system/lib/frontend/view/kvartira_view.php

В этом большом файле Вам нужен всего лишь этот маленький кусочек 

 

 

Убирая строки
 
'id'=>(int)$form_data['id']['value'],
'topic_id'=>(int)$form_data['topic_id']['value'],
'city_id'=>(int)$form_data['city_id']['value'],
'district_id'=>(int)$form_data['district_id']['value'],
'street_id'=>(int)$form_data['street_id']['value'],
 
вы можете оставить выбор объявлений по устраивающим вас категориям. Это могут быть объявления только из одного города, с одной улицы,...

Подскажите пожалуйста, если я оставлю код:

$simparams=array(
                    'id'=>(int)$form_data['id']['value'],
                    'country_id'=>(int)$form_data['country_id']['value'],
                    'city_id'=>(int)$form_data['city_id']['value'],

Похожие объявления будут отображаться

по айди, стране, городу ?

 

Оставил отображение так:

'country_id'
'city_id'

Будет показывать похожие по стране и городу.

 

А как убрать из похожих объявлений - само объявление в котором нахожусь, которое просматриваю? Спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
14 часа назад, mykvartira сказал:

Подскажите пожалуйста, если я оставлю код:

$simparams=array(
                    'id'=>(int)$form_data['id']['value'],
                    'country_id'=>(int)$form_data['country_id']['value'],
                    'city_id'=>(int)$form_data['city_id']['value'],

Похожие объявления будут отображаться

по айди, стране, городу ?

 

Оставил отображение так:

'country_id'
'city_id'

Будет показывать похожие по стране и городу.

 

А как убрать из похожих объявлений - само объявление в котором нахожусь, которое просматриваю? Спасибо

Теперь не обязательно править через код, можно через настройки - дополнительно

Параметры похожих
(apps.realty.similar_preg)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо! Раньше знал бы, не правил код бы. А то ночью так направил, что в объявлениях все поехало. Скажите а  в каком tpl прописываются вид объявлений?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для редактирования вида объявлений, переходим в Редактор шаблонов >> realty_view.tpl

Нашел, всем удачи 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Похожие публикации

    • Автор: Дмитрий Кондин
      Рады представить вам новый модуль выгрузки ЦИАН 2.0
      Он предназначен специально для выгрузки объектов недвижимости на портал ЦИАН по новым правилам и учитывает все нюансы и тонкости.
      При покупке приложения мы устанавливаем его на ваш сайт бесплатно.
      Купить приложение по ссылке https://www.sitebill.ru/client/cart.php?a=add&pid=99
      Страничка модуля на сайте https://www.sitebill.ru/cian-vigruzka

    • Автор: Chernetskiy
      После очередного обновления слетела выгрузка земельных участков файлом выгрузки формата XML Яндекс.Недвижимость.
      Поправил файл admin.php для модуля выгрузки и внес некоторые дополнения/правки.
      Если необходимо решить вопрос с выгрузкой по быстрому, заходим на хостинг в apps/yandexrealty/admin/, сохраняем или переименовываем имеющийся файл admin.php в admin.bak и загружаем этот файл.
      Что изменено:
      добавлены параметры для выгрузки земельных участков (ИЖС, садовые) добавлен в выгрузку параметр raion (районы области) добавлен в выгрузку параметр direction (направления, шоссе) добавлен в выгрузку параметр railway_station (станции ж/д) параметры площадей комнат, если указываются на сайте как 10/12/18, выгружаются отдельно для каждой комнаты добавлен в выгрузку параметр lot-number (номер лота) - для показа на сторонних сайтах  номера объявления в вашей базе добавлены соответствия валют в выгрузку - спецсимволов рубля (₽), фунта серлингов (£), гривны (₴), если на сайте валюты указаны спецсимволами. Чуть не забыл, за ненадобностью удалил из файла Беларусский рубль и Казахский теньге, мне не надо было   добавлена ссылка на сайт в выгрузку к сведениями об агенте - в файле найдите https://realty-centrum.com и поменяйте на свою! исправлены/добавлены значения некоторых параметров в выгрузку (ремонт, балконы, покрытие пола и т.п.) Для изучения подробностей, откройте в Notepad++ этот файл и ваш, воспользуйтесь плагином Compare и посмотрите разницу в коде
    • Автор: kkkv39
      Добрый день!
      Скажите, сколько будет стоить сделать отображение похожих объектов на карте, как на Авито?
      Сайт kv39.ru
      Спасибо!
    • Автор: Ramiz95
      Здравствуйте! Пришла в голову интересная идея: Выводить изменения цены в отдельном блоке на главной странице. Чтоб пользователь видел (например) 5 последних объявлений на которых недавно были изменены цены. А в идеале: чтоб пользователь мог перейти в отдельную страницу с лентой объектов на которые были изменены цены.
       
      Прошу прощения если такая тема уже поднималась. Не нашел. Возможно в позднее время не смог сформулировать корректный запрос.
      Спасибо.

    • Автор: kkkv39
      Добрый день!
      I. Нужно сделать фильтрацию похожих объявлений по следующим критериям:
      1. тип сделки (аренда/продажа),
      2. тип объекта ( комната, квартира, дом....),
      3. район,
      4. цена +/- 20% от цены похожего объекта.
      II. Сделать, чтобы вернее меню открывалось не по наведению, а по щелчку. (или чтобы рядом с кнопкой была стрелка, по нажатию на которую выпадало меню).
      Что-то подобное с bootstrap dropdown
      Сайт www.tvoyvibor.org