abushyk

Модераторы
  • Публикации

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

  • Посещение

  • Days Won

    269

Изменения репутации

  1. Like
    abushyk получил репутацию от DoobBY в Как сделать одинаковые картинки на выдаче квартир   
    и все-таки это в реалти_вайв ближе к низу
    <a href="{$similar_data[x].href}"><img src="{$estate_folder}/img/data/{$similar_data[x].image.image_array[0].preview}" width="100" /></a> width="100"
    Можете убрать ее и управлять только стилями.
  2. Like
    abushyk получил репутацию от bogdanoff в Параметры filter_double_data   
    Ой. я почему-то прочитал про параметры "похожих", а тут дублей. В том же разделе настроек есть поле apps.realty.uniq_params в котором через запятую можно перечислить системные имена полей из модели data равенство которых будет означать наличие дубли. Установив там список и включив настройку filter_double_data вы заставите код отслеживать совпадения по заданным параметрам. Например вы можете задать
    city_id,topic_id,price и будут блокироваться все записи если они имеют в этих полях значения, которые есть уже в объявлениях добавленных (не пропустятся объявления которые расположены в одном и том же городе, в одном и том же разделе и с одинаковой ценой).
  3. Like
    abushyk получил репутацию от Smoke в Странная проблема при добавлении объявлений   
    я там выше добавил.
  4. Like
    abushyk получил репутацию от Smoke в Странная проблема при добавлении объявлений   
    Значит Дима чуть позже будет выдавать. У меня иногда бывает много частых апов, но все мелкие и иногда приходится их накопить хоть чуть-чуть.
     
    УПД
    Можете авансом попробовать ввести такое
    в файле /apps/system/lib/system/user/login.php в function Login () после
    $this->SiteBill(); $this->hardmode=false; вставить
    if(!isset($_SESSION['key'])){ $this->setSessionKey($this->GenerateSessionKey(0)); }  
  5. Like
    abushyk изменил репутацию Chernetskiy в Раскрутка сайта в Интернет   
    Полезные ссылки для вебмастера
    Ссылки, которые пригодятся и вам.

    Общее
    1. Просмотр сайта в различных браузерах: http://browsershots.org/ Ресурс позволяет узнать, как ваш сайт видят пользователи в разных браузерах, в том числе позволяет оценить кроссбраузерную верстку сайта.
    2. Конвертер punycode для .рф доменов: http://2ip.ru/punycode Позволяет получить адрес в punycode для вашего домена в зоне .рф. Или, проще говоря, ресурс позволяет превратить название www.ромашковый-рай.рф в абракадабру, которую понимают компьютеры: xn----7sbbg9accordri2hzb.xn--p1ai.
    3. Декодер почты. Пришло письмо с нечитаемыми символами? Прочитать его можно тут: http://www.charset.ru/
    4. Назад в будущее: http://web.archive.org – ресурс позволяет посмотреть этапы изменения сайта. Не помните, когда меняли текст на сайте или просто интересно посмотреть, как выглядел ваш сайт в день его открытия? Ресурс для вас.
    Оптимизация сайта
    5. Подбор ключевых слов, семантического ядра. Правильно подобрать ключевые слова для вашего сайта поможет сервис Wordstat от Яндекса. Как пользоваться этим сервисом читайте по ссылке: http://1ps.ru/help/word/
    6. Мета-теги title и description. Все знают, что эти теги важны для оптимизации и продвижения сайта. Как правильно прописать мета-теги title и description в примерах читайте по ссылке: http://1ps.ru/blog/seo/title-i-description-v-primerah/
    7. 301 редирект. Сменили доменное имя? До сих пор не настроили постоянное перенаправление с www на без www вашего сайта? 301-редирект вам в помощь. Как настроить редирект 301 хорошо написано на сайте: http://sb-money.ru/article.php?a=75
    8. Карта сайта, sitemap. Создать карту сайта онлайн можно с помощью сервиса http://htmlweb.ru/analiz/sitemap.php . Заодно сервис анализирует ваш сайт и указывает на основные критические ошибки.
    9. Новости SEO, все для оптимизатора: http://www.allseo.ru/news Хороший ресурс о новинках в области SEO.
    10. Форумы по продвижению, оптимизации сайтов: http://seochase.com/ , http://forum.searchengines.ru/
    Анализ сайта
    11. Seo анализ сайта, сервис для оптимизатора: http://mainspy.ru/ - позволяет провести общий анализ сайта, определить тИЦ, PR, и еще много других параметров.
    12. Анализ контента. http://pr-cy.ru/analysis_content – сервис позволяет определить вес главной страницы сайта, релевантность заголовка (title) и другое.
    13. Определить CMS сайта. Сервис http://itrack.ru/whatcms/ - позволяет узнать, на какой CMS разработан ваш сайт.
    14. Проверка сайта на вирусы. https://www.virustotal.com/ru/#url
    Help Яндекса
    15. Служба поддержки Яндекса. Есть вопросы Яндексу? Пишите сюда, Платон ответит: http://feedback.yandex.ru/webmaster/
    16. О том, каким должен быть хороший сайт. Как сделать хороший сайт по мнению Яндекса, можно прочитать по ссылке: http://help.yandex.ru/webmaster/?id=1108938
    17. О robots.txt. Использование robots.txt, что зачем и как узнайте по ссылке: http://help.yandex.ru/webmaster/?id=996567
    18. Что такое зеркала сайтов, кому они нужны, как их настроить: http://help.yandex.ru/webmaster/?id=995297
    19. Карта сайта (sitemap). Что такое карта сайта, для чего нужна, что обязательно нужно учесть при ее создании. http://help.yandex.ru/webmaster/?id=1007070
    20. Рекомендации Яндекса по созданию сайтов: http://help.yandex.ru/webmaster/?id=1108938
    21. Коды региональной выдачи: http://search.yaca.yandex.ru/geo.c2n Сервис позволяет узнать, как выглядит выдача в другом регионе. Например, вы ищите «пластиковые окна» и хотите увидеть результаты поиска для Москвы, достаточно поменять параметр &lr в адресной строки на &lr=213. Будет показана выдача Москвы.
    22. Правила размещения рекламы на Яндексе: http://advertising.yandex.ru/requirement/media/regulations.xml?ncrnd=7571 На данной странице перечислены основные ограничения и требования к рекламе в Интернете.
     
     
  6. Like
    abushyk получил репутацию от Александр Лубянский в Монетизация с помощью списков просмотров   
    Суть
     
    Разрешить просмотр контактных данных объявления для пользователей, которые подключили и оплатили некоторый список просмотра (СП). Список просмотра регламентирует количество дней на протяжении которых доступен просмотр контактов и стоимость данного периода.
    Подключение СП проходит через раздел Личного кабинета (ЛК), а оплата списка производится из ЛК посредством Робокассы.
    Намеренно исключаю возможность задания СП при регистрации, когда вместе с регистрационными данными пользователь должен выбрать конкретный вариант СП, что бы унифицировать процедуру пользования СП для обычных пользователей и пользователей регистрирующихся через соцсети.
    Пример будет приведен на базе шаблона realia, но для любого другого шаблона принцип будет аналогичен.
     
    Приницип работы
     
    При загрузке страницы происходит извлечение СП для текущего пользователя. Если есть в наличии хоть один активный для данного момента времени СП в переменную сессии сохраняется состояние "открыто". Этот параметр проверяется в местах, где необходим вывод контактны данных и средствами шаблона принимается решение - выводить или скрыть блок с контактными данными.
     
    Задействованные приложения
     
    registersms - приложение используется формально. Находится в выключенном состоянии и служит для хранения настроки соотношения периода СП и цены за этот период. В принципе не критично и может быть реализовано отдельной настройкой
    watchlistmanager - приложение-хранилище функционала для работы СП. Должно быть, быть включенным и установленным.
    настройки Робокассы - must have
     
    Необходимые файлы
     
    Набор вспомогательных файлов можно скачать тут
    Файлы в архиве расфасованы согласно структуре шаблона. Т.е. то, что находится в папке main должно лечь в папку main вашего шаблона etc.
     
    Изменения
     
    В файле main.php
     
    Внутри class frontend_main extends SiteBill_Krascap {...} добавляем функцию getViewOptions, которая загружает СП для пользователя. Код функции копируем из http://pastebin.com/8rMZNU4U
     
    В функции main() производим вызов вставленной выше функции и загрузку цен на СП из конфигурации. Общий код изменений тут
    Блок А вставляем после строк
    $work_subcontroller='';$has_result=false;$undetected_url=false; Блоком Б заменяем блок
    if ( !$has_result && preg_match('/\/robox/', $_SERVER['REQUEST_URI']) ) {...} Блоком В дополняем ветвистость 
    if ( preg_match('/^account\/profile/', $REQUESTURIPATH) ) { перед последним }else{
     
    В файле header.tpl
     
    Добавляем кусочек, заносящий цены в переменные скриптов
    {literal}<script type="text/javascript">var _costs={/literal}{if $_costs ne ''}{$_costs}{else}[]{/if}{literal};</script>{/literal} Блок ставится в любом месте между тегами <head> и </head>
     
    В файле realty_view.tpl
     
    Фактически основные функциональные изменения, которые скрывают контактные данные.
    Находим блок, отображающий контактные данные и обрамляем его конструкцией 
    {if $smarty.session.viewOptions.mode=='opened'}<!--Тут собственно контактные данные-->{else}Оплатите доступ к данным или другая информация{/if} Настройка
     
    Руководящими настройками для работы СП являются настройка цен. Соответствие цен и длительности периодов указывается в переменной Настройки - Регистрация через SMS - Стоимость категорий (apps.registersms.costs_array). Значения задаются в виде строки
    {N1:P1}{N2:P2}{N3:P3}{N4:P4}{N5:P5} - где N- длительность периода. По-умолчанию в днях. Р- стоимость этого периода.
    Например:
    {1:70}{2:100}{3:150} мы предусматриваем открытие просмотров контактов в вариантах на 1, 2 или 3 дня с соответствующими стоимостями 70, 100 и 150 рублей.
     
    Кроме этого места необходимо еще указать допустимые периоды (продублировать) в обработчике СП - /template/frontend/шаблон/main/local_watchlistmanager.php. В этом файле необходимо найти функцию getWLModel() и в ней изменить строку 
    $form_data['period']['grade_values'] = array('1', '2', '3', '7', '31'); где указать наш перечень периодов
    $form_data['period']['grade_values'] = array('1', '2', '3'); Замечание
     
    Шаблон realia оборудован плагином-украшателем ezMark, который, не смотря на свою красивость, доказал несостоятельность при работе с элементами типа radio - кружочки с точечками в форме. Поскольку форма добавления СП использует именно такие элементы, а в остальных формах мы практически не используем их, то рекомендую сузить область работы этого плагина только элементами типа checkbox.
    Для этого в файле /template/frontend/realia/js/realia.js в функции InitEzmark() следует закомментировать строку
    $('input[type="radio"]').ezMark();
  7. Like
    abushyk получил репутацию от BBM_ в Пара вопросов   
    Что бы незарегистрированные не могли добавлять объявления в Настройки - Общее - Запретить гостевое добавление поставить галочку. Этим вы лишите гостей физической возможности добавлять.
    -----------------
    Кнопка Добавить объявление является частью шаблона. Убрать ее можно так. В файле /template/frontend/realia/header_contact_add.tpl убираем строки
    {if $smarty.session.user_id eq ''} <a class="btn btn-primary btn-large list-your-property arrow-right" href="{$estate_folder}/add/">{$L_ADD_ADV}</a> {else} <a class="btn btn-primary btn-large list-your-property arrow-right" href="{$estate_folder}/account/data/?do=new">{$L_ADD_ADV}</a> {/if} После этого кнопка пропадет для всех.
    -----------------
    Кнопку регистрации прячем следующим образом. В файле /template/frontend/realia/main.tpl удаляем строку
    <li><a href="#" data-toggle="modal" data-target="#prettyLogin">{$L_AUTH_REGISTRATION}</a></li>  
  8. Like
    abushyk получил репутацию от BBM_ в Пара вопросов   
    Сама заявка не попадет, поскольку это концептуально не заявка, а все таки внутрисайтовое приватное сообщение. Хаком может быть такое: в админчасти приложения Mailbox, которое как раз и обрабатывает сообщения с этой кнопки, есть кнопочка Отправить всем. Если взять текст и "заявки" и вставить там в форму, оно отправит это всем зарегистрированным пользователям. Если у вас там кроме "своих" никого не будет, то на какое-то время это может быть костылем.
  9. Like
    abushyk получил репутацию от FD в Добавляются пробелы...   
    Посмотрите кодировку файлов шаблона. Что бы она была "utf-8 w\o BOM" а не просто "utf-8".
  10. Like
    abushyk получил репутацию от Александр Лубянский в Отдельная страница всех агентов   
    Если вы хотите создать статичную страницу, то следует учитывать, что как следует из ее названия, контент в ней статичен. Т.е. вы один раз наполняете контент и он не меняется со временем. Другими словами записали список агентов в тело страничи и, даже если в БД агентов станет больше, то это не отразится на вашей статичной странице.
    Если же вы хотите, что бы данные для списка брались напрямую из БД, т.е. динамично, то вариант со статичными страницами не подходит. В таком случае просто следует зарезервировать роут под эту страницу в файле main.php и под него вызывать функцию, которая создаст нужный вам список+подключит его вывод. Такие решения есть, например тут http://an-pdm.ru/workers , но они, в данный момент, не являются коробочными (их нет в базовой установке шаблонов).
  11. Like
    abushyk получил репутацию от kkkv39 в Вывод всего списка спецпредложений   
    spec=1
  12. Like
    abushyk изменил репутацию XTRO в Размер VIP внизу страницы (Realia)   
    top_special.tpl
  13. Like
    abushyk получил репутацию от Helenblondi в Короткие ссылки   
    Я вчера перебирал модуль роутинга объявлений и не буду гарантировать, что в дальнейшем оно сохранится, но постараюсь оставить возможность автоматического редиректа с подобного "технического" адреса на текущий по настройкам.
  14. Like
    abushyk получил репутацию от Pavel88 в Описание и Характеристики в шаблоне Real-spaces   
    Делаем так.
    Файл /template/frontend/real-spaces/realty_view.tpl
    <div class="tabs"> <ul class="nav nav-tabs"> <li class="active"> <a data-toggle="tab" href="#description"> {$LT_DESCRIPTION} </a> </li> <li> <a data-toggle="tab" href="#amenities"> {$LT_CHARACTERISTICS} </a> </li> </ul> <div class="tab-content"> <div id="description" class="tab-pane active"> {if isset($data.text) && $data.text.value != ''} <p>{$data.text.value}</p> {/if} </div> <div id="amenities" class="tab-pane"> **************начало блока который нужно скопировать******************** <div class="additional-amenities"> <ul class="realty-options"> {foreach from=$hvd_tabbed item=tab key=tabname} {if $tab|count>0} {foreach from=$tab item=data_item} {if $data_item.type eq "primary_key" or $data_item.value eq "0" or $data_item.value eq "" or $data_item.name eq "currency_id" or $data_item.name eq "export_cian" or $data_item.name eq "user_id" or $data_item.name eq "price" or $data_item.name eq "youtube" or $data_item.type eq "hidden" or $data_item.name eq "text" or $data_item.type eq "geodata" or $data_item.name eq "meta_keywords" or $data_item.name eq "meta_description" or $data_item.name eq "meta_title" or $data_item.type eq "uploads"} {elseif $data_item.name eq "fio"} {assign var="agent_fio" value=$data_item.value} {elseif $data_item.name eq "phone"} {assign var="agent_phone" value=$data_item.value} {elseif $data_item.name eq "email"} {assign var="agent_email" value=$data_item.value} {elseif $data_item.type eq "select_by_query"} {if $data_item.value_string!=''} {include file="wg_viewport_selectbyquery.tpl" wg_item=$data_item} {/if} {elseif $data_item.type eq "select_box_structure"} {if $data_item.value_string!=''} {include file="wg_viewport_selectbyquery.tpl" wg_item=$data_item} {/if} {elseif $data_item.type eq "checkbox"} {if $data_item.name ne 'hot' and $data_item.name ne 'active'} {if $data_item.value eq 1} {include file="wg_viewport_checkbox.tpl" wg_item=$data_item} {/if} {/if} {elseif $data_item.type eq "select_box"} {if $data_item.value_string!=''} {include file="wg_viewport_selectbox.tpl" wg_item=$data_item} {/if} {elseif $data_item.type eq "tlocation"} <li><label>{$data_item.title}</label><span>{$data_item.tlocation_string}</span></li> {else} {if $data_item.value!=''} {if $data_item.name eq "text"} {include file="wg_viewport_text.tpl" wg_item=$data_item} {else} {include file="wg_viewport_common.tpl" wg_item=$data_item} {/if} {/if} {/if} {/foreach} {/if} {/foreach} </ul> </div> **************конец блока который нужно скопировать******************** </div> </div> </div> Копируем в одельный файл отмеченный в листинге блок.
    Потом вытираем все, что в листинге и на его место ставим
    {if isset($data.text) && $data.text.value != ''} <h3 class="big_title">{$LT_DESCRIPTION}</h3> <div id="description"> {$data.text.value} </div> {/if} <h3 class="big_title">{$LT_CHARACTERISTICS}</h3> *********тут то, что мы скопировали из предыдущего листинга*************  
  15. Like
    abushyk получил репутацию от Anton в Количество объектов на одной странице.   
    Задача скорее практически не решаемая. Такое решение оптимально подходит для систем где есть однозначный признак сортировки - например соцсети, где фактически сортирующим признаком является идешка, направление роста которой всегда направлено в сторону увеличения. Что позволяет постраничные выборки делать в виде дополнительной фильтрации "от уже показанного ид и выше" обрезая полученную выборку от начала на длинну записей на странице. В результате запросы лимитируются по виду LIMIT N, что оч хорошо.
     
    В работе с недвижкой сортирующих факторов больше чем один, а самый "удобный" - по ид - является так же и самым бесполезным. Поэтому все постарничные запросы приходят к виду LIMIT M, N. А принцип выборок по таким запросам весьма трудоемок с ростом M. Т.е. если вам нужно получить 5-ю страницу и на странице у вас 10 объектов, то по факту вам нужно выдернуть с базы 50-объектов и первые 40-к выкинуть. Естественно на 1000-й странице объемы возрастут. Так что тут дело не в количестве на страницу, а скорее в балансе между количеством на страницу и количеством страниц.
     
    Для поисковика по факту важна первая страница из постранички. Вторую и далее он вообще не должен видеть. А первая обычно ВСЕГДА загружается менее напряжно по сравнению с остальными. Так что не парьте голову и учитывайте именно удобство людей. Листать странички по 3 объекта и листать списки по 500\страницу - две крайности.
  16. Like
    abushyk изменил репутацию Chernetskiy в убрать вход выход с сайта шаблон Realia   
    Елена, это вылазит меню ЛК, оно будет появляться только у тебя, когда авторизуешься в админке.
    В принципе, можно убрать содержимое user_menu.tpl, или убрать из main.tpl вот этот кусок:
    <div class="account pull-right"> <ul class="nav nav-pills"> {if $smarty.session.user_id eq ''} <li><a href="#" data-toggle="modal" data-target="#prettyLogin">{$L_LOGIN_BUTTON}</a></li> <li><a href="#" data-toggle="modal" data-target="#prettyLogin">{$L_AUTH_REGISTRATION}</a></li> {else} {if isset($user_menu)}{$user_menu}{/if} <li><a href="{$estate_folder}/logout/" >{$L_LOGOUT_BUTTON}</a></li> {/if} </ul> </div> который выводит кнопки и меню ЛК и кнопку "выход", если авторизован.
    Как я понимаю, часть из этого кода ты уже удалила а кусок остался.
  17. Like
    abushyk получил репутацию от kkkv39 в Вывод всего списка спецпредложений   
    ВИП - это объявления с неким статусом при включенном билинге. Формально включение биллинга выключает обработку галочки Спецрамещение и начинает подбирать "спецпредложения" по другому условия, связанному с биллингом. Но размещает их туда, где были спец. одни других подменяют как бы в зависмости от включенности приложения.
  18. Like
    abushyk получил репутацию от SergeiMashkin в Обновление socialauth 2.0.2   
    гугль сложный сам по себе. а твиттер просто какой-то античеловеческий. у него даже авторизация не так как у всех остальных проходит. 
  19. Like
    abushyk получил репутацию от SergeiMashkin в Всплывающий информационный блок при наведении   
    2TopRaN Прикормил, подсекай)))
  20. Like
    abushyk получил репутацию от Realtor в карта с кластеризацией+выбор маркеров под категорию   
    класс. покажете потом в живую.
  21. Like
    abushyk изменил репутацию XTROson в карта с кластеризацией+выбор маркеров под категорию   
    Обновил модуль:
    Кластеризация вшита внутри(возможна доработка под проект - отдельно). Её можно включать, а можно и нет(в коде инициализации изменить флаг)
    Админка теперь проще и чуть правильнее.
    Установка модуля в разы проще.
    Очень удобно будет для Ajax форм.
     
    Скрины:
    1) Использование в коде:
    http://efremovdenis.ru/images/my_modules/markers_manager/1.1/code.png
    2) Карта + кластеризация:
    Google:
    http://efremovdenis.ru/images/my_modules/markers_manager/1.1/google_cluster.png
    Yandex:
    http://efremovdenis.ru/images/my_modules/markers_manager/1.1/yandex_cluster.png
     
    3) Админка:
    http://efremovdenis.ru/images/my_modules/markers_manager/1.1/admin.png
    http://efremovdenis.ru/images/my_modules/markers_manager/1.1/admin_add2.png
    http://efremovdenis.ru/images/my_modules/markers_manager/1.1/admin_edit.png
  22. Like
    abushyk получил репутацию от SergeiMashkin в Улыбнуло   
    Были вчера на "празднике шоколада". Кроме всякой сладкой вкусно-всячины попалось и такое

    и что самое интересное - шоколадные гайки таки скручивались с шоколадных болтов))
  23. Like
    abushyk получил репутацию от SergeiMashkin в Контент страница без ссылки внизу сайта   
    Предполагаю, что вы добавляете ссылки на страницы в то меню, которое выводится внизу страницы. а попробуйте добавлять ссылки в другое меню. а если, вам эти ссылки не нужны для вывода в каком-то меню, то их  не нужно вставлять в меню совсем.
  24. Like
    abushyk изменил репутацию TopRaN в Улыбнуло   
    Почему так важно делать техническое задание? И почему меня бесят Адовые пользователи!


  25. Like
    abushyk получил репутацию от Chernetskiy в Улыбнуло   
    Были вчера на "празднике шоколада". Кроме всякой сладкой вкусно-всячины попалось и такое

    и что самое интересное - шоколадные гайки таки скручивались с шоколадных болтов))