Bonjour,
Je cherche à afficher des champs perso de flexicontent de type multiple-select dans un fichier d'export de ma fiche web en PDF. Ce n'est pas moi qui ait écrit le code, mais j'essaye de régler ce problème d'affichage : jusqu'ici tous les champs ressortent leur valeur correctement, sauf les multiple-select qui n'affichent que la première des valeurs sélectionnées.
J'ai vérifié que les données étaient bien enregistrées sur la bdd, pas de pb.
Je suis sur Joomla 2.5 et flexicontent 2.2
Récup des champs :
appel de l'un des champ multiple-select (qui n'affiche donc que la première des valeurs) :
D'après le développeur de flexicontent, je récupère bien toutes les valeurs de champ pour chaque item, mais le problème se situerait sur cette boucle qui n'utilise qu'une valeur pour chaque champ.
Pourriez-vous me dire en quoi cette boucle empêche l'affichage de plusieurs valeurs par champs? Je ne suis pas très à l'aise en php.
Et donc, si c'est bien cette boucle qui pose mon problème.
ps : je joins mon fichier en PJ
Bien à vous mes lecteurs !
Je cherche à afficher des champs perso de flexicontent de type multiple-select dans un fichier d'export de ma fiche web en PDF. Ce n'est pas moi qui ait écrit le code, mais j'essaye de régler ce problème d'affichage : jusqu'ici tous les champs ressortent leur valeur correctement, sauf les multiple-select qui n'affichent que la première des valeurs sélectionnées.
J'ai vérifié que les données étaient bien enregistrées sur la bdd, pas de pb.
Je suis sur Joomla 2.5 et flexicontent 2.2
Récup des champs :
Code PHP:
$tmp_query = JFactory::getdbo();
$db =& $tmp_query;
$q = "
SELECT
`c`.`introtext` as `description`, `c`.`title` as `title`
FROM `#__content` as `c`
WHERE `id` = '{$id}'";
$db->setQuery($q);
$article = $db->loadObjectList();
foreach ($article[0] as $key => $value) {
$$key = utf8_decode($value);
}
$q = "
SELECT
`fir`.`value` as `value`,
`ff`.`name` as `field_name`, `ff`.`label` as `field_label`,
`fil`.`filename` as `filename`, `fil`.`description` as `file_description`
FROM `#__flexicontent_fields_item_relations` as `fir`
INNER JOIN `#__flexicontent_fields` as `ff` ON `fir`.`field_id` = `ff`.`id`
LEFT JOIN `#__flexicontent_files` as `fil` ON `fir`.`value` = `fil`.`id`
WHERE `fir`.`item_id` = '{$id}'
";
$db->setQuery($q);
$flexi_infos = $db->loadObjectList();
/*echo "<pre>";
print_r($flexi_infos);exit;*/
foreach ($flexi_infos as $item) {
$var_name = $item->field_name;
//echo htmlallentities($item->value);
$$var_name = htmlallentities($item->value);
if(!empty($item->filename) && $item->field_name != 'pres_realisation' && $item->field_name != 'pres_superficie' && $item->field_name != 'pres_chiffres' && $item->field_name != 'honoraires' && $item->field_name != 'cp' && $item->field_name != 'adresse' && $item->field_name != 'ville' && $item->field_name != 'patenaires' && $item->field_name != 'pres_ouvre' && $item->field_name != 'pres_secteur'){
$$var_name = $item->filename;
}
}
//exit;
ini_set('memory_limit','256M');
$save_pdf = true;
$euro_sign = "€";//iconv("UTF-8", "cp1250", '€');
if ($save_pdf) ob_start();
appel de l'un des champ multiple-select (qui n'affiche donc que la première des valeurs) :
Code PHP:
<?php if(isset($pres_secteur)){ ?>
<h1>Secteur</h1>
<p><?php echo $pres_secteur;?></p>
<br/>
D'après le développeur de flexicontent, je récupère bien toutes les valeurs de champ pour chaque item, mais le problème se situerait sur cette boucle qui n'utilise qu'une valeur pour chaque champ.
Code PHP:
foreach ($flexi_infos as $item) {
$var_name = $item->field_name;
//echo htmlallentities($item->value);
$$var_name = htmlallentities($item->value);
if(!empty($item->filename) && $item->field_name != 'pres_realisation' && $item->field_name != 'pres_superficie' && $item->field_name != 'pres_chiffres' && $item->field_name != 'honoraires' && $item->field_name != 'cp' && $item->field_name != 'adresse' && $item->field_name != 'ville' && $item->field_name != 'patenaires' && $item->field_name != 'pres_ouvre' && $item->field_name != 'pres_secteur'){
$$var_name = $item->filename;
}
}
Et donc, si c'est bien cette boucle qui pose mon problème.
ps : je joins mon fichier en PJ
Bien à vous mes lecteurs !