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);
?>