Voici le scénario que je veux fixer pour un magasin de commerce:exploitation forestière de surveillance personnalisée
journaux d'administration du site à, crée des commandes pour les utilisateurs, crée des paiements et/ou applique des crédits sur les commandes pour les utilisateurs. Watchdog enregistre tout cela, mais en tant qu'utilisateur admin, lorsque nous en avons besoin en tant qu'utilisateur client, l'action est prise en compte (afin que nous puissions lister sur ce compte toutes les actions que le système a effectuées sur son compte ou commandes).
Je vois que chien de garde a:
function watchdog($type, $message, $variables = array(), $severity = WATCHDOG_NOTICE, $link = NULL) {
global $user, $base_root;
// Prepare the fields to be logged
$log_message = array(
'type' => $type,
'message' => $message,
'variables' => $variables,
'severity' => $severity,
'link' => $link,
'user' => $user,
'request_uri' => $base_root . request_uri(),
'referer' => referer_uri(),
'ip' => ip_address(),
'timestamp' => time(),
);
// Call the logging hooks to log/process the message
foreach (module_implements('watchdog') as $module) {
module_invoke($module, 'watchdog', $log_message);
}
}
est-il un moyen de passer outre à l'utilisateur global $ sans le piratage de la fonction de base et sans dupliquer? Puis-je transmettre $ user en tant que variable d'une manière ou d'une autre? Puis-je appeler $ user = user_load ($ customer-> uid) avant que watchdog() ne l'amène à tromper cet utilisateur? Je voudrais que l'UID enregistré ne soit pas 0 ou 1 si je peux l'aider, car il est vraiment difficile de suivre les logs pour certains aspects du système par profil d'utilisateur (compte, facturation, commandes, etc.).
Heh, j'aime les solutions comme celle-ci. – ceejayoz