Browse Source

Espaces de fins de ligne en moins.

3.1
marcimat@rezo.net 8 years ago
parent
commit
4a05481896
  1. 111
      porte_plume_fonctions.php

111
porte_plume_fonctions.php

@ -1,7 +1,7 @@
<?php
/**
* Fonctions utiles pour le Porte Plume
*
*
* @plugin Porte Plume pour SPIP
* @license GPL
* @package SPIP\PortePlume\BarreOutils
@ -15,7 +15,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
*
* @example
* $barre = new Barre_Outil($description);
*
*
* @package SPIP\PortePlume\BarreOutils
*/
class Barre_outils{
@ -114,7 +114,7 @@ class Barre_outils{
'className', // classe css utilisee
'lang', // langues dont le bouton doit apparaitre - array
'lang_not', // langues dont le bouton ne doit pas apparaitre - array
'selectionType', // '','word','line' : type de selection (normale, aux mots les plus proches, a la ligne la plus proche)
'selectionType', // '','word','line' : type de selection (normale, aux mots les plus proches, a la ligne la plus proche)
'multiline', // open/close sur chaque ligne (mais replace est applique sur l'ensemble de la selection)
'forceMultiline', // pour faire comme si on faisait systematiquement un control+shift (et replace est applique sur chaque ligne de la selection)
@ -131,7 +131,7 @@ class Barre_outils{
/**
* Constructeur
*
*
* Initialise la barre avec les paramètres transmis
* en n'adressant que les paramètres effectivement valides
*
@ -155,7 +155,7 @@ class Barre_outils{
/**
* Vérifie que les paramètres d'une clé existent
* et retourne un tableau des paramètres valides
*
*
* @param string $nom
* Clé à vérifier (ex: 'markupSet')
* @param array $params
@ -169,7 +169,7 @@ class Barre_outils{
foreach ($params as $i=>$v) {
$params[$i] = $this->verif_params($i, $v);
}
}
}
// sinon on teste la validite
else {
foreach ($params as $p=>$v) {
@ -183,17 +183,17 @@ class Barre_outils{
/**
* Permet d'affecter des paramètres à un élément de la barre
*
*
* La fonction retourne les paramètres, de sorte qu'on peut s'en servir
* pour simplement récupérer ceux-ci.
*
*
* Il est possible d'affecter des paramètres avant/après l'élément trouvé
* en definisant une valeur différente pour le $lieu : 'dedans','avant','apres'
* par defaut 'dedans' (modifie l'élément trouvé).
*
*
* Lorsqu'on demande d'insérer avant ou après, la fonction retourne
* les paramètres inserés
*
*
* @param array $tableau
* Tableau ou chercher les elements (sert pour la recursion)
* @param string $identifiant
@ -213,11 +213,11 @@ class Barre_outils{
*/
function affecter(&$tableau, $identifiant, $params=array(), $lieu='dedans', $plusieurs=false){
static $cle_de_recherche = 'id'; // ou className ?
if ($tableau === null) // utile ?
$tableau = &$this->markupSet;
if (!in_array($lieu, array('dedans','avant','apres')))
if (!in_array($lieu, array('dedans','avant','apres')))
$lieu = 'dedans';
// present en premiere ligne ?
@ -236,7 +236,7 @@ class Barre_outils{
foreach ($les_params as $i=>$un_params) {
$les_params[$i] = $this->verif_params($identifiant, $un_params);
}
// dedans on merge ($params uniquement tableau cle/valeur)
if ($lieu == 'dedans' && !$plusieurs) {
return $tableau[$trouve] = array_merge($tableau[$trouve], $les_params[0]);
@ -258,7 +258,7 @@ class Barre_outils{
foreach ($tableau as $i=>$v){
if (is_array($v)) {
foreach ($v as $m=>$n) {
if (is_array($n) AND ($r = $this->affecter($tableau[$i][$m], $identifiant, $params, $lieu, $plusieurs)))
if (is_array($n) AND ($r = $this->affecter($tableau[$i][$m], $identifiant, $params, $lieu, $plusieurs)))
return $r;
}
}
@ -266,11 +266,11 @@ class Barre_outils{
return false;
}
/**
* Permet d'affecter des paramètres à tous les éléments de la barre
* ou à une liste d'identifiants d'éléments indiqués.
*
*
* @param array $tableau
* Tableau où chercher les éléments
* @param array $params
@ -284,7 +284,7 @@ class Barre_outils{
function affecter_a_tous(&$tableau, $params=array(), $ids=array()){
if (!$params)
return false;
if ($tableau === null)
$tableau = &$this->markupSet;
@ -302,8 +302,8 @@ class Barre_outils{
}
return true;
}
/**
* Affecte les valeurs des paramètres indiqués au bouton demandé
* et retourne l'ensemble des paramètres du bouton (sinon false)
@ -321,7 +321,7 @@ class Barre_outils{
function set($identifiant, $params=array()) {
// prudence tout de meme a pas tout modifier involontairement (si array)
if (!$identifiant) return false;
if (is_string($identifiant)) {
return $this->affecter($this->markupSet, $identifiant, $params);
}
@ -330,7 +330,7 @@ class Barre_outils{
}
return false;
}
/**
* Retourne les parametres du bouton demande
*
@ -347,8 +347,8 @@ class Barre_outils{
}
return false;
}
/**
* Affiche le ou les boutons demandés
*
@ -363,8 +363,8 @@ class Barre_outils{
function afficher($identifiant){
return $this->set($identifiant,array('display'=>true));
}
/**
* Cache le ou les boutons demandés
*
@ -379,8 +379,8 @@ class Barre_outils{
function cacher($identifiant){
return $this->set($identifiant, array('display'=>false));
}
/**
* Affiche tous les boutons
*
@ -391,7 +391,7 @@ class Barre_outils{
function afficherTout(){
return $this->affecter_a_tous($this->markupSet, array('display'=>true));
}
/**
* Cache tous les boutons
*
@ -402,7 +402,7 @@ class Barre_outils{
function cacherTout(){
return $this->affecter_a_tous($this->markupSet, array('display'=>false));
}
/**
* Ajoute un bouton ou quelque chose, avant un autre déjà présent
@ -471,7 +471,7 @@ class Barre_outils{
function ajouterPlusieursApres($identifiant, $tableau_params){
return $this->affecter($this->markupSet, $identifiant, $tableau_params, 'apres', true);
}
/**
* Ajoute une fonction JS qui pourra être utilisée par les boutons
*
@ -484,18 +484,18 @@ class Barre_outils{
$this->functions .= "\n" . $fonction . "\n";
}
}
/**
* Supprimer les éléments non affichés (display:false)
* Et les séparateurs (li vides) selon la configuration
*
*
* @param array $tableau Tableau de description des outils
* @return void
*/
function enlever_elements_non_affiches(&$tableau){
if ($tableau === null) // utile ?
$tableau = &$this->markupSet;
foreach ($tableau as $p=>$v) {
if (isset($v['display']) AND !$v['display']) {
@ -523,9 +523,9 @@ class Barre_outils{
*
* Le bouton précédent le séparateur reçoit une classe CSS 'separateur_avant'
* Celui apres 'separateur_apres'
*
*
* @param array $tableau
* Tableau de description des outils
* Tableau de description des outils
* @return void
**/
function enlever_separateurs(&$tableau) {
@ -555,7 +555,7 @@ class Barre_outils{
/**
* Supprime les éléments vides (uniquement à la racine de l'objet)
* et uniquement si chaîne ou tableau.
*
*
* Supprime les paramètres privés
* Supprime les paramètres inutiles a markitup/json dans les paramètres markupSet
* (id, display, icone)
@ -579,11 +579,11 @@ class Barre_outils{
}
unset ($this->_liste_params_autorises);
}
/**
* Crée la sortie json pour le javascript des paramètres de la barre
*
*
* @return string Déclaration json de la barre
*/
function creer_json(){
@ -594,7 +594,7 @@ class Barre_outils{
$barre->enlever_elements_non_affiches($this->markupSet);
$barre->enlever_separateurs($this->markupSet);
$barre->enlever_parametres_inutiles();
$json = Barre_outils::json_export($barre);
// on lance la transformation des &chose; en veritables caracteres
@ -607,10 +607,10 @@ class Barre_outils{
/**
* Transforme une variable PHP dans un équivalent javascript (json)
*
*
* Copié depuis ecrire/inc/json, mais modifié pour que les fonctions
* JavaScript ne soient pas encapsulées dans une chaîne (string)
*
*
* @access private
* @param mixed $var the variable
* @return string|boolean
@ -658,30 +658,30 @@ class Barre_outils{
}
return false;
}
}
/**
* Crée le code CSS pour les images des icones des barres d'outils
*
*
* S'appuie sur la description des jeux de barres disponibles et cherche
* une fonction barre_outils_($barre)_icones pour chaque barre et
* l'exécute si existe, attendant alors en retour un tableau de couples :
* nom de l'outil => nom de l'image
*
* @pipeline_appel porte_plume_lien_classe_vers_icone
*
*
* @return string Déclaration CSS des icones
*/
function barre_outils_css_icones(){
// recuperer la liste, extraire les icones
$css = "";
// liste des barres
if (!$barres = barre_outils_liste())
if (!$barres = barre_outils_liste())
return null;
// liste des classes css et leur correspondance avec une icone
$classe2icone = array();
foreach ($barres as $barre) {
@ -692,7 +692,7 @@ function barre_outils_css_icones(){
}
}
}
/**
* Permettre aux plugins d'étendre les icones connues du porte plume
*
@ -706,7 +706,7 @@ function barre_outils_css_icones(){
* Exemple : 'outil_header1' => array('spt-v1.png','-10px -226px')
*/
$classe2icone = pipeline('porte_plume_lien_classe_vers_icone', $classe2icone);
// passage en css
foreach ($classe2icone as $n=>$i) {
$pos="";
@ -732,7 +732,7 @@ function barre_outils_css_icones(){
*
* Une fonction barre_outils_{type}_dist() retournant la barre doit
* donc exister.
*
*
* @param string $set
* Type de barre (ex: 'edition')
* @return Barre_Outils|bool
@ -755,7 +755,7 @@ function barre_outils_initialiser($set){
*/
function barre_outils_liste(){
static $sets = -1;
if ($sets !== -1)
if ($sets !== -1)
return $sets;
// on recupere l'ensemble des barres d'outils connues
@ -779,7 +779,7 @@ function barre_outils_liste(){
* sur un texte donné. Sécurise aussi le texte en appliquant safehtml().
*
* Ce mécanisme est à préférer au traditionnel #TEXTE*|propre
*
*
* traitements_previsu() consulte la globale $table_des_traitements et
* applique le traitement adequat. Si aucun traitement n'est trouvé,
* alors propre() est appliqué.
@ -787,7 +787,7 @@ function barre_outils_liste(){
* @package SPIP\PortePlume\Fonctions
* @see champs_traitements() dans public/references.php
* @global table_des_traitements
*
*
* @param string $texte
* Texte source
* @param string $nom_champ
@ -828,5 +828,4 @@ function traitements_previsu($texte, $nom_champ='', $type_objet='', $connect=nul
// on ne peut donc se fier au statut de l'auteur connecté car le contenu ne vient pas
// forcément de lui
return safehtml($texte);
}
?>
}
Loading…
Cancel
Save