Changeset 58271 in spip-zone


Ignore:
Timestamp:
Feb 13, 2012, 9:37:33 PM (9 years ago)
Author:
marcimat@…
Message:

Liaisons sur les organisations en utilisant le #FORMULAIRE_EDITER_LIENS_SIMPLES aussi, ainsi que les squelettes adéquats
+ simplification du code pour l'affichage des contacts sur les auteurs du coup.

Location:
_plugins_/contacts_et_organisations/trunk
Files:
4 added
5 deleted
6 edited
1 copied
4 moved

Legend:

Unmodified
Added
Removed
  • _plugins_/contacts_et_organisations/trunk/contacts_pipelines.php

    r58266 r58271  
    3939        if ($flux['args']['type'] == 'auteur') {
    4040                $id = intval($flux['args']['id_objet']);
    41                 $id_contact = sql_getfetsel('id_contact', 'spip_contacts', 'id_auteur ='.$id);
    42                 $id_organisation = sql_getfetsel('id_organisation', 'spip_organisations', 'id_auteur ='.$id);
    4341
    44                 if ($id_contact or $id_organisation)
     42                // informations sur le contact et ses liens
     43                if ($id_contact = sql_getfetsel('id_contact', 'spip_contacts', 'id_auteur ='.$id))
    4544                {
    46                         include_spip('inc/presentation'); // icone_verticale
     45                        $infos = recuperer_fond('prive/squelettes/contenu/contact_sur_auteur', array('id_contact' => $id_contact));
     46                        $flux['data'] .= $infos;
     47                }
     48                // informations sur l'organisation et ses liens
     49                elseif ($id_organisation = sql_getfetsel('id_organisation', 'spip_organisations', 'id_auteur ='.$id))
     50                {
     51                        $infos = recuperer_fond('prive/squelettes/contenu/organisation_sur_auteur', array('id_organisation' => $id_organisation));
     52                        $flux['data'] .= $infos;
     53                }
    4754
    48                         $infos = '';
    49                         $bouton_edit = '';
    50                         $self = self();
    51 
    52                         if ($id_contact)
    53                         {
    54                                 // informations du contact
    55                                 $infos  = recuperer_fond('prive/objets/contenu/contact', array('id_contact' => $id_contact));
    56                                
    57                                 // bouton "Modifier le contact"
    58                                 if ( autoriser('modifier', 'contact', $id_contact) )
    59                                 {
    60                                         $texte = _T('contacts:contact_editer');
    61                                         $lien = parametre_url(generer_url_ecrire('contact_edit', 'id_contact='.$id_contact), 'redirect' , $self);
    62                                         $fond = chemin_image('contact-24.png');
    63                                         $bouton_edit = icone_verticale($texte, $lien, $fond, '', 'right');
    64                                 }
    65                                 $flux['data'] = $infos . $bouton_edit. $flux['data'] ;
    66                         }
    67                        
    68                         else if ($id_organisation)
    69                         {
    70 
    71                                 // informations des liens de l'organisation
    72                                 $liens = recuperer_fond('prive/squelettes/contenu/organisation_sur_auteur',
    73                                         array('id_organisation' => $id_organisation, 'exec'=>'auteur'));
    74                                        
    75                                 $flux['data'] = $flux['data'] . $liens;
    76                         }
    77 
    78                        
    79 
    80                 } // fin fiche contact ou organisation
    8155        }
    8256
     
    11892/**
    11993 *
    120  * Insertion dans la vue des auteurs
    121  * des informations relatives aux contacts et organisations
    122  * et
    12394 * Insertion dans la vue des rubriques
    12495 * des informations relatives aux organisations
    12596 */
    12697function contacts_affiche_milieu($flux){
    127         if ($flux['args']['exec'] == 'auteur')
    128         {
    129                 $id = $flux["args"]["id_auteur"];
    130                 $id_contact = sql_getfetsel('id_contact', 'spip_contacts', 'id_auteur=' . intval($id));
    131                 $id_organisation = sql_getfetsel('id_organisation', 'spip_organisations', 'id_auteur=' . intval($id));
    132 
    133                 if ( $id_contact || $id_organisation )
    134                 {
    135                         include_spip('inc/presentation'); // icone_verticale
    136                        
    137                         $ajout = '';
    138                         $porfolio_documents = '';
    139                         $self = generer_url_ecrire('auteur_infos', 'id_auteur='.$id);
    140                        
    141                         if ($id_contact)
    142                         {
    143                                 // liste des organisations auxquelles est lié le contact
    144                                 $ajout  = recuperer_fond('prive/objets/liste/linked_organisations',
    145                                                                 array(
    146                                                                         'id_contact'    => $id_contact,
    147                                                                         'titre'                 => _T('contacts:info_organisations_appartenance')
    148                                                                 ),
    149                                                                 array('ajax'            => true));
    150                                        
    151                         }
    152 
    153                         else if ($id_organisation)
    154                         {
    155 
    156                         }
    157 
    158                         if ($p=strpos($flux['data'],"<!--affiche_milieu-->"))
    159                         $flux['data'] = substr_replace($flux['data'],$ajout,$p,0);
    160                     else
    161                                 $flux['data'] = $ajout . $flux['data'];
    162                 }// fin page contact ou organisation
    163         }
    164                
    16598        if ($flux['args']['exec'] == 'rubriques' && $flux['args']['id_rubrique'])
    16699        {
  • _plugins_/contacts_et_organisations/trunk/formulaires/editer_organisation.php

    r58266 r58271  
    3737                        // contact sur spip_organisations_contacts
    3838                        if ($objet == 'contact') {
    39                                 include_spip('action/editer_liens_simple');
     39                                include_spip('action/editer_liens_simples');
    4040                                objet_associer_simples(array('organisation' => $id_organisation), array($objet => $id_objet));
    4141                        } else {
  • _plugins_/contacts_et_organisations/trunk/lang/contacts_fr.php

    r58266 r58271  
    137137        'organisation_nouveau_titre' => 'Nouvelle organisation',
    138138        'organisation_numero' => 'Organisation numéro',
     139        'organisation_retirer_lien' => 'Retirer l\'organisation',
     140        'organisation_retirer_tous_lien' => 'Retirer toutes les organisations',
    139141        'organisation_un' => 'Une organisation',
    140142        'organisation_voir' => 'Voir',
  • _plugins_/contacts_et_organisations/trunk/prive/objets/liste/organisations_contacts_contacts_associer.html

    r58266 r58271  
    2929                (#NOM**|extraire_multi|initiale|unique|oui)
    3030                [(#SET{p,#GET{p}|concat{
    31                 #SELF|parametre_url{debutcol,@#ID_AUTEUR}|ancre_url{paginationcol}|afficher_initiale{#NOM**|extraire_multi|initiale{},#COMPTEUR_BOUCLE,#GET{debut},#ENV{nb,10}}
     31                #SELF|parametre_url{debutcol,@#ID_CONTACT}|ancre_url{paginationcol}|afficher_initiale{#NOM**|extraire_multi|initiale{},#COMPTEUR_BOUCLE,#GET{debut},#ENV{nb,10}}
    3232                }})]
    3333                ]#SAUTER{#ENV{nb,10}|moins{#COMPTEUR_BOUCLE|=={1}|?{2,1}}}</BOUCLE_lettre>[
     
    4141                <tr class='first_row'>
    4242                        <th class="picto" scope='col'></th>
    43                         <th class="nom" scope='col'>[(#TRI{nom,<:contacts:label_nom:>,ajax})]</th>
     43                        <th class="nom" scope='col'>[(#TRI{multi nom,<:contacts:label_nom:>,ajax})]</th>
    4444                        <th class="type" scope='col'>[(#TRI{type_liaison,<:contacts:label_type_liaison:>,ajax})]</th>
    4545                        <th class='action' scope='col'></th>
     
    8282</span>
    8383</div>
    84 <//B_contacts>
     84]<//B_contacts>
  • _plugins_/contacts_et_organisations/trunk/prive/objets/liste/organisations_contacts_contacts_lies.html

    r58266 r58271  
    2020                (#NOM**|extraire_multi|initiale|unique|oui)
    2121                [(#SET{p,#GET{p}|concat{
    22                 #SELF|parametre_url{debutcol,@#ID_AUTEUR}|ancre_url{paginationcol}|afficher_initiale{#NOM**|extraire_multi|initiale{},#COMPTEUR_BOUCLE,#GET{debut},#ENV{nb,10}}
     22                #SELF|parametre_url{debutcol,@#ID_CONTACT}|ancre_url{paginationcol}|afficher_initiale{#NOM**|extraire_multi|initiale{},#COMPTEUR_BOUCLE,#GET{debut},#ENV{nb,10}}
    2323                }})]
    2424                ]#SAUTER{#ENV{nb,10}|moins{#COMPTEUR_BOUCLE|=={1}|?{2,1}}}</BOUCLE_lettre>[
     
    3232                <tr class='first_row'>
    3333                        <th class="picto" scope='col'></th>
    34                         <th class="nom" scope='col'>[(#TRI{nom,<:contacts:label_nom:>,ajax})]</th>
     34                        <th class="nom" scope='col'>[(#TRI{multi nom,<:contacts:label_nom:>,ajax})]</th>
    3535                        <th class="type" scope='col'>[(#TRI{type_liaison,<:contacts:label_type_liaison:>,ajax})]</th>
    3636                        <th class='action' scope='col'></th>
  • _plugins_/contacts_et_organisations/trunk/prive/old/boite/selecteur_contacts_organisations.html

    r58266 r58271  
    1 [(#VAL{inc/presentation}|include_spip|oui)]
    21[(#SET{identifiant,[(#VAL{contacts_#ENV{id_auteur}})]})]
    32[(#SET{plie,0})]
     
    3938                        ajax})]
    4039        ]
    41         [(#GET{rien}|non)
    42                 [(#GET{id_contact}|oui)
    43                         <h3 class='h3'><:contacts:lier_organisation:></h3>
    44                         <div class='ajax'>
    45                         [(#FORMULAIRE_LIER_ORGANISATION{#GET{id_contact}})]
    46                         </div>
    47 
    48                         <h3 class='h3'><:contacts:supprimer_contact:></h3>
    49                         <div class='danger'>
    50                         <p class='explication'>
    51                                 <:contacts:explication_supprimer_contact:>
    52                                 [(#BOUTON_ACTION{[(#CHEMIN_IMAGE{contact-del-24.png}
    53                                         |balise_img{<:contacts:supprimer_contact:>}
    54                                         |concat{' ',<:contacts:supprimer_contact:>})],
    55                                         [(#URL_ACTION_AUTEUR{supprimer_contact,contact/#GET{id_contact},#SELF})],
    56                                         ajax icone horizontale danger,<:contacts:confirmer_supprimer_contact:>})]
    57                         </p>
    58                         </div>
    59                 ]
    60         ]
    6140]
    6241#BOITE_FERMER
  • _plugins_/contacts_et_organisations/trunk/prive/squelettes/contenu/contact.html

    r58266 r58271  
    33       
    44        [(#AUTORISER{modifier,contact,#ID_CONTACT})
    5                                
    65                [(#ID_CONTACT|afficher_qui_edite{contact}|non)
    76                        [(#URL_ECRIRE{contact_edit,id_contact=#ID_CONTACT}|icone_verticale{<:contacts:contact_editer:>,contact,edit,right ajax preload})]
     
    2322<div class="nettoyeur"></div>
    2423
    25 <INCLURE{fond=prive/objets/liste/linked_organisations,
    26         id_contact=#ID_CONTACT,
    27         titre=<:contacts:info_organisations_appartenance:>,
    28         ajax}>
     24
     25<div class="ajax">
     26        #FORMULAIRE_EDITER_LIENS_SIMPLES{organisations,contact,#ID_CONTACT,#AUTORISER{modifier,contact,#ID_CONTACT}}
     27</div>
    2928
    3029
  • _plugins_/contacts_et_organisations/trunk/prive/squelettes/contenu/contact_sur_auteur.html

    r58266 r58271  
    1 <BOUCLE_contact(CONTACTS){id_contact}{tous}{si #ENV{exec}|=={contact}}>
    2 [(#BOITE_OUVRIR{[
    3        
    4         [(#AUTORISER{modifier,contact,#ID_CONTACT})
    5                                
    6                 [(#ID_CONTACT|afficher_qui_edite{contact}|non)
    7                         [(#URL_ECRIRE{contact_edit,id_contact=#ID_CONTACT}|icone_verticale{<:contacts:contact_editer:>,contact,edit,right ajax preload})]
    8                 ]
    9                 [(#ID_CONTACT|afficher_qui_edite{contact}|oui)
    10                         [(#URL_ECRIRE{contact_edit,id_contact=#ID_CONTACT}|icone_verticale{#ID_CONTACT|afficher_qui_edite{contact},warning-24,'',right ajax preload})]
    11                 ]
     1[(#REM) copie beaucoup le squelette contact
     2        mais n'affiche pas tout (et pas d'ajax precharge)
     3]
     4<BOUCLE_contact(CONTACTS){id_contact}{tous}>
     5
     6[(#AUTORISER{modifier,contact,#ID_CONTACT})
     7        [(#ID_CONTACT|afficher_qui_edite{contact}|non)
     8                [(#URL_ECRIRE{contact_edit,id_contact=#ID_CONTACT}
     9                        |parametre_url{redirect,#SELF}
     10                        |icone_verticale{<:contacts:contact_editer:>,contact,edit,right})]
    1211        ]
    13         <h1>[(#RANG). ](#PRENOM|concat{' ',#NOM}|trim|sinon{<:info_sans_titre:>})[(#CHEMIN_IMAGE{contact-24.png}|balise_img{contact,cadre-icone})]</h1>
    14 ],simple fiche_objet})]
    15 
     12        [(#ID_CONTACT|afficher_qui_edite{contact}|oui)
     13                [(#URL_ECRIRE{contact_edit,id_contact=#ID_CONTACT}
     14                        |parametre_url{redirect,#SELF}
     15                        |icone_verticale{#ID_CONTACT|afficher_qui_edite{contact},warning-24,'',right})]
     16        ]
     17]
    1618
    1719
     
    2325<div class="nettoyeur"></div>
    2426
    25 <INCLURE{fond=prive/objets/liste/linked_organisations,
    26         id_contact=#ID_CONTACT,
    27         titre=<:contacts:info_organisations_appartenance:>,
    28         ajax}>
     27
     28<div class="ajax">
     29        #FORMULAIRE_EDITER_LIENS_SIMPLES{organisations,contact,#ID_CONTACT,#AUTORISER{modifier,contact,#ID_CONTACT}}
     30</div>
    2931
    3032
     
    4143#PIPELINE{afficher_complement_objet,#ARRAY{args,#ARRAY{type,contact,id,#ID_CONTACT},data,'<div class="nettoyeur"></div>'}}
    4244
    43 #BOITE_FERMER
    44 
    45 
    46 [(#BOUTON_ACTION{[(#CHEMIN_IMAGE{contact-del-24.png}
    47         |balise_img{<:contacts:supprimer_contact:>}|inserer_attribut{class,co_middle}
    48         |concat{' ',<:contacts:supprimer_contact:>})],
    49         [(#URL_ACTION_AUTEUR{supprimer_contact,contact/#ID_CONTACT,#URL_ECRIRE{contacts}})],
    50         ajax,<:contacts:confirmer_supprimer_contact:>\n\n<:contacts:explication_supprimer_contact:>})]
    51 
    52 
    53 [(#EVAL{_AJAX}|oui)
    54         <script type="text/javascript">/*<!\[CDATA\[*/reloadExecPage('#ENV{exec}','#navigation');/*\]\]>*/</script>
    55 ]
    5645</BOUCLE_contact>
    57 [(#ENV**{exec}|=={contact_edit}|?{#INCLURE{fond=prive/squelettes/contenu/contact_edit,redirect='',env,retourajax=oui},#REM|sinon_interdire_acces})]
    58 <//B_contact>
  • _plugins_/contacts_et_organisations/trunk/prive/squelettes/contenu/organisation_sur_auteur.html

    r58266 r58271  
    1 <BOUCLE_organisation(ORGANISATIONS){id_organisation}{tous}{si #ENV{exec}|=={auteur}}>
     1[(#REM) copie beaucoup le squelette organisation
     2        mais n'affiche pas tout (et pas d'ajax precharge)
     3]
     4<BOUCLE_organisation(ORGANISATIONS){id_organisation}{tous}>
    25
    36[(#AUTORISER{modifier,organisation,#ID_ORGANISATION})
Note: See TracChangeset for help on using the changeset viewer.