[Funktion] Kenn jemand ne Smarty Datenbankfuntkion

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

  • [Funktion] Kenn jemand ne Smarty Datenbankfuntkion

    Hallo,

    ich suche eine Funktion, die Smartytemplates aus der Datenbank holt, kennt jemand von euch eine, die von der Doku funktioniert irgendwie nicht auch wenn ich sie auf meine Datenbankschnittstelle hin ändere.

  • #2
    zeig mal deinen code

    bei mir funktioniert's nämlich, vielleicht hast du zuviel geändert
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Bitte:
      PHP-Code:
      <?php 
            
      // im PHP-Skript
            
            
            // definieren Sie folgende Funktion in Ihrer Applikation
            
      function db_get_template ($tpl_name, &tpl_source, &$smarty_obj)
            {
                global 
      $db;
                
      // Datenbankabfrage um unser Template zu laden,
                // und '$tpl_source' zuzuweisen
               
                
      $query="SELECT tpl_source FROM templates WHERE name='$tpl_name'";
                
      $db->query($query);
                if (
      $db->affetedRows()) 
                {
                    
      $row $db->fetchRow();
                    
      $tpl_source=$row['source'];
                    return 
      true;
                  } 
                  else 
                  {
                  return 
      false;
                  }
            }
            
            function 
      db_get_timestamp($tpl_name, &tpl_timestamp, &$smarty_obj)
            {        
                  global 
      $db;    
                
      // Datenbankabfrage um '$tpl_timestamp' zuzuweisen
                
                
      $query="SELECT timestamp FROM templates WHERE name='$tpl_name'";
                
      $db->query($query);
                if (
      $db->affectedRows()) 
                {
                    
      $row $db->fetchRow();
                  
      $tpl_timestamp=$row['timestamp'];
                return 
      true;
                } 
                else 
                {
                    return 
      false;
                }
              }
            
            function 
      db_get_secure($tpl_name, &$smarty_obj)
            {
            
            
      // angenommen alle Templates sind sicher
            
      return true;
            }
            
            function 
      db_get_trusted($tpl_name, &$smarty_obj)
            {
            
            
      // wird für Templates nicht verwendet
            
      }
      ?>
      Edit ich benutze PEAR:B

      Kommentar


      • #4
        und bei PEAR gibt's zwei funktionen, die die anzahl der gefunden datensätze liefern?

        eine heißt affetedRows() und die andere affectedRows()?

        wie heißen die zum Prüfen, wieviel Datensätze bei einem UPDATE geändert wurden?

        nuRows() und numRows()?
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Hallo,

          danke für den Hinweis.

          Aber wirklich funtkionieren tut es immer noch nicht habe jetzt die richtigen Methoden eingesetzt, aber bekomme immer noch Fehlermeldungen:

          Warning: call_user_func_array(): First argumented is expected to be a valid callback, 'db_get_template' was given in C:\apachefriends\xampp\htdocs\wpcms_neu\class\smarty\Smarty.class.php on line 1550

          Warning: call_user_func_array(): First argumented is expected to be a valid callback, 'db_get_timestamp' was given in C:\apachefriends\xampp\htdocs\wpcms_neu\class\smarty\Smarty.class.php on line 1557

          Warning: Smarty error: unable to read resource: "db:artikel_l.htm" in C:\apachefriends\xampp\htdocs\wpcms_neu\class\smarty\Smarty.class.php on line 1083

          Und heirmal der Code zum abrufen des Templates:
          PHP-Code:
              // Ressourcen-Typ 'db:' registrieren
                
          $tpl->register_resource("db", array("db_get_template",
                
          "db_get_timestamp",
                
          "db_get_secure",
                
          "db_get_trusted"));
                  
                  
          $tpl->assign('content',$tpl->fetch('db:artikel_l.htm')); 

          Kommentar


          • #6
            die funktionen stehen extra und nicht in der klasse?
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              Ja die Funktion:register_resource() liegt in der Datei die die Daten verarbeitet.

              Kommentar


              • #8
                ich meine icht register_source, die kann aber ja sowieso nicht einzeln stehen, da sie zur smarty-klasse gehört

                ich meine deine vier funktion db_get_template, ...

                was sagt denn
                PHP-Code:
                echo (int)function_exists('db_get_template'); 
                wenn du das direkt vor $tpl->register_source machst?
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  Original geschrieben von mrhappiness
                  was sagt denn
                  PHP-Code:
                  echo (int)function_exists('db_get_template'); 
                  wenn du das direkt vor $tpl->register_source machst?
                  0

                  edit ja die Funktionen liegen einzeln in der Datei resource.db.php

                  Kommentar


                  • #10
                    dann gibt's die funktion nicht

                    häng die datei mit den funktionen und die datei, wo das echo steht mal an (in einem zipfile)
                    Ich denke, also bin ich. - Einige sind trotzdem...

                    Kommentar


                    • #11
                      Okay hier.
                      Angehängte Dateien

                      Kommentar


                      • #12
                        dass du resource.db.php nicht einbindest ist absicht?
                        Ich denke, also bin ich. - Einige sind trotzdem...

                        Kommentar


                        • #13
                          Hallo,

                          wo genau soll ich denn einbinden im Script wo ich das brauche steht so ja aber nicht in der Doku ich dachte Smarty sucht sich das selber oder wie funktioniert das Ganze?

                          Kommentar


                          • #14
                            du kannst fragen stellen

                            wie kann man dateien einbinden?
                            mit include vielleicht?

                            oder denkst du wirklich, smarty durchsucht alle verzeichnisse, die es finden kann, und sucht in jeder datei nach den funktionen?
                            Ich denke, also bin ich. - Einige sind trotzdem...

                            Kommentar


                            • #15
                              Original geschrieben von mrhappiness
                              du kannst fragen stellen

                              wie kann man dateien einbinden?
                              mit include vielleicht?

                              oder denkst du wirklich, smarty durchsucht alle verzeichnisse, die es finden kann, und sucht in jeder datei nach den funktionen?
                              Nein ich wollte nicht wissen, wie man Dateien einbindet...

                              Hmmm naja ich dachte nur, dass Smarty automatisch im Plugin Verzeichniss sucht.

                              Naja ich werde mal weiter probieren, vielleicht melde ich micht nochmal.

                              Kommentar

                              Lädt...
                              X