latest Thread mod Problem

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Neo007
Mitglied
Beiträge: 131
Registriert: 21.04.2003 16:07

latest Thread mod Problem

Beitrag von Neo007 »

Hi, hab mir einen Mod bissel umgeschrieben, sieht nun wie folgt aus:
<?php
// ############ Edit below ############
//$css ="http://www.acidjunky.de/2.0.4/templates ... Silver.css"; //path and name to your css_sheet - optional
$length = '18'; // length of topic title
$limit = '15'; // how many topics?
$root ='forum'; // board folder without! ending mark (if in same folder just '.')
// ############ Edit above ############
include("einstellungen.php.inc");
define('IN_PHPBB', true);
$phpbb_root_path = 'forum/'; // board folder with! ending mark (if in same folder just './')
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

@$userdata = session_pagestart($user_ip, PAGE_INDEX);
@init_userprefs($userdata);

// #### html output ####

//echo "<table width=\"95%\" cellpadding=\"1\" cellspacing=\"1\" border=\"0\" align=\"center\" border=\"1\" color=\"#002675\">";
//echo "<tr><font size=\"1\" face=\"Verdana\"><br><center>Die letzten $limit Forenbeiträge:</center></font></tr>";
?>
<table border="1" cellpadding="3" cellspacing="0" style="border-collapse: collapse" bordercolor="#<? echo"$schrift"; ?>" width="146" id="AutoNumber1">
<tr>
<td width="100%" bgcolor="#<? echo"$tbbground"; ?>"><p align="left"><font size="<?php echo"$schriftgr";?>" face="Verdana"><center>Die letzten <? echo"$limit"; ?> Forenbeiträge:</center></font></td>
</tr>
<tr>
<td width="100%" bgcolor="#<? echo"$balkenmitte_top"; ?>"><font size="<?php echo"$schriftgr";?>"" face="Verdana">
<?
// #### html output ####

$sql = "SELECT post_id FROM " . POSTS_TABLE;
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain matched posts list', '', __LINE__, __FILE__, $sql);
}
$recent_ids = array();
while( $row = $db->sql_fetchrow($result) )
{
$recent_ids[] = $row['post_id'];
}
$db->sql_freeresult($result);

$recent_forum = ( isset($HTTP_POST_VARS['forum']) ) ? intval($HTTP_POST_VARS['forum']) : -1;
if ( $recent_forum == -1 )
{
$is_auth_ary = auth(AUTH_READ, AUTH_LIST_ALL, $userdata);
$ignore_forum_sql = '';
while( list($key, $value) = each($is_auth_ary) )
{
if ( !$value['auth_read'] )
{
$ignore_forum_sql .= ( ( $ignore_forum_sql != '' ) ? ', ' : '' ) . $key;
}
}
if ( $ignore_forum_sql != '' )
{
$auth_sql .= ( $auth_sql != '' ) ? " AND f.forum_id NOT IN ($ignore_forum_sql) " : "f.forum_id NOT IN ($ignore_forum_sql) ";
}
}
if ( $recent_author == '' && $auth_sql == '' )
{
$sql = "SELECT topic_id FROM " . POSTS_TABLE . "
WHERE post_id IN (" . implode(", ", $recent_ids) . ")
$where_sql GROUP BY topic_id";
}
else
{
$from_sql = POSTS_TABLE . " p";
if ( $auth_sql != '' )
{
$from_sql .= ", " . FORUMS_TABLE . " f";
$where_sql .= " AND f.forum_id = p.forum_id AND $auth_sql";
}
$sql = "SELECT p.topic_id FROM $from_sql
WHERE p.post_id IN (" . implode(", ", $recent_ids) . ")
$where_sql GROUP BY p.topic_id";
}
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain topic ids', '', __LINE__, __FILE__, $sql);
}

$recent_ids = array();
while( $row = $db->sql_fetchrow($result) )
{
$recent_ids[] = $row['topic_id'];
}
$db->sql_freeresult($result);

$auth_results = implode(', ', $recent_ids);
$sql = "SELECT t.*, f.forum_id, f.forum_name, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_username, p2.post_username AS post_username2, p2.post_time
FROM ". TOPICS_TABLE ." t, ". FORUMS_TABLE ." f, ". USERS_TABLE ." u, ". POSTS_TABLE ." p, ". POSTS_TABLE ." p2, ". USERS_TABLE ." u2
WHERE t.topic_id IN ($auth_results)
AND t.topic_poster = u.user_id
AND f.forum_id = t.forum_id
AND p.post_id = t.topic_first_post_id
AND p2.post_id = t.topic_last_post_id
AND u2.user_id = p2.poster_id
ORDER BY t.topic_last_post_id DESC LIMIT $limit";
if ( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not obtain main information', '', __LINE__, __FILE__, $sql);
}
$line = array();
while( $row = $db->sql_fetchrow($result) )
{
$line[] = $row;
}
$db->sql_freeresult($result);

