ilch Forum » Ilch Clan 1.1 » Module und Modifikationen » Gbook im Adminmenü Limit einstellen

Geschlossen
  1. #1
    User Pic
    Galle81 Mitglied
    Registriert seit
    02.10.2009
    Beiträge
    195
    Beitragswertungen
    8 Beitragspunkte
    Hi zusammen,

    ich möchte gerne das Gästebuch im Aminmenü auf ein Limit von 20 Einträgen pro Seite festlegen, da mittlerweile knapp 2000 Einträge vorhanden sind und somit längere Ladezeiten zustande kommen.

    Ich hatte es so versucht, nur klappt es leider nicht so, wie ich will lächeln

    $limit = 20; // Limit
    $MPL = db_make_sites ($page , '' , $limit , "?gbook" , 'gbook');


    Meine gbook.php:

    <?php 
    #   Copyright by: Manuel
    #   Support: www.ilch.de
    
    
    defined ('main') or die ( 'no direct access' );
    defined ('admin') or die ( 'only admin access' );
    
    $design = new design ( 'Admins Area', 'Admins Area', 2 );
    $design->header();
    
    ##
    ###
    ####
    ##### A k t i o n e n
    
    
    if ( !empty ($_GET['del']) ) {
      $id = escape($_GET['del'], 'integer');
      db_query("DELETE FROM `prefix_gbook` WHERE id = ".$id." LIMIT 1");
      db_query("DELETE FROM prefix_koms WHERE uid = ".$id." AND cat = 'GBOOK'");
    
    }
    
    if ( !empty ($_GET['status']) ) {
      $statusid = escape($_GET['status'], 'integer');
      db_query('UPDATE `prefix_gbook` SET `status` = IF(`status`>0,0,1) WHERE `id` = "'.$statusid.'" LIMIT 1');
    
    }
    
    if (isset($_POST['sub'])) {
      $name = escape($_POST['name'], 'string');
      $mail = escape($_POST['mail'], 'string');
      $page = escape($_POST['page'], 'string');
      $text = escape($_POST['text'], 'string');
      $status = escape($_POST['status'], 'integer');   
      if (empty($_POST['gid'])) {
        db_query("INSERT INTO prefix_gbook (name, mail, page, txt, time, status) VALUES ('".$name."','".$mail."','".$page."','".$text."', '".time()."','".$status."')");
      } else {
        $gid  = escape($_POST['gid'], 'integer');
        db_query("UPDATE prefix_gbook SET name = '".$name."', mail = '".$mail."', page = '".$page."', txt = '".$text."' , status = '".$stat."' WHERE id = ".$gid);
      }
    }
    $ar = array(1 => 'Freigegeben', 0 => 'Gesperrt');
    $r = array ('name'=>'','mail'=>'','page'=>'','text'=>'','id'=>'','status'=>arlistee(1,$ar));
    if (isset($_GET['edit'])) {
      $id = escape($_GET['edit'], 'integer');
      $r = db_fetch_assoc(db_query("SELECT id, name, mail, page, txt as text, status FROM prefix_gbook WHERE id = ".$id)); 
      $r['status'] = arlistee($r['status'],$ar); 
    }
    
    $tpl = new tpl ('gbook', 1);
    $tpl->set_ar_out($r,0);
    
    $class = '';
    $erg = db_query('SELECT name, mail, txt, id, status FROM `prefix_gbook` ORDER BY time DESC');
    while ($r = db_fetch_assoc($erg) ) {
      $class = ($class == 'Cmite' ? 'Cnorm' : 'Cmite' );
      $staus = '<a href="admin.php?gbook&status='.$r['id'].'"><img src="include/images/icons/' . ($r['status'] == 1 ? 'jep' : 'nop') . '.gif" title="' . $ar[$r['status']] . '" alt="Status" border="0" /></a>';  
      $text  = substr(preg_replace("/\015\012|\015|\012/", " ", htmlentities(strip_tags(stripslashes($r['txt'])))),0,75);
      echo '<tr class="'.$class.'">';
      echo '<td>'.$staus.'&nbsp;<a href="admin.php?gbook=0&edit='.$r['id'].'"><img src="include/images/icons/edit.gif" /></a>&nbsp;<a href="javascript:delcheck('.$r['id'].')"><img src="include/images/icons/del.gif"></a></td>';
      echo '<td><b><a href="mailto:'.$r['mail'].'">'.$r['name'].'</a></b>&nbsp;<span class="smalfont">';
      echo $text.'</span></td>';
      echo '</tr>';
    }
    
    $tpl->out(1);
    
    $design->footer();
    ?>


    Über Hilfe wäre ich mal wieder dankbar lächeln

    Mfg, Galle


    verwendete ilchClan Version: 1.1 O

    betroffene Homepage: externer Link


    Zuletzt modifiziert von Galle81 am 10.08.2013 - 17:49:54
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Revolution Hall Of Fame
    Registriert seit
    14.08.2006
    Beiträge
    1.688
    Beitragswertungen
    109 Beitragspunkte
    Der Ansatz ist schonmal richtig lachen
    Die Funktion db_make_sites
    db_make_sites ($page ,$where ,$limit ,$link ,$table);
    gibt eine Liste mit den Seiten zurück, nicht mehr ...

    Schritt für Schritt
    Folgendes kommt nach
    $tpl->set_ar_out($r,0);


    $page = ($menu->getA(1) == 'p' ? $menu->getE(1) : 1 );
    
    $limit = 20;
    $anfang = ($page - 1) * $limit;
    $MPL = db_make_sites($page, '', $limit, '?gbook', 'gbook');


    mit $page ... wird die spätere Seitenzahl ausgelesen...URL Zusatz -p2
    damit die PHP Datei gesagt bekommt, wann es weiter geht...

    Limit, sollte klar sein
    $anfang, ist wichtig wenn es eine andere Seite als Seite 1 ist,
    damit halt die ersten Beiträge "übersprungen" werden.

    Die $MPL geschichte sieht ja bei dir genau so aus, ist auch völlig richtig.

    Wenn du das hast, musst du nur noch den SELECT QUERY anpassen
    Damit auch dieser die LIMIT Angabe bekommt.
    $erg = db_query('SELECT name, mail, txt, id, status FROM `prefix_gbook` ORDER BY time DESC LIMIT '.$anfang.','.$limit);


    Jetzt fehlt nur noch die Template Ausgabe

    Dazu ganz am Ende nach
    $tpl->out(1);
    suchen

    diesen ersetzen mit
    $tpl->set_out('SITELINK', $MPL, 1 );

    damit bekommst du die [ 1 | 2 ] etc.


    Nun noch das Template (htm-Datei) erweitern, sprich nach dem letzten {EXPLODE}

    folgendes einfügen
    {SITELINK}

    Damit könnten die letzten Zeilen des Templates wiefolgt aussehen:
    			</form>
        </td>
    		<td width="60%" valign="top" class="Cmite">
          <table width="100%" border="0" cellpadding="5" cellspacing="0">
          
    {EXPLODE}
    
          </table>
          {SITELINK}
    		</td>
    	</tr>
    </table>



    Zuletzt modifiziert von Revolution am 11.08.2013 - 07:22:18
    Kreativ, modern, Conversion und Usability optimiert
    individuelles Webdesign für ein optimales Erscheinungsbild
    404studios
    1 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Galle81 Mitglied
    Registriert seit
    02.10.2009
    Beiträge
    195
    Beitragswertungen
    8 Beitragspunkte
    Vielen Dank Revolution für die ausführliche Antwort.
    Es hat alles super geklappt. lachen

    Php ist und bleibt für mich leider ein Phänomen lachen

    Endlich keine langen Ladezeiten mehr im Gbook ( Adminmenü ) Yes

    Mfg, Galle


    Zuletzt modifiziert von Galle81 am 11.08.2013 - 09:50:18
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Module und Modifikationen

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten