Changeset 56883 in spip-zone


Ignore:
Timestamp:
Jan 10, 2012, 8:53:26 PM (8 years ago)
Author:
marcimat@…
Message:

On siplifie et améliore le calcul des liens d'auteurs qui ne mettaient pas le prénom
+ des indentations.

Location:
_plugins_/spip-pmb/trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/spip-pmb/trunk/inc/unimarc.php

    r56866 r56883  
    3131                // si une fonction specifique existe, on la retourne
    3232                if (function_exists($parse = 'pmb_parse_unimarc_data_' . $zone)) {
    33                         return $parse($groupe);
     33                        return $parse($groupe, $id);
    3434                }
    3535
     
    7474 *                              'isbn' => '$valeur',
    7575 *                              'id' => '$id',
    76  *              ,
    77  *              'b' => array(
    78  *                              'titre => array(
    79  *                                      // si tableau, les parametres seront aussi retournes.
    80  *                                      // (cle, valeur, params)
    81  *                                      'titre', array(
    82  *                                              '@post_traitements' => array(
    83  *                                                      'inter' => ' '
    84  *                                              )
    85  *                              )
    86  *                      )
    8776 *              ),
    8877 *
     
    10291        // si l'element est dedans, c'est bon signe !
    10392        if (isset($tab[$zone][$sous_zone]) and $t = $tab[$zone][$sous_zone]) {
    104                
    105                 // si tableau, c'est qu'il y a une fonction de traitement
    106                 // array( 'cle', 'func', array('un', 'deux'))
    107                 // $valeur = func($valeur, 'un', 'deux');
    108                 // ou une des associations cle / valeur directement
     93
     94                // si tableau, c'est qu'il y a
     95                // une association cle / valeur directement
    10996
    11097                if (is_array($t)) {
     
    11299                        // tableau de cle/valeurs
    113100                        if (is_string(array_shift(array_keys($t)))) {
     101
    114102                                $res = array();
    115103                                foreach ($t as $c => $v) {
    116                                         if (is_array($v)) {
    117                                                 list($v, $params) = $v;
    118                                                 $res[] = array(
    119                                                         'cle' => $c,
    120                                                         'valeur' => eval('return ' . $v . ';'),
    121                                                         'params' => $params,
    122                                                 );
    123                                         } else {
    124                                                 $res[] = array(
    125                                                         'cle' => $c,
    126                                                         'valeur' => eval('return ' . $v . ';'),
    127                                                 );
    128                                         }
     104                                        $res[] = array(
     105                                                'cle' => $c,
     106                                                'valeur' => eval('return ' . $v . ';'),
     107                                        );
    129108                                }
    130109                               
     
    295274
    296275
    297                 // Nom de personne - Responsabilité principale
    298                 '700' => pmb_parse_unimarc_data_70x(),
    299 
    300                 // Nom de personne - Autre responsabilité principale
    301                 '701' => pmb_parse_unimarc_data_70x(2),
    302 
    303                 // Nom de personne - Responsabilité secondaire
    304                 '701' => pmb_parse_unimarc_data_70x(3),
     276                // Traites a part dans des fonctions specialisees.
     277                // 700 - Nom de personne - Responsabilité principale
     278                // 701 - Nom de personne - Autre responsabilité principale
     279                // 702 - Nom de personne - Responsabilité secondaire
    305280
    306281
     
    332307
    333308                // les 900 sont des donnees locales...
    334                 // et traitees separements...
     309                // traitees a part dans une fonction specialisee
    335310
    336311        );
     
    358333
    359334
    360 function pmb_parse_unimarc_data_70x($indice='') {
    361         return array(
    362                 'a' => array(
    363                         "id_auteur$indice"  => '$id',
    364                         "liensauteurs$indice" => array(
    365                                 '"<a href=\"?page=author_see&amp;id=" . $id . "\">" . $valeur . "</a>"', array(
    366                                         '@post_traitements' => array('inter' => ', '),
    367                                 )
    368                         ),
    369                         "lesauteurs$indice" => array(
    370                                 '$valeur', array(
    371                                         '@post_traitements' => array('inter' => ', '),
    372                                 )
    373                         ),
    374 
    375                 ),
    376                 'b' => array(
    377                         "lesauteurs$indice"   => array(
    378                                 '$valeur', array(
    379                                         '@post_traitements' => array('inter' => ' ', 'placer_avant' => true),
    380                                 )
    381                         ),
    382                         /*
    383                         "liensauteurs$indice" => array(
    384                                 '$valeur', array(
    385                                         '@post_traitements' => array('inter' => ' '),
    386                                 )
    387                         )*/
    388                 ),
    389         );
     335
     336
     337/**
     338 * les 70x sont des liens vers des auteurs
     339 * Et il peut y avoir plusieurs zones identiques.
     340 * Il faut donc concatener avec les auteurs deja trouves
     341 */
     342
     343// Nom de personne - Responsabilité principale
     344function pmb_parse_unimarc_data_700($groupe, $id) {
     345        return pmb_parse_unimarc_data_70x($groupe, $id);
     346}
     347
     348// Nom de personne - Autre responsabilité principale
     349function pmb_parse_unimarc_data_701($groupe, $id) {
     350        return pmb_parse_unimarc_data_70x($groupe, $id, 2);
     351}
     352
     353// Nom de personne - Responsabilité secondaire
     354function pmb_parse_unimarc_data_702($groupe, $id) {
     355        return pmb_parse_unimarc_data_70x($groupe, $id, 3);
     356}
     357
     358
     359function pmb_parse_unimarc_data_70x($groupe, $id, $indice='') {
     360        $nom = $prenom = '';
     361        foreach ($groupe as $element) {
     362                switch($element->c) {
     363                        case 'a':
     364                                $nom = pmb_nettoyer_caracteres($element->value);
     365                                break;
     366                        case 'b':
     367                                $prenom = pmb_nettoyer_caracteres($element->value);
     368                                break;
     369                }
     370        }
     371        if ($nom) {
     372                if ($prenom) {
     373                        $nom = $prenom . ' ' . $nom;
     374                }
     375                return array(
     376                        array(
     377                                'cle' => "id_auteur$indice",
     378                                'valeur' => $id,
     379                        ),
     380                        array(
     381                                'cle' => "liensauteurs$indice",
     382                                'valeur' => "<a href=\"" . generer_url_public('author_see', "id=$id") . "\">" . $nom . "</a>",
     383                                '@post_traitements' => array('inter' => ', '),
     384                        ),
     385                        array(
     386                                'cle' => "lesauteurs$indice",
     387                                'valeur' => $nom,
     388                                '@post_traitements' => array('inter' => ', '),
     389                        ),
     390
     391                );
     392        }
    390393}
    391394
     
    409412 *              l = label humain
    410413 */
    411 function pmb_parse_unimarc_data_900($groupe) {
     414function pmb_parse_unimarc_data_900($groupe, $id) {
    412415        $cle = $label = $valeur = '';
    413416        foreach ($groupe as $element) {
  • _plugins_/spip-pmb/trunk/inclure/inc-connexionpmb.html

    r55164 r56883  
    11<h2><:pmb:mon_compte:></h2>
    22[(#SESSION{id_auteur}|non)
    3       #LOGIN_PUBLIC
    4      
    5       <br class="nettoyeur" />     
     3        #LOGIN_PUBLIC
     4        <br class="nettoyeur" />     
    65]
    76[(#SESSION{id_auteur}|oui)
    8         <div class="formulaire_spip formulaire_moncomptepmb">
     7<div class="formulaire_spip formulaire_moncomptepmb">
    98        <form name="formulaire_moncomptepmb" method="post" action="#SELF">
    10             <fieldset>
    11                 <legend><:pmb:vous_etes_identifies:></legend>
    12                 <input type="hidden" name="action" value="deconnexion_pmb" />
    13                 <input type="hidden" name="redirect" value="#SELF" />
    14                 <INCLURE{fond=inclure/inc-pmbdeconnexion}{env}>
    15                 <br class="nettoyeur" />
    16             </fieldset>
    17           </form>
    18      </div>
     9                <fieldset>
     10                        <legend><:pmb:vous_etes_identifies:></legend>
     11                        <input type="hidden" name="action" value="deconnexion_pmb" />
     12                        <input type="hidden" name="redirect" value="#SELF" />
     13                        <INCLURE{fond=inclure/inc-pmbdeconnexion}{env}>
     14                        <br class="nettoyeur" />
     15                </fieldset>
     16        </form>
     17</div>
    1918]
    2019
  • _plugins_/spip-pmb/trunk/inclure/inc-notice-resume.html

    r56805 r56883  
    22[(#SET{url,[(#URL_NOTICE|parametre_url{url_ret,#ENV{url_ret}})]})]
    33
    4 [(#SET{logo,[(#INCLURE{fond=inclure/pmb-inc-logo,notice=#VALEUR,largeur,hauteur}|trim)]})]
     4[(#SET{logo,[(#INCLURE{fond=inclure/pmb-inc-logo,id,largeur,hauteur}|trim)]})]
    55
    66<li class="item hentry[(#GET{logo}|oui) avec_logo][ (#ENV{surlignable}|oui)surlignable][ (#ENV{compteur}|=={1}|oui)premier]">
  • _plugins_/spip-pmb/trunk/inclure/inc-notice_display.html

    r56865 r56883  
    1010       
    1111        [(#ENV{afficher_logo}|=={oui}|oui)
    12                 [(#INCLURE{fond=inclure/pmb-inc-logo, notice=#VALEUR, largeur=130})]
     12                [(#INCLURE{fond=inclure/pmb-inc-logo, id, largeur=130})]
    1313        ]
    1414
  • _plugins_/spip-pmb/trunk/inclure/inc-noticesconsultees.html

    r56139 r56883  
    44        <ul class="liste-items">
    55        <BOUCLE_tab_noticesconsultees(POUR){tableau #SESSION{tab_noticesconsultees}}>
    6                 <li class="item">
    7                         [(#SESSION{tab_noticesconsultees/#CLE})]               
    8                 </li>
     6                <li class="item">#VALEUR</li>
    97        </BOUCLE_tab_noticesconsultees>
    108        </ul>
  • _plugins_/spip-pmb/trunk/inclure/inc-pmbdeconnexion.html

    r55164 r56883  
    11#CACHE{0}
    22<ul class="pmb-deconnexion">
    3             <B_auteurpmb2>
    4             <BOUCLE_auteurpmb2(AUTEURS_PMB){id_auteur=#SESSION{id_auteur}}>
    5              [(#PMB_SESSION|oui)
    6              <li>Bonjour[ (#PMB_FIRSTNAME)], <a href="#URL_PAGE{auteur,id_auteur=#ID_AUTEUR}"><:pmb:accedez_compte:></a></li>
     3        <B_auteurpmb2>
     4        <BOUCLE_auteurpmb2(AUTEURS_PMB){id_auteur=#SESSION{id_auteur}}>
     5        [(#PMB_SESSION|oui)
     6                <li>
     7                        Bonjour[ (#PMB_FIRSTNAME)], <a href="#URL_PAGE{auteur,id_auteur=#ID_AUTEUR}"><:pmb:accedez_compte:></a>
     8                </li>
    79                <li class="boutons">
    8                     <a href="#URL_LOGOUT"><:pmb:se_deconnecter:></a>
     10                        <a href="#URL_LOGOUT"><:pmb:se_deconnecter:></a>
    911                </li>
    10              ]
    11               [(#PMB_SESSION|non)
    12                 <li><:pmb:bonjour:>[ (#SESSION{nom})], <a href="#URL_LOGOUT"><:session_expire:></a></li>
    13              ]
    14               </BOUCLE_auteurpmb2>
    15              </B_auteurpmb2>
    16                 <li>Bonjour[ (#SESSION{nom})], <a href="#URL_PAGE{auteur,id_auteur=#SESSION{id_auteur}}"><:pmb:accedez_compte:></a>. </li>
     12        ]
     13        [(#PMB_SESSION|non)
     14                <li>
     15                                <:pmb:bonjour:>[ (#SESSION{nom})], <a href="#URL_LOGOUT"><:session_expire:></a>
     16                </li>
     17        ]
     18        </BOUCLE_auteurpmb2>
     19        </B_auteurpmb2>
     20                <li>
     21                        Bonjour[ (#SESSION{nom})], <a href="#URL_PAGE{auteur,id_auteur=#SESSION{id_auteur}}"><:pmb:accedez_compte:></a>.
     22                </li>
    1723                <li class="boutons">
    18                     <a href="#URL_LOGOUT"><:pmb:se_deconnecter:></a>
     24                        <a href="#URL_LOGOUT"><:pmb:se_deconnecter:></a>
    1925                </li>
    20             <//B_auteurpmb2>
    21            
    22             </ul>
     26        <//B_auteurpmb2>
     27</ul>
  • _plugins_/spip-pmb/trunk/inclure/pmb-inc-logo.html

    r56653 r56883  
    1 
    2 [(#ENV{notice/logo_src}|oui)
    3                 [(#ENV{copieimage,non}|=={non}|non)
    4                         [(#ENV{notice/logo_src}
    5                                 |copie_locale{force}
    6                                 |image_reduire{#ENV{largeur,100},#ENV{hauteur,0}}
    7                                 |inserer_attribut{class,spip_logos})]
    8                 ]
    9                 [(#ENV{copieimage,non}|=={non}|oui)
    10                         [(#ENV{notice/logo_src}
    11                                 |image_reduire{#ENV{largeur,100},#ENV{hauteur,0}}
    12                                 |inserer_attribut{class,spip_logos}
    13                                 |inserer_attribut{alt,''})]
    14                 ]
     1<BOUCLE_logo_notice(PMB:NOTICES){id}>
     2[(#VALEUR{logo_src}|oui)
     3        [(#ENV{copieimage,non}|=={non}|non)
     4                [(#VALEUR{logo_src}
     5                        |copie_locale{force}
     6                        |image_reduire{#ENV{largeur,100},#ENV{hauteur,0}}
     7                        |inserer_attribut{class,spip_logos})]
     8        ]
     9        [(#ENV{copieimage,non}|=={non}|oui)
     10                [(#VALEUR{logo_src}
     11                        |image_reduire{#ENV{largeur,100},#ENV{hauteur,0}}
     12                        |inserer_attribut{class,spip_logos})]
     13        ]
    1514]
    16 [(#ENV{notice/logo_src}|non)
     15[(#VALEUR{logo_src}|non)
    1716        [(#REM) pas de logo, on regarde si une image est en document joint ]
    18         [(#SET{tab_docnum,[(#ENV{notice/id}|pmb_ws_documents_numeriques)]})]
     17        [(#SET{tab_docnum,[(#ID|pmb_ws_documents_numeriques)]})]
    1918        [(#INCLURE{fond=inclure/inc-image-doc-joint,tab_docnum=#GET{tab_docnum},env})]
    2019]
     20</BOUCLE_logo_notice>
  • _plugins_/spip-pmb/trunk/paquet.xml

    r56850 r56883  
    22        prefix="pmb"
    33        categorie="divers"
    4         version="1.108.0"
     4        version="1.109.0"
    55        etat="dev"
    66        compatibilite="[3.0.0-beta2;3.0.*]"
Note: See TracChangeset for help on using the changeset viewer.