Seite 1 von 2
[request] neue Beiträge pic 4 1 Forum in overall_header?!
Verfasst: 18.10.2002 12:41
von K
high
mal wieder eine Frage von mir
wir haben ein Forum welches News heisst (sehr originell

) .. und die News daraus werden in der news.php angezeigt für die ein Link+Icon in der overall_h.. platziert ist.
Jetzt hatte ich gerade die Vorstellung, wie praktisch es doch wäre, wenn das Symbol zum Link (in der overall_head).. sich bei neuen Beiträgen verändern liesse (a la
[ externes Bild ] ->
[ externes Bild ] ) also wie vor 'm Originalforum für eingeloggte Users...
.. war das zu verstehen?!?
yo. Voller Hoffnung auf 'n Tip
verbleib' ich ers'ma'
gruss
K
Verfasst: 18.10.2002 14:52
von saerdnaer
welchen newshack hast du denn? und was für eine forum id hat dein newsforum?
ah
Verfasst: 18.10.2002 15:16
von Gast
deinen

(Vers. 1.4.1)
und die topic_id ist 48
gruss
K
Verfasst: 18.10.2002 15:18
von K
.. einloggn vergessen

Verfasst: 18.10.2002 16:18
von saerdnaer
forum id nicht topic id...
also öffne die language/xxx/lang_main.php und füge vor ?> ein:
Code: Alles auswählen
$lang['News'] = 'News';
$lang['News_new'] = '(neue) News';
dann öffne die templates/xxx/xxx.cfg und füge vor ?> folgendes ein:
Code: Alles auswählen
$images['news'] = "$current_template_images/news.gif";
$images['news'] = "$current_template_images/news_new.gif";
dann öffne die includes/page_header.php und füge vor
Code: Alles auswählen
//
// The following assigns all _common_ variables that may be used at any point
// in a template.
//
folgendes ein:
Code: Alles auswählen
// news forum id
$news_forum_id = 1;
$unread_topics = false;
if ( $userdata['session_logged_in'] )
{
$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();
$sql = "SELECT t.forum_id, t.topic_id, p.post_time
FROM " . TOPICS_TABLE . " t, " . POSTS_TABLE . " p
WHERE p.post_id = t.topic_last_post_id
AND p.post_time > " . $userdata['user_lastvisit'] . "
AND t.topic_moved_id = 0
AND t.forum_id = $news_forum_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query new topic information', '', __LINE__, __FILE__, $sql);
}
$new_topic_data = array();
while( $topic_data = $db->sql_fetchrow($result) )
{
$new_topic_data[$topic_data['forum_id']][$topic_data['topic_id']] = $topic_data['post_time'];
}
if ( !empty($new_topic_data[$news_forum_id]) )
{
$forum_last_post_time = 0;
while( list($check_topic_id, $check_post_time) = @each($new_topic_data[$news_forum_id]) )
{
if ( empty($tracking_topics[$check_topic_id]) )
{
$unread_topics = true;
$forum_last_post_time = max($check_post_time, $forum_last_post_time);
}
else
{
if ( $tracking_topics[$check_topic_id] < $check_post_time )
{
$unread_topics = true;
$forum_last_post_time = max($check_post_time, $forum_last_post_time);
}
}
}
if ( !empty($tracking_forums[$news_forum_id]) )
{
if ( $tracking_forums[$news_forum_id] > $forum_last_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'] > $forum_last_post_time )
{
$unread_topics = false;
}
}
}
}
$news_img = ( $unread_topics ) ? $images['news_new'] : $images['news'];
$news_txt = ( $unread_topics ) ? $lang['News_new'] : $lang['News'];
und dann musst du noch die grafiken für neue news (news_new.gif) und das andere (news.gif) icon in templates/xxx/images/ abspeichern. uns schließlich must du deinen link noch dementsprechend abändern. da ich nicht weiß wie du ihn gemacht hast musst du mir mal den code des links zeigen (aus der overall_header.tpl)...
ah
Verfasst: 19.10.2002 12:47
von K
yo
bis jetze siehts so aus:
<div align="center"><span class="mainmenu"><a href="./news.php" class="mainmenu"><img src="templates/subSilver/images/news.gif" width="12" height="13" border="0" align="top" alt="News" hspace="3" />News</a> (...)usw
ich dachte, ich wär schlau, und hab nach dem text noch n
'NEWS_IMG' => $news_img,
in die page_header reingematscht, und wollte dieses dann per
<img src="{NEWS_IMG}" (...)
in die overall_tpl einbinden.. gut so ?
ich hatte das gestern mal probiert, muss aber irgndwas falsch gemacht hab'n.. desw. lieber nochmal nen fachman guckn lassn
___
achso..den
$lang['News'] = 'News';
$lang['News_new'] = '(neue) News';
und
$news_txt = ( $unread_topics ) ? $lang['News_new'] : $lang['News'];
kann ich doch fehlen lassen, wenn ich den Text nicht ändern möcht, oder?
will ja nur'n Wechselbild
vielen Dank (mal wieda) 4 deine Hilfe

