DoobBY

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

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

  • Посещение

  • Days Won

    1

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

  1. Thanks
    DoobBY изменил репутацию Дмитрий Кондин в Верхнее меню   
    Покажите код, который вы вставили?
    Вы так меню создавали?
    http://wiki.sitebill.ru/index.php?title=Меню
    В вашем случае код должен быть такой
    <ul class="menu nav"> {section name=i loop=$fastmenu} <li><a href="{$fastmenu[i].url}">{$fastmenu[i].name}</a></li> {/section} </ul>  
  2. Thanks
    DoobBY изменил репутацию Chernetskiy в Как добавить картинку в поиск   
    У меня под шаблоном Realia фото показываются в Фотораме.
    Прописал код так:
    {if $photo|count>0} <div class="fotorama" data-autoplay="true" data-nav="thumbs" data-loop="true" data-keyboard="true" data-maxheight="600" data-allowfullscreen="true" data-width="100%" data-ratio="800/600" data-minwidth="300" data-minheight="200"> <img src="{$estate_folder}/img/data/{$photo[0].normal}" alt="Фото объекта - {$data.topic_id.value_string} в {$data.city_id.value_string}, {$data.street_id.value_string} {$data.number.value}"> {section name=j loop=$photo} {if $smarty.section.j.index > 0} <img src="{$estate_folder}/img/data/{$photo[j].normal}" alt="{$data.topic_id.value_string} в {$data.city_id.value_string}, {$data.street_id.value_string} {$data.number.value} - фото {$smarty.section.j.iteration}"> {/if} {/section} </div> {else} <div class="fotorama" data-maxheight="600"> <img src="{$estate_folder}/img/no_foto.png" alt="Для объекта в {$data.city_id.value_string}, {$data.street_id.value_string} {$data.number.value} - фото нет"> </div> {/if} Параметр $data.street_id.value изменил на $data.street_id.value_string а то вместо названия улицы показывался её ID в базе
    Ну и попутно добавил значение на случай отсутствия фото, типа "Для объекта (адрес) фото нет"
    В результате, код страницы выглядит так:
    <img src="/img/data/img574b0e685e98d_1464536680_1.jpg" alt="Фото объекта - вилла в Бушат, Черный песок "> <img src="/img/data/img574b0e6884b6b_1464536680_2.jpg" alt="вилла в Бушат, Черный песок - фото 2"> <img src="/img/data/img574b0e689f004_1464536680_3.jpg" alt="вилла в Бушат, Черный песок - фото 3"> <img src="/img/data/img574b0e68b8dfb_1464536680_4.jpg" alt="вилла в Бушат, Черный песок - фото 4"> <img src="/img/data/img574b0e68d292b_1464536680_5.jpg" alt="вилла в Бушат, Черный песок - фото 5">  или
    <img src="/img/data/img5abe01b5eda8d_1522401717_1.jpg" alt="Фото объекта - квартира в Видное, Булатниковская ул. 2/14"> <img src="/img/data/img5abe01b620abc_1522401718_2.jpg" alt="квартира в Видное, Булатниковская ул. 2/14 - фото 2"> <img src="/img/data/img5abe01b648ba8_1522401718_3.jpg" alt="квартира в Видное, Булатниковская ул. 2/14 - фото 3"> <img src="/img/data/img5abe01b66d116_1522401718_4.jpg" alt="квартира в Видное, Булатниковская ул. 2/14 - фото 4">  
  3. Thanks
    DoobBY изменил репутацию TopRaN в Шаблон Новосёл - как, где?   
    1. В том случае если при соблюдении всех условий вам нужно показать этот банер. Если он должен показываться независимо - то да, надо поднять выше.
    2. Нужно смотреть детально. Что в объявлении, какие параметры в админке. На каких именно объявления такое происходит.
  4. Thanks
    DoobBY изменил репутацию abushyk в Верхнее меню   
    В агенси это тоже top_fixed_menu.tpl.html но меню там не прописано явно а в виде цикла
    <ul class="nav"> <li><a href="{$estate_folder}/">Главная</a></li> <!--А ВОТ ЭТУ СТРОКУ НУЖНО ВСТАВИТЬ--> {section name=i loop=$right_menu} <li><a href="{$right_menu[i].url}">{$right_menu[i].name}</a></li> {/section} <li></li> </ul>  
  5. Like
    DoobBY изменил репутацию banzai72 в Как добавить картинку в поиск   
    Названия у фотографий менять не пришлось
     
    В realty_view.tpl прописал так: 
    {section name=j loop=$photo}
                            <div class="col-md-3">
                              <div class="gitem"><a href="{$estate_folder}/img/data/{$photo[j].normal}" alt="Фото: {$data.topic_id.value_string}, {$data.city_id.value_string}, {$data.address.value} {$data.number.value}" title="<a target='_blank' href='{$estate_folder}/img/data/{$photo[j].normal}' download> СКАЧАТЬ ФОТОГРАФИЮ </a>"><img src="{$estate_folder}/img/data/{$photo[j].preview}" title="Фото: {$data.topic_id.value_string}, {$data.city_id.value_string}, {$data.address.value} {$data.number.value}" alt="Фото: {$data.topic_id.value_string}, {$data.city_id.value_string}, {$data.address.value} {$data.number.value}"/></a></div>
                            </div>
                        {/section}
    Вышло так:

     
    Главное, что вы своим советом объяснили в какую сторону подумать)))))))
    СПАСИБО!
     
  6. Like
    DoobBY изменил репутацию banzai72 в Верхнее меню   
    У меня шаблон real-spaces
    У меня в Приложения-Редактор шаблонов-top_fixed_menu.tpl.html
    Вот так:
     
    (часть кода)
    <li><a href="{$estate_filder}/">Главная</a></li>
    <li><a href="{$estate_filder}/Vakansiya/" target="_blank">Вакансия</a></li>

                      <li><a href="{$estate_filder}/client/order/ipoteka" target="_blank">Ипотека</a></li>

                      <li><a href="{$estate_filder}/client/order/podbor" target="_blank">Заявка на подбор</a></li>

                      <li><a href="{$estate_filder}/myfavorites/" target="_blank"><i class="fa fa-star text-danger"></i>Избранное</a></li>

                      <li><a class="btn btn-info" href="{$estate_filder}/add" target="_blank">Добавить объявление</a></li>
     
     
     
     
  7. Like
    DoobBY изменил репутацию abushyk в Гадкие урлы (url, alias) в поиске   
    Я тут немного перестарался, хотя сам становился на эти же грабли. После запрета нужно еще добавить
    Allow: /sitemap.xml?page=* Сайтмап может иметь постраничку и закрывать от роботов ее не нужно в отличии от остальных.
  8. Like
    DoobBY изменил репутацию metrpro в Шаги по оптимизации SEO для CMS Sitebill   
    ну... как бы... в шаблоне realty_view ищите место, где выводятся изображения объявления. и в тег <img> добавляйте alt=""  либо title="", где прописываете в кавычках комбинацию хотя бы из тех элементов, что я уже описывал наверху. Скажем, хотите, чтобы описание картинок были УЛИЦА+НОМЕР ДОМА, то пишите:
    <img src="{$estate_folder}/img/data/{$photo[j].normal}" alt="{$data.street_id.value_string} {$data.number.value} - {$smarty.section.j.index}"> У меня лично немного по-другому, но это чтобы понять принцип. Я использую первые 120 символов текста объявления (truncate:120 от {$data.text.value}), предварительно очистив их от всех html-тегов (strip_tags) и переводов строки (str_replace). Но, учитывая, что переход с картинок у меня не шибко большой, не претендую на то, что это идеальное решение.
     
    Просто через редактор форм добавьте в таблицу data переменную типа checkbox (boolean) и обзовите ее как удобно. Я назвал ее nonactual и у меня в двух местах проверка:
    {if $data.nonactual.value == 1} А проверка касательно цвета шрифта перед выводом описания объявления и перед тем, выводить ли блок уведомления, что объявление неактуально.
    .
  9. Like
    DoobBY изменил репутацию abushyk в Дата и время в "list"   
    /template/frontend/agency/realty_grid.tpl
    <td width="1%" class="row_title">{$L_DATE}</td> <td width="1%" class="row_title">{$L_ID}</td> это колонки в заголовке таблицы. их нужно убирать, если убирается вывод даты и идешки.
     
    <td{if $admin == ''} onClick="document.location='{$grid_items[i].href}'" {/if}><b><a href="{$grid_items[i].href}">{$grid_items[i].date}</a></b></td> <td{if $admin == ''} onClick="document.location='{$grid_items[i].href}'" {/if}><b><a href="{$grid_items[i].href}">{$grid_items[i].id}{if isset($grid_items[i].uniq_id)} ({$grid_items[i].uniq_id}){/if}</a></b></td> а то вывод уже ячеек с самими датой и ид. Они могут быть не один в один, но в них обязаельно будут {$grid_items.date} и {$grid_items.id}
  10. Like
    DoobBY изменил репутацию metrpro в Шаги по оптимизации SEO для CMS Sitebill   
    Добавлю несколько слов от себя:
    1. Используйте seo-возможности страниц с объявлениями. Если нет возможности заполнять мета-титл для каждого объявления, генерируйте их. Откажитесь от стандартного h1, определяемого переменной $title - лучше компонуйте его на уровне шаблона _view из переменных массива data, таких как:
    {$data.city_id.value_string} - название города; {$data.street_id.value_string} - название улицы; {$data.number.value} - номер дома; {$data_shared.price.value} - цена; {$data.text.value}  - текстовое описание (укорачивайте его функцией truncate) Помните, что согласно статистике google, 15% ежедневных поисковых запросов уникальны, они никогда больше не повторятся, поэтому 100-1000-10000 объявлений с качественными заголовками meta-title, h1-title, meta-description дадут большой пласт НЧ-запросов.
    2. На любом сайте объявлений самое ценное - это страницы листингов (_grid). Используйте Линк-менеджер, чтобы добавить геотаргетированные списки объявлений, таких как "Продажа 1-комнатных в Ялте" или "Аренда домов в Ялте посуточно". Это поможет охватить большой сегмент СЧ-запросов. У меня на сайте разделов predefindlinks - более 300шт и их количество я продолжаю ежедневно увеличивать.
    3. Регулярно проверяйте наличие дублей страниц через Google Webmaster.
    4. Закройте в robots.txt все параметры, кроме page, которые не умеете использовать, а именно price, order, grid_type, city_id, street_id.
    5. По недвижимости всегда полно запросов типа "Город, Улица" - попробуйте использовать city_id и street_id в комбинации, чтобы создать огромное количество гео-листингов по НЧ-запросам. У меня любой поиск через стандартную форму sitebill формата "город такой-то, улица такая-то" выдаст листинг с заголовками типа "СЕВАСТОПОЛЬ, Октябрьской Революции проспект - объявления по продаже и аренде квартир, домов, недвижимости недорого без посредников".
    Вот пример очень даже неплохих ПФ при заходе на подобную генерированную страницу:

    6. Генерируйте alt и title для всех изображений как на страницах объявлений, так и на страницах листингов. Используйте для этого те же переменные, что и в п. 1, добавляя уникальность переменной {$smarty.section.j.index} (для шаблона _view).
    7. Никогда не удаляйте объявления. Не делайте их неактивными. Используйте для этого дополнительную переменную и оперируйте ею на уровне шаблона, чтобы не потерять посетителя. Тогда объявление будет участвовать в поиске и в листингах, а пользователь не попадет на 404.

    8. Улучшайте ПФ простым образом - помните, что не все пользователи будут кликать на ниспадающее меню (как в realia или estatico), половина из них будет искать привычные быстрые ссылки, к которым они привыкли на авито.

    9. Пропишите 404 с ссылками на основные разделы сайта.
    10. Прочитайте великолепный мануал Саши Алаева про продвижение сайта объявлений недвижимости - он от 2014 года, но всё, что там написано, сверхактуально.
    11. Поставьте на сайт поиск от Яндекса или Google.
    12. Будьте аккуратнее со штатным seo-приложением sitebill. Не включайте .html, не используйте сложных структур uri (особенно, если у вас объявления могут добавлять зарегистрированные пользователи, которые имеют обыкновение путать категорию).
    13. Каждую новую страницу листинга, где вы исправили заголовки или описание, добавляйте вручную в Я и G.
    UPDATE 28-09-16:
    14. Не пожалейте часа времени и посмотрите видео "SEO для сайтов по продаже и аренде недвижимости". Его автор - Руководитель департамента продаж SeoPult Евгений Костин, и рассказывает он занятнейшие вещи.
     
    Работы по тому, что я тут написал, у себя начал в 20 числах августа (т.е. около месяца назад). Результат не в абсолютном выражении, а в относительном, меня радует - рост трафика составил более чем в 2 раза:

    Указаны среднесуточные переходы из ПС. Спад в текущей неделе связан с тем, что сегодня еще вторник.
    У меня всё, можете начинать срач.
  11. Like
    DoobBY изменил репутацию abushyk в Гадкие урлы (url, alias) в поиске   
    User-Agent: * Disallow: *?*  
  12. Like
    DoobBY изменил репутацию metrpro в shema.org - кто использует структурированные данные?   
    Легко. Пошагово для realia:
    1. В первую очередь определяем, что вообще используем schema.org типа product. Для этого в шаблоне realty_view.tpl находим блок, содержащий все, что между крошками и футером/спецпредложениями - это div класса row - и корректируем под нужную нам схему:
    <div class="row" itemscope itemtype="http://schema.org/Product"> 2. Определяем имя продукта - это то, что находится под заголовком стиля page-header (по умолчанию, правда, это почему-то заголовок второго уровня, рекомендую поменять его h1):
    <h1 class="page-header"><span itemprop="name"> ЗДЕСЬ ТО, ЧТО У ВАС ИДЕТ В КАЧЕСТВЕ ЗАГОЛОВКА ОБЪЯВЛЕНИЯ, СКОРЕЕ ВСЕГО {$title} </span></h1> 3. Т.к. мы этот продукт предлагаем, то значит это тип Offer - для этого всю таблицу с характеристиками помечаем нужным образом. Ищем соответствующий <div class="noverview-short"> и меняем его:
    <div class="noverview-short" itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 4. Добавляем изображение - для этого ищем ниже заглавное изображение объявлений вида <img src="{$estate_folder}/img/data/{$photo[0].normal}" и добавляем к нему параметр itemprop="image":
    <img src="{$estate_folder}/img/data/{$photo[0].normal}" itemprop="image"> 5. Все объявления актуальны? Вставляйте в любом месте тег "На складе":
    <link itemprop="availability" href="http://schema.org/InStock"> 6. Не забываем про ценник - система его вывода достаточно неоднозначна и скорее всего, у Вас он формируется автоматически в процедурах вывода характеристик объекта, поэтому мы с ним в стили лезть не будем, а просто пропишем отдельно.
    Вариант, если у Вас только рубли:
    <meta itemprop="price" content="{$data_shared.price.value|number_format:0:".":""}"> <meta itemprop="priceCurrency" content="RUB"> Но у меня цены есть еще и в долларах, поэтому приходится проверять - если в рублях, то рубли, если в USD, то в USD:
    <meta itemprop="price" content="{$data_shared.price.value|number_format:0:".":""}"> {if $data_shared.currency_id.value == 2} <meta itemprop="priceCurrency" content="USD"> {else} <meta itemprop="priceCurrency" content="RUB"> {/if} 7. Описание товара - ищем {$data.text.value|nl2br} и обволакиваем нужными нам параметрами:
    <span itemprop="description">{$data.text.value|nl2br}</span> 8. В принципе, основная часть готова. Проверить то, что сделали, можете в валидаторах.
    Валидатор от Гугла - https://search.google.com/structured-data/testing-tool
    Валидатор от Яндекса - https://old.webmaster.yandex.ru/microtest.xml
    Рекомендую пользоваться и тем, и другим - причем в отличие от мобильной дружелюбности, здесь гугл гораздо строже.
     
    PS: модераторы, исправьте, пожалуйста, название этой темы - не хватает одной буквы в слове sChema.org
     
  13. Like
    DoobBY изменил репутацию Chernetskiy в Города и регионы, Беларусь   
    По этому поводу уже много написано на форуме, поиск рулит!
    Исходная информация здесь - http://wiki.sitebill.ru/index.php?title=Связанные_элементы
  14. Like
    DoobBY изменил репутацию Chernetskiy в Города и регионы, Беларусь   
    Вероятно эти фразы попадают спамом в форме подачи объявления (кнопка "Разместить"), где надо заполнять адресную позицию. Поскольку включен автокомплит, всё, что сливается в адресное поле и отсутствует изначально в базе - автоматически добавляется.
    Если у вас сайт работает по конкретному городу или району, то есть смысл адресные позиции в заявках переподключить со справочников на селект-боксы с прописанными основными населенными пунктами, тогда останется только возможность выбирать из готового и справочники заполняться мусором не будут. Если населенных пунктов много, лучше убрать автокомплит и перейти на связанные элементы.
  15. Like
    DoobBY изменил репутацию metrpro в Куда дальше развивается sitebill?   
    Еще один вектор развития, который лично мне, как пользователю, хотелось бы видеть, это интеграция в социальные сети.
    Первый шаг по сути уже сделан - для пользователей нескольких сетей добавлена возможность быстрой регистрации/авторизации. Но некоторые системы остались за кадром - yandex и mail.ru - а ведь подключив их можно было бы про ручную регистрацию забыть в 99% случаев.
    Также есть прекрасные задумки про кросспостинг - только реализовано это пока только для twitter, а как было бы прекрасно подключить сюда fb и vk.
    Снова хочется напомнить про мобильность - конечно, использование бутстрапа и @media позволяет адаптировать сайт к просмотру на мобильном (после некоторых танцев с бубном, правда) и даже Google говорит - Вах, какой адаптированный сайт! Но дело в том, что сайт при этом НЕУДОБНЫЙ. Т.е. его адаптированность сейчас не даёт прироста клиентов (хотя, может и увеличивает ранжирование для мобильных выдач).
  16. Like
    DoobBY изменил репутацию metrpro в Дубли title   
    Вообщем, у меня было решение для предпоследней версии модуля sitemap 1.3.9, сегодня обновил до свежей 1.3.10, вот решение для нее (там изменена процедура формирования УРЛ для карты).
    1. Нужен файл /apps/sitemap/admin/admin.php
    2. Примерно на 125 строке расположена функция, формирующая вывод файла карты
    protected function createSitemapFile($file_name, $urls){ 3. Через несколько строк начинается условие проверки каждого УРЛ на наличие в его начале "http://" (т.е. проверяется, абсолютная ссылка или относительная)
    if(preg_match('/^(http:|https:)/', $u['url'])){ 4. Находим чуть ниже строку
    $ret.='<loc>'.$u['url'].'</loc>'."\n"; И вместо неё вставляем условие проверки последнего символа (ЕСЛИ последний_символ НЕ "/", ТО выводим урл с "/", ИНАЧЕ оставляем, как есть):
    if(substr($u['url'], -1) != '/') {$ret.='<loc>'.$u['url'].'/</loc>'."\n";} else { {$ret.='<loc>'.$u['url'].'</loc>'."\n";} } 5. Спускаемся ниже и строку
    $ret.='<loc>'.$this->site_link.$u['url'].'</loc>'."\n"; Меняем на
    if(substr($u['url'], -1) != '/') {$ret.='<loc>'.$this->site_link.$u['url'].'/</loc>'."\n";} else { {$ret.='<loc>'.$this->site_link.$u['url'].'</loc>'."\n";} } 6. Все. Чтобы увидеть результат, в НАСТРОЙКАХ \ SITEMAP админки поменяйте время формирования карты сайта (на время).
    PS: Предупреждаю, что перед этим необходимо все ссылки в шаблонах проставить со слэшем в конце (_view, _grid_thumbs, _grid_list, menu_decorator, ссылки на любые статичные страницы, может еще где найдете), актуализировать disallow в robots.txt (по умолчанию там часть закрытых категорий стоит без слэша), а также настроить 301 редирект в .htaccess:
    RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*[^/])$ $1/ [L,R=301] PPS: Вот, к чему приводит, когда сам сайт причесываешь на слэш в конце каждой ссылки, а в sitemap бардак!!! Каждая страница вгоняется дважды в индекс, что приводит к возникновению большого количества дублей!

     
  17. Like
    DoobBY изменил репутацию metrpro в Добавляем плагин fotorama в realia   
    Так. Опытном путем было выяснено еще кое-что. В случае, если первая была малой высоты (например, альбомной ориентации), а следующие фотографии высокие (т.е. портретные), то по причине того, что плагин изначально зарезервировал высоту блока под маловысотную фотографию, портретные сильно уменьшаются в своем масштабе.
    Чтобы этого избежать, в обеих строчках фоторамы надобно в конце div добавить следующее:
    data-width="100%" data-ratio="800/600" data-minwidth="300" data-minheight="200" И будет зер гуд. Результаты можете у меня посмотреть.
  18. Like
    DoobBY изменил репутацию metrpro в Добавляем плагин fotorama в realia   
    <center> {if $photo|count>0} <div class="fotorama" data-nav="thumbs" data-loop="true" data-keyboard="true" data-maxheight="600" data-allowfullscreen="true"> <img src="{$estate_folder}/img/data/{$photo[0].normal}"> {section name=j loop=$photo} {if $smarty.section.j.index > 0} <img src="{$estate_folder}/img/data/{$photo[j].normal}"> {/if} {/section} </div> {else} <div class="fotorama" data-maxheight="600"> <img src="{$estate_folder}/img/no_foto.png"> </div> {/if} </center>
  19. Like
    DoobBY изменил репутацию metrpro в Добавляем плагин fotorama в realia   
    Плагин отменный, встает без проблем, но Дима не раскрыл топик до конца:
    1. Вверх realty_view ставьте только две строчки кода:
    <link href="http://cdnjs.cloudflare.com/ajax/libs/fotorama/4.6.4/fotorama.css" rel="stylesheet"> <script src="http://cdnjs.cloudflare.com/ajax/libs/fotorama/4.6.4/fotorama.js"></script> Ссылку на jquery.min.js ставить не надо во избежание конфликта между системной версией и новой! Для работы плагина нужна его версия не меньше 1.8, в sitebill уже стоит 1.10.
    Более того, я бы рекомендовал скачать представленный на сайте разработчика плагина комплект файлов и разместить их на своем сервере - лично я так и сделал, ни к чему обращение на сторону, мало ли чего.
    2. В месте вывода картинок в realia_view ставим код:
    <center> {if $photo|count>0} <div class="fotorama" data-nav="thumbs" data-loop="true" data-keyboard="true" data-maxheight="600" data-allowfullscreen="true"> <img src="{$estate_folder}/img/data/{$photo[0].normal}"> {section name=j loop=$photo} {if $smarty.section.j.index > 0} <img src="{$estate_folder}/img/data/{$photo[j].normal}"> {/if} {/section} </div> {/if} </center> Это редакция кода с фото по центру, с превьюшками, с возможностью вывода на весь экран, ограниченная по максимальной высоте до 600пкс, цикличная, с подключенным управлением стрелками влево и вправо.
    3. Чистим старый код
    Далее, чтобы не перегружать систему, убираем старый prettyphoto из realty_view:
     
    <script> $(document).ready(function(){ if($('.carousel.property .content ul').length>0){ $('.carousel.property .content ul').carouFredSel({ scroll: { items: 1 }, auto: false, next: { button: '.carousel.property .content .carousel-next', key: 'right' }, prev: { button: '.carousel.property .content .carousel-prev', key: 'left' } }); $('.carousel.property ul li:first').addClass('active'); } }); </script> И пару мест из header:
     
    <link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/css/prettyPhoto.css"> и
    <script src="{$estate_folder}/template/frontend/{$current_theme_name}/js/jquery.prettyPhoto.js"></script> <script type="text/javascript" > $(document).ready(function(){ $("a[rel^='prettyPhoto']").prettyPhoto({ social_tools: false, theme: 'light_square'}); }); </script> А так за плагин спасибо, мне очень понравилось, лучше чем prettyphoto и шустрее!
    Тестировал на шаблоне Realia, постараюсь на днях оттестить на Estetico
    UPD: Estetico тоже встает без проблем!
  20. Like
    DoobBY изменил репутацию abushyk в Переключатель валют.   
    Делаем userfriendly-переключатель отображения валют.
     
    Исходным материалом будет http://www.etown.ru/s/topic/1742-отображение-валют/?p=18682.
     
    1. Что нам понадобится.
     - заготовки из указанной статьи
     - jquery библиотека https://github.com/carhartl/jquery-cookie. Без нее можно обойтись, но с ней быстрее
     
    2. Модернизируем код контроллера (main.php)
    В контроллере мы готовили массив курсов валют. Изменим его немного
    if(!isset($_SESSION['site_cache']['courses'])){ $DBC=DBC::getInstance(); $query='SELECT * FROM '.DB_PREFIX.'_currency'; $stmt=$DBC->query($query); if($stmt){ while($ar=$DBC->fetch($stmt)){ $ar['code_id']=strtolower(trim($ar['code'])); $courses[$ar['currency_id']]=$ar; } } $_SESSION['site_cache']['courses']=$courses;}$this->template->assign('_courses', $_SESSION['site_cache']['courses']);if(isset($_COOKIE['current_view_currency']) && $_COOKIE['current_view_currency']!=''){ $this->template->assign('_current_view_currency', $_COOKIE['current_view_currency']);}else{ setcookie('current_view_currency', 'eur'); $this->template->assign('_current_view_currency', 'eur');} В чем отличие? В данные курсов мы добавили переменную code_id - это приведенный к нижнему регистру код валюты, что бы мы этим не занимались в шаблоне.
    Так же мы проверяем куки на наличие значения current_view_currency и если его нет, то заполняем его "eur" либо другой дефолтной валютой (кодом валюты приведенным к нижнему регистру). И отправляем эту переменную в шаблон.
     
    Вот и все в контроллере. Идем в шаблон.
     
    3. Модернизация шаблона (realty_grid.tpl - либо какой-то из его подчиненных типа табличного или плиточного видов)
     
    В этом шаблоне у нас должно быть два момента:
    а) некий чекер с именами\кодами валют, куда бы мы кликали, что бы выбрать валюту.
    б) некий блок цен с ценами в разных валютах на строке или блоке объявления.
     
    Начнем с чекера-переключателя. Поставим его, в области над списком.
    {foreach from=$_courses item=_course} <div class="show_valute{if $_course.code_id==$_current_view_currency} active{/if}" data-codeid="{$_course.code_id}">{$_course.code}</div>{/foreach} тут не сложно. прокручиваем массив валют из контроллера мы выводим их в виде
    <div class="show_valute" data-codeid="rur">RUR</div><div class="show_valute active" data-codeid="usd">USD</div><div class="show_valute" data-codeid="eur">EUR</div> Класс show_valute указывает управляющую кнопку, а active - активное состояние переключателя.
     
    Код вывода разновалютных цен в блоке объявления
     
    <div class="valutes">{foreach from=$_courses item=_course} <div class="course_price {$_course.code_id}" style="{if $_course.code_id!=$_current_view_currency}display: none;{/if}">{$_course.code}: {(($grid_items[i].price*$_courses[$grid_items[i].currency_id].course)/($_course.course))|number_format:0:",":" "}</div>{/foreach}</div> Главное отличие - мы выводим цены в общий блок с классом valutes и, кроме этого, каждую цену внутри своего блока с класами course_price и тем кодом валюты(названием кода валюты приведенным к нижнему регистру). Вместе с этим мы проверяем текущую "отображаемую" валюту, которую ищем в куках и те блок, которые соответствуют другим валютам обозначаем стилем display: none; иными словами прячем.
     
    В результате у нас в блоках объявлений всегда будет показана только одна цена в той валюте, которая лежала в куках, либо дефолтной, если ее там не было.
    А общий виду будет такой
    <div class="valutes"> <div class="course_price rur" style="display: none;">RUR: 13 774 091</div> <div class="course_price usd" style="">USD: 568 181</div> <div class="course_price eur" style="display: none;">EUR: 454 545</div></div> 3. Добавляем красоту и интерактив.
    Включаем библиотеку jquery.cookie.js
     
    У меня она лежит в /third/jquery.cookie/ поэтому в шаблоне сетки я ее подключаю как 
    <script type="text/javascript" src="{$estate_folder}/third/jquery.cookie/jquery.cookie.js"></script> На стилях не останавливаюсь.
    {literal}<style>.show_valute.active {font-weight: bold;cursor: auto;}.show_valute {cursor: pointer;}</style>{/literal} А вот и сам скрипт
    {literal}<script>$(document).ready(function(){$('.show_valute').click(function(){var _this=$(this);var codeid=_this.data('codeid');_this.addClass('active').siblings().removeClass('active');$('.valutes .course_price').hide();$('.valutes .'+codeid).fadeIn();$.cookie('current_view_currency', codeid);});});</script>{/literal} Кратко: кликая по элементу с классом show_valute мы берем у этого элемента значение из аттрибута data-codeid, запоминаем его, прячем все разновалютные курсы и показываем только те блоки, которые имеют класс аналогичный запрошенному коду валюты. И пакуем этот код в куки, что бы при рефреше страницы у нас уже показались нужные валюты.
  21. Like
    DoobBY изменил репутацию TopRaN в Настройка шаблона agency   
    Файл realty_grid_thumbs.tpl
  22. Like
    DoobBY получил репутацию от yurijp в PageSpeed. Скорость загрузки сайта.   
    Возможно пригодиться тому, кто зайдёт в ветку.
     
    "Используйте кеш браузера"

    Если на вашем хотинге ПО Апачи
     
    Вставлять в .htaccess
    <ifModule mod_headers.c><FilesMatch "\.(html|htm)$">Header set Cache-Control "max-age=43200"</FilesMatch><FilesMatch "\.(js|css|txt)$">Header set Cache-Control "max-age=604800"</FilesMatch><FilesMatch "\.(flv|swf|ico|gif|jpg|jpeg|png)$">Header set Cache-Control "max-age=2592000"</FilesMatch><FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">Header unset Cache-Control</FilesMatch></IfModule> После проверки гуглом - поле пропало.
  23. Like
    DoobBY изменил репутацию Дмитрий Кондин в Форма поиска только на главной (шаблон agency)   
    Чтобы не подскакивал, вам нужно это не в jquery делать, а сразу в css прописать display:none;
  24. Like
    DoobBY изменил репутацию metrpro в Качество превью картинок   
    У меня такое было - независимо от шаблона надо посмотреть размер элемента, в котором размещается картинка-превью (скажем, 200х200). В настройках Дополнительно\Высота превью изображения объявления и Ширина ставите раза в полтора выше - тогда получится красивое сверхчёткое превью.
    NB: фоты надо будет после этого перезалить.
  25. Like
    DoobBY изменил репутацию Дмитрий Кондин в Где мне найти код главной страницы?   
    /template/frontend/agency/layout_basic.tpl