source: spip-zone/_plugins_/groupes_mots_arborescents/base/gma.php @ 63401

Last change on this file since 63401 was 63401, checked in by marcimat@…, 9 years ago

Plugin «Groupes de mots arborescents» de préfixe «gma» qui permet de faire des hiérarchies de groupes de mots.

Il ne fonctionne pour l'instant qu'avec la version trunk du plugin mots.

On peut donc créer une arborescence de groupes de mots, et mettre des mots dans chaque groupe.

  • Les propriétés d'un sous groupe de mots héritent automatiquement du groupe racine (et ne sont pas modifiable hors du groupe racine)
  • Le squelettes de liaison des mots clés sont sur surchargés pour ne lister que les groupes racines, et afficher dans les sélecteurs l'arborescence complète des groupes et mots.
  • On ne peut supprimer un groupe que si le groupe n'a pas de sous groupe

Par ailleurs, on utilise une implémentation de QueryPath? (http://querypath.org/) (non sans mal) pour modifier le code HTML du formulaire de groupes de mots.

Cette librairie quoi que très bien s'appuie sur la classe domDocument elle même s'appuyant sur libxml2 qui a un léger bug lors de l'import d'un texte HTML qui possède des CDATA dans des scripts : la librairie double alors ces échappements par des nouveaux ! Du coup, on les enlève avant d'utiliser la librairie (qui de toutes façons les remets).

Cette librairie pourrait être mise dans un plugin spécifique car très pratique une fois les soucis réglés (CDATA et passer le texte en unicode avant importation).

File size: 1.0 KB
Line 
1<?php
2/**
3 * Plugin Groupes arborescents de mots clés
4 * (c) 2012 Marcillaud Matthieu
5 * Licence GNU/GPL
6 */
7
8if (!defined('_ECRIRE_INC_VERSION')) return;
9
10
11
12/**
13 * Ajouter les colonnes nécessaire à notre plugin sur
14 * les groupes et les mots
15 *
16 * @param array $tables
17 *              Description des tables
18 * @return array
19 *              Description complétée des tables
20 */
21function gma_declarer_tables_objets_sql($tables){
22        $tables['spip_mots']['field']["id_groupe_racine"] = "bigint(21) DEFAULT 0 NOT NULL";
23        $tables['spip_groupes_mots']['field']["id_groupe_racine"] = "bigint(21) DEFAULT 0 NOT NULL";
24        $tables['spip_groupes_mots']['field']["id_parent"]= "bigint(21) DEFAULT 0 NOT NULL";
25        return $tables;
26}
27
28/**
29 * Ajouter les Alias des tables HIERARCHIE_GROUPES_MOTS
30 *
31 * @param array $interface
32 *              Description des interfaces pour le compilateur
33 * @return
34 *              Description complétée des interfaces
35**/
36function gma_declarer_tables_interfaces($interfaces) {
37        $interfaces['table_des_tables']['hierarchie_groupes_mots']   = 'groupes_mots';
38        return $interfaces;
39}
40?>
Note: See TracBrowser for help on using the repository browser.