[3.3] Postrow-Felder für Gäste

Fragen rund um die Installation, Administration und Benutzung von phpBB.
Forumsregeln
Bitte im Thementitel den Präfix deiner phpBB-Version angeben
Benutzeravatar
Mike-on-Tour
Supporter
Supporter
Beiträge: 1279
Registriert: 13.01.2020 21:09
Kontaktdaten:

Re: [3.3] Postrow-Felder für Gäste

Beitrag von Mike-on-Tour »

<!-- IF S_Profilfield_GDS_W -->..... <!-- ENDIF --> ist zumindest von der Schreibweise her nicht korrekt, wenn dann müsste es (in TWIG-Syntax :D ) so aussehen:
{% if S_PROFILEFIELD_GDS_W %}..... {% endif %}
(man beachte das "e" in "Profile")

Ob das aber so funktioniert, wage ich zu bezweifeln, weil der Template-Variablen (S_PROFILEFIELD_GDS_W) der Wert ja irgendwo zugewiesen werden muss, meines Wissens muss das im aufrufenden php-Skript erfolgen. Sicher bin ich mir aber nicht, denn phpBB überrascht mich immer wieder.
69bruno
Mitglied
Beiträge: 486
Registriert: 05.06.2020 08:21

Re: [3.3] Postrow-Felder für Gäste

Beitrag von 69bruno »

Ja, das mit dem denglish habe ich schon gesehen.
Aber irgendwie muss man doch den Status des booleeschen Feldes auslesen können. Bei einem Textfeld kann ich doch auch den Text auslesen. Bzw. S_USER_LOGGED_IN ist doch nix anderes. S_USER_LOGGED_IN bekommt seinen Wert irgendwo in einem Script, beim Anmeldeprozess. Das eigene Profilfeld hat einen Wert, der in der DB gespeichert ist, sobald der Benutzer es eingestellt hat. Bei den mir bekannten Programmiersprachen kann das 0 oder 1, bzw. false oder true sein.
Durch die schon durchgeführte Änderung glaube ich, dass ich den Bedingungswert nicht angeben muss. Sprich in php müsste

Code: Alles auswählen

IF meine_Variable
ohne weiteren Zusatz darauf prüfen, ob der Wert wahr ist.
In anderen Sprachen wäre das ja so:

Code: Alles auswählen

IF meine_Variable = true then
php verzichtet ja selbst auf das "then".

Nur.... wie heißt die Variable letztendlich. S_USER_LOGGED_IN ist irgendwo definiert.
Das eigene Profilfeld hat eine "Kennung". Ist das 1:1 der Variablenname, den ich in der viewtopic_body.html aufrufen kann, um den Wert zu prüfen ?
Forum: cruiser-lounge.de
PHPBB-Version: 3.3.11 / Debian-Linux 11 / PHP-Version: 8.1
Benutzeravatar
Cowboy of Bottrop
Mitglied
Beiträge: 320
Registriert: 01.02.2017 21:11
Wohnort: Bottrop anne Emscher
Kontaktdaten:

Re: [3.3] Postrow-Felder für Gäste

Beitrag von Cowboy of Bottrop »

Ich stecke da nicht so tief drin, aber würde nicht erstmal das eigene Profil ausgelesen? Wenn ich das richtig verstanden habe, willst du aber alle Profile auslesen. Wenn ich erlaube dass du meinen Wohnort sehen kannst, dann siehst du ihn auch. Wenn ich das nicht erlaube, siehst du den Wohnort eben nicht. Das ist es doch, was du willst, oder?
Keep it County,
Markus aka Cowboy
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12179
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: [3.3] Postrow-Felder für Gäste

Beitrag von Mahony »

Hallo
Schau dir mal die Ext Profile on Leftside von Kirk an >>> viewtopic.php?f=149&t=233325
Dort siehst Du wie Du abfragen kannst, ob der User sein Profilfeld sichtbar haben möchte, oder eben nicht (wird dann im persönlichen Bereich beim/vom User eingestellt)..

Du kannst da fast alles von übernehmen (natürlich mit eigenen Variablen und die Style-Dateien müssen natürlich passend sein).


Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
69bruno
Mitglied
Beiträge: 486
Registriert: 05.06.2020 08:21

