X-Git-Url: http://git.cyclocoop.org/?p=velocampus%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fecrire%2Finc%2Ftexte.php;fp=www%2Fecrire%2Finc%2Ftexte.php;h=148c5720b927f8000c779817404789de63a4cfa5;hp=0000000000000000000000000000000000000000;hb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed;hpb=aaf970bf4cdaf76689ecc10609048e18d073820c
diff --git a/www/ecrire/inc/texte.php b/www/ecrire/inc/texte.php
new file mode 100644
index 0000000..148c572
--- /dev/null
+++ b/www/ecrire/inc/texte.php
@@ -0,0 +1,985 @@
+)?/S",
+ /* 7 */ "/[{][{]/S",
+ /* 8 */ "/[}][}]/S",
+ /* 9 */ "/[{]/S",
+ /* 10 */ "/[}]/S",
+ /* 11 */ "/(?:
){2,}/S",
+ /* 12 */ "/
\n*(?: ",
+ /* 7 */ $debut_gras,
+ /* 8 */ $fin_gras,
+ /* 9 */ $debut_italique,
+ /* 10 */ $fin_italique,
+ /* 11 */ " ",
+ /* 12 */ " ",
+ /* 13 */ " ",
+ /* 14 */ " ",
+ /* 15 */ ""
+ )
+);
+
+// Raccourcis dependant du sens de la langue
+
+function definir_raccourcis_alineas()
+{
+ global $ligne_horizontale;
+ static $alineas = array();
+ $x = _DIR_RESTREINT ? lang_dir() : lang_dir($GLOBALS['spip_lang']);
+ if (!isset($alineas[$x])) {
+
+ $alineas[$x] = array(
+ array(
+ /* 0 */ "/\n(----+|____+)/S",
+ /* 1 */ "/\n-- */S",
+ /* 2 */ "/\n- */S", /* DOIT rester a cette position */
+ /* 3 */ "/\n_ +/S"
+ ),
+ array(
+ /* 0 */ "\n\n" . $ligne_horizontale . "\n\n",
+ /* 1 */ "\n
\n*)*/S",
+ /* 13 */ "//S",
+ /* 14 */ "/<\/quote>/S",
+ /* 15 */ "/<\/?intro>/S"
+ ),
+ array(
+ /* 4 */ "\$1\n\n" . $debut_intertitre,
+ /* 5 */ $fin_intertitre ."\n\n\$1",
+ /* 6 */ "
— ",
+ /* 2 */ "\n
".definir_puce()." ",
+ /* 3 */ "\n
"
+ )
+ );
+ }
+ return $alineas[$x];
+}
+
+// On initialise la puce pour eviter find_in_path() a chaque rencontre de \n-
+// Mais attention elle depend de la direction et de X_fonctions.php, ainsi que
+// de l'espace choisi (public/prive)
+// http://doc.spip.org/@definir_puce
+function definir_puce() {
+
+ // Attention au sens, qui n'est pas defini de la meme facon dans
+ // l'espace prive (spip_lang est la langue de l'interface, lang_dir
+ // celle du texte) et public (spip_lang est la langue du texte)
+ $dir = _DIR_RESTREINT ? lang_dir() : lang_dir($GLOBALS['spip_lang']);
+
+ $p = 'puce' . (test_espace_prive() ? '_prive' : '');
+ if ($dir == 'rtl') $p .= '_rtl';
+
+ if (!isset($GLOBALS[$p])) {
+ $img = find_in_path($p.'.gif');
+ list(,,,$size) = @getimagesize($img);
+ $GLOBALS[$p] = '';
+ }
+ return $GLOBALS[$p];
+}
+
+// XHTML - Preserver les balises-bloc : on liste ici tous les elements
+// dont on souhaite qu'ils provoquent un saut de paragraphe
+if (!defined('_BALISES_BLOCS')) define('_BALISES_BLOCS',
+ 'div|pre|ul|ol|li|blockquote|h[1-6r]|'
+ .'t(able|[rdh]|body|foot|extarea)|'
+ .'form|object|center|marquee|address|'
+ .'d[ltd]|script|noscript|map|button|fieldset|style');
+
+//
+// Echapper les elements perilleux en les passant en base64
+//
+
+// Creer un bloc base64 correspondant a $rempl ; au besoin en marquant
+// une $source differente ; le script detecte automagiquement si ce qu'on
+// echappe est un div ou un span
+// http://doc.spip.org/@code_echappement
+function code_echappement($rempl, $source='', $no_transform=false) {
+ if (!strlen($rempl)) return '';
+
+ // Tester si on echappe en span ou en div
+ $mode = preg_match(',?('._BALISES_BLOCS.')[>[:space:]],iS', $rempl) ?
+ 'div' : 'span';
+ $return = '';
+
+ // Decouper en morceaux, base64 a des probleme selon la taille de la pile
+ $taille = 30000;
+ for($i = 0; $i < strlen($rempl); $i += $taille) {
+ // Convertir en base64 et cacher dans un attribut
+ // utiliser les " pour eviter le re-encodage de ' et ’
+ $base64 = base64_encode(substr($rempl, $i, $taille));
+ $return .= "<$mode class=\"base64$source\" title=\"$base64\">$mode>";
+ }
+
+ return $return
+ . ((!$no_transform AND $mode == 'div')
+ ? "\n\n"
+ : ''
+ );
+;
+}
+
+// Echapper les ... html>
+// http://doc.spip.org/@traiter_echap_html_dist
+function traiter_echap_html_dist($regs) {
+ return $regs[3];
+}
+
+// Echapper les ... code>
+// http://doc.spip.org/@traiter_echap_code_dist
+function traiter_echap_code_dist($regs) {
+ list(,,$att,$corps) = $regs;
+ $echap = htmlspecialchars($corps); // il ne faut pas passer dans entites_html, ne pas transformer les xx; du code !
+
+ // ne pas mettre le
"
+ .$echap."
".$echap."
";
+ }
+
+ $echap = str_replace("\t", " ", $echap);
+ $echap = str_replace(" ", " ", $echap);
+ return $echap;
+}
+
+// Echapper les