globale Bekanntmachung für Gäste zum Lesen sperren[erledigt]

Fragen zur Bedienung von phpBB 3.0.x, Probleme bei der Benutzung und alle weiteren Fragen inkl. Update auf die neuste phpBB 3.0.14 Version
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Ferrum
Mitglied
Beiträge: 10
Registriert: 05.09.2005 23:30

globale Bekanntmachung für Gäste zum Lesen sperren[erledigt]

Beitrag von Ferrum »

Für meine Mitglieder gibt es einen Beitrag, der einige wichtige Infos und Links enthält und für alle aus jedem Forum heraus mit einem Klick verfügbar sein soll. Die Deklaration als globale Bekanntmachung bietet sich hier zwar hervorragend an, hat jedoch den Nachteil, dass dieser Beitrag nun allerdings auch für die Gäste des Forums einsehbar ist. Doch genau dies will ich aber vermeiden.

Leider gelang es mir nicht das Lesen einer globalen Bekanntmachung für Gäste zu sperren. Gibt es dennoch eine Möglichkeit?
Zuletzt geändert von Ferrum am 24.09.2008 20:28, insgesamt 1-mal geändert.
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12197
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Beitrag von Mahony »

Hallo
Du kannst die topic_id der globalen Bekanntmachung vom lesen für Gäste ausschließen.

Suche in der viewtopic.php

Code: Alles auswählen

$sort_dir	= request_var('sd', ((!empty($user->data['user_post_sortby_dir'])) ? $user->data['user_post_sortby_dir'] : 'a'));
Füge danach ein

Code: Alles auswählen

//Beginn globale Bekanntmachung die von BOTS und nicht angemeldeten Usern nicht gesehen werden  duerfen
if ((!$user->data['is_registered'] && $topic_id == xxx) || ($user->data['is_bot'] && $topic_id == xxx))
    {
       trigger_error('NOT_AUTHORISED');
    }
//End globale Bekanntmachung die von BOTS und nicht angemeldeten Usern nicht gesehen werden  duerfen
Anstelle von xxx trägst du die topic_id der jeweiligen globalen Bekanntmachung ein. Die topic_id findest du in der Adresszeile deines Browsers (z.b. t=177667, wobei dann 177667 die einzutragende topic_id wäre.

Das sollte BOTs und nicht angemeldete User vom lesen der globalen Bekanntmachung ausschließen.

Achtung: Ich habe das jetzt nicht getestet (das sollte aber eigentlich funktionieren).

Grüße: Mahony
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Beitrag von nickvergessen »

Man kann auch alle Globalen Bekanntmachungen auf einmal sperren:
finde:

Code: Alles auswählen

// This is for determining where we are (page)
davor einfügen:

Code: Alles auswählen

if (((!$user->data['is_registered'] || $user->data['is_bot']) && $topic_data['topic_type'] == POST_GLOBAL))
{
	trigger_error('NOT_AUTHORISED');
}
(und Mahony man benutzt kein utf8 in php-Dateien als Kommentare ;) )
Zuletzt geändert von nickvergessen am 24.09.2008 11:58, insgesamt 1-mal geändert.
kein Support per PN
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12197
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Beitrag von Mahony »

Hallo
Man kann auch alle Globalen Bekanntmachungen auf einmal sperren
Das hätte dann allerdings den Nachteil, dass man (falls benötigt) keine globale Bekanntmachung für die Gäste mehr zur Verfügung stellen könnte.

Aber nun stehen ja beide Lösungen zur Verfügung und jeder kann sich die für ihn geeignete Lösung auswählen. :P
(und Mahony man benutzt kein utf8 in php-Dateien als Kommentare )
Danke für den Hinweis. :oops: :P



Grüße: Mahony
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Ferrum
Mitglied
Beiträge: 10
Registriert: 05.09.2005 23:30

Beitrag von Ferrum »

Also erstmal vielen herzlichen Dank an euch beide! Aber da Mahonys Vorschlag eben noch die o.g. Option offen lässt, werde ich vorerst mal diesen verwenden.