Re: [3.3] Postrow-Felder für Gäste

Beitrag von 69bruno »

Danke, die werde ich mir mal anschauen.
Forum: cruiser-lounge.de
PHPBB-Version: 3.3.11 / Debian-Linux 11 / PHP-Version: 8.1
69bruno
Mitglied
Beiträge: 486
Registriert: 05.06.2020 08:21

Re: [3.3] Postrow-Felder für Gäste

Beitrag von 69bruno »

Habe die jetzt mal durchgeforstet, scheint mir aber viel zu komplex für das, was ich will.....

Mein Wunsch ist ja nur 1 eigenes Profilfeld "Text" 1 eigenes Profilfeld "boolean". (Habe ich schon angelegt)

Nur wenn Boolean "ja" zeige "Text" im Miniprofil.
Und die Änderungen nur im prosilverclone "gaststilver", den ich mir angelegt habe. Also möglichst nur in der viewtopic_body.html. Da diese als "Muster" für jeden Beitrag verwendet wird, bekomme ich dann ja je nach Benutzereinstellung unterschiedlich gefüllte Miniprofile angezeigt.

Dafür eigene Variablen zu deklarieren und das ganze Beiwerk einer Extension zu basteln ist heftig, insbesondere, da ich gerade erst am Anfang mit php stehe. (Ich hatte zwar mal eine Anfängerfortbildung, aber das was wir da gemacht haben, ist weit von phpBB3 entfernt)

Ich schaffe es ja schon, beide Profilfelder mit dem Inhalt im Miniprofil anzuzeigen, selbst wenn sie laut Feldeinstellung nicht "öffentlich" angezeigt werden soll.
Wenn ich den Wert des Boolean-Feldes anzeigen kann, muss ich ihn doch auch für eine IF-Bedingung verwenden können, oder ?

Automatisch dem Beitrag hinzugefügt nach 8 Minuten 44 Sekunden. Bitte Regel für „Topic-Bumping“ beachten. Danke.
Cowboy of Bottrop hat geschrieben: 08.12.2020 19:38 Ich stecke da nicht so tief drin, aber würde nicht erstmal das eigene Profil ausgelesen? Wenn ich das richtig verstanden habe, willst du aber alle Profile auslesen. Wenn ich erlaube dass du meinen Wohnort sehen kannst, dann siehst du ihn auch. Wenn ich das nicht erlaube, siehst du den Wohnort eben nicht. Das ist es doch, was du willst, oder?
Um deine Frage zu beantworten: Wenn Du erlaubst dass dein Wohnort gesehen wird, dann sieht in jeder. Wir möchten aber, dass alle außer den Gästen den Wohnort sehen können.
Die viewtopic_body.html ist die Schablone für jeden angezeigten Beitrag. Dieser Schablone möchte ich jetzt in einem eigens für Gäste angelegten Style beibringen, dass sie für jeden angezeigten Beitrag individuell prüft, ob der Autor seine Daten freigegeben hat und sie auch nur dann angezeigt werden.
Eine Ext basteln ist mir noch zu komplex, deshalb möchte ich das über Benutzerspezifische Profilfelder lösen. Den Text gibt es ja schon (sei es Wohnort, Telefonnummer, Meine_Bikes) jetzt habe ich 3 Booleans angelegt, - Gäste dürfen Wohnort sehen, Gäste dürfen Telefonnummer sehen, Gäste dürfen Mein_Bike sehen.
Und dann hapert es mit der Syntax, diese Einstellung auszulesen und in einer IF-Bedingung zu verwenden.

Vielleicht gibt es ja eine viel einfachere Lösung, dass gewünschte Ziel zu erreichen, dann wäre ich für den Wink mit drei Zaunpfählen dankbar :grin:
Forum: cruiser-lounge.de
PHPBB-Version: 3.3.11 / Debian-Linux 11 / PHP-Version: 8.1
69bruno
Mitglied
Beiträge: 486
Registriert: 05.06.2020 08:21

Re: [3.3] Postrow-Felder für Gäste

Beitrag von 69bruno »

