Topic Calendar in bestimmten Foren für ALLE ausschalten

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.
Benutzeravatar
eVo
Mitglied
Beiträge: 62
Registriert: 30.11.2003 21:22
Kontaktdaten:

Topic Calendar in bestimmten Foren für ALLE ausschalten

Beitrag von eVo »

Hallo,
ich bin gerade dabei den Topic Calendar für mein Forum anzupassen
und einzubauen.
Bis jetzt funktioniert auch alles soweit ich das lokal testen konnte,
aber bevor ich es online einbaue habe ich noch ein dringendes anliegen.

Mich nervt es tierisch das ich als Admin in JEDEM Forum wo ich ein Thema
eröffne oder einen Beitrag schreibe die Kalender Event Anzeige habe.

Gibt es einge Möglichkeit den Topic Calendar nur für ein bestimmtes Forum
zu aktivieren?

Entschuldigt wenn ich diese Option irgendwo übersehen habe!

Am einfachsten wäre es wenn es in den Foren Befugniss Einstellungen noch eine
Auswahl "Keiner" neben Alle, Privat, Reg, Admin, Mod gäbe.

Das Problem ist einfach selbst wenn ich als Befugniss "PRIVAT" verwende,
kann ich den Zugriff auf die Calendar Funktion im jeweiligen Forum für
einen Admin NICHT auf "inaktiv" schalten.
Es gibt dort nur zur auswahl "aktiv".

Weiß vielleicht jemand eine Lösung dagegen?
(es ist ja schließlich nicht üblich das sich selbst der Admin eine Funktion verweigern will)

Ich habe mich schon versucht in die /includes/auth.php und /admin/admin_forumauth.php reinzufitzen,
leider bekomme ich es nicht hin eine Art "AUTH_NONE" anzulegen.

HILFE :lol:

MfG eVo

PS:
Ich habe mich jetzt 1h durch die Permissions gefummelt und eigentlich
alles probiert und alle FAQs oder Hilfestellungen durchgelesen!
Auch die Permission Mods bringen mich nicht weiter!
http://www.23-net.org - ...the place to be!
IRC Netzwerk, Community, Merchandise
Benutzeravatar
AmigaLink
Mitglied
Beiträge: 1417
Registriert: 09.06.2003 21:56
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Ich habe mich da auch schon drüber geärgert!
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

..würde es dir reichen, wenn du den *.tpl Teil in der posting_body.tpl mit folgendem umschliesst..

Code: Alles auswählen

<!-- BEGIN switch_cal_forum -->
<!-- END switch_cal_forum -->
..und in der posting.php dann am Ende vor $template->pparse('body');
noch folgendes einfügst..

Code: Alles auswählen

if( $forum_id == '15' ) // <-- ID anpassen
{
	$template->assign_block_vars('switch_cal_forum', array());
}
Benutzeravatar
eVo
Mitglied
Beiträge: 62
Registriert: 30.11.2003 21:22
Kontaktdaten:

Beitrag von eVo »

@Acid
ja das hat wieder mal super geklappt,
es ist wirklich eine schöne und einfache lösung des problems

noch ein Hinweis für die die hier auch ihre Antwort auf das Problem finden,
wenn man die Foren IDs durch || trennt kann man auch mehrere Foren
angeben wo der Calendar Mod angezeigt werden darf.

Code: Alles auswählen

if( $forum_id == '4' || '2' ) // <-- z.B. in den Foren mit ID 4 und 2 können Events eingetragen werden
Was mich noch interessieren würde,
das ganze funktioniert nur wenn man die 2 Anweisungen vom Topic Calendar Mod
durch die neuen ersetzt, also:

Code: Alles auswählen

<!-- BEGIN switch_type_cal -->
<!-- END switch_type_cal -->
durch

Code: Alles auswählen

