Changeset 74895 in spip-zone


Ignore:
Timestamp:
Aug 23, 2013, 1:46:42 AM (6 years ago)
Author:
gilles.vincent@…
Message:

Ajout d'un parametre pour les favoris :
on peut desormais les classer par categorie.

L'objectif de ce plugin est de garder l'interface simple de la configuration des favoris.
La gestion des categories est volontairement laissee au soin d'autres plugins qui feront du label "categorie" ce qui sera le plus adapte

Le plugin est repasse en etat de test sous la nouvelle version, jusqu'a ce qu'il sera stabilise et valide
(en fonction des retours des utilisateurs)

Location:
_plugins_/mesfavoris
Files:
1 added
10 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/mesfavoris/action/ajouter_favori.php

    r61801 r74895  
    22/*
    33 * Plugin mesfavoris
    4  * (c) 2009-2012 Olivier Sallou, Cedric Morin
     4 * (c) 2009-2013 Olivier Sallou, Cedric Morin, Gilles Vincent
    55 * Distribue sous licence GPL
    66 *
     
    2020        else
    2121                $id_auteur = $GLOBALS['visiteur_session']['id_auteur'];
     22        if (count($arg)>3)
     23                $categorie = $arg[3];
     24        else
     25                $categorie = '';
    2226
    2327        include_spip('inc/mesfavoris');
    24         mesfavoris_ajouter($id_favori);
     28        mesfavoris_ajouter($id_objet,$objet,$id_auteur,$categorie);
    2529}
    2630
  • _plugins_/mesfavoris/balise/formulaire_favori.php

    r53714 r74895  
    22/*
    33 * Plugin mesfavoris
    4  * (c) 2009-2010 Olivier Sallou, Cedric Morin
     4 * (c) 2009-2013 Olivier Sallou, Cedric Morin, Gilles Vincent
    55 * Distribue sous licence GPL
    66 *
     
    1313 * Par defaut, l'objet et son identifiant sont pris dans la boucle
    1414 * <BOUCLE_(ARTICLES){id_article}> #FORMULAIRE_FAVORI ...
    15  * 
     15 *
    1616 * Mais il est possible de forcer un objet particulier :
    1717 * #FORMULAIRE_FAVORI{article,8}
    18  *
     18 *
     19 * Il est également possible de forcer à une catégorie donnée
     20 * #FORMULAIRE_FAVORI{article,8,ma_categorie}
     21 * <BOUCLE_(ARTICLES){id_article}> #FORMULAIRE_FAVORI{ma_categorie} ...
     22 * 
    1923 */
    2024function balise_FORMULAIRE_FAVORI ($p) {
     
    4044        $objet = $args[0];
    4145        $id_objet = $args[1];
     46        $categorie = $args[2];
    4247        // pas dans une boucle ? on generera une erreur ?
    4348        if ($objet == "'balise_hors_boucle'") {
    4449                $objet = '';
    4550                $id_objet = '';
     51                $categorie = '';
    4652        }
    4753       
    4854        // on envoie les arguments a la fonction charger
    4955        // du formulaire CVT fomulaires/favori.php
    50         return array($objet, $id_objet);
     56        return array($objet, $id_objet,$categorie);
    5157       
    5258}
  • _plugins_/mesfavoris/exemples/mesfavoris_boucle.html

    r74887 r74895  
    33<B_2>
    44<ul>
    5 <BOUCLE_2(FAVORIS){id_auteur ?}{id_article ?}{id_rubrique ?}>
     5<BOUCLE_2(FAVORIS){categorie ?}{id_auteur ?}{id_article ?}{id_rubrique ?}>
    66<li>#ID_OBJET : #OBJET : #INFO_URL{#OBJET,#ID_OBJET}</li>
    77</BOUCLE_2>
  • _plugins_/mesfavoris/formulaires/favori.php

    r61801 r74895  
    22/*
    33 * Plugin mesfavoris
    4  * (c) 2009-2012 Olivier Sallou, Cedric Morin
     4 * (c) 2009-2013 Olivier Sallou, Cedric Morin, Gilles Vincent
    55 * Distribue sous licence GPL
    66 *
     
    1010
    1111/**
    12  *
     12 * Charger du formulaire CVT
     13 * Les arguments sont déterminés par la fonction balise_FORMULAIRE_FAVORI_stat()
     14 *
    1315 * @param string $objet
    1416 * @param int $id_objet
     17 * @param string $categorie
    1518 * @return array
    1619 */
    17 function formulaires_favori_charger_dist($objet, $id_objet){
     20function formulaires_favori_charger_dist($objet, $id_objet, $categorie){
    1821        $valeur = array(
    1922                'editable'=>true,
     
    2932        else {
    3033                include_spip('inc/mesfavoris');
    31                 $favori = mesfavoris_trouver($id_objet,$objet,$GLOBALS['visiteur_session']['id_auteur']);
    32                 if ($favori['id_favori']){
     34                $favori = mesfavoris_trouver($id_objet,$objet,$GLOBALS['visiteur_session']['id_auteur'],$categorie);
     35                if ($favori){
    3336                        $valeur['_deja_favori'] = true;
    3437                }
     
    3740}
    3841
    39 function formulaires_favori_traiter_dist($objet, $id_objet){
     42/**
     43 * Traiter le formulaire CVT
     44 *
     45 * @param  string $objet     
     46 * @param  int $id_objet 
     47 * @param  string $categorie
     48 * @return array           
     49 */
     50function formulaires_favori_traiter_dist($objet, $id_objet, $categorie){
    4051        $res = array('message_ok'=>' ');
    4152        if ($id_auteur = intval($GLOBALS['visiteur_session']['id_auteur'])){
    4253                include_spip('inc/mesfavoris');
    4354                if (!is_null(_request('ajouter'))){
    44                         mesfavoris_ajouter($id_objet, $objet, $id_auteur);
     55                        mesfavoris_ajouter($id_objet, $objet, $id_auteur, $categorie);
    4556                }
    4657                if (!is_null(_request('retirer'))){
    47                         mesfavoris_supprimer(array('id_objet'=>$id_objet,'objet'=>$objet,'id_auteur'=>$GLOBALS['visiteur_session']['id_auteur']));
     58                        mesfavoris_supprimer(array('id_objet'=>$id_objet,'objet'=>$objet,'id_auteur'=>$GLOBALS['visiteur_session']['id_auteur'],'categorie' => $categorie));
    4859                }
    4960        }
  • _plugins_/mesfavoris/inc/mesfavoris.php

    r61801 r74895  
    22/*
    33 * Plugin mesfavoris
    4  * (c) 2009-2012 Olivier Sallou, Cedric Morin
     4 * (c) 2009-2013 Olivier Sallou, Cedric Morin, Gilles Vincent
    55 * Distribue sous licence GPL
    66 *
     
    1010
    1111/**
    12  * Supprimer un favori dont on connait l'id
     12 * Supprimer un ensemble de favoris dont on connait les id
    1313 *
    1414 * @param int $id_favori
     
    2020                                $cond[] = "$k=".sql_quote($v);
    2121                $cond = implode(' AND ',$cond);
    22                 $res = sql_select('id_favori,objet,id_objet,id_auteur','spip_favoris',$cond);
     22                $res = sql_select('id_favori,categorie,objet,id_objet,id_auteur','spip_favoris',$cond);
    2323                include_spip('inc/invalideur');
    2424                while ($row = sql_fetch($res)){
     
    3030}
    3131
    32 function mesfavoris_ajouter($id_objet,$objet,$id_auteur){
     32function mesfavoris_ajouter($id_objet,$objet,$id_auteur,$categorie=""){
    3333        if ($id_auteur
    3434                AND $id_objet = intval($id_objet)
    3535                AND preg_match(",^\w+$,",$objet)){
    3636
    37                 if (!mesfavoris_trouver($id_objet,$objet,$id_auteur)){
    38                         sql_insertq("spip_favoris",array('id_auteur'=>$id_auteur,'id_objet'=>$id_objet,'objet'=>$objet));
     37                if (!mesfavoris_trouver($id_objet,$objet,$id_auteur,$categorie)){
     38                        sql_insertq("spip_favoris",array('id_auteur'=>$id_auteur,'id_objet'=>$id_objet,'categorie'=>$categorie,'objet'=>$objet));
    3939                        include_spip('inc/invalideur');
    4040                        suivre_invalideur("favori/$objet/$id_objet");
     
    4343        }
    4444        else
    45                 spip_log("erreur ajouter favori $id_objet-$objet-$id_auteur");
     45                spip_log("erreur ajouter favori $id_objet-$objet-$categorie-$id_auteur");
    4646}
    4747
    48 function mesfavoris_trouver($id_objet,$objet,$id_auteur){
     48function mesfavoris_trouver($id_objet,$objet,$id_auteur,$categorie=""){
    4949        $row = false;
    5050        if ($id_auteur=intval($id_auteur)
    5151                AND $id_objet = intval($id_objet)
    5252                AND preg_match(",^\w+$,",$objet)){
    53                 $row = sql_fetsel("*","spip_favoris","id_auteur=".intval($id_auteur)." AND id_objet=".intval($id_objet)." AND objet=".sql_quote($objet));
     53                $row = sql_fetsel("*","spip_favoris","id_auteur=".intval($id_auteur)." AND id_objet=".intval($id_objet)." AND objet=".sql_quote($objet)." AND categorie=".sql_quote($categorie));
    5454        }
    5555        return $row;
  • _plugins_/mesfavoris/inclure/mesfavoris.html

    r71952 r74895  
    44  Distribue sous licence GPL
    55 
    6   Affiche les favoirs d'un auteur particulier
     6  Affiche les favoris d'un auteur particulier
    77 
    88  Paramètres possibles :
     
    1515  -* type_pagination string : le type de pagination souhaitée sinon celle par défaut de SPIP
    1616  -* sinon string : le texte à afficher dans le cas ou la liste est vide (par défaut aucun)
    17 
     17  -* categorie string : le type de favori à afficher
    1818]
    1919<B_selections>
    20         <div id="selection" class="liste favoris[ (#ENV{class})]">
     20        <div id="selection" class="liste favoris[ (#ENV{categorie})][ (#ENV{class})]">
    2121                <h2>[(#ENV{titre,<:mesfavoris:mes_favoris:>})]</h2>
    2222                [<p class="pagination">(#PAGINATION)</p>]
    2323                <ul class="liste-items">
    24                         <BOUCLE_selections(FAVORIS){!par maj}{id_auteur}{pagination #ENV{pagination,10}}>
     24                        <BOUCLE_selections(FAVORIS){!par maj}{id_auteur}{categorie ?}{pagination #ENV{pagination,10}}>
    2525                                <li class="item">
    2626                                        <a href="#INFO_URL{#OBJET,#ID_OBJET}">#INFO_TITRE{#OBJET,#ID_OBJET}</a>
    27                                         <span class="date"><span class="sep"> - </span>[<:mesfavoris:ajoute_le:> (#MAJ|affdate_court)]</span>
     27                                        <span class="date"><span class="sep"> - </span>[<:mesfavoris:ajoute_le:> (#MAJ|affdate_court)] [dans la catégorie (#CATEGORIE)]</span>
    2828                                        [(#ENV{bouton_suppression,oui}|=={non}|non)
    2929                                        [(#AUTORISER{modifier,favori,#ID_FAVORI}|oui)[(#BOUTON_ACTION{<:mesfavoris:remove:>,#URL_ACTION_AUTEUR{supprimer_favori,#ID_FAVORI,#SELF},ajax})]]]
  • _plugins_/mesfavoris/mesfavoris_administrations.php

    r67764 r74895  
    22/**
    33 * Plugin mesfavoris
    4  * (c) 2009-2012 Olivier Sallou, Cedric Morin
     4 * (c) 2009-2013 Olivier Sallou, Cedric Morin, Gilles Vincent
    55 * Distribue sous licence GPL
    66 *
     
    99if (!defined("_ECRIRE_INC_VERSION")) return;
    1010
     11/**
     12 * Déclaration de l'index de $tables_principales qui sera utilisé dans les 'spip_'
     13 *
     14 * @param  array $interface Array contenant les infos des tables visibles par recherche sur 'spip_bidule'
     15 * @return array            Cet Array de description modifié
     16 */
    1117function mesfavoris_declarer_tables_interfaces($interface){
    12         // 'spip_' dans l'index de $tables_principales
    1318        $interface['table_des_tables']['favoris']='favoris';
    14 
    1519        return $interface;
    1620}
     
    2832                "id_objet"      => "bigint(21) DEFAULT '0' NOT NULL",
    2933                "objet" => "VARCHAR (25) DEFAULT '' NOT NULL",
     34                "categorie"     => "VARCHAR (25) DEFAULT '' NOT NULL",
    3035                "maj"   => "TIMESTAMP"
    3136        );
     
    3641                "KEY id_auteur" => "id_auteur",
    3742                "KEY id_objet" => "id_objet",
    38                 "KEY objet" => "objet"
     43                "KEY objet" => "objet",
     44                "KEY categorie" => "categorie",
    3945        );
    4046
     
    8086                        ecrire_meta($nom_meta_base_version,$current_version="1.1.0",'non');
    8187                }
     88                if (version_compare($current_version,'1.2.0','<')){
     89                        sql_alter("TABLE spip_favoris ADD COLUMN categorie VARCHAR(50) DEFAULT '' NOT NULL");
     90                        sql_alter("TABLE spip_favoris ADD INDEX categorie (categorie)");
     91                        ecrire_meta($nom_meta_base_version,$current_version="1.2.0",'non');
     92                }
    8293        }
    8394}
  • _plugins_/mesfavoris/mesfavoris_autoriser.php

    r64341 r74895  
    22/**
    33 * Plugin mesfavoris
    4  * (c) 2009-2012 Olivier Sallou, Cedric Morin
     4 * (c) 2009-2013 Olivier Sallou, Cedric Morin, Gilles Vincent
    55 * Distribue sous licence GPL
    66 *
     
    1212function mesfavoris_autoriser(){}
    1313
     14/**
     15 * Contrôle l'accès sur la modification d'un favori via le plugin
     16 * Ici les admins (non restreint) ont tous les droits
     17 * Et les auteurs peuvent modifier leurs favoris
     18 *
     19 * @param  string $faire Action
     20 * @param  string $type  Type d'objet
     21 * @param  integer $id   id de l'objet
     22 * @param  array $qui    celui qui veut réaliser l'action $faire sur l'objet
     23 * @param  array $opt   
     24 * @return boolean       true si la modification est possible
     25 */
    1426function autoriser_favori_modifier_dist($faire, $type, $id, $qui, $opt) {
    1527        if ($qui['statut'] == '0minirezo' AND !$qui['restreint'])
  • _plugins_/mesfavoris/paquet.xml

    r71952 r74895  
    22        prefix="mesfavoris"
    33        categorie="navigation"
    4         version="2.3.4"
    5         etat="stable"
     4        version="2.4.0"
     5        etat="test"
    66        compatibilite="[2.0.0;3.0.99]"
    77        logo="images/mesfavoris-128.png"
    8         schema="1.1.0"
     8        schema="1.2.0"
    99        documentation="http://www.spip-contrib.net/Mes-Favoris-2-0"
    1010>       
     
    1414
    1515        <auteur>Olivier Sallou</auteur>
    16         <auteur lien="yterium.net">Cédric Morin</auteur>
     16        <auteur lien="http://www.yterium.net">Cédric Morin</auteur>
     17        <auteur lien="http://www.tech-nova.fr">Gilles Vincent</auteur>
    1718
    1819        <pipeline nom="declarer_tables_principales" inclure="mesfavoris_administrations.php" />
  • _plugins_/mesfavoris/plugin.xml

    r71952 r74895  
    33        <slogan>S&#233;lection de favoris</slogan>
    44        <icon>images/mesfavoris-128.png</icon>
    5         <version>2.3.4</version>
    6         <version_base>1.1.0</version_base>
    7         <etat>stable</etat>
     5        <version>2.4.0</version>
     6        <version_base>1.2.0</version_base>
     7        <etat>test</etat>
    88        <prefix>mesfavoris</prefix>
    9         <auteur>Olivier Sallou, [C&#233;dric Morin->yterium.net]</auteur>
     9        <auteur>Olivier Sallou, [C&#233;dric Morin->http://www.yterium.net], [Gilles Vincent->http://www.tech-nova.fr]</auteur>
    1010        <description>(D&#233;)S&#233;lectionne un objet pour g&#233;rer des objets (articles, rubriques ...) favoris pour un visiteur authentifi&#233;</description>
    1111        <install>mesfavoris_administrations.php</install>
Note: See TracChangeset for help on using the changeset viewer.