abushyk

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

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

  • Посещение

  • Days Won

    269

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

  1. Картинки /template/frontend/realia/img/icons/mail-gray.png /template/frontend/realia/img/icons/phone-gray.png Стили вывода для картинок /template/frontend/realia/css/realia-blue.css строка 681 #header-wrapper #header #header-inner .navbar .navbar-inner .site-email a и 663 #header-wrapper #header #header-inner .navbar .navbar-inner .site-phone span Там будет нужно подправить background-size
  2. тут на 100% согласен. Первый сигнал уже есть, так что будем учитывать.
  3. Если на хосте будет php скомпилированный под mysql-5.1, но сама бд будет крутиться на mysql-5.5, то гарантия будет 0%. Не смотря на то, что в обеих случаях используются абсолютно одни и те же функции из аресенала работы с БД, в зависимости от варианта компиляции они работают немного по разному. Именно поэтому и выдается сообщение о "несовпадении версий библиотек клиента (читайте вашего откомпилированного пхп) и сервера (т.е. самого движка БД)". 403 ошибка вообще не имеет никакого отношения к упомянутой проблеме. На текущий момент Ваш случай является единственным и уникальным, хотя клиенты пользуются разными хостерами, что не дает оснований считать, что дело "скорее в скриптах", а не в каком-то недочете при компиляции ПО хостинга. В любом случае, как мне кажется, данная проблема не может быть решена без участия хостера.
  4. Напишите мне в скайп или аську. Контакты в данных профиля.
  5. А если посмотреть "Код страницы", то в разметке блочков объяв в сетке присутствуют вообще классы grid_thumbs_bold и grid_thumbs_premium ?
  6. 1. Права видимости на поля могут устанавливаться только для реальных групп. 2. Группа "Незарегистрированные" не указывает на пользователя-гостя, устанавливать на нее любые права не имеет смысла, так как не существует реально пользователей в этой группе. 3. Указания права видимости на поле следует расценивать в первую очередь как ограничение на видимость поля на формах (добавления, редактирования). Способность поля "прятаться" в карточке - приятная фича. 4. Указание видимости на некоторые поля может просто не иметь смысла. Например расшаривание только на админа видимости поля с мета-данными абсолютно логично для формы, но полностью не приемлемо для карточки. Это следует иметь в виду. 5. В остальном видимость должна соблюдаться. По крайнем мере на тестовом я проверил.
  7. В вашу модель объявления не включен ни Регион, ни Страна. Соответственно и данных для них в форме поиска не выводится. Тут либо решить, что эти поля вам нужны и дополнить модель этими полями, либо, если не нужны, убрать их из шаблона формы поиска. Потеряли файлик /template/frontend/realia/libraries/jquery-ui/css/ui-lightness/jquery-ui-1.10.2.custom.min.css Именно вписал текстовое значение как "для общей информации" или все-таки то, что вы сделали сейчас?
  8. Судя по ошибке в консоли сбой начинается на подключении lightBox - всплывалки фоток. Попробуйте для начала убрать фичи с полей выбора на форме поиска - улицу сделать обычным селектом без автокомплита. А в Настройки - Общее выключить "Использовать combobox в элементах select "
  9. Либо перевести тип поля Район с select_by_query в safe_string. Тут все зависит от того, что далее будет делаться с этим полем, для чего и как использоваться.
  10. 1. Размеры маркеров в size: [N, M], лучше указывать явно во избежании неожиданностей. Т.е. если вы используете маркеры из набора реалии, то size: [42, 57]2. Оффсеты от точки указания offset: [-16, -37] аналогично. Для маркера реалия(как и для подавляющего большинства общеупотребительных маркеров) это половина ширины по горизонтали и высота, так как "точка указания" маркера расположена внизу по центру иконки маркера offset: [-21, -57]3. Красный маркер вы делали перекрашивая синий? В наборе реалии есть готовый красный маркер в папке \template\frontend\realia\img\markers\ Может лучше использовать его или маркеры из коллекций http://mapicons.nicolasmollet.com/ что бы соблюсти единство стилей?
  11. 1. Хлебные крошки. Файл тот же, что мы создали под тайтл = /template/frontend/realia/main/view/local_kvartira_view.php Удобного способа переопределить функцию создающую крошки нет, поэтому воспользуемся той же нашей функцией getMetaData в которой мі создадим крошки и подменим ими штатные. Нам требуется построить крошки по принципу 'Ссылка на главную' - 'Ссылка на страну' - 'Ссылка на город' - 'Ссылка на тип недвиги+Город в котором находится данная объява' Условимся считать, что мы делаем это для удобства пользователя. В конце getMetaData() перед return array(...) делаем выборку нужных нам параметров $c_country_id=(int)$form_data['country_id']['value'];$c_country_name=$form_data['country_id']['value_string'];$c_city_id=(int)$form_data['city_id']['value'];$c_city_name=$form_data['city_id']['value_string'];$c_topic_id=(int)$form_data['topic_id']['value'];$c_topic_name=$form_data['topic_id']['value_string'];далее строим сами крошки $breadcrumbs=array(); if($c_country_id!=0){ $breadcrumbs[]='<a href='.SITEBILL_MAIN_URL.'/">Главная</a>'; $breadcrumbs[]='<a href='.SITEBILL_MAIN_URL.'/?country_id='.$c_country_id.'">'.$c_country_name.'</a>'; if($c_city_id!=0){ $breadcrumbs[]='<a href='.SITEBILL_MAIN_URL.'/?city_id='.$c_city_id.'">'.$c_city_name.'</a>'; if($c_topic_id!=0){ $breadcrumbs[]='<a href='.SITEBILL_MAIN_URL.'/?city_id='.$c_country_id.'&topic_id='.$c_topic_id.'">'.$c_topic_name.'</a>'; } } $this->template->assign('breadcrumbs', implode(' / ', $breadcrumbs) ); }Теперь наши крошки перезапишут созданные движком. Но все это красиво только если мы озаботились лишь удобством пользователя. Если у нас прицел на сео-оптимизацию от рубрикации по типам к рубрикации по географии, либо по более сложному варианту - по географии+типу, то этот способ не выдерживает критики.
  12. Повторять только если очень нужно. Сложно! 1. Создаем локальный обработчик сеток. /apps/system/lib/frontend/grid/grid_constructor.php копируем в /template/frontend/шаблон/main/grid/local_grid_constructor.php 2. Удаляем из него весь функционал, кроме function get_sitebill_adv_core() 3. В начале файла делаем замену class Grid_Constructor extends SiteBill_Krascap { на class Local_Grid_Constructor extends Grid_Constructor { 4. В файле /template/frontend/realia_complex/main/main.php в фнкции main() после строк global $__site_title, $folder, $smarty; добавляем require SITEBILL_DOCUMENT_ROOT.'/template/frontend/'.$this->getConfigValue('theme').'/main/grid/local_grid_constructor.php';$this->_setGridConstructor(new Local_Grid_Constructor());5. Создаем файл /template/frontend/agency/js/realtymap_markers_config.js 6. Заполняем его var RM_Custom_Markers = {icon_mark_1: {icon: estate_folder+'/template/frontend/agency/img/icon1.png',size: [32, 37],offset: [-16, -37]},icon_mark_2: {icon: estate_folder+'/template/frontend/agency/img/icon2.png',size: [32, 37],offset: [-16, -37]},}icon_mark_1, icon_mark_2 произвольные метки маркеров. могут содержать буквы-цифры и подчеркивание . Само название могут иметь произвольное.icon: estate_folder+'/template/frontend/agency/img/icon2.png', - путь к картинке иконки size: [32, 37], - размер иконки (физический) в пикселях. Иконки должны быть в размер вывода маркера. Этот параметр указывать явно - то ли гугль, то ли яндекс без него начинают халтурить offset: [-16, -37] - смещение "нулевой" точки иконки (верхнего левого угла картинки иконки) от места, на которое на карте должна указывать иконка. Зависит от того, что нарисовано на иконке. Содаете набор вот таких вот параметров под свои категории. Что бы не путаться можете называть их согласно ид пунктов структуры = icon_mark_3465, icon_mark_13 7. Подключаем этот файл в /template/frontend/agency/header.tpl как обычный скрипт <script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/realtymap_markers_config.js"></script>8. Возвращаемся к /template/frontend/шаблон/main/grid/local_grid_constructor.php 9. Находим в оставшемся в нем контенте блок if($geodata && count($ra)>0){...}Внутри него идет формирование данных для георисования. ...if(isset($d['number']) && $d['number']!='' && $d['number']!=0){$address[]=$d['number'];}if(isset($d['price'])){$address[]=$d['price'];}После этого добавляем $gdata[$k]['topic_id']=$d['topic_id'];Опускаемся еще ниже, до непосредственного формирования данных для карты $geoobjects_collection=array(); if(count($gdata)>0){ foreach ($gdata as $gd){ $gc=$gd['geo_lat'].'_'.$gd['geo_lng']; if(isset($geoobjects_collection[$gc])){ $geoobjects_collection[$gc]['html'].=$gd['html']; $geoobjects_collection[$gc]['count']++; }else{ if($gd['topic_id']==44){ $geoobjects_collection[$gc]['icon']='icon_mark_44'; } $geoobjects_collection[$gc]['lat']=$gd['geo_lat']; $geoobjects_collection[$gc]['lng']=$gd['geo_lng']; $geoobjects_collection[$gc]['html']=$gd['html']; $geoobjects_collection[$gc]['count']=1; } } }тут я красным показал, что добавить. Вот вроде бы и все. Если попробуете, но не получится, пишите.
  13. Все верно сделали. Мы эту опцию добавили, но ажиотажа она не вызвала - поэтому мы как-то перестали на нее обращать внимание. Скорее всего, где-то просто при обновлениях удалили вытягивание этих картинок в шаблон.
  14. 2. Утолщение цены За создание тайтла в карточке недвижимости отвечает функция getMetaData из файла /apps/system/lib/frontend/view/kvartira_view.php Для изменения ее следует сделать следующее. 1. Копируем файл /apps/system/lib/frontend/view/kvartira_view.php в /template/frontend/realia/main/view/local_kvartira_view.php 2. Чистим из него все функции, кроме getMetaData() 3. Находим в ней строку $title_parts[]=number_format($form_data['price']['value'],0,',',' ');(встречается два раза) и заменяем ее на $title_parts[]='<b>'.number_format($form_data['price']['value'],0,',',' ').'</b>';4. Вверху этого же файла строку class Kvartira_View extends SiteBill { меняем на class Local_Kvartira_View extends Kvartira_View {5. Открываем /template/frontend/realia/main/main.php 6. Находим функцию function isRealtyDetected($requesturi) 7. Внутри этой функции заменяем строки (в трех местах) $kvartira_view = new Kvartira_View();на require_once(SITEBILL_DOCUMENT_ROOT.'/template/frontend/'.$this->getConfigValue('theme').'/main/view/local_kvartira_view.php');$kvartira_view = new Local_Kvartira_View();8. Следует помнить, что, если не указано иначе, склейка из частей этих же данных создаст и заголовок страницы в браузере, там где "<b>" и "</b>" не нужны. Поєтому чуть ниже есть блок if($form_data['meta_title']['value']==''){ $meta_title=$title; }else{ $meta_title=$form_data['meta_title']['value']; }в нем делаем коррективу if($form_data['meta_title']['value']==''){ $meta_title=strip_tags($title); }else{ $meta_title=$form_data['meta_title']['value']; } Продолжение следует...
  15. Ссылку на видео не дам, ибо не знаю, есть ли такая. Завтра попросим Дмитрия сказать о ее наличии. Приложу в сообщение файл add_form.zip такого шаблона, который делался под другой шаблон, может он чуть прояснит ситуацию.
  16. $ar['href']=SITEBILL_MAIN_URL.'/'.$app_item_alias.'/'.$ar['newsalias'].'/';
  17. /template/frontend/agency/layout_basic.tpl, строка 150 или около этого <div id="left"><div id="search_main">{if !$is_account and !preg_match('/mapviewer/', $smarty.server.REQUEST_URI)} {include file="search_form.tpl"} {else if $is_account} {include file="remember.tpl"} {/if}</div></div>Оборачиваем в {if $main_file_tpl!='realty_view.tpl'} ... {/if} {if $main_file_tpl!='realty_view.tpl'}<div id="left"><div id="search_main">{if !$is_account and !preg_match('/mapviewer/', $smarty.server.REQUEST_URI)} {include file="search_form.tpl"} {else if $is_account} {include file="remember.tpl"} {/if}</div></div>{/if}У нас получилось, что если выводится шаблон карточки, то в верху мы не выводим блок, который выводит форму поиска. Осталось вывести его ниже. Полностью копируем наш обернутый блок и вставляем в этом же шаблоне ниже перед <div id="left1"> И в этой вставке меняем {if $main_file_tpl!='realty_view.tpl'} на {if $main_file_tpl=='realty_view.tpl'}, т.е. что бы он показался, когда мы выводим карточку.
  18. Да, можно вручную управлять расположением элементов, но для этого придется плотно работать с шаблонм. Делается это так: 1. /apps/admin/admin/template/data_form.tpl копируется в /template/frontend/ваш_шаблон/apps/admin/template/form_data_add.tpl Это будет локальный шаблон формы добавления. 2. В этом шаблоне устроен автоматический вывод. Определить его можно так <script type="text/javascript" src="{$estate_folder}/apps/system/js/form_tabs.js"></script> ... тут автовывод ... <div class="form_element_control"> Другими словами вместо [... тут автовывод ...] вам нужно будет разместить свой шаблон расположения элементов 3. Для вывода прийдется воспользоваться хешем полей {$form_elements.hash}. По сути это массив всех полей, которые подлежат выводу на форму, но без размещения по табам. Выдергивая оттуда элементы поштучно вы можете осознанно расставить их по сетке верстки. Например в данный момент мы выводим поле "Количество комнат" с системным именем room_count. Это значит, что нам нужно взять разметку элемента формы {$form_elements.hash.room_count.html}, которая содержит готовый элемент поля ввода и поставить куда мы хотим (хоть в ячейку таблицы, хоть в плавающий блок). Если нам нужен еще заголовок элемента, аналогичный тому, что мы ввели в Редакторе форм, то берем {$form_elements.hash.room_count.title}. Так же доступна подсказка {$form_elements.hash.room_count.hint} Следуя этому алгоритму можно сверстать самые причудливые формы, но следует помнить, что заменяя автовывод ручной версткой вы разрываете связь этой формы и редактора форм. Т.е. добавляя и удаляя поля в Редакторе форм вы уже не будете иметь интерактивного обновления формы объявления, аналогичные добавления-удаления придется проводить в щаблоне самостоятельно.
  19. /template/frontend/pure/stylesheets/home-styles.cssстрока 18.logo-social a.logo{display: inline-block;background: url(../images/logo.png) 0 0 no-repeat;width: 121px;height: 36px;}Соотв. лого лежит в папке /template/frontend/pure/images/ в файле logo.png Кроме того стили на размер блока под картинку могут быть указаны еще и на самом элементе лого<a href="/" class="logo" style="width: 255px; height: 79px;"><!-- --></a>в /template/frontend/pure/main.tpl
  20. Почему это не скажу?))) Скажу. Главная - это стартовая страница. Результат выдачи по поиску\сортировке\фильтрации - это уже не главная а именно результат выдачи. Так что задача определения "главной" не является тривиальной. Например в реалии стандартно я делаю проверку на главную в виде $REQUESTURIPATH=='' && empty($_GET), т.е. в адресной строке пустой урл и не переданы параметры формы, которые обычно передаются через $_GET. Но в целом тут может быть множество вариантов.
  21. Могу предложить следующий вариант. В переменной данных в сетке есть свойство path ({$grid_items.path}). В ней содержится цепочка категорий объявления от верха до низа в виде строки. Вставьте себе в шаблоне сетки эту переменную в обусловленном месте и посмотрите, подойдет ли вам это.
  22. /template/frontend/realia/realty_view.tpl Находим строки <div class="sidebar span3"> {if $user_data ne ''} С єтого места начинается вывод данных агента. Это примерно 307 строка шаблона.За конкретный вывод почты отвечает блок{if isset($data.email.value) && $data.email.value!=''}<div class="email"><a href="mailto:{$data.email.value}">{$data.email.value}</a></div>{elseif $user_data.email.value != ''}<div class="email"><a href="mailto:{$user_data.email.value}">{$user_data.email.value}</a></div>{/if}Она на десяток строк ниже. Суть его в том, что он проверяет указана ли почта в данных объявления и, если да, выводит ее, а если нет, тогда пытается вывести данные из данных пользователя к которому привязано объявление. Вторая вилка этого алгоритма нас не устраивает, поэтому мы меняем этот блок на {if isset($data.email.value) && $data.email.value!=''}<div class="email"><a href="mailto:{$data.email.value}">{$data.email.value}</a></div>{else}<!-- Тут ничего не делаем, так как почту пользователь-податчик объявления не указал -->{/if}Аналогичную манипуляцию можно провести и с телефоном в блоке <div class="phone">...</div> В целом достаточно помнить, что в $data - содержатся данные объявления, а в $user_data - уже данные "владельца" объявления (читай пользователя на которого оно привязано.)
  23. Вот так индексы должны быть. В реалии для этажей так и должно было быть написано. < div class=" area"> < span class=" key">{$L_FLOOR}:</span> < span class=" value">{$grid_items.floor}/{$grid_items.floor_count}{$grid_items.date}</span> </div> Сама date формируется безальтернативно. Т.е. она должна быть всегда.
  24. По категориям - Админка, в левой колонке Структура. Там разворачиющиеся блоки, которыми вы можете манипулировать и, в том числе, удалять ненужные категории. Иконка мусорного бака - это мягкое удаление. Т.е. оно не даст удалить вам категорию, если в к ней привязано что-то, например объявления какие. А красный ластик - это жесткое удаление, оно позволяет удалять даже несвободные категории и даже может предложить некоторые разные способы удаления. По остальному - завтра посмотрю.