Datum des letzten Beitrags in groupcp.php
Verfasst: 13.06.2006 00:25
Ahoi,
ausgehend von dem in diesem Thread geschilderten Problem, habe ich mich mal selbst an die Arbeit gemacht - bislang allerdings ohne Erfolg. Es geht darum, in der groupcp.php eine weitere Spalte mit dem Datum des letzten Beitrags, den ein Gruppenmitglied geschrieben hat, anzuzeigen.
(Anregungen für meine Versuche habe ich mir übrigens aus der index.php und von diesem Mod geholt.)
Insbesondere habe ich folgende Stelle in der groupcp.php ersetzt:
Original:
Meine Modifikation:
Leider funktioniert mein Code nicht.
Folgende Fehler- bzw. Falschmeldungen kommen:
1. "Diese Gruppe hat keine Mitglieder." Das stimmt nicht. Die Gruppe hat schon Mitglieder. Aber nach meiner Veränderung der groupcp.php werden diese anscheinend nicht mehr "gefunden".
2.

Allerdings sollten die Gruppenmitglieder halt nach dem Datum ihres letzten Beitrags sortiert werden...
Der Mod ist zwar für die memberlist.php geschrieben worden, lässt sich aber auch für die groupcp.php heranziehen. Da der Mod nur kurz ist, erlaube ich mir mal, ihn hier wiederzugeben:
Ich wäre Euch sehr dankbar, wenn Ihr mir helfen könntet, dass die Gruppenmitglieder auch noch nach dem Datum ihres letzten Beitrags sortiert werden.
LG, IPB_Flüchtling
ausgehend von dem in diesem Thread geschilderten Problem, habe ich mich mal selbst an die Arbeit gemacht - bislang allerdings ohne Erfolg. Es geht darum, in der groupcp.php eine weitere Spalte mit dem Datum des letzten Beitrags, den ein Gruppenmitglied geschrieben hat, anzuzeigen.
(Anregungen für meine Versuche habe ich mir übrigens aus der index.php und von diesem Mod geholt.)
Insbesondere habe ich folgende Stelle in der groupcp.php ersetzt:
Original:
Code: Alles auswählen
//
// Get user information for this group
//
$sql = "SELECT u.username, u.user_id, u.user_viewemail, u.user_posts, u.user_regdate, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_msnm, ug.user_pending
FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug
WHERE ug.group_id = $group_id
AND u.user_id = ug.user_id
AND ug.user_pending = 0
AND ug.user_id <> " . $group_moderator['user_id'] . "
ORDER BY u.username";
//-- mod : group moderatorZ ----------------------------------------------------
//-- add
$sql = str_replace(', ug.user_pending', ', ug.group_moderator, ug.user_pending', $sql);
$sql = str_replace('ORDER BY', 'ORDER BY ug.group_moderator DESC,', $sql);
//-- fin mod : group moderatorZ ------------------------------------------------
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Error getting user list for group', '', __LINE__, __FILE__, $sql);
}
$group_members = $db->sql_fetchrowset($result);
$members_count = count($group_members);
$db->sql_freeresult($result);
$sql = "SELECT u.username, u.user_id, u.user_viewemail, u.user_posts, u.user_regdate, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_msnm
FROM " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug, " . USERS_TABLE . " u
WHERE ug.group_id = $group_id
AND g.group_id = ug.group_id
AND ug.user_pending = 1
AND u.user_id = ug.user_id
ORDER BY u.username";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Error getting user pending information', '', __LINE__, __FILE__, $sql);
}
Code: Alles auswählen
//
// Get user information for this group
//
$sql = "SELECT u.username, u.user_id, u.user_viewemail, u.user_posts, u.user_regdate, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_msnm, ug.user_pending, p.poster_id, p.post_time
FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug, " . POSTS_TABLE . " p
WHERE ug.group_id = $group_id
AND u.user_id = ug.user_id
AND ug.user_pending = 0
AND ug.user_id <> " . $group_moderator['user_id'] . "
AND u.user_id = p.poster_id
ORDER BY p.post_time";
//-- mod : group moderatorZ ----------------------------------------------------
//-- add
$sql = str_replace(', ug.user_pending', ', ug.group_moderator, ug.user_pending', $sql);
$sql = str_replace('ORDER BY', 'ORDER BY ug.group_moderator DESC,', $sql);
//-- fin mod : group moderatorZ ------------------------------------------------
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Error getting user list for group', '', __LINE__, __FILE__, $sql);
}
while ( $row = $db->sql_fetchrow($result) )
{
$letzterbeitrag = $row['post_time'];
$letzterbeitrag_zeit = create_date($board_config['default_dateformat'], $row['post_time'], $board_config['board_timezone']);
$letzterbeitrag = $letzterbeitrag_zeit;
}
$db->sql_freeresult($result);
//Ende Letzter Beitrag in groupcp.php
$group_members = $db->sql_fetchrowset($result);
$members_count = count($group_members);
$db->sql_freeresult($result);
$sql = "SELECT u.username, u.user_id, u.user_viewemail, u.user_posts, u.user_regdate, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_msnm, p.poster_id, p.post_time
FROM " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug, " . USERS_TABLE . " u, " . POSTS_TABLE . " p
WHERE ug.group_id = $group_id
AND g.group_id = ug.group_id
AND ug.user_pending = 1
AND u.user_id = ug.user_id
AND u.user_id = p.poster_id
ORDER BY p.post_time";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Error getting user pending information', '', __LINE__, __FILE__, $sql);
}
while ( $row = $db->sql_fetchrow($result) )
{
$letzterbeitrag = $row['post_time'];
$letzterbeitrag_zeit = create_date($board_config['default_dateformat'], $row['post_time'], $board_config['board_timezone']);
$letzterbeitrag = $letzterbeitrag_zeit;
}
$db->sql_freeresult($result);
//Ende Letzter Beitrag in groupcp.php

