if sArticle.attr4

Hi, ich habe ein Problem mit sArticle.attr4 . Es soll nur angezeigt werden wenn es gefüllt ist. Meine Smarty Abfrage ist folgende:

 {if $sArticle.attr4 != "NULL" || $sArticle.attr4 != false || $sArticle.attr4 != "1" || $sArticle.attr4 != ""}
 Es hat Inhalt also zeig dich!
{/if}

Es wird jedoch in jedem Fall angezeigt, ob gefüllt oder nicht. was kann ich machen?

{if $sArticle.attr4}{$sArticle.attr4}{/if}

  

Mach doch mal ein |var_dump, was dort wirklich drin steht.

Viele Grüße

bei var_dump kommt string(0) = „“ und bei print_r kommt 1 @EikeWarneke‍

Das kann ich mir nicht vorstellen… Zeig mal bitte genau, wie du das anzeigen lässt.

Viele Grüße

{$sArticle.attr4|print_r}
{$sArticle.attr4|var_dump}

@EikeWarneke‍

Das ist doch ein rein logisches Problem - wenn “”, “NULL”,“1” und false nicht identisch sind, würde doch diese Abfrage immer als ‘wahr’ validieren müssen, wenn man mit dem ‘oder’ Operator arbeitet.

@gamershq‍ ja das stimmt, die Frage ist jedoch, welchen der vielen Variablenwerte ist der Richtige um true/false herauszubekommen? Textfeld leer-> If Inhalt nicht anzeigen, Textfeld mit irgendetwas gefüllt (ausser eben “”, 1, NULL) dann zeige dich 

Ich hatte es auch öfters, dass bei Freitextfeldern die standardmäßig ‘leer’ sind, sich beim Speichern ein ‘NULL’ einschleicht und dies als string abgespeichert wird. Also ohne dass man dieses Feld bearbeitet. Sicherlich nicht die sauberste Lösung, aber ich mache dann immer eine Überprüfung in der Form von 'if ($var !=“NULL” && !$var)" - bis jetzt hat die Template Logik dann immer funktioniert.

(Ich hoffe ja so schnell wie möglich auf SW6 umsatteln zu können, darum hab mich an solchen Merkwürdigkeiten dann nicht weiter aufgehalten - ich freue mich schon auf Twig)