Seite 1 von 2
Spoiler für eine Benutzergruppe unsichtbar machen?
Verfasst: 25.03.2013 20:08
von Buchwurm
Naben allerseits,
ich versuche es nochmal.
Ich habe einen BBC Code Spoiler in meinem Forum eingebaut, und nun möcht ich das dieser Spoiler von einer Benutzergruppe (Gäste) nicht gesehen oder besser nicht geöffnet werden kann, ansonsten macht ja ein Spoiler keinen Sinn wenn Ihn jeder öffnen kann braucht man ja keinen.
BlackHawk87 hatte mir mal einen Link gegeben
viewtopic.php?f=87&t=224586
wie man es für Altersbeschrenkung machen kann, hilft mir aber leider nicht weiter da ich nicht die Kenntnis habe es so zu ändern das es für meine Vorstellung dann passen würde.
Hoffe nun hier nochmal das mir einer helfen kann da sonst wie gesagt der Spoiler keinen Sinn macht.
Mfg
Buchwurm
Re: Spoiler für eine Benutzergruppe unsichtbar machen?
Verfasst: 25.03.2013 22:48
von BNa
Edit: Falscher Link..
Re: Spoiler für eine Benutzergruppe unsichtbar machen?
Verfasst: 26.03.2013 16:28
von HabNurNeFrage
Buchwurm hat geschrieben:BlackHawk87 hatte mir mal einen Link gegeben
viewtopic.php?f=87&t=224586
wie man es für Altersbeschrenkung machen kann, hilft mir aber leider nicht weiter da ich nicht die Kenntnis habe es so zu ändern das es für meine Vorstellung dann passen würde.
Hi, ich beziehe mich mal komplett auf das zitierte Posting von Miriam:
Punkt 1.
Alles genau so machen und den letzten Codeblock (den vierten unter 1.) ersetzen durch:
Code: Alles auswählen
if (($user->data['user_id'] == ANONYMOUS) or $user->data['is_bot'])
{
$text = preg_replace('/\[intern(.*)\].*\[\/intern(.*)\]/', "<br /><span style=\"color:red;\">Nur Mitglieder sehen diese Inhalte.</span><br />", $text);
}
Punkt 2. entfällt (Du benötigst für die Gastabfrage keine neue Funktion)
Punkt 3. entfällt (den Umweg über die Sprachvariable kannst Du "Quick'n'Dirty" auch noch umgehen)
Punkt 4:
bbCode -> Nutzung:
[intern]{TEXT}[/intern]
| Ersetzung:
<span>{TEXT}</span>
Grad bei mir getestet, für gut befunden und bei uns im Board online gestellt...
Hier wird nur die Ersetzung für Gäste rot gefärbt und alle Inhalte, die man stattdessen eingeloggt zu sehen bekommt, bleiben unverändert.
LG
edit: Ich hab den Code nochmal etwas geändert, sodass die Inhalte auch für Bots nicht sichtbar sind...
Re: Spoiler für eine Benutzergruppe unsichtbar machen?
Verfasst: 26.03.2013 18:33
von BNa
Funktioniert das auch beim [quote], senden eines Beitrags per PM, Suche etc.?
Ich meine für Gruppen, weil für Gäste ist ja easy..
Re: Spoiler für eine Benutzergruppe unsichtbar machen?
Verfasst: 26.03.2013 19:48
von HabNurNeFrage
Hi,
funktioniert in [ quote ], man kann [ code ] bla bla [ /code ] damit umschließen und in PN sowie autoquoted PN, wenn man die Schaltfläche "PN" in viewtopic anklickt.
(Anm.: Leider nicht zu testen ist, ob die Ausblendung in PN funktioniert, da weder Gäste noch Bots PN sehen können

)
Vom neuen bb-Code umschlossene Begriffe werden in der Suche (sofern eingeloggt gesucht wird) gefunden.
Folgendes ist reine, ungetestete Theorie:
[theorie_start]
Wenn man das für Gruppen machen möchte, müsste man eventuell vorher noch die functions_user.php inkludieren, sofern die Funktion in der includes/functions_content.php nicht bereits present ist. Vielleicht reicht auch die globale $user Variable.
Habe es nicht getestet. Könnte man eventuell so machen:
Code: Alles auswählen
if ( !function_exists('group_memberships') )
{
include($phpbb_root_path . 'includes/functions_user.'.$phpEx);
}
Danach könnte man dann anstelle von
if ($user->data['user_id'] == ANONYMOUS)
dann vielleicht
if ($user->data['group_id'] == 'xx
')
abfragen. xx wäre dabei die ID der Gruppe.
Ob das funktioniert müsste man mal tesen. Fragt sich auch, inwieweit die Performance daurch beeinträchtigt wird...
[/theorie_end]
LG
Re: Spoiler für eine Benutzergruppe unsichtbar machen?
Verfasst: 26.03.2013 23:51
von Talk19zehn
Hi, eine ähnliche Anfrage, die u.U. noch immer ergänzend weiterhilft:
viewtopic.php?p=1143403#p1143403
Re: Spoiler für eine Benutzergruppe unsichtbar machen?
Verfasst: 27.03.2013 17:15
von Buchwurm
Hi,
hab ich soweit erledigt nur der Punkt 4 weiss ich nicht was ich da machen soll ?
Punkt 4:
bbCode -> Nutzung: [intern]{TEXT}[/intern] | Ersetzung: <span>{TEXT}</span>
Muss ich den BBC Code Spoiler verändern denn der soll ja bleiben ?
[intern]{TEXT}[/intern] <-- finde ich gar nicht
Mfg
Edit:
hab ganz vergessen das ich den Style supsilver2 benutze Sorry
Re: Spoiler für eine Benutzergruppe unsichtbar machen?
Verfasst: 28.03.2013 01:51
von HabNurNeFrage
Hi,
die Beschreibungen in diesem Thread beziehen sich auf die Erstellung eines
zusätzlichen bbCodes.
Admin-Bereich => Beiträge => bbCodes => bbCode hinzufügen
Danach hast Du dann sowohl Deinen jetzigen bbCode [spoiler] als auch den neuen [intern]
Der neue bbCode [intern] bewirkt, dass damit umschlossene Inhalte nicht für Gäste und Bots zu sehen sind.
Diesen wird stattdessen ein anderer Text angezeigt.
Wenn Du das Ganze dann auch noch als Spoiler haben willst, müsstest Du beide Codes verschachtelt nutzen,
also im Beitrag dann:
[spoiler][intern] bla bla bla, was man nur eingeloggt sehen soll [/intern][/spoiler]
Um das Ganze zu kombinieren, also beide bbCodes in einem bbCode zusammenzufassen,
müsstest Du mal den Inhalt Deiner HTML-Ersetzung aus dem Spoiler-Code hier rein kopieren.
Dazu müsste Dein jetziger [spoiler] bbCode angepasst werden, sodass alle Beiträge auch weiterhin korrekt funktionieren,
in denen der bbCode bereits verwendet wird.
ich hoffe, dass war jetzt verständlich erklärt
LG
Re: Spoiler für eine Benutzergruppe unsichtbar machen?
Verfasst: 28.03.2013 17:27
von Buchwurm
Hi,
danke für die Erklärung funktioniert soweit nur ein problem bleibt.
Und zwar wird es nur dann unsichtbar wenn man jede Zeile in Intern stellt
Beispiel:
[intern]Klick Hier [/intern] so ist es unsichtbar wenn ich aber mehere Zeilen einstellen will
[intern]Klick Hier
Klick Hier
Klick Hier[/interm] wird es so sichbar ?
Ich müste dann jede eineln also so
[intern]Klick Hier [/intern]
[intern]Klick Hier [/intern]
[intern]Klick Hier [/intern]
gibt es da noch ne Lösung mehere Zeilen (Reihen) mit einer Makierung intern zu setzen ?
Mfg
Re: Spoiler für eine Benutzergruppe unsichtbar machen?
Verfasst: 28.03.2013 18:35
von HabNurNeFrage
Hi,
schnapp Dir nochmal den Code in der functions_content.php und lösche darin die beiden <br />
Du kannst auch das erste <br /> durch <p>
und das zweite durch </p>
ersetzen...
Im Falle des Löschens der <br /> wird der rote Text im normalen Textfluss angezeigt und mit <p></p> umschlossen zu einem eigenen Absatz.
Innerhalb von Spoiler funktioniert das Ganze bei mir nicht.
Es wird dann auch für Gäste der Inhalt angezeigt, da der Spoiler-Code die Inhalte nicht erneut an das Gesamtscript sendet.
Sofern sich HTML im preg_replace () befindet, wird der spoiler-Code gar nicht mehr geparst.
Ich empfehle den neuen Code nicht in Verbindung mit Javascript-Konstrukten, die onclick ein und ausblenden.
Um das Ganze Spoilerfähig zu machen, müsste man die if-Abfrage direkt für den Spoiler-Code umschreiben.
Dafür einfach die Ausdrücke im preg_replace auf Deinen Code anpassen, also wo jetzt intern steht, mit spoiler ersetzen.
(oder wie auch immer der bbCode benannt ist, auf den sich die if-Bedingung auswirken soll)
LG