Changeset 79810 in spip-zone for _plugins_/partenaires/branches/v1


Ignore:
Timestamp:
Jan 3, 2014, 10:24:00 AM (5 years ago)
Author:
abelass@…
Message:
  • permettre d'associer les partenaires à un objet au choix (cfg)
  • gérer les statuts de l'objet partenaire
Location:
_plugins_/partenaires/branches/v1
Files:
1 deleted
8 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/partenaires/branches/v1/base/partenaires.php

    r69962 r79810  
    1717        $interfaces['table_des_tables']['partenaires_types'] = 'partenaires_types';
    1818
    19         $interfaces['exceptions_des_jointures']['partenaires']['titre_type'] = array('spip_partenaires_types', 'titre');
    20         $interfaces['exceptions_des_jointures']['partenaires']['id_type'] = array('spip_partenaires_types', 'id_type');
     19    $interfaces['exceptions_des_jointures']['partenaires']['titre_type'] = array('spip_partenaires_types', 'titre');
     20    $interfaces['exceptions_des_jointures']['partenaires']['id_type'] = array('spip_partenaires_types', 'id_type');
    2121
    2222        return $interfaces;
     
    3535                        "id_partenaire"      => "bigint(21) NOT NULL",
    3636                        "nom"                => "varchar(255) NOT NULL DEFAULT ''",
    37                         "descriptif"         => "text NOT NULL DEFAULT ''",
     37                        "descriptif"         => "text NOT NULL",
    3838                        "url_site"           => "varchar(255) NOT NULL DEFAULT ''",
     39                        "statut"             => "varchar(20)  DEFAULT '0' NOT NULL",
    3940                        "maj"                => "TIMESTAMP"
    4041                ),
    4142                'key' => array(
    4243                        "PRIMARY KEY"        => "id_partenaire",
     44                        "KEY statut"         => "statut",
    4345                ),
    4446                'titre' => "nom AS titre, '' AS lang",
    4547                 #'date' => "",
    4648                'champs_editables'  => array('nom', 'descriptif', 'url_site'),
    47                 'champs_versionnes' => array('descriptif'),
    48                 'rechercher_champs' => array(),
    49                 'tables_jointures'  => array(),
     49                'champs_versionnes' => array('nom', 'descriptif', 'url_site'),
     50                'rechercher_champs' => array("nom" => 8, "descriptif" => 6),
     51                'tables_jointures'  => array('spip_partenaires_liens'),
     52                'statut_textes_instituer' => array(
     53                        'prop'     => 'texte_statut_propose_evaluation',
     54                        'publie'   => 'texte_statut_publie',
     55                        'poubelle' => 'texte_statut_poubelle',
     56                ),
     57                'statut'=> array(
     58                        array(
     59                                'champ'     => 'statut',
     60                                'publie'    => 'publie',
     61                                'previsu'   => 'publie,prop',
     62                                'post_date' => 'date',
     63                                'exception' => array('statut','tout')
     64                        )
     65                ),
     66                'texte_changer_statut' => 'partenaire:texte_changer_statut_partenaire',
    5067               
    5168
     
    83100 */
    84101function partenaires_declarer_tables_auxiliaires($tables) {
     102       
     103        $tables['spip_partenaires_liens'] = array(
     104                'field' => array(
     105                        "id_partenaire"      => "bigint(21) DEFAULT '0' NOT NULL",
     106                        "id_objet"           => "bigint(21) DEFAULT '0' NOT NULL",
     107                        "objet"              => "VARCHAR(25) DEFAULT '' NOT NULL",
     108                        "vu"                 => "VARCHAR(6) DEFAULT 'non' NOT NULL"
     109                ),
     110                'key' => array(
     111                        "PRIMARY KEY"        => "id_partenaire,id_objet,objet",
     112                        "KEY id_partenaire"  => "id_partenaire"
     113                )
     114        );
    85115
    86116        $tables['spip_partenaires_types_liens'] = array(
    87117                'field' => array(
    88                         "id_type" => "bigint(21) DEFAULT '0' NOT NULL",
     118                        "id_type"                        => "bigint(21) DEFAULT '0' NOT NULL",
    89119                        "id_objet"           => "bigint(21) DEFAULT '0' NOT NULL",
    90120                        "objet"              => "VARCHAR(25) DEFAULT '' NOT NULL",
     
    93123                'key' => array(
    94124                        "PRIMARY KEY"        => "id_type,id_objet,objet",
    95                         "KEY id_type" => "id_type"
     125                        "KEY id_type"            => "id_type"
    96126                )
    97127        );
  • _plugins_/partenaires/branches/v1/formulaires/editer_partenaire.php

    r69959 r79810  
    1212
    1313/**
    14  * Identifier le formulaire en faisant abstraction des parametres qui ne representent pas l'objet edite
     14 * Identifier le formulaire en faisant abstraction des paramètres qui ne représentent pas l'objet edité
     15 *
     16 * @param int|string $id_partenaire
     17 *     Identifiant du partenaire. 'new' pour un nouveau partenaire.
     18 * @param string $retour
     19 *     URL de redirection après le traitement
     20 * @param string $associer_objet
     21 *     Éventuel `objet|x` indiquant de lier le partenaire créé à cet objet,
     22 *     tel que `article|3`
     23 * @param int $lier_trad
     24 *     Identifiant éventuel d'un partenaire source d'une traduction
     25 * @param string $config_fonc
     26 *     Nom de la fonction ajoutant des configurations particulières au formulaire
     27 * @param array $row
     28 *     Valeurs de la ligne SQL du partenaire, si connu
     29 * @param string $hidden
     30 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
     31 * @return string
     32 *     Hash du formulaire
    1533 */
    16 function formulaires_editer_partenaire_identifier_dist($id_partenaire='new', $retour='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
    17         return serialize(array(intval($id_partenaire)));
     34function formulaires_editer_partenaire_identifier_dist($id_partenaire='new', $retour='', $associer_objet='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
     35        return serialize(array(intval($id_partenaire), $associer_objet));
    1836}
    1937
    2038/**
    21  * Declarer les champs postes et y integrer les valeurs par defaut
     39 * Chargement du formulaire d'édition de partenaire
     40 *
     41 * Déclarer les champs postés et y intégrer les valeurs par défaut
     42 *
     43 * @uses formulaires_editer_objet_charger()
     44 *
     45 * @param int|string $id_partenaire
     46 *     Identifiant du partenaire. 'new' pour un nouveau partenaire.
     47 * @param string $retour
     48 *     URL de redirection après le traitement
     49 * @param string $associer_objet
     50 *     Éventuel `objet|x` indiquant de lier le partenaire créé à cet objet,
     51 *     tel que `article|3`
     52 * @param int $lier_trad
     53 *     Identifiant éventuel d'un partenaire source d'une traduction
     54 * @param string $config_fonc
     55 *     Nom de la fonction ajoutant des configurations particulières au formulaire
     56 * @param array $row
     57 *     Valeurs de la ligne SQL du partenaire, si connu
     58 * @param string $hidden
     59 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
     60 * @return array
     61 *     Environnement du formulaire
    2262 */
    23 function formulaires_editer_partenaire_charger_dist($id_partenaire='new', $retour='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
     63function formulaires_editer_partenaire_charger_dist($id_partenaire='new', $retour='', $associer_objet='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
    2464        $valeurs = formulaires_editer_objet_charger('partenaire',$id_partenaire,'',$lier_trad,$retour,$config_fonc,$row,$hidden);
     65        $valeurs['_hidden'].='<input type="hidden" name="statut" value="publie"/>';
    2566        return $valeurs;
    2667}
    2768
    2869/**
    29  * Verifier les champs postes et signaler d'eventuelles erreurs
     70 * Vérifications du formulaire d'édition de partenaire
     71 *
     72 * Vérifier les champs postés et signaler d'éventuelles erreurs
     73 *
     74 * @uses formulaires_editer_objet_verifier()
     75 *
     76 * @param int|string $id_partenaire
     77 *     Identifiant du partenaire. 'new' pour un nouveau partenaire.
     78 * @param string $retour
     79 *     URL de redirection après le traitement
     80 * @param string $associer_objet
     81 *     Éventuel `objet|x` indiquant de lier le partenaire créé à cet objet,
     82 *     tel que `article|3`
     83 * @param int $lier_trad
     84 *     Identifiant éventuel d'un partenaire source d'une traduction
     85 * @param string $config_fonc
     86 *     Nom de la fonction ajoutant des configurations particulières au formulaire
     87 * @param array $row
     88 *     Valeurs de la ligne SQL du partenaire, si connu
     89 * @param string $hidden
     90 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
     91 * @return array
     92 *     Tableau des erreurs
    3093 */
    31 function formulaires_editer_partenaire_verifier_dist($id_partenaire='new', $retour='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
     94function formulaires_editer_partenaire_verifier_dist($id_partenaire='new', $retour='', $associer_objet='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
     95
    3296        return formulaires_editer_objet_verifier('partenaire',$id_partenaire, array('nom'));
     97
    3398}
    3499
    35100/**
    36  * Traiter les champs postes
     101 * Traitement du formulaire d'édition de partenaire
     102 *
     103 * Traiter les champs postés
     104 *
     105 * @uses formulaires_editer_objet_traiter()
     106 *
     107 * @param int|string $id_partenaire
     108 *     Identifiant du partenaire. 'new' pour un nouveau partenaire.
     109 * @param string $retour
     110 *     URL de redirection après le traitement
     111 * @param string $associer_objet
     112 *     Éventuel `objet|x` indiquant de lier le partenaire créé à cet objet,
     113 *     tel que `article|3`
     114 * @param int $lier_trad
     115 *     Identifiant éventuel d'un partenaire source d'une traduction
     116 * @param string $config_fonc
     117 *     Nom de la fonction ajoutant des configurations particulières au formulaire
     118 * @param array $row
     119 *     Valeurs de la ligne SQL du partenaire, si connu
     120 * @param string $hidden
     121 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
     122 * @return array
     123 *     Retours des traitements
    37124 */
    38 function formulaires_editer_partenaire_traiter_dist($id_partenaire='new', $retour='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
    39         return formulaires_editer_objet_traiter('partenaire',$id_partenaire,'',$lier_trad,$retour,$config_fonc,$row,$hidden);
     125function formulaires_editer_partenaire_traiter_dist($id_partenaire='new', $retour='', $associer_objet='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
     126        $res = formulaires_editer_objet_traiter('partenaire',$id_partenaire,'',$lier_trad,$retour,$config_fonc,$row,$hidden);
     127 
     128        // Un lien a prendre en compte ?
     129        if ($associer_objet AND $id_partenaire = $res['id_partenaire']) {
     130                list($objet, $id_objet) = explode('|', $associer_objet);
     131
     132                if ($objet AND $id_objet AND autoriser('modifier', $objet, $id_objet)) {
     133                        include_spip('action/editer_liens');
     134                        objet_associer(array('partenaire' => $id_partenaire), array($objet => $id_objet));
     135                        if (isset($res['redirect'])) {
     136                                $res['redirect'] = parametre_url ($res['redirect'], "id_lien_ajoute", $id_partenaire, '&');
     137                        }
     138                }
     139        }
     140        return $res;
     141
    40142}
    41143
  • _plugins_/partenaires/branches/v1/lang/partenaires_fr.php

    r69959 r79810  
    55
    66$GLOBALS[$GLOBALS['idx_lang']] = array(
     7        //C
     8        'cfg_titre_parametrages' => 'Paramétrages',
     9
     10        //L
     11        'label_selection_partenaires_objets'=>'Sélectionnez les objets auxquelles les partenaires peuvent être associés.',
    712
    813        // P
    914        'partenaires_titre' => 'Partenaires',
     15               
     16        // T
     17        'titre_page_configurer_partenaires' => 'Paramêtres Plugin Partenaires',
    1018);
    1119
  • _plugins_/partenaires/branches/v1/paquet.xml

    r69962 r79810  
    22        prefix="partenaires"
    33        categorie="divers"
    4         version="1.4.0"
     4        version="1.5.0"
    55        etat="dev"
    66        compatibilite="[3.0.5;3.0.*]"
    77        logo="prive/themes/spip/images/partenaires-64.png"
    88        documentation=""
    9         schema="1.4.0"
     9        schema="1.5.0"
    1010>
    1111        <!--
  • _plugins_/partenaires/branches/v1/partenaires_administrations.php

    r69962 r79810  
    1515        $maj = array();
    1616
    17         $maj['create'] = array(array('maj_tables', array('spip_partenaires', 'spip_partenaires_types', 'spip_partenaires_types_liens')));
     17        $maj['create'] = array(array('maj_tables', array('spip_partenaires', 'spip_partenaires_types', 'spip_partenaires_liens', 'spip_partenaires_types_liens')));
    1818        include_spip('base/importer_spip_partenaires_types');
    1919        $maj['create'][] = array('importer_spip_partenaires_types');
    20 
     20        $maj['1.5.0'] = array(array('maj_tables', array('spip_partenaires','spip_partenaires_liens')));
    2121        include_spip('base/upgrade');
    2222        maj_plugin($nom_meta_base_version, $version_cible, $maj);
     
    3030
    3131        sql_drop_table("spip_partenaires");
    32         sql_drop_table("spip_partenaires_types");
     32        sql_drop_table("spip_partenaires_types");       
     33        sql_drop_table("spip_partenaires_liens");       
    3334        sql_drop_table("spip_partenaires_types_liens");
    3435
  • _plugins_/partenaires/branches/v1/partenaires_pipelines.php

    r69962 r79810  
    1717        $texte = "";
    1818        $e = trouver_objet_exec($flux['args']['exec']);
     19       
     20        // partenaires sur les objets sélectionnées
     21        $config=lire_config('partenaires',array());
     22        $objets_partenaires=isset($config['objets'])?$config['objets']:array();
     23        if (!$e['edition'] AND in_array($e['type'], $objets_partenaires)) {
     24                $texte .= recuperer_fond('prive/objets/editer/liens', array(
     25                        'table_source' => 'partenaires',
     26                        'objet' => $e['type'],
     27                        'id_objet' => $flux['args'][$e['id_table_objet']]
     28                ));
     29        }
    1930
    2031
  • _plugins_/partenaires/branches/v1/prive/objets/liste/partenaires.html

    r69962 r79810  
    1111                <tr class='first_row'>
    1212                        <th class='picto' scope='col'></th>
     13            <th class='statut' scope='col'>[(#TRI{statut,<span title="<:lien_trier_statut|attribut_html:>">#</span>,ajax})]</th>                       
    1314                        <th class='nom' scope='col'>[(#TRI{nom,<:partenaire:label_nom:>,ajax})]</th>
    1415                        <th class='id' scope='col'>[(#TRI{id_partenaire,<:info_numero_abbreviation:>,ajax})]</th>
     
    1617        </thead>
    1718        <tbody>
    18         <BOUCLE_liste_partenaires(PARTENAIRES){id_mot?}{id_auteur?}{where?}{recherche?}{tri #ENV{par,num nom},#GET{defaut_tri}}{par nom}{pagination #ENV{nb,10}}>
     19        <BOUCLE_liste_partenaires(PARTENAIRES){id_mot?}{id_auteur?}{where?}{recherche?}{tri #ENV{par,num nom},#GET{defaut_tri}}{par nom}{pagination #ENV{nb,10}}{statut?}>
    1920                <tr class='[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]'>
    2021                        <td class='picto'>[(#LOGO_PARTENAIRE|image_reduire{20,26})]</td>
     22            <td class='statut'>[(#STATUT|puce_statut{partenaire,#ID_PARTENAIRE})]</td>                 
    2123                        <td class='nom principale'><a href="[(#ID_PARTENAIRE|generer_url_entite{partenaire})]" title="<:info_numero_abbreviation|attribut_html:> #ID_PARTENAIRE">[(#RANG). ]#NOM</a></td>
    2224                        <td class='id'>[(#AUTORISER{modifier,partenaire,#ID_PARTENAIRE}|?{
  • _plugins_/partenaires/branches/v1/prive/squelettes/contenu/partenaire.html

    r69959 r79810  
    11[(#AUTORISER{voir,partenaire,#ID_PARTENAIRE}|sinon_interdire_acces)]
    2 <BOUCLE_partenaire(PARTENAIRES){id_partenaire}{si #ENV{exec}|=={partenaire}}>
     2<BOUCLE_partenaire(PARTENAIRES){id_partenaire}{si #ENV{exec}|=={partenaire}}{statut?}>
    33[(#BOITE_OUVRIR{[
    44        [(#AUTORISER{modifier,partenaire,#ID_PARTENAIRE})
Note: See TracChangeset for help on using the changeset viewer.