Dennoch ist der Beitrag bei mir in die Favoriten reingepinnt worden, da ich schon länger erfolglos nach solch einer Möglichkeit gesucht hatte und es immer wieder mal vorkommen kann, dass einer eurer beiden Vorschläge mal wieder zum Einsatz kommen könnte. Nun gibt es alles zusammen innerhalb eines Beitrags. :grin:

Doch back to topic:

Auch wenn Mahonys Vorschlag nun zwar im Prinzip genau das macht was ich gesucht hatte, so hätte ich nun dennoch noch eine ergänzende Frage zu einer kleinen Schönheitskorrektur. Das Topic ist zwar auch trotzdem weiterhin für Gäste ersichtlich, lässt sich von ihnen aber nicht aufrufen, bzw. einsehen.

Mit der vorgeschlagenen Möglichkeit bekommt der Gast beim Klick auf solch ein Topic nun die folgende Meldung:
Information

Sie haben keine Berechtigung, diesen Bereich zu betreten.
Eleganter fände ich es jedoch wenn statt dessen gleich die normale Standard-Info mit Anmeldungsmöglichkeit angezeigt würde:
Um Beiträge in diesem Forum anzusehen, müssen Sie auf diesem Board registriert und angemeldet sein.

Benutzername:
Passwort:
Lässt sich dies damit auch irgendwie bewerkstelligen?
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12197
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Beitrag von Mahony »

Ferrum hat geschrieben: Mit der vorgeschlagenen Möglichkeit bekommt der Gast beim Klick auf solch ein Topic nun die folgende Meldung:
Information

Sie haben keine Berechtigung, diesen Bereich zu betreten.
Eleganter fände ich es jedoch wenn statt dessen gleich die normale Standard-Info mit Anmeldungsmöglichkeit angezeigt würde:
Um Beiträge in diesem Forum anzusehen, müssen Sie auf diesem Board registriert und angemeldet sein.

Benutzername:
Passwort:
Lässt sich dies damit auch irgendwie bewerkstelligen?
Ja, auch das ist möglich.

Anstelle von

Code: Alles auswählen

//Beginn globale Bekanntmachung die von BOTS und nicht angemeldeten Usern nicht gesehen werden  duerfen
if ((!$user->data['is_registered'] && $topic_id == xxx) || ($user->data['is_bot'] && $topic_id == xxx))
    {
       trigger_error('NOT_AUTHORISED');
    }
//End globale Bekanntmachung die von BOTS und nicht angemeldeten Usern nicht gesehen werden  duerfen
trägst du dann das hier ein

Code: Alles auswählen

//Beginn globale Bekanntmachung die von BOTS und nicht angemeldeten Usern nicht gesehen werden  duerfen
if ((!$user->data['is_registered'] && $topic_id == xxx) || ($user->data['is_bot'] && $topic_id == xxx))
    {
   // Setup user environment so we can process lang string
   $user->setup('viewtopic');
        login_box('', $user->lang['LOGIN_VIEWTOPIC']);
    }
//End globale Bekanntmachung die von BOTS und nicht angemeldeten Usern nicht gesehen werden  duerfen

Grüße: Mahony
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Ferrum
Mitglied
Beiträge: 10
Registriert: 05.09.2005 23:30

Beitrag von Ferrum »

Erstklassig! Funktioniert perfekt! Echt genial!

Vielen, vielen Dank!
Sternchen211
Mitglied
Beiträge: 32
Registriert: 11.11.2008 11:37

Re: globale Bekanntmachung für Gäste zum Lesen sperren[erledigt]

Beitrag von Sternchen211 »

Hallo,

ich würd den code auch gerne nutzen....aber ich finde in der viewtopic.php nicht die stelle wo es eingefügt werden soll :o

LG
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12197
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: globale Bekanntmachung für Gäste zum Lesen sperren[erledigt]

Beitrag von Mahony »

Hallo
Füge den Code vor

Code: Alles auswählen

$update        = request_var('update', false);

/**
* @todo normalize?
*/  
ein.

Grüße: Mahony
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Sternchen211
Mitglied
Beiträge: 32
Registriert: 11.11.2008 11:37

Re: globale Bekanntmachung für Gäste zum Lesen sperren[erledigt]

Beitrag von Sternchen211 »

Danke :D Habs gefunden!
Antworten

Zurück zu „[3.0.x] Administration, Benutzung und Betrieb“