1. "Diese Gruppe hat keine Mitglieder." Das stimmt nicht. Die Gruppe hat schon Mitglieder. Aber nach meiner Veränderung der groupcp.php werden diese anscheinend nicht mehr "gefunden".
2.
EDIT: Dank des Mods http://www.phpbbhacks.com/download/356 habe ich jetzt zumindest schon mal das Feld "Letzter Beitrag" in der groupcp.php!Warning: mysql_fetch_array(): 30 is not a valid MySQL result resource in /home/traumma/public_html/forum/db/mysql4.php on line 381
Warning: mysql_free_result(): 30 is not a valid MySQL result resource in /home/traumma/public_html/forum/db/mysql4.php on line 526
Warning: mysql_fetch_array(): 31 is not a valid MySQL result resource in /home/traumma/public_html/forum/db/mysql4.php on line 381
Warning: mysql_free_result(): 31 is not a valid MySQL result resource in /home/traumma/public_html/forum/db/mysql4.php on line 526
Warning: Cannot modify header information - headers already sent by (output started at /home/traumma/public_html/forum/db/mysql4.php:381) in /home/traumma/public_html/forum/includes/page_header.php on line 598
Warning: Cannot modify header information - headers already sent by (output started at /home/traumma/public_html/forum/db/mysql4.php:381) in /home/traumma/public_html/forum/includes/page_header.php on line 600
Warning: Cannot modify header information - headers already sent by (output started at /home/traumma/public_html/forum/db/mysql4.php:381) in /home/traumma/public_html/forum/includes/page_header.php on line 601

Allerdings sollten die Gruppenmitglieder halt nach dem Datum ihres letzten Beitrags sortiert werden...
Der Mod ist zwar für die memberlist.php geschrieben worden, lässt sich aber auch für die groupcp.php heranziehen. Da der Mod nur kurz ist, erlaube ich mir mal, ihn hier wiederzugeben:
Code: Alles auswählen
$Id: last_post_date.txt,v 1.2 2003/07/03 12:10:25 nivisec Exp $
###############################################
## Hack Title: Add Last User Post Date to Members List
## (A phpBB2 Quickie)
## Author: Nivisec (support@nivisec.com)
## http://www.nivisec.com
## Description: Adds a new field in the members list that displays the date
## that the user last posted on. "None" will be displayed if
## the user has never posted.
##
## Compatibility: 2.0.x
##
## Support: http://www.phpbbhacks.com/forums
## Copyright: ©2003 Billy Sauls
##
###############################################
#
#-----[ OPEN ]------------------------------------------
#
memberlist.php
#
#-----[ FIND ]------------------------------------------
#
'L_POSTS' => $lang['Posts'],
#
#-----[ AFTER, ADD ]------------------------------------------
#
'L_POST_TIME' => $lang['Last_Post'] . ' ' . $lang['Time'],
#
#-----[ FIND ]------------------------------------------
#
$row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
#
#-----[ AFTER, ADD ]------------------------------------------
#
$post_time_sql = "SELECT post_time
FROM " . POSTS_TABLE . "
WHERE poster_id = " . $user_id . "
ORDER BY post_time DESC
LIMIT 1";
if ( !($post_time_result = $db->sql_query($post_time_sql)) )
{
message_die(GENERAL_ERROR, 'Error getting user last post time', '', __LINE__, __FILE__, $post_time_sql);
}
$post_time_row = $db->sql_fetchrow($post_time_result);
$last_post_time = ( isset($post_time_row['post_time']) ) ? create_date($board_config['default_dateformat'], $post_time_row['post_time'], $board_config['board_timezone']) : $lang['None'];
#
#-----[ FIND ]------------------------------------------
#
'YIM' => $yim,
#
#-----[ AFTER, ADD ]------------------------------------------
#
'LAST_POST_TIME' => $last_post_time,
#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/memberlist_body.tpl
#
#-----[ FIND ]------------------------------------------
#
<th class="thTop" nowrap="nowrap">{L_JOINED}</th>
<th class="thTop" nowrap="nowrap">{L_POSTS}</th>
#
#-----[ AFTER, ADD ]------------------------------------------
#
<th class="thTop" nowrap="nowrap">{L_POST_TIME}</th>
#
#-----[ FIND ]------------------------------------------
#
<td class="{memberrow.ROW_CLASS}" align="center" valign="middle"><span class="gensmall">{memberrow.JOINED}</span></td>
<td class="{memberrow.ROW_CLASS}" align="center" valign="middle"><span class="gen">{memberrow.POSTS}</span></td>
#
#-----[ AFTER, ADD ]------------------------------------------
#
<td class="{memberrow.ROW_CLASS}" align="center" valign="middle"><span class="gen">{memberrow.LAST_POST_TIME}</span></td>
#
#-----[ FIND ]------------------------------------------
#
<td class="catbottom" colspan="8" height="28"> </td>
#
#-----[ REPLACE ]------------------------------------------
#
<td class="catbottom" colspan="9" height="28"> </td>
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
#End

LG, IPB_Flüchtling