$tracking_topics = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) : array();
$tracking_forums = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) : array();
for($i = 0; $i < count($line); $i++)
{
$forum_url = append_sid("viewforum.$phpEx?" . POST_FORUM_URL . '=' . $line[$i]['forum_id']);
$forum_id = $line[$i]['forum_id'];
$topic_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . '=' . $line[$i]['topic_id']);
$topic_id = $line[$i]['topic_id'];

$orig_word = array();
$replacement_word = array();
obtain_word_list($orig_word, $replacement_word);
$word_censor = ( count($orig_word) ) ? preg_replace($orig_word, $replacement_word, $line[$i]['topic_title']) : $line[$i]['topic_title'];
$topic_title = ( strlen($line[$i]['topic_title']) < $length ) ? $word_censor : substr(stripslashes($word_censor), 0, $length) . "...";

$topic_type = ( $line[$i]['topic_type'] == POST_ANNOUNCE ) ? $lang['Topic_Announcement'] .' ': '';
$topic_type .= ( $line[$i]['topic_type'] == POST_STICKY ) ? $lang['Topic_Sticky'] .' ': '';
$topic_type .= ( $line[$i]['topic_vote'] ) ? $lang['Topic_Poll'] .' ': '';

$views = $line[$i]['topic_views'];
$replies = $line[$i]['topic_replies'];
if ( ( $replies + 1 ) > $board_config['posts_per_page'] )
{
$total_pages = ceil( ( $replies + 1 ) / $board_config['posts_per_page'] );
$goto_page = ' [ ';
$times = 1;
for($j = 0; $j < $replies + 1; $j += $board_config['posts_per_page'])
{
$goto_page .= '<a href="' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=" . $topic_id . "&start=$j") . '" >' . $times . '</a>';
if ( $times == 1 && $total_pages > 4 )
{
$goto_page .= ' ... ';
$times = $total_pages - 3;
$j += ( $total_pages - 4 ) * $board_config['posts_per_page'];
}
else if ( $times < $total_pages )
{
$goto_page .= ', ';
}
$times++;
}
$goto_page .= ' ] ';
}
else
{
$goto_page = '';
}

if ( $line[$i]['topic_status'] == TOPIC_LOCKED )
{
$folder = $images['folder_locked'];
$folder_new = $images['folder_locked_new'];
}
else if ( $line[$i]['topic_type'] == POST_ANNOUNCE )
{
$folder = $images['folder_announce'];
$folder_new = $images['folder_announce_new'];
}
else if ( $line[$i]['topic_type'] == POST_STICKY )
{
$folder = $images['folder_sticky'];
$folder_new = $images['folder_sticky_new'];
}
else
{
if ( $replies >= $board_config['hot_threshold'] )
{
$folder = $images['folder_hot'];
$folder_new = $images['folder_hot_new'];
}
else
{
$folder = $images['folder'];
$folder_new = $images['folder_new'];
}
}

