Mise en route du suivi.
[aidenligne_francais_universite.git] / plugins / couteau_suisse / outils / blocs.php
1 <?php
2
3 /*
4 Cet outil 'blocs' permet aux redacteurs d'un site spip d'inclure des blocs visibles ou invisibles dans leurs textes
5 balises : <bloc></bloc> ou <invisible></invisible>, et <visible></visible>
6 le titre est obtenu en sautant deux lignes a l'interieur du bloc
7 Attention : seules les balises en minuscules sont reconnues.
8 */
9
10 // cette fonction est appelee automatiquement a chaque affichage de la page privee du Couteau Suisse
11 // le resultat est une chaine apportant des informations sur les nouveaux raccourcis ajoutes par l'outil
12 // si cette fonction n'existe pas, le plugin cherche alors _T('couteauprive:un_outil:aide');
13 function blocs_raccourcis() {
14 return _T('couteauprive:blocs:aide');
15 }
16
17 function blocs_callback($matches) {
18 $t = preg_split(',(\n\n|\r\n\r\n|\r\r),', $matches[3], 2);
19 // un resume facultatif
20 if(preg_match(',<resume>(.*)</resume>\s?(.*)$,ms', $t[1], $res))
21 { $t[1] = $res[2]; $res = $res[1]; } else $res = '';
22 // types de blocs : bloc|invisible|visible
23 if ($matches[1]=='visible') {
24 $h = $d = '';
25 $r = ' blocs_invisible';
26 } else {
27 $h = ' blocs_replie';
28 $d = ' blocs_invisible';
29 $r = '';
30 }
31
32 // blocs numerotes
33 $b = strlen($matches[2])?" cs_bloc$matches[2]":'';
34 return "<div class='cs_blocs$b'><h4 class='blocs_titre$h blocs_click'><a href='javascript:;'>$t[0]</a></h4>"
35 .(strlen($res)?"<div class='blocs_resume$r'>\n$res\n</div>":"")
36 ."<div class='blocs_destination$d'>\n$t[1]\n</div></div>";
37 }
38
39 // cette fonction n'est pas appelee dans les balises html : html|code|cadre|frame|script
40 function blocs_rempl($texte) {
41 if (strpos($texte, '<')===false) return $texte;
42 // balises blocs|visible|invisible : il faut un callback pour analyser l'interieur du texte
43 return preg_replace_callback(',<(bloc|visible|invisible)([0-9]*)>(.*?)</\1\2>,ms', 'blocs_callback', $texte);
44 }
45
46 // fonction pipeline
47 function blocs_pre_typo($texte) {
48 if (strpos($texte, '<')===false) return $texte;
49 // on remplace apres echappement
50 return cs_echappe_balises('', 'blocs_rempl', $texte);
51 }
52
53 // cette fonction renvoie une ligne de tableau entre <tr></tr> afin de l'inserer dans la Barre Typo V2, si elle est presente
54 function blocs_BarreTypo($tr) {
55 return $tr.'<tr><td>'._T('couteauprive:blocs:nom').' (en projet)</td></tr>';
56 }
57
58 ?>