function aff_titre_uniforme_with_tpl($param)
{
    global $fonction_auteur;
    // Utiliser pour le template les attributs de la classe "serie", cf classes/serie.class.php
    // $param[0] = nb maxi de titres uniformes à afficher
    // $param[1] = séparateur entre les titres uniformes
    // $param[2] = séparateur entre les valeurs d'un même champ répétable
    // $param[3] = format d'affichage des auteurs (0 : nom, prénom | 1 : nom, prénom (dates)| 2 : nom, prénom, fonction | 3 : nom, prénom (dates), fonction)
    // $param[4] = template
    global $parser_environnement;
    if (!$parser_environnement['id_notice']) {
        return "";
    }
    $notice = gere_global();
    $array_retour = array();
    if (isset($notice['notice_info']->memo_tu) && count($notice['notice_info']->memo_tu)) {
        $cpt = 0;
        foreach ($notice['notice_info']->memo_tu as $tu) {
            //traitement spécial pour les champs répétables des tu
            $array_rep_field = array("distrib", "ref", "subdiv");
            foreach ($array_rep_field as $rep_field) {
                if (!count($tu->{$rep_field})) {
                    $tu->{$rep_field} = "";
                } else {
                    $mes_valeurs = array();
                    foreach ($tu->{$rep_field} as $valeur) {
                        $mes_valeurs[] = $valeur["label"];
                    }
                    $tu->{$rep_field} = implode($param[2], $mes_valeurs);
                }
            }
            //traitement spécial pour les auteurs des tu
            $mes_auteurs = array();
            if (count($tu->responsabilites["auteurs"])) {
                foreach ($tu->responsabilites["auteurs"] as $auteur) {
                    $aut_detail = new auteur($auteur["id"]);
                    switch ($param[3]) {
                        case 0:
                            $mes_auteurs[] = $aut_detail->name . ", " . $aut_detail->rejete;
                            break;
                        case 1:
                            $mes_auteurs[] = $aut_detail->name . ", " . $aut_detail->rejete . " (" . $aut_detail->date . ")";
                            break;
                        case 2:
                            $mes_auteurs[] = $aut_detail->name . ", " . $aut_detail->rejete . ", " . $fonction_auteur[$auteur["fonction"]];
                            break;
                        case 3:
                            $mes_auteurs[] = $aut_detail->name . ", " . $aut_detail->rejete . " (" . $aut_detail->date . ")" . ", " . $fonction_auteur[$auteur["fonction"]];
                            break;
                    }
                }
            }
            $tu->auteurs = implode($param[2], $mes_auteurs);
            //traitement du template
            $array_retour[] = _get_aut_infos($tu, $param[4]);
            $cpt++;
            if ($param[0] && $cpt == $param[0]) {
                break;
            }
        }
    }
    return implode($param[1], $array_retour);
}
Beispiel #2
0
function aff_avis_with_tpl($param)
{
    // Utiliser pour le template les attributs suivants : id_avis,note,sujet,commentaire,ladate,empr_login,empr_nom,empr_prenom,valide,note_textuelle
    // $param[0] = nombre maxi d'avis à afficher
    // $param[1] = séparateur entre les avis
    // $param[2] = template
    global $parser_environnement;
    if (!$parser_environnement['id_notice']) {
        return "";
    }
    $notice = gere_global();
    $tab_avis = array();
    if (count($notice["notice_info"]->memo_avis)) {
        if ($param[0] && $param[0] < count($notice["notice_info"]->memo_avis)) {
            $max_avis = $param[0];
        } else {
            $max_avis = count($notice["notice_info"]->memo_avis);
        }
        for ($i = 0; $i < $max_avis; $i++) {
            $tab_avis[] = _get_aut_infos($notice["notice_info"]->memo_avis[$i], $param[2]);
        }
    }
    if (count($tab_avis)) {
        return implode($param[1], $tab_avis);
    }
    return "";
}