Changeset 800 in spip-zone


Ignore:
Timestamp:
Sep 2, 2005, 2:04:03 PM (15 years ago)
Author:
pierre.andrews@…
Message:

essai d'utiliser tag-machine pour les echappements (pas au point)

Location:
_libs_/tag-machine/formulaires
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _libs_/tag-machine/formulaires/ajax.fonctions.php3

    r794 r800  
    1 //ces fonctions devront utiliser tag-machine comme la page tag des forums pour faire les echappements etc... mais c'est pour commencer
    2 
    3 function m8_debut($texte) {
    4   if(strpos($texte,' ')) {
    5         $lst = split(' ',$texte);
    6         $str = $lst[0];
    7         for($i = 1; $i < count($lst)-1;$i++)
    8           $str .= ' '.$list[$i];
    9         return $str;
     1<?php
     2/*
     3génére une regexp OU pour la liste de mot
     4*/
     5function enregexp($liste) {
     6  include_ecrire('_libs_/tag-machine/inc_tag-machine.php');
     7  $mots = parser_liste(filtrer_entites($liste));
     8  $str = '^(';
     9  foreach ($mots as $mot) {
     10        $str .= $mot['tag'].'|';
    1011  }
    11   return '';
     12  $str = substr($str,0,-1);
     13  return $str.')$';
    1214}
    1315
    14 function m8_fin($texte) {
    15   $lst = split(' ',$texte);
    16   return $lst[count($lst)-1];
     16/*
     17combien il y a de mots dans le paramétre
     18*/
     19function compte_having($liste) {
     20  include_ecrire('_libs_/tag-machine/inc_tag-machine.php');
     21  $mots = parser_liste(filtrer_entites($liste));
     22  return count($mots)-1;
    1723}
    1824
    19 function enregexp_space($texte) {
    20   $lst = split(' ',$texte);
    21   return '^('.join('|',$lst).')$';
     25/*
     26un critére pour le HAVING sql
     27*/
     28function critere_having($idb, &$boucles, $crit){       
     29  $hav = calculer_liste($crit->param[0], array(), $boucles, $boucles[$idb]->id_parent);
     30 $boucles[$idb]->having = "'.$hav.'";
    2231}
    2332
    24 function countSpace($texte) {
    25   return count(split(' ',$texte))-1;
     33//ajax
     34
     35function case_tag($tag) {
     36 
     37  if(is_array($tag)) {
     38        $ctag = $tag['tag'];
     39        $cgroupe =  $tag['groupe'];
     40  } else {
     41        $cgroupe = '';
     42        $ctag = $tag;
     43  }
     44 
     45  $cgroupe = (strpos($cgroupe,' ') || strpos($cgroupe,':'))?'"'.$cgroupe.'"':$cgroupe;
     46  $ctag = (strpos($ctag,' ') || strpos($ctag,':'))?'"'.$ctag.'"':$ctag;
     47 
     48  return ($cgroupe.($cgroupe)? ':':'').$ctag;
     49 
    2650}
     51
     52function dernier_quote($lst) {
     53  if(substr_count($lst,'"')%2 != 0)
     54        return $lst.'"';
     55  return $lst;
     56}
     57
     58function m8_debut($liste) {
     59  include_ecrire('_libs_/tag-machine/inc_tag-machine.php');
     60  $liste = dernier_quote($liste);
     61  $mots = array_map('case_tag',parser_liste(filtrer_entites($liste)));
     62  return join(' ',array_slice($mots,0,-1));
     63}
     64
     65function m8_fin($liste) {
     66  include_ecrire('_libs_/tag-machine/inc_tag-machine.php');
     67  $liste = dernier_quote($liste);
     68  $mots = array_map('case_tag',parser_liste(filtrer_entites($liste)));
     69  return str_replace('"','',$mots[count($mots)-1]);
     70}
     71?>
  • _libs_/tag-machine/formulaires/ajax.html

    r796 r800  
     1//DEBUG
     2//titre: '[(#ENV{titre}|dernier_quote)]'<br>
     3//debut: '[(#ENV{titre}|m8_debut)]'<br>
     4//fin: '[(#ENV{titre}|m8_fin)]'<br>
     5//cnt: [(#ENV{titre}|compte_having)]<br>
     6
    17//tout ça est tres beta
    28//retourne un tableau de mots qui sont associés aux mêmes forums que les mots déjà tappé: suggest
    39<B_forum>
    410new Array(
    5 <BOUCLE_forum(FORUMS)  {titre_mot == (#ENV{titre}|m8_debut|enregexp_space)} {having (#ENV{titre}|m8_debut|countSpace)}>
    6 <BOUCLE_mots2(MOTS) {id_forum} {titre == ^(#ENV{titre}|m8_fin)}>
    7 [new Array('[(#ENV{titre}|m8_debut) ](#TITRE|unique)','0 forum'),]
     11<BOUCLE_forum(FORUMS)  {titre_mot == (#ENV{titre}|m8_debut|enregexp)} {having (#ENV{titre}|m8_debut|compte_having)}>
     12<BOUCLE_mots2(MOTS) {id_breve} {titre == ^(#ENV{titre}|m8_fin)}>
     13[new Array('[(#ENV{titre}|m8_debut) ](#TITRE|unique|case_tag)','0 forum'),]
    814</BOUCLE_mots2>
    915</BOUCLE_forum>
     
    1521new Array(
    1622<BOUCLE_mots(MOTS) {","} {titre == ^(#ENV{titre}|m8_fin)}>
    17   new Array('#TITRE',<BOUCLE_forums(FORUMS) {id_mot}> </BOUCLE_forums>'#TOTAL_BOUCLE <:forum:>'</B_forums>'#TOTAL_BOUCLE <:forum:>'<//B_forums>)
     23  new Array('[[(#ENV{titre}|m8_debut) ](#TITRE|case_tag)]',<BOUCLE_forums(FORUMS) {id_mot}> </BOUCLE_forums>'#TOTAL_BOUCLE <:forum:>'</B_forums>'#TOTAL_BOUCLE <:forum:>'<//B_forums>)
    1824</BOUCLE_mots>
    1925)
Note: See TracChangeset for help on using the changeset viewer.