Verfasst: 20.10.2002 09:16
von saerdnaer
das mit der img stimmt...
ja den text kannst du weglassen...
funnktionerts jetzt oder nicht?
achja soll sich das ungelesen symbol auf gelesen zurücksetzen wenn man die news.php aufruft?
Verfasst: 20.10.2002 12:03
von K
hmm
jetzt werden in der index.php keine neue_Beiträge symbole mehr bei neuen Beiträgen angezeigt..
und das symbol vor den news signalisiert dafür neue posts wo gar keine sind
ich hab alles so gemacht wie du sagtest (glaubich

)
ausser diese zeile:
$images['news'] = "$current_template_images/news_new.gif";
dafür nahm ich
$images['news'] = "$current_template_images/newer.gif";
aber das ist vermutl. nicht das Problem
ne idee?
achso.. das mit dem nachm lesen zurücksetzn wär natürlich auch schwer praktisch.. aber scheint ja doch janz schön kompliziert zu sein
peace
K
Verfasst: 21.10.2002 15:28
von saerdnaer
okay lösch alles bis auf das nach der letzten klammer aus der page_header raus und schreib dafür rein:
dann öffne de functions.php und füge am ende vor ?> folgendes ein:
Code: Alles auswählen
function new_news()
{
global $userdata, $board_config, $db, $HTTP_COOKIE_VARS;
$unread_topics = false;
if ( $userdata['session_logged_in'] )
{
$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();
$sql = "SELECT t.forum_id, t.topic_id, p.post_time
FROM " . TOPICS_TABLE . " t, " . POSTS_TABLE . " p
WHERE p.post_id = t.topic_last_post_id
AND p.post_time > " . $userdata['user_lastvisit'] . "
AND t.topic_moved_id = 0
AND t.forum_id = $news_forum_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query new topic information', '', __LINE__, __FILE__, $sql);
}
$new_topic_data = array();
while( $topic_data = $db->sql_fetchrow($result) )
{
$new_topic_data[$topic_data['forum_id']][$topic_data['topic_id']] = $topic_data['post_time'];
}
if ( !empty($new_topic_data[$news_forum_id]) )
{
$forum_last_post_time = 0;
while( list($check_topic_id, $check_post_time) = @each($new_topic_data[$news_forum_id]) )
{
if ( empty($tracking_topics[$check_topic_id]) )
{
$unread_topics = true;
$forum_last_post_time = max($check_post_time, $forum_last_post_time);
}
else
{
if ( $tracking_topics[$check_topic_id] < $check_post_time )
{
$unread_topics = true;
$forum_last_post_time = max($check_post_time, $forum_last_post_time);
}
}
}
if ( !empty($tracking_forums[$news_forum_id]) )
{
if ( $tracking_forums[$news_forum_id] > $forum_last_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'] > $forum_last_post_time )
{
$unread_topics = false;
}
}
}
}
return $unread_topics;
}
Verfasst: 20.11.2002 22:23
von Gast
http://www.flugzeuginformation.de/php/index.php guckt euch mal oben den news bereich an wie müste ich da vor gehen ? ich will das auch so hin bekommen !