wefunkpz

Яндекс.Недвижимость

Recommended Posts

Здравствуйте, уважаемые разработчики

 

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

Что изменить или добавить в коде ?

$image_field=trim($this->getConfigValue('apps.yandexrealty.images_field'));		 		$uploadsField=false;		$hasUploadify=false;		 		if($image_field!='' && isset($this->form_data_shared[$image_field]) && in_array($this->form_data_shared[$image_field]['type'], array('uploads', 'uploadify_image'))){			if($this->form_data_shared[$image_field]['type']=='uploadify_image'){				$hasUploadify=true;			}else{				$uploadsField=$image_field;			}		}else{			foreach($this->form_data_shared as $model_item){				if($model_item['type']=='uploadify_image'){					$hasUploadify=true;					$uploadsField=false;					break;				}elseif($uploadsField===false && $model_item['type']=='uploads'){					$uploadsField=$model_item['name'];				}			}		}

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


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

не-не. не то.

Нужны 2 условия

1. Свежее приложение яндекс выгрузки

2. Вы использовали настройку Сохранять картинки без вотермарка с самого начала.

 

Если первое поправимо, то без второго, грубо говоря, никак.

 

ПС. Так же таким требованием, кажется, страдает еще авито.

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


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

не-не. не то.

Нужны 2 условия

1. Свежее приложение яндекс выгрузки

2. Вы использовали настройку Сохранять картинки без вотермарка с самого начала.

 

Если первое поправимо, то без второго, грубо говоря, никак.

 

ПС. Так же таким требованием, кажется, страдает еще авито.

 

правильно ли я понимаю, что установив "Сохранять картинки без вотермарка", новые изображения в фиде будут без вотермарков, а на сайте с ними? 

спасибо за оперативный ответ

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


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

Нет. Не совсем так. Установив галочку сохранения без вотермарка вы создаете условия для сохранения "чистых" картинок вместе с теми, на которые нанесен вотермарк. А вот это уже дает возможность немного сменить условие вывода картинок и отдавать в фид картинки без водяного знака.

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


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

Нет. Не совсем так. Установив галочку сохранения без вотермарка вы создаете условия для сохранения "чистых" картинок вместе с теми, на которые нанесен вотермарк. А вот это уже дает возможность немного сменить условие вывода картинок и отдавать в фид картинки без водяного знака.

 

Окей, как изменить это условие? Где поправить код?

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


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

/apps/yandexrealty/admin/admin.php

 

блок

else{$rs.='<image>http://'.$_SERVER['HTTP_HOST'].SITEBILL_MAIN_URL.'/img/data/'.$v['normal'].'</image>'."\n";}

встречается два раза

 
/img/data/ в них нужно заменить на /img/data/nowatermark/
 
 
ПС. Правку даю пока по системному файлу.

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


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

В настройках галка "Сохранять копии без вотермарка",  действительно ли сохранения будут по этому пути - /img/data/nowatermark/   ?
Галочка стоит а данный путь нужно самому создавать чтоли?  Т.к. Добавляю объекты а данной папки нет и копий без вотермарков нет.

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


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

В настройках галка "Сохранять копии без вотермарка",  действительно ли сохранения будут по этому пути - /img/data/nowatermark/   ?
Галочка стоит а данный путь нужно самому создавать чтоли?  Т.к. Добавляю объекты а данной папки нет и копий без вотермарков нет.

Да, каталог /img/data/nowatermark/ нужно создать самостоятельно.

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


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

Да, каталог /img/data/nowatermark/ нужно создать самостоятельно.

Скажите, у меня нет в "Настройки - Выгрузка Яндекс.Недвижимость" поля "Системное имя поля модели для хранения названия района области" только поле" Системное имя поля с именем района" 

Почему?(

ведь по требованиям яндекса :

 

region  

Название субъекта РФ.

Необязательный элемент для объектов в Москве и Санкт-Петербурге.

district  

Название района субъекта РФ.

locality-name  

Название населенного пункта.

sub-locality-name  

Район населенного пункта.

address  

Адрес объекта (улица и номер здания).

Для загородной недвижимости номер дома указывать необязательно.

 

Из-за этого мне приходиться обобщать районы (и области и населенного пункта в один справочник)

 

SZ3y6Rq9d1U.jpg

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


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

Скажите, у меня нет в "Настройки - Выгрузка Яндекс.Недвижимость" поля "Системное имя поля модели для хранения названия района области" только поле" Системное имя поля с именем района" 

Почему?(

Из-за этого мне приходиться обобщать районы (и области и населенного пункта в один справочник...

Стандартно, в CMS Sitebill нет справочника областных районов. Это было как раз продиктовано "необязательностью". Но у меня, например такая ситуация, что только в одном районе есть по 2 одноименных населенных пункта, а сколько их наберется в рамках Московской области? По ходу выгрузки на сторонние порталы стали возникать проблемы с адресацией - портал принимал название населенного пункта и в отсутствии района адресовал его в первый попавшийся ему в списке район, а иногда и на противоположный конец страны. :) Поскольку ежедневно править кучу объявлений на сторонних порталах - еще то удовольстве, многие стали делать кастомные справочники Районов (области), для последующей выгрузки в составе адреса. А поскольку прикрутка Районов к Областям и Городам (Населенным пунктам) напрямую была не возможна, да и есть ряд вариантов адресации, когда населенные пункты в рамках одного региона имеют федеральную, областную и районную подчиненность, как раз и потребовались Связанные элементы, которые позволяют делать зависимости или использовать справочники как дополнительные (конечные) а не промежуточные. Можно организовать универсальные схемы привязки, например:

  • Страна-Город-Улица
  • Страна-Регион-Город-Улица
  • Страна-Регион-Район-Город-Улица
  • Страна-Регион-Шоссе
  • Страна-Регион-Город-Шоссе
  • Страна-Регион-Город-ж/д станции
  • Страна-Регион-Район-Ж/Д станции
  • Страна-Регион-Город-Район города-Метро
  • Страна-Регион-Город-Улица-Метро или
  • Страна-Регион-Город-Метро-Улица
  • Страна-Регион-Район-Застройщик
  • Страна-Регион-Город-Район города-Нотариус
  • Страна-Регион-Район-Нотариус
  • Город-Метро-Нотариус
  • и т.д., хоть одновременно в разных вариантах.

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

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


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

Стандартно, в CMS Sitebill нет справочника областных районов. Это было как раз продиктовано "необязательностью". Но у меня, например такая ситуация, что только в одном районе есть по 2 одноименных населенных пункта, а сколько их наберется в рамках Московской области? По ходу выгрузки на сторонние порталы стали возникать проблемы с адресацией - портал принимал название населенного пункта и в отсутствии района адресовал его в первый попавшийся ему в списке район, а иногда и на противоположный конец страны. :) Поскольку ежедневно править кучу объявлений на сторонних порталах - еще то удовольстве, многие стали делать кастомные справочники Районов (области), для последующей выгрузки в составе адреса. А поскольку прикрутка Районов к Областям и Городам (Населенным пунктам) напрямую была не возможна, да и есть ряд вариантов адресации, когда населенные пункты в рамках одного региона имеют федеральную, областную и районную подчиненность, как раз и потребовались Связанные элементы, которые позволяют делать зависимости или использовать справочники как дополнительные (конечные) а не промежуточные. Можно организовать универсальные схемы привязки, например:

  • Страна-Город-Улица
  • Страна-Регион-Город-Улица
  • Страна-Регион-Район-Город-Улица
  • Страна-Регион-Шоссе
  • Страна-Регион-Город-Шоссе
  • Страна-Регион-Город-ж/д станции
  • Страна-Регион-Район-Ж/Д станции
  • Страна-Регион-Город-Район города-Метро
  • Страна-Регион-Город-Улица-Метро или
  • Страна-Регион-Город-Метро-Улица
  • Страна-Регион-Район-Застройщик
  • Страна-Регион-Город-Район города-Нотариус
  • Страна-Регион-Район-Нотариус
  • Город-Метро-Нотариус
  • и т.д., хоть одновременно в разных вариантах.

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

Да, я в курсе, что справочника нет. Сделать справочник то не проблема. Сделать связные элементы тоже. Главный вопрос в том, что в приложении "Выгрузка Яндекс.Недвижимость" нет поля для ввода значения "Системное имя поля модели для хранения названия района области(apps.yandexrealty_parser.district_field)"

Только "Системное имя поля с именем района(apps.yandexrealty.district_from)"

Тогда к примеру как в приложении Yandex.Realty Parser оно есть

И в приложении Выгрузка Яндекс.Недвижимость тоже должно быть. Так как приложение должно же соответствовать требованиям яндекса...?

 

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

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

apps.yandexrealty_parser.district_field     <district>

и

apps.yandexrealty.district_from      <sub-locality-name>

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


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

Добавь в apps/yandexrealty/admin/admin.php, примерно 300 строка (район для позиции Районы в Настройки - Выгрузка Яндекс.недвижимость, это не обязательно, но позволит настраивать системное имя района и устанавливать единое название района по умолчанию, если район один и он основной):

...
if ( !$config_admin->check_config_item('apps.yandexrealty.region_global') ) {
$config_admin->addParamToConfig('apps.yandexrealty.region_global','','Единое название региона');
}
if ( !$config_admin->check_config_item('apps.yandexrealty.raion_from') ) {
$config_admin->addParamToConfig('apps.yandexrealty.raion_from','','Системное имя поля с именем района');
}
if ( !$config_admin->check_config_item('apps.yandexrealty.raion_global') ) {
$config_admin->addParamToConfig('apps.yandexrealty.raion_global','','Единое название района');
}
if ( !$config_admin->check_config_item('apps.yandexrealty.street_from') ) {
$config_admin->addParamToConfig('apps.yandexrealty.street_from','','Системное имя поля с именем улицы');
}
...

Далее, примерно в 1610 строке, организуем выгрузку (между регионом и городом):

...
if($region!=''){
$rs.='<region>'.self::symbolsClear($region).'</region>'."\n";
}
				$raion=trim($this->getConfigValue('apps.yandexrealty.raion_global'));
				if($raion==''){
					if(''!=trim($this->getConfigValue('apps.yandexrealty.raion_from'))){
						$raion_from=trim($this->getConfigValue('apps.yandexrealty.raion_from'));
					}else{
						$raion_from='';
					}
					if($raion_from!='' && isset($data_item[$raion_from])){
						$raion=$data_item[$raion_from];
					}else{
						$raion=$data_item['raion'];
					}
				}
				if($raion!=''){
					$rs.='<district>'.self::symbolsClear($raion).'</district>'."\n";
				}
$city=trim($this->getConfigValue('apps.yandexrealty.city_global'));
if($city==''){
...

Забыл добавить, у меня в базе системное имя районов области - raion, он и присутствует в коде. Если название другое - поменяй.

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

...
if(isset($form_data_shared['region_id'])){
$select[]='re.name AS region';
$leftjoin[]='LEFT JOIN '.DB_PREFIX.'_region re USING(region_id)';
}
		if(isset($form_data_shared['raion_id'])){
    		$select[]='rn.name AS raion';
    		$leftjoin[]='LEFT JOIN '.DB_PREFIX.'_raion rn USING(raion_id)';
    	}
if(isset($form_data_shared['city_id'])){
$select[]='ct.name AS city';
$leftjoin[]='LEFT JOIN '.DB_PREFIX.'_city ct ON dt.city_id=ct.city_id';
}
...

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

В принципе, всё делается по аналогии с соседними позициями.

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


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

Добавь в apps/yandexrealty/admin/admin.php, примерно 300 строка (район для позиции Районы в Настройки - Выгрузка Яндекс.недвижимость, это не обязательно, но позволит настраивать системное имя района и устанавливать единое название района по умолчанию, если район один и он основной):


...
if ( !$config_admin->check_config_item('apps.yandexrealty.region_global') ) {
$config_admin->addParamToConfig('apps.yandexrealty.region_global','','Единое название региона');
}
if ( !$config_admin->check_config_item('apps.yandexrealty.raion_from') ) {
$config_admin->addParamToConfig('apps.yandexrealty.raion_from','','Системное имя поля с именем района');
}
if ( !$config_admin->check_config_item('apps.yandexrealty.raion_global') ) {
$config_admin->addParamToConfig('apps.yandexrealty.raion_global','','Единое название района');
}
if ( !$config_admin->check_config_item('apps.yandexrealty.street_from') ) {
$config_admin->addParamToConfig('apps.yandexrealty.street_from','','Системное имя поля с именем улицы');
}
...

Далее, примерно в 1610 строке, организуем выгрузку (между регионом и городом):


...
if($region!=''){
$rs.='<region>'.self::symbolsClear($region).'</region>'."\n";
}
				$raion=trim($this->getConfigValue('apps.yandexrealty.raion_global'));
				if($raion==''){
					if(''!=trim($this->getConfigValue('apps.yandexrealty.raion_from'))){
						$raion_from=trim($this->getConfigValue('apps.yandexrealty.raion_from'));
					}else{
						$raion_from='';
					}
					if($raion_from!='' && isset($data_item[$raion_from])){
						$raion=$data_item[$raion_from];
					}else{
						$raion=$data_item['raion'];
					}
				}
				if($raion!=''){
					$rs.='<district>'.self::symbolsClear($raion).'</district>'."\n";
				}
$city=trim($this->getConfigValue('apps.yandexrealty.city_global'));
if($city==''){
...

Забыл добавить, у меня в базе системное имя районов области - raion, он и присутствует в коде. Если название другое - поменяй.

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


...
if(isset($form_data_shared['region_id'])){
$select[]='re.name AS region';
$leftjoin[]='LEFT JOIN '.DB_PREFIX.'_region re USING(region_id)';
}
		if(isset($form_data_shared['raion_id'])){
    		$select[]='rn.name AS raion';
    		$leftjoin[]='LEFT JOIN '.DB_PREFIX.'_raion rn USING(raion_id)';
    	}
if(isset($form_data_shared['city_id'])){
$select[]='ct.name AS city';
$leftjoin[]='LEFT JOIN '.DB_PREFIX.'_city ct ON dt.city_id=ct.city_id';
}
...

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

В принципе, всё делается по аналогии с соседними позициями.

Спасибо!

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


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

Пишу просто сказать спасибо разработчикам за качественный продукт и всем кто помогал в настройке.

В частности Дмитрию, abushyk и Игорю!

У нас на яндексе при выгрузке по фиду 100% валидности!

 

204312075_.jpg.bfa0b8db7670ca4613badbc5fd8ffdaa.jpg

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


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

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

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

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

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

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

Войти

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

Войти сейчас