Werbung ausblenden, basierend auf Eintrag im Benutzerfeld

Dieses Thema im Forum "Diskussionen rund um XenForo" wurde erstellt von Nathea, 19. Aug. 2019.

  1. Nathea

    Nathea Neues Mitglied Lizenzverwender

    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!
     
  2. otto

    otto Bekanntes Mitglied Lizenzinhaber

    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. ;)
     
    Alluidh, Nathea und McAtze gefällt das.
  3. McAtze

    McAtze Innendienst Lizenzinhaber

    @otto war schneller, obwohl älter.. :smoke::D
     
    otto gefällt das.
  4. Nathea

    Nathea Neues Mitglied Lizenzverwender

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

    otto Bekanntes Mitglied Lizenzinhaber

    Ich hab den Eindruck, mit zunehmendem Alter, schneller älter zu werden. Ist also nur logisch, das ich schneller sein muss. :D ;)

    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. :)
     
  6. McAtze

    McAtze Innendienst Lizenzinhaber

    otto gefällt das.
  7. Nathea

    Nathea Neues Mitglied Lizenzverwender

    @McAtze : Du bist mein Held !!!!

    Das klappt wunderbar. Wieder ein Problem gelöst, dankeschön :)
     
    McAtze gefällt das.
  8. otto

    otto Bekanntes Mitglied Lizenzinhaber

    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>
    ?
     
  9. Nathea

    Nathea Neues Mitglied Lizenzverwender

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

    Paridus Mitglied Lizenzinhaber

    Kann mir bitte jemand sagen wo ich das einfügen muss?

    Danke!
     
  11. mph

    mph Bekanntes Mitglied Lizenzinhaber

    Bei XF 2 dort wo du die Werbung einfügst. Das kann ein Widget sein oder evtl. eingebaut in ein Template.
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden