web-dev-qa-db-fra.com

Joomla PHP quel fichier créer un cookie sur toutes les pages

Donc, sur toutes les pages de mon site, y compris les pages d'erreur, je souhaite qu'un cookie soit créé sur le navigateur du client pour définir s'il est connecté ou non.

Juste besoin de savoir quel fichier de base ou plugin Joomla, etc., je devrais aller à (numéro de ligne) et éditer pour y parvenir.

Voici mon exemple de code:

Le nom du cookie est "log_in"

Valeur: "1" (l'utilisateur enregistré est connecté)

Valeur: "0" (utilisateur invité non connecté)

$app = JFactory::getApplication();
if(JFactory::getUser()->guest) { //User is guest
$app->input->cookie->set("logged_in", "0", time() - 1, $app->get('cookie_path', '/'), $app->get('cookie_domain'), $app->isSSLConnection());
} else { //User has an account and is logged in
$app->input->cookie->set("logged_in", "1", 0, $app->get('cookie_path', '/'), $app->get('cookie_domain'), $app->isSSLConnection());
}
1
C0nw0nk

Vous forcez une connexion PHP dans le CMS. Vous devez suivre la philosophie de Joomla pour implémenter une modification générale. Par exemple, implémenter un plugin utilisateur ou système pour définir un cookie.

De plus, Joomla a déjà des cookies de session.

2
Anibal

Vous pouvez utiliser le fichier index.php dans le dossier racine de joomla, il devrait être appelé à chaque page, mais je ne sais pas s'il pourrait être écrasé dans les futures mises à jour de joomla.

Une autre solution consiste à inclure votre code dans votre modèle (index.php, composant.php et error.php) pour atteindre toutes les pages du l'extrémité avant.

1
Kitase88

Vous n'avez pas besoin de créer de cookie, Joomla en crée déjà un lorsque l'utilisateur est connecté. Vous devez simplement utiliser l'API Joomla pour savoir si l'utilisateur est connecté ou non. Voici un exemple:

$user = JFactory::getUser();
$loggedIn = $user->guest ? false :  true;
1
Nagarjun