You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
joindre_auto_zone/jaz_pipelines.php

62 lines
1.5 KiB
PHP

<?php
/**
* JAZ - Joindre Automatiquement une Zone
* Cyril MARION (c)2012 GPL
*
*/
if (!defined("_ECRIRE_INC_VERSION")) return;
/**
* Détecter la création d'un nouvel auteur l'ajouter aux zones restreintes automatiques
*
* @param array $flux
* @return array
*/
function jaz_post_insertion($flux)
{
if ($flux['args']['table'] == 'spip_auteurs'
and $id_auteur = $flux['args']['id_objet'])
{
// On ajoute cet auteur aux zones
jaz_ajouter_auteur_zones($id_auteur);
}
return $flux;
}
/**
* Chercher les zones automatiques à joindre et ajouter l'auteur à ces zones
*
* Les zones peuvent être indiquées soit :
* - par la constante `_ZONES_AUTO_JOINTES` (dans `mes_options.php` par exemple)
* tel que `define('_ZONES_AUTO_JOINTES', '2:4')` où 2 et 4 sont des identifiants de zone
* - soit, à défaut de constante, par les zones indiquées dans le formulaire de configuration
* du plugin (meta `jaz/zones_automatiques`).
*
* @param int $id_auteur Identifiant d'auteur
*/
function jaz_ajouter_auteur_zones($id_auteur)
{
// On cherche les Zones Auto Jointes :
if (defined('_ZONES_AUTO_JOINTES')) {
$zones = explode(':', _ZONES_AUTO_JOINTES);
} else {
include_spip('inc/config');
$zones = lire_config('jaz/zones_automatiques');
}
if ($zones) {
include_spip('action/editer_zone');
zone_lier($zones, 'auteur', $id_auteur);
spip_log('Auteur ' . $id_auteur . ' ajouté aux zones : ' . implode(', ', $zones), 'jaz');
}
}
?>