Display Single Posts on ezPortal per Link

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Antworten
Benutzeravatar
cbrkiter
Beiträge: 170
Registriert: Fr 26.Nov, 2004 01:30
Kontaktdaten:

Display Single Posts on ezPortal per Link

Beitrag von cbrkiter »

Ich habe den MOD schon lange in meinem Board. Wir nutzen den hauptsächlich in internen Foren, um den unterschiedlichen Gruppen direkt auf dem Portal nach dem Login aktuelle Mitteilungen für den nächsten Dienst anzuzeigen. Andersrum sagen mir die Gruppenführer, ich soll für ihre Jungs mal eben den von ihnen geschriebenen Beitrag auf das Portal bringen. Vorab: Es klappt alles wunderbar. Mich störte aber bisher immer, dass ich nach den Diensten immer die ganzen Beiträge wieder editieren muss, um den Beitrag wieder vom Portal zu nehmen bzw. erst die Beiträge der GrFüs editieren muss. Ich war der Meinung, dass das auch schneller gehen muss (also ein paar klicks weniger).

Ich habe daher mal versucht die vietopic.php und modcp.php zu erweitern. Mein Ziel habe ich nun auch erreicht. Bin mir aber nicht sicher, ob ich nun alle sicherheitsrelevanten Dinge beachtet habe. Könntet Ihr Profis da mal drüber schauen, damit ich mir auch sicher sein kann, dass es nur von den gewollten Moderatoren und Admins ausgeführt werden kann? Also, gemacht habe ich folgendes:

Code: Alles auswählen

#-----[ OPEN ]------------------------------------------------
#
modcp.php

#-----[ FIND ]------------------------------------------------
#
	case 'lock':

#-----[ BEFORE, ADD ]-----------------------------------------
#
	case 'postportal':
		if ( !$topic_id )
		{
			message_die(GENERAL_MESSAGE, $lang['None_selected']);
		}
		
		if ( !$post_id )
		{
			message_die(GENERAL_MESSAGE, $lang['No_such_post']);
		}

		$sql = "UPDATE " . POSTS_TABLE . " SET post_portal = 1 WHERE post_id = $post_id AND forum_id = $forum_id AND post_portal = 0";

		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not update posts table', '', __LINE__, __FILE__, $sql);
		}

		if ( !empty($post_id) )
		{
			$redirect_page = "viewtopic.$phpEx?" . POST_POST_URL . "=$post_id#$post_id";
			$message = sprintf($lang['Click_view_message'], '<a href="' . $redirect_page . '">', '</a>');
		}
		elseif ( !empty($topic_id) )
		{
			$redirect_page = "viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&sid=" . $userdata['session_id'];
			$message = sprintf($lang['Click_return_topic'], '<a href="' . $redirect_page . '">', '</a>');
		}
		else
		{
			$redirect_page = "modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id&sid=" . $userdata['session_id'];
			$message = sprintf($lang['Click_return_modcp'], '<a href="' . $redirect_page . '">', '</a>');
		}

		$message = $message . '<br \><br \>' . sprintf($lang['Click_return_forum'], '<a href="' . "viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&sid=" . $userdata['session_id'] . '">', '</a>');

		$template->assign_vars(array(
			'META' => '<meta http-equiv="refresh" content="3;url=' . $redirect_page . '">')
		);
	
		message_die(GENERAL_MESSAGE, $lang['Post_portal_ON'] . '<br /><br />' . $message);

		break;

	case 'unpostportal':
		if ( !$topic_id )
		{
			message_die(GENERAL_MESSAGE, $lang['None_selected']);
		}
		
		if ( !$post_id )
		{
			message_die(GENERAL_MESSAGE, $lang['No_such_post']);
		}

		$sql = "UPDATE " . POSTS_TABLE . " SET post_portal = 0 WHERE post_id = $post_id AND forum_id = $forum_id AND post_portal = 1";

		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not update posts table', '', __LINE__, __FILE__, $sql);
		}

		if ( !empty($post_id) )
		{
			$redirect_page = "viewtopic.$phpEx?" . POST_POST_URL . "=$post_id#$post_id";
			$message = sprintf($lang['Click_view_message'], '<a href="' . $redirect_page . '">', '</a>');
		}
		elseif ( !empty($topic_id) )
		{
			$redirect_page = "viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&sid=" . $userdata['session_id'];
			$message = sprintf($lang['Click_return_topic'], '<a href="' . $redirect_page . '">', '</a>');
		}
		else
		{
			$redirect_page = "modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id&sid=" . $userdata['session_id'];
			$message = sprintf($lang['Click_return_modcp'], '<a href="' . $redirect_page . '">', '</a>');
		}

		$message = $message . '<br \><br \>' . sprintf($lang['Click_return_forum'], '<a href="' . "viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&sid=" . $userdata['session_id'] . '">', '</a>');

		$template->assign_vars(array(
			'META' => '<meta http-equiv="refresh" content="3;url=' . $redirect_page . '">')
		);
	
		message_die(GENERAL_MESSAGE, $lang['Post_portal_OFF'] . '<br /><br />' . $message);

		break;

