champ; $contexte['label_' . $c->champ] = $c->label; // retrouver la valeur du champ demande $table = table_objet_sql($c->table); $_id = id_table_objet($c->table); // attention, l'ordre est important car les pipelines afficher et editer // ne transmettent pas les memes arguments if (isset($contexte_flux[$_id])) { $id = $contexte_flux[$_id]; } elseif (isset($contexte_flux['id_objet'])) { $id = $contexte_flux['id_objet']; } elseif (isset($contexte_flux['id']) and intval($contexte_flux['id'])) { // peut valoir 'new' $id = $contexte_flux['id']; } $contexte[$c->champ] = sql_getfetsel($c->champ, $table, $_id . '=' . sql_quote($id)); return array_merge($contexte_flux, $contexte); } // ajouter les champs sur les formulaires CVT editer_xx function champsextras_editer_contenu_objet($flux){ // recuperer les champs crees par les plugins if ($champs = pipeline('declarer_champs_extras', array())) { foreach ($champs as $c) { // si le champ est du meme type que le flux if ($flux['args']['type']==objet_type($c->table) and $c->champ and $c->sql) { $contexte = champsextras_creer_contexte($c, $flux['args']['contexte']); // calculer le bon squelette et l'ajouter $extra = recuperer_fond('formulaires/inc-champ-formulaire-'.$c->type, $contexte); $flux['data'] = preg_replace('%()%is', $extra."\n".'$1', $flux['data']); } } } return $flux; }