19/07/2016, 14:20:28
J'ai réussi en intégrant simplement une seconde requête dans la boucle :
Je ne détaille pas plus que ca puisque ca concerne un module qui n'est plus mis à jour sur la v2 de CMSMS, mais si quelqu'un est interessé je peux partager mon UDT complète.
Pour rappel l'idée était de créer un formulaire de recherche multi-critères pour ListIt2. (Bien que prévue par le module, je n'ai pas réussi à faire fonctionner correctement cette fonctionnalité, d'où l'UDT).
Code :
[== PHP ==]
//Connexion BDD
$db = cmsms()->GetDb();
//Requête pour lister les items de ListIt
$itemReq = 'SELECT i.item_id AS id
, i.title AS title
, i.active AS active
, ic.category_id AS cat_id
, ic.item_id AS item_id
, c.category_id
, c.category_name as cat_name
, c.category_alias as cat_alias
, fielddef.alias
FROM cms_module_listit2ressources_item i
INNER
JOIN cms_module_listit2ressources_item_categories ic
ON ic.item_id = i.item_id
INNER
JOIN cms_module_listit2ressources_category c
ON c.category_id = ic.category_id
'.$categorieDoc .'
INNER JOIN `'.cms_db_prefix().'module_listit2ressources_fieldval` AS fieldval
ON i.item_id = fieldval.item_id
INNER JOIN `'.cms_db_prefix().'module_listit2ressources_fielddef` AS fielddef
ON fieldval.fielddef_id = fielddef.fielddef_id
'.$typeDoc .'
'.$langueDoc .'
'.$sourceDoc .'
WHERE i.active = 1 AND fielddef.alias="date"
'.$dateDoc.'
ORDER BY fieldval.value DESC';
//Execution de la requête
$items = $db->Execute($itemReq);
//On affiche les résultats...
while ($row = $items->FetchRow())
{
//Et dans la boucle on fait une seconde requête pour faire correspondre les champs 'custom'
$fieldReq = 'SELECT
item.item_id AS id,
item.active AS active,
fieldval.item_id as fkItemId,
fieldval.fielddef_id as fkfieldefId,
fieldval.value as theVal,
fielddef.fielddef_id,
fielddef.name as valueTitle,
fielddef.alias
FROM `'.cms_db_prefix().'module_listit2ressources_item` AS item
INNER JOIN `'.cms_db_prefix().'module_listit2ressources_fieldval` AS fieldval
ON item.item_id = fieldval.item_id
INNER JOIN `'.cms_db_prefix().'module_listit2ressources_fielddef` AS fielddef
ON fieldval.fielddef_id = fielddef.fielddef_id
WHERE fielddef.alias IN("langue", "source", "type") AND item.active=1 AND item.item_id='.$row['id'].'
';
}
Je ne détaille pas plus que ca puisque ca concerne un module qui n'est plus mis à jour sur la v2 de CMSMS, mais si quelqu'un est interessé je peux partager mon UDT complète.
Pour rappel l'idée était de créer un formulaire de recherche multi-critères pour ListIt2. (Bien que prévue par le module, je n'ai pas réussi à faire fonctionner correctement cette fonctionnalité, d'où l'UDT).