#-----[ OPEN ]------------------------------------------------
#
viewtopic.php

#-----[ FIND ]------------------------------------------------
#
	if ( $is_auth['auth_mod'] )
	{
		$temp_url = "modcp.$phpEx?mode=ip&" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&" . POST_TOPIC_URL . "=" . $topic_id . "&sid=" . $userdata['session_id'];
		$ip_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_ip'] . '" alt="' . $lang['View_IP'] . '" title="' . $lang['View_IP'] . '" border="0" /></a>';
		$ip = '<a href="' . $temp_url . '">' . $lang['View_IP'] . '</a>';

		$temp_url = "posting.$phpEx?mode=delete&" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&sid=" . $userdata['session_id'];
		$delpost_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_delpost'] . '" alt="' . $lang['Delete_post'] . '" title="' . $lang['Delete_post'] . '" border="0" /></a>';
		$delpost = '<a href="' . $temp_url . '">' . $lang['Delete_post'] . '</a>';


#-----[ AFTER, ADD ]-----------------------------------------
#
		$temp_url = ($post_portal != '' ) ? "modcp.$phpEx?mode=unpostportal&" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&" . POST_TOPIC_URL . "=" . $topic_id . "&sid=" . $userdata['session_id'] : "modcp.$phpEx?mode=postportal&" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&" . POST_TOPIC_URL . "=" . $topic_id . "&sid=" . $userdata['session_id'];
		$postportal_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_post_portal'] . '" alt="' . $lang['Post_portal'] . '" title="' . $lang['Post_portal'] . '" border="0" /></a>';
		$postportal = '<a href="' . $temp_url . '">' . $lang['Post_portal'] . '</a>';

#-----[ FIND ]------------------------------------------------
#
		'DELETE' => $delpost,

#-----[ AFTER, ADD ]-----------------------------------------
#
		'POSTPORTAL_IMG' => $postportal_img,
POSTPORTAL_IMG habe ich natürlich noch irgendwo in der viewtopic.tpl eingebaut und die Variabeln $lang und $images erweitert. Habe also bei jedem Post ein kleines Icon.

Am wichtigsten wäre jetzt also für mich, muss ich in der modcp.php noch irgendwelche Dinge zur Sicherheit abfragen?


PS: Die hier genannte Gruppen oder GruFüs haben nichts mit irgendwelchen Gruppenfunktionen des phpBB zu tun.
1. 'Man muss das Unm?gliche versuchen, um das M?gliche zu erreichen!' (Hermann Hesse)
2. 'The best way to learn something is to get your hands dirty and do it!' (keine Ahnung))
3. http://www.thw-kamen-bergkamen.de
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Du kannst Dir sicher sein, daß
A. Diesen Link nur Mods und Admins zu sehen bekommen
und
B. auch nur diese benutzen können.

Von daher ist dieses Snippet (ich verschiebe es mal) okay...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
cbrkiter
Beiträge: 170
Registriert: Fr 26.Nov, 2004 01:30
Kontaktdaten:

Beitrag von cbrkiter »

Dankeee
1. 'Man muss das Unm?gliche versuchen, um das M?gliche zu erreichen!' (Hermann Hesse)
2. 'The best way to learn something is to get your hands dirty and do it!' (keine Ahnung))
3. http://www.thw-kamen-bergkamen.de
Antworten