Как вывести страницу в модальном окне

#1 4 января 2016 в 21:32
Добрый день, подскажите, как вывести страницу profile_edit_theme.tpl.php в модальном окне?

К ссылке добавил класс ajax-modal, страница темнеет, как при показе модального окна, а окно не появляется.

Что делать?
#2 4 января 2016 в 21:38
В модальном окне пока не работают поля которые используют яваскрипты. Например типы полей Цвет и Изображения. У них надо менять
  1. $this->addJS и $this->addCSS
на
  1. $this->addJSFromContext и $this->addCSSFromContext
#3 4 января 2016 в 21:39
Но это только для 2.4.0 и выше
#4 4 января 2016 в 21:41
Ну и побороть потом такой вид
#5 4 января 2016 в 21:59


Но это только для 2.4.0 и выше

Loadырь

Т.е для 2.3 нет решения?
#6 4 января 2016 в 22:03

Т.е для 2.3 нет решения?

Azami
Ну почему же, решение — обновиться до 2.4.0 и ждать следующего обновления с поправленными типами полей. smile
#7 4 января 2016 в 22:44

Ну почему же, решение — обновиться до 2.4.0

Loadырь
Это проблематично
#8 4 января 2016 в 23:28

Это проблематично

Azami
А между тем 2.4.0 процентов на 15-20 быстрей 2.3.0 и стабильнее и функциональнее, и это ещё не предел. Будут новые версии с новым функционалом (возможно и с изменением группы пользователем при редактировании профиля).
Вопрос: а стоит ли оно того? Может не стоит решать проблемы через хаки? Тем более что есть "цивилизованные" методы, которые позволят вам в будущем легко обновляться, с сохранением добавленного вами функционала.
#9 4 января 2016 в 23:51

Тем более что есть "цивилизованные" методы, которые позволят вам в будущем легко обновляться, с сохранением добавленного вами функционала.

Val

Что вы имеете ввиду?

Дело в том, что добавленный функционал достаточно серьезный и после обновления до 2.3 было много ошибок, которые пришлось ликвидировать в срочном порядке.
#10 5 января 2016 в 01:10

Что вы имеете ввиду?

Azami
Писать дополнения не вносящие изменения в ядро системы. Тем самым вы обеспечивает себе лёгкость в поддержке и совместимость при обновлении.
Не знаю ваших глобальных целей (возможно есть другие методы и пути достижения этих целей), но конкретный пример с изменением группы пользователя, IMHO, правильней бы было решить через внешнее дополнение. И править значения групп пользователя напрямую в БД. Таким образом без хаков вы достигаете цели и спокойно можете обновляться в будущем.
#11 5 января 2016 в 04:04

но конкретный пример с изменением группы пользователя, IMHO, правильней бы было решить через внешнее дополнение.

Val

Val, Так я и стараюсь там сделать внешнее дополнение. Виджет показывающий ссылку и новые 2 файла. Один из которых — .tpl.php и показывается в модальном окне. От вмешательства в ядро я там отказался.

Вот, гляньте instantcms.ru/forum/thread20626-2.html#224526
Осталось немного, как видите не просто попрашайничаю, что-то делаю сам и походу изучаю. Но на данном этапе тупик. Более чем уверен после того, как он будет готов, немало пользователей скажет спасибо, особенно у кого больше социализированный проект. ИМХО
#12 14 января 2016 в 17:39


В модальном окне пока не работают поля которые используют яваскрипты. Например типы полей Цвет и Изображения. У них надо менять

  1. $this->addJS и $this->addCSS
на
  1. $this->addJSFromContext и $this->addCSSFromContext

Loadырь

Итак, задал ссылке стиль всплывающего окна <a class="ajax-modal"
в файле templates\default\assets\fields\color.tpl.php заменил на
  1. <?php
  2. $this->addJSFromContext('templates/default/js/colorpicker.js');
  3. $this->addCSSFromContext('templates/default/css/colorpicker.css');
  4. ?>
image.tpl.php
images.tpl.php не имеют $this->addJS и $this->addCSS

Но при нажатии на ссылку все равно темнеет экран, а окно не появляется <a class="ajax-modal"

Вывожу из профиля пользователя. В каких файлах еще заменить надо?
#13 14 января 2016 в 18:01

image.tpl.php
images.tpl.php не имеют $this->addJS и $this->addCSS

Azami
Они тут прячутся
\templates\default\controllers\images\upload_single.tpl.php
\templates\default\controllers\images\upload_multi.tpl.php
#14 14 января 2016 в 19:53
Loadырь, Спасибо за подсказку.
Убрать лишние элементы хотел с помощью кода

  1.  
  2. <?php if(!$is_ajax){ ?>
  3. <?php $this->renderChild('profile_edit_header', array('profile'=>$profile)); ?>
  4. <?php } ?>
  5.  
Почему не сработал? В модальном окне входа вроде этот код выводит padding
#15 14 января 2016 в 20:31
А $is_ajax у вас как в объявлена и объявлена ли в этом файле?
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.