Example #1
0
function chatons_PP_pre_charger($flux) {
	$chatons = cs_lire_data_outil('chatons');
	$max = count($chatons[0]);
	$r = array();
	for ($i=0; $i<$max; $i++) {
		$c = &$chatons[0][$i];
		$id = 'chaton_'.str_replace(':','',$c);
		$r[] = array(
			"id" => $id,
			"name" => _T('couteau:pp_chatons_inserer', array('chaton'=>$c)),
			"className" => $id,
			"replaceWith" => $c,
			"display" => true);
	}
	$r = array(
		"id" => 'cs_chatons_drop',
		"name" => _T('couteau:pp_chatons_inserer_drop'),
		"className" => 'cs_chatons_drop',
		"replaceWith" => '',
		"display" => true,
		"dropMenu" => $r,
	);
	foreach(cs_pp_liste_barres('chatons') as $b)
		$flux[$b]->ajouterApres('grpCaracteres', $r);
	return $flux;
}
Example #2
0
function autobr_CS_pre_charger($flux) {
	if(!defined('_CS_AUTOBR_RACC')) return $flux;
	$r = array(array(
		"id" => 'autobr',
		"name" => _T('couteau:pp_autobr'),
		"className" => 'autobr',
		"openWith"    => "\n&lt;alinea&gt;", 
		"closeWith"   => "&lt;/alinea&gt;\n",
		"selectionType" => "line",
		"display" => true));
	foreach(cs_pp_liste_barres('autobr') as $b)
		$flux[$b] = isset($flux[$b])?array_merge($flux[$b], $r):$r;
	return $flux;
}
Example #3
0
function blocs_CS_pre_charger($flux) {
	$r = array(array(
		"id" => 'blocs_bloc',
		"name" => _T('couteau:pp_blocs_bloc'),
		"className" => 'blocs_bloc',
		"replaceWith" => "\n<bloc>"._T('couteau:pp_un_titre')."\n\n"._T('couteau:pp_votre_texte')."\n</bloc>\n",
		"display" => true), array(
		"id" => 'blocs_visible',
		"name" => _T('couteau:pp_blocs_visible'),
		"className" => 'blocs_visible',
		"replaceWith" => "\n<visible>"._T('couteau:pp_un_titre')."\n\n"._T('couteau:pp_votre_texte')."\n</visible>\n",
		"display" => true));
	foreach(cs_pp_liste_barres('blocs') as $b)
		$flux[$b] = isset($flux[$b])?array_merge($flux[$b], $r):$r;
	return $flux;
}
Example #4
0
function decoupe_CS_pre_charger($flux) {
	$r = array(array(
		"id" => 'decoupe_pages',
		"name" => _T('couteau:pp_decoupe_separateur'),
		"className" => 'decoupe_pages',
		"replaceWith" => "\n"._decoupe_SEPARATEUR."\n",
		"display" => true), array(
		"id" => 'decoupe_onglets',
		"name" => _T('couteau:pp_decoupe_onglets'),
		"className" => 'decoupe_onglets',
		"replaceWith" => "\n<onglets>"._T('couteau:pp_votre_titre', array('nb'=>1))."\n\n"._T('couteau:pp_votre_texte')."\n\n"
			._decoupe_SEPARATEUR._T('couteau:pp_votre_titre', array('nb'=>2))."\n\n"._T('couteau:pp_votre_texte')."\n\n"
			._decoupe_SEPARATEUR._T('couteau:pp_votre_titre', array('nb'=>3))."\n\n"._T('couteau:pp_votre_texte')."\n\n</onglets>\n",
		"display" => true));
	foreach(cs_pp_liste_barres('decoupe') as $b) {
		// pas de decoupe dans les forums
		$r2 = $b=='forum'?array($r[1]):$r;
		$flux[$b] = isset($flux[$b])?array_merge($flux[$b], $r2):$r2;
	}
	return $flux;
}
Example #5
0
function cs_smileys_PP_pre_charger($flux) {
	$smileys = smileys_uniques(cs_lire_data_outil('smileys'));
	$max = count($smileys[0]);
	$r = array();
	for ($i=0; $i<$max; $i++) {
		$id = 'smiley_'.str_replace('.png','',$smileys[2][$i]);
		$r[] = array(
				"id" => $id,
				"name" => _T('couteau:pp_smileys_inserer', array('smiley'=>$smileys[0][$i])),
				"className" => $id,
				"replaceWith" => $smileys[0][$i],
				"display" => true);
	}
	$r = array(
		"id" => 'cs_smileys_drop',
		"name" => _T('couteau:pp_smileys_inserer', array('smiley'=>'')),
		"className" => 'cs_smileys_drop',
		"replaceWith" => '',
		"display" => true,
		"dropMenu"	=> $r,
	);
	foreach(cs_pp_liste_barres('smileys') as $b)
		$flux[$b]->ajouterApres('grpCaracteres', $r);
	return $flux;
}
Example #6
0
function filets_PP_pre_charger($flux) {
	$filets = cs_lire_data_outil('filets_sep');
	$max = count($filets[0]);
	$r = array();
	for ($i=0; $i<=_FILETS_SEP_MAX_CSS; $i++) {
		$r[] = array(
			"id" => 'filet_'.$i,
			"name" => _T('couteau:pp_filets_inserer', array('filet'=>$i)),
			"className" => 'filet_'.$i,
			"replaceWith" => "\n__{$i}__\n",
			"display" => true);
	}
	for ($i=0; $i<$max; $i++) {
		$c = &$filets[0][$i];
		$id = 'filet_'.str_replace('.', '_', trim($c, '_'));
		$r[] = array(
			"id" => $id,
			"name" => _T('couteau:pp_filets_inserer', array('filet'=>$filets[2][$i])),
			"className" => $id,
			"replaceWith" => "\n$c\n",
			"display" => true);
	}
	$r = array(
		"id" => 'cs_filets_drop',
		"name" => _T('couteau:pp_filets_inserer_drop'),
		"className" => 'cs_filets_drop',
		"replaceWith" => '',
		"display" => true,
		"dropMenu" => $r,
	);
	foreach(cs_pp_liste_barres('filets_sep') as $b)
		$flux[$b]->ajouterApres('grpCaracteres', $r);
	return $flux;
}
Example #7
0
function inc_description_outil_dist($outil_, $url_self, $modif=false) {
	global $outils, $cs_variables, $metas_vars;
	$outil = &$outils[$outil_];
	$actif = $outil['actif'];
	$index = $outil['index'];
//cs_log("inc_description_outil_dist() - Parse la description de '$outil_'");
	// la description de base est a priori dans le fichier de langue
	$descrip = isset($outil['description'])?$outil['description']:_T('couteauprive:'.$outil['id'].':description');
	// ajout des variables liees a la barre typo
	if(defined('_DIR_PLUGIN_PORTE_PLUME') 
	 && ( isset($outil['pipeline:porte_plume_barre_pre_charger']) || isset($outil['pipeline:porte_plume_cs_pre_charger']))
	 && count($barres = cs_pp_liste_barres())) {
		$descrip .= "\n\n@puce@ "._T('couteauprive:barres_typo_intro');
		$i=0;
		foreach($barres as $f=>$b) {
			$nom = "pp_{$b}_$outil[id]";
			$descrip .= ($i?'[[->':'[[')."%$nom%]]";
			add_variable( array(
				'nom' => $nom,
				'check' => ($b=='edition' || $b=='forum')?'couteauprive:barres_typo_'.$b:$f,
				'defaut' => 1, // par defaut les boutons seront toujours inseres
				'label' => $i++?NULL:'@_CS_CHOIX@',
			));
		}
	}
	if (strpos($descrip, '<:')!==false) {
		if(!isset($outil['perso']))
			// lames natives : reconstitution d'une description eventuellement morcelee
			// exemple : <:mon_outil:3:> est remplace par _T('couteauprive:mon_outil:description3')
			$descrip = preg_replace_callback(',<:([a-z_][a-z0-9_-]*):([0-9]*):>,i', 
				create_function('$m','return _T("couteauprive:$m[1]:description$m[2]");'), $descrip);
		// chaines de langue personnalisees
		$descrip = preg_replace(',<:([:a-z0-9_-]+):>,ie', '_T("$1")', $descrip);
	}
	// envoi de la description en pipeline
#	list(,$descrip) = pipeline('init_description_outil', array($outil_, $descrip));
	// globale pour la callback description_outil_input2_callback
	global $cs_input_variable;	$cs_input_variable = array();
	// remplacement des zones input de format [[label->qq chose]]
	$descrip = preg_replace_callback(',\[\[([^][]*)->([^]]*)\]\],msS', 'description_outil_input1_callback' , $descrip);
	// remplacement des zones input de format [[qq chose %variable% qq chose]] en utilisant _T('couteauprive:label:variable') comme label
	// la fonction description_outil_input2_callback renseigne la globale $cs_input_variable
	$descrip = preg_replace_callback(',\[\[((.*?)%([a-zA-Z_][a-zA-Z0-9_]*)%(.*?))\]\],msS', 'description_outil_input2_callback', $descrip);

	// initialisation et remplacement des variables de format : %variable%
	$t = preg_split(',%([a-zA-Z_][a-zA-Z0-9_]*)%,', $descrip, -1, PREG_SPLIT_DELIM_CAPTURE);
	$res = '';
	$nb_disabled = $nb_variables = 0; $variables = array();
	for($i=0;$i<count($t);$i+=2) if(isset($t[$i+1]) && strlen($var=trim($t[$i+1]))) {
		// si la variable est presente on fabrique le input
		if(isset($cs_variables[$var])) {
			$res .= description_outil_une_variable(
				$index + (++$nb_variables),
				$outil, $var,
				$t[$i], $modif);
			$variables[] = $var;
			if($cs_variables[$var]['disabled']) ++$nb_disabled;
		} else {
			// probleme a regler dans config_outils.php !
			$temp = $t[$i]."[$var?]"; $res .= $temp;
		}
	} else 
		$res .= $t[$i];
	$outil['variables'] = $variables;
	$outil['nb_variables'] = $nb_variables;
	$outil['nb_disabled'] = $nb_disabled;

	// si ce n'est qu'une simple initialisation, on sort
	if(!$modif) {unset($cs_input_variable); return;}

	// information sur les raccourcis disponibles
	if($a=cs_aide_raccourci($outil_)) $res .= '<p>@puce@ '._T('couteauprive:detail_raccourcis').'<br /><html>'.$a.'.</html></p>';
	// envoi de la description courante en pipeline
	include_spip("cout_define");
	$res = pipeline('pre_description_outil', array('outil'=>$outil_, 'texte'=>$res, 'actif'=>$actif));
	$res = $res['texte'];
	// recherche des blocs <variable></variable> eventuels associes pour du masquage/demasquage
	foreach($cs_input_variable as $v) {
		$res = preg_replace_callback(",<($v)\s+valeur=(['\"])(.*?)\\2\s*>,", 'cs_input_variable_callback', $res);
		$res = str_replace("</$v>", '</div>', $res);
	}
	unset($cs_input_variable);
	// bouton 'Modifier' : en dessous du texte s'il y a plusieurs variables, a la place de _VAR_OUTIL s'il n'y en a qu'une.
	// attention : on ne peut pas modifier les variables si l'outil est inactif
	if($actif) {
		$bouton = "<input type='submit' class='fondo' style='margin-left:1em;' value=\"".($nb_variables>1?_T('couteauprive:modifier_vars_0'):_T('bouton_modifier'))."\" />";
		if($nb_variables>1) $res .= "<div class=\"cs_bouton\">$bouton</div>";
			else $res = str_replace(_VAR_OUTIL, $bouton, $res);
	}
	$res = "\n<div id='cs_inner_outil-$index' >" . str_replace(array('<ul></ul>',_VAR_OUTIL),'',$res) . '</div>';
	// si des variables sont trouvees ?
	if($nb_variables) {
		$variables = urlencode(serialize($variables));
		// syntaxe : ajax_action_auteur($action, $id, $script, $args='', $corps=false, $args_ajax='', $fct_ajax='')
		$res = ajax_action_auteur('description_outil', $index, $url_self, "modif=oui&cmd=descrip&outil={$outil['id']}", 
			"\n<input type='hidden' value='$variables' name='variables' /><input type='hidden' value='$outil_' name='outil' />"	. $res);
	}
//cs_log(" FIN : inc_description_outil_dist({$outil['id']}) - {$outil['nb_variables']} variables(s) trouvee(s)");
	// remplacement en deux passes des labels en doublon
	for($i=0;$i<2;$i++) if(strpos($res,'<:label:')!==false) 
		$res = preg_replace_callback(',<:label:([a-zA-Z_][a-zA-Z0-9_-]*):>,', 'description_outil_label_callback', $res);
	// remplacement des blocs avec style. ex : <q2>bla bla</q2>
	$res = preg_replace(',</q(\d)>,','</div>', preg_replace(',<q(\d)>,','<div class="q$1">', $res));
	// remplacement des inputs successifs sans label : [[%var1%]][[->%var2%]] ou [[%var1%]][[-->%var2%]]
	$res = preg_replace(',(<br />)?</fieldset><fieldset>( ?<div>),', '$2', $res);
	// remplacement de diverses constantes
	$res = str_replace(array('@puce@', '@_CS_CHOIX@','@_CS_ASTER@','@_CS_PLUGIN_JQUERY192@'),
		array(definir_puce(), _T('couteauprive:votre_choix'), '<sup>(*)</sup>', defined('_SPIP19300')?'':_T('couteauprive:detail_jquery3')), $res);
	// remplacement des constantes qui restent de forme @_CS_XXXX@
	if(strpos($res,'@_CS')!==false) 
		$res = preg_replace_callback(',@(_CS_[a-zA-Z0-9_]+)@,', 
			create_function('$matches','return defined($matches[1])?constant($matches[1]):(\' (\'._T(\'couteauprive:outil_inactif\').\')\');'), $res);
	// remplacement des liens vers un autre outil
	$res = description_outil_liens($res);

	// envoi de la description finale en pipeline
#	list(,$res) = pipeline('post_description_outil', array($outil_, $res));
	return cs_ajax_outil_greffe("description_outil-$index", $res);
}
Example #8
0
function couleurs_PP_pre_charger($flux) {
	$couleurs = cs_lire_data_outil('couleurs');
	$r1 = $r2 = array();
	foreach($couleurs[2] as $i=>$v) {
		$id = 'couleur_texte_'.str_replace(' ','_',$i);
		$r1[] = array(
				"id" => $id,
				"name" => _T('couteau:pp_couleur_texte', array('couleur'=>$i)),
				"className" => $id, 
				"openWith" => "[$i]", 
				"closeWith" => "[/$i]",
				"selectionType" => "word",
				"display" => true);
	}
	if(_COULEURS_FONDS===1) foreach($couleurs[2] as $i=>$v) {
		$id = 'couleur_fond_'.str_replace(' ','_',$i);
		$r2[] = array(
				"id" => $id,
				"name" => _T('couteau:pp_couleur_fond', array('couleur'=>$i)),
				"className" => $id, 
				"openWith" => "[fond $i]", 
				"closeWith" => "[/fond $i]",
				"selectionType" => "word",
				"display" => true);
	}

	$a = array(
		"id" => 'cs_couleur_texte',
		"name" => _T('couteau:colorer_texte'),
		"className" => 'cs_couleur_texte',
		"replaceWith" => '',
		"display" => true,
		"dropMenu"	=> $r1,
	);
	foreach($barres = cs_pp_liste_barres('couleurs') as $b)
		$flux[$b]->ajouterApres('stroke_through', $a);
	if(!count($r2)) return $flux;

	$a = array(
		"id" => 'cs_couleur_fond',
		"name" => _T('couteau:colorer_fond'),
		"className" => 'cs_couleur_fond',
		"replaceWith" => '',
		"display" => true,
		"dropMenu"	=> $r2,
	);
	foreach($barres as $b)
		$flux[$b]->ajouterApres('cs_couleur_texte', $a);
	return $flux;
}