Browse Source

Ajout des boutons <code> et <cadre> pour fermer http://core.spip.org/issues/2272 .

3.0 v1.11.0
marcimat@rezo.net 11 years ago
parent
commit
c2657ee1bf
  1. 2
      .gitattributes
  2. 30
      barre_outils/edition.php
  3. BIN
      icones_barre/page_white_code.png
  4. BIN
      icones_barre/spt-v1.png
  5. BIN
      icones_barre/tag.png
  6. 4
      lang/barreoutils_fr.php
  7. 2
      paquet.xml
  8. 81
      porte_plume_fonctions.php

2
.gitattributes vendored

@ -29,9 +29,11 @@ icones_barre/lien.png -text
icones_barre/notes.png -text
icones_barre/oelig-maj.png -text
icones_barre/oelig.png -text
icones_barre/page_white_code.png -text
icones_barre/poesie.png -text
icones_barre/quote.png -text
icones_barre/spt-v1.png -text
icones_barre/tag.png -text
icones_barre/text_bold.png -text
icones_barre/text_indent.png -text
icones_barre/text_indent_remove.png -text

30
barre_outils/edition.php

@ -356,6 +356,33 @@ function barre_outils_edition(){
),
),
// Groupe de Codes informatiques.
array(
"id" => "sepCode",
"separator" => "---------------",
"display" => true,
),
array(
// groupe code et bouton <code>
"id" => 'grpCode',
"name" => _T('barreoutils:barre_inserer_code'),
"className" => 'outil_code',
"openWith" => "<code>",
"closeWith" => "</code>",
"display" => true,
"dropMenu" => array(
// bouton <cadre>
array(
"id" => 'cadre',
"name" => _T('barreoutils:barre_inserer_cadre'),
"className" => 'outil_cadre',
"openWith" => "<cadre>\n",
"closeWith" => "\n</cadre>",
"display" => true,
),
),
),
/* inutile (origine de markitup et non de spip)
// separation
@ -500,6 +527,9 @@ function barre_outils_edition_icones(){
'outil_uppercase' => array('spt-v1.png','-10px -730px'), //'text_uppercase.png'
'outil_lowercase' => array('spt-v1.png','-10px -694px'), //'text_lowercase.png'
'outil_code' => array('spt-v1.png','-10px -1086px'),
'outil_cadre' => array('spt-v1.png','-10px -1122px'),
'outil_clean' => array('spt-v1.png','-10px -982px'), //'clean.png'
'outil_preview' => array('spt-v1.png','-10px -1018px'), //'eye.png'
);

BIN
icones_barre/page_white_code.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 603 B

BIN
icones_barre/spt-v1.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

BIN
icones_barre/tag.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 389 B

4
lang/barreoutils_fr.php

@ -76,7 +76,9 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'barre_quote' => '<quote>Citer un message</quote>',
'barre_stats' => 'Afficher les statistiques du texte',
'barre_tableau' => 'Ins&eacute;rer/modifier (le s&eacute;lectionner avant) un tableau',
'barre_inserer_code' => "Ins&eacute;rer un code informatique (code)",
'barre_inserer_cadre' => "Ins&eacute;rer un code preformat&eacute; (cadre)",
// C
'config_info_enregistree' => 'Configuration sauvegard&eacute;e',

2
paquet.xml

@ -1,7 +1,7 @@
<paquet
prefix="porte_plume"
categorie="edition"
version="1.10.1"
version="1.11.0"
etat="stable"
compatibilite="[3.0.0-alpha2;["
logo="images/porte-plume-32.png"

81
porte_plume_fonctions.php

@ -131,12 +131,21 @@ class Barre_outils{
*
* Lorsqu'on demande d'inserer avant ou apres, la fonction retourne les parametres inseres
*
* @param string $identifiant : identifiant du bouton a afficher
* @param array $params : parametres a affecter a la trouvaille
* @param string $lieu : lieu d'affectation des parametres (dedans, avant, apres)
* @param false/array $tableau : tableau ou chercher les elements (sert pour la recursion)
* @param false/array $tableau
* tableau ou chercher les elements (sert pour la recursion)
* @param string $identifiant
* identifiant du bouton a afficher
* @param array $params
* parametres a affecter a la trouvaille.
* Peut etre tableau cle/valeur ou
* Tableau de tableaux cle/valeur (sauf pour $lieu = dedans)
* @param string $lieu
* lieu d'affectation des parametres (dedans, avant, apres)
* @param bool $plusieurs
* definit si $params est une forme simple (tableau cle/valeur)
* ou comporte plusieurs boutons (tableau de tableaux cle/valeur).
*/
function affecter(&$tableau, $identifiant, $params=array(), $lieu='dedans'){
function affecter(&$tableau, $identifiant, $params=array(), $lieu='dedans', $plusieurs=false){
static $cle_de_recherche = 'id'; // ou className ?
if ($tableau === null)
@ -156,18 +165,23 @@ class Barre_outils{
// si trouve, affectations
if (($trouve !== false)) {
if ($params) {
$params = $this->verif_params($identifiant, $params);
// dedans on merge
if ($lieu == 'dedans') {
return $tableau[$trouve] = array_merge($tableau[$trouve], $params);
// verifier que les insertions sont correctes
$les_params = ($plusieurs ? $params : array($params));
foreach ($les_params as $i=>$un_params) {
$les_params[$i] = $this->verif_params($identifiant, $un_params);
}
// avant ou apres, on insere
// dedans on merge ($params uniquement tableau cle/valeur)
if ($lieu == 'dedans' && !$plusieurs) {
return $tableau[$trouve] = array_merge($tableau[$trouve], $les_params[0]);
}
// avant ou apres, on insere ($params peut etre tableau cle/valeur ou tableau de tableaux cle/valeur)
elseif ($lieu == 'avant') {
array_splice($tableau, $trouve, 0, array($params));
array_splice($tableau, $trouve, 0, $les_params);
return $params;
}
elseif ($lieu == 'apres') {
array_splice($tableau, $trouve+1, 0, array($params));
array_splice($tableau, $trouve+1, 0, $les_params);
return $params;
}
}
@ -178,7 +192,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)))
if (is_array($n) AND ($r = $this->affecter($tableau[$i][$m], $identifiant, $params, $lieu, $plusieurs)))
return $r;
}
}
@ -300,23 +314,52 @@ class Barre_outils{
* ajouter un bouton ou quelque chose, avant un autre deja present
*
* @param string $identifiant : identifiant du bouton ou l'on doit se situer
* @param array $params : parametres de l'ajout
* @param array $params
* Parametres de l'ajout.
* Description d'1 bouton (tableau cle/valeurs)
*/
function ajouterAvant($identifiant, $params){
return $this->affecter($this->markupSet, $identifiant, $params, 'avant');
}
/**
* ajouter un bouton ou quelque chose, apres un autre deja present
* ajouter plusieurs boutons, avant un autre deja present
*
* @param string $identifiant : identifiant du bouton ou l'on doit se situer
* @param array $params : parametres de l'ajout
* @param array $tableau_params
* Parametres de l'ajout.
* Description de plusieurs boutons (tableau de tableaux cle/valeurs).
*/
function ajouterPlusieursAvant($identifiant, $tableau_params){
return $this->affecter($this->markupSet, $identifiant, $tableau_params, 'avant', true);
}
/**
* ajouter un bouton ou quelque chose, apres un autre deja present
*
* @param string $identifiant
* identifiant du bouton ou l'on doit se situer
* @param array $params
* parametres de l'ajout.
* Description d'1 bouton (tableau cle/valeurs)
*/
function ajouterApres($identifiant, $params){
return $this->affecter($this->markupSet, $identifiant, $params, 'apres');
}
/**
* ajouter plusieurs boutons, apres un autre deja present
*
* @param string $identifiant
* identifiant du bouton ou l'on doit se situer
* @param array $tableau_params
* Parametres de l'ajout.
* Description de plusieurs boutons (tableau de tableaux cle/valeurs).
*/
function ajouterPlusieursApres($identifiant, $tableau_params){
return $this->affecter($this->markupSet, $identifiant, $tableau_params, 'apres', true);
}
/**
* ajouter une fonction js pour etre utilises dans les boutons
*
@ -542,7 +585,7 @@ function barre_outils_css_icones(){
$pos = "background-position:".end($i);
$i = reset($i);
}
$css .= "\n.markItUp .$n a em {background-image:url(".protocole_implicite(url_absolue(find_in_path("icones_barre/$i"))).");$pos}";
$css .= "\n.markItUp .$n>a>em {background-image:url(".protocole_implicite(url_absolue(find_in_path("icones_barre/$i"))).");$pos}";
}
return $css;

Loading…
Cancel
Save