[request] neue Beiträge pic 4 1 Forum in overall_header?!

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
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.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
K
Mitglied
Beiträge: 49
Registriert: 11.12.2001 01:00
Kontaktdaten:

[request] neue Beiträge pic 4 1 Forum in overall_header?!

Beitrag von K »

high

mal wieder eine Frage von mir :D

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
-.-
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

welchen newshack hast du denn? und was für eine forum id hat dein newsforum?

ah
Gast

Beitrag von Gast »

deinen :D (Vers. 1.4.1)

und die topic_id ist 48

gruss
K
Benutzeravatar
K
Mitglied
Beiträge: 49
Registriert: 11.12.2001 01:00
Kontaktdaten:

Beitrag von K »

.. einloggn vergessen ;)
-.-
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag 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
Benutzeravatar
K
Mitglied
Beiträge: 49
Registriert: 11.12.2001 01:00
Kontaktdaten:

Beitrag 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>&nbsp;&nbsp; (...)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 :wink:
___

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 :D
-.-
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag 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?
Benutzeravatar
K
Mitglied
Beiträge: 49
Registriert: 11.12.2001 01:00
Kontaktdaten:

Beitrag 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? :roll:


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 :D

peace
K
-.-
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

okay lösch alles bis auf das nach der letzten klammer aus der page_header raus und schreib dafür rein:

Code: Alles auswählen

$unread_topics = new_news();
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;
}
Gast

Beitrag 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 !
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“