| 'content' => $content,␊ | 
| 'date' => $date));␊ | 
| }␊ | 
| ␊ | 
| /**␊ | 
| * Notification of change of the object.␊ | 
| *␊ | 
| * For the moment, only email, but one can add webhooks later.␊ | 
| *␊ | 
| * Usage:␊ | 
| * <pre>␊ | 
| * $this->notify($conf); // Notify the creation␊ | 
| * $this->notify($conf, false); // Notify the update of the object␊ | 
| * </pre>␊ | 
| *␊ | 
| * @param IDF_Conf Current configuration␊ | 
| * @param bool Creation (true)␊ | 
| */␊ | 
| public function notify($conf, $create=true)␊ | 
| {␊ | 
| $prj = $this->get_project();␊ | 
| $to_email = array();␊ | 
| if ('' != $conf->getVal('issues_notification_email', '')) {␊ | 
| $langs = Pluf::f('languages', array('en'));␊ | 
| $to_email[] = array($conf->getVal('issues_notification_email'),␊ | 
| $langs[0]);␊ | 
| }␊ | 
| $current_locale = Pluf_Translation::getLocale();␊ | 
| ␊ | 
| if ($create) {␊ | 
| if (null != $this->get_owner() and $this->owner != $this->submitter) {                ␊ | 
| $to_email[] = array($this->get_owner()->email, ␊ | 
| $this->get_owner()->language);␊ | 
| }␊ | 
| $comments = $this->get_comments_list(array('order' => 'id ASC'));␊ | 
| $context = new Pluf_Template_Context(␊ | 
| array(␊ | 
| 'issue' => $this,␊ | 
| 'comment' => $comments[0],␊ | 
| 'project' => $prj,␊ | 
| 'url_base' => Pluf::f('url_base'),␊ | 
| )␊ | 
| );␊ | 
| foreach ($to_email as $email_lang) {␊ | 
| Pluf_Translation::loadSetLocale($email_lang[1]);␊ | 
| $email = new Pluf_Mail(Pluf::f('from_email'), $email_lang[0],␊ | 
| sprintf(__('Issue %s - %s (%s)'),␊ | 
| $this->id, $this->summary, $prj->shortname));␊ | 
| $tmpl = new Pluf_Template('idf/issues/issue-created-email.txt');␊ | 
| $email->addTextMessage($tmpl->render($context));␊ | 
| $email->sendMail();␊ | 
| }␊ | 
| } else {␊ | 
| $comments = $this->get_comments_list(array('order' => 'id DESC'));␊ | 
| foreach ($this->get_interested_list() as $interested) {␊ | 
| $email_lang = array($interested->email,␊ | 
| $interested->language);␊ | 
| if (!in_array($email_lang, $to_email)) {␊ | 
| $to_email[] = $email_lang;␊ | 
| }␊ | 
| }␊ | 
| $email_lang = array($this->get_submitter()->email,␊ | 
| $this->get_submitter()->language);␊ | 
| if (!in_array($email_lang, $to_email)) {␊ | 
| $to_email[] = $email_lang;␊ | 
| }␊ | 
| if (null != $this->get_owner()) {␊ | 
| $email_lang = array($this->get_owner()->email,␊ | 
| $this->get_owner()->language);␊ | 
| if (!in_array($email_lang, $to_email)) {␊ | 
| $to_email[] = $email_lang;␊ | 
| }␊ | 
| }␊ | 
| $context = new Pluf_Template_Context(␊ | 
| array(␊ | 
| 'issue' => $this,␊ | 
| 'comments' => $comments,␊ | 
| 'project' => $prj,␊ | 
| 'url_base' => Pluf::f('url_base'),␊ | 
| ));␊ | 
| foreach ($to_email as $email_lang) {␊ | 
| Pluf_Translation::loadSetLocale($email_lang[1]);␊ | 
| $email = new Pluf_Mail(Pluf::f('from_email'), $email_lang[0],␊ | 
| sprintf(__('Updated Issue %s - %s (%s)'),␊ | 
| $this->id, $this->summary, $prj->shortname));␊ | 
| $tmpl = new Pluf_Template('idf/issues/issue-updated-email.txt');␊ | 
| $email->addTextMessage($tmpl->render($context));␊ | 
| $email->sendMail();␊ | 
| }␊ | 
| }␊ | 
| Pluf_Translation::loadSetLocale($current_locale);␊ | 
| }␊ | 
| } |