-
Публикации
413 -
Зарегистрирован
-
Посещение
-
Days Won
1
Изменения репутации
-
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>
-
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">
-
DoobBY изменил репутацию TopRaN в Шаблон Новосёл - как, где?
1. В том случае если при соблюдении всех условий вам нужно показать этот банер. Если он должен показываться независимо - то да, надо поднять выше.
2. Нужно смотреть детально. Что в объявлении, какие параметры в админке. На каких именно объявления такое происходит.
-
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>
-
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}
Вышло так:
Главное, что вы своим советом объяснили в какую сторону подумать)))))))
СПАСИБО!
-
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>
-
DoobBY изменил репутацию abushyk в Гадкие урлы (url, alias) в поиске
Я тут немного перестарался, хотя сам становился на эти же грабли. После запрета нужно еще добавить
Allow: /sitemap.xml?page=* Сайтмап может иметь постраничку и закрывать от роботов ее не нужно в отличии от остальных.
-
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} А проверка касательно цвета шрифта перед выводом описания объявления и перед тем, выводить ли блок уведомления, что объявление неактуально.
.
-
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}
-
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 раза:
Указаны среднесуточные переходы из ПС. Спад в текущей неделе связан с тем, что сегодня еще вторник.
У меня всё, можете начинать срач.
-
-
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
-
DoobBY изменил репутацию Chernetskiy в Города и регионы, Беларусь
По этому поводу уже много написано на форуме, поиск рулит!
Исходная информация здесь - http://wiki.sitebill.ru/index.php?title=Связанные_элементы
-
DoobBY изменил репутацию Chernetskiy в Города и регионы, Беларусь
Вероятно эти фразы попадают спамом в форме подачи объявления (кнопка "Разместить"), где надо заполнять адресную позицию. Поскольку включен автокомплит, всё, что сливается в адресное поле и отсутствует изначально в базе - автоматически добавляется.
Если у вас сайт работает по конкретному городу или району, то есть смысл адресные позиции в заявках переподключить со справочников на селект-боксы с прописанными основными населенными пунктами, тогда останется только возможность выбирать из готового и справочники заполняться мусором не будут. Если населенных пунктов много, лучше убрать автокомплит и перейти на связанные элементы.
-
DoobBY изменил репутацию metrpro в Куда дальше развивается sitebill?
Еще один вектор развития, который лично мне, как пользователю, хотелось бы видеть, это интеграция в социальные сети.
Первый шаг по сути уже сделан - для пользователей нескольких сетей добавлена возможность быстрой регистрации/авторизации. Но некоторые системы остались за кадром - yandex и mail.ru - а ведь подключив их можно было бы про ручную регистрацию забыть в 99% случаев.
Также есть прекрасные задумки про кросспостинг - только реализовано это пока только для twitter, а как было бы прекрасно подключить сюда fb и vk.
Снова хочется напомнить про мобильность - конечно, использование бутстрапа и @media позволяет адаптировать сайт к просмотру на мобильном (после некоторых танцев с бубном, правда) и даже Google говорит - Вах, какой адаптированный сайт! Но дело в том, что сайт при этом НЕУДОБНЫЙ. Т.е. его адаптированность сейчас не даёт прироста клиентов (хотя, может и увеличивает ранжирование для мобильных выдач).
-
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 бардак!!! Каждая страница вгоняется дважды в индекс, что приводит к возникновению большого количества дублей!
-
DoobBY изменил репутацию metrpro в Добавляем плагин fotorama в realia
Так. Опытном путем было выяснено еще кое-что. В случае, если первая была малой высоты (например, альбомной ориентации), а следующие фотографии высокие (т.е. портретные), то по причине того, что плагин изначально зарезервировал высоту блока под маловысотную фотографию, портретные сильно уменьшаются в своем масштабе.
Чтобы этого избежать, в обеих строчках фоторамы надобно в конце div добавить следующее:
data-width="100%" data-ratio="800/600" data-minwidth="300" data-minheight="200" И будет зер гуд. Результаты можете у меня посмотреть.
-
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> -
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 тоже встает без проблем!
-
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, запоминаем его, прячем все разновалютные курсы и показываем только те блоки, которые имеют класс аналогичный запрошенному коду валюты. И пакуем этот код в куки, что бы при рефреше страницы у нас уже показались нужные валюты.
-
-
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> После проверки гуглом - поле пропало.
-
DoobBY изменил репутацию Дмитрий Кондин в Форма поиска только на главной (шаблон agency)
Чтобы не подскакивал, вам нужно это не в jquery делать, а сразу в css прописать display:none;
-
DoobBY изменил репутацию metrpro в Качество превью картинок
У меня такое было - независимо от шаблона надо посмотреть размер элемента, в котором размещается картинка-превью (скажем, 200х200). В настройках Дополнительно\Высота превью изображения объявления и Ширина ставите раза в полтора выше - тогда получится красивое сверхчёткое превью.
NB: фоты надо будет после этого перезалить.
-
DoobBY изменил репутацию Дмитрий Кондин в Где мне найти код главной страницы?
/template/frontend/agency/layout_basic.tpl