Werbung ausblenden, basierend auf Eintrag im Benutzerfeld

Nathea

Mitglied
Lizenzverwender
Registriert
5. Juli 2019
Beiträge
53
Punkte
18
Bei der Umstellung auf XF2 möchten wir es gern auch weiterhin mit der Werbung so halten, dass die registrierten User sie ausblenden dürfen.

Hierzu gibt es ein spezielles Feld im Userprofil, das die ID "adshowingoff" besitzt. Ist es leer, wird dem User Werbung angezeigt. Ist es mit einem Haken versehen, wird die Werbung ausgeblendet.

Unter XF 1.5 lautete die entsprechende Syntax zum Ausschließen der Usergruppe:

<xen:if is="!{$visitor.customFields.adshowingoff}">

Ich habe testweise aus "xen" "xf" gemacht und diese veränderte Zeile mit in den testweise erstellten Werbe-Container gepackt, allerdings ohne Auswirkung.

Gibt es diese "ist nicht ..."-Anweisung im XF 2 überhaupt noch? Muss ich das anders formulieren?

Danke für Euren Input!
 
Laut : Conditional Statements for XenForo 2 ist die Syntax:

PHP:
<xf:if is="{$xf.visitor.location}">
   Show content...
</xf:if>
für z.B. das location Feld.

Bei 1.x sah das noch so aus:
PHP:
<xen:if is="{$visitor.customFields.field_id}">

This content will show to members who have completed the custom user field
</xen:if>

ergo würde ich mal:
PHP:
<xf:if is="!{$xf.visitor.customFields.adshowingoff}">

testen.

Ich hab immer noch kein 2.x laufen, daher einfach mal ins blaue geraten. ;)
 
@otto war schneller, obwohl älter.. :smoke::D
 
Hmmm ... irgendwie stehe ich noch auf dem Schlauch.

Ich habe jetzt zwei Testbanner erstellt, einer für den Fall "mit Haken" und einen für "ohne Haken", beide oberhalb der Forenübersicht:

PHP:
<xf:if is="{$xf.visitor.customFields.adshowingoff}">
    Syntax für User mit gesetztem Haken
</xf:if>

PHP:
<xf:if is="!{$xf.visitor.customFields.adshowingoff}">
    Syntax für User, die den Haken nicht gesetzt haben
</xf:if>

Egal, ob ich in meinen Einstellungen nun den Haken setze oder rausnehme, ich erhalte stets dasselbe Bild:

Bildschirmfoto 2019-08-19 um 20.57.58.png Bildschirmfoto 2019-08-19 um 20.56.46.png
 
@otto war schneller, obwohl älter.. :smoke::D
Ich hab den Eindruck, mit zunehmendem Alter, schneller älter zu werden. Ist also nur logisch, das ich schneller sein muss. :D ;)

Hmmm ... irgendwie stehe ich noch auf dem Schlauch.
Ich auch - weil eben genau auf die Frage nach den conditionals für custom fields auf Xenforo.com irgendwie nie so richtig geantwortet wurde bei XF 2.x .

Anderer Lösungsansatz: Kennt einer auf die schnelle eine Add-on welches custom fields einsetzt und abfragt? Wenn ja ... gut geklaut ist besser als schlecht selbst gemacht: mal in den Code schauen ob man da nicht des Rätsels Lösung findet.

Ich les daher mal weiter mit, weil an einer Lösung bin ich auch interessiert. :)
 
@McAtze : Du bist mein Held !!!!

Das klappt wunderbar. Wieder ein Problem gelöst, dankeschön :)
 
Na da muss man mal drauf kommen ... :D ;)

Also sollte es so aussehen:
PHP:
<xf:if is="{$xf.visitor.Profile.custom_fields.adshowing != off}">

    Syntax für User, die den Haken nicht gesetzt haben
</xf:if>

?
 
Ich bin - entsprechend dem Inspektor-Bericht weiter oben - davon ausgegangen, dass solche Felder mit "true" oder "false" auszulesen sind. Entsprechend lautete die Syntax in meinem Testbanner:
PHP:
<xf:if is="$xf.visitor.Profile.custom_fields.adshowingoff == true">
    // Haken gesetzt - keine Werbung
<xf:else />
    // Werbung
</xf:if>

Auf diese Weise klappt das wunderbar.
 
Kann mir bitte jemand sagen wo ich das einfügen muss?

Danke!
 
Zurück
Oben