Spoiler für eine Benutzergruppe unsichtbar machen?

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.
Buchwurm
Mitglied
Beiträge: 270
Registriert: 12.02.2013 17:31

Re: Spoiler für eine Benutzergruppe unsichtbar machen?

Beitrag von Buchwurm »

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...

Hi,
hab beides versucht aber wenn ich alles Makiere ist es bei beiden für Gäste sichtbar dann.
Also wieder einzeln.
Benutzeravatar
HabNurNeFrage
Ehemaliges Teammitglied
Beiträge: 1627
Registriert: 17.01.2010 20:22
Wohnort: An der Ostsee
Kontaktdaten:

Re: Spoiler für eine Benutzergruppe unsichtbar machen?

Beitrag von HabNurNeFrage »

Hi,

nach ausgiebigem Testen und Rumprobieren komme ich zu folgendem Schluss:
Man kann alles durcheinander reinpacken und auch verschiedene Kombinationen aus bbCode-Verschachtelungen damit verbergen,
solange keine Umbrüche innerhalb des Codes gesetzt sind, also wenn beim Verfassen des Inhaltes innehalb des Codes nicht Enter gedrückt wird.
Sowie ein Umbruch durch Enter erfolgt, wird zwar geparsed, aber nicht mehr vor Gästen verborgen. (außer der Umbruch ist innerhalb von [ code ] )

Eine Möglichkeit, Umbrüche innerhalb des Codes einzufügen, ist ein weiterer neuer bbCode, der <br /> erzeugt.
Ist aber eher unwahrscheinlich, dass die User sich daran erinnern, dass darin dieser bbCode zum Umbrechen genutzt werden muss.

