Ankündigung

Einklappen
Keine Ankündigung bisher.

Php Code als Variable definieren und in Template darstellen

Einklappen

Neue Werbung 2019

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

  • Php Code als Variable definieren und in Template darstellen

    Hallo,

    ich bin noch neu hier und bin noch was Php angeht ein ziemlicher Anfänger. Ich habe folgenden Php-Code weitgehend aus einem Php-Buch und möchte ihn nun in ein bestehendes Skript integrieren. Das Problem ist nur, dass dieses Skript ein Template System verwendet (wie z.B im WBB, Phpbb, usw.) und der Code in der Php-Datei als eine Variable definiert wird und dann im Template an einer gewünschten Stelle erscheint, wenn man dort die Variable hinsetzt. Ich weiß leider nur nicht wie ich dieses Skript so umschreibe, dass ich das Ergebnis dieses Codes im Template anzeigen lassen kann. Vielen Dank im vorraus für eure Mühe und jetzt der Quellcode:

    PHP-Code:
    <?php
        $image_id 
    $HTTP_GET_VARS['action'];
        
    $sql "SELECT bild, name, ord, url FROM database WHERE kat LIKE '$image_id' ORDER BY name ASC ";        
                    
        
    $result mysql_query($sql) OR die(mysql_error());
        
    $i=0;
        while(
    $row mysql_fetch_array($result)) {
            
            
    $arraybild[$i] = $row['bild'];
            
    $arrayname[$i] = $row['name'];
            
    $arrayurl[$i] = $row['url'];
            
    $i++;
        }
        if (isset(
    $arraybild)) { 
            
    $result count ($arraybild);
            
    $paging=1;
            echo 
    "<table border='0' cellspacing='0' cellpadding='0'>";
            for(
    $x=0;$x<$result;$x++){
                 if(
    $paging==1){
                     echo 
    "<tr>";
                     }
                     
                     
    $paging++;
                echo 
    "<td><table cellspacing='0' cellpadding='0' border='0' height='110' width='100'><tr><td class='row1' align='center'>[url='categories.php?cat_id=".$arrayurl[$x]."'][img]bilder/".$arraybild[$x].".gif[/img][/url]</td></tr><tr><td align='center' class='maincat'>[url='categories.php?cat_id=".$arrayurl[$x]."']" .$arrayname[$x]. "[/url]</td></tr></table></td>";
            
                 if(
    $paging==5) {
                         echo 
    "</tr>";
                        
    $paging=1;
                     }
                }
            
            
            
            echo 
    "</table>";
        }
        else {
            echo 
    "Keine Bilder vorhanden";
        }
    ?>

  • #2
    dazu brauchtm an wohl ein paar mehr infos, wenn du nicht weist wie das templatesystem funktioniert, wird dir keiner helfen könne.

    im allgemeinen hat man im templatesystem irgendwelche platzhalter im template z.b.

    %title%

    %feld1%

    oder sowas wenn sowas vorliegt, kannst du ganz einfach mittels str_replace %title% durch die variable ersetzen lassen die du willst.

    allerdings wirst du deine quellcode oben umarbeiten mpüsssen, die echos weg und alles in eine variable schreiben, wenn das, als 1 block im template erscheinen soll.

    mfg
    robo47
    [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
    | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

    Kommentar


    • #3
      Zitat von robo47
      im allgemeinen hat man im templatesystem irgendwelche platzhalter im template z.b.

      %title%
      bei diesem Skript werden die variablen durch z.B {title} im Template angezeigt.

      Zitat von robo47
      allerdings wirst du deine quellcode oben umarbeiten mpüsssen, die echos weg und alles in eine variable schreiben, wenn das, als 1 block im template erscheinen soll.
      genau das ist mein Problem, ich weiß nicht wie ich den Php-Code umschreiben muss, damit der Inhalt als eine Variable definiert ist. Hast du oder irgendjemand eine Idee wie man das realisieren könnte?

      Gruß

      phpnoobi

      Kommentar


      • #4
        also du musst wissen wie die variable heißt, in der das template ist, wenn dein script läuft dann arbeitest du dein script z.b. so um:

        PHP-Code:
        <?php

           $ausgabe 
        '';
           
        $image_id $HTTP_GET_VARS['action'];
           
        $sql "SELECT bild, name, ord, url FROM database WHERE kat LIKE '$image_id' ORDER BY name ASC ";      
                    
           
        $result mysql_query($sql) OR die(mysql_error());
           
        $i=0;
           while(
        $row mysql_fetch_array($result)) {
              
              
        $arraybild[$i] = $row['bild'];
              
        $arrayname[$i] = $row['name'];
              
        $arrayurl[$i] = $row['url'];
              
        $i++;
           }
           if (isset(
        $arraybild)) {
              
        $result count ($arraybild);
              
        $paging=1;
              
        $ausgabe .= "<table border='0' cellspacing='0' cellpadding='0'>";
              for(
        $x=0;$x<$result;$x++){
                  if(
        $paging==1){
                     
        $ausgabe .= "<tr>";
                     }
                    
                     
        $paging++;
                 
        $ausgabe .= "<td><table cellspacing='0' cellpadding='0' border='0' height='110' width='100'><tr><td class='row1' align='center'>[url='categories.php?cat_id=".$arrayurl[$x]."'][img]bilder/".$arraybild[$x].".gif[/img][/url]</td></tr><tr><td align='center' class='maincat'>[url='categories.php?cat_id=".$arrayurl[$x]."']" .$arrayname[$x]. "[/url]</td></tr></table></td>";
              
                  if(
        $paging==5) {
                        
        $ausgabe .= "</tr>";
                       
        $paging=1;
                     }
                 }
              
              
              
              
        $ausgabe .= "</table>";
           }
           else {
              
        $ausgabe .= "Keine Bilder vorhanden";
           }

           
        str_replace('{ausgabe}',$ausgabe,$Code);
        ?>
        hierbei bin ich davon ausgegangen dass im template {ausgabe} vorkommt und das template selbst in $Code steht.

        allerdings musst du erstmal bissel mehr an infos über das templatesystem rausrücken, weil ich sonst nicht weis, ob z.b. für das ganze ersetzen schon spezielle funktionen vorhanden sind. etc
        oder vieleicht das tempalte auch erst ganz am ende des scripts initialisiert wird.
        poste halt vieleihct mal was für ein templatesystem du einsetztz und was du darüber weist bzw. vieleicht kannst du irgendwo in den vorhandenen quelltexten ja etwas finden, was eben diese umsetzung macht und wenn du es nicht verstehst, kannst du es ja hier posten,

        mfg
        robo47
        [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
        | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

        Kommentar


        • #5
          Vielen Dank! Funktioniert prima! Das Skript ist übrigens die Gallerie 4images. Ich hab das jetzt so gemacht:

          PHP-Code:
          <?php

             $ausgabe 
          '';
             
          $image_id $HTTP_GET_VARS['action'];
             
          $sql "SELECT bild, name, ord, url FROM database WHERE kat LIKE '$image_id' ORDER BY name ASC ";     
                     
             
          $result mysql_query($sql) OR die(mysql_error());
             
          $i=0;
             while(
          $row mysql_fetch_array($result)) {
               
                
          $arraybild[$i] = $row['bild'];
                
          $arrayname[$i] = $row['name'];
                
          $arrayurl[$i] = $row['url'];
                
          $i++;
             }
             if (isset(
          $arraybild)) {
                
          $result count ($arraybild);
                
          $paging=1;
                
          $ausgabe .= "<table border='0' cellspacing='0' cellpadding='0'>";
                for(
          $x=0;$x<$result;$x++){
                    if(
          $paging==1){
                       
          $ausgabe .= "<tr>";
                       }
                     
                       
          $paging++;
                   
          $ausgabe .= "<td><table cellspacing='0' cellpadding='0' border='0' height='110' width='100'><tr><td class='row1' align='center'>[url='categories.php?cat_id=".$arrayurl[$x]."'][img]bilder/".$arraybild[$x].".gif[/img][/url]</td></tr><tr><td align='center' class='maincat'>[url='categories.php?cat_id=".$arrayurl[$x]."']" .$arrayname[$x]. "[/url]</td></tr></table></td>";
               
                    if(
          $paging==5) {
                          
          $ausgabe .= "</tr>";
                         
          $paging=1;
                       }
                   }
               
               
               
                
          $ausgabe .= "</table>";
             }
             else {
                
          $ausgabe .= "Keine Bilder vorhanden";
             }

          $site_template->register_vars(array(
            
          "ausgabe" => $ausgabe
          ?>

          Kommentar

          Lädt...
          X