koreshok 0 Жалоба Опубликовано: October 15, 2013 Мы сделали подробную видео-инструкцию по добавлению нового параметра в форму поиска Файл template_search.php скачать тут https://drive.google.com/file/d/0Bwl4A1PbpdvBTlowdGRRVjZyMjQ/view?usp=sharing Строчка для добавления в файл шаблона standart_search_form.tplhttps://drive.google.com/file/d/0Bwl4A1PbpdvBdzlvdEJaN0JTSWs/view?usp=sharing Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: October 15, 2013 Новое поле - это совсем новое или одно из тех, что есть в модели, но не выводится в форме поиска? 1 Дмитрий Кондин reacted to this Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
koreshok 0 Жалоба Опубликовано: October 15, 2013 сделал второй поиск... но есть одно но... ранее добавил новые поля для заполнения...тип записи safe_stringнужно что бы эта запись выводилась в поиске селектом.. как это реализовать?если это поле делаю селектом при заполнении, то нет возможности добавить значение в это поле при заполнении объявления, тк нужно это поле ещё добавить и в справочник..или просто я чего то не догоняю... Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: October 15, 2013 Поле добавленное в модель как safe_string штатными средствами в данный момент могут быть выведены в форму поиска либо как текстовое поле (для поиска по точному значению), либо как диапазонный элемент (для поиска в промежутке, логично для числовых значений, требует некоторой доработки). Возможности превратить safe_string в селектбокс с набором существующих значений самим движком сейчас нет 1 Дмитрий Кондин reacted to this Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: October 15, 2013 если это поле делаю селектом при заполнении, то нет возможности добавить значение в это поле при заполнении объявления, тк нужно это поле ещё добавить и в справочник.. Если это select_box, то да, тут не добавишь. А если это select_by_query, то существует вариант с auto_add - полями. Т.е. сам селектбокс выводит присутствующие в таблице данные, но есть дополнительное, несохраняемое, поле типа auto_add, значение введенное в которое будет дописано в таблицу, указанную в его настройках.Напрмер select_by_query поле street_id - выводит улицы из таблицы street.А auto_add поле new_street при сохранении добавляет новую запись в таблицу street. 1 Дмитрий Кондин reacted to this Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
koreshok 0 Жалоба Опубликовано: October 15, 2013 тогда следующий вопрос... как в справочники добавить.. допустим шоссе? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: October 15, 2013 Посмотрите сначала тут http://www.etown.ru/s/topic/227-%D0%BA%D0%B0%D0%BA-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C-%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA-%D0%B2-cms-sitebill-%D0%B2-mysql/ Тогда можно будет уже предметно обсудить. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
koreshok 0 Жалоба Опубликовано: October 15, 2013 Посмотрите сначала тут http://www.etown.ru/s/topic/227-%D0%BA%D0%B0%D0%BA-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C-%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA-%D0%B2-cms-sitebill-%D0%B2-mysql/ Тогда можно будет уже предметно обсудить.так.. это всё сделал.. теперь подскажите пожалуйста... как всё таки сделать справочник для шоссе доступным для заполнения из админки? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
koreshok 0 Жалоба Опубликовано: October 15, 2013 CREATE TABLE IF NOT EXISTS `re_shosse` ( `shosse_id` int(11) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL DEFAULT '', `region_id` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`shosse_id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=23 ;INSERT INTO `re_shosse` (`shosse_id`, `title`, `region_id`) VALUES(1, 'Белорусское направление', 8),(2, 'Горьковское направление', 8),(3, 'Казанское направление', 8),(4, 'Киевское направление', 8),(5, 'Курское направление', 8),(6, 'Ленинградское направление', 8),(7, 'Павелецкое направление', 8),(8, 'Рижское направление', 8),(9, 'Савеловское направление', 8),(10, 'Ярославское направление', 8);сделал так.. не знаю на сколько правильно... Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: October 15, 2013 Как на ручную вставку, вполне правильно. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
koreshok 0 Жалоба Опубликовано: October 16, 2013 и снова здравствуйте, в продолжение темы хочу спросить, как всё таки вывести новую форму в стандартный поиск? в дополнительный всё выводится, а вот со стандартом что то никак...после всех моих мучений с добавлением нового справочника и тд... в общем, добавляю в форму в двух местах...{if $shosse_list ne ''}<tr><td>{$L_SHOSSE}</td><td><div class="select_box_td">{$shosse_list}</div></td></tr>{/if}но ничего не выводит.. что я делаю не так? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: October 16, 2013 Выводится в дополнительную - это в ту, которая создается из Редактора Форм в разделе Формы Поиска? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
koreshok 0 Жалоба Опубликовано: October 16, 2013 да.. туда Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: October 16, 2013 Подождите часа пол, я напишу теорию) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
koreshok 0 Жалоба Опубликовано: October 16, 2013 Подождите часа пол, я напишу теорию) теория это конечно хорошо... может просто ткнете носом, что ещё куда добавить? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: October 16, 2013 В сайтбилле есть два принципиально разных типа форм поиска - стандартная (та которая доступна в шаблоне при установке) и пользовательская (которые создаются Редактор Форм - Формы Поиска). Основная разница между ними в том, что последняя создается автоматически из выбранных вами элементов, в то время как первая - продукт ручной работы. За создание стандартной формы отвечает базовый класс Kvartira_Search_Form (/apps/system/lib/frontend/search/kvartira_search.php) либо его локальный наследник - Local_Kvartira_Search_Form (/template/frontend/nuzhendom/main/search/local_kvartira_search.php) как пример , либо его заменитель Kvartira_Search_Form (/template/frontend/capitol/main/search/kvartira_search.php). Эти классы либо заменяют базовый, либо расширяют его. Принцип работы таков, что в одном из этих классов, обычно локальном или переопределенном, что бы не затиралось при обновлениях, реализуется генерация нужных элементов. Например в базовом классе реализуется генерация $city_list. Поэтому жтот список выводится в форму. Но ваш $shosse_list не определен в этом классе, поэтому и не выводится. После генерации элементов стандартной формы, эти значения перехватываются в шаблоне search_form.tpl/standart_search_form.tpl( в зависимости от шаблона ). Тут вы сами нашли куда вставлять свою переменную. Грубо говоря порядок действий таков. В свой шаблон вы копируете файл /apps/system/lib/frontend/search/kvartira_search.php в папку /template/frontend/имя_шаблона/main/search/ и переименовываете его в local_kvartira_search.php. В этом файле меняете строку class Kvartira_Search_Form extends SiteBill { на class Local_Kvartira_Search_Form extends SiteBill { либо на class Local_Kvartira_Search_Form extends Kvartira_Search_Form { Родитель не важен, поскольку вы будете переопределять единственный доступный метод класса. Но я бы советовал наследовать от Kvartira_Search_Form поскольку возможно, что в Kvartira_Search_Form будут добавляться новые фичи. Метод function __construct() { $this->SiteBill(); } оставляете. Сердце поиска - функция main(). В нем определена генерация элементов. Примерно вот так будет выглядеть ваш генератор $this->template->assert('shosse_list', $form_generator->get_single_select_box_by_query($kvartira_model['data']['shosse_id'])); Этой строкой необходимо дополнить код функции main(). Единственное, что вот тут $kvartira_model['data']['shosse_id'] вместо shosse_id должно стоять системное имя вашего поля, в котором хранится ид шоссе, из модели таблицы data. После этого переходим к контроллеру шаблона \template\frontend\имя_шаблона\main\main.php и ищем в нем строки require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/frontend/search/kvartira_search.php'); $kvartira_search_form = new Kvartira_Search_Form();$kvartira_search_form->main(); Это инициализация формы поиска. Так как у вас уже локальный файл, а не базовы, то заменяем это все на require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/frontend/search/kvartira_search.php'); require_once(SITEBILL_DOCUMENT_ROOT.'/template/frontend/'.$this->getConfigValue('theme').'/main/search/local_kvartira_search.php'); $kvartira_search_form = new Local_Kvartira_Search_Form();$kvartira_search_form->main(); т.е. инициализируем локальный поиск. Вот после этого можем в шаблон формы поиска вставлять {$shosse_list} После всего этого, если вывод списка шоссе состоялся, встает другой вопрос - как обработать переданные с запросом значения выбранных шоссе. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
koreshok 0 Жалоба Опубликовано: October 16, 2013 спасибо огромное, думаю разберусь Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: October 16, 2013 Если наладите вывод, напишите, я напишу лекцию о том, как обрабатывать эти "ручнодобавленные" переменные. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
koreshok 0 Жалоба Опубликовано: October 17, 2013 утречка вам доброго! то что описано постом выше для начала пробую сделать на локале.. но вот на основном домене появился косячок (на картинке), хотя там никаких изменений не производил. Такое впечатление, что не подгружается файл стилей.. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: October 17, 2013 Это больше похоже на ошибку в работе яваскрипта. Посмотрите в консоли яваскрипта - должны быть предупреждения в случае ошибок. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
koreshok 0 Жалоба Опубликовано: October 17, 2013 Это больше похоже на ошибку в работе яваскрипта. Посмотрите в консоли яваскрипта - должны быть предупреждения в случае ошибок.похоже вы правы....нашел косяк.. вот что значит свежий взгляд... Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
koreshok 0 Жалоба Опубликовано: October 17, 2013 тогда подскажите, как правильно подключить вот это <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script type="text/javascript" src="{$estate_folder}/js/jquery.hoverIntent.minified.js"></script> <script type="text/javascript" src="{$estate_folder}/js/jquery.dcmegamenu.1.2.js"></script><script type="text/javascript">$(document).ready(function($){ $('#mega-menu-tut').dcMegaMenu({ rowItems: '3', speed: 'fast' });});</script> Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
koreshok 0 Жалоба Опубликовано: October 17, 2013 тогда подскажите, как правильно подключить вот это <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script type="text/javascript" src="{$estate_folder}/js/jquery.hoverIntent.minified.js"></script> <script type="text/javascript" src="{$estate_folder}/js/jquery.dcmegamenu.1.2.js"></script><script type="text/javascript">$(document).ready(function($){ $('#mega-menu-tut').dcMegaMenu({ rowItems: '3', speed: 'fast' });});</script>разобрался сам.. спасибо за помощь и за указание пути моих ошибок, лишнее прописал, вот это<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: October 17, 2013 Думаю єто подключение жиквери создавало проблемы из-за того, что шаблон всегда по умолчанию подключает жиквери из системной папки. А при подключении кода жиквери дважды всегда возникают ошибки. В вашем шаблоне, либо в header.tpl либо в main.tpl есть место, где генерируется блок <head> страницы.Там уже должно быть подключение вот такого вида <script type="text/javascript" src="{$estate_folder}/apps/system/js/jquery/jquery.js"></script> именно из /apps/system/js/jquery/ Если оно есть, тогда из вашего подключаемого кода гуглевскую библиотеку стразу вітираете.Следующие два подключения hoverIntent и dcmegamenu дописываете после самого последненго подключения яваскрипта в вашем шаблоне. Это где-то перед тегом </head>И уже после него сам код создания меню, НО обрамляете его смарти-тегами literal вот таким образом<script type="text/javascript">{literal}$(document).ready(function($){ $('#mega-menu-tut').dcMegaMenu({ rowItems: '3', speed: 'fast' });});{/literal}</script>что бы шаблонизатор знал, что этот код надо выполнить "как есть", а не интерпретировать. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
koreshok 0 Жалоба Опубликовано: October 17, 2013 а реально ли оставить поиск только на странице категорий, а с главной убрать? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах