Changeset 102956 in spip-zone


Ignore:
Timestamp:
Feb 20, 2017, 10:15:05 AM (2 years ago)
Author:
kent1@…
Message:

En plus du bouton de création basique, on ajoute un formulaire d'édition de lien qui permet de créer et associer également

Location:
_plugins_/selections_editoriales/trunk
Files:
5 added
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/selections_editoriales/trunk/action/editer_selection.php

    r100594 r102956  
    2323        return $ok;
    2424}
     25
     26function selection_associer($id_selection, $objets, $qualif = null) {
     27        include_spip('action/editer_liens');
     28        $res = objet_associer(array('selection'=>$id_selection), $objets, $qualif);
     29        include_spip('inc/invalideur');
     30        suivre_invalideur("id='selection/$id_selection'");
     31        return $res;
     32}
     33
     34/**
     35 * Dissocier un point géolocalisé des objets listes sous forme
     36 * array($objet=>$id_objets,...)
     37 * $id_objets peut lui meme etre un scalaire ou un tableau pour une liste d'objets du meme type
     38 *
     39 * un * pour $id_auteur,$objet,$id_objet permet de traiter par lot
     40 *
     41 * @param int $id_gis
     42 * @param array $objets
     43 * @return string
     44 */
     45function selection_dissocier($id_selection, $objets) {
     46        include_spip('action/editer_liens');
     47        $res = objet_dissocier(array('gis' => $id_selection), $objets);
     48        include_spip('inc/invalideur');
     49        suivre_invalideur("id='selection/$id_selection'");
     50        return $res;
     51}
     52
     53function lier_selection($id_selection, $objet, $id_objet) {
     54        if ($id_objet and $id_gis
     55                and preg_match('/^[a-z0-9_]+$/i', $objet) # securite
     56                and !sql_getfetsel('id_selection', 'spip_selections_liens', "id_gis=$id_selection AND id_objet=$id_objet AND objet=".sql_quote($objet))
     57                and autoriser('lier', 'selection', $id_selection, $GLOBALS['visiteur_session'], array('objet' => $objet,'id_objet'=>$id_objet))
     58        ) {
     59                selection_associer($id_gis, array($objet=>$id_objet));
     60                return true;
     61        }
     62        return false;
     63}
     64
     65function delier_selection($id_selection, $objet, $id_objet) {
     66        //$objet = objet_type($objet);
     67        if ($id_objet and $id_gis
     68                and preg_match('/^[a-z0-9_]+$/i', $objet) # securite
     69                and autoriser('delier', 'selection', $id_selection, $GLOBALS['visiteur_session'], array('objet' => $objet,'id_objet'=>$id_objet))
     70        ) {
     71                selection_dissocier($id_selection, array($objet => $id_objet));
     72                return true;
     73        }
     74        return false;
     75}
  • _plugins_/selections_editoriales/trunk/formulaires/editer_selection.php

    r100594 r102956  
    2424 * @param string $retour
    2525 *     URL de redirection après le traitement
    26  * @param int $lier_trad
    27  *     Identifiant éventuel d'un selection source d'une traduction
     26 * @param string $associer_objet
     27 *     Éventuel 'objet|x' indiquant de lier le mot créé à cet objet,
     28 *     tel que 'article|3'
    2829 * @param string $config_fonc
    2930 *     Nom de la fonction ajoutant des configurations particulières au formulaire
     
    3536 *     Hash du formulaire
    3637 */
    37 function formulaires_editer_selection_identifier_dist($id_selection = 'new', $retour = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
     38function formulaires_editer_selection_identifier_dist($id_selection = 'new', $retour = '', $associer_objet = '', $config_fonc = '', $row = array(), $hidden = '') {
    3839        return serialize(array(intval($id_selection)));
    3940}
     
    5051 * @param string $retour
    5152 *     URL de redirection après le traitement
    52  * @param int $lier_trad
    53  *     Identifiant éventuel d'un selection source d'une traduction
     53 * @param string $associer_objet
     54 *     Éventuel 'objet|x' indiquant de lier le mot créé à cet objet,
     55 *     tel que 'article|3'
    5456 * @param string $config_fonc
    5557 *     Nom de la fonction ajoutant des configurations particulières au formulaire
     
    6163 *     Environnement du formulaire
    6264 */
    63 function formulaires_editer_selection_charger_dist($id_selection = 'new', $retour = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
    64         $valeurs = formulaires_editer_objet_charger('selection', $id_selection, '', $lier_trad, $retour, $config_fonc, $row, $hidden);
     65function formulaires_editer_selection_charger_dist($id_selection = 'new', $retour = '', $associer_objet = '', $config_fonc = '', $row = array(), $hidden = '') {
     66        $valeurs = formulaires_editer_objet_charger('selection', $id_selection, '', '', $retour, $config_fonc, $row, $hidden);
    6567        return $valeurs;
    6668}
     
    7779 * @param string $retour
    7880 *     URL de redirection après le traitement
    79  * @param int $lier_trad
    80  *     Identifiant éventuel d'un selection source d'une traduction
     81 * @param string $associer_objet
     82 *     Éventuel 'objet|x' indiquant de lier le mot créé à cet objet,
     83 *     tel que 'article|3'
    8184 * @param string $config_fonc
    8285 *     Nom de la fonction ajoutant des configurations particulières au formulaire
     
    8891 *     Tableau des erreurs
    8992 */
    90 function formulaires_editer_selection_verifier_dist($id_selection = 'new', $retour = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
     93function formulaires_editer_selection_verifier_dist($id_selection = 'new', $retour = '', $associer_objet = '', $config_fonc = '', $row = array(), $hidden = '') {
    9194        $erreurs = formulaires_editer_objet_verifier('selection', $id_selection, array('titre'));
    9295
     
    129132 * @param string $retour
    130133 *     URL de redirection après le traitement
    131  * @param int $lier_trad
    132  *     Identifiant éventuel d'un selection source d'une traduction
     134 * @param string $associer_objet
     135 *     Éventuel 'objet|x' indiquant de lier le mot créé à cet objet,
     136 *     tel que 'article|3'
    133137 * @param string $config_fonc
    134138 *     Nom de la fonction ajoutant des configurations particulières au formulaire
     
    140144 *     Retours des traitements
    141145 */
    142 function formulaires_editer_selection_traiter_dist($id_selection = 'new', $retour = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
    143         return formulaires_editer_objet_traiter('selection', $id_selection, '', $lier_trad, $retour, $config_fonc, $row, $hidden);
     146function formulaires_editer_selection_traiter_dist($id_selection = 'new', $retour = '', $associer_objet = '', $config_fonc = '', $row = array(), $hidden = '') {
     147        $res = formulaires_editer_objet_traiter('selection', $id_selection, '', '', $retour, $config_fonc, $row, $hidden);
     148        if ($associer_objet) {
     149                if (intval($associer_objet)) {
     150                        // compat avec l'appel de la forme ajouter_id_article
     151                        $objet = 'article';
     152                        $id_objet = intval($associer_objet);
     153                } else {
     154                        list($objet, $id_objet) = explode('|', $associer_objet);
     155                }
     156                if ($objet and $id_objet and autoriser('modifier', $objet, $id_objet)) {
     157                        include_spip('action/editer_selection');
     158                        selection_associer($res['id_selection'], array($objet => $id_objet));
     159                        if (isset($res['redirect'])) {
     160                                $res['redirect'] = parametre_url($res['redirect'], 'id_lien_ajoute', $res['id_selection'], '&');
     161                        }
     162                }
     163        }
     164        return $res;
    144165}
     166
  • _plugins_/selections_editoriales/trunk/prive/squelettes/inclure/selections_objet.html

    r102953 r102956  
    33<div id='selections' class='selections-lies'>
    44
    5 <B_selections>
    6 <h2 class="titrem"><:selection:titre_selections:></h2>
    7 <BOUCLE_selections(SELECTIONS spip_selections_liens){objet}{id_objet}{par num titre,titre}>
    8 <INCLURE{fond=prive/squelettes/inclure/editer_selections_contenus, id_selection, editer_selection=oui, vu=#VU, objet, id_objet, env, ajax=selection#ID_SELECTION}>
    9 </BOUCLE_selections>
    10 </B_selections>
     5
     6<INCLURE{fond=prive/squelettes/inclure/selections_objet_liens, id_selection, editer_selection=oui, vu=#VU, objet, id_objet, env, ajax=selections}>
     7
    118
    129[(#AUTORISER{associerselections, #OBJET, #ID_OBJET}|et{#AUTORISER{creer, selection}})
Note: See TracChangeset for help on using the changeset viewer.