IGOR

Приложение выгрузки объявлений в AFY.ru

Recommended Posts

Я бы так и сделал, если бы только Москва, но и область и ожидаются регионы!

Если только обозвать рег. Москва или Московски рег.

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


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

Я бы так и сделал, если бы только Москва, но и область и ожидаются регионы!

Если только обозвать рег. Москва или Московски рег.

И в чем проблема, в справочник регионов вписываете Москва, Московская область, Краснодарский край и т.п., и всё будет замечательно работать. Просто не надо забывать, что для г. Москва надо указывать регион Москва. Я на файлообменник (вверху меню Файлы) скидывал комплект адресных справочников с моего сайта, там есть Москва (в регионах) и населенные пункты Москвы (в городах) + юго-восток Московской области (больше не надо было, хотя где-то была и вся область). Там есть и улицы Москвы, а подмосковные улицы привязаны к населенным пунктам.

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


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

<country>Россия</country>

<oblast>Московский рег.</oblast>

<city>Москва</city>

<street>Гарибальди ул.</street>

Да просто, Москва, Москва.... не кашерно как то...)) http://joxi.ru/el2ZQVEsGMW1mJ

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


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

<country>Россия</country>

<oblast>Московский рег.</oblast>

<city>Москва</city>

<street>Гарибальди ул.</street>

Да просто, Москва, Москва.... не кашерно как то...)) http://joxi.ru/el2ZQVEsGMW1mJ

У меня вводится Москва-Москва, но показывается кашерно - пример

В Настройках - Выгрузка AFY, вроде для этого есть параметр настройки - Признак Москвы в виде системное имя поля: значение, где указываем ID Москвы, например: city_id:1

На крайний случай, можно на выводе адреса прописать условие, если регион Москва, то регион не показывать.

Если оставлять как есть - "Московский" (регион, объединяющий Москву и Подмосковье), то возникнут проблемы с поиском у клиента, кому-то нужна Москва, а кто-то бежит в Подмосковье и копаться в свалке объявлений из 2-х регионов мало кого устроит, неудобно однако... 

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


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

На крайний случай, можно на выводе адреса прописать условие, если регион Москва, то регион не показывать.

Это интересно!!!

Как?

Мне то по большому счету во фронтенде алаверды не хочется... 1-я квартира, Москва, Москва, ул. Гарибальди..... и т.д.

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


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

Точно не скажу, не знаю какой у вас шаблон и что прописано в условиях формирования заголовка, но могу подкинуть пример с формированием площадей, этажности и количества комнат в списке объявлений на моем сайте. Тот или иной параметр указывается в нужном виде или не указывается в зависимости от типа недвижимости, они привязаны к ID типа, дальше додумаете:

<div class="area">
            <span class="key">{$L_SQUARE}:</span>
            <span class="value">
              {if intval($grid_items[i].topic_id)==18 || intval($grid_items[i].topic_id)==31 || intval($grid_items[i].topic_id)==32 || intval($grid_items[i].topic_id)==6127}
              {$grid_items[i].lot_area|number_format:0:",":" "} сот.
              {else}
              {$grid_items[i].square_all}/{$grid_items[i].square_live}/{$grid_items[i].square_kitchen} м<sup>2</sup>
              {/if}
            </span>
          </div>
          <div class="area">
            <span class="key"></span>
            <span class="value">
              {if intval($grid_items[i].topic_id)==18 || intval($grid_items[i].topic_id)==31 || intval($grid_items[i].topic_id)==32 || intval($grid_items[i].topic_id)==6127}
              {else}
              {$L_FLOORTY}: {if intval($grid_items[i].floor)!==0}{$grid_items[i].floor}/{else}{/if}{$grid_items[i].floor_count}
              {/if}
            </span>
          </div>        
          <div class="area">
            <span class="key"></span>
            <span class="value">
              {if intval($grid_items[i].topic_id)==18 || intval($grid_items[i].topic_id)==31 || intval($grid_items[i].topic_id)==32 || intval($grid_items[i].topic_id)==6127}
              {else}
              {$L_ROOMS1}: {$grid_items[i].room_count}
              {/if}
            </span>
          </div>

