[Joomla, PHP] Externe PHP-Dateien in Joomla einbinden

Da ich auch schon seit einiger Zeit an einer Lösung für dieses Problem gesessen habe und irgendwie auch nichts anständiges im Netz gefunden habe, schreibe ich euch nun die einfache Lösung, die mir ein Freund liebenswürdig mitgeteilt hat.

Ich habe nämlich darüber gegrübelt, wie man denn bei externen PHP-Dateien auf die Sessions insbesondere die Benutzer-IDs der aktuellen Joomla-Session / Sitzung kommt.
Um die Lösung zu veranschaulichen, mache ich an dieser Stelle ein einfaches Beispiel:

Ihr erstellt einen Ordner im Joomla-Root-Verzeichnis z.B. „test“ , indem ihr außerdem noch eine „test.php“ mit folgendem Inhalt anlegt:

<?php
if(ISSET($user)) die( 'Restricted access' );
define('_JEXEC', 1);
define('JPATH_BASE', '../');
define('DS', DIRECTORY_SEPARATOR);
require_once(JPATH_BASE.DS.'includes'.DS.'defines.php');
require_once(JPATH_BASE.DS.'includes'.DS.'framework.php');
$mainframe = JFactory::getApplication('site');
$mainframe->initialise();
$user = JFactory::getUser();
echo $user->get('id');
?>

Diese Testseite gibt also nur die ID des eingeloggten Users aus.

Aber damit dies überhaupt funktioniert, muss die erstellte Testdatei in Joomla eingebunden werden. Dazu geht man in die Menüeinstellungen (sinnvoll wäre hier das „Benutzer-Menü“, welches nur nach einem Login angezeigt wird) und erstellt dort einen neuen „internen“ Link vom Typ „Wrapper“.

In den Einstellunge des Wrapper-Links ist die Wrapper-URL von entscheidener Bedeutung. Hier tragt ihr den Pfad oberhalb des htdocs ein, also in diesem Fall /joomla/test/test.php

Anschließend oben rechts auf speichern, das Joomla-Frontend aufrufen, einloggen und den Link testen.

Nun wird im Frontend die User-ID angezeigt. Was ihr dann damit anstellt, ist euch überlassen.

Advertisements
Veröffentlicht in Joomla. Schlagwörter: , , , , . 5 Comments »

5 Antworten to “[Joomla, PHP] Externe PHP-Dateien in Joomla einbinden”

  1. calimero Says:

    Hi,

    if(ISSET($user)) die( ‚Restricted access‘ );

    alleine reicht nicht ganz. Wenn man zusätzlich
    if($user == “) die( ‚Restricted access‘ );

    drunter setzt, kann die Seite ohne Joomla drum rum nicht mehr aufgerufen werden.

  2. maTTes Says:

    Ah, danke für den Tipp, werd ich nochmal ausprobieren.

  3. TLux Says:

    cooler tipp, werde ich auch demnächst mal ausprobieren. Danke schonmal dafür.

    Ist das Kommentar-Modul das ich hier grade benutze auch basierend auf Joomla? Brauche sowas für eine meiner Seiten.

    Danke!

  4. maTTes Says:

    Nee, das hier ist WordPress, kein Joomla.

  5. Alpay Says:

    Sehr gute Möglichkeit


Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: