Leaderboard
Popular Content
Showing content with the highest reputation on 12/19/13 in Сообщения
-
2 pointsДобрый день! Сразу же хочется поблагодарить разработчиков CMS Sitebill за столь гибкую и хорошую CMS для агентств недвижимости, а также за адекватную, полезную помощь и поддержку! У нашей студии большой опыт работы с проектами для недвижимости, и даже есть собственная CMS заточенная под эту область, но Sitebill в последнем проекте показал свои сильные стороны. Хочется рассказать о нашем новом проекте - сайте агентства недвижимости "Академия м2" http://www.akademiyametrov.ru, и особенно о тех модулях и нововведениях, которые мы использовали для Sitebill при работе над ним, потому как считаем, что они будут полезны всему сообществу: ------------------------------------------ 0. Сайт сверстан на Twitter Bootstrap 3. Пока мы не видели новых проектов на Sitebill с этим css-фреймворком. Верстка велась на основе шаблона agency. В целом, подключение CSS и JS Bootstrap 3 не вызвало больших проблем. 1. Написали свой модуль краткой Заявки в свободной форме! По-умолчанию, в CMS сделана большая, громоздкая форма заявки на аренду и покупку недвижимости. Мы же, по своему опыту знаем, что форма должна иметь как можно меньше полей для заполнения посетителем - конверсия выше будет. Модуль сделан в виде одного php-скрипта (дочитайте до конца и узнаете как его получить!). Данные отправляются на почту и появляются у админа в разделе "Заявки на аренду". Поэтому была написана форма всего с 4 полями, которая выводится в модальном окне bootstrap 3. Отправка данных сделана через ajax в наш скрипт simple-order.php. А в скрипте просто заносится данные в таблицу: $query="INSERT INTO re_data_get_rentSET name='".$name."', phone='".$phone."', more='".$message." (".NOW.")', date_added='".TIMESTAMP."'";2. Слайдер. Слайдер - это краеугольный камень презентационных сайтов, к коим относятся и сайты по недвижимости. Слайдер на главной странице сделан на основе верстки модуля/шаблона right_special.tpl и подключен к js-библитеке Sly slider. Доработки: - корректная обрезка описания объекта, с помощью функции шаблонизатора Smarty - truncate:200 \template\frontend\akademiyametrov\right_special.tpl:14 <p>{$special_items2[i].text|strip_tags|truncate:200}</p>- Вывод нескольких фото в слайдер (по-умолчанию, в CMS выводится одно фото) - подсказали в теме http://www.etown.ru/s/topic/357-превью-в-модуле-спецпредложений/: Файл /apps/system/lib/frontend/grid/grid_constructor.php:838:1551:2251 $image_array = $data_model->get_image_array ( 'data', 'data', 'id', $item_array['id'], 1 );тут убираем последний аргумент, который и указывает на количество фото $image_array = $data_model->get_image_array ( 'data', 'data', 'id', $item_array['id']);3. Существенно переработана форма поиска: оставлены только необходимые поля. Плюс, сделано так, чтобы по-умолчанию был выбран необходимый город (с помощью jQuery): $('select#city_id :nth-child(2)').attr("selected", "selected");Для стилизации полей формы использовали jquery.formstyler.min.js (по-моему, его можно включить в дефолтные шаблоны CMS). 4. Таблица объектов также существенно переработана: - выводится три фото (вместо одного): {if $grid_items[i].img[1] != '' } <a class="preview" href="{$grid_items[i].href}"><img src="{$estate_folder}/img/data/{$grid_items[i].img[1].preview}" width="50"></a> {/if}{if $grid_items[i].img[2] != '' } <a class="preview" href="{$grid_items[i].href}"><img src="{$estate_folder}/img/data/{$grid_items[i].img[2].preview}" width="50"></a> {/if}- если указана сортировка по какому-то столбцу (стоимость, район и др.), он выделяется серым цветом css-класса cell-1: class="{if strpos($smarty.server.REQUEST_URI, "order=type") == true}cell-1{/if}- проставлены относительные даты добавления объекта вместо абсолютных ("сегодня", "вчера" вместо дефолтных "11.12"). Использована функция Smarty $smarty.now|date_format:"%d.%m" : {if $grid_items[i].date==$smarty.now|date_format:"%d.%m"} сегодня{elseif $grid_items[i].date==($smarty.now-(60*60*24))|date_format:"%d.%m"} вчера{else} {$grid_items[i].date}{/if}- благодаря новым классам в Bootstrap 3 некоторые столбцы на мобильных устройствах скрываются и таблица становится компактной и помещается на экранах вплоть до планшетов: <td ... class="visible-lg">...</td>5. Существенно переработана страница объекта - к примеру, вот продажа 1-к квартиры. - Фото выводятся с помощью библиотеки photosetGrid , которая в виде мозаики размещает их. - Форма отправки заявки на объект также сделана по-другому: некрасивое всплывающее окно с большим количеством полей мало кто будет заполнять, поэтому форма выводится тут же на странице и выглядит как два поля - "Имя" и "Телефон". И все! Отправка данных из нее реализована через ajax. Для этого пришлось скопировать дефолтный шаблон form.tpl в свой шаблон в папку \template\frontend\akademiyametrov\apps\mailbox\site\template\ , и таким образом, работать уже с собственным подключаемым шаблоном. Спасибо за подсказку в теме http://www.etown.ru/s/topic/331-отдельный-шаблон-новостей/ 6. Главную страницу тоже существенно переверстали. К примеру, на основе функций Smarty сделали так, чтобы кое-какие блоки верстки выводились только на главной странице (в примере ниже - это слайдер, который выводится только на главной): {if $smarty.server.REQUEST_URI|regex_replace:"/\?(.*)/":"" eq '/'} <!-- Slider --> ... <!-- /.Slider -->{/if} или не выводились в определенных разделах (тут блок поиска не выводится на стат.страницах): {if $smarty.server.REQUEST_URI|regex_replace:"/\?(.*)/":"" ne '/services/' && $smarty.server.REQUEST_URI|regex_replace:"/\?(.*)/":"" ne '/aboutakademiyametrov/' && $smarty.server.REQUEST_URI|regex_replace:"/\?(.*)/":"" ne '/contacts/' && $smarty.server.REQUEST_URI|regex_replace:"/\?(.*)/":"" ne '/news/' && $smarty.server.REQUEST_URI|regex_replace:"/\?(.*)/":"" ne '/rostovhistory/' && $smarty.server.REQUEST_URI|regex_replace:"/\?(.*)/":"" ne '/order/'} <h2 class="topic"> Каталог недвижимости</h2>{/if}7. Для бекэнда тоже постарались: написали свой модуль для автоматического экспорта объектов на доску объявлений "Авито" - http://www.akademiyametrov.ru/xml/avito.xml, чем с удовольствием пользуется клиент, а также модуль автоматического парсинга определенных сайтов и добавления квартир с них в админку. Но, на текущий момент, первый модуль оформлен как кнопка со ссылкой на URL (по которому генерируется xml) в разделе "Выгрузка Яндекс.Недвижимость" и представляет собой один php-скрипт, т.к. до написания полноценного плагина для CMS руки не дошли. Вполне вероятно, что при работе над другими проектами оформим их как плагины. В итоге 1-месячной работы имеем: 2 новых собственных шаблона модулей (news, mailbox - все они копировались из дефолтных в папку \template\frontend\akademiyametrov\apps\ , к примеру собственный шаблон новостей для работы должен иметь путь \template\frontend\akademiyametrov\apps\news\site\template\), 8 переверстанных шаблонов (header.tpl, footer.tpl, main.tpl, right_special.tpl, standart_search_form.tpl, realty_view.tpl, realty_grid.tpl, news_list_column.tpl), 4-6 файлов собственных модулей ... и ~10 вопросов на форуме Готовы поделиться скриптом для формы свободной заявки (1 php-скрипт + js-код для отправки данных + код под bootstrap для верстки модальн.окна). Пишите в личку. При разработке даже сделали небольшой хак - "Установка шаблона из URL 'на лету' " http://www.etown.ru/s/topic/332-хак-установка-шаблона-из-url-на-лету/ И в конце работы над проектом, хочется высказать пожелания для разработчиков, быстрее включить в дефолтные шаблоны Bootstrap 3. ----------------- Отдаем даром форму краткой Заявки на объекты В ходе работы над последним проектом на основе Sitebill, мы сделали краткую форму Заявки на объект. Знаем по собственному опыту работы с сайтами агентств недвижимости - такая форма с 2-4 полями дает существенную конверсию и отдачу. Форма добавляет заявку в админку и отправляет заявку на email. Готовы поделиться скриптом для формы свободной заявки (1 php-скрипт + js-код для отправки данных + код под bootstrap для верстки модальн.окна). Просто напишите в личку.
-
1 pointНе пробовал, но, возможно, придется еще добавить ORDER BY date_added, что бы явно указать, какая запись будет "первой" при организации удаления лишних. Чистка напрямую через БД немного плохо - у удаленных объявлений могут остаться картинки.