$HTTP_GET_VAR in .tpl datein?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • $HTTP_GET_VAR in .tpl datein?

    N'abend.
    Benutze PHPBB2 Plus
    und möchte nun gerne eine .tpl datei abändern und darin auf eine GET-variable zurückgreifen.

    portal.php greift auf portal.tpl zurück.
    in der .tpl datei ist php scheinbar ok (irgendwo gelesen, dass es das eigentlich nicht sollte, funzt aber z.b. bei DB anfragen..)

    Mein Ansatz war demnach schlicht in der .tpl zu schreiben:
    PHP-Code:
    $blub $HTTP_GET_VARS['blub']; 
    das klappt allerdings nicht. da passiert genau nix.

    gebe ich $blub in der .php den wert der GET var, funktioniert das (wär auch komisch wenn nicht . Das Problem ist, dass ich $blub jedoch als php variable in der .tpl datei benötige. frage ich aber hier $blub ab, pustekuchen. das wunder mich...

    Weiss jemand ob es möglich ist, eine GET var in einer solchen .tpl zu verwenden bzw. warum GET in der .tpl nicht einlesbar ist und hat ideen für eine umgehung?

    ich muss gestehn dass mein wissen über templates sehr begrenzt ist. ich habe versucht den variableninhalt wie alle anderen template variablen an die tpl weiterzureichen, aber dann ist sie ja nicht "php-einlesbar" verfügbar.

  • #2
    hi

    ist zwar schon ein bisschen her und rumgehacke aber so denke ich kommt man da eventeuell ran ....

    1.zuerst die portal.tpl :

    hier fügst du an der Stelle wo die Variable erscheinen soll folgendes ein

    {blub_bla}
    (wobei du blub_bla durch etwas sinnvolles ersetzen kannst (z.b. deinen richtigen variablennamen .... aber es geht nagtuerlich auch blub_bla ...
    die {} sind das wichtige

    2. die portal.php

    (habs leider nicht als portalsystem installiert aber eben mit der index.php getestet..

    such in dieser datei danach :
    PHP-Code:
    $template->set_filenames(array(
            
    'body' => 'portal.tpl')
        ); 
    (wenn du damit nicht fuendig wirst such mal nach portal.tpl ....

    kurz danach solltest du so etwas finden :

    PHP-Code:
    $template->assign_vars(array(
            
    XXXXXXXX)
        ); 

    wo bei mir XXXXX steht duerften einige Zeilen drinne stehen mit zuweisungen z.b.:
    'L_FORUM' => $lang['Forum'],

    etc. etc.

    du macht hinter der ersten zuweisung einfach ein eine neue Zeile in die schriebst du :
    PHP-Code:
    'blub_bla' => $_GET['blub_bla'], 
    sollte eigentlich funktionieren auch wenn es unschoen ist direkt in den dateien rumzuhacken ....

    gruss
    iglo

    Kommentar


    • #3
      Hi,
      erstmal vielen dank für die umfangreiche antwort.
      was du vorschlägst hatte ich aber bereits probiert. hat auch gut geklappt. ich könnte den inhalt damit wunderbar ausgeben also was weiss ich

      <p>{BLUB}</p>

      nur.. lies das mal in php ein... wie müsste das dann in der .tpl datei aussehn?
      ich will nicht einfach den inhalt der variablen ausgeben, sondern damit in der tpl datei weiterarbeiten....
      was ich brauche ist sowas hier in der art: (bitte nicht sagen, dass da was nicht stimmt

      PHP-Code:
      $blub_tpl = {BLUB}; 


      Mich hat bereits das dumpfe Gefühl beschlichen, dass ich damit komplett gegensätzlich der Idee von Templates arbeite. Mir is klar, dass PHP eigt. in der php datei zu passieren hat.
      Aber leider geht genau das in dem konkreten fall nicht.
      Zuletzt geändert von tudor; 04.10.2007, 23:40.

      Kommentar


      • #4
        hmmmm

        dann verstehe ich jetzt nicht wirklich was du willst.
        Wieso kannst du nicht schon in PHP die Daten so aufbereiten wie du sie im Template ausgeben willst?

        Weil das ist der Sinn eines Templates. Die Ausgabe. Das "erstellen" der Ausgabe solltest du aber in PHP machen.

        Gruss
        IGLO

        Kommentar


        • #5
          ...das ganze läuft auf ein include hinaus..., dafür brauch ich den variableninhalt im include argument... include in der portal is nicht drin, durch die struktur der tpl krieg ich meinen content (was includiert wird) nicht dahin wo's hin soll

          Kommentar


          • #6
            hmmm....

            also du willst abhaengig des wertes im template andere ausgaben haben?

            wenn ja dann schau dir mal die Blockvars an ( im .tpl
            PHP-Code:
            <!-- BEGIN topicrow --> 
            )

            in php :
            $template->assign_block_vars()

            hab ich allerdings nie selbst benutzt ... eventuell mal bei phpbb2 nachfragen ....

            weil es ist glaub ich kien wirkliches PHP - Problem, sondern eher nen PHPBB-Problem

            gruss
            Iglo
            Zuletzt geändert von kapitaeniglo; 04.10.2007, 23:49.

            Kommentar


            • #7
              ja, ich will über die GET var bestimmen, welche datei includiert wird.

              ohne template is das simple.

              $pfad .= $HTTP_GET_VARS['cont'];
              #bearbeiten so dass der pfad stimmt
              include($pfad);

              so. schreib ich jetzt das include in die .php kommt's nicht an die stelle, wo es hinsoll. weil das aussehn der seite eben maßgeblich von der .tpl bestimmt wird. gehe ich nun aber in die .tpl datei und schreibe mir den include befehl an die stelle wo's das ganze hingehört, dann komm ich nicht an die GET var (kann also nicht feststellen, WAS an die richtige stelle kommen soll)

              Kommentar


              • #8
                das problem gab es neulich erst: http://www.php-resource.de/forum/sho...threadid=87281

                Kommentar


                • #9
                  Wow! Das war nice..
                  klappt alles super.

                  Falls es mal wer braucht:

                  .PHP:

                  PHP-Code:
                  #$pfad aus der GET var holen und bearbeiten
                  ob_start();
                  include(
                  $pfad);
                  $content_include ob_get_contents();
                  ob_end_clean();

                  $template->assign_vars(array('CONTENT_INCLUDE' => $content_include)); 
                  .TPL:
                  PHP-Code:
                  {CONTENT_INCLUDE
                  vielen Dank an ALLE beteiligten!
                  Zuletzt geändert von tudor; 05.10.2007, 00:22.

                  Kommentar


                  • #10
                    PHP-Code:
                    ob_start();
                    include(
                    $pfad);
                    $content_include ob_get_contents();
                    ob_end_clean(); 
                    Session Variablen abhängige Änderungen im Output (der includierten Datei) gehn hier verloren, richtig? Lässt sich das vll auch noch ändern?

                    Kommentar


                    • #11
                      Original geschrieben von tudor
                      Session Variablen abhängige Änderungen im Output (der includierten Datei) gehn hier verloren, richtig?
                      was meinst du damit

                      Kommentar


                      • #12
                        sorry mein fehler, alles geschmeidig. hatte includiert bevor das session management angelaufen war ^^. is ja auch schon etwas später... nochmal danke alle

                        Kommentar

                        Lädt...
                        X