Посмотреть результат можно у меня на сайте

Если надумаете применить себе такое-же, то измените циферки (18, 31 и т.п.) на свои id земельных участков

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


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

У меня заголовок формируется так:

<div class="title span4">
<h2><a href="{$grid_items[i].href}">
{if intval($grid_items[i].country_id)==1}
{if intval($grid_items[i].region_id)==1}
{else}
{$grid_items[i].region},{/if}
{if $grid_items[i].city ne ''}{$grid_items[i].city},{/if}
{if $grid_items[i].street ne ''}{$grid_items[i].street},{/if}
{if $grid_items[i].number ne ''}{$grid_items[i].number}{/if}
{else}
{$grid_items[i].country},
{if $grid_items[i].region ne ''}{$grid_items[i].region},{/if}
{if $grid_items[i].city ne ''}{$grid_items[i].city}{/if}
{/if}
</a>
</h2>

Показывает адрес целиком - страна, регион, город, улица... если за рубежом, но если в России и если регион Москва, то Россию и регион Москва не показывает, в условии указан id страны=1 (у меня Россия) и региона=1 (у меня Москва). Может вам подойдет.

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


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

Благодарю Вас! Отличное решение!

                    {if intval($grid_items.region_id)==90}
                    {else}
                    {$grid_items.region},{/if}
                    {if $grid_items.district ne ''} {$grid_items.district},{/if}    
                    {if $grid_items.city ne ''} {$grid_items.city},    
                    {if $grid_items.raion ne ''} {$grid_items.raion},{/if}                    
                    {if $grid_items.metro ne ''} {$grid_items.metro},{/if}                    
                    {if $grid_items.street ne ''} {$grid_items.street}{if
                    $grid_items.number ne ''}, д. {$grid_items.number}{/if}{/if}
                    {else} {if $grid_items.street ne ''} {$grid_items.street}
                    {if $grid_items.number ne ''}, {$grid_items.number}{/if} 
                    {/if}
                    {/if}

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


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

Константин, сделайте пожалуйста доброе дело! 

Наставьте на путь истинный!

                    {if intval($similar_data[x].region_id.value_string)==90}
                    {else}
                    {$similar_data[x].region_id.value_string},{/if}    
                                                {if $similar_data[x].district_id.value_string ne ''} {$similar_data[x].district_id.value_string},{/if}                                
                                                {if $similar_data[x].city_id.value_string ne ''} {$similar_data[x].city_id.value_string}, 
                                                {if $similar_data[x].raion_id.value_string ne ''} {$similar_data[x].raion_id.value_string}{/if}    
                                                {if $similar_data[x].metro_id.value_string ne ''} {$similar_data[x].metro_id.value_string},{/if}                                            
                                                {if $similar_data[x].street_id.value_string ne ''} {$similar_data[x].street_id.value_string}{if
                                                $similar_data[x].number.value ne ''}, д. {$similar_data[x].number.value}{/if}{/if}
                                                {else} {if $similar_data[x].street_id.value_string ne ''} {$similar_data[x].street_id.value_string}{if
                                                $similar_data[x].number.value ne ''}, {$similar_data[x].number.value}{/if} {/if}
                                                {/if}    

-----------------------------------------

            {if $data.topic_id.value_string ne ''} {$data.topic_id.value_string} / {/if}    
{if intval($data.region_id.value_string)==90}
{else}
{$data.region_id.value_string} / {/if}
            {if $data.district_id.value_string ne ''} {$data.district_id.value_string} / {/if}                                
            {if $data.city_id.value_string ne ''} {$data.city_id.value_string} /  
            {if $data.raion_id.value_string ne ''} {$data.raion_id.value_string} / {/if}    
            {if $data.metro_id.value_string ne ''} {$data.metro_id.value_string} / {/if}                                            
            {if $data.street_id.value_string ne ''} {$data.street_id.value_string} / {/if}
            {if $data.number.value != '0'}
            {if $data.number.value ne ''} д. {$data.number.value}{/if}
            {/if}
            <br />{if $data.price_discount.value ne ''} за <font color="#b00000">{$data.price_discount.value|number_format:0:",":" "}{/if}{/if} &#8381;</font>

Не хочет упорно регион Москва город убираться

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


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

Не хочет упорно регион Москва город убираться

Попробуйте просто   {if intval($similar_data[x].region_id.value)==90}, т.к. вам нужно получить не надпись его имени а только id

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


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

Шикарная подсказка! Благодарю Вас!

Готовое решение:

            {if intval($data.region_id.value)==90}
            {else}
            {$data.region_id.value_string},{/if}    

-------------------------

                                                {if intval($similar_data[x].region_id.value)==90}
                                                {else}
                                                {$similar_data[x].region_id.value_string},{/if}    

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


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

Несколько вопросов по настройке:

  • Поле:Значение отвечающее за признак продажи
  • Признак Москвы в виде системное имя поля:значение
  • Платный кросспостинг
  • Интервал дат выгрузки

Что это за настройки, для чего они?

 

Ошибка в выгрузке! В адресе только название деревни, если не указывать улицу, то номер дома не выгружается!

<location><country>Россия</country><oblast>Московская область</oblast><raion>Подольский р-он</raion><city>д. Киселево</city><district>Подольский р-он</district><street/><house/></location>

Соответственно, в афи висит ошибка!

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


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

Несколько вопросов по настройке:

  • Поле:Значение отвечающее за признак продажи
  • Признак Москвы в виде системное имя поля:значение
  • Платный кросспостинг
  • Интервал дат выгрузки

Что это за настройки, для чего они?

 

Ошибка в выгрузке! В адресе только название деревни, если не указывать улицу, то номер дома не выгружается!

<location><country>Россия</country><oblast>Московская область</oblast><raion>Подольский р-он</raion><city>д. Киселево</city><district>Подольский р-он</district><street/><house/></location>

Соответственно, в афи висит ошибка!

по первому вопросу лучше Константин объяснит, помню, что:

  • Значение отвечающее за признак продажи - указываем значение из data, если у вас продажа/аренда разделены на sale и rent например...
  • признак Москвы - ставим ID Москвы, это связано с формированием адреса в выгрузке.
  • платный кросспостинг - точно не скажу
  • интервал дат выгрузки - точно не скажу, скорее всего период, за который делается выборка для выгрузки.

По второму вопросу, отсутствие улиц и номеров домов - не критично, поскольку эти значения не являются обязательными параметрами для загородной недвижимости. Если всё-же нужны, то надо будет в выгрузку дописать условие.

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


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

Поскольку выгрузка AFY требует серьезной доработки, лучше пока использовать фид выгрузки для Яндекса, его тоже можно подключить к AFY. 

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


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

по первому вопросу лучше Константин объяснит, помню, что:

  • Значение отвечающее за признак продажи - указываем значение из data, если у вас продажа/аренда разделены на sale и rent например...
  • признак Москвы - ставим ID Москвы, это связано с формированием адреса в выгрузке.
  • платный кросспостинг - точно не скажу
  • интервал дат выгрузки - точно не скажу, скорее всего период, за который делается выборка для выгрузки.

По второму вопросу, отсутствие улиц и номеров домов - не критично, поскольку эти значения не являются обязательными параметрами для загородной недвижимости. Если всё-же нужны, то надо будет в выгрузку дописать условие.

Да! По загородной вы правы! Так и есть, но вот вопрос остается, Аппартаменты в деревне, улицы нет, только номер дома... и.... ошибка

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


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

Да! По загородной вы правы! Так и есть, но вот вопрос остается, Аппартаменты в деревне, улицы нет, только номер дома... и.... ошибка

