File "licence_pipelines.php"

Full path: /home/argothem/www/organecyberpresse/plugins/auto/licence/v1.1.0/licence_pipelines.php
File size: 3.16 KB
MIME-type: text/x-php
Charset: utf-8

<?php

/**
 * Plugin Licence
 * (c) 2007-2013 fanouch
 * Distribue sous licence GPL
 *
 * @package SPIP\Licences\Pipelines
 */

if (!defined('_ECRIRE_INC_VERSION')) {
	return;
}

/**
 * Insertion dans le pipeline affiche_milieu (SPIP)
 *
 * Insertion au centre des pages d'articles dans le privé
 * d'un formulaire d'édition de la licence de l'article
 *
 * @param array $flux
 * 		Le contexte du pipeline
 * @return array $flux
 * 		Le contexte du pipeline modifié
 */
function licence_affiche_milieu($flux) {
	if ($flux['args']['exec'] == 'article') {
		$contexte['id_article'] = $flux['args']['id_article'];
		$texte = recuperer_fond('prive/squelettes/contenu/licence_article', $contexte, ['ajax' => true]);
		if (($p = strpos($flux['data'], '<!--affiche_milieu-->')) !== false) {
			$flux['data'] = substr_replace($flux['data'], $texte, $p, 0);
		} else {
			$flux['data'] .= $texte;
		}
	}
	return $flux;
}

/**
 * Insertion dans le pipeline pre_insertion (SPIP)
 *
 * Si création d'un nouvel article, on lui attribue la licence par défaut si
 * on utilise correctement les fonctions internes de SPIP pour créer des articles
 * cf : http://trac.rezo.net/trac/spip/browser/branches/spip-2.1/ecrire/action/editer_article.php#L214
 *
 * @param array $flux
 * 		Le contexte du pipeline
 * @return array $flux
 * 		Le contexte du pipeline auquel on a ajouté la licence
 */
function licence_pre_insertion($flux) {
	if ($flux['args']['table'] == 'spip_articles') {
		include_spip('inc/config');
		$licence_defaut = lire_config('licence/licence_defaut');
		$flux['data']['id_licence'] = $licence_defaut;
	}
	return $flux;
}


/**
 * Insertion dans le pipeline editer_contenu_objet (SPIP)
 *
 * Ajout dans le formulaire d'édition de document du sélecteur de licence
 *
 * @param array $flux
 * 		Le contexte du pipeline
 * @return array  $flux
 * 		Le contexte du pipeline complété
 */
function licence_editer_contenu_objet($flux) {
	if (in_array($flux['args']['type'], ['document'])) {
		if (preg_match(",<(li|div) [^>]*class=[\"']editer editer_credits.*>(.*)<\/(li|div)>,Uims", $flux['data'], $regs)) {
			include_spip('inc/licence');
			$licences = licence_lister();
			$ajouts = recuperer_fond('prive/licence_document_saisies', ['id_document' => $flux['args']['id'],'licences' => $licences]);
			$flux['data'] = str_replace($regs[0], $ajouts . $regs[0], $flux['data']);
		}
	}
	return $flux;
}

/**
 * Insertion dans le pipeline xmlrpc_methodes (xmlrpc)
 * Ajout de méthodes xml-rpc spécifiques à Licence
 *
 * @param array $flux
 * 		Un array des methodes déjà présentes, fonctionnant sous la forme :
 * 			-* clé = nom de la méthode;
 * 			-* valeur = le nom de la fonction à appeler;
 * @return array $flux
 * 		L'array complété avec nos nouvelles méthodes
 */
function licence_xmlrpc_methodes($flux) {
	$flux['spip.liste_licences'] = 'licence_liste_licences';
	return $flux;
}

/**
 * Insertion dans le pipeline xmlrpc_server_class (xmlrpc)
 *
 * Ajout de fonctions spécifiques utilisées par le serveur xml-rpc
 * On inclu le fichier contenant les classes spécifiques
 *
 * @param $flux
 * @return $flux
 */
function licence_xmlrpc_server_class($flux) {
	include_spip('inc/licence_xmlrpc');
	return $flux;
}