source: spip-zone/_plugins_/_typo_/barre_typo_enrichie/inc/barre.php @ 5295

Last change on this file since 5295 was 5295, checked in by real3t@…, 15 years ago

Amélioration cosmétiques via la feuille de style.

File size: 17.4 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2006                                                *
7 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
8 *                                                                         *
9 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
10 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
11\***************************************************************************/
12
13if (!defined("_ECRIRE_INC_VERSION")) return;
14$p=explode(basename(_DIR_PLUGINS)."/",str_replace('\\','/',realpath(dirname(dirname(__FILE__)))));
15define('_DIR_PLUGIN_BARRE_TYPO',(_DIR_PLUGINS.end($p)));
16
17// construit un bouton (ancre) de raccourci avec icone et aide
18
19function bouton_barre_racc($action, $img, $help, $champhelp) {
20        include_spip('inc/charsets');
21
22        $a = attribut_html($help);
23        $action = str_replace ("&lt;", '%3C',  $action);
24        $action = str_replace ("&gt;", '%3E',  $action);
25        $action = str_replace ("\n", '%5Cn',  $action);
26        $action = unicode_to_javascript(html2unicode($action));
27        return "<a href=\"javascript:"
28                .$action
29                ."\"\n class='spip_barre' tabindex='1000' title=\""
30                . $a
31                ."\"" 
32                .(!_DIR_RESTREINT ? '' :  " onmouseover=\"helpline('"
33                  .addslashes($a)
34                  ."',$champhelp)\" onmouseout=\"helpline('"
35                  .attribut_html(_T('barre_aide'))
36                  ."', $champhelp)\"")
37                ."><img src='"
38                .$img
39                ."' height='16' width='16' alt=\"".$a."\" /></a>";
40}
41
42// sert à construire les sousbarre
43function produceWharf($id, $title = '', $sb = '') {
44  $visible = ($changer_virtuel || $virtuel);
45  $res .= $title;
46  $GLOBALS['numero_block'][$id] = ($GLOBALS['compteur_block']+1);
47  if ($visible) {
48    $res .= debut_block_visible("arb_".$GLOBALS['numero_block'][$id]);
49  } else {
50    $res .= debut_block_invisible("arb_".$GLOBALS['numero_block'][$id]);
51  }
52  $res .= $sb;
53  $res .= fin_block();
54  return $res;
55}
56
57//gestion des lignes optionnelles
58
59//creation de tableau
60function afficher_gestion_tableau($champ) {
61
62$tableau_formulaire = '<table class="spip_barre" style="width: auto; padding: 1px!important; border-top: 0px;" summary="">
63<tr><td>
64'._T('bartypenr:barre_gestion_colonne').': <input type="text" name="barre_nbcolones" style="width: 30px;" value="2" size="2" maxlength="2"   /></td><td>
65'._T('bartypenr:barre_gestion_ligne').': <input type="text" name="barre_nbrangs" style="width: 30px;" value="2" size="2" maxlength="2" /></td><td>
66<input type="checkbox" name="barre_doentete" value="-1" checked="checked" /> '._T('bartypenr:barre_gestion_entete')
67.'</td><td>
68<input type="checkbox" name="barre_docaption" value="-1" checked="checked" /> '._T('bartypenr:barre_gestion_caption')
69.'</td><td>
70  <input type="button" value="OK" class="fondo" onclick="javascript:
71    barre_nbcolones.value = Math.abs(barre_nbcolones.value); barre_nbrangs.value
72    = Math.abs(barre_nbrangs.value);
73    if (!(barre_nbcolones.value == 0 || barre_nbrangs.value == 0)) {
74    barre_tableau('.$champ.', barre_nbcolones.value, barre_nbrangs.value,
75    barre_doentete.checked, barre_docaption.checked); } " />
76</td></tr></table>
77'; 
78  return produceWharf('tableau_gestion','',$tableau_formulaire); 
79}
80
81// construction des liens
82function afficher_gestion_lien($champ) {
83
84$tableau_formulaire = '
85 <table class="spip_barre" style="width: auto; padding: 1px!important; border-top: 0px;" summary="">
86<tr><td> 
87'._T('bartypenr:barre_adresse').'&nbsp;: <input type="text" name="lien_nom" value="http://" size="21" maxlength="255" /><br />
88'._T('bartypenr:barre_bulle').'&nbsp;: <input type="text" name="lien_bulle" value="" size="21" maxlength="255" />
89</td><td>
90'._T('bartypenr:barre_langue').'&nbsp;: <input type="text" name="lien_langue" value="" size="10" maxlength="10" />
91</td><td>
92  <input type="button" value="OK" class="fondo" onclick="javascript:barre_demande_lien(\'[\', \'->\', \']\', lien_nom.value, lien_bulle.value, lien_langue.value,'.$champ.');" />
93</td></tr></table>
94';
95  return produceWharf('tableau_lien','',$tableau_formulaire);   
96}
97
98
99// gestion de la recherche
100
101function afficher_gestion_remplacer($champ) {
102
103$tableau_formulaire = '
104<table class="spip_barre" style="width: auto; padding: 1px!important; border-top: 0px;" summary="">
105<tr><td style="width: 25%;">'.
106_T('bartypenr:barre_gestion_cr_chercher')
107.'<input type="text" name="barre_chercher" value="" size="12" maxlength="255" /></td><td style="width: 20%;">
108<input type="checkbox" name="rec_case" value="yes" />'
109._T('bartypenr:barre_gestion_cr_casse')
110.'<br /><input type="checkbox" name="rec_entier" value="yes" />
111'._T('bartypenr:barre_gestion_cr_entier').'
112</td><td  style="width: 25%;">'
113._T('bartypenr:barre_gestion_cr_remplacer')
114.'<input type="text" name="barre_remplacer" value="" size="12" maxlength="255" />
115</td><td style="width: 20%;">
116<input type="checkbox" name="rec_tout" value="yes" />'
117._T('bartypenr:barre_gestion_cr_tout')
118.'</td><td style="width: 10%;">
119   <input type="button" value="OK" class="fondo"
120  onclick="javascript:barre_searchreplace(document.formulaire.barre_chercher.value, document.formulaire.barre_remplacer.value, document.formulaire.rec_tout.checked, document.formulaire.rec_case.checked, document.formulaire.rec_entier.checked,'.$champ.');" />
121</td></tr></table>';
122
123  return produceWharf('tableau_remplacer','',$tableau_formulaire); 
124}
125
126// pour les ancres
127function afficher_gestion_ancre($champ) {
128
129$tableau_formulaire = '
130<table class="spip_barre" style="width: auto; padding: 1px!important; border-top: 0px;" summary="">
131  <tr>
132    <td style="width:auto; text-align:center;"><strong>Gestion des ancres</strong></td>
133    <td style="width:auto;"><strong>Transformer en ancre</strong><br />
134    <label for="ancre_nom"><i>Nom de l\'ancre</i></label> <br />
135      <input type="text" name="ancre_nom" id="ancre_nom" />
136         
137        <input type="button" value="OK" class="fondo" onclick="javascript:barre_ancre(\'[\', \'<-\', \']\', ancre_nom.value, '.$champ.');" />
138    </td>
139        <td style="width:auto;"><strong>Pointer vers une ancre</strong><br />
140    <label for="ancre_cible"><i>Ancre cible</i></label> <input type="text" name="ancre_cible" id="ancre_cible" /><br />
141        <label for="ancre_bulle"><i>Bulle d\'aide ancre</i></label> <input type="text" name="ancre_bulle" id="ancre_bulle" />
142        <input type="button" value="OK" class="fondo" onclick="javascript:barre_demande(\'[\', \'->#\', \']\', ancre_cible.value, ancre_bulle.value, '.$champ.');" />
143</td>
144  </tr>
145</table>';
146
147  return produceWharf('tableau_ancre','',$tableau_formulaire); 
148}
149
150// pour les caractères
151function afficher_caracteres($champ, $spip_lang, $champhelp) {
152
153$reta .=    "";
154
155        // guillemets
156        if ($spip_lang == "fr" OR $spip_lang == "eo" OR $spip_lang == "cpf" OR $spip_lang == "ar" OR $spip_lang == "es") {
157$reta .= bouton_barre_racc ("barre_raccourci('&laquo;~','~&raquo;',$champ)", _DIR_IMG_ICONES_BARRE."guillemets.png", _T('barre_guillemets'), $champhelp);
158$reta .= bouton_barre_racc ("barre_raccourci('&ldquo;','&rdquo;',$champ)", _DIR_IMG_ICONES_BARRE."guillemets-simples.png", _T('barre_guillemets_simples'), $champhelp);
159}
160else if ($spip_lang == "bg" OR $spip_lang == "de" OR $spip_lang == "pl" OR $spip_lang == "hr" OR $spip_lang == "src") {
161$reta .= bouton_barre_racc ("barre_raccourci('&bdquo;','&ldquo;',$champ)", _DIR_IMG_ICONES_BARRE."guillemets-de.png", _T('barre_guillemets'), $champhelp);
162$reta .= bouton_barre_racc ("barre_raccourci('&sbquo;','&lsquo;',$champ)", _DIR_IMG_ICONES_BARRE."guillemets-uniques-de.png", _T('barre_guillemets_simples'), $champhelp);
163}
164else {
165$reta .= bouton_barre_racc ("barre_raccourci('&ldquo;','&rdquo;',$champ)", _DIR_IMG_ICONES_BARRE."guillemets-simples.png", _T('barre_guillemets'), $champhelp);
166$reta .= bouton_barre_racc ("barre_raccourci('&lsquo;','&rsquo;',$champ)", _DIR_IMG_ICONES_BARRE."guillemets-uniques.png", _T('barre_guillemets_simples'), $champhelp);
167}
168        // caaracteres
169if ($spip_lang == "fr" OR $spip_lang == "eo" OR $spip_lang == "cpf") {
170
171$reta .= bouton_barre_racc ("barre_inserer('&Agrave;',$champ)", _DIR_IMG_ICONES_BARRE."agrave-maj.png", _T('barre_a_accent_grave'), $champhelp);
172$reta .= bouton_barre_racc ("barre_inserer('&Eacute;',$champ)", _DIR_IMG_ICONES_BARRE."eacute-maj.png", _T('barre_e_accent_aigu'), $champhelp);
173$reta .= bouton_barre_racc ("barre_inserer('&Egrave;',$champ)", _DIR_PLUGIN_BARRE_TYPO.'/img_pack/icones_barre/eagrave-maj.png', _T('bartypenr:barre_e_accent_grave'), $champhelp);
174$reta .= bouton_barre_racc ("barre_inserer('&aelig;',$champ)", _DIR_PLUGIN_BARRE_TYPO.'/img_pack/icones_barre/aelig.png', _T('bartypenr:barre_ea'), $champhelp);
175$reta .= bouton_barre_racc ("barre_inserer('&AElig;',$champ)", _DIR_PLUGIN_BARRE_TYPO.'/img_pack/icones_barre/aelig-maj.png', _T('bartypenr:barre_ea_maj'), $champhelp);
176
177if ($spip_lang == "fr") {
178$reta .= bouton_barre_racc ("barre_inserer('&oelig;',$champ)", _DIR_IMG_ICONES_BARRE."oelig.png", _T('barre_eo'), $champhelp);
179$reta .= bouton_barre_racc ("barre_inserer('&OElig;',$champ)", _DIR_IMG_ICONES_BARRE."oelig-maj.png", _T('barre_eo_maj'), $champhelp);
180$reta .= bouton_barre_racc ("barre_inserer('&Ccedil;',$champ)", _DIR_PLUGIN_BARRE_TYPO.'/img_pack/icones_barre/ccedil-maj.png', _T('bartypenr:barre_c_cedille_maj'), $champhelp);
181}
182}
183// euro
184$reta .= bouton_barre_racc ("barre_inserer('&euro;',$champ)", _DIR_IMG_ICONES_BARRE."euro.png", _T('barre_euro'), $champhelp);
185
186$reta .= "&nbsp;";
187       
188$tableau_formulaire = '
189<table class="spip_barre" style="width: auto; padding: 1px!important; border-top: 0px;" summary="">
190  <tr class="spip_barre">
191    <td style="width:30%;">'._T('bartypenr:barre_caracteres').'</td>
192    <td>'.$reta.'
193    </td>
194  </tr>
195</table>
196';
197
198  return produceWharf('tableau_caracteres','',$tableau_formulaire);     
199}
200
201// construit un tableau de raccourcis pour un noeud de DOM
202
203function afficher_barre($champ, $forum=false, $lang='') {
204        global $spip_lang, $options, $spip_lang_right, $spip_lang_left, $spip_lang;
205        static $num_barre = 0;
206        include_spip('inc/layer');
207        if (!$GLOBALS['browser_barre']) return '';
208        if (!$lang) $lang = $spip_lang;
209        $layer_public = (!$forum) ? '' :
210         '<script type="text/javascript" src="' . find_in_path('img_pack/layer.js').'"></script>';
211        $ret = ($num_barre > 0)  ? '' :
212          $layer_public . '<script type="text/javascript" src="' . find_in_path('js/spip_barre.js').'"></script>';
213
214
215        $num_barre++;
216        $champhelp = "document.getElementById('barre_$num_barre')";
217
218
219 // Prégénération des toolzbox.. (wharfing)
220    $toolbox .= afficher_gestion_tableau($champ);
221    $toolbox .= afficher_gestion_lien($champ);
222        $toolbox .= afficher_gestion_ancre($champ);
223        $toolbox .= afficher_caracteres($champ, $spip_lang, $champhelp);
224    $toolbox .= afficher_gestion_remplacer($champ);
225//
226
227        $ret .= '<script type="text/javascript" src="' . _DIR_PLUGIN_BARRE_TYPO . '/js/jquery-latest.pack.js"></script>';
228        $ret .= "<table class='spip_barre' style='width:auto;' cellpadding='0' cellspacing='0' border='0' summary=''>";
229        $ret .= "\n<tr style='width: auto;' class='spip_barre'>";
230        $ret .= "\n<td style='text-align: $spip_lang_left;' valign='middle'>";
231        $col = 1;
232
233        // Italique, gras, intertitres
234        $ret .= bouton_barre_racc ("barre_raccourci('{','}',$champ)", _DIR_IMG_ICONES_BARRE."italique.png", _T('barre_italic'), $champhelp);
235        $ret .= bouton_barre_racc ("barre_raccourci('{{','}}',$champ)", _DIR_IMG_ICONES_BARRE."gras.png", _T('barre_gras'), $champhelp);
236        if ($options == "avancees") {
237                $ret .= bouton_barre_racc ("barre_raccourci('[*','*]',$champ)", _DIR_PLUGIN_BARRE_TYPO.'/img_pack/icones_barre/miseenevidence.png', _T('bartypenr:barre_miseenevidence'), $champhelp);
238                $ret .= bouton_barre_racc ("barre_raccourci('&lt;sup&gt;','&lt;/sup&gt;',$champ)", _DIR_PLUGIN_BARRE_TYPO.'/img_pack/icones_barre/exposant.png', _T('bartypenr:barre_exposant'), $champhelp);
239                $ret .= bouton_barre_racc ("barre_raccourci('&lt;sc&gt;','&lt;/sc&gt;',$champ)", _DIR_PLUGIN_BARRE_TYPO.'/img_pack/icones_barre/petitescapitales.png', _T('bartypenr:barre_petitescapitales'), $champhelp);
240        }
241        if (!$forum) {
242                $ret .= "&nbsp;";
243                $ret .= bouton_barre_racc ("barre_raccourci('\n\n{{{','}}}\n\n',$champ)", _DIR_IMG_ICONES_BARRE."intertitre.png", _T('barre_intertitre'), $champhelp);
244                if ($options == "avancees") {
245                        $ret .= bouton_barre_racc ("barre_raccourci('\n\n{2{','}2}\n\n',$champ)", _DIR_PLUGIN_BARRE_TYPO.'/img_pack/icones_barre/intertitre2.png', _T('bartypenr:barre_intertitre2'), $champhelp);
246                        $ret .= bouton_barre_racc ("barre_raccourci('\n\n{3{','}3}\n\n',$champ)", _DIR_PLUGIN_BARRE_TYPO.'/img_pack/icones_barre/intertitre3.png', _T('bartypenr:barre_intertitre3'), $champhelp);
247                        $ret .= bouton_barre_racc ("barre_raccourci('[|','|]',$champ)", _DIR_PLUGIN_BARRE_TYPO.'/img_pack/icones_barre/center.png', _T('bartypenr:barre_centrer'), $champhelp);
248                        $ret .= bouton_barre_racc ("barre_raccourci('[/','/]',$champ)", _DIR_PLUGIN_BARRE_TYPO.'/img_pack/icones_barre/right.png', _T('bartypenr:barre_alignerdroite'), $champhelp);
249                        $ret .= bouton_barre_racc ("barre_raccourci('[(',')]',$champ)", _DIR_PLUGIN_BARRE_TYPO.'/img_pack/icones_barre/cadretexte.png', _T('bartypenr:barre_encadrer'), $champhelp);
250                }
251        }
252        $ret .= "&nbsp;</td>\n<td>";
253        $col ++;
254
255        // Lien hypertexte, notes de bas de page, citations
256//      $ret .= bouton_barre_racc ("barre_demande('[','->',']', '".addslashes(_T('barre_lien_input'))."', $champ)", _DIR_IMG_ICONES_BARRE."lien.png", _T('barre_lien'), $champhelp);
257
258// gestion des liens
259      $ret .=    bouton_barre_racc("swap_couche('".$GLOBALS['numero_block']['tableau_lien']."','');", _DIR_IMG_ICONES_BARRE."lien.png", _T('barre_lien'), $champhelp);
260         
261        if (!$forum) {
262                $ret .= bouton_barre_racc ("barre_raccourci('[[',']]',$champ)", _DIR_IMG_ICONES_BARRE."notes.png", _T('barre_note'), $champhelp);
263        }
264        if ($forum) {
265                $ret .= "&nbsp;</td>\n<td>";
266                $col ++;
267                $ret .= bouton_barre_racc ("barre_raccourci('\n\n&lt;quote&gt;','&lt;/quote&gt;\n\n',$champ)", _DIR_IMG_ICONES_BARRE."quote.png", _T('barre_quote'), $champhelp);
268        }
269        if ($options == "avancees") {
270                $ret .= bouton_barre_racc ("barre_raccourci('[?',']',$champ)", _DIR_PLUGIN_BARRE_TYPO.'/img_pack/icones_barre/barre-wiki.png', "Entr&eacute;e du [?glossaire] (Wikipedia)", $champhelp);
271
272
273//gestion des tableaux         
274                $ret .= bouton_barre_racc("swap_couche('".$GLOBALS['numero_block']['tableau_gestion']."','');",
275                        _DIR_PLUGIN_BARRE_TYPO.'/img_pack/icones_barre/barre-tableau.png', "Ins&eacute;rer un tableau",
276                        $champhelp);
277
278        $ret .= "&nbsp</td>\n<td>";
279
280// gestion du remplacement
281      $ret .=    bouton_barre_racc("swap_couche('".$GLOBALS['numero_block']['tableau_remplacer']."','');", _DIR_PLUGIN_BARRE_TYPO."/img_pack/icones_barre/chercher_remplacer.png", "Chercher Remplacer", $champhelp);
282
283// gestion des ancres           
284                $ret .=    bouton_barre_racc("swap_couche('".$GLOBALS['numero_block']['tableau_ancre']."','');", _DIR_PLUGIN_BARRE_TYPO."/img_pack/icones_barre/ancre.png", 'Gestion des ancres', $champhelp); 
285
286}
287
288        $ret .= "&nbsp;</td>";
289        $col++;
290
291        // Insertion de caracteres difficiles a taper au clavier (guillemets, majuscules accentuees...)
292        $ret .= "\n<td style='text-align:$spip_lang_left;' valign='middle'>";
293        $col++;
294        $ret .=    bouton_barre_racc("swap_couche('".$GLOBALS['numero_block']['tableau_caracteres']."','');", _DIR_PLUGIN_BARRE_TYPO."/img_pack/icones_barre/clavier.png", _T('bartypenr:barre_caracteres'), $champhelp);
295       
296
297
298        $ret .= "&nbsp;</td>";
299        $col++;
300
301        if (!_DIR_RESTREINT) {
302                $ret .= "\n<td style='text-align:$spip_lang_right;' valign='middle'>";
303                $col++;
304                $ret .=    bouton_barre_racc("toggle_preview();", _DIR_PLUGIN_BARRE_TYPO."/img_pack/icones_barre/eye.png", _T('bartypenr:barre_preview'), $champhelp);
305                $ret .= "&nbsp;";
306                $ret .= aide("raccourcis");
307                $ret .= "&nbsp;";
308
309                $ret .= "</td>";
310        }
311        $ret .= "</tr>";
312
313        // Sur les forums publics, petite barre d'aide en survol des icones
314        if (_DIR_RESTREINT)
315                $ret .= "\n<tr>\n<td colspan='$col'><input disabled='disabled' type='text' id='barre_$num_barre' size='45' maxlength='100' style='width:auto; font-size:11px; color: black; background-color: #e4e4e4; border: 0px solid #dedede;'\nvalue=\"".attribut_html(_T('barre_aide'))."\" /></td></tr>";
316
317        $ret .= "</table>";
318         $ret .= $toolbox;
319         $ret .= '<script type="text/javascript"><!--
320/*function hauteurTextarea() {
321        hauteur = (hauteur_fenetre() - 40) /2;
322        source = document.getElementById("text_area");
323        source.style.height = hauteur + "px";
324}*/
325
326function MajPreviewCallBack() {
327        $.post("' . generer_url_ecrire("article_preview",""). '", { texte:$("#text_area").val() }, function(data) {
328                $("#article_preview").empty()
329                $("#article_preview").append(data);
330                });
331}
332
333function MajPreview() {
334        if ($("#article_preview").css("display") != "none") {
335                delayFunction("MajPreviewCallBack()",1);
336        }
337}
338
339$(document).ready(function(){
340        $("#text_area").after("<div id=\"article_preview\"></div>");
341        //$("#text_area").oneresize($("#article_preview").height($("#text_area").height()+"px"));
342        $.ajaxTimeout( 5000 );
343        $("#text_area").keypress(function() { MajPreview() });
344});
345         //--></script>';
346        return $ret;
347}
348
349// pour compatibilite arriere. utiliser directement le corps a present.
350
351function afficher_claret() {
352        include_spip('inc/layer');
353        return $GLOBALS['browser_caret'];
354}
355
356?>
Note: See TracBrowser for help on using the repository browser.