<!-- BEGIN switch_cal_forum -->
<!-- END switch_cal_forum -->
Somit werden ja die Permission Einstellungen vom Topic Calendar Mod
außer Kraft gesetzt.
Wenn ich aber nun die Permisson Einstellungen vom Topic Calendar Mod
weiterhin nebenbei verwenden möchte also: (rein theoretischer weise)

Code: Alles auswählen

<!-- BEGIN switch_cal_forum -->
<!-- BEGIN switch_type_cal -->

Template Code

<!-- END switch_type_cal -->
<!-- END switch_cal_forum -->
dann wird gar nichts mehr angezeigt, egal ob das forum manuell
freigeschaltet ist oder via Forum Permissions.

Gibt es da eine Möglichkeit das dies gleichzeitig möglich ist?
(wäre nur zur perfektion)

MfG & Vielen Dank
eVo
http://www.23-net.org - ...the place to be!
IRC Netzwerk, Community, Merchandise
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

aso.. wusste nicht, das da bereits eine Switch-Anweisung existiert.
Nun, z.B. könntest du in der posting.php(?) nach "switch_type_cal" suchen und dort noch die ForenID mit anbringen (Änderung an posting_body.tpl würde entfallen).
Oder du machst die Änderung an der posting_body.tpl wie beschrieben (bestehende Switch-Anweisung vom KalenderMOD nicht verändern) und änderst die obenbeschriebene Abfrage in der posting.php ein wenig ab.
if( $forum_id == '1' )
{
$template->assign_block_vars('switch_type_cal.switch_cal_forum', array());
}
..diese Abfrage müsste dann unter folgendem platziert werden..

Code: Alles auswählen

$template->assign_block_vars('switch_type_cal', array());
Benutzeravatar
eVo
Mitglied
Beiträge: 62
Registriert: 30.11.2003 21:22
Kontaktdaten:

Beitrag von eVo »

So... hab ne weile rumprobiert...

ich habe in der posting_body.tpl nichts geändert sondern so wie es der
Topic Calendar Mod standardmäßig macht stehen lassen.

In der posting.php habe ich nun rumprobieren müssen.
Ich habe Testweise das Forum mit ID 4 für Registrierte User zum Events
posten freigegeben (alle anderen Foren nur für Admins)
Ich wollte nun das Admins NUR in den Foren mit ID 4 und 2 den "Switch-Inhalt" aus der posting_body.tpl vom Calendar Mod angezeigt bekommen,
aber in allen anderen Foren dieser Inhalt verborgen bleibt

Also habe ich:

Code: Alles auswählen

if( $is_auth['auth_cal'] )
durch das ersetzt (alles andere brachte mich nicht zum Ziel)

Code: Alles auswählen

if( $is_auth['auth_cal'] && (( $forum_id == '4' ) || ( $forum_id == '2' )) )
{
$template->assign_block_vars('switch_type_cal', array());
Das blöde an der Sache ist nur ...
trotz das die User für Forum mit ID4 über die Forum Permissions freigeschaltet sind,
wird der "Switch-Inhalt" vom Calendar Mod nicht angezeigt.
(In keinem Forum, einschließlich dem mit ID4)

Ganz schön umständlich mit mir was, sorry.
Bei nur 1 Forum mit der Möglichkeit zum Event posten kann man ja die
Forum Permissions problemlos vergessen.
Doch sobald 2 Event Foren da sein sollen und nur in einem die User posten
dürfen, sind die Forum Permissions wieder notwendig.

Bevor wir hier aber zu den Feiertagen verzweifeln ... lassen wir es lieber.
Für mich reicht das ganz so wie du es gelöst hast @Acid ...
ich dachte halt nur wenn wir jetzt schon einmal dabei sind, und bevor wieder
Fragen auftauchen spiele ich gleich mal "Beta-Tester" *G*

OK, ich schreib schon wieder Bücher
Gruß eVo
http://www.23-net.org - ...the place to be!
IRC Netzwerk, Community, Merchandise
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

..hast du mal die zweite, genannte Lösung probiert? :roll:
Benutzeravatar
eVo
Mitglied
Beiträge: 62
Registriert: 30.11.2003 21:22
Kontaktdaten:

Beitrag von eVo »

*duck*
muß zugeben habs probiert ... aber könnte sein das ich nich so richtig mehr durchgesehen habe (nach meinen Buch-Postings :D)
wusste nich genau was ich nun von meinem und was von deinem nehmen sollte.

wäre am besten wenn du nochmal konkret die 2. Möglichkeit zusammenfasst bitte.

danke und gdn8
eVo
http://www.23-net.org - ...the place to be!
IRC Netzwerk, Community, Merchandise
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

Acid hat geschrieben:Oder du machst die Änderung an der posting_body.tpl wie beschrieben (bestehende Switch-Anweisung vom KalenderMOD nicht verändern) und änderst die obenbeschriebene Abfrage in der posting.php ein wenig ab.
if( $forum_id == '1' )
{
$template->assign_block_vars('switch_type_cal.switch_cal_forum', array());
}
..diese Abfrage müsste dann unter folgender Zeile platziert werden..

Code: Alles auswählen

$template->assign_block_vars('switch_type_cal', array());
;)
Benutzeravatar
eVo
Mitglied
Beiträge: 62
Registriert: 30.11.2003 21:22
Kontaktdaten:

Beitrag von eVo »

hmmm ja das wäre dann nochmal der text den ich nicht verstanden habe ;)

Nagut, also ich habe die deine Switch-Anweisung um die Switch-Anweisung
in der posting_body.tpl gemacht (wie oben von mir beschrieben).
Außerdem hab ich die modifizierte Abfrage mit switch_type_cal.switch_cal_forum
in die posting.php unter den beschriebenen Code-Teil gemacht.
Leider ohne erfolg (es wird NIE etwas angezeigt.

Hier der Ausschnitt:

Code: Alles auswählen

$topic_type_cal = '';
if ( $mode == 'newtopic' || ( $mode == 'editpost' && $post_data['first_post'] ) )
{
	if( $is_auth['auth_cal'] )
	{
		$template->assign_block_vars('switch_type_cal', array());
		if( $forum_id == '2' )
    {
      $template->assign_block_vars('switch_type_cal.switch_cal_forum', array());
    }
Und hier mal der komplette Teil in der posting.php (unmodifiziert)

Code: Alles auswählen

-- mod : calendar --------------------------------------------------------------------------------
//-- add
//
// Calendar type selection
//
$topic_type_cal = '';
if ( $mode == 'newtopic' || ( $mode == 'editpost' && $post_data['first_post'] ) )
{
	if( $is_auth['auth_cal'] )
	{
		$template->assign_block_vars('switch_type_cal', array());
	}
		$months = array(
			' ------------ ',
			$lang['datetime']['January'],
			$lang['datetime']['February'],
			$lang['datetime']['March'],
			$lang['datetime']['April'],
			$lang['datetime']['May'],
			$lang['datetime']['June'],
			$lang['datetime']['July'],
			$lang['datetime']['August'],
			$lang['datetime']['September'],
			$lang['datetime']['October'],
			$lang['datetime']['November'],
			$lang['datetime']['December'],
		);

		// get the date
		$topic_calendar_time = ( !isset($HTTP_POST_VARS['topic_calendar_year']) || (($topic_calendar_time != intval($post_data['topic_calendar_time'])) && !$is_auth['auth_cal']) ) ? intval($post_data['topic_calendar_time']) : $topic_calendar_time;
		$topic_calendar_duration = ( (!isset($HTTP_POST_VARS['topic_calendar_duration_day']) && !isset($HTTP_POST_VARS['topic_calendar_duration_hour']) && !isset($HTTP_POST_VARS['topic_calendar_duration_min']) ) || (($topic_calendar_duration != intval($post_data['topic_calendar_duration'])) && !$is_auth['auth_cal']) ) ? intval($post_data['topic_calendar_duration']) : $topic_calendar_duration;

		// get the components of the event date
		$year	= '';
		$month	= '';
		$day	= '';
		$hour	= '';
		$min	= '';
		if (!empty($topic_calendar_time))
		{
			$year	= intval( date('Y', $topic_calendar_time) );
			$month	= intval( date('m', $topic_calendar_time) );
			$day	= intval( date('d', $topic_calendar_time) );
			$hour	= intval( date('H', $topic_calendar_time) );
			$min	= intval( date('i', $topic_calendar_time) );
		}

		// get the components of the duration
		$d_day	= '';
		$d_hour	= '';
		$d_min	= '';
		if ( !empty($topic_calendar_time) && !empty($topic_calendar_duration) )
		{
			$d_dur = intval($topic_calendar_duration);
			$d_day = intval($d_dur / 86400);
			$d_dur = $d_dur - 86400 * $d_day;
			$d_hour = intval($d_dur / 3600);
			$d_dur = $d_dur - 3600 * $d_hour;
			$d_min = intval($d_dur / 60);
		}

		// raz if no date
		if ( empty($year) || empty($month) || empty($day) )
		{
			$year	= '';
			$month	= '';
			$day	= '';
			$hour	= '';
			$min	= '';
			$d_day	= '';
			$d_hour	= '';
			$d_min	= '';
		}

		// day list
		$s_topic_calendar_day = '<select name="topic_calendar_day">';
		for ($i=0; $i <= 31; $i++)
		{
			$selected = ( intval($day) == $i) ? ' selected="selected"' : '';
			$s_topic_calendar_day .= '<option value="' . $i . '"' . $selected . '>' . ( ($i == 0) ? ' -- ' : str_pad($i, 2, '0', STR_PAD_LEFT) ) . '</option>';
		}
		$s_topic_calendar_day .= '</select>';

		// month list
		$s_topic_calendar_month = '<select name="topic_calendar_month">';
		for ($i=0; $i <= 12; $i++)
		{
			$selected = ( intval($month) == $i ) ? ' selected="selected"' : '';
			$s_topic_calendar_month .= '<option value="' . $i . '"' . $selected . '>' . $months[$i] . '</option>';
		}
		$s_topic_calendar_month .= '</select>';

		// year list
		$s_topic_calendar_year = '<select name="topic_calendar_year">';

		$selected = empty($year) ? ' selected="selected"' : '';
		$s_topic_calendar_year .= '<option value="0"' . $select . '> ---- </option>';

		$start_year = ( (intval($year) > 1971 ) && (intval($year) <= date('Y', time())) ) ? intval($year)-1 : date('Y', time())-1;
		for ($i = $start_year; $i <= date('Y', time())+10; $i++)
		{
			$selected = ( intval($year) == $i) ? ' selected="selected"' : '';
			$s_topic_calendar_year .= '<option value="' . $i . '"' . $selected . '>' . $i . '</option>';
		}
		$s_topic_calendar_year .= '</select>';

		// time
		if (empty($hour) && empty($min))
		{
			$hour = '';
			$min = '';
		}
		$topic_calendar_hour	= $hour;
		$topic_calendar_min		= $min;

		// duration
		if ( empty($topic_calendar_hour) && empty($topic_calendar_min) )
		{
			$d_hour = '';
			$d_min = '';
		}
		if ( empty($d_day) && empty($d_hour) && empty($d_min) )
		{
			$d_day = '';
			$d_hour = '';
			$d_min = '';
		}
		$topic_calendar_duration_day	= $d_day;
		$topic_calendar_duration_hour	= $d_hour;
		$topic_calendar_duration_min	= $d_min;
	}
}
//-- fin mod : calendar ----------------------------------------------------------------------------
Gruß eVo
http://www.23-net.org - ...the place to be!
IRC Netzwerk, Community, Merchandise
Antworten

Zurück zu „phpBB 2.0: Mod Support“