Роман Волков

Роман Волков

+56
Репутация
508
Рейтинг
#1 [ЕСТЬ РЕШЕНИЕ] Сообщение об ошибка в модальных окнах 15 мая 2016 в 17:31
Спасибо Fuze. Проблема решена.
#1 [ЕСТЬ РЕШЕНИЕ] Сообщение об ошибка в модальных окнах 15 мая 2016 в 15:25
Как вывести стандартные сообщения об ошибках в модальном окне?
Например есть ссылка

  1. <a href="/ссылка_на_экшен_контроллера" class="ajax-modal">Ссылка</a>
В экшене такой код
  1.  
  2. $form = $this->getForm('form');
  3. $is_submitted = $this->request->has('submit');
  4. $data = $form->parse($this->request, $is_submitted);
  5.  
  6. if($is_submitted) {
  7. $errors = $form->validate($this, $data);
  8. };
  9.  
  10. $template = cmsTemplate::getInstance();
  11.  
  12. $template->render('form_request', array(
  13. 'form' => $form,
  14. 'data' => $data,
  15. 'errors' => $errors
  16. ));
  17.  
Если отправляю форму со страницы — все хорошо.
Но если форма отправляется из модального окна и в форме ошибке, то страницы обновляется.
Можно ли сделать чтобы ошибки отображались без обновления страницы.
Нужно в контроллере поставить проверку is_ajax?
#3 Как сделать фильтрацию по созданному полю? 3 мая 2016 в 14:02


За вывод в фильтре

  1.  
  2. public function getFilterInput($value) {
  3. return html_input('text', $this->name, $value);//это для примера
  4. }
  5.  
За сам поиск
  1.  
  2. public function applyFilter($model, $value) {
  3. return $model->filterLike($this->name, "%{$value}%"); //это для примера
  4. }
  5.  
И за валидацию
  1. public $filter_type = 'str';

Loadырь

Большое спасибо
#1 Как сделать фильтрацию по созданному полю? 3 мая 2016 в 13:25
Добрый день. Сейчас создал новый тип поля, который в базе храниться как yaml, но вот проблема, я не знаю как сделать по нему фильтрацию. Даже когда задаю параметры для поля, нет чекбокса "Участвует в поиске".
Скажите от чего это зависит и какая функция отвечает за фильтрацию?

InstantCms 2.5.0
#5 [ЕСТЬ РЕШЕНИЕ] Установка дополнений. Типы контента 3 мая 2016 в 11:02
Через install.php можно все организовать
#1 [ЕСТЬ РЕШЕНИЕ] Установка дополнений. Типы контента 15 апреля 2016 в 17:15
Как быть: нужно при установке компонента создать тип контента, а потом в него добавить поля и соответствующие таблицы. Только беда в том, что привязка категорий и записей проходить по ID типа контента. Как быть в этом случае?
#7 [ЕСТЬ РЕШЕНИЕ] Опции для компонента 15 апреля 2016 в 15:45
Пропустил символ ">" в массиве
#8 [ЕСТЬ РЕШЕНИЕ] Опции для компонента 15 апреля 2016 в 15:44


Когда я перехожу на страницу опций — она пустая. Даже шаблон админки не редерится

Роман Волков
Судя по скрину у вас выключен показ ошибок php, а там скрывается фаталеррор. Включите директивой display_errors и включите режим отладки в админке.

Fuze

Спасибо. Пропустил символ.
#9 [ЕСТЬ РЕШЕНИЕ] Опции для компонента 15 апреля 2016 в 15:27


Я что-то не дописал?

Роман Волков
У вас индексовый экшен пустой

если надо стразу открывать опции, то

  1. public function actionIndex(){
  2. $this->redirectToAction('options');
  3. }

Fuze

Вы, наверное меня не поняли, я знаю как сделать редирект, проблема в другом: Когда я перехожу на страницу опций — она пустая. Даже шаблон админки не редерится
Прикрепленный файл
20160415152624_73633.png 66 Кб
#1 [ЕСТЬ РЕШЕНИЕ] Опции для компонента 15 апреля 2016 в 15:19
Сейчас дописываю компонент для двойки, движок использую 2.5. Возникла необходимость создать форму опций.
Пишу вот такой код
  1.  
  2. <?php
  3. class formTravelOptions extends cmsForm {
  4.  
  5. public function init() {
  6.  
  7. return array(
  8.  
  9. 'type' => 'fieldset',
  10. 'childs' => array(
  11.  
  12. new fieldList('restricted_ips', array(
  13. 'title' => LANG_TRAVEL_TYPE,
  14. 'hint' => LANG_TRAVEL_TYPE_GOOGLE_INFO,
  15. 'items' = array(
  16. 'yandex' => 'Яндекс',
  17. 'google' => 'Google'
  18. )
  19. )),
  20. )
  21. ),
  22. );
  23. }
  24. } ?>
  25.  
Размещаю его по пути /system/controllers/travel/backend/forms/form_options.php

Выдержка из документации:
Для версий InstantCMS выше 2.4.0 прямой необходимости в создании шаблона формы опций нет. По умолчанию будет использоваться шаблон /templates/default/controllers/admin/backend/controllers_options.tpl.php.

Файл /system/controllers/travel/backend.php

  1.  
  2.  
  3. <?php
  4.  
  5. class backendTravel extends cmsBackend {
  6.  
  7. public $useDefaultOptionsAction = true;
  8.  
  9. public function actionIndex(){
  10. }
  11.  
  12. public function getBackendMenu(){
  13. return array(
  14. 'title' => LANG_OPTIONS,
  15. 'url' => href_to($this->root_url, 'options')
  16. )
  17. );
  18. }
  19.  
  20.  
  21. }
  22. ?>
  23.  
И когда перехожу на страницу опций, получаю белый экран с надписью "Компоненты: Попутчики"

Я что-то не дописал? Вроде шел по документации. Пробовал создавать шаблон, но не помогло. Подскажите, в чем беда?
#11 Множественное поле город? 12 апреля 2016 в 09:33


Роман Волков, вам лучше написать новое поле, где прямо на карте указывается маршрут мест посещения. Так маршрут в горах или по достопримечательностям одного города нельзя будет указать выбором из нескольких полей типа "Местоположение".

Loadырь

Да хорошая идея, но для этого все равно хотелось бы немного документации по созданию типов полей.
#12 Множественное поле город? 12 апреля 2016 в 09:24


Можно либо как-нибудь сделать множественное поле "местоположение", чтобы пользователь мог выбрать столько городов, сколько ему нужно (посетить)?

Роман Волков
Штатно нет.

Fuze

А можно подробнее, где лежат файлы, отвечающие за стандартное поле местоположение?
В документации нашел только это docs.instantcms.ru/dev/forms/create-field/main-file, но это ведь не все. Заранее спасибо.
#13 Множественное поле город? 12 апреля 2016 в 07:43
Не думаю, мне нужно именно поле.
#14 Доп действия для определенного типа контента 11 апреля 2016 в 22:52
Огромное Вам спасибо. Вы избавили от необходимости писать свою таблицу, а использовать типы контента.
#15 Доп действия для определенного типа контента 11 апреля 2016 в 22:42


можно для определенного типа контента указать свой шаблон детального просмотра записи?

Роман Волков
Да, в папке /templates/шаблон/content/ создайте файл ИМЯ_КОНТЕНТА_item.tpl.php
Например: books_item.tpl.php

Evanescence

Хоть и не успели, но спасибо =)
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.