Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
как подключить модуль "карта сайта"?

Автор RennyРаздел Шаблоны XSLT

Ответов: 7
Просмотров: 9444
Последний ответ 23 Октября 2011, 14:26:36
от admin
Решено: Автоматическое разворачивание разделов сайта в модуле "Структура"

Автор AlexeyРаздел Настройка системы и модулей

Ответов: 2
Просмотров: 3101
Последний ответ 01 Декабря 2011, 19:02:24
от Alexey
Работа модуля Обратная связь (вставка форм в контент сайта) при XSLT

Автор ariusgroupРаздел Шаблоны XSLT

Ответов: 8
Просмотров: 6454
Последний ответ 17 Октября 2012, 15:29:17
от admin
Есть второй домен, нужно повесить туда демошаблон готового сайта

Автор adminmosfaРаздел Шаблоны XSLT

Ответов: 6
Просмотров: 4311
Последний ответ 06 Августа 2013, 19:03:40
от NOIRMAN
Добавление тегов для товаров, и вывод блока с тегами в любом месте сайта

Автор FelixTheCatРаздел Шаблоны XSLT

Ответов: 9
Просмотров: 5481
Последний ответ 26 Июля 2014, 10:58:09
от FelixTheCat

0 Пользователей и 2 Гостей просматривают эту тему.

*

AllaVK

  • **
  • 64
  • +0/-0
    • Просмотр профиля
Добрый вечер!
делаю на UMI сайт, параллельно разбираюсь в написании кастомных макросов.
Требуется в отдельную ленту новостей добавлять новости  об изменениях на сайте. Например, новости вида: добавлена новость в раздел "Название раздела" и ссылка на нее, добавлена статья и ссылка на нее, изменена страница и ссылка на нее, и тд...
Насколько я понимаю, надо прописывать обработчики событий systemModifyElement, systemModifyObject, systemCreateElement, systemCreateObject, systemDeleteElement, systemDeleteObject.
Подскажите, пожалуйста, чтобы отследить изменения на сайте, обработчики этих событий я должна прописывать в классе каждого модуля UMI? если можно, была бы рада и кодам с примерами... подобные вещи делаю впервые...
заранее спасибо всем откликнувшимся!
« Последнее редактирование: 26 Сентября 2011, 17:05:35 от AllaVK »

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Сбор информации об обновлении страниц сайта
« Ответ #1 : 27 Сентября 2011, 00:58:11 »
не знаю точно, но есть рабочий пример когда к модулю content прикручен event, который работает только со страницами каталога (возможно, если страницы каталога редактировать в модуле каталог, то event не сработает, но на практике не проверял)

код самой функции (закидывай в __custom_adm.php , функции в __custom.php не применяются если изменения касаются админки)
public function onModifyElementCheck(iUmiEventPoint $event) {
$element  = $event->getRef("element");

$element_type_id = $element->getObject()->getTypeId();
$razdel_catalog_type_id=65;

if($element_type_id==$razdel_catalog_type_id){
//code
}
return ;
}

определение event'a (закидывай в custom_events.php)
<?php
$listener = new umiEventListener("systemModifyElement", "content", "onModifyElementCheck");
?>

*

AllaVK

  • **
  • 64
  • +0/-0
    • Просмотр профиля
Re:Сбор информации об обновлении страниц сайта
« Ответ #2 : 27 Сентября 2011, 08:45:16 »
Спасибо за оперативный ответ, попробую - отпишусь.

*

AllaVK

  • **
  • 64
  • +0/-0
    • Просмотр профиля
Re:Сбор информации об обновлении страниц сайта
« Ответ #3 : 27 Сентября 2011, 11:19:03 »
еще сразу вопрос:
а в файле __custom_adm.php надо ли объявлять класс, например, abstract class __custom_content_events и уже в нем прописывать обработчики событий?

*

AllaVK

  • **
  • 64
  • +0/-0
    • Просмотр профиля
Re:Сбор информации об обновлении страниц сайта
« Ответ #4 : 27 Сентября 2011, 14:43:34 »
Вроде разобралась... в модуле Content обработчики событий systemModifyElement и systemModifyObject не срабатывали. Я пыталась в дереве структуры редактировать и обычные страницы, и объекты каталога...
Я эти обработчики перенесла в модуль Каталог, там все ок) при срабатывании event'а - в определенной ленте новостей создается новость, в которую прописывается, что произошли изменения на странице.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Сбор информации об обновлении страниц сайта
« Ответ #5 : 27 Сентября 2011, 15:31:38 »
странно что не сработал, но разобраться можно только посмотрев на ваш код)

*

