Changeset 80800 in spip-zone


Ignore:
Timestamp:
Feb 17, 2014, 11:22:10 AM (5 years ago)
Author:
severo@…
Message:

tickets - une vue/crayon par groupe de mots-clés

au lieu de tout regrouper dans un seul select (Eric).
Il reste à ajouter les mêmes champs dans le formulaire
d'édition.

A noter : le crayon mots_ticket reste fonctionnel, si
on veut conserver le fonctionnement précédent (tous les
groupes dans le même select).

Location:
_plugins_/tickets/trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/tickets/trunk/content/ticket.html

    r80696 r80800  
    3333                        [<dt class="jalon"><:tickets:champ_jalon:></dt><dd class="jalon #EDIT{jalon}">(#JALON)</dd>]
    3434                        [<dt class="navigateur"><:tickets:champ_navigateur:></dt><dd class="navigateur #EDIT{navigateur}">(#NAVIGATEUR|tickets_texte_navigateur)</dd>]
    35                         [(#CONFIG{tickets/general/lier_mots,off}|=={on}|oui)<dt class="mots"><:tickets:champ_mots:></dt><dd class="mots #EDIT{mots_ticket}">#INCLURE{fond=vues/mots_ticket,id_ticket=#ID_TICKET,env,ajax}</dd>]
     35                        <BOUCLE_groupesmots(GROUPES_MOTS){si #CONFIG{tickets/general/lier_mots,off}|=={on}|oui}{tables_liees==#VAL{'(^|,)'}|concat{tickets,'($|,)'}}{par num titre}>
     36                                <dt class="mots">#TITRE</dt><dd class="mots groupe#ID_GROUPE #EDIT{groupemots_ticket-#ID_TICKET}">#INCLURE{fond=vues/groupemots_ticket,id_groupes_mot=#ID_TICKET-#ID_GROUPE,env,ajax}</dd>
     37                        </BOUCLE_groupesmots>
    3638                </dl>
    3739        </div>
  • _plugins_/tickets/trunk/paquet.xml

    r80646 r80800  
    4040        <utilise nom="Zpip" compatibilite="[2.0.3;[" />
    4141        <utilise nom="Z" compatibilite="[1.7.21;[" />
     42        <utilise nom="crayons" compatibilite="[1.17.0;]" />
     43        <utilise nom="chosen" compatibilite="[1.0.5;]" />
    4244
    4345        <menu nom="tickets" titre="tickets:titre" parent="menu_publication" icone="images/ticket-16.png" />
  • _plugins_/tickets/trunk/tickets_options.php

    r80698 r80800  
    2525
    2626/**
     27 * Récupérer dans la base la liste des mots-clés liés au ticket pour
     28 * groupe de mots donné
     29 * http://marcimat.magraine.net/Crayon-de-mots-pour-un-article
     30 */
     31function valeur_champ_groupemots_ticket($table, $id, $champ) {
     32        return valeur_champ_mots_objet($table, $id, $champ);
     33}
     34
     35/**
    2736 * Récupérer dans la base la liste des mots-clés liés à l'objet
    2837 * http://marcimat.magraine.net/Crayon-de-mots-pour-un-article
    2938 */
    30 function valeur_champ_mots_objet($table, $id, $champ) {
     39function valeur_champ_mots_objet($table, $ids, $champ) {
     40        list($id_objet, $id_groupe) = explode('-', $ids);
    3141        list(, $objet) = explode('_', $champ);
    3242
    33         $valeurs = sql_allfetsel("m.id_mot", "spip_mots AS m, spip_mots_liens AS ml", array(
     43        $where = array(
    3444                "m.id_mot = ml.id_mot",
    35                 "ml.id_objet=".sql_quote($id),
     45                "ml.id_objet=".sql_quote($id_objet),
    3646                "ml.objet=".sql_quote($objet)
    37         ));
     47        );
     48        if ($id_groupe > 0)
     49                $where[] = "m.id_groupe=" . sql_quote($id_groupe);
     50
     51        $valeurs = sql_allfetsel("m.id_mot", "spip_mots AS m, spip_mots_liens AS ml", $where);
    3852        $valeurs = array_map('array_shift', $valeurs);
    3953
     
    5064
    5165/**
     66 * Modifier dans la base la liste des mots-clés liés au ticket pour un
     67 * groupe de mots donné
     68 * http://marcimat.magraine.net/Crayon-de-mots-pour-un-article
     69 */
     70function groupemots_ticket_revision($id, $colonnes, $type_objet) {
     71        return mots_objet_revision($id, $colonnes, $type_objet, 'groupemots_ticket');
     72}
     73
     74/**
    5275 * Modifier dans la base la liste des mots-clés liés à l'objet
    5376 * http://marcimat.magraine.net/Crayon-de-mots-pour-un-article
    5477 */
    55 function mots_objet_revision($id, $colonnes, $type_objet, $champ = '') {
     78function mots_objet_revision($ids, $colonnes, $type_objet, $champ = '') {
    5679        if (!$champ) return false;
     80
     81        list($id_objet, $id_groupe) = explode('-', $ids);
     82        list(, $type_liaison) = explode('_', $champ);
    5783
    5884        /* On vérifie qu'on a le droit d'associer des mots l'objet
     
    6086         * les options de la fonction autoriser_associermots_dist)
    6187         */
    62         if (!autoriser('associermots',$type_objet,$id)) return false;
    63 
    64         list(, $type_liaison) = explode('_', $champ);
     88        if (!autoriser('associermots',$type_liaison,$id_objet)) return false;
    6589
    6690        // actuellement en bdd
    67         $old = valeur_champ_mots_objet($type_objet, $id, $champ);
     91        $old = valeur_champ_mots_objet($type_objet, $ids, $champ);
    6892        // ceux qu'on veut maintenant (on vérifie que ce sont des indices)
    6993        $new = array_filter(explode(',', $colonnes[$champ]),'is_numeric');
     
    7599        include_spip('action/editer_liens');
    76100        if ($del) {
    77                 objet_dissocier(array('mot'=>$del), array($type_liaison => $id));
     101                objet_dissocier(array('mot'=>$del), array($type_liaison => $id_objet));
    78102        }
    79103        if ($add) {
    80                 objet_associer(array('mot'=>$add), array($type_liaison => $id));
     104                objet_associer(array('mot'=>$add), array($type_liaison => $id_objet));
    81105        }
    82106
Note: See TracChangeset for help on using the changeset viewer.