Page 1 of 1
События как найти?
Posted: Sun Jul 26, 2009 9:07 pm
by ccopa
Такая проблемма! Не могу разобраться с событиями.

Всё перерыл. Нашел вот что. Модуль selfRegistration Для него зарегистрировано событие в базе данных onNewUser в таблице events. Но где посмотреть код который выполняется при этом событии! Если можете Опишите подробно про события в CMS Made Simple. Прям голова болит. Столько времени трачу. Зараннее благодарен
Re: События как найти?
Posted: Mon Jul 27, 2009 6:28 am
by Sonya
ccopa wrote:
Но где посмотреть код который выполняется при этом событии!
Никакой код там сам по себе не выполняется. Но к этому событию можно прицепить свой php код, например, при помощи пользовательского тега.
Re: События как найти?
Posted: Mon Jul 27, 2009 6:40 am
by ccopa
А какой конкретно прицеплен код к onNewUser как узнать? А то не могу совсем разобраться! И как его крепить! Например разобрался что в модуле можно создать файл events.КАКОЕ-ТО СОБЫТИЕ.php а какой код прицеплен к onNewUser не понятно.
Re: События как найти?
Posted: Mon Jul 27, 2009 7:50 am
by Sonya
ccopa wrote:
А какой конкретно прицеплен код к onNewUser как узнать? А то не могу совсем разобраться! И как его крепить! Например разобрался что в модуле можно создать файл events.КАКОЕ-ТО СОБЫТИЕ.php а какой код прицеплен к onNewUser не понятно.
Sonya wrote:
ccopa wrote:
Но где посмотреть код который выполняется при этом событии!
Никакой код там сам по себе не выполняется. Но к этому событию можно прицепить свой php код, например, при помощи пользовательского тега.
Re: События как найти?
Posted: Mon Jul 27, 2009 10:41 am
by ccopa
ОГРОМНОЕ СПАСИБО Sonya ЧТО ПОМОГАЕТЕ!
Ну а какой КОНКРЕТНО ПРИКРЕПЛЁН!!! ??? Всё равно не понятно! Если можно напишите как прикреплять! У меня всего только 2 пользовательских тега. И ни один не подходит под событие onNewUser. Пришлите пожалуйста примеры (Создание, прикрепление, вызов.) Хотя бы простого какого-нибудь события! ???
Я хоть программист по образованию. Но видимо без примеров не обойдусь!
Re: События как найти?
Posted: Mon Jul 27, 2009 12:20 pm
by Sonya
В любом модуле
могут быть события (могут и не быть - зависит от разработчика модуля). На каждое событие можно "прицепить" свой код в форме пользовательского тега.
Пример пользовательского тега:
Code: Select all
global $gCms;
$cmsmailer =& $gCms->modules['CMSMailer']['object'];
$cmsmailer->AddAddress('my@email.com','My Name');
$cmsmailer->SetPriority(1);
$cmsmailer->SetFrom('sender@email.com');
$cmsmailer->SetFromName('Sender Name');
$cmsmailer->SetBody('This is the body text');
$cmsmailer->IsHTML(true);
$cmsmailer->SetSubject('This is the subject');
$cmsmailer->Send();
Этот код выcылает мэйл на адрес
my@email.com, с содержанием 'This is the body text'.
Привязка тега к событию
1. Расширения -> События
2. Выбрать желаемое событие, например, ContentEditPost (выполняется каждый раз, когда меняется контент).
3. Выбрать тег, который должен выполняться из списка тегов.
В этом примере мэйл будет отсытлаться каждый раз, когда контент редактируется.
ДОПОЛНИТЕЛЬНО: События также передают параметры в теги Array() $params . Таким образом можно сделать условие, например, отсылать мэйл только при изменении определенных страниц.
Re: События как найти?
Posted: Mon Jul 27, 2009 12:53 pm
by ccopa

Ну вроде бы разобрался! Значит по умолчанию в основном события пустые. Т.е. Они просто есть! Если в расширениях не указаны теги пользователя привязаные к этому событию!
Иначе говоря все кому не лень назначают события вызывают их из своих скриптов, Если к этому событию не привязан пользовательский тег грубо говоря ничего не выполняется!. Думаю я правильно понял.
ОГРОМНОЕ спасибо Sonya
Re: События как найти?
Posted: Mon Jul 27, 2009 2:25 pm
by Sonya
ccopa wrote:
Значит по умолчанию в основном события пустые. Т.е. Они просто есть! Если в расширениях не указаны теги пользователя привязаные к этому событию!
Иначе говоря все кому не лень назначают события вызывают их из своих скриптов, Если к этому событию не привязан пользовательский тег грубо говоря ничего не выполняется!. Думаю я правильно понял.
Все верно. Надо бы это, наверное, в вики запихать.