File "select2_pipelines.php"

Full path: /home/argothem/www/organecyberpresse/plugins/auto/select2/v2.1.0/select2_pipelines.php
File size: 3.14 KB
MIME-type: text/x-php
Charset: utf-8

<?php
/**
 * Utilisations de pipelines par Select2
 *
 * @plugin     Select2
 * @copyright  2019
 * @author     Matthieu Marcillaud
 * @licence    GNU/GPL
 * @package    SPIP\Select2\Pipelines
 */

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


/**
 * Ajoute Select2 aux plugins JS chargés
 *
 * @param array $flux
 *     Liste des js chargés
 * @return array
 *     Liste complétée des js chargés
 **/
function select2_jquery_plugins($flux) {
	$active = test_espace_prive();
	if (!$active) {
		include_spip('inc/config');
		$active = (lire_config('select2/active', 'non') === 'oui');
	}
	if ($active) {
		$flux[] = 'javascript/select2.fork.full.js'; # lib (presque) originale
		$lang = $GLOBALS['spip_lang'];
		if (!find_in_path("lib/select2/js/i18n/$lang.js")) {
			$lang = 'en';
		}
		$flux[] = "lib/select2/js/i18n/$lang.js";
		$flux[] = 'javascript/SpipSelect2.js'; # lib pour SPIP
		$flux[] = 'javascript/SpipSelect2Loader.js'; # chargements SPIP automatiques
	}
	return $flux;
}

/**
 * Ajoute Select2 aux css chargées dans le privé
 *
 * @param string $flux Contenu du head HTML concernant les CSS
 * @return string       Contenu du head HTML concernant les CSS
 */
function select2_header_prive($flux) {
	include_spip('inc/config');
	$config = lire_config('select2', []);
	$selector = trim($config['selecteur_commun'] ?? '');
	$flux .= <<<JAVASCRIPT
	<script type="text/javascript">
		window.spipConfig ??= {};
		spipConfig.select2 ??= {};
		spipConfig.select2.selector ??= '$selector';
	</script>
	JAVASCRIPT;
	return $flux;
}

/**
 * Ajoute Select2 aux css chargées dans le public
 *
 * @param string $flux  Contenu du head HTML concernant les CSS
 * @return string       Contenu du head HTML concernant les CSS
 **/
function select2_insert_head($flux) {
	include_spip('inc/config');
	if (lire_config('select2/active') === 'oui') {
		$flux = select2_header_prive($flux);
	}
	return $flux;
}


/**
 * Ajoute Select2 aux css chargées dans le privé
 *
 * @param string $flux Contenu du head HTML concernant les CSS
 * @return string       Contenu du head HTML concernant les CSS
 */
function select2_header_prive_css($flux) {

	$css = sinon(find_in_path('css/select2.css'), find_in_path('lib/select2/css/select2.css'));
	$flux .= "<link rel='stylesheet' type='text/css' media='all' href='".direction_css($css)."' />\n";
	$css = find_in_path('css/spip.select2.css');
	$flux .= "<link rel='stylesheet' type='text/css' media='all' href='".direction_css($css)."' />\n";

	return $flux;
}

/**
 * Ajoute Select2 aux css chargées dans le public
 *
 * @return string       Contenu du head HTML concernant les CSS
 **/
function select2_insert_head_css($flux) {
	include_spip('inc/config');
	$config = lire_config('select2', array());
	if (isset($config['active']) and $config['active']=='oui') {
		$css = sinon(find_in_path('css/select2_public.css'), sinon(find_in_path('css/select2.css'), find_in_path('lib/select2/css/select2.css')));
		$flux .= '<link rel="stylesheet" href="'.direction_css($css).'" type="text/css" media="all" />';
		$css = find_in_path('css/spip.select2.css');
		$flux .= '<link rel="stylesheet" href="'.direction_css($css).'" type="text/css" media="all" />';
	}
	return $flux;
}