У самого такая фигня - квартиры в поселках без улиц. В выгрузке Яндекса обошлись доп. запятой, между названием поселка и номером дома, что дало понять принимающей стороне, что улицы нет. В выгрузку для AFY еще толком не вникал.

Примеры:

<country>Россия</country>
<region>Московская область</region>
<district>Раменский район</district>
<locality-name>Электроизолятор</locality-name>
<address>, 14</address>

или
<country>Россия</country>
<region>Московская область</region>
<district>Раменский район</district>
<locality-name>Фоминское</locality-name>
<address>, 7</address>

похоже в admin.php модуля выгрузки AFY надо поковыряться в этом куске кода... ~700 строка:

    	/* Street */
    	
    	$cname='';
    	$cf=trim($this->getConfigValue('apps.afyexporter.street_field'));
    	if($cf!=='' && isset($d[$cf])){
    		if($d[$cf]['type']=='select_box' || $d[$cf]['type']=='select_by_query'){
    			$cname=$d[$cf]['value_string'];
    		}elseif($d[$cf]['type']=='safe_string'){
    			$cname=$d[$cf]['value'];
    		}
    	}elseif(isset($d['street_id']) && $d['street_id']['value_string']!=''){
    		$cname=$d['street_id']['value_string'];
    	}
    	
    	if($cname=='' && in_array($associated_id, array(175, 187, 208, 213, 189, 190, 234))){
    		if(intval($this->getConfigValue('apps.afyexporter.allow_nostreet'))==1){
    			$ret.='<street></street>';
    		}else{
    			$hasError=true;
    			$logs[]=date('d-m-Y H:i:s', time()).' '.'ERROR: Record ID '.$d['id']['value'].' cant be exported. Street not setted.';
    		}
    	}elseif($cname==''){
    		$ret.='<street></street>';
    	}else{
    		$ret.='<street>'.SiteBill::iconv(SITE_ENCODING, 'utf-8', self::symbolsClear($cname)).'</street>';
    	}

 

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


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

У самого такая фигня - квартиры в поселках без улиц. В выгрузке Яндекса обошлись доп. запятой, между названием поселка и номером дома, что дало понять принимающей стороне, что улицы нет. В выгрузку для AFY еще толком не вникал.

Примеры:


<country>Россия</country>
<region>Московская область</region>
<district>Раменский район</district>
<locality-name>Электроизолятор</locality-name>
<address>, 14</address>

или
<country>Россия</country>
<region>Московская область</region>
<district>Раменский район</district>
<locality-name>Фоминское</locality-name>
<address>, 7</address>

похоже в admin.php модуля выгрузки AFY надо поковыряться в этом куске кода... ~700 строка:


    	/* Street */
    	
    	$cname='';
    	$cf=trim($this->getConfigValue('apps.afyexporter.street_field'));
    	if($cf!=='' && isset($d[$cf])){
    		if($d[$cf]['type']=='select_box' || $d[$cf]['type']=='select_by_query'){
    			$cname=$d[$cf]['value_string'];
    		}elseif($d[$cf]['type']=='safe_string'){
    			$cname=$d[$cf]['value'];
    		}
    	}elseif(isset($d['street_id']) && $d['street_id']['value_string']!=''){
    		$cname=$d['street_id']['value_string'];
    	}
    	
    	if($cname=='' && in_array($associated_id, array(175, 187, 208, 213, 189, 190, 234))){
    		if(intval($this->getConfigValue('apps.afyexporter.allow_nostreet'))==1){
    			$ret.='<street></street>';
    		}else{
    			$hasError=true;
    			$logs[]=date('d-m-Y H:i:s', time()).' '.'ERROR: Record ID '.$d['id']['value'].' cant be exported. Street not setted.';
    		}
    	}elseif($cname==''){
    		$ret.='<street></street>';
    	}else{
    		$ret.='<street>'.SiteBill::iconv(SITE_ENCODING, 'utf-8', self::symbolsClear($cname)).'</street>';
    	}

