Metamodels : Masquer un champ qui est vide

Comment utiliser Contao
zepokpok
Membre
Messages : 67
Inscription : 13 Oct 2010 21:47

Metamodels : Masquer un champ qui est vide

Messagepar zepokpok » 28 Avr 2016 14:43

Salut à tous,

J'ai réalisé un metamodel pour une plateforme touristique et j'aimerais masquer des champs s'ils sont vides.
ça doit être faisable si on laisse metamodel gérer ses templates mais j'ai réécrit les miens, du coup ça donne ça :

Code : Tout sélectionner

 <?php if($arrItem['text']['url']): ?>
  <div class="field composer">
    <p> <a target="_blank" href="<?php echo $arrItem['text']['url']; ?>">Visitez le site web</a></p>
  </div>


Je ne suis pas une star en PHP (OK je suis super nul !), ce que je voulais faire c'est lui dire que si la valeur est vide alors il ne doit pas afficher la suite.

Qu'est ce que j'ai loupé ?

Merci !

Avatar de l’utilisateur
iankoOol
Membre
Messages : 160
Inscription : 04 Août 2008 10:07
Localisation : Bretagne

Re: Metamodels : Masquer un champ qui est vide

Messagepar iankoOol » 29 Avr 2016 08:39

Hello,

Pour vérifier si la variable n'est pas vide (champ non renseigné) :

Code : Tout sélectionner

<?php if($arrItem['text']['url'] != ''): ?>
...
<?php endif; ?>


L'on peut aussi utiliser raw pour ne tester que la valeur (si c un champ url...)

Code : Tout sélectionner

<?php if($arrItem['raw']['url'] != ''): ?>


Dans certains cas (un champ select par exemple) cela pourrait aussi être :

Code : Tout sélectionner

<?php if($arrItem['raw']['url'] != NULL): ?>


Petite astuce pour lister le tableau des variables reçu par le template

Code : Tout sélectionner

<?php echo '<pre><code>';print_r($arrItem);echo '</code></pre>'; ?>
Graphiste / Dév - Xhtml/css/javascript/php - Faîtes-vous du bien !

zepokpok
Membre
Messages : 67
Inscription : 13 Oct 2010 21:47

Re: Metamodels : Masquer un champ qui est vide

Messagepar zepokpok » 30 Avr 2016 14:02

Ha t'es un chef iankoOol j'essaie ça dès que possible, un grand merci ! ;-)

zepokpok
Membre
Messages : 67
Inscription : 13 Oct 2010 21:47

Re: Metamodels : Masquer un champ qui est vide

Messagepar zepokpok » 06 Mai 2016 09:15

Re !

Juste pour info : Merci ça marche, c'est nickel !
Les premières solutions ne fonctionnaient pas, sans ta dernière astuce, je n'aurais pas su pourquoi !
Du coup voici la bonne formule si ça peut aider quelqu'un :

Code : Tout sélectionner

<?php if($arrItem['raw']['url']['1'] != NULL): ?>


Merci encore !

charled
Membre
Messages : 382
Inscription : 14 Juin 2008 15:54
Localisation : Au pied du Luberon…

Re: Metamodels : Masquer un champ qui est vide

Messagepar charled » 14 Mai 2016 00:11

Bonsoir,

Merci pour la question et les réponses ;-) Deux remarques/questions en passant…

1. Sur le forum EN ou le github de Contao ou MM… il me semble avoir lu une querelle d'expert où l'un des devs indiquait (en s'énervant un peu) que

Code : Tout sélectionner

<?php if($arrItem['text']['url']?>
tout court devait suffire puisque ça signifiait "s'il y a quelque chose dans la variable $arrItem…". Mais j'ai pu mal comprendre…

2. Y-a-t'il une doc qq part qui explique si ou quand il faut utiliser [raw], [text], [$this->getFormat()] ainsi que les paramètres possibles pour chaque type d'attribut (text, longtext, select, url, img, etc…) ?

Avatar de l’utilisateur
iankoOol
Membre
Messages : 160
Inscription : 04 Août 2008 10:07
Localisation : Bretagne

Re: Metamodels : Masquer un champ qui est vide

Messagepar iankoOol » 20 Mai 2016 18:11

Hello Charled,

La querelle concerne le développement de l'extension, à savoir quel type et quantité de variables on balance aux templates.
Pour moi text et raw sont indispensables car je souhaite souvent récupérer une partie de variable sans "l'habillage html".

Pour comprendre il faut utiliser "l'astuce" dans le foreach du template :

Code : Tout sélectionner

<?php echo '<pre><code>';print_r($arrItem);echo '</code></pre>'; ?>


L'on retrouve bien les différente variables dans les divers "formats" : ['raw'], ['text'] et il me semble ['html5'] (je ne l'ai pas sous les yeux)...

En gros cela donne :
['raw'] -> la variable brut (sans ajout de balises html etc) (pas osé dire à poil) ^^
['text'] -> la variable "habillé"
['html5'] -> la variable "prête pour la pôle nord" ! ^^

Bon cela fait longtemps je n'ai pas bossé sous Contao, pas un souvenir précis, les différences entre ['text'] et ['html5'] se situe surtout pour les champs complexe/multiple de type url, fichier (image), etc...
Mais à priori l'on comprend et l'on trouve son bonheur en utilisant "l'astuche" ^^ qui permet de parcourir l'ensemble des variables et les divers "formatages"
Graphiste / Dév - Xhtml/css/javascript/php - Faîtes-vous du bien !


Revenir vers « Utilisation de Contao »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités