it-swarm.com.de

Joomla PHP welche Datei Cookie auf allen Seiten machen

Daher möchte ich, dass auf allen Seiten meiner Website, einschließlich der Fehlerseiten, ein Cookie im Browser des Kunden erstellt wird, um zu definieren, ob er angemeldet ist oder nicht.

Ich muss nur wissen, welche Joomla-Kerndatei oder welches Plugin usw. ich gehen sollte (Zeilennummer) und bearbeiten, um dies zu erreichen.

Hier ist mein Beispielcode:

Der Cookie-Name ist "eingeloggt"

Wert: "1" (registrierter Benutzer ist angemeldet)

Wert: "0" (Gastbenutzer nicht angemeldet)

$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

Sie erzwingen eine Anmeldung PHP im CMS. Sie müssen der Joomla-Philosophie folgen, um eine allgemeine Änderung vorzunehmen. Beispielsweise müssen Sie ein Benutzer- oder System-Plugin implementieren, um ein Cookie zu definieren.

Zusätzlich hat Joomla bereits Sitzungscookies.

2
Anibal

Sie können die index.php -Datei im Joomla-Stammordner verwenden. Sie sollte auf jeder Seite aufgerufen werden, aber ich weiß nicht, ob sie in zukünftigen Joomla-Updates überschrieben werden könnte.

Eine andere Möglichkeit wäre, Ihren Code in Ihre Vorlage aufzunehmen (index.php, component.php und error.php), um jede Seite in der zu erreichen Vorderes Ende.

1
Kitase88

Sie müssen kein Cookie erstellen, Joomla erstellt bereits ein Cookie, wenn sich der Benutzer angemeldet hat. Sie müssen nur die Joomla-API verwenden, um zu erfahren, ob der Benutzer angemeldet ist oder nicht. Hier ist ein Beispiel:

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