abushyk

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

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

  • Посещение

  • Days Won

    269

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

  1. Но deal-status и тип контракта (продажа\аренда) - это разные поля, теги и смысловые данные. "Поле, отвечающее за признак продажи" - это именно тип контракта (продажа\аренда), а deal-status указывает уже как бы подтипы этих значений.
  2. Тут указывается как понять, что это у вас продажа. Например у вас есть поле optype (Тип контракта) с вариантами выбора 1-Продажа, 2-Аренда. Тогда в настройку эту нужно написать optype:1 системное имя поля : значение соотв продаже Если например у вас все продажа, то можно указать вообще в лоб active:1 - т.е. все активные - это продажа, а так как кроме активных ничего не выгружается, то все будут продажей. Аналогично и для аренды. Но признак должен быть однозначным. Нельзя написать в данный момент optype:1,2 - т.е. перечислить несколько значений обуславливающих признак или использовать несколько полей для определения.
  3. это поле из разряда "я про него знаю". т.е. его код знает по имени и, при наличии оного, сам использует его значение в зависимости от его типа. именно поэтому я обусловил какое системное имя должно иметь это поле.
  4. Единственный способ - завести в модель объявления поле с системным именем deal_status. Может быть строковым и содержать одно из яндекс-значений словами, или полем выбора select_box например с вариантами значений яндекса. Установить какое-то значение глобально для всех объявок не заводя этого поля не получится.
  5. В Редакторе форм для модели дата вібрать єлемент карты-координат и прописать ему два параметра - map_width и map_height для которіх указать размер окна карті в пикселях без дописывания после цифр размерности
  6. 1. Определиться с областью покрытия переводами. Например у вас может быть поле выбора супермаркета с вариантами Tesco, Metro, Auchan... - такие названия может не иметь смысла держать в двух языках. А вот варианты выбора материала дома - кирпич, монолит, .... скорее всего будет иметь. 2. Свести к минимуму текстовые строковые поля. Например, если вы указываете планировку в виде ввода слова "студия", "свободная", ... то такие поля следует превратить в поля выбора, где вариант выпадает в виде селекта выбора. По максимуму свести все поля у которых в целом варианты ограничены - полем выбора одного из вариантов. Возможно даже пожертвовав некоторой свободой при вводе. 3. Избавиться от текста в полях. Например если вы допускали, что площадь участка могла указываться с размерностью "3 сот", "2га", то такие поля лучше свести к одной размерности в га или в сот и хранить только числовое значение. 4. Для оставшихся требующих перевода полей строкового типа завести их зеркала в модели. напр. для поля "планировка" с системным именем "planning" где хранится текстовое название планировки, добавить поле "planning_en" куда будет записываться такое же название на en-языке. Для полей выбора из списка вариантов типа select_by_query такое же добавление нужно сделать в модели, которая работает по их таблице. Напр. у вас выбор ЖК в объявлении. Но сами ЖК складируются в таблице complex и описываются моделью complex. Значит в объекте у вас останется поле выбора ЖК как и было complex_id, но в модели complex вам нужно будет завести поле name_en куда вы будете записывать en-имя ЖК. 5. Для полей типа select_box для иноязычных вариантов у вас появится поле в настройках самого элемента в Редакторе форм - там вы сможете набить варианты выбора аналогично как вы набивали их для одного языка. 6. Перевод интерфейса - самого сайта. Тут нужно будет пройтись по всем файлам шаблона и все тексты на русском языке заменить языковыми метками вида {$LT_MMMMMM} а сами метки вынести в файлы-словари в папке шаблона и там прописать их значения $LT_MMMMMM=текст1 В общем работа муторная и кропотливая, но если она нужна, то ее придется сделать. Тут главное четко разобраться с пунктами 1-3, что бы в холостую не переводить лишние значения.
  7. 1. Тут нужно смотреть сам сайт. Обычно высота блоков сильно зависит от высота картинки. А в реальто для вывода в списки используются большие картинки а не превьюшки. А у них размер по высоте может быть плавающим. Тут возможно решением может быть замена вывода в список большой картинки, картинкой-превьюшкой, если они у вас загружены с использованием "умной подгонки" и имеют достаточно большой размер. Возможно можно это просто стилями поправить, но тут с лету я рекомендаций не дам.
  8. 5. А) В /template/frontend/realto/realty_grid.tpl находим блок <div class="box_type">{$grid_items[i].price|number_format:0:",":" "} {if $grid_items[i].currency_name != ''}{$grid_items[i].currency_name}{/if}</div> и меняем его следующим образом <div class="box_type">{if floatval($grid_items[i].price)>0}{$grid_items[i].price|number_format:0:",":" "} {if $grid_items[i].currency_name != ''}{$grid_items[i].currency_name}{/if}{else}уточняйте{/if}</div> Б) В /template/frontend/realto/realty_grid_thumbs.tpl.html все точно так же В) В /template/frontend/realto/realty_view.tpl находим блок <div class="box_type">{$similar_data[x].price.value|number_format:0:",":" "} {if $similar_data[x].currency_id.value_string != ''}{$similar_data[x].currency_id.value_string}{else}{$L_RUR_SHORT}{/if}</div> и меняем на <div class="box_type">{if floatval($similar_data[x].price.value)>0}{$similar_data[x].price.value|number_format:0:",":" "} {if $similar_data[x].currency_id.value_string != ''}{$similar_data[x].currency_id.value_string}{else}{$L_RUR_SHORT}{/if}{else}уточняйте{/if}</div> Г) В /template/frontend/realto/layout_home.tpl находим <span class="price">{$special_items2[i].price|number_format:0:",":" "} {if $special_items2[i].currency_name != ''}{$special_items2[i].currency_name}{/if}</span> и меняем на <span class="price">{if floatval($special_items2[i].price)>0}{$special_items2[i].price|number_format:0:",":" "} {if $special_items2[i].currency_name != ''}{$special_items2[i].currency_name}{/if}{else}уточняйте{/if}</span> Д) В /template/frontend/realto/news_list_column.tpl находим <span class="price">{$new_grid_item.price|number_format:0:",":" "} {if $new_grid_item.currency_name != ''}{$new_grid_item.currency_name}{/if}</span> и меняем на <span class="price">{if floatval($new_grid_item.price)>0}{$new_grid_item.price|number_format:0:",":" "} {if $new_grid_item.currency_name != ''}{$new_grid_item.currency_name}{/if}{else}уточняйте{/if}</span> Этого должно быть достаточно.
  9. 2. Вариантом может быть добавление поля типа uploads под хранение планировок. Дать ему системное имя plannings и имя для людей Планировки например. Останется только реализовать вывод этих планировок в шаблон. Если в редакторе форм в модели data у вас уже под картинки использовано поле типа uploads, то можно добавлять его безбоязненно и скопировать из него все параметры, кроме систмного имени.
  10. 4. в файлах /template/frontend/realto/mini_search_form.tpl и /template/frontend/realto/standart_search_form.tpl убрать блочки <div class="col-lg-12 col-md-12 col-xs-12"> <label for="country">Структура</label> {$structure_box} </div> и <div class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <label for="country">Структура</label> {$structure_box} </div> соттветственно
  11. 3-й пункт самый мутный))) и самый заковыристый наверное будет)
  12. Для делаем следующее. 1. В общий шаблон для всего сайта (main.tpl или footer.tpl) внедряем код модального окна <!--noindex--> <div class="modal hide fade" id="recallMe" tabindex="-1" role="dialog" aria-labelledby="recallMeButton" aria-hidden="true"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> <div>&nbsp;</div> </div> <div class="modal-body"> <div class="alert alert-error" style="display: none;">Заказать звонок</div> <div id="order_form_recall_uniq_id"></div> </div> <div class="modal-footer"></div> </div> <!--/noindex--> id="order_form_recall_uniq_id" будет обозначать уникальную область сайта, куда вставится форма заказа обратного звонка. 2. В нужном месте ставим нашу кнопку, которая будет открывать модалку <a href="#recallMe" id="recallMeButton" role="button" class="btn btn-danger btn-mini recallMe-top" data-toggle="modal" rel="nofollow"><i class="icon-white icon-headphones"></i> Заказать звонок</a> 3. В файле скриптов или в теле шаблона (напр. сразу после кода кнопки (но не забываем обернуть тогда в {literal}{/literal})) вставляем код $(document).ready(function(){ ClientOrder.init_form('УНИКАЛЬНАЯ МЕТКА', 'ИМЯ МОДЕЛИ ФОРМЫ'); }); Согласно пункту 2 вместо УНИКАЛЬНАЯ МЕТКА у нас будет order_form_recall_uniq_id а вместо ИМЯ МОДЕЛИ ФОРМЫ - zvonok
  13. Доступ только для группы Администратор!
  14. В виде строки получить ее уже нельзя. При проверке алиаса происходит разбор строки. Но в можно попытаться собрать строку назад из параметров {$smarty.post.predefined_info.params|http_build_query}
  15. Нет. Поле типа textarea режет всю разметку и оставляет только текст (кроме случая наличия параметра allow_htmltags). Поле типа textarea_editor сохраняет всю разметку, в том числе и ссылки. Промежуточного между ними нет даже с правилами валидации. имеете в виду наверное названия улиц из одних цифр? тоже нет. название улицы рассматривается как строка. более детального анализа на ней не проводится.
  16. Если робот посчитает, что его следует индексировать и на него есть ссылка, по которой он придет туда, то проиндексирует. Но неактивность с упомянутой галочкой не порождает ссылок из списка на такие объявки и не выводит их в сайтмап, а просто не дает протухнуть ссылке. Вообще эта опция служит для избежания порождения массы 404-ошибок, когда "выключаются" уже проиндексированные объекты, но не для закрытия чего-то от индексирования.
  17. а вы не включали опцию подтверждения почты при регистрации? если она выключена, то все юзеры (на данный момент это так, но это поведение будет изменено) считаются активными. но если ее включить, то будет проводиться проверка по свойству активности - а пользователи, которые были созданы до включения этой опции, не пройдут эту проверку.
  18. Сайт тот же, что вы показывали в теме про восстановление пароля? Можете прислать пример загружаемого файла на abushyk [собака] gmail.com ?
  19. В модели пользователя есть поле Активность\Активен (active) - его должно быть видно через Редактор форм?
  20. В main.php файле в папке шаблона сделайте точку входа if ( !$has_result && $REQUESTURIPATH=='test') { {*ТУТ ВСТАВИТЬ КОД*} $this->template->assert('main_file_tpl', 'mytpl.tpl'); $has_result=true; } добавьте его например после блока if(!$has_result){ $apps_processor = new Apps_Processor(); $apps_processor->run_frontend(); if ( count($apps_processor->get_executed_apps()) > 0 ) { $work_subcontroller='apps'; $has_result=true; } } Потом в папку шаблона сделать файл mytpl.tpl и там уже каким-то образом вывести из {$objects} переменной эти записи. И по адресу ваш_сайт/test в теории должен быть результат.
  21. я не уверен, что понял что именно нужно, поэтому предложу вариант в слепую //эта часть размещается в main.php там где обработчик адреса //подключаем нужные модели и создаем эталонную модельку объекта require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/model/model.php'); $data_model = new Data_Model(); $form_data_shared = $data_model->get_kvartira_model(false, true); //создаем массив с идешками нужных объектов $my_objs=array(154, 10, 200); //выбираем объеты по эм идешкам в массив $result = $data_model->init_model_data_from_db_multi ('data', 'id', $my_objs, $form_data_shared['data'], true, true); //отправляем в шаблон $this->template->assign('objects', $result); в теории, после этого, в $result у вас будет находиться массив с ключами в виде идешек объектов. Например {$result[10]} это будет объект с ид=10, а {$result[10].city_id.value_string} название города объекта с ид=10 вот такой вариант.
  22. Это как список объявлений по смыслу, только не по фильтру, а по конкретному перечню ид? Или нужно получить их именно в виде моделей, что бы иметь доступ к select_by_query-полям?
  23. изменить скрипт добавления-удаления из избранных так, что бы он брал значение идешки не из аттрибута alt тега, а из, например, аттрибута data-id. Ссылку запостите на сайт, а то я со скрина эту кодированную кириллице не наберу)