-
Публикации
4036 -
Зарегистрирован
-
Посещение
-
Days Won
269
Все публикации пользователя abushyk
-
Авторегистрация Настройки - Общее - Включить авторегистрацию (autoreg_enable) Регистрация Настройки - Общее - Разрешить регистрацию на сайте (allow_register_account) Авторизация, кажется, не требует включения - достаточно разместить кнопку для нее. Дайте ссылку на сайт, если он доступен в интернете.
-
Для обработчика важно именно то, под каким типом поле указано в редакторе форм - select_box или select_by_query. Именно от этого он отталкивается при выборе способа переведения значения из ключа в текстовое представление. Но если это select_box , то набор допустимых значений вы указываете в редакторе флрм в форме правки данного поля в поле @Набор опций выбора в формате пар {key~~value}@ А после того, как создали колонку запросом к БД, она физически появилась в таблице data?
-
Рассмотрим ситуацию для шаблона Realty. Перед всеми экспериментами - дампить меняемые файлы. Обязательно. Исходные данные: 1. имеем локальный файл конструктора сеток /template/frontend/realty/main/grid_constructor_local.php 2. Имеем желание править под себя шаблон вывода /template/frontend/realty/realty_grid_list.tpl Предусловия. Статус может задаваться полем типа select_by_query или select_box. Для того, что бы что-то вывести, это что-то надо отправить в шаблон. Для того, что бы как-то выделить конкретный статус, надо как-то отметить строку с объявление, которая владеет этим статусом. Статус можно отправить либо значение, либо ключем и при определении вида статуса в шаблоне ориентироваться именно на переданное значение. Поехали. Мы ленивы, но практичны. Полагая, что имена статусов могут меняться (Опубликовано -> Опубл.) в силу разных причин, но ключи будут меняться реже, будем ориентироваться на ключи. Что в select_by_query , что в select_box каждое значение имеет ключ-идентификатор. Обычно это число. Из запроса данные выбираются именно ключами $grid_item.status_of_adv будет исхдно равно 1,2,0 или еще чему-нибудь. Приводим к текстовому значению. /template/frontend/realty/main/grid_constructor_local.php строка 725 добавляем блок $_model=$data_model->get_kvartira_model(false, true);foreach($_model['data'] as $k=>$v){if($v['type']=='select_box'){if(isset($_model['data'][$k]['select_data'][$ra[$item_id][$k]])){$ra[$item_id][$k]=$_model['data'][$k]['select_data'][$ra[$item_id][$k]];}else{$ra[$item_id][$k]='';}}} Тут ничего необычного. По сути приведение локального конструктора к актуальному виду. Этот блок проходится по модели и все числовые значение элементов типа select_box приводит к их текстовым эквивалентам. Так как нам нужно еще и числовое значение, для идентификации статуса, то перед этим блоком делаем запоминание. if(isset($ra[$item_id]['status_of_adv'])){$ra[$item_id]['_mem_status_of_adv']=$ra[$item_id]['status_of_adv'];}Теперь в шаблоне получить числовое значение для статуса можно как $grid_item._mem_status_of_adv а текстовое как $grid_item.status_of_adv Но если у нас не select_box, а select_by_query то чуть віше вставленного блока есть комплект инициализаторов таких полей if ( $item_array['street_id'] > 0 ) { $ra[$item_id]['street'] = $data_model->get_string_value_by_id('street', 'street_id', 'name', $item_array['street_id'], true);}и в таком же духе. Тогда делаем копию одного из них и меняем if ( $item_array['status_of_adv'] > 0 ) {$ra[$item_id]['_mem_status_of_adv']=$ra[$item_id]['status_of_adv']; //тут мы тоже запоминаем числовое значение$ra[$item_id]['status_of_adv'] = $data_model->get_string_value_by_id('имя таблицы в которой хранятся статусы', 'имя первичного ключа таблицы статусов', 'поле из таблицы статусов, которое содержит текстовое значение названия статуса', $item_array['status_of_adv'], true);}Аналогично получаем в шаблоне значения через $grid_item._mem_status_of_adv и $grid_item.status_of_adv Теперь идем в шаблон. Там, где у нас должен быть вывод имени статуса вставляем {$grid_item.status_of_adv} Далее, в зависимости от разметки. Например вывод строками таблицы в виде {section name=i loop=$grid_items} <tr valign="top" class="row3{if $grid_items[i].bold_status==1} grid_table_bold{/if}{if $grid_items[i].premium_status==1} grid_table_premium{/if}" {if $grid_items[i].active == 0}style="color: #ff5a5a;"{/if}>Делаем <tr valign="top" class="row3 advstatus{$grid_item[i]._mem_status_of_adv}{if $grid_items[i].bold_status==1} grid_table_bold{/if}{if $grid_items[i].premium_status==1} grid_table_premium{/if}" {if $grid_items[i].active == 0}style="color: #ff5a5a;"{/if}>В результате мы получаем для каждой строки таблицы дополнительный класс вида advstatusN, где N - числовое значение статуса данного объявления. После этого пишем css правила вида .advstatus0 {/*стили*/}.advstatus1 {/*стили*/}.advstatus2 {/*стили*/}такой способ хорош если нужны все статусы или их очень много. Но для малого количества и большей гибкости можно создавать классы более осмысленно <tr valign="top" class="row3{if $grid_item[i]._mem_status_of_adv==1} usual_adv{elseif $grid_item[i]._mem_status_of_adv==2} extremally_interesting{/if}{$grid_item[i]._mem_status_of_adv}{if $grid_items[i].bold_sta...Как-то так. Перед всеми экспериментами - дампить меняемые файлы. Обязательно.
-
status_of_adv имеет тип select_by_query? Автоматически приводятся значения для select_box-полей, что бы они отображались не цифрами, а значениями. Уточните, мы говорим о выводе в фронт сайта или в админку? В соседнем топике кажется речь шла именно об админке.
-
Чаще ситуация обратная - есть некоторые предложения и, когда их число достаточно велико, делается сайт)))
-
Если установлено приложение GeoData и в модели объявления создано поле с системным именем geo и типом geodata, то в форме добавления\правки объявления будут доступны два поля для ввода координат объекта в виде XX.XXXXXX . Если эти координаты указаны - тогда они указаны явно, в противовес ситуации, когда координаты не указаны и положение объекта вычисляется путем геокодирования - определения географических координат по городу, улице, номеру дома (сейчас такая ситуация в просмотре объявлений, где, если координаты не указаны, они вычисляются из других косвенных данных). Так как геокодирование - затратная по ресурсам операция - она сознательно исключена из процесса создания карт для более чем одного объявления - сетки, карта на главной. Но пока поддерживается для просмотра объявления, где на карту выводится только один маркер.
-
Добавление статусов объявлений
topic ответил в Victor_winner abushyk в Приложения, модули, настройки
Можно и так, но это будет лишним. Достаточно средств шаблона. Единственное, Дмитрий поспешил с подключением локального шаблона для realty_grid_wdg.tpl . Сейчас он не подключится из локального местоположения, так как этого не предусмотрелось. В первом же обновлении это будет доступно. -
Уточню. Есть два способа вывода карты с сеткой. 1. Карта на главной (Выводить карту на главной странице ). В этом случае на "главной" выводится карта содержащая метки всех объявлений, для которых явно указаны координаты положения в свойствах. 2. Карта с сеткой (Выводить карту вместе со списком объявлений ). В этом случае, при выводе списка объявлений вместе с ними выводится карта, содержащая метки только для объявлений из выведенной сетки, для которых явно указаны координаты положения в свойствах.
-
Если в новой версии проблема с отсутствующими картинками не решится, сделайте следующее: /template/frontend/onecity/realty_grid.tpl строка где-то 10-11 <div class="box_table2"> <a href="{$grid_items[i].href}" class="box_table2_img"><img src="{$estate_folder}/img/data/{$grid_items[i].img[0].preview}" width="120" height="120"></a> </div>меняем на <div class="box_table2"> <a href="{$grid_items[i].href}" class="box_table2_img"> {if $grid_items[i].img[0] ne ''} <img src="{$estate_folder}/img/data/{$grid_items[i].img[0].preview}" width="120" height="120" /> {else} <img src="{$estate_folder}/img/no_foto.png" width="120" height="120" /> {/if} </a></div>
-
С "Добавить объявление", поданное объявление, при отключенной опции авторегистрации, попадает не к админу в пакет, а к некоему незарегистрированному пользователю. Или я не правильно понял о чем речь?
-
По сути единого центра отлова 404 ошибки сейчас нет. Есть локальные перехваты в виде группы кода header("Status: 404 Not Found");$this->template->assign('title', Multilanguage::_('L_MESSAGE_PAGE_NOT_FOUND'));$this->template->assign('meta_title', Multilanguage::_('L_MESSAGE_PAGE_NOT_FOUND'));$this->template->assign('error_message', '<h1>'.Multilanguage::_('L_MESSAGE_PAGE_NOT_FOUND').'</h1>');$this->template->assign('main_file_tpl', 'error_message.tpl');Вы можете найти их, в основном, в файле main.php вашего шаблона. Вот это (для шаблона agency расположенное в районе строк 581-641 файла main.php) $this->template->assign('error_message', '<h1>'.Multilanguage::_('L_MESSAGE_PAGE_NOT_FOUND').'</h1>'); собственно формирует строку, которую получит пользователь при спотыке на 404. Ее можно варьировать. Сам шаблон error_message.tpl по сути выводит только эту строку. В принципе возможно украсить его методом вставки в этот шаблон кастомной html-разметки. В последующих шабонах, начиная с realia при обращении на несуществующий адрес типа http://xxx.xx/realtyxxx.html стандартным обработчиком 404 ошибка возбуждаться не будет. Это связано с особенностью разбора URL-ов запросов. А 404 будет появляться только тогда, когда ни одно из установленных приложений не смогло обработать запрос и нет возможности сформировать хоть какую-нибудь аргументированную сетку объявлений.
-
Изменение типов недвижимости - Админка - Структура Разные характеристики объекта - Админка - Редактор Форм - таблица\модель data - она содержит перечень характеристик. Там их можно "погасить" (деактивировать), либо вообще удалить. Разделы Сдать/Снять - это все тоже часть Структуры.
-
А физически Ckeditor установлен? Он не идет в базовой поставке сайтбилля. Посмотрите в корне наличие папки ckeditor и файлов в ней. Если ее нет, то ошибка связана не с самим редактором, а его отсутствием.
-
Фаст-решение. На некоторых сайтах это уже реализовано. В структуре убираете корневые Аренда, Продажа и перепиливаете стуруктуру к виду содержащему иерархию исключительно типов недвижимости. Добавляете поле в модель таблицы data с системным именем optype (для человеков Тип сделки) с типом select_box в значениях которого указываете перечень {0~~не указано}{1~~Сдам}{2~~Продам}{3~~Обменяю}. И отмечаете это поле как обязательное. Название optype не догма, но лучше использовать его, так как в движке уже заложены некоторые функциональные решения связанные по этому имени поля.
-
А вот теперь раздорожье)) Поскольку рефреш подчиненных селектов делается в системной части движка, а прилепление красоты от Chosen в части шаблона, то нет красивого способа объединить оба этих действия, особенно учитывая то, что дозагрузка нового списка подчиненного селектбокса проходит асинхронно. Путь первый - забить на стилизованные элементы в форме поиска. Путь второй - ставить возвращатель красивого вида селекта на таймер. Т.е. изменили регион, пошла дозагрузка. Но оторванно от него стоит обработчик, который запустится через н-ное количество милисекунд и вернет красоту. Баг в том, что красота может навестись и в момент дозагрузки, и раньше чем она произойдет и после - этот момент (окончания дозагрузки) невозможно поймать. Либо во время праздников меня осенит на более удачное решение))
-
/template/frontend/realia/search_form.tpl перед {foreach from=$scripts item=script}{$script}{/foreach}добавьте строку с {$ajax_functions}
-
С большой долей вероятности, в силу географии, я буду встречать Новый год последним из форумчан, но позволю себе поздравить всех первым. От имени команды Сайтбилля, хочу пожелать всем удачного и хорошего нового года. Что бы принес он каждому здоровье и счастье. А все остальное уже будет производным от этих трех составляющих. С наступающим!
-
Момент. А в модели поле region_id есть и активно? Так и есть. У вас поле region, а не region_id.
-
Вряд ли. Там ничего необычного нет, да и в исходном селекте, с которого строится красивый, у вас тоже пусто. Смыльте мне это файл /apps/system/lib/frontend/search/kvartira_search.php.
-
Форма рукотворная. Сам ее шаблон лежит в /template/frontend/realia/search_form.tpl Регион, район и метро можно добавить вставляя куски <div class="type control-group"> <label class="control-label" for="inputType"> {*NAME*} </label> <div class="controls"> {*HTML*} </div></div>где *NAME* = $L_REGION $L_DISTRICT $L_METRO *HTML* = $region_list $district_list $metro_list соответственно Расставить там уже по соображению регион перед городом, район после и т.д.