if ( $userdata['session_logged_in'] )
{
if ( $line[$i]['post_time'] > $userdata['user_lastvisit'] )
{
if ( !empty($tracking_topics) || !empty($tracking_forums) || isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all']) )
{
$unread_topics = true;
if ( !empty($tracking_topics[$topic_id]) )
{
if ( $tracking_topics[$topic_id] > $line[$i]['post_time'] )
{
$unread_topics = false;
}
}
if ( !empty($tracking_forums[$forum_id]) )
{
if ( $tracking_forums[$forum_id] > $line[$i]['post_time'] )
{
$unread_topics = false;
}
}
if ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all']) )
{
if ( $HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all'] > $line[$i]['post_time'] )
{
$unread_topics = false;
}
}
if ( $unread_topics )
{
$folder_image = $folder_new;
$folder_alt = $lang['New_posts'];
$newest_img = '<a href="' . append_sid("$root/viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&view=newest") . '"><img src="'. $root.'/'.$images['icon_newest_reply'] . '" alt="' . $lang['View_newest_post'] . '" title="' . $lang['View_newest_post'] . '" border="0" /></a> ';
}
else
{
$folder_alt = ( $line[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts'];
$folder_image = $folder;
$folder_alt = $folder_alt;
$newest_img = '';
}
}
else if ( $line[$i]['post_time'] > $userdata['user_lastvisit'] )
{
$folder_image = $folder_new;
$folder_alt = $lang['New_posts'];
$newest_img = '<a href="' . append_sid("$root/viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&view=newest") . '"><img src="'. $root.'/'.$images['icon_newest_reply'] . '" alt="' . $lang['View_newest_post'] . '" title="' . $lang['View_newest_post'] . '" border="0" /></a> ';
}
else
{
$folder_image = $folder;
$folder_alt = ( $line[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts'];
$newest_img = '';
}
}
else
{
$folder_image = $folder;
$folder_alt = ( $line[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts'];
$newest_img = '';
}
}
else
{
$folder_image = $folder;
$folder_alt = ( $line[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts'];
$newest_img = '';
}

$forum_name = $line[$i]['forum_name'];

$first_time = create_date($board_config['default_dateformat'], $line[$i]['topic_time'], $board_config['board_timezone']);
$first_author = ( $line[$i]['user_id'] != ANONYMOUS ) ? '<a href="' . append_sid("$root/profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . '=' . $line[$i]['user_id']) . '" class="genmed">'.$line[$i]['username'].'</a>' : ( ($line[$i]['post_username'] != '' ) ? $line[$i]['post_username'] : $lang['Guest'] );
$last_time = create_date($board_config['default_dateformat'], $line[$i]['post_time'], $board_config['board_timezone']);
$last_author = ( $line[$i]['id2'] == ANONYMOUS ) ? ( ($line[$i]['post_username2'] != '' ) ? $line[$i]['post_username2'] . ' ' : $lang['Guest'] . ' ' ) : '<a href="' . append_sid("$root/profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . '=' . $line[$i]['id2']) . '" class="genmed">' . $line[$i]['user2'] . '</a>';
$last_url = '<a href='. append_sid("$root/viewtopic.$phpEx?" . POST_POST_URL . '=' . $line[$i]['topic_last_post_id']) . '#' . $line[$i]['topic_last_post_id'].'><img src='.$root.'/'.$images['icon_latest_reply'].' alt='.$lang['View_latest_post'].' border=\"0\" /></a>';
$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];

// #### html output ####
echo"<font size=\"1\" face=\"Verdana\"><span class=\"topictitle\"><a href=\"$root/$topic_url\" target=\"_new\" >- $topic_title</a></font><br>";
//echo "<tr><td class=\"$row_class\"><font size=\"1\" face=\"Verdana\"><span class=\"topictitle\"><a href=\"$root/$topic_url\" target=\"_new\" >- $topic_title</a></font></span></td><tr>";
//echo "<td class=\"$row_class\" align=\"right\"><span class=\"postdetails\">$replies $lang[Replies]&nbsp;<br />$views $lang[Views]</span>&nbsp;</td>";
//echo "<td class=\"$row_class\" align=\"right\" valign=\"middle\" nowrap=\"nowrap\"><span class=\"gensmall\"> $last_url $last_time&nbsp;<br />$last_author</span>&nbsp;&nbsp;</td></tr>";
// #### html output ####
}

// #### html output ####
//echo "</table>";
?></font></td>
</tr></table>
<?
// #### html output ####
?>
Problem ist nurn, dass wenn die LEute auf die Startseite gehen, in der auch diese Datei eingebunden ist, sehen sie ja die letzten aktiven threads,... siehe http://www.musiktreff.info Wenn sie dann weiter ins Forum gehen sehen sie ihre ungelesenen Beiträge nimmer, da auf der startseite schon alles als gelesen markiert wird, wie kann ich das ändern ???


Thx schon mal


Andy
Neo007
Mitglied
Beiträge: 131
Registriert: 21.04.2003 16:07

Beitrag von Neo007 »

*hochschieb*
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

*wird dran gearbeitet*

Vielleicht finde ich am Wochenende dazu Zeit... :oops:
Neo007
Mitglied
Beiträge: 131
Registriert: 21.04.2003 16:07

Beitrag von Neo007 »

ok thx

dachte dass es sicher nur ne kleinigkeit ist, aber da hab ich mich dann wohl geirrt

thx
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

Ich hab mich mal in deinem Forum registriert.. da ich das Problem bei mir nicht reproduzieren kann und es bei dir überprüfen will. :)
Neo007
Mitglied
Beiträge: 131
Registriert: 21.04.2003 16:07

Beitrag von Neo007 »

so war eine Woche in Urlaub, schon ne Lösung gefunden ?
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

Leider konnte ich das Problem bei dir auch nicht 100%ig nachvollziehen.. bei etwa 10 Besuchen wurden nur einmal die Beiträge als gelesen markiert, ansonsten blieb die Markierung immer erhalten. :-?
Da du das Topicimage ja sowieso nicht anzeigst, könntest du den oben blau-markierten Teil löschen..
Neo007
Mitglied
Beiträge: 131
Registriert: 21.04.2003 16:07

Beitrag von Neo007 »

werde ich mal testen thx
Antworten

Zurück zu „phpBB 2.0: Mod Support“