function cextras_afficher_contenu_objet($flux){ // recuperer les champs crees par les plugins if ($extras = cextras_get_extras_match($flux['args']['type'])) { $contexte = cextra_quete_valeurs_extras($extras, $flux['args']['type'], $flux['args']['id_objet']); $contexte = array_merge($flux['args']['contexte'], $contexte); foreach($extras as $c) { // on affiche seulement les champs dont la vue est autorisee $type = $c->_type . '_' . $c->champ; include_spip('inc/autoriser'); if (autoriser('voirextra', $type, $flux['args']['id_objet'], '', array( 'type' => $flux['args']['type'], 'id_objet' => $flux['args']['id_objet'], 'contexte' => $contexte))) { $contexte = cextras_creer_contexte($c, $contexte); $saisie_externe = false; // calculer le bon squelette et l'ajouter if($c->saisie_externe && find_in_path( ($f = 'saisies-vues/'.$c->type).'.html')){ $contexte['valeur'] = $contexte[$c->champ]; // ajouter les listes d'éléments possibles if (isset($c->saisie_parametres['datas']) and $c->saisie_parametres['datas']) { $contexte['datas'] = $c->saisie_parametres['datas']; // sinon peut provenir du plugin d'interface, directement dans enum. } elseif ($c->enum) { $contexte['datas'] = cextras_enum_array($c->enum); } // lorsqu'on a 'datas', c'est qu'on est dans une liste de choix. // Champs Extra les stocke separes par des virgule. if ($contexte['datas']) { $contexte['valeur'] = explode(',', $contexte['valeur']); } $saisie_externe = true; } else if (!find_in_path( ($f = 'extra-vues/'.$c->type).'.html')) { // si on ne sait pas, on se base sur le contenu // pour choisir ligne ou bloc $f = strstr($contexte[$c->champ], "\n") ? 'extra-vues/bloc' : 'extra-vues/ligne'; } $extra = recuperer_fond($f, $contexte); if($saisie_externe){ $extra = '<div class="'.$c->champ.'"><strong>'._T($c->label).'</strong>'.$extra.'</div>'; } $flux['data'] .= "\n".$extra; } } } return $flux; }
function cextras_afficher_contenu_objet($flux){ // recuperer les champs crees par les plugins if ($extras = cextras_get_extras_match($flux['args']['type'])) { $contexte = cextra_quete_valeurs_extras($extras, $flux['args']['type'], $flux['args']['id_objet']); $contexte = array_merge($flux['args']['contexte'], $contexte); foreach($extras as $c) { // on affiche seulement les champs dont la vue est autorisee $type = objet_type($c->table).'_'.$c->champ; if (autoriser('voirextra', $type, $flux['args']['id_objet'], '', array( 'type' => $flux['args']['type'], 'id_objet' => $flux['args']['id_objet'], 'contexte' => $contexte))) { $contexte = cextras_creer_contexte($c, $contexte); // calculer le bon squelette et l'ajouter if (!find_in_path( ($f = 'extra-vues/'.$c->type).'.html')) { // si on ne sait pas, on se base sur le contenu // pour choisir ligne ou bloc $f = strstr($contexte[$c->champ], "\n") ? 'extra-vues/bloc' : 'extra-vues/ligne'; } $extra = recuperer_fond($f, $contexte); $flux['data'] .= "\n".$extra; } } } return $flux; }