Icônes dynamiques
on peut déjà grâce à Fabrik, remplacer statiquement des valeurs de champs par des icônes (dans les Paramètres de la vue liste d'un élément). En utilisant des valeurs de champs contrôlés en alias d'images, on peut même remplacer dynamiquement ces valeurs.
Mais nous allons faire ici quelque chose d'encore plus sympa !
Nous regardons si le contenu d'un champ Email se trouve également dans 3 autres champs Email d'une table d'une base externe, puis faisons apparaître le résultat sous forme d'une belle icône d'alerte, avec popup d'info textuelle. Cela dans un champ Calc :
// Champ a chercher $EmailRef = '{ma_table___mon_champ_email}' ; // if-else de gestion des cas vides - pour eviter de declencer une requete WHERE vide if (!empty($EmailRef)) { // Acces a la connexion distante $myDb = FabrikWorker::getDbo(false, ID_De_Ma_Connexion_Externe); // Creation requete - argument true pour nettoyer une eventuelle ancienne requete $myQuery = $myDb->getQuery(true); // Requete de recuperation de la valeur concernee $myQuery->select(' Ma_table_Distante.Mon_Champ_Id from Ma_table_Distante where email = ' . $myDb->quote($EmailRef) . 'or email2 = ' . $myDb->quote($EmailRef) . 'or email3 = ' . $myDb->quote($EmailRef) ); $myDb->setQuery($myQuery); $MyTest = $myDb->loadResult(); if (!empty($MyTest)) { // Calcul return 'Email existant en base distante !' ; } // Si pas de resultat else { return '';} } // Si le champ a chercher est vide else { return ''; }
Nous ne faisons que tester l'existence de résultats, avant d'afficher un texte en dur si un enregistrement est renvoyé. La requête ne renvoie donc que les ID, car plus légers, mais ils ne seront pas utilisés par la page.
Notez que nous pourrions aussi, juste après le test en cas de retour positif, lancer une recherche sur la liste externe à partir du champ à tester (voir la section sur les recherches dynamiques).