mykvartira

Участники
  • Публикации

    347
  • Зарегистрирован

  • Посещение

  • Days Won

    1

Сообщения, опубликованные пользователем mykvartira


  1. 43 минуты назад, doma сказал:

    ждем подробностей

    Подробности опишу после выходных, если вспомню)))

    Пока яндекс ругается на большое количество не валидных объявлений. Говорит что плохо размещают объявления пользователи, но выгрузка работает. Так что опишу. Всем хороших выходных


  2. 16 часов назад, TopRaN сказал:

    С микрорайон кой понятно, что за рейтинг?

    reyting-v-snippete.jpg

    Рейтинг можно посмотреть https://realt.by/ в подвале.

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

    Вот их рейтинг

    <div class="rating-schema"><span itemscope="" id="side_rating" itemtype="http://data-vocabulary.org/Review-aggregate"> <span class="grey" itemprop="itemreviewed">Наш рейтинг:</span> <strong> <span itemprop="">4.96</span> из <span>5</span> <!-- itemprop="best" --></strong> <span itemprop="rating" itemscope="" itemtype="http://data-vocabulary.org/Rating"> <meta itemprop="value" content="4.96"> <meta itemprop="best" content="5"> </span> <span class="grey"> (на основании <span itemprop="votes">1427</span> отзывов ) </span> <div class="stars"> <a onclick="estimate(0,1);" title="Оценить на 1 из 5"><i class="fa fa-star"></i></a> <a onclick="estimate(0,2);" title="Оценить на 2 из 5"><i class="fa fa-star"></i></a> <a onclick="estimate(0,3);" title="Оценить на 3 из 5"><i class="fa fa-star"></i></a> <a onclick="estimate(0,4);" title="Оценить на 4 из 5"><i class="fa fa-star"></i></a> <a onclick="estimate(0,5);" title="Оценить на 5 из 5"><i class="fa fa-star"></i></a> </div> <!-- stars --></span> <script type="text/javascript">
      function estimate(fe_user, value)
      {
        if(fe_user){
          confirmation("Вы действительно хотите поставить оценку " + value + "?", "Да", "Отмена", function (result) {
              if (result == true){
                $.get('//' + location.hostname + '/?eID=tx_uedbrating_add_rate&rate=' + value , function (data) {
                    notification(data,'ОК');
                });
              }
          });
        }
        else{
          notification('Вы должны зарегистрироваться на сайте', 'ОК');
        }
      }
    </script></div>

    Что вы думаете по этому поводу? 


  3. 11 минуту назад, abushyk сказал:

    ёпта)))

    Не надо в корне попок создавать. Это не настоящие папки, это адрес в виде папок))))

    Сносите и будет вам счастье. А то сейчас по адресу export/yandexru сервак видит эти папки и пытается в них найти ответ, а там пусто и получаете 403.

    БЛин круто. Уже несколько недель вожусь с этой выгрузкой. Спасибо Константин вам большое за реализацию и помощь. Моя выгрузка работает теперь чисто по России и я безмерно рад.

    Надеюсь яша примет мои объявления. УРА УРА УРА


  4. 3 минуты назад, mykvartira сказал:

    http://ваш_домен/export/yandexru

    Его куда-то в код нужно было вставлять? что-то запутался

    При запросе на сайт по адресу получаю вот что 

    2018-01-29_141229.jpg.d92052438e9bb24cada421870a1c4e4b.jpg

    Вот мой полный код из main.php

    if(!$has_result && $REQUESTURIPATH=='export/yandexru'){
        
        $ids_collection=array();
    
        /*Собираем коллекцию*/
        $DBC=DBC::getInstance();
        $query='SELECT `id` FROM '.DB_PREFIX.'_data WHERE `country_id`=1 AND `active`=1';
        $stmt=$DBC->query($query);
        if($stmt){
            while($ar=$DBC->fetch($stmt)){
                $ids_collection[]=$ar['id'];
            }
        }
    	
    	/*ЕСЛИ МЫ ПОНЯЛИ ЧТО РАБОТАЕТ SITE-ПОДМОДУЛЬ*/
        require_once SITEBILL_DOCUMENT_ROOT.'/apps/yandexrealty/admin/admin.php';
        require_once SITEBILL_DOCUMENT_ROOT.'/apps/yandexrealty/site/site.php';
        $YRE=new yandexrealty_site();
    	/*---КОНЕЦ---ЕСЛИ МЫ ПОНЯЛИ ЧТО РАБОТАЕТ SITE-ПОДМОДУЛЬ*/
    
        /*ПЕРЕДАЕМ ID В ВЫГРУЗЧИК*/
        $YRE->setExportedIds($ids_collection);
        
        /*ЗАПУСКАЕМ ВЫГРУЗКУ*/
        header("Content-Type: text/xml");
        echo $YRE->run_export();
        exit();
    }

    https или другими адресами там и не пахнет


  5. 2 минуты назад, abushyk сказал:

    http://ваш_домен/export/yandexru

     

    -->

    
    $query='SELECT `id` FROM '.DB_PREFIX.'_data WHERE `country_id`=1 AND `active`=1';

     

    Исправил. Получаю при запросе /export/yandexru

    Forbidden 403

    You don't have permission to access /export/yandexru/ on this server.

    Почему так?


  6. Подскажите правильно ли я сделал

    Создал адрес выгрузки export/yandexru/ в корне сайта

    В файле main.php, расположен в/template/frontend/realia/main/main.php, дописал 

    if(!$has_result && $REQUESTURIPATH=='export/yandexru'){
        
        $ids_collection=array();
    
        /*Собираем коллекцию*/
        $DBC=DBC::getInstance();
        $query='SELECT id FROM '.DB_PREFIX.'_data WHERE country_id=1';
        $stmt=$DBC->query($query);
        if($stmt){
            while($ar=$DBC->fetch($stmt)){
                $ids_collection[]=$ar['id'];
            }
        }
    	
    	/*ЕСЛИ МЫ ПОНЯЛИ ЧТО РАБОТАЕТ SITE-ПОДМОДУЛЬ*/
        require_once SITEBILL_DOCUMENT_ROOT.'/apps/yandexrealty/admin/admin.php';
        require_once SITEBILL_DOCUMENT_ROOT.'/apps/yandexrealty/site/site.php';
        $YRE=new yandexrealty_site();
    	/*---КОНЕЦ---ЕСЛИ МЫ ПОНЯЛИ ЧТО РАБОТАЕТ SITE-ПОДМОДУЛЬ*/
    
        /*ПЕРЕДАЕМ ID В ВЫГРУЗЧИК*/
        $YRE->setExportedIds($ids_collection);
        
        /*ЗАПУСКАЕМ ВЫГРУЗКУ*/
        header("Content-Type: text/xml");
        echo $YRE->run_export();
        exit();
    }

    В admin.php добавил echo 1; фид выгрузился в штатном режиме, без ошибок

    Установил время жизни фид 0

    Как вызвать новый фид, как его просмотреть, что делать дальше? ))


  7. 46 минут назад, Chernetskiy сказал:

    Здесь, упрощенно, речь идет о том, что если страна указана в объявлении, то выгружаем её в фид. Если не указана, то выгружаем значение по умолчанию из Настройки -> Выгрузка Яндекс.Недвижимость -> Единое название страны.

    Тут надо продумать более приемлемые варианты обработчика:

    • Дописать обработчик в модуль выгрузки, который исходно будет определять страну в объявлении и решать, выгружать-ли это объявление включая все остальный параметры.
    • Отдельный обработчик, который должен будет изначально определять список выгружаемых объявлений по ID страны и уже нужные обрабатывать через модуль выгрузки. 
    • Доработать функционал чекбокса is_yandexrealty, к которому прикрутить ограничения на выгрузку по id страны - проще говоря, он будет решать прописывать-ли в таблицу re_data признак активности для выгрузки - 1 или 0
    • Отдельный обработчик, который будет лопатить базу и заменять признак активности is_yandexrealty в базе запуском этой функции перед выгрузкой (может автоматически - кроном), особенно, если производится загрузка через файл Эксель или парсер. А дальше модуль выгрузки будет выгружать в стандартном режиме и без всяких доработок модуля выгрузки.

    Стучись к Константину, он подскажет более приемлемое направление.

    Думаю, что последний вариант будет интереснее, поскольку его можно сделать универсальным на набор параметров. Кому-то не надо выгружать другие страны, кому-то определенные ЖК-новостройки, кому-то плохие объекты по признаку состояния или материала строения и т.п.

    Честно говоря думал намного проще. типо указать из какой страны ID грузить объявления и все. 

    if($country==''){
    					if(''!=trim($this->getConfigValue('apps.yandexrealty.country_from'))){
    						$country_from=trim($this->getConfigValue('apps.yandexrealty.country_from'));
    					}else{
    						$country_from='ID=1';
    					}

    Указал ID 1 и все, обработчик будет делать выборку, только по этой стране. Буду разбираться


  8. /***********************LOCATION***************************/
    				$rs.='<location>'."\n";
    				
    				$country=trim($this->getConfigValue('apps.yandexrealty.country_global'));
    				if($country==''){
    					if(''!=trim($this->getConfigValue('apps.yandexrealty.country_from'))){
    						$country_from=trim($this->getConfigValue('apps.yandexrealty.country_from'));
    					}else{
    						$country_from='';
    					}
    						
    					if($country_from!='' && isset($data_item[$country_from])){
    						$country=$data_item[$country_from];
    					}else{
    						$country=$data_item['country'];
    					}
    				}
    				
    				if($country==''){
    					$errors[]=$data_item['id'].' DECLINED: Country unknown';
    					continue;
    				}else{
    					$rs.='<country>'.self::symbolsClear($country).'</country>'."\n";
    				}

    Скорее всего это здесь! Но что подставить, АЙди страны? И куда? 

    Как я понимаю здесь отправление идет по всем, но можно указать нужную страну. Подскажите плиз!!!


  9. 37 минут назад, Chernetskiy сказал:

    Варианты:

    1. прописываем в data чекбокс is_yandexrealrty и кликаем на него только на российских объектах недвижимости;
    2. додумать обработчик в admin.php модуля yandexrealty, который будет определять страну и если Россия, то объект уходит в выгрузку, иначе - нет и пофиг будет кликнули на чекбокс выгрузки в объявлении или нет;
    3. ограничиться вариантом 1, т.к. выгрузка уходя в Яндекс всё равно будет обработана и загрузятся только российские объекты а остальные нет, вам сообщат об ошибке адреса как причине незагрузки объявления.
    4. по п.1 установить видимость чекбокса для админа/модератора, он сам решит что выгружать а что нет.

    Спасибо, думаю 2й вариант это единственно правильное решение. Только разобраться как его реализовать. Буду позже смотреть код. Спасибо за подсказку 


  10. 5 минут назад, abushyk сказал:

    Кодом вряд ли кто-то поделится, так как из кода легко можно понять принцип формирования мета-данных, а таким особо никто не будет распространяться. Самый простой способ - возьмите 3-4 флагмана рынка и просмотрите, что они пишут там. Найдете общую логику, узнаете, что они туда вкладывают и выработаете свою систему по аналогии.

    Вот это верно. Сео делиться никто не любит. Буду анализировать конкурентов, хотя это не всегда дает результат. Конкурент может быть очень богатый))


  11. В 18.01.2018 в 17:22, abushyk сказал:

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

    А как сделать вывод только для России чрез чекбокс или как завести свой адрес для выгрузки в яндекс?


  12. Добрый день всем.

    Предлагаю поделиться мыслями о сео оптимизации карточек объектов.

    Оптимизируете и как?

    На данный момент у меня прописываются мета теги следующим образом:

    <title>{if $meta_title != ''}{$meta_title}{else}{$title}{/if}</title>
    <meta name="keywords" content="{if $meta_keywords != ''}{$meta_keywords}{else}{$meta_title}{/if}" />
    <meta name="description" content="{if $meta_description != ''}{$meta_description}{else}{$data.text.value|truncate:150}{/if}" />

    Пока это самый оптимальный вариант, но нет предела совершенству.

     

    Проще рассмотреть на примере:

    Есть карточка объекта " Продажа квартир / 2-комнатные, Украина, Львовская область, Львов, Ковалевської, 1 026 000 Грн. " это мой Н1, который формируется от тайтла.

    Ключевые слова и сам тайтл соответственно Продажа квартир/ 2- комнат...... и т.д.

    Можно сказать такие запросы не очень часто будут использоваться пользователями. Человек чаще спросит "купить 2 комнатную квартиру". А у нас об этом ничего в метатегах и как быть? Есть один вариант прописывать мета теги! Получаем следующее:

    Тайтл: Купить 2-комнатную квартиру в Украине в Львовской области г. Львов за 1 026 000 Грн. (прописан в мета тайтле)

    Ключевые слова: Купить 2-комнатную квартиру в Украине в Львовской области г. Львов за 1 026 000 Грн.

    Описание: стандартное, Можно лишь дописать в описанию Продам 2 комнатную квартиру и далее идет текст пользователя.

    Н1: Продажа квартир / 2-комнатные, Украина, Львовская область, Львов, Ковалевської, 1 026 000 Грн.

    Что скажите о такой оптимизации? Хоть она и ручная, но думаю можно автоматизировать.

     

    Например, для оптимизации, идентичность тайтла и н1 плохо. Они должны быть различными, слышали ли что-то про это?

    Поделитесь своим мнением, своим кодом оптимизации метатегов для карточек объектов.


  13. 9 часов назад, Chernetskiy сказал:

    1. Маска на phone не накладывается, только на mobilephone/

    2. Можете хоть все телефоны перевести на mobilephone, только имейте ввиду, что в базе сохранятся только цифры, без маски, т.е. +71234567890

    3. Прописать все возможные маски... не пробовал, сомневаюсь что будет работать. В данном случае задается единый формат ввода, если Константин еще чего-то не додумал... :) Скорее всего прийдется дописывать какое-то условие для переключения масок, по типу - выбрал флажок России и активируется маска +7..., выбрал флажок Украины, активируется маска +380 ...

    Да, только если так реализовать.


  14. Как я понимаю для поля телефон в таблице дата, могу указать mobilephone и добавить маску. А как если у меня 3 страны?

    Прописать все возможные маски?

    mask = +7 (hhh) hhh-hh-hh

    mask = +380 (hhh) hhh-hh-hh

    и т.д. 

    Правильно я понял и что может пойти не так? Спасибо


  15. В 09.10.2016 в 12:46, Chernetskiy сказал:

    укажите нужную вам маску ввода в параметрах строки mobilephone в таблице data, например:

    mask h (hhh) hhh-hh-hh или  mask +380 (hhh) hhh-hh-hh  или mask = +380 (44) hhh-hh-hh 

    можете жестко указать применяемый у вас код страны/города а остальное указать как h - любое подстановочное значение при вводе номера.

    Внимание! Это работает только для позиции mobilephone, для позиции phone - не работает. В базе значение телефона будет храниться без форматирования, типа +380441234567, маска работает только на ввод, чтобы пользователи не вводили что-попало.

    А как наложить такую же маску на поле phone? Или как реализовать правильность ввода телефона