Index de l'article

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).

Liens ou pièces jointes
Accéder à cette adresse URL (http://fabrikar.com/forums/index.php?wiki/troubleshooting-tools/)Wiki Fabrik sur les troubleshooting tools[Article]0 Ko
Accéder à cette adresse URL (http://fabrikar.com/forums/index.php?wiki/calculation-element/)Wiki Fabrik sur les champs calc pour débogage[Article]0 Ko
Accéder à cette adresse URL (http://fabrikar.com/forums/index.php?wiki/php-form-plugin/)Wiki Fabrik sur le plugin PHP pour les formulaires[Article]0 Ko
Accéder à cette adresse URL (http://fabrikar.com/forums/index.php?wiki/filtering-lists-tables/)Filtres de listes[Article officiel Fabrik sur les pré-filtres de listes]0 Ko
Accéder à cette adresse URL (https://api.joomla.org/cms-3/classes/JDatabaseDriver.html)Joomla! API[Documentation Joomla]0 Ko
Accéder à cette adresse URL (https://docs.joomla.org/Selecting_data_using_JDatabase)Selecting data using JDatabase[Documentation Joomla]0 Ko