/** * Metoda do logowania zdarzenia zadanego priorytetu wraz z danymi dodatkowymi * @param string $priority * @param array $extras */ public function log($priority, $extras) { $dict = new Base_Dictionary(); $dict->setSource('log_messages'); $entries = $dict->getDictionary(); if (isset($extras['old']) && isset($extras['new'])) { if ($extras['old'] instanceof Zend_Db_Table_Row_Abstract && $extras['new'] instanceof Zend_Db_Table_Row_Abstract) { $diff = array_diff_assoc($extras['old']->toArray(), $extras['new']->toArray()); if (count($diff) == 0) { return; } // no changes, nothing to log } } switch ($priority) { case self::USEREDIT: case self::USERDELETE: case self::USERLOCK: case self::USERUNLOCK: $extras['id_user_affected'] = $extras['old']->id; break; case self::PROFILEDELETE: $extras['id_user_affected'] = $extras['old']->id_user; break; case self::PROFILEADD: $extras['id_user_affected'] = $extras['new']->id_user; break; case self::ROLEDELETE: $extras['id_user_affected'] = $extras['old']->findParentRow('profile')->id_user; break; case self::ROLEADD: $extras['id_user_affected'] = $extras['new']->findParentRow('profile')->id_user; break; } if (isset($extras['old'])) { $extras['old'] = str_replace("", "~~~NULLBYTE~~~", serialize($extras['old'])); } if (isset($extras['new'])) { $extras['new'] = str_replace("", "~~~NULLBYTE~~~", serialize($extras['new'])); } parent::log($entries[$priority], $priority, $extras); }