Externe PHP Variable in einer Einzel-Seite (Beitrag) setzen

  • Hallo zusammen,


    ich möchte euch alle grüßen und mich bedanken dass durch dieses Forum die Gelegenheit besteht das eine oder andere Problemchen zu lösen :) Sei es mein Problem oder das eines anderen.


    Joomla ist für mich als Framework etwas Neuland, PHP wiederum nicht, und es gibt da etwas was mich bis jetzt in die Knie gezwungen hat!
    Ich habe soweit eine Joomla-Installation mit 2 Unterseiten (Beiträge). Ich möchte gerne für die ganze Seite ein externes PHP-Script inkludieren, welches aber auch PHP-Parameter, die in diesen beiden Unterseiten gesetzt sind, mit einem Wert belegt.
    D.h.: In jeder dieser Unterseiten befindet sich PHP Code, wo ein Parameter ausgegeben wird:
    {source}<?php echo $VAR; ?>{/source}


    Durch das inkludieren der extenren PHP Datei external.php, die komplett wo anders liegt (außerhalb der Joomla-Installation, aber auf dem gleichen Server), soll $VAR mit einem Wert versehen werden: $VAR = 1;
    Was bis jetzt leider nicht klappt. In den Error-Logs des Servers sehe ich auch immer wieder "Undefined index: $VAR"


    Das Inkludieren der externen Datei habe ich schon hinter mir. Am Anfang direkt in dem Beitrag inkludiert, und später rausgefunden dass ich das über ein Modul machen kann, welches ich dann mit {load MyModule} in dem Beitrag lade.
    Aber auch hier gilt: wenn ich in dem Modul selbst den Parameter $VAR=1 definiere ist es trotzdem in dem Beitrag nicht bekannt.


    Wie kann ich es also verwirklichen, dass der PHP-Parameter in dem Beitrag "bekannt" ist, und den Wert aus der external.php bekommt, sodass er dann auf der Seite zu sehen ist?
    Das Ziel ist es nämlich später Beiträge zu erstellen, wo ich nicht jedes Mal die external.php inkludieren muss, sondern nur ein Mal durch ein Modul, und alle PHP-Paremeter in der external.php zu steuern.


    Vielen Dank schon mal.

  • Hallo rohamis,


    wie inkludierst du die externe Datei genau? Schreibst du einen include-Befehle in den Programmcode eines Moduls oder verwendest du ein Benutzerdefiniertes Modul und gibt den Befehl über den Editor ein?


    Schreibe doch einfach einmal was du genau erreichen willst. Vielleicht gibt es ja in Joomla! eine bessere Lösung als eine externe Datei einzubinden.


    Viele Grüße
    Astrid

  • Hi astrid,


    danke für deine schnelle Antwort :)


    Also, bzgl. der Inkludierung habe ich es mit 4 Wegen versucht (zeitlich der Reihe nach):
    1) Ganz oben in der Haupt-Index.php Datei von der ganzen Seite mit: require_once('absoluter_pfad_zuer_datei/external.php');
    2) Dann in einem Beitrag selbst, mit: {source}<? require_once('absoluter_pfad_zuer_datei/external.php'); ?>{/source}
    3) Dann den require_once-Befehl in ein benutzerdefiniertes (leeres) Modul, welches ich im Beitrag mit: {loadposition myModule} lade
    4) und kürzlich: Das Modul erstellt, und in der Datei templates/system/html/modules.php eine Funktion gesetzt die die benötigte Datei inkludiert


    Natürlich das alles nicht gleichzeitig, sondern halt der Reihe nach versucht. Nichts davon hilft mir weiter.


    Mein Ziel ist folgendes:
    1) Ich habe eine Seite http://meineseite.de/
    2) Ich möchte in der Unterseite: http://meineseite.de/spiel.html einen Button haben, der als 'Ziel' eine Url bekommt die ich über die external.php steuere.
    3) D.h. also, im Backend gehe ich unter Inhalt->Beitrag->Neuer Beitrag, erstelle also praktisch die spiel.html Seite, und der Code für den Button würde dann so aussehen:
    <div class="uk-float-left uk-width-2-3"><a href="<?php echo $REDIRECT; ?>" title="Zum Spiel"> <button class="uk-button next_button">Zum Spiel</button> </a></div>
    4) Die Variable: $REDIRECT soll dann in der external.php definiert sein:

    Code
    1. $REDIRECT = 'zumspiel.html'

    oder halt:

    Code
    1. $REDIRECT = 'http://einspiel.de/'


    (Ist jetzt egal ob der Link ein interner oder externer sein wird)
    5) Und unabhängig ob es ein Button ist oder nicht, es ist überhaupt keine PHP-Variable in diesem Beitrag von der external.php Datei vordefiniert. Alle PHP-Sachen verhalten sich in diesem Beitrag als "unbekannt"!


    Ich habe also eine Seite (Joomla), und ein externes System welches die Besuche logt, in die DB schreibt, solche Variablen definiert usw. usw.
    Es ist total nett wenn ihr mir eine andere Lösung (komplett nur durch Joomla) nennen würdet aber das Problem ist dass ich diese 2 Sachen/Projekte (Joomla-Seite und externes PHP-System) "verbinden" möchte.


    Vielen Dank.


    VG
    Rohamis

  • Tut mir leid, das war mir nicht ganz bewusst (Forenregeln habe ich "überfolgen", ganz ehrlich).


    Der Link sollte natürlich nicht auf meiner Seite gehen, es sollte nur ein Beispiel sein. Ich hätte also example.org schreiben müssen.


    Danke für den Hinweis.

  • Es ist nichts passiert ..aber manchmal wählen user unabslichtlich Platzhalter, auf die man besser nicht klicken sollte ;).
    Zu deinem Problem kann ich nicht wirklich was beisteuern, damit habe ich mich noch nie befasst.
    Es gab mal eine ähnliche Anfrage, vielleicht hilft dir das weiter: http://forum.joomla-nafu.de/jo…tenbank-aus-joomla-modul/

  • Vielen Dank. Ich habe mir den Beitrag angeschaut, es ist nicht die Lösung die ich brauchen würde bzw. es löst nicht genau mein Problem leider.
    Ich werde versuchen mein Anliegen näherungsweise so zu lösen, allerdings kann ich jetzt schon sagen dass das kein Erfolg haben wird, da ich mich für eine "direkte" Einbindung von externen Daten in einem Beitrag interessiere.


    Gibt es denn in Joomla überhaupt keine Möglichkeit zu sagen "in diesem Beitrag inkludierst du jetzt die Datei, anstelle von normalen hierdrin gesetzten Code"?

  • Ist bei deinem Joomla! eine Erweiterung wie z.B.:
    https://extensions.joomla.org/…ts-integration/sourcerer/
    installiert um überhaupt PHP-Code im Content der Beiträge und Module ausführen zu können ?


    Falls nicht mußt du wohl das gewünschte z.B. in einem Template-Override sinnvoll einbauen oder eben z.B. obige Erweiterung installieren und korrekt verwenden.



    Jommla! sowie die per require_once eingebundene external.php nutzen das selbe PHP auf dem selben Server ?


    Außerdem eventuell nützlich:



    http://www.rither.de/a/informa…iablen/globale-variablen/


    http://www.rither.de/a/informa…n/superglobale-variablen/


    http://www.rither.de/a/informa…-php-dateien-importieren/



    Ich bin aber nur ein Laie.

  • Hallo nochmal,


    es tut mir leid dass ich nicht auf eure letzten Antworten reagiert habe, es gab leider einen Sterbefall und ich war dann für lange Zeit eben weg.


    Nochmal kurz zu meinem Anliegen:
    Ja ich habe die Erweiterung Sourcerer installiert (Pro Version). Ich kann also damit PHP im Beitrag schreiben.
    Ja, Joomla und das externe System nutzen das selbe PHP.
    Und vielen Dank für die Links. Ich bin eigentlich sehr erfahren was PHP angeht, und es geht mir hier echt NUR um die Anbidnung des ext. Systems in Joomla.
    Was ich mittlerweile auch hinbekommen habe (für all die, die durch einer Suchmaschine sich das hier ansehen jetzt):
    1) In der modules.php Datei die Funktion: function modChrome_IncludeMyFiles($module, &$params, &$attribs) hinzugefügt
    2) Diese inkludiert eine neue Datei myincludes.php, die in media/myfiles/ Ordner liegt.
    3) In der myincludes.php Datei dann alle anderen Datein inkludieren, die man haben möchte.
    4) Ein selbst geschriebenes Modul in Joomla erstellt, welches durch {loadposition mymodule} in einem Beitrag eingefügt wird.
    Und schon sind die Dateien inkludiert.


    Was mir jetzt allerdings noch fehlt ist:
    Wie kann ich nun irgend einen Parameter der durch bzw. in das ext. System angelegt und definiert ist, in dem Artikel in Joomla "abfangen" bzw. "erfragen".
    Also Beispiel: Man kommt auf die Seite, das ext. System errechnet irgend eine Variable nach bestimmten Reglen (die sind hier jetzt nicht nötig), und im Joomla-Beitrag möchte ich sagen:


    Code
    1. if($var == 1){
    2. $schriftfarbe = '#f00'; //rot
    3. }
    4. else{
    5. $schriftfarbe = '#000'; //schwarz
    6. }


    Wie kann man also die Variable $var, die allein in der ext. Datei angelegt ist, dem Joomla-Aritkel "bekannt" machen?
    Noch eine Info: Wenn ich in meinem Joomla-Modul PHP-Code schreibe, ist das in dem Artikel auch nicht bekannt.


    Viel Dank für eure Geduld :)