Valider 8c4dfe94 rédigé par nicod's avatar nicod
Parcourir les fichiers

Mise en place d'une configuration pour pouvoir charger les assests tout le...

Mise en place d'une configuration pour pouvoir charger les assests tout le temps (par insert_head), ou bien seulement quand des saisies sont identifiées (par affichage_final)
parent 71ffbc0f
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+16 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<div id="formulaire_#FORM" class='formulaire_spip formulaire_editer formulaire_#FORM'>
	[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>]
	[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]

	<BOUCLE_editable(CONDITION){si #ENV{editable}}>
		<form method="post" action="#ENV{action}#formulaire_#FORM">
			#ACTION_FORMULAIRE{#ENV{action}}
			<div class="editer-groupe">
				[(#SAISIE{case, assests_global, label_case=<:saisies:assests_global:>})]
				<p class="boutons">
					<input type="submit" class="submit" value="<:bouton_enregistrer:>"/>
				</p>
			</div>
		</form>
	</BOUCLE_editable>
</div>
 No newline at end of file
+2 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -9,6 +9,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(

	// A
	'afficher' => 'Afficher',
	'assests_global' => 'Charger le javascript et les CSS sur toutes les pages, dans la balise &lt;head&gt;',

	// B
	'bouton_parcourir_docs_article' => 'Parcourir l’article',
@@ -18,6 +19,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(

	// C
	'caracteres_restants' => 'caractères restants',
	'configuration' => 'Configuration',
	'construire_action_annuler' => 'Annuler',
	'construire_action_configurer' => 'Configurer',
	'construire_action_deplacer' => 'Déplacer',
+1 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -19,6 +19,7 @@

	<pipeline nom="insert_head" inclure="saisies_pipelines.php" />
	<pipeline nom="header_prive" inclure="saisies_pipelines.php" />
	<pipeline nom="affichage_final" inclure="saisies_pipelines.php" />
	<pipeline nom="saisies_autonomes" action="" />
	<pipeline nom="saisie_est_tabulaire" action="" />
	<pipeline nom="saisies_afficher_si_js_type" />
+5 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
[(#AUTORISER{saisies_configurer}|sinon_interdire_acces)]
<h1 class="grostitre"><:saisies:configuration:></h1>
<div class="ajax">
	#FORMULAIRE_CONFIGURER_SAISIES
</div>
+51 −8
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -48,14 +48,54 @@ function saisies_header_prive($flux) {
 * @return array $flux modifié
 **/
function saisies_insert_head($flux) {
	if(lire_config('saisies/assests_global')) {
		$flux = saisies_generer_head($flux);
	}
	return $flux;
}

/**
 * Ajoute les scripts JS et CSS de saisies dans l'espace public
 *
 * Ajoute également de quoi gérer le datepicker de la saisie date si
 * celle-ci est utilisée dans la page.
 *
 * @param string $flux
 * @return string
 **/
function saisies_affichage_final($flux) {
	if (
		!lire_config('saisies/assests_global')
		and $GLOBALS['html'] // si c'est bien du HTML
		and strpos($flux, '<!--!inserer_saisie_editer-->') !== false // et qu'on a au moins une saisie
		and strpos($flux, '<head') !== false // et qu'on a la balise <head> quelque part
	) {
		$flux = saisies_generer_head($flux, true);
	}

	return $flux;
}

/**
 * Génère le contenu du head pour les saisies (css et js)
 * 
 * @param string $flux
 * @param false $tester_saisies
 *
 * @return string
 */
function saisies_generer_head($flux, $tester_saisies = false) {

	// ajout des CSS au début du <head>
	// on insère le CSS au début du <head>
	
	include_spip('inc/filtres');
	$css = produire_fond_statique('saisies.css');
	$ins_css = "\n<link rel='stylesheet' href='$css' type='text/css' media='all' />\n";
	// les css de jquery_ui
	if (!defined('_JQUERYUI_CSS_NON') or !boolval(_JQUERYUI_CSS_NON)) {

	if (
		(!defined('_JQUERYUI_CSS_NON') or !boolval(_JQUERYUI_CSS_NON))
		and (!$tester_saisies or strpos($flux, 'saisie_date') !==false)
	) {
		include_spip('jqueryui_pipelines');
		if (function_exists('jqueryui_dependances')) {
			$ui_plugins = jqueryui_dependances(array('jquery.ui.datepicker'));
@@ -85,11 +125,14 @@ function saisies_insert_head($flux) {
	}
	$flux = $ins_css . $flux;

	// ajout du JS à la fin du <head>
	// on insère le JS à la fin du <head>
	
	$ins_js = afficher_si_definir_fonctions();
	// si on a une saisie de type textarea avec maxlength, on va charger un script
	if (!$tester_saisies or (strpos($flux, 'textarea') !==false && strpos($flux, 'maxlength') !==false)) {
		$js = produire_fond_statique('javascript/textarea-counter/textarea-counter.js');
	$ins_js = "\n<script type='text/javascript' src='$js'></script>\n";
	$ins_js .= afficher_si_definir_fonctions();
		$ins_js .= "\n<script type='text/javascript' src='$js'></script>\n";
	}		
	foreach (array('javascript/saisies.js', 'javascript/saisies_afficher_si.js') as $script) {
		$js = timestamp(find_in_path($script));
		$ins_js .= "\n<script type='text/javascript' src='$js'></script>\n";