Nickpageliste: Reduzierung der GB-Einträge der User
Verfasst: 17.11.2004 10:21
hallo.
habe es nun geschafft, wie man die gb-einträge der user auf eine bestimmte anzahl reduzieren kann.
dabei werden die ältesten einträge gelöscht.
ein problem hab ich noch: in der modifizierten nickpage_list.php hab ich in zeile 145 folgendes eingefügt:
--> die nickpage_list wird nur solange ausgeführt, bis ein user an die reihe kommt, der in meinem falle über 100 einträge hat. dann ist schluß. nun muss ich immer F5 drücken bis alle user bearbeitet wurden. es tritt weiter kein fehler auf.
wieso stoppt das script? warum muss man F5 drücken? müßte doch eigentlich normal alle user abarbeiten!?
hier die gesamte nickpage_list.php:
habe es nun geschafft, wie man die gb-einträge der user auf eine bestimmte anzahl reduzieren kann.
dabei werden die ältesten einträge gelöscht.
ein problem hab ich noch: in der modifizierten nickpage_list.php hab ich in zeile 145 folgendes eingefügt:
Code: Alles auswählen
//ab hier neu ------
//schleife wird solange ausgeführt bis 100 einträge pro user in np_gb vorhanden sind
while ($gb_entrys-101 >= 0)
{
//sql-befehl löscht älteste
$sql = " DELETE FROM phpbb_nickpagegb WHERE an = '".$uid."' ORDER BY zeit LIMIT 1 ";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not delete DB entry', '', __LINE__, __FILE__, $sql);
}
$gb_entrys--;
//end-while
}
//ende --------------
wieso stoppt das script? warum muss man F5 drücken? müßte doch eigentlich normal alle user abarbeiten!?
hier die gesamte nickpage_list.php:
Code: Alles auswählen
<?
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
//Anzeige der Nickpages pro Seite
//kann durchaus editiert werden ^^
$seiten_pro_seite = 15;
//Fixe Variablen initialisieren - nicht editieren!!
$ok = '<img src="templates/nickpage/ok.gif" border="0">';
$no = '<img src="templates/nickpage/no.gif" border="0">';
$public = '<img src="templates/nickpage/public.gif" border="0"> besuche';
$private = '<img src="templates/nickpage/privat.gif" border="0"> erst einloggen';
$i = 0;
//
//template laden
//
$template->set_filenames(array(
'list' => '../nickpage/nickpagelist.tpl',)
);
//
//Konfiguration einlesen
//
$sql = "SELECT registered_only FROM ".NICKPAGECONFIG_TABLE;
if(!$result = $db->sql_query($sql))
{
message_die(CRITICAL_ERROR, "Konnte Querrie auf Allgemeine Nickpagemod Konfiguraionstabelle nicht ausführen!", "", __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
$registered_only = $row['registered_only'];
//
//Limit
//
if($_GET['site'] != "")
{
$start= ($_GET['site']-1)*$seiten_pro_seite;
$anfang = $_GET['site'];
}
else
{
$start = 0;
$anfang = 1;
}
$limit = "LIMIT ".$start.",".$seiten_pro_seite;
//
//Seitenanzeige
//
//zaehle alle np´s
$sql = "SELECT COUNT(uid) AS zaehle FROM ".NICKPAGE_TABLE;
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Konnte Nickpage´s nicht zählen!', '', __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
$anzahl = $row['zaehle'];
$ende = ceil($anzahl/$seiten_pro_seite);
if($anfang > 1 AND $ende > $anfang)
{
$move = '<a href="?site='.($anfang -1).'">vorherige Seite</a> <a href="?site='.($anfang + 1).'">nächste Seite</a>';
}
elseif($anfang > 1 AND $ende = $anfang)
{
$move = '<a href="?site='.($anfang -1).'">vorherige Seite</a>';
}
elseif($ende > $anfang)
{
$move = '<a href="?site='.($anfang + 1).'">nächste Seite</a>';
}
//
//Auslesen der Daten
//
$sql = "SELECT a.user_id, a.username, a.user_from, a.user_website, a.user_interests, b.name, b.info, b.born, b.specialnick, b.pic, b.kreatives, b.safe FROM ".USERS_TABLE." a, ".NICKPAGE_TABLE." b WHERE b.uid=a.user_id ORDER BY a.username ASC ".$limit."";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Konnte Nickpagedaten nicht auslesen!', '', __LINE__, __FILE__, $sql);
}
while($row = $db->sql_fetchrow($result))
{
$username = $row['username'];
$uid = $row['user_id'];
if($row['user_from'] != "")
$user_from = $ok;
else
$user_from = $no;
if($row['user_website'] != "")
$user_website = $ok;
else
$user_website = $no;
if($row['user_interests'] != "")
$user_interests = $ok;
else
$user_interests = $no;
if($row['name'] != "")
$name = $ok;
else
$name = $no;
if($row['born'] != "")
$born = $ok;
else
$born = $no;
if($row['pic'] != "")
$pic = $ok;
else
$pic = $no;
if($row['safe'] != "1" AND $registered_only != "1")
$safe = '<a href="nickpage.php?user='.$username.'">'.$public.'</a>';
elseif($userdata['username'] != "Anonymous")
$safe = '<a href="nickpage.php?user='.$username.'">'.$public.'</a>';
else
$safe = $private;
//Gästebucheinträge
$sql = "SELECT COUNT(an) AS zaehle FROM ".GAESTEBUCH_TABLE." WHERE an = '".$uid."'";
if( !($result2 = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Konnte Gästebucheinträge nicht zählen!', '', __LINE__, __FILE__, $sql);
}
$row2 = $db->sql_fetchrow($result2);
$gb_entrys = $row2['zaehle'];
// ab hier neu +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//schleife wird solange ausgeführt bis 100 einträge pro user in np_gb vorhanden sind
while ($gb_entrys-101 >= 0)
{
//sql-befehl löscht älteste
$sql = " DELETE FROM phpbb_nickpagegb WHERE an = '".$uid."' ORDER BY zeit LIMIT 1 ";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not delete DB entry', '', __LINE__, __FILE__, $sql);
}
$gb_entrys--;
//end-while
}
// ende ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//Galleriepics?
$sql = "SELECT COUNT(uid) AS zaehle FROM ".GALERIE_TABLE." WHERE uid = '".$uid."'";
if( !($result2 = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Konnte Galleriepics nicht zählen!', '', __LINE__, __FILE__, $sql);
}
$row2 = $db->sql_fetchrow($result2);
$gal_pics = $row2['zaehle'];
//gerade - ungerade variable
$i++;
if ($i % 2 != 0)
{
$class = 'row1';
}
else
{
$class = 'row2';
}
$template->assign_block_vars('Nickpagelist',array(
'Username' => $username,
'Name' => $name,
'Wohnort' => $user_from,
'Webseite' => $user_website,
'Hobbies' => $user_interests,
'Alter' => $born,
'Userpic' => $pic,
'Gb_entrys' => $gb_entrys,
'Gal_pics' => $gal_pics,
'Safe' => $safe,
'Class' => $class,
));
}
$template->assign_vars(array(
'L_Username' => $lang['Username'], //ist schon da
'L_Wohnort' => $lang['Location'], //ist schon da -> profilblock
'L_Webseite' => $lang['Website'], //ist schon da -> profilblock
'L_Hobbies' => $lang['Interests'],//ist schon da -> profilblock
'L_Name' => $lang['Name'],
'L_Alter' => $lang['Alter'],
'L_Userpic' => $lang['Userpic'],
'L_Eintraege' => $lang['Eintraege'],
'L_Bilder' => $lang['Bilder'],
'L_Zugang' => $lang['Zugang'],
'Nickpages' => $anzahl,
'Move' => $move,
));
//
//parsen
//
$template->pparse('list');
//
//footer
//
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>