1. Как оптимизировать код для создания xml файла для Яндекс.Недвижимости
2. Скрипт писал для своих нужд по стандарту Яндекса ( https://help[dot]yandex[dot]ru/webmaster[dot][dot][dot]requirements[dot]xml ), все ли верно - кто сталкивался, хочется комментариев + доработок.
3. Как при создании xml файла привести его в нормальный вид (в данном варианте выводит все в куче)
В целом - хотелось бы хорошего совета от гуру!
Спойлер (Отобразить)
CODE (htmlphp):
скопировать код в буфер обмена
скопировать код в буфер обмена
- <?PHP
- function yml_generator($id, // id из бд
- $type, //тип: 1 - продажа # 2 - аренда
- $url, //URL страницы с объявлением
- $country, //страна, в которой расположен объект (Россия)
- $city, //название населенного пункта (Норильск)
- $address, //Улица и номер дома (Хантайская улица, дом №3)
- $name, //имя продавца/арендодателя или агента
- $phone, //контактный номер телефона. Если номеров несколько, каждый из них необходимо передавать в отдельном элементе phone
- $category_type, //Владелец или Агенство (1 - владелец ,2 - агентство)
- $organization_name, //организация
- $organization_url, //URL сайта с http:// организации
- $organization_email, //Емаил организации
- $price, //Цена
- $currency, //Валюта 1 - руб, 2 - евро, 3 - доллар, 4 - uah, 5 - byr, 6 - kzt
- $haggle, //Торг (1 - да, 0 - нет)
- $mortgage, //Ипотека (1 - да, 0 - нет)
- $images, //Массив с фотографиями (http://sait/1.jpg)
- $description, //Информация
- $rooms, //кол-во комнат
- $rooms_offered, //для продажи и аренды комнат: количество комнат, участвующих в сделке
- $room_furniture //Наличие мебели
- ){
- ob_start();
- $date_creation = date("d.m.y");
- if($category_type == 1){ $category_type = "владелец"; } elseif($category_type == 1) {$category_type = "агентство"; } else { die("Ошибка - Значение владелца или агенства не задано"); }
- if($currency == 1){ $currency = "RUB"; }
- elseif($currency == 2){ $currency = "EUR"; }
- elseif($currency == 3){ $currency = "USD"; }
- elseif($currency == 4){ $currency = "UAH"; }
- elseif($currency == 5){ $currency = "BYR"; }
- elseif($currency == 6){ $currency = "KZT"; }
- else { die("Ошибка - Значение валюты, в которой указана цена не знадано"); }
- echo '<?xml version="1.0" encoding="utf-8"?>';
- echo '<realty-feed xmlns="http://webmaster.yandex.ru/schemas/feed/realty/2010-06">';
- echo '<generation-date>'.$dateformat.'</generation-date>';
- echo '<offer internal-id="'.$id.'">';
- echo '<type>'.$type.'</type>';
- echo '<property-type>жилая</property-type>';
- echo '<category>квартира</category>';
- echo '<url>'.url.'</url>';
- echo '<creation-date>'.$date_creation.'</creation-date>';
- echo '<location>';
- echo '<country>'.$country.'</country>';
- echo '<locality-name>'.$city.'</locality-name>';
- echo '<address>'.$address.'</address>';
- echo '</location>';
- echo '<sales-agent>';
- echo '<name>'.$name.'</name>';
- echo '<phone>'.$phone.'</phone>';
- echo '<category>'.$category_type.'</category>';
- if($category_type == 2){
- echo '<organization>'.$organization_name.'</organization>';
- echo '<url>'.$organization_url.'</url>';
- echo '<email>'.$organization_email.'</email>';
- }
- echo '</sales-agent>';
- echo '<price>';
- echo '<value>'.$price.'</value>';
- echo '<currency>'.$currency.'</currency>';
- echo '</price>';
- if($haggle == 1){
- echo '<haggle>'.$haggle.'</haggle>';
- }
- if($mortgage == 1){
- echo '<mortgage>'.$mortgage.'</mortgage>';
- }
- if($images != 0){
- foreach($images AS $row){
- echo '<image>'.$row.'</image>';
- }
- }
- if($description != 0){
- echo '<description>'.$description.'</description>';
- }
- if($rooms != 0){
- echo '<rooms>'.$rooms.'</rooms>';
- }
- if($room_furniture != 0){
- echo '<room-furniture>'.$room_furniture.'<room-furniture>';
- }
- if($floor != 0){
- echo '<floor>'.$room_furniture.'<floor>';
- }
- echo '</offer>';
- echo '</realty-feed>';
- $feed = ob_get_contents(); ob_end_clean();
- $name = time();
- $f = fopen($name.'.xml', 'w+');
- fwrite($f, ($feed));
- $ok = fclose($f);
- if($ok){ echo "XML создан: ".$name.".xml"; }
- }
- echo yml_generator(1,1,'http://sait.ru/tovar1', 'Россия','Норильск','Рудная улица, до 15', 'Дмитрий', '79135000000', 1,0,0, 0, '800000', 1, 1, 0, array('http://sait/1.jpg', 'http://sait/2.jpg','http://sait/3.jpg'), 'Хорошая квартира, окна ПВХ', 3, 0, 1);
- ?>