Eine zweite Möglichkeit wäre noch das Ersetzen aller Umbrüche durch je ein Leerzeichen oder <br />`s,
indem man das Tabellenfeld "first_pass_replace" in der Tabelle "phpbb_bbcodes" entsprechend anpassen würde.
Leider ist der Wert in einem Blob gespeichert und meine Kenntnisse reichen nicht zur Anpassung des dortigen Inhaltes.
Warum wird da eigentlich für einen relativ kurzen Text ein Blob verwendet? :roll:

Vielleicht weiß ja einer der Cracks hier, mit welchem SQL-Befehl und mit welchem Inhalt das Feld angepasst werden könnte...

LG
| HomeStory.org - the friendly Community | Forum für alle Lebenslagen | <"}))}~ | Nicht nachmachen: Meine phpBB Spielereien |
var shoppen = geld.replace (/geld/g, 'bloedsinn'); if (geld < 1) { return home; };
Buchwurm
Mitglied
Beiträge: 270
Registriert: 12.02.2013 17:31

Re: Spoiler für eine Benutzergruppe unsichtbar machen?

Beitrag von Buchwurm »

Naja ich setzt die 3 Zeilen in einer zusammen dann klappt das ja.

Hab vielen Dank für deine Hilfe

Gruß
Buchwurm
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: Spoiler für eine Benutzergruppe unsichtbar machen?

Beitrag von BNa »

Buchwurm hat geschrieben: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
Sollte so zu lösen sein

Statt
HabNurNeFrage hat geschrieben:

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);
    }
mal so probieren
HabNurNeFrage hat geschrieben:

Code: Alles auswählen

if (($user->data['user_id'] == ANONYMOUS) or $user->data['is_bot'])
    {
    $text = preg_replace('/\[intern(.*)\].*\[\/intern(.*)\]/is', "<br /><span style=\"color:red;\">Nur Mitglieder sehen diese Inhalte.</span><br />", $text);
    }
Bezieht sich auf dieses Post: viewtopic.php?f=74&t=227295#p1297777
Benutzeravatar
HabNurNeFrage
Ehemaliges Teammitglied
Beiträge: 1627
Registriert: 17.01.2010 20:22
Wohnort: An der Ostsee
Kontaktdaten:

Re: Spoiler für eine Benutzergruppe unsichtbar machen?

Beitrag von HabNurNeFrage »

Hi...

PERFEKT - Tausend Dank 8)

Was bewirkt das "is"?

LG
| HomeStory.org - the friendly Community | Forum für alle Lebenslagen | <"}))}~ | Nicht nachmachen: Meine phpBB Spielereien |
var shoppen = geld.replace (/geld/g, 'bloedsinn'); if (geld < 1) { return home; };
Buchwurm
Mitglied
Beiträge: 270
Registriert: 12.02.2013 17:31

Re: Spoiler für eine Benutzergruppe unsichtbar machen?

Beitrag von Buchwurm »

Dem kann ich mich nur anschliessen, 1000 DANK

Mfg
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: Spoiler für eine Benutzergruppe unsichtbar machen?

Beitrag von BNa »

HabNurNeFrage hat geschrieben:Was bewirkt das "is"?
http://php.net/manual/de/reference.pcre ... ifiers.php

Mixe i und s (klein geschrieben).
Benutzeravatar
HabNurNeFrage
Ehemaliges Teammitglied
Beiträge: 1627
Registriert: 17.01.2010 20:22
Wohnort: An der Ostsee
Kontaktdaten:

Re: Spoiler für eine Benutzergruppe unsichtbar machen?

Beitrag von HabNurNeFrage »

Hi,

nach ausgiebigem Testen ist ein Problem aufgetaucht.
Nutzt man den bbCode und danach kommen noch "normale" Beitragsteile, werden diese in der Gast-Ansicht verschluckt.
Auch ein zweifaches Nutzen wird dadurch unsinnig.

Beispiel:
Text
[intern] Text [/intern]
Text
[intern] Text [/intern]


wird zu:
Text
Nur Mitglieder sehen die Inhalte an dieser Stelle.


Nach längerem Suchen und Lesen über RegEx und etlichen Suchmuster Experimenten kam ich zu folgender Lösung:

Code: Alles auswählen

    if (($user->data['user_id'] == ANONYMOUS) or $user->data['is_bot'])
    {
        $text = preg_replace('/\[intern(.*?)\].*?\[\/intern(.*?)\]/si', "
        <p><span style=\"color:red;\"><small>Nur Mitglieder sehen die Inhalte an dieser Stelle.</small></span></p>
        ", $text);
    } 
Mit diesem Code ergibt das Beispiel nun wie gewünscht:
Text
Nur Mitglieder sehen die Inhalte an dieser Stelle.
Text
Nur Mitglieder sehen die Inhalte an dieser Stelle.



Hoffentlich tauchen keine weiteren Probleme auf... :oops:

LG
| HomeStory.org - the friendly Community | Forum für alle Lebenslagen | <"}))}~ | Nicht nachmachen: Meine phpBB Spielereien |
var shoppen = geld.replace (/geld/g, 'bloedsinn'); if (geld < 1) { return home; };
Benutzeravatar
HabNurNeFrage
Ehemaliges Teammitglied
Beiträge: 1627
Registriert: 17.01.2010 20:22
Wohnort: An der Ostsee
Kontaktdaten:

Re: Spoiler für eine Benutzergruppe unsichtbar machen?

Beitrag von HabNurNeFrage »

(edit: habe es selbst gefunden)

Hi,

Um die Ausgabe im Feed auch zu unterbinden, macht man Folgendes:

Öffnen: feed.php

Finden: // Prepare some bbcodes for better parsing

DAVOR einfügen:

Code: Alles auswählen

    $content = preg_replace('/\[intern(.*?)\].*?\[\/intern(.*?)\]/si', "
            <p><small>Nur Mitglieder sehen die Inhalte an dieser Stelle.</small></p>
            ", $content);
Jetzt sind diese Inhalte wirklich komplett intern. Weder Bots noch Gäste können sie sehen...

LG
| HomeStory.org - the friendly Community | Forum für alle Lebenslagen | <"}))}~ | Nicht nachmachen: Meine phpBB Spielereien |
var shoppen = geld.replace (/geld/g, 'bloedsinn'); if (geld < 1) { return home; };
Antworten

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