/** * Envoi le log par mail * * @param string $pProfil Profile qui renvoie ce log * @param string $pType Type de log * @param int $pLevel Niveau de log * @param int $pDate Date * @param string $pMessage Message à logger * @param array $pArExtra Tableaux de paramètres */ public function log($pProfil, $pType, $pLevel, $pDate, $pMessage, $pArExtra) { $profile = CopixConfig::instance()->copixlog_getProfile($pProfil); $year = substr($pDate, 0, 4); $month = substr($pDate, 4, 2); $day = substr($pDate, 6, 2); $hour = substr($pDate, 8, 2); $min = substr($pDate, 10, 2); $sec = substr($pDate, 12, 2); $levels = CopixLog::getLevels(); $level = $levels[$pLevel]->caption; $pattern = _i18n('copix:log.email.bodyHTML'); $vars = array('MESSAGE' => $pMessage, 'PROFIL' => $pProfil, 'TYPE' => $pType, 'LEVEL' => $level, 'YEAR' => $year, 'MONTH' => $month, 'DAY' => $day, 'HOUR' => $hour, 'MIN' => $min, 'SEC' => $sec, 'EXTRAS' => print_r($pArExtra, true)); $body = utf8_decode($this->_replaceVars($pattern, $vars)); $subject = utf8_decode(_i18n('copix:log.email.subject') . ' ' . substr($pMessage, 0, 80)); // envoi du / des mail(s) $destinataires = explode(';', $profile['email']); foreach ($destinataires as $destinataire) { $mail = new CopixHTMLEmail($destinataire, null, null, $subject, $body); $mail->send(); } }
/** * Modification d'un profil de log */ public function processEdit() { if ($profile = _request('profile')) { if (!in_array($profile, CopixConfig::instance()->copixLog_getRegistered())) { return _arRedirect(_url('admin||')); } CopixSession::set('admin|log|edit', CopixConfig::instance()->copixlog_getProfile($profile)); } $ppo = new CopixPpo(); $ppo->TITLE_PAGE = _i18n('logs.update'); $ppo->log = CopixSession::get('admin|log|edit'); if (!isset($ppo->log['email'])) { $ppo->log['email'] = ''; } $ppo->arErrors = array(); if (_request('error') !== null) { $ppo->arErrors[] = _i18n('logs.error.' . _request('error')); } $ppo->arStrategies = CopixLog::getStrategies(); $ppo->arLevel = CopixLog::getLevels(); return _arPpo($ppo, 'log.update.tpl'); }