source: spip-zone/_plugins_/groupes_mots_arborescents/gma_administrations.php @ 91783

Last change on this file since 91783 was 63401, checked in by marcimat@…, 8 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 * Fonction d'installation du plugin et de mise à jour.
13 *
14 * Adapte les tables groupes mots et mots
15**/
16function gma_upgrade($nom_meta_base_version, $version_cible) {
17        // pour gma_definir_heritages()
18        include_spip('gma_fonctions');
19
20        $maj = array();
21
22        $maj['create'] = array(
23                array('maj_tables', array('spip_groupes_mots', 'spip_mots')),
24                array('gma_definir_heritages'),
25        );
26
27        include_spip('base/upgrade');
28        maj_plugin($nom_meta_base_version, $version_cible, $maj);
29}
30
31
32/**
33 * Fonction de désinstallation du plugin.
34 *
35 * Supprime les adaptations des tables groupes mots et mots
36**/
37function gma_vider_tables($nom_meta_base_version) {
38
39        sql_alter("TABLE spip_groupes_mots DROP COLUMN id_parent");
40        sql_alter("TABLE spip_groupes_mots DROP COLUMN id_groupe_racine");
41        sql_alter("TABLE spip_mots DROP COLUMN id_groupe_racine");
42
43        effacer_meta($nom_meta_base_version);
44}
45
46
47?>
Note: See TracBrowser for help on using the repository browser.