abushyk

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

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

  • Посещение

  • Days Won

    269

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

  1. Вот теперь начинается настоящий кайф) В getImage() после вызова $img = $this->getAccountValue(); делайте отладочный вывод var_dump($img); и смотрите, соответствует ли он ожиданиям. ПС. Надеюсь return в getImage не забыли?
  2. В настройках в Общее Блокировать корневые элементы в селектбоксах структуры (disable_root_structure_select)
  3. function getImage() { ///отсюдава $query = "select * from results_score order by yscore, mscore LIMIT 1";$this->db->exec($query);$this->db->fetch_assoc();$em = $this->db->row['email'];/// досюдова/// уберите $img = $this->getAccountValue();а в остальном должно работать.
  4. И в гридменеджере и в Редакторе форм драгндроп работает от одного UI. Посмтрите в Хроме в консоли, там где XHR запросы. при отпускании перетаскивания буде вызов на /apps/table/js/ajax.php Гляньте, не получает ли оно в ответ 404. и есть ли в /apps/table/admin/admib.php обработка reorder_columns function ajax () { if($this->getRequestValue('action') == 'reorder_columns'){ $this->reorder_columns($this->getRequestValue('ids')); }
  5. function getAccountValue($em) {Зачем передаете в нее $em, если вы имейл получаете внутри из getemail() ? Так же в getImage зачем скл-запрос, если вы уже получаете готовое поле с картинкой из getAccountValue ?
  6. Функция getAccountValue - получает значение поля с картинкой из ьаблицы пользователей по мылу. Функция getImage - строит кусок разметки используя результат работы getAccountValue . В ней же и проверяется, если getAccountValue вернула пустоту, значит строится заглушечная разметка, если нет, значит красивая картинка с лицом пользователя. И напрямую вызывать вы будете только getImage а она уже вызовет сама getAccountValue , когда определится с имейлом нужного пользователя (тут я не знаю откуда вы его будете брать). Результат getImage прицепить к переменной, которая возвращается функций, которая вызовет getImage . Вот по этому алгоритму и стройте код. Можете даже для определения имейла ввести отдельную функцию. Чм проще функция и чем более "узкоспециализированна" она есть, тем проще и в поддержке, и в изменении, и в ловле ошибок.
  7. Если наладите вывод, напишите, я напишу лекцию о том, как обрабатывать эти "ручнодобавленные" переменные.
  8. Как вариант попробуйте сравнивать с {$smarty.post.topic_id} {if $smarty.post.topic_id==120} В базовой версии происходит определение топик_ид для адресной строки, и если она определилась, то она попадает именно туда.
  9. В сайтбилле есть два принципиально разных типа форм поиска - стандартная (та которая доступна в шаблоне при установке) и пользовательская (которые создаются Редактор Форм - Формы Поиска). Основная разница между ними в том, что последняя создается автоматически из выбранных вами элементов, в то время как первая - продукт ручной работы. За создание стандартной формы отвечает базовый класс 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} После всего этого, если вывод списка шоссе состоялся, встает другой вопрос - как обработать переданные с запросом значения выбранных шоссе.
  10. Выводится в дополнительную - это в ту, которая создается из Редактора Форм в разделе Формы Поиска?
  11. Просто перетягивать строки с именами жлементов моделей вверх-вниз, внутри разворачивающейся вкладки модели таблицы.
  12. Там кажется сортировка элементов повторяет сортировку в форме администратора, которая, в свою очередь, повторяет сортировку в Редакторе Форм с поправкой на табы.
  13. В шаблоне realty_view.tpl есть переменная $user_data - содержащая инфу оподателе, если этот податель - регистрированный пользователь. Имя группы лежит в $user_data.group_id.value_string
  14. Посмотрите сначала тут 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/ Тогда можно будет уже предметно обсудить.
  15. Вы не программист? В вызове внутри getImage $em должен передаться, вы его там ловите из БД. Но откуда же $em передастся в getAccountValue($em), которая вызывается в main() после getImage(), если единственное место, где вы ее определили - это внутри функции getImage(). Но само значение не может "выскочить" из getImage наружу, что бы попасть в getAccountValue, которая аботает не внутри нее.
  16. итак, мы имеем пустую переменную и вполне логично, что условие !empty не выполняется.
  17. Проверьте, точно ли не пуста переменная на момент вызова !empty(). Посмотрите, что возвращает $this->getAccountValue($em); через var_dump($img);
  18. Если это select_box, то да, тут не добавишь. А если это select_by_query, то существует вариант с auto_add - полями. Т.е. сам селектбокс выводит присутствующие в таблице данные, но есть дополнительное, несохраняемое, поле типа auto_add, значение введенное в которое будет дописано в таблицу, указанную в его настройках. Напрмер select_by_query поле street_id - выводит улицы из таблицы street. А auto_add поле new_street при сохранении добавляет новую запись в таблицу street.
  19. Поле добавленное в модель как safe_string штатными средствами в данный момент могут быть выведены в форму поиска либо как текстовое поле (для поиска по точному значению), либо как диапазонный элемент (для поиска в промежутке, логично для числовых значений, требует некоторой доработки). Возможности превратить safe_string в селектбокс с набором существующих значений самим движком сейчас нет
  20. Новое поле - это совсем новое или одно из тех, что есть в модели, но не выводится в форме поиска?
  21. Собственно именно так, как вы и написали в примере. Делаете проверку через empty или сравнивая с пустой строкой, принимаете решение какую разметку вывести. Что вы имеете в виду "т.е. email первого запроса нету во втором запросе "? Если смотреть сюда $rs = $this->getTopMenu();$rs .= $this->getImage();$rs .= $this->getAccountValue($em); то первый запрос у вас, я так понимаю, в getImage(); а второй в getAccountValue(). И вы имеете в виду, что после срабатывания getImage не срабатывает удачно getAccountValue после него, так как в нем нет названия ящика почты?
  22. Эти ошибки естественны. Замените вашу функцию на function getAccountValue($em) {echo 'ARGS: '.$em.'<br />';$query = "select * from ".DB_PREFIX."_user where email='savvvv_sd@mail.ru' LIMIT 1";echo 'QUERY: '.$query.'<br />';$this->db->exec($query);if(!$this->db->success){echo 'Error in statement<br />';}$this->db->fetch_assoc();echo '<pre>';print_r($this->db->row);echo '</pre>';return $this->db->row['imgfile'];}и запустите. посмотрим, что отладка скажет.
  23. Строку //error_reporting(E_ALL);в файле index.php раскомментировывали? Если нет, снимите коммент или допишите ее после error_reporting(E_ERROR | E_WARNING); и посмотрите, нет ли варнингов. Проверьте, есть ли в корне вашей установки файл log_000.txt. Если есть, очистите его и после запуска кода проверьте содержиоме - туда складывает ошибки модуль DBC