diff --git a/medias_pipelines.php b/medias_pipelines.php index 9d4762f2f2199f02e77d4d30b6b8b13dc52a83b4..216c63760125da0ae366cb6e3f70435c570ed2ae 100644 --- a/medias_pipelines.php +++ b/medias_pipelines.php @@ -119,4 +119,24 @@ function medias_document_desc_actions($flux){ function medias_editer_document_actions($flux){ return $flux; -} \ No newline at end of file +} + + +/** + * Compter les documents dans un objet + * + * @param array $flux + * @return array + */ +function medias_objet_compte_enfants($flux){ + if ($objet = $flux['args']['objet'] + AND $id=intval($flux['args']['id_objet'])) { + // juste les publies ? + if (array_key_exists('statut', $flux['args']) and ($flux['args']['statut'] == 'publie')) { + $flux['data']['document'] = sql_countsel('spip_documents AS D JOIN spip_documents_liens AS L ON D.id_document=L.id_document', "L.objet=".sql_quote($objet)."AND Lid_objet=".intval($id)." AND (D.statut='publie')"); + } else { + $flux['data']['document'] = sql_countsel('spip_documents AS D JOIN spip_documents_liens AS L ON D.id_document=L.id_document', "L.objet=".sql_quote($objet)."AND Lid_objet=".intval($id)." AND (D.statut='publie' OR D.statut='prepa')"); + } + } + return $flux; +} diff --git a/plugin.xml b/plugin.xml index 44cfbeda689c37123ce0a13da291aaa7270fdd75..4f6fc7b6a41ef5ef9858ee5e76fe4cb51b8b5e69 100644 --- a/plugin.xml +++ b/plugin.xml @@ -41,6 +41,11 @@ <nom>afficher_complement_objet</nom> <inclure>medias_pipelines.php</inclure> </pipeline> + <pipeline> + <nom>objet_compte_enfants</nom> + <inclure>medias_pipelines.php</inclure> + </pipeline> + <pipeline> <nom>header_prive</nom> <action>modalbox_insert_head</action>