. */ /* */ /*************************************************************************************/ namespace Thelia\Log; abstract class AbstractTlogDestination { //Tableau de TlogDestinationConfig paramétrant la destination protected $_configs; //Tableau des lignes de logs stockés avant utilisation par ecrire() protected $_logs; // Vaudra true si on est dans le back office. protected $flag_back_office = false; public function __construct() { $this->_configs = array(); $this->_logs = array(); // Initialiser les variables de configuration $this->_configs = $this->getConfigs(); // Appliquer la configuration $this->configure(); } //Affecte une valeur à une configuration de la destination public function setConfig($name, $value) { foreach ($this->_configs as $config) { if ($config->name == $name) { $config->value = $value; // Appliquer les changements $this->configure(); return true; } } return false; } //Récupère la valeur affectée à une configuration de la destination public function getConfig($name) { foreach ($this->_configs as $config) { if ($config->name == $name) { return $config->value; } } return false; } public function getConfigs() { return $this->_configs; } public function SetBackOfficeMode($bool) { $this->flag_back_office = $bool; } //Ajoute une ligne de logs à la destination public function add($string) { $this->_logs[] = $string; } protected function InsertAfterBody(&$res, $logdata) { $match = array(); if (preg_match("/(]*>)/i", $res, $match)) { $res = str_replace($match[0], $match[0] . "\n" . $logdata, $res); } else { $res = $logdata . $res; } } // Demande à la destination de se configurer pour être prête // a fonctionner. Si $config est != false, celà indique // que seul le paramètre de configuration indiqué a été modifié. protected function configure() { // Cette methode doit etre surchargée si nécessaire. } //Lance l'écriture de tous les logs par la destination //$res : contenu de la page html abstract public function write(&$res); // Retourne le titre de cette destination, tel qu'affiché dans le menu de selection abstract public function getTitle(); // Retourne une brève description de la destination abstract public function getDescription(); }