Seite 1 von 1
globale Bekanntmachung für Gäste zum Lesen sperren[erledigt]
Verfasst: 24.09.2008 00:01
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?
Verfasst: 24.09.2008 01:40
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
Verfasst: 24.09.2008 11:28
von nickvergessen
Man kann auch alle Globalen Bekanntmachungen auf einmal sperren:
finde:
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

)
Verfasst: 24.09.2008 11:46
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.
(und Mahony man benutzt kein utf8 in php-Dateien als Kommentare )
Danke für den Hinweis.
Grüße: Mahony
Verfasst: 24.09.2008 18:17
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.
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?
Verfasst: 24.09.2008 20:08
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
Verfasst: 24.09.2008 20:13
von Ferrum
Erstklassig! Funktioniert perfekt! Echt genial!
Vielen, vielen Dank!
Re: globale Bekanntmachung für Gäste zum Lesen sperren[erledigt]
Verfasst: 25.07.2009 00:13
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
LG
Re: globale Bekanntmachung für Gäste zum Lesen sperren[erledigt]
Verfasst: 25.07.2009 00:30
von Mahony
Hallo
Füge den Code vor
Code: Alles auswählen
$update = request_var('update', false);
/**
* @todo normalize?
*/
ein.
Grüße: Mahony
Re: globale Bekanntmachung für Gäste zum Lesen sperren[erledigt]
Verfasst: 25.07.2009 01:01
von Sternchen211
Danke

Habs gefunden!