Алексей Григорьев

Алексей Григорьев

+4
Репутация
0
Рейтинг
#1 Конструктор тем "ломает" вывод инлайн js на страницах html 17 июля 2019 в 10:06


Здравствуйте, решили проблему? Собираюсь брать конструктор но видимо еще рановато..

Заралик
К сожалению, нет. Я пока отказался от конструктора. Делаю свою тему. По большому счету, архитектура системы позволяет извращаться с шаблонами как угодно smile. Конструктор — это по большому счету для быстроты и при отсутствии необходимых знаний php. Кроме того, для меня минус — закрытый код. Отладчик xdebug с ним валится.
#2 [ЕСТЬ РЕШЕНИЕ] Как получить все виджеты на определенной позиции? 15 июля 2019 в 22:20
Спасибо всем за участие! Закрываю тему
#3 [ЕСТЬ РЕШЕНИЕ] Как получить все виджеты на определенной позиции? 15 июля 2019 в 21:42


Я на эти моменты не заморачиваюсь, так как потом интеграцию в любой момент можно сделать с новой версией. А городить новые классы и т.д. реально нафиг надо.

mr.KEVASC
Возможно, в современном мире ваш подход имеет право на существование. Я-то родом из прошлого века smile
В любом случае, спасибо за участие!
#4 [ЕСТЬ РЕШЕНИЕ] Как получить все виджеты на определенной позиции? 15 июля 2019 в 21:22


мда… так. заходишь в файл system/core/template.php и сразу после

mr.KEVASC

Это несколько противоречит моему видению мира. Я никогда не правлю код базовой системы (по очевидным на мой взгляд причинам). Если мне необходимо дополнить функционал, я делаю свой класс в соответствии с предложенной концепцией расширения базовой системы.
#5 [ЕСТЬ РЕШЕНИЕ] Как получить все виджеты на определенной позиции? 15 июля 2019 в 21:06


более элегантного решения не видно.

Loadырь

Я честно говоря тоже так подумал после анализа кода. При случае сделаю загрузку из базы по аналогии с методом runWidgets
#6 [ЕСТЬ РЕШЕНИЕ] Как получить все виджеты на определенной позиции? 15 июля 2019 в 20:59


пример того, что необходимо получить на выходе. какой именно массив и обьект, что там должно быть и т.д.

mr.KEVASC

Я пишу сервисный класс для своей темы (шаблона), в котором реализуется некоторая логика в зависимости от того, какие виджеты выводятся на текущей странице в разных позициях. Методы этого класса вызываются в main.tpl.php. Идеально для меня получить массив экземпляров классов cmsWidgets. Но массив, как он представлен в свойстве widgets тоже сойдет. Просто это для меня дополнительные накладные расходы, поскольку мне необходимо получить опции каждого виджета и по идентификатору биндинга приходится их тащить из базы через вызовы метода модели getWidgetBinding
#7 [ЕСТЬ РЕШЕНИЕ] Как получить все виджеты на определенной позиции? 15 июля 2019 в 20:36



Пока решил доступ к свойству widgets через ReflectionClass. Может, кому пригодится.

  1. $template = cmsTemplate::getInstance();
  2. $reflection = new ReflectionClass($template);
  3. $property = $reflection->getProperty('widgets');
  4. $property->setAccessible(true);
  5. $prop = $property->getValue($template);
Но буду признателен за более элегантное решение.

@lelik1973

а что мешает получить через ->widgets($position) ???

mr.KEVASC

widgets($position выводит виджеты. Мне же необходимо получить объекты (или массивы) для анализа и допобработки
#8 [ЕСТЬ РЕШЕНИЕ] Как получить все виджеты на определенной позиции? 15 июля 2019 в 20:30


Вам нужны все виджеты из нужной позиции или только на данной странице все виджеты нужной позиции?

Loadырь

На данной странице все виджеты нужной позиции
#9 [ЕСТЬ РЕШЕНИЕ] Как получить все виджеты на определенной позиции? 15 июля 2019 в 20:17
Пока решил доступ к свойству widgets через ReflectionClass. Может, кому пригодится.
  1. $template = cmsTemplate::getInstance();
  2. $reflection = new ReflectionClass($template);
  3. $property = $reflection->getProperty('widgets');
  4. $property->setAccessible(true);
  5. $prop = $property->getValue($template);
Но буду признателен за более элегантное решение.
#1 [ЕСТЬ РЕШЕНИЕ] Как получить все виджеты на определенной позиции? 15 июля 2019 в 12:15
Уважаемые коллеги, добрый день!
Подскажите, пожалуйста, можно ли как-то просто получить в коде все виджеты на определенной позиции?
В классе cmsTemplate есть открытый метод public function hasWidgetsOn($position) и защищенная переменная protected $widgets = array(), а мне бы надо что-то типа 'getWidgetsOn($position)'...
Или необходимо писать все самому, обращаясь к модели widgets?
#11 [ЕСТЬ РЕШЕНИЕ] Невозможно сменить тему при установленном Конструкторе тем 12 июля 2019 в 12:04


Далее в настройках сайта выбираю тему по умолчанию default. Сохраняю настройки. Сайт по прежнему отображается с использованием темы inthemer.

@lelik1973
Такое есть с другим шаблоном и когда в SiteKreator включены скины, возможно у Вас другая проблема.

@noname

Спасибо! Оказалось, дело именно в этом. Некорректно работает именно SiteKreator (установлена версия 22.1.0). При его отключении темы меняются нормально.
#1 [ЕСТЬ РЕШЕНИЕ] Невозможно сменить тему при установленном Конструкторе тем 12 июля 2019 в 10:00
Уважаемые коллеги, столкнулся со следующей проблемой:
В конструкторе (2.0.4) созданы и настроены виджеты и страницы. В настройках сайта выбрана тема по умолчанию inthemer. Сайт отображается корректно в соответствии с заданными настройками и с использованием темы inthemer.
Далее в настройках сайта выбираю тему по умолчанию default. Сохраняю настройки. Сайт по прежнему отображается с использованием темы inthemer. Вопрос — как корректно переключиться с использования темы inthemer на тему default?
#13 Конструктор тем "ломает" вывод инлайн js на страницах html 12 июля 2019 в 09:33


@lelik1973, еще бывает сжатие в самом браузере —

нажимаете F12 на клавиатуре — потом Сеть (Network)
и отключить сжатие (Disable Cache) — СТАВИТЕ галочку и не закрывая панель — обновляете страницу

@iKrym

К сожалению, дело не в этом. Кэширование в браузере у меня отключено.
Кстати, такая же проблема наблюдается и с инлайн стилями (все в линию с переносами примерно через 2000-5000 символов). Разметка HTML при этом отдается сервером в нормальном виде.
#14 Конструктор тем "ломает" вывод инлайн js на страницах html 12 июля 2019 в 09:22


Конструктор тем 2.0.4 "ломает" вывод инлайн js на страницах html.

@lelik1973

Отключите сжатие

@iKrym

Что вы имеете в виду? На странице /admin/settings (вкладки Интерфейс и Кеширование) Сжатие, Объединение и Кеширование отключено. Я писал об этом ранее. Что-то еще необходимо отключить?
#15 Конструктор тем "ломает" вывод инлайн js на страницах html 11 июля 2019 в 21:48


Можно ли как-то с этим бороться?

@lelik1973
Написал Владимиру- ждем обновление инфимера до Инстанта 2.12.2

Алексей Тимофеев

Большое Спасибо! Я тоже задал вопрос через форму на странице конструктора.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.