Уведомления при изменении профайлов
Для доступа к форумам необходимо авторизоваться. Это можно сделать здесь
| Автор | |
|---|---|
|
|
|
|
Чт, 22 мая 2008 16:24:31 Я пользуюсь контрибьюшеном ezinformation: http://ez.no/developer/contribs/workflow/information_workflow_eventНемного обточил его напильником и поставил на сайте. |
|
Пн, 2 июня 2008 8:36:50 А нельзя ли немного подробнее? Extension установил, покопался немного в настройках... Насколько я понял, чтобы приходили уведомления об изменении какого-то контента, необходимо указать в ini-файле id соотвествующего этому контенту класса. А какой класс у user profile? |
|
|
Пн, 2 июня 2008 10:04:26 А что такое user profile? это не класс user? |
|
Пн, 2 июня 2008 14:08:42 Все получилось.ID нужного класса (вдруг кому понадобится) - 4. |
|
|
Пн, 2 июня 2008 14:09:38 >> А что такое user profile? это не класс user?Угумс, именно так. |
|
|
Ср, 25 июня 2008 7:03:54 Возник новый вопрос - как отловить событие ДО? Т.е. до того, как измененный профайл будет сохранен. Пробовал подключить триггер before, но в списке нужный workflow почему-то не отображается( |
|
|
Ср, 25 июня 2008 7:40:47 ezinformation заточен на afterсмотрите в коде ezinformationtype.php строчку $this->setTriggerTypes( array( 'content' => array( 'publish' => array ( 'after' ) ) ) ); Что будет если тут просто заменить на before, я не знаю На самом деле не вижу никакой разницы в данном случае - до или после придет оповещение. В workflow, реализующую before, имеет смысл делать какие-то проверки, которые в конечном счете могут не дать сохранить профайл. А вот с отправкой письма разницы никакой. |
|
Ср, 25 июня 2008 8:49:26 Пробовал в setTrigger ставить before - все равно выполняется после. А необходимо чтобы на почту высылались только изменившиеся поля. Т.е. мне нужно сравнить то, что было ДО с тем, что получилось ПОСЛЕ и если поле изменилось выслать его имя и два значения. |
|
|
Ср, 25 июня 2008 9:29:09 Попробуйте зафетчить 2 версии: текущую и предыдущую и сравните по ним наборы аттрибутов.У вас в воркфлоу есть объект: $object =& eZContentObject::fetch( $parameters['object_id'] ); Из него можно получить набор аттрибутов по номеру версии) $object->fetchDataMap( $version) как получить список номеров версий сходу не скажу. |
|
Ср, 25 июня 2008 10:09:48 Я так и хотел сделать, думал в этом направлении... Но вот пока номер предыдущей версии найти не удается(P.S. Спасибо за метод, при помощи которого можно получить объект по номеру версии. |
|
|
Ср, 25 июня 2008 10:39:13 foreach ( $object->attribute('versions') as $version ) {foreach ( $version->attribute('contentobject_attributes') as $attr ) { Как-то так) Теперь бы 2 последних зацепить только... |
|
|
Ср, 25 июня 2008 11:07:07 Все, разобрался. |
|
|
Чт, 10 июля 2008 13:44:27 Хм... возник еще один вопрос - откуда можно вытащить юзерлогин того, чей это профайл? |
|
|
Чт, 10 июля 2008 14:19:31 У контент-объекта класса User есть аттрибут user_account (вытащить можно из датамапа). Это, насколько я помню, отдельный объект, в котором есть и логин юзера и информация о его пароле. |