abushyk

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

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

  • Посещение

  • Days Won

    269

Все публикации пользователя abushyk

  1. Так а координаты указываете?
  2. А вы координаты указываете для объявлений, или надеетесь на геокодирование?
  3. Вот это кажется как раз ваш случай http://www.etown.ru/s/topic/823-после-обнавления-картинки-стали-не-кликабельн/?p=7457
  4. В данный момент какого-то "кнопочно-настроечного" способа реализовать желаемое вами нет. Есть вариант с рукотворной формой добавления, когда элементы формы частично или полностью размещаются дизайнером, как например http://express-arenda.com/add/ Тогда есть возможность отключить встроенные интерфейсные скрипты и наверстать свою красоту со своими скриптами. Но при таком подходе никто кроме вас уже не будет следить за целостностью формы, ее соответствием модели и тем, не сделаете ли вы в какой-то момент невидимым поле, обязательное к заполнению. Ибо даже если форма наверстана вами, движок все-равно проверит ее по правилам заданным в модели. Соотв. этот способ подходит статичным сайтам где форма модели сформирована и практически неизменна.
  5. Нет. Тут http://estate.sitebill.ru/map другой подход. Хотя шаблон рендеринга самой всплываллочки под маркером одноименный. просто стили иные.
  6. легко. новый код функции function buidSlider(slider_el, min_el, max_el, maxvalue, asMoneyType, step){if(step === undefined){ var sliderStep=1;}else{var sliderStep=step ;}var min_value_now=min_el.val().replace(/\D/g,'');var max_value_now=max_el.val().replace(/\D/g,'');slider_el.slider({ step: sliderStep, range: true, min: 0, max: maxvalue, values: [ min_value_now, max_value_now ], slide: function( event, ui ) { if (ui.values[0]<0){ ui.values[0] = 0; } min_el.val(asMoneyType==true ? asMoney(ui.values[0]) : ui.values[0]); max_el.val(asMoneyType==true ? asMoney(ui.values[1]) : ui.values[1]); } });min_el.change(function(){ var value1=min_el.val().replace(/\D/g,''); var value2=max_el.val().replace(/\D/g,''); if (value1 > maxvalue) { value1 = maxvalue; min_el.val(asMoneyType==true ? asMoney(maxvalue) : maxvalue)} if(parseInt(value1) > parseInt(value2)){ value1 = value2; min_el.val(asMoneyType==true ? asMoney(value1) : value1); } slider_el.slider("values", 0, value1); });max_el.change(function(){ var value1=min_el.val().replace(/\D/g,''); var value2=max_el.val().replace(/\D/g,''); if (value2 > maxvalue) { value2 = maxvalue; max_el.val(asMoneyType==true ? asMoney(maxvalue) : maxvalue)} if(parseInt(value1) > parseInt(value2)){ value2 = value1; min_el.val(asMoneyType==true ? asMoney(value2) : value2); } slider_el.slider("values", 1, value2); });}Далее для цены вызов слайдер buidSlider(simple_slider, simple_price_from, simple_price_for, max_price, true, тут_поставьте_циферку_шага_для_цены); Для площади buidSlider(simple_slider, simple_price_from, simple_price_for, square_all_max, false, тут_поставьте_циферку_шага_для_площади); Жирный подсветил отличия.
  7. Нет картинки - нечего выводить. Ситуация логичная. В сетке, где без картинок могут быть скачки, ставится заглушечная. В просмотре - просто не выводится. Для включение водяного знака используется Общие - Использовать watermark на фотографиях. Опция включения размещенная в WatermarkPrinter - рудиментарная. Водяной знак наносится только на полноразмерную картинку. На преью он не ставится.
  8. А, я понял о чем вы. Мы уже сталкивались с этим. Я постааюсь вспомнить в чем была проблема и отписать. Не должны мешать. Фильтрация (ограничение выборки согласно некоторым параметрам) и сортировка (упорядочивание выбраных элементов по некоторому параметру) происходит с учетом указанной валюты. Это должно быть применимо к основной массе шаблонов уже, кроме, разве что, самых индивидуальных. А там они, как раз, выводятся так, как и думалось. Дальше можно уже улучшать средствами css и правя файл realty_on_map.tpl (для изменения положения элементов в отображении единичного объявления)
  9. Встречный вопрос - водяной знак не накладывается на полноразмерный вариант картинки или только на превьюшку?
  10. 1. В принципе, вывод маркера, при указанных координатах, никоим образом не связан с другими полями. Нужно смотреть конкретно. 2. "Должным образом не выводится" - можно подробнее? В стилевом смысле или положение не то? 3. То же вроде бы не связанные события. Шаблон агенси? 4. Первый способ - убрать вывод валюты в шаблоне сетки. Если указание валюты, как таковое не нужно, либо оно подразумевается иным способом - можно воспользоваться именно этим способом. Второй способ - подключить Использование нескольких валют, в Менеджере валют обозначить используемые валюты, снабдить модель объявления полем для фиксации валюты. Назначить объявлениям конкретную валюту. Тогда вывод валюты будет укащзани именно таким, как его укажут для конкретного объявления и не придется править шаблон. 5. Теоретически: а) дополняем модель объявления признаком Долгосрочная аренда (чекбокс, например) б) вводим дополнительное поле под цену. Например уже существующую считаем ценой посуточной, а долгосрочную добавляем. в) реализуем в поиске алгоритм поиска (тут нужны конкретные установки, что бы что-то конкретное написать) 5 еще один. Возможно была бы нужна, но маловероятно, что могла бы быть. 6. Тут без проблем. Согласен. 7. Будет. По срокам не уточню)) Оффтоп: на каком основании вы бы давали разные маркеры разным объектам? По какому признаку?
  11. 1. /template/frontend/agency.pay/main/main.php находим if ( preg_match('/\/register/', $_SERVER['REQUEST_URI']) ) {...}сразу после if ( preg_match('/\/register/', $_SERVER['REQUEST_URI']) ) { добавляем $this->template->assert('hide_search_form', 1);2. /template/frontend/agency.pay/main.tpl Находим {if !$is_account}...{include file="search_form.tpl"}...{/if}и первую строку меняем на {if !$is_account && $hide_search_form!=1} теперь форма поиска будет отображаться на всех страницах, кроме ЛК и регистрации.
  12. Попробуйте установить в Настройки - Тип списка объявлений значение thumbs
  13. Он и сейчас есть. Точнее это тип поля uploadify_file. Но у него есть очень неудобная особенность - поля типа uploadify_... могут существовать на одном объекте только в единственном экземпляре. Другими словами нельзя использовать uploadify_image и uploadify_file в одной форме, только что-то одно из них. А полноценный прикреплятор файлов, схожий с uploads, я пока не готов представить.
  14. Ага, забыл один момент. В шаблоне, где включается карта RM.initJSON('YMapsID', loc_objects, map_type, {scrollZoom: false, minimap: false, defaultZoom: 4}); добавьте еще вид карты в опциях RM.initJSON('YMapsID', loc_objects, map_type, {scrollZoom: false, minimap: false, defaultZoom: 4, yandexMapType: 'yandex#map'}); если этот параметр не указан, то карта строится в виде народной.
  15. /template/frontend/pure/img/no_foto_270x200.png - это файлик, который выводится когда картинки нет. Просто залейте туда же одноименный свой.
  16. Я так понимаю, что речь об "увеличить"? По-умолчанию шаг слайдера стоит 1. Что бы это изменить в slider_el.slider({ range: true, min: 0,...добавьте параметр step: 100,вместо 100 любое другое целое значение.
  17. В /apps/system/js/realtymap.js есть функция this.createYandexMap=function(){...внутри которой есть подключение кнопки выбора типа карты _this.map.controls.add(new ymaps.control.TypeSelector(['yandex#map', 'yandex#publicMap', 'yandex#satellite', 'yandex#hybrid']));Вот в этом подключении необходимо убрать 'yandex#publicMap', 'yandex#satellite', 'yandex#hybrid' и оставить только _this.map.controls.add(new ymaps.control.TypeSelector(['yandex#map']));
  18. 1. Инициализация значений в шаблон. Нам необходиом поймать знчения из запроса в шаблон для полей площадей. В /template/frontend/realia/standart_search_form.tpl в самом начале шаблона добавляем перехваты {if isset($smarty.request.square_min) && $smarty.request.square_min!=''}{assign var='square_min' value=$smarty.request.square_min}{else}{assign var='square_min' value=0}{/if}{if isset($smarty.request.square_max) && $smarty.request.square_max!=''}{assign var='square_max' value=$smarty.request.square_max}{else}{assign var='square_max' value=1000000}{/if}и чуть ниже, после var max_price={/literal}{if $max_price ne ''}{$max_price}{else}0{/if}{literal};var price_from=Number({/literal}{if isset($price_min)}{$price_min}{else}0{/if}{literal});var price_for=Number({/literal}{if (isset($price)) && ($price ne '')}{$price}{else}{$max_price}{/if}{literal});добавляем var square_all_max=Number(1000000);2. Формируем разметку. Слайдер состоит из трех элементов - двух межевых полей ввода и собственно слайдера. <!-- Межевое поле --><div class="beds control-group"> <div class="controls"> <input type="text" class="square_from square_field" name="square_min" value="{$square_min}"/> </div><!-- /.controls --> </div><!-- /.control-group --><!-- Межевое поле --> <div class="baths control-group"> <div class="controls"> <input type="text" class="square_for square_field" name="square_max" value="{$square_max}"/> </div><!-- /.controls --> </div><!-- /.control-group --> <!-- Слайдер --> <div class="price-value control-group"> <div class="controls"> <div class="square_slider"></div> </div><!-- /.controls --> </div>Значения межевых полей мы устанавливаем теми значениями, которые мы инициализировали в п.1 Разметку разместить в /template/frontend/realia/standart_search_form.tpl в теле формы поиска. 3. Навеска слайдера. /template/frontend/realia/js/search_form.js После функций asMoney() и number_format() доюавляем функцию function buidSlider(slider_el, min_el, max_el, maxvalue, asMoneyType){var min_value_now=min_el.val().replace(/\D/g,'');var max_value_now=max_el.val().replace(/\D/g,'');slider_el.slider({ range: true, min: 0, max: maxvalue, values: [ min_value_now, max_value_now ], slide: function( event, ui ) { if (ui.values[0]<0){ ui.values[0] = 0; } min_el.val(asMoneyType==true ? asMoney(ui.values[0]) : ui.values[0]); max_el.val(asMoneyType==true ? asMoney(ui.values[1]) : ui.values[1]); } });min_el.change(function(){ var value1=min_el.val().replace(/\D/g,''); var value2=max_el.val().replace(/\D/g,''); if (value1 > maxvalue) { value1 = maxvalue; min_el.val(asMoneyType==true ? asMoney(maxvalue) : maxvalue)} if(parseInt(value1) > parseInt(value2)){ value1 = value2; min_el.val(asMoneyType==true ? asMoney(value1) : value1); } slider_el.slider("values", 0, value1); });max_el.change(function(){ var value1=min_el.val().replace(/\D/g,''); var value2=max_el.val().replace(/\D/g,''); if (value2 > maxvalue) { value2 = maxvalue; max_el.val(asMoneyType==true ? asMoney(maxvalue) : maxvalue)} if(parseInt(value1) > parseInt(value2)){ value2 = value1; min_el.val(asMoneyType==true ? asMoney(value2) : value2); } slider_el.slider("values", 1, value2); });}которая и удет рисовать наши слайдеры. Функция потребляет в себя jQuery элементы сладйера, межевых полей и максимального значения. Расположенный чуть выше блок $(document).ready(function(){...});приводим к следующему виду $(document).ready(function(){$("input.price_field").autoNumeric({aSep: ' ', vMax: '999999999999', vMin: '0'});var simple_slider=$("div.property-filter .slider");var simple_price_from=$("div.property-filter input.price_from");var simple_price_for=$("div.property-filter input.price_for");buidSlider(simple_slider, simple_price_from, simple_price_for, max_price, true);var simple_slider=$("div.property-filter .square_slider");var simple_price_from=$("div.property-filter input.square_from");var simple_price_for=$("div.property-filter input.square_for");buidSlider(simple_slider, simple_price_from, simple_price_for, square_all_max);$('a.search_page_toggle').click(function(){$('div#simple_search').slideToggle();$('div#extended_search').slideToggle();return false;});});В принципе уже сейчас слайдер должен работать.
  19. С моей стороны эта штука в агенси вкомиччена. Надо будет попросить Дмитрия посмотреть, попали ли эти обновки в базовый шаблон доступный для скачивания.
  20. @Закрыть сайт (is_underconstruction) Закрывает фронтальную часть сайта на обслуживание. Так как опция новая, то, для полноценной ее работы, необходимы некоторые изменения в шаблоне. @ © http://wiki.sitebill.ru/index.php?title=%D0%9E%D0%B1%D1%89%D0%B8%D0%B5_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8 Я делал так. В main.tpl охватывал вывод нормальной страницы условием {if $is_underconstruction_mode==1}{include file='main_closed.tpl'}{else}Тут все что было в main.tpl до добавления{/if}И верстал полноценный main_closed.tpl с видом в Закрытый сайт - какую-нибудь чистую страничку с красивым значком посредине и ахтунгом "Сайт закрыт".
  21. Инсталляционных файлов, кажется, вообще нет ни в каких приложениях. Обычно инсталляцию заменяет вызов в приложении команды install. Например для приложения Комментарии /admin/index.php?action=comment запускает процесс инсталляции по адресу /admin/index.php?action=comment&do=install Этот метод должен срабатывать для подавляющего большинства приложений. За readme не скажу, не видел. А куда должна вести ссылка, которая битая?
  22. Realtymap.js - это обертка над API Гугло- и Яндекс-карт. Одновременно. В нее включен весьма ограниченный функционал, который, грубо говоря, является общим для многих сайтов. И вот таки настроек, для отключения некоторых видов отображения, в данный момент нет. Максимум что есть - это возможность указать типа карты при загрузке самйо карты. Т.е. если по дефолту на странице карточки грузится Схема, а хочется Народную, то можно указать в настройке что грузить именно Народную. Но это не убирает переключатель типа карты как таковой и работает только для Яндекса. Иначе говоря, в данный момент вы можете на свой страх и риск попробовать кастомизировать /apps/system/js/realtymap.js в свой, если получится в нем разобраться.
  23. В вариантах, где карта подключается не простыней кода, а конструкцией вида RM.initJSON('property-map', loc_objects, map_type, {defaultZoom: 8});как в pure, то тут немного другой принцип. См. http://www.etown.ru/s/topic/380-настройка-карты-яндекс/?p=6217 тут описаны все доступные параметры для возможной настройки.
  24. Я завтра напишу, как довесить слайдер на свой элемент.