AllaVK

  • **
  • 64
  • +0/-0
    • Просмотр профиля
Re:Сбор информации об обновлении страниц сайта
« Ответ #6 : 27 Сентября 2011, 16:06:10 »
здесь вроде тоже решалась похожая задача, но так и не решилась:
http://www.umi-cms.ru/support/forum/razrabotka_sajtov/nuzhna_pomow_po_event/
в модуле Контент события не срабатывали, а приведенный пример из другого модуля - работает отлично, эвенты отлавливаются... хотя код обработчиков практически одинаковый...

P.S.: если здесь нельзя оставлять ссылки на сторонние ресурсы, то прошу удалить эту ссылку....

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Сбор информации об обновлении страниц сайта
« Ответ #7 : 27 Сентября 2011, 20:15:12 »
это понятно, странность в том, что приведенный мною пример, реально работающий кусок кода

*

AllaVK

  • **
  • 64
  • +0/-0
    • Просмотр профиля
Re:Сбор информации об обновлении страниц сайта
« Ответ #8 : 28 Сентября 2011, 12:53:12 »
Для объектов Каталога реализовала обработчики всех нужных событий, теперь приступила к событиям Блога.
Событие systemModifyElement не перехватывается.

и заметила такую странность:
в файле /classes/modules/catalog/class.php в конструкторе прописано подключение файлов с кастомными обработчиками событий  в виде строк:
       $this->__loadLib("__custom_adm.php");
       $this->__implement("__custom_adm_catalog");

а вот в файле: /classes/modules/blogs20/class.php  в конструкторе отсутствует подключение файлов с кастомными обработчиками событий.
Вопрос такой: если я их туда пропишу сама, при обновлении системы этот файл перетрется новым. Как правильнее добавить в этот файл кастомные обработчики?

P.S. к сожалению, пока не знаю в какие теги заключить вставки программного кода....

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Сбор информации об обновлении страниц сайта
« Ответ #9 : 28 Сентября 2011, 14:21:51 »
Цитировать
Вопрос такой: если я их туда пропишу сама, при обновлении системы этот файл перетрется новым. Как правильнее добавить в этот файл кастомные обработчики?

все правильно заметили в блоге нет подключения кастомного файла lzk методов административного интерфейса, либо подключаете свой файл в class.php на примере того как это делается в модуле catalog, либо пишете в подключаемом admin.php в любом случае записи с системных файлах (class.php или admin.php) при обновлении будут пере затираться, отпишите с этим вопросом в СЗ они подскажут, a вернее возьмут себе на заметку

*

AllaVK

  • **
  • 64
  • +0/-0
    • Просмотр профиля
Re:Сбор информации об обновлении страниц сайта
« Ответ #10 : 28 Сентября 2011, 16:08:38 »
В СЗ отписалась.
Для модуля Контент события тоже начали отлавливаться ) я неправильно сначала класс объявила. Сам файл __custom_adm.php и его содержимое я создавала сама и не посмотрела как должен называться класс внутри него )
admin'у большое спасибо за подсказки !

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Сбор информации об обновлении страниц сайта
« Ответ #11 : 28 Сентября 2011, 16:12:28 »
приходите на курс "Продвинутый tpl" будет где-то в начале 10 чисел октября, там будет интересно)

*

AllaVK

  • **
  • 64
  • +0/-0
    • Просмотр профиля
Re:Сбор информации об обновлении страниц сайта
« Ответ #12 : 28 Сентября 2011, 16:38:23 »
спасибо, но я не из Питера. Понравился этот форум, здесь действительно помогают, причем оперативно, до этого пару раз пыталась вопросы о разработке нестандартного кастомного функционала отправить в CЗ, оттуда приходит стандартный ответ, что это делается средствами API. и никаких подсказок, в каком направлении копать...

*

AllaVK

  • **
  • 64
  • +0/-0
    • Просмотр профиля
Re:Сбор информации об обновлении страниц сайта
« Ответ #13 : 28 Сентября 2011, 16:58:46 »
я все переделала. убрала все обработчики из модулей и оставила только на модуль Контент. он перехватывает и обрабатывает все нужные мне события )

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Сбор информации об обновлении страниц сайта
« Ответ #14 : 28 Сентября 2011, 16:59:32 »
перед ними немного другие задачи, решать неотложные вопросы, а их накапливается очень много, поэтому они и советуют смотреть в api.umi-cms.ru там действительно многое рассписано, хотя по началу конечно не знаешь где и что искать, но для этого и был создан этот форум)


Цитировать
я все переделала. убрала все обработчики из модулей и оставила только на модуль Контент. он перехватывает и обрабатывает все нужные мне события )
Значит все вопросы решены?