Blätterfunktionsklasse von Wurzel

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

  • Blätterfunktionsklasse von Wurzel

    Guten Tag,

    könnte mir mal jemand sagen, ob und wie ich die Blätterfunktionsklasse von Wurzel mit einer Smarty Template verwenden kann?

    Und wie ich diese Klasse überhaupt anspreche ?

    http://www.php-resource.de/forum/sho...threadid=34888

    Vielen Dank.

  • #2
    mach dir nen platzhalter im template ... speicher die ausgabe der klasse in einer variablen deines vertrauens:
    PHP-Code:
    $pa = &new pager();
    $pa->init();
    $variableDeinesVertrauens $pa->getPager($totalPages$actPage$linkTo); 
    und übergib sie an smarty ... mehr sollte es nicht sein.
    Kissolino.com

    Kommentar


    • #3
      Danke für die Antwort!!

      Musste den Klassenaufruf,etc etwas modifizieren. Da es eine DB Klasse gibt

      PHP-Code:
      // 1. query für die anzahl
      $anz $db->count_records($page->returnTablename(), "");
      $totalPages ceil($anz[0] / $showPerPage);
      echo 
      $totalPages;

      // 2. query mit LIMIT um die richtigen datensätze  zu holen
      $entry_links = array();
      $entry_links $page->returnLinks($actPage$showPerPage);
      $page->assignVars('entry_links'$entry_links);

      $pa = &new pager();
      $pa->init();
      $linkTo "links.php";
      $more $pa->getPager($totalPages$actPage$linkTo);
      $page->assignVars('more'$more);
      ## end flippage 
      Es gibt 349 Links. Warum wird nur eine Seite mit 5 Links ausgegeben, ohne Links zu den anderen Seiten !?!?
      Und warum ist $anz[] plötzlich ein Array? $anz beinhaltet doch die totale Anzahl an Zeilen in der Tabelle, oder nicht ?
      Was ist dann $anz[0]; ?


      Danke
      Zuletzt geändert von compuboy1010; 31.03.2004, 13:10.

      Kommentar


      • #4
        wenn $anz[0] > 1 & <= $showPerPage ist, ist 1 richtig ... prüf mal, was $anz[0] für einen wert hat
        Kissolino.com

        Kommentar


        • #5
          Hallo Wurzel,

          musste den obigen Code (2 Posts höher) noch mal modifizieren, da der garkeinen Sinn gemacht hat.

          Nun bekomme ich 5 Links angezeigt, mehr nicht. Weiß auch nicht wie die Klasse genau funzt.

          Hilfe ....

          Die Smarty Template sieht so aus:

          <table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr>
          <td align="left">
          {section name=i loop=$entry_links}
          <hr />
          PLZ: {$entry_links[i].plz}<br />
          <b>{$aTrans.name}: <a href="http://{$entry_links[i].url}" target="_blank">{$entry_links[i].name}</a></b>
          {/section}
          <br /><br />
          </td>
          <td align="right"></td>
          </tr>
          </table>

          <center>{$more}</center>
          Zuletzt geändert von compuboy1010; 31.03.2004, 13:03.

          Kommentar


          • #6
            echo $totalpages ist auch 5? wenn ja, stimmt deine count-query nicht bzw. die reale abfrage ... prüf mal die querys.

            meine klasse macht nichts anderes, als aus den 3 übergebenen werten
            den entsprechenden aufbau zu generieren ... da sie keinen zugriff auf deine tabelle hat/braucht, ist sie drauf angewiesen, dass richtige werte
            übermittelt werden... und wenn für totalpages da "5" steht, gibts auch nur
            5 seiten, keine mehr, keine weniger.

            btw: wenn du als linkTo eine seite ohne weitere GET-parameter angibst,
            musst du hinter das php noch ein ? setzen ... in deinem fall "links.php?"
            sonst wird nicht geblättert
            Kissolino.com

            Kommentar


            • #7
              Herrlich!!

              Es klappt!!!! Cooool. Mann das hat gedauert.
              Wurzel, eine tolle Klasse.

              Sag mal wie lange programmierst Du schon (in php) ?
              Wie lange schon objektorientiert ?

              Hat es eigentlich einen Grund warum manche Funktionen/Variablen mit einem Unterstrich beginnen ?

              Danke

              Kommentar


              • #8
                freut mich, wenns klappt
                Original geschrieben von compuboy1010
                Sag mal wie lange programmierst Du schon (in php) ?
                Wie lange schon objektorientiert ?
                php seit 2001 ... oop seit anfang des jahres

                Hat es eigentlich einen Grund warum manche Funktionen/Variablen mit einem Unterstrich beginnen ?
                ist ne frage des coding-styles (den ich auch nicht 100%ig einhalte) ... $_var ist bei mir eine externe variable, d.h. sie kommt von ausserhalb der class/methode ... $var würde innerhalb einer methode erzeugt und verwendet ... irgendwo gabs auch einen link zu solchen "vorgaben" .... musst du mal suchen.
                Kissolino.com

                Kommentar


                • #9
                  Ja habe den Link gefunden. Unter PEAR.

                  Noch eine Frage

                  PHP-Code:
                          $this->db->raw_query("SELECT * FROM links_company LIMIT ".(($actPage-1) * $showPerPage).', '.$showPerPage.' ORDER BY name'); 
                  Mit dem "ORDER BY" klappt es nicht mehr. Es gibt einen Syntax Fehler.
                  Warum ?

                  Kommentar


                  • #10
                    order muss vor limit sein

                    Kommentar


                    • #11
                      Danke vielmals!!!

                      Gruß Compu

                      Kommentar


                      • #12
                        Hallo, ich bins noch einmal.

                        Hallo,

                        warum funktioniert diese Funktion nur wenn sie zum ersten Mal aufgerufen wird?

                        Die verschiedenen Seitennummern werden beim ersten Aufruf dargestellt. Wenn ich aber auf Seite 2,etc klicke sind die Postleitzahlen aber wieder durcheinander, obwol die max und min Werte in einer Session gespeichert werden. Und ich finde nicht raus warum ?

                        Wer kann helfen ?


                        PHP-Code:
                            function returnLinks($actPage$showPerPage)    
                            {    
                                
                        $links = array();
                                
                                
                        ## user entered a minimum and maximum postal code ##
                                
                        if ((isset($_REQUEST['pc_min'])) OR (isset($_REQUEST['pc_max']))) {
                                    
                        $pc_min strip_tags($_REQUEST['pc_min']);
                                    
                        $pc_max strip_tags($_REQUEST['pc_max']);
                                    
                        $_SESSION['pc_min'] = $pc_min;
                                    
                        $_SESSION['pc_max'] = $pc_max;
                                    
                        $this->db->raw_query("SELECT *
                                                          FROM "
                        .$this->table."
                                                          WHERE (postal_code > "
                        .$_SESSION['pc_min'].") 
                                                          AND   (postal_code < "
                        .$_SESSION['pc_max'].")
                                                          ORDER BY postal_code ASC 
                                                          LIMIT "
                        .($actPage-1) * $showPerPage.', '.$showPerPage."
                                                         "
                        );
                                    
                                } else {
                                    
                        $this->db->raw_query("SELECT * 
                                                          FROM "
                        .$this->table.
                                                          ORDER BY name ASC
                                                          LIMIT "
                        .(($actPage-1) * $showPerPage).', '.$showPerPage);
                                }
                                
                                while (
                        $row $this->db->fetch_array()) {
                                    
                        $row $this->returnHTMLCompatible($row);
                                    
                        $links[] = $row;
                                }
                                
                                return 
                        $links;
                                
                        $this->numResults $this->returnNumResultes();
                            } 

                        Kommentar


                        • #13
                          Re: Hallo, ich bins noch einmal.

                          Original geschrieben von compuboy1010

                          PHP-Code:
                                      ## user entered a minimum and maximum postal code ##
                                  
                          if ((isset($_REQUEST['pc_min'])) OR (isset($_REQUEST['pc_max']))) {
                                      
                          $pc_min strip_tags($_REQUEST['pc_min']);
                                      
                          $pc_max strip_tags($_REQUEST['pc_max']);
                                      
                          $_SESSION['pc_min'] = $pc_min;
                                      
                          $_SESSION['pc_max'] = $pc_max;
                                      
                          $this->db->raw_query("SELECT *
                                                            FROM "
                          .$this->table."
                                                            WHERE (postal_code > "
                          .$_SESSION['pc_min'].") 
                                                            AND   (postal_code < "
                          .$_SESSION['pc_max'].")
                                                            ORDER BY postal_code ASC 
                                                            LIMIT "
                          .($actPage-1) * $showPerPage.', '.$showPerPage."
                                                           "
                          );
                                      
                          ... 
                          1. OR in if ist IMHO nicht richtig, da du offensichtlich beide Werte brauchst
                          => Fehler wahrscheinlich hierdurch entstanden.
                          2. wofür speicherst du die beiden Werten in die Session, wenn du
                          unmittelbar danach sofort einsetzt , da kannst du den Schritt
                          genauso gut weglassen, wenn sie nirgendwo sonst gebraucht wird.

                          Kommentar


                          • #14
                            Hallo,

                            nein die kann man nicht weglassen.
                            Sonst weiß man doch in der Blätterfunktionsklasse nicht was die oberen und unteren Grenzen waren.

                            Die werden ja nur einmal ins Formular eingegeben.
                            Wenn man dann 5 LInks pro Seite hat ergben sich einige Seiten.
                            Aber woher sollen diese Seiten wissen was die oberen und unteren Grenzen waren ?

                            Wie wäre es hiermit:

                            PHP-Code:
                                    if ((isset($_REQUEST['pc_min'])) OR (isset($_REQUEST['pc_max'])) OR
                                        (isset(
                            $_SESSION['pc_min'])) OR (isset($_SESSION['pc_max']))) {
                                        
                            $pc_min = isset($_SESSION['pc_min']) ? $_SESSION['pc_min'] : strip_tags($_REQUEST['pc_min']);
                                        
                            $pc_max = isset($_SESSION['pc_max']) ? $_SESSION['pc_max'] : strip_tags($_REQUEST['pc_max']); 
                            Zuletzt geändert von compuboy1010; 01.04.2004, 10:43.

                            Kommentar


                            • #15
                              1. Warum $_REQUEST und nicht $_GET oder $_POST ?
                              2. du weiss was OR macht oder ?
                              mal scharf überlegen wann die Anweisungen in if anspringen.

                              Kommentar

                              Lädt...
                              X