:grin:
einen Online-Kurs "html", ein Tutorial "php für Einsteiger" und ein Tutorial "twig" weiter, sehe ich einer Lösung entgegen:
Ich habe wie geplant 3 Ja/Nein-Felder im Profil aufgenommen:
- gds_w = Gast darf Wohnort sehen
- gds_b = Gast darf meine-bikes sehen
- gds_k = Gast darf Kontaktdaten sehen

In dem gastsilverstye habe ich in der viewtopic_body.html die Ausgabe der Profilfelder für Gäste mit folgender Bedingung ausgeblendet (Danke nochmal an Mike-on-tour):

Code: Alles auswählen

<!-- IF S_USER_LOGGED_IN and not S_IS_BOT -->
...
<!-- ENDIF -->
Dann habe ich die Felder, die ich anzeigen lassen möchte, wenn der User es über die checkboxen im Profil erlaubt wie folgt wieder eingefügt:

Code: Alles auswählen

	<!-- IF not S_USER_LOGGED_IN -->
		{% if 'ja' in postrow.PROFILE_GDS_B_VALUE %}
			<!-- Use a construct like this to include admin defined profile fields. Replace FIELD1 with the name of your field. -->
			<dd><strong>{postrow.PROFILE_MEINE_BIKES_NAME}{L_COLON}</strong> {postrow.PROFILE_MEINE_BIKES_VALUE}</dd>
		{% endif %}
		{% if 'ja' in postrow.PROFILE_GDS_W_VALUE %}
			<!-- Use a construct like this to include admin defined profile fields. Replace FIELD1 with the name of your field. -->
			<dd><strong>{postrow.PROFILE_PHPBB_LOCATION_NAME}{L_COLON}</strong> {postrow.PROFILE_PHPBB_LOCATION_VALUE}</dd>
		{% endif %}
    <!-- ENDIF -->
Da ich auch die Kontaktdaten bei Gästen unter den Entscheidungsvorbehalt des Users stellen möchte habe ich dann noch diese Bedingung für den Abschnitt der Kontaktdaten eingefügt:

Code: Alles auswählen

<!-- IF 'ja' in postrow.PROFILE_GDS_K_VALUE -->
...
<!-- ENDIF -->
Was soll ich sagen.... das Ergebnis ist genau, wie ich es haben wollte.

Kleiner Wehrmutstropfen ist noch, dass im "normalen prosilver-Style" die 3 Ja/Nein Felder jetzt im Miniprofil auftauchen. Ich darf sie in den Feldeinstellungen "in Themenansicht anzeigen" aber nicht ausblenden, da ich sonst den Wert nicht auslesen kann..... Dafür muss ich auch noch an einer Lösung arbeiten.
Forum: cruiser-lounge.de
PHPBB-Version: 3.3.11 / Debian-Linux 11 / PHP-Version: 8.1
Benutzeravatar
Cowboy of Bottrop
Mitglied
Beiträge: 320
Registriert: 01.02.2017 21:11
Wohnort: Bottrop anne Emscher
Kontaktdaten:

Re: [3.3] Postrow-Felder für Gäste

Beitrag von Cowboy of Bottrop »

Da wäre vielleicht eine Lösung, die Felder mittels CSS display:none: fürs Auge verschwinden zu lassen.
Keep it County,
Markus aka Cowboy
69bruno
Mitglied
Beiträge: 486
Registriert: 05.06.2020 08:21

Re: [3.3] Postrow-Felder für Gäste

Beitrag von 69bruno »

Das ist wohl eher wieder schwierig, da müsste ich den Original-prosilver-style manipulieren. Das will ich gerade nicht, sondern alle Änderungen sollen im "gastsilver" stattfinden, damit ich nach einem Update alles wieder durch Aktivierung des "gastsilvers" wie vorher habe.
Ich muss also einen Weg finden, wie ich im gastsilver auf die Werte eines Feldes referenzieren kann, welches nicht angezeigt wird. Ich müsste also direkt aus der DB auslesen, was der User eingestellt hat. (stelle ich mir so vor.....)
Forum: cruiser-lounge.de
PHPBB-Version: 3.3.11 / Debian-Linux 11 / PHP-Version: 8.1
Antworten

Zurück zu „Support-Forum“