Changeset 55147 in spip-zone


Ignore:
Timestamp:
Dec 6, 2011, 9:04:03 AM (9 years ago)
Author:
cedric@…
Message:

Merge avec le premier portage propose par aknot04 sur http://www.spip-contrib.net/ecrire/?exec=articles&id_article=3942
L'interface passe donc en CVT+ quelques refactoring

Location:
_plugins_/squelettes_par_mots_cle/trunk
Files:
8 added
1 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/squelettes_par_mots_cle/trunk/lang/squelettesmots_fr.php

    r32666 r55147  
    2121        'groupe' => 'Groupe:',
    2222        'type' => 'Type:',
    23         'possibilites' => '@total_actif@ squelette(s).',
     23        'une_possibilite' => '1 squelette :',
     24        'nb_possibilites' => '@nb@ squelettes :',
    2425        'utiliserasquelette' => 'Cet article utilisera le squelette @squelette@',
    25 'avertissement' => 'Attention le squelette @squelette@ n\'existe pas, cette règle ne marchera pas tant que le squelette par défaut n\'est pas présent.'
     26        'avertissement' => 'Attention le squelette @squelette@ n\'existe pas, cette règle ne marchera pas tant que le squelette par défaut n\'est pas présent.',
     27        'label_regle_active' => 'Règle active',
    2628);
    2729?>
  • _plugins_/squelettes_par_mots_cle/trunk/paquet.xml

    r55007 r55147  
    22        prefix="squelettesmots"
    33        categorie="outil"
    4         version="3.0.0"
     4        version="3.1.0"
    55        etat="test"
    66        compatibilite="[3.0.0-dev;3.0.99]"
     
    1313
    1414        <auteur>Pierre Andrews (Mortimer)</auteur>
     15        <auteur>Florent Cavard</auteur>
    1516        <credit>d'après un code proposé par Déesse A.</credit>
    1617
  • _plugins_/squelettes_par_mots_cle/trunk/squelettesmots.php

    r55007 r55147  
    1717//    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    1818
     19define('_SQUELETTES_MOTS_META','SquelettesMots:fond_pour_groupe');
    1920
    20 // Selection du squelette par mot cle
     21/**
     22 * Selection du squelette par mot cle
     23 *
     24 * @param array $flux
     25 * @return array
     26 */
    2127function squelettesmots_styliser($flux) {
    2228        // quand le selecteur doit il s'activer ?
    2329        // pas de fond=rep/nom (inclusions)
    2430        if (!test_espace_prive()
    25                 AND $fond = $flux['args']['fond']
     31          AND $fond = $flux['args']['fond']
    2632          AND strpos($fond, '/')===false) {
    27                 // on cherche si le squelette a deja trouve un fond particulier specifique
     33          // on cherche si le squelette a deja trouve un fond particulier specifique
    2834                // c'est a dire different de $fond.html.
    2935                // Si c'est le cas, on ne cherche pas de squelette specifique par mot.
    3036                $skel = basename($flux['data']);
    3137                if ($skel == $fond) {
    32                         $fonds = unserialize($GLOBALS['meta']['SquelettesMots:fond_pour_groupe']);
     38                        $fonds = unserialize($GLOBALS['meta'][_SQUELETTES_MOTS_META]);
    3339                        // array ($base_fond = array($id_groupe, $table, $_id_table))
    3440                        // on teste qu'on a bien un fond
     
    5157                                        }
    5258                                }
    53 
    5459                        }
    5560                }
     
    5863}
    5964
     65/**
     66 * Tester l'existence d'un squelette
     67 * @param string $fond
     68 * @param string $ext
     69 * @param string $mot
     70 * @param string $separateur
     71 * @return string
     72 */
    6073function test_squelette_motcle($fond, $ext, $mot, $separateur = '-') {
    6174        if ($squelette = find_in_path($fond . $separateur . $mot . '.' . $ext)) {
    6275                return substr($squelette, 0, -strlen(".$ext"));
    6376        }
    64         return false;
     77        return '';
    6578}
    6679
    67 // smc: on ajoute la fonction qui va chercher les mots
    68 // associes aux items dans le groupe qui va bien
    69 // recursion : seulement si $id de rubrique
     80/**
     81 * on ajoute la fonction qui va chercher les mots
     82 * associes aux items dans le groupe qui va bien
     83 * recursion : seulement si $id de rubrique
     84 *
     85 * @param int $id
     86 * @param int $id_groupe
     87 * @param string $table
     88 * @param string $_id_table
     89 * @param bool $recurse
     90 * @return string
     91 */
    7092function quete_mot_squelette($id ,$id_groupe, $table, $_id_table, $recurse=false) {
    71   $select1 = 'titre';
    72   $from1 = array('spip_mots AS mots',
    73                                  "spip_mots_$table AS lien");
     93        $objet = objet_type($table);
     94
    7495  while($id > 0) {
    75         $where1 = array("$_id_table=$id",
    76                                         'mots.id_mot=lien.id_mot',
    77                                         "id_groupe=$id_groupe");
    78        
    79         // attention getfetsel ne renvoie qu'un mot !
    80         // si quelqu'un a mis plusieurs mots sur l'objet, tant pis pour lui,
    81         // on ne peut pas predire lequel sera retourne
    82         if ($titre = sql_getfetsel($select1,$from1,$where1)) {
    83                 include_spip("inc/charsets");
    84                 include_spip("inc/filtres");
    85                 return translitteration(preg_replace('/["\'.\s]/', '_', extraire_multi($titre)));       
    86         }
    87         if(!$recurse) return '';
    88         // attention identifiant de rubrique ici uniquement
    89         $id = quete_parent($id);
     96                $where = array(
     97                        "lien.id_objet=".intval($id),
     98                        "lien.objet=".sql_quote($objet),
     99                        "id_groupe=".intval($id_groupe)
     100                );
     101
     102                // attention getfetsel ne renvoie qu'un mot !
     103                // si quelqu'un a mis plusieurs mots sur l'objet, tant pis pour lui,
     104                // on ne peut pas predire lequel sera retourne
     105                if ($titre = sql_getfetsel('titre',"spip_mots AS mots JOIN spip_mots_liens AS lien ON mots.id_mot=lien.id_mot",$where)) {
     106                        include_spip("inc/charsets");
     107                        include_spip("inc/filtres");
     108                        return translitteration(preg_replace('/["\'.\s]/', '_', extraire_multi($titre)));
     109                }
     110                if(!$recurse) return '';
     111                // attention identifiant de rubrique ici uniquement
     112                $id = quete_parent($id);
    90113  }
    91114  return '';
Note: See TracChangeset for help on using the changeset viewer.