#PHP [(#INCLURE{fond=fabrique/entetes/php,env, description=Utilisations de pipelines par #ENV{paquet/nom}, package=Pipelines})] /* * Un fichier de pipelines permet de regrouper * les fonctions de branchement de votre plugin * sur des pipelines existants. */ [ (#REM) AFFICHE ENFANTS ] /** * Ajouter les objets sur les vues de rubriques * * @pipeline affiche_enfants * @param array $flux Données du pipeline * @return array Données du pipeline **/ function [(#PREFIXE)]_affiche_enfants($flux) { if ($e = trouver_objet_exec($flux['args']['exec']) AND $e['type'] == 'rubrique' AND $e['edition'] == false) { $id_rubrique = $flux['args']['id_rubrique']; $lister_objets = charger_fonction('lister_objets', 'inc'); $bouton = ''; if (autoriser('creer#TYPEdans', 'rubrique', $id_rubrique)) { $bouton .= icone_verticale(_T("#TYPE:icone_creer_#TYPE"), generer_url_ecrire("[(#TYPE)]_edit", "id_rubrique=$id_rubrique"), "#TYPE-24.png", "new", "right") . "
"; } $flux['data'] .= $lister_objets('#OBJET', array('titre'=>_T('#TYPE:titre_[(#OBJET)]_rubrique') , 'id_rubrique'=>$id_rubrique[, 'par'=>'(#CHAMP_TITRE)'])); $flux['data'] .= $bouton; } return $flux; } [ (#REM) AFFICHE MILIEU ] /** * Ajout de contenu sur certaines pages, * notamment des formulaires de liaisons entre objets * * @pipeline affiche_milieu * @param array $flux Données du pipeline * @return array Données du pipeline */ function [(#PREFIXE)]_affiche_milieu($flux) { $texte = ""; $e = trouver_objet_exec($flux['args']['exec']); // auteurs sur les [(#OBJETS|objets_option_presente{auteurs_liens, objet}|implode{', '})] if (!$e['edition'] AND in_array($e['type'], array('[(#OBJETS|objets_option_presente{auteurs_liens, type}|implode{"', '"})]'))) { $texte .= recuperer_fond('prive/objets/editer/liens', array( 'table_source' => 'auteurs', 'objet' => $e['type'], 'id_objet' => $flux['args'][$e['id_table_objet']] )); } // #LOBJET sur les [(#VAL{table_objet}|array_map{#VUE_LIENS}|implode{', '})] if (!$e['edition'] AND in_array($e['type'], array('[(#VAL{objet_type}|array_map{#VUE_LIENS}|implode{"', '"})]'))) { $texte .= recuperer_fond('prive/objets/editer/liens', array( 'table_source' => '#LOBJET', 'objet' => $e['type'], 'id_objet' => $flux['args'][$e['id_table_objet']] )); } if ($texte) { if ($p=strpos($flux['data'],"")) $flux['data'] = substr_replace($flux['data'],$texte,$p,0); else $flux['data'] .= $texte; } return $flux; } [ (#REM) AFFICHE AUTEURS INTERVENTIONS ] /** * Ajout de liste sur la vue d'un auteur * * @pipeline affiche_auteurs_interventions * @param array $flux Données du pipeline * @return array Données du pipeline */ function [(#PREFIXE)]_affiche_auteurs_interventions($flux) { if ($id_auteur = intval($flux['args']['id_auteur'])) { $flux['data'] .= recuperer_fond('prive/objets/liste/#OBJET', array( 'id_auteur' => $id_auteur, 'titre' => _T('#TYPE:info_[(#OBJET)]_auteur') ), array('ajax' => true)); } return $flux; } [ (#REM) AFFICHER CONTENU OBJET ] /** * Ajout de formulaires de liens * * @pipeline affiche_contenu_objet * @param array $flux Données du pipeline * @return array Données du pipeline */ function [(#PREFIXE)]_afficher_contenu_objet($flux) { $type = $flux['args']['type']; $id = $flux['args']['id_objet']; return $flux; } [ (#REM) OBJET COMPTE ENFANT ] /** * Compter les enfants d'une rubrique * * @pipeline objets_compte_enfants * @param array $flux Données du pipeline * @return array Données du pipeline **/ function [(#PREFIXE)]_objet_compte_enfants($flux) { if ($flux['args']['objet']=='rubrique' AND $id_rubrique=intval($flux['args']['id_objet'])) { [(#STATUT|oui) // juste les publiés ? if (array_key_exists('statut', $flux\['args'\]) and ($flux\['args'\]\['statut'\] == 'publie')) { $flux\['data'\]\['#OBJET'\] = sql_countsel('#TABLE', "id_rubrique=".intval($id_rubrique)." AND (statut='publie')"); } else { $flux\['data'\]\['#OBJET'\] = sql_countsel('#TABLE', "id_rubrique=".intval($id_rubrique)." AND (statut<>'poubelle')"); } ][(#STATUT|non) $flux\['data'\]\['#OBJET'\] = sql_countsel('#TABLE', "id_rubrique=".intval($id_rubrique)); ] } return $flux; } [ (#REM) OPTIMISER BASE DISPARUS ] /** * Optimiser la base de données en supprimant les liens orphelins * de l'objet vers quelqu'un et de quelqu'un vers l'objet. * * @pipeline optimiser_base_disparus * @param array $flux Données du pipeline * @return array Données du pipeline */ function [(#PREFIXE)]_optimiser_base_disparus($flux){ include_spip('action/editer_liens'); $flux['data'] += objet_optimiser_liens(array('#TYPE'=>'*'),'*'); return $flux; } ?>