Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - atach

Страницы: 1 [2] 3 4 ... 11
16
Режим after используется после удаления элемента. Для отмены удаления нужно прослушивать режим before.

Точно, что то я перепутал прошлое/будущее :).
Только вот вот "baseException" не срабатывает, ругается на него. У меня PHP7 и новый формат модулей.
"Cannot instantiate abstract class baseException"
Поставил "publicAdminException", но он не срабатывает.

17
Да это у меня впринципе реализовано.
Вызов события, по точке срабатывания.

А вот в самом макросе на "after", потому что проверяю перед удалением, "throw new baseException" не срабатывает.
Там же висит отправка mail уведомления (для проверки). Что бы понять вообще срабатывает событие или нет.
Событие срабатывает и страница все равно удаляется.

18
Добрый день, подскажите такой вопрос.
Мне нужно запретить удаление некоторых страниц в админке. Они все имеют один "ObjectTypeId".
Я на событие "systemDeleteElement", поставил обработчик, на тип "after", который определяет ObjectTypeId у страницы, но не понятно что именно делать при определении. Отдаю return false, но она все равно удаляется.

20
Большое спасибо за помощь.
Весь доп функционал использующий во всех шаблонах вывел в /classes/modules/ext/.

Теперь возник вопрос другой. При переходе на php7 перестали работать обращения к методам за приделами класса через $this.
Раньше я ко всем методам модуля (разделенных по разным файлам и классам, внутри одного модуля) обращался:
$methodObject = $this->methodName();
Сейчас я вызываю контроллер модуля и только потом обращаюсь к методу, даже если вызываю его из него самого.
$dataModul = cmsController::getInstance()->getModule(‘data');
$methodObject = $dataModul->methodName();
Понимаю, что это не правильно, но не могу понять как сделать верно.

В "Службе забот" ответили следующее:
Цитировать
Вы можете добавить конструктор в подключаемый класс. В него первым параметром передается экземпляр основного класса модуля:
public function __construct($module) {
После подключения также становится доступным поле $this->module, указывающее на основной класс.

Но не пойму как правильно это записать в свой подключаемый файл расширяемого класса:
<?php
class site_comment {
public function newMethodName() {
// не работает через this
$this->methodName();
}

21
Кто может подсказать такой момент.
На одной лицензии несколько проектов и получается что весь кастомный функционал (хранящийся в папке шаблона  /templates/sitename/classes/modules/) повторяется у каждого проекта.

Подскажите, как то можно к ним обращаться к этим классам из из другого шаблона, или все переносить обратно в системные папки /classes/modules/ для использования ?

22
Возможно я не правильно сформулировал вопрос. Как вычислить ближайшие выходные мне понятно.
И только сейчас печатая ответ понял, что нужно было просто найти начало и конец ближайших выходных.

Извиняюсь за глупость....

23
Добрый день. Подскажите такой вопрос.
Я делаю через выборку new selector('objects'); Выбираю объекты с фильтрацией по полю дата-время.

К примеру для выбора "завтрашних" записей я делаю выборку:
$schedule->where('event_date')->eqmore(strtotime('+1 day', time()));
$schedule->where('event_date')->eqless(strtotime('+2 day', time()));
Т.е. между двумя датами.

Вопрос, а как можно сделать выборку ближайших выходных.
Сейчас я делаю путем перебора всех имеющихся записей и помещаю их в массив и потом фильтрую сортирую по типу дня недели и т.п. Может как то можно это сделать прям в выборке UMI.Selector, а то выполнение скрипта увеличивается

24
Сам задал, сам ответил ....
$itemObject->getPropByName($inpName)->getDataType();

25
Подскажите как узнать какой тип поля у свойства?
$itemObject->getValue($inpName);

Вижу есть umiObjectProperty, но не пойму как к нему обратиться

26
Большое спасибо, помогло - разобрался.

Теперь немного другой вопрос.
Есть кастовая выборка, в модуле "Каталог". При прямом переходе на страницу: http://site.ru/catalog/mymacrosname/ в tpl шаблонизаторе я просто обрабатываю его по указанному в коде шаблоне. А как правильно быть в случае XSLT. Он у меня всегда показывает "not found" страницу.

Я назначаю для этого нового метода свой шаблон, но все равно почему то "not found", хотя если просто посмотреть отдающий xml (http://site.ru/catalog/mymacrosname/.xml), то вижу и модуль и метод и всю выдачу объектов.

<xsl:template match="udata[@module = 'catalog' and @method = 'mymacrosname']">

27
В каком смысле "перебрать"?

Ну не очень знаком с XSLT, и меня постоянно пугает всё то что вижу новое :).
В моем случае у "tags", несколько VALUE. Я не знаю как применить вывод этих значений по своему шаблону.

28

Подскажите а как перебрать шаблон у которого несколько VALUE, это поле тегов.
<property id="8837" name="tags" type="tags" is-important="0">
<title>Теги</title>
<value>tag1</value>
<value>tag2</value>
<value>tag3</value>
<combined> tag1, tag2, tag3</combined>
</property>

<xsl:template match="//property[@name = 'tags']" mode="t1">
<xsl:apply-templates select="./value"/>
</xsl:template>

29
шаблон "/tpls/content/not_found/default.tpl" , блок "block"  вам помогут

Не поможет, по причине того, что нужен шаблон отличный от по умолчанию.

30
Печально, потому что шаблонизатор не XSLT.
Тогда другой вопрос, как можно определить модуль, метод у страницы not_found.
Обычно это идет через класс иерархической модели данных и getMethod(), но у страницы "not_found" нет идентификатора же что бы обратится к элементу.

Страницы: 1 [2] 3 4 ... 11