Покрутил... не случилось чуда...

 

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


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

Покрутил... не случилось чуда...

Насколько я понимаю в медицине, тут ситуация следующая:

в вышеуказанном коде указаны условия показывать/не показывать улицы и номера домов в выгрузке, которые привязаны к индексам типов недвижимости, в частности, для показухи улиц: 

array(175, 187, 208, 213, 189, 190, 234)

и для показа номеров домов:

array(175, 189, 216, 187)

а если покопаться дальше, то обнаружим вот такой списочек соответствий:

'0'=>'не указано',
'31'=>'Земельные участки (Продажа)',
'200'=>'Промышленные земли (Продажа)',
'175'=>'Квартиры (Продажа)',
'187'=>'Квартиры (Обмен)',
'208'=>'Квартиры (Аренда)',
'213'=>'Квартиры (Аренда посуточно)',
'216'=>'Пентхаусы (Продажа)',
'189'=>'Комнаты (Продажа)',
'190'=>'Комнаты (Обмен)',
'234'=>'Комнаты (Аренда)',
'102'=>'Дома/Коттеджи (Продажа)',
'50'=>'Дома/Коттеджи (Аренда)',
'124'=>'Дома/Коттеджи (Аренда посуточно)',
'195'=>'Дома/Коттеджи (Аренда на Новый год)',
'103'=>'Дачи (Продажа)',
'193'=>'Таунхаусы (Продажа)',
'202'=>'Гаражи  (Продажа)',
'203'=>'Гаражи  (Аренда)',
'197'=>'Торговые помещения (Продажа)',
'196'=>'Торговые помещения (Аренда)',
'199'=>'Склады  (Продажа)',
'198'=>'Склады (Аренда)',
'191'=>'Офисы (Продажа)',
'180'=>'Офисы (Аренда)',
'201'=>'Готовый бизнес (Продажа)',

Соответственно, улицы и номера домов показываются только для комнат и квартир, а для остальных типов - ингорируются.

Надо в вышеуказанный код формирования выгрузки улиц и номеров домов просто добавить и другие индексы (кроме участков и бизнеса) и тогда всё попрёт :). Или вообще убрать условие

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

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


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

Да, про настройку  "интервал дат выгрузки " - это интересно. В каком значении его там указывать?  Иначе все время выгрузка стартует с первого ID.

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


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

Да, про настройку  "интервал дат выгрузки " - это интересно.

Указывается в днях - целые числа. Говорит на сколько 24-х часовых промежутков в глубину от "сейчас" следует делать выборку объектов. Если не указана или указан 0, тогда выбирает все доступные к выборке.

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


Ссылка на сообщение
Поделиться на других сайтах
В 22.10.2016 в 19:09, Chernetskiy сказал:

в вышеуказанном коде указаны условия показывать/не показывать улицы и номера домов в выгрузке, которые привязаны к индексам типов недвижимости, в частности, для показухи улиц: 

почти в точку. Эти условия, верно, делаются по определенным типам. Но они не определяют показывать или нет, а, в первую очередь, проверяют следует ли возбуждать ошибку на данном объекте по этому параметру, если его не указано, так как обязательность некоторых полей зависит от типа.

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


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

Господа.... нид хел... после подключения поддержки валют выгружает

<price><currency>USD</currency><value>4100000</value><unit>total</unit></price>

Хотя по умолчанию стоит Рубль

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


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

Господа.... нид хел... после подключения поддержки валют выгружает

<price><currency>USD</currency><value>4100000</value><unit>total</unit></price>

Хотя по умолчанию стоит Рубль

Александр, зачем вам понадобилось в ад? :) 

Относительно цены, у вас в объявлении цена указана в USD? Потому так и выгружает.

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

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


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

Александр, зачем вам понадобилось в ад? :) 

Относительно цены, у вас в объявлении цена указана в USD? Потому так и выгружает.

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

Все в руб!)))

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


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

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

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

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

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

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

Войти

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

Войти сейчас