Changeset 72840 in spip-zone for _plugins_/oai


Ignore:
Timestamp:
May 16, 2013, 9:08:03 AM (7 years ago)
Author:
rastapopoulos@…
Message:

Refonte de toutes les dates, c'est "i" et non pas "m" pour les minutes !!!! Merci denisb.
+ augmentation des infos Dublin
Tout est bien validé par ce validateur : http://oval.base-search.net/

Il ne reste plus qu'à gérer la pagination et ça fera un dépôt OAI valide !

Location:
_plugins_/oai/trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/oai/trunk/action/api_oai.php

    r72834 r72840  
    6262                $erreur[] = array(
    6363                        'error' => 'badVerb',
    64                         'message' => _T('oai:erreur_badVerb_absent'),
     64                        'message' => _T('oai:erreur_badverb_absent'),
    6565                );
    6666        }
     
    6969                $erreur[] = array(
    7070                        'error' => 'badVerb',
    71                         'message' => _T('oai:erreur_badVerb_inconnu', array('verbe' => $verbe)),
     71                        'message' => _T('oai:erreur_badverb_inconnu', array('verbe' => $verbe)),
    7272                );
    7373        }
     
    8787                                        $erreur[] = array(
    8888                                                'error' => 'badArgument',
    89                                                 'message' => _T('oai:erreur_badArgument_resumptionToken_exclusif'),
     89                                                'message' => _T('oai:erreur_badargument_resumptiontoken_exclusif'),
    9090                                        );
    9191                                }
     
    105105                                        $erreur[] = array(
    106106                                                'error' => 'badArgument',
    107                                                 'message' => _T('oai:erreur_badArgument_obligatoire', array('arg' => $parametre, 'verbe' => $verbe)),
     107                                                'message' => _T('oai:erreur_badargument_obligatoire', array('arg' => $parametre, 'verbe' => $verbe)),
    108108                                        );
    109109                                }
     
    115115                                        $erreur[] = array(
    116116                                                'error' => 'badArgument',
    117                                                 'message' => _T('oai:erreur_badArgument_interdit', array('arg' => $parametre, 'verbe' => $verbe)),
     117                                                'message' => _T('oai:erreur_badargument_interdit', array('arg' => $parametre, 'verbe' => $verbe)),
    118118                                        );
    119119                                }
     
    151151                                $erreur[] = array(
    152152                                        'error' => 'cannotDisseminateFormat',
    153                                         'message' => _T('oai:erreur_cannotDisseminateFormat', array('format' => $format)),
     153                                        'message' => _T('oai:erreur_cannotdisseminateformat', array('format' => $format)),
    154154                                );
    155155                        }
     
    190190       
    191191        // La date de la réponse, en UTC
    192         $retour .= '<responseDate>'.gmdate('Y-m-d\TH:m:s\Z').'</responseDate>';
     192        $retour .= '<responseDate>'.gmdate('Y-m-d\TH:i:s\Z').'</responseDate>';
    193193       
    194194        // La description de la requête
  • _plugins_/oai/trunk/lang/oai_fr.php

    r72836 r72840  
    99       
    1010        // E
    11         'erreur_badArgument_interdit' => 'Argument interdit : «@arg@» n’existe pas pour le verbe «@verbe@».',
    12         'erreur_badArgument_obligatoire' => 'Argument manquant : «@arg@» est obligatoire pour le verbe «@verbe@».',
    13         'erreur_badArgument_resumptionToken_exclusif' => 'L’argument «resumptionToken» doit être le seul argument.',
    14         'erreur_badVerb_absent' => 'La requête doit comporter l’argument «verb».',
    15         'erreur_badVerb_inconnu' => 'Le verbe «@verbe@» ne fait pas parti des valeurs autorisées.',
    16         'erreur_cannotDisseminateFormat' => 'Le format de méta-données «@format@» n’existe pas.',
    17         'erreur_idDoesNotExist' => 'L’identifiant demandé ne correspond à aucun enregistrement.',
    18         'erreur_noMetadataFormats' => 'Aucun format de méta-données n’a été trouvé pour ce dépot.',
     11        'erreur_badargument_interdit' => 'Argument interdit : «@arg@» n’existe pas pour le verbe «@verbe@».',
     12        'erreur_badargument_obligatoire' => 'Argument manquant : «@arg@» est obligatoire pour le verbe «@verbe@».',
     13        'erreur_badargument_resumptiontoken_exclusif' => 'L’argument «resumptionToken» doit être le seul argument.',
     14        'erreur_badverb_absent' => 'La requête doit comporter l’argument «verb».',
     15        'erreur_badverb_inconnu' => 'Le verbe «@verbe@» ne fait pas parti des valeurs autorisées.',
     16        'erreur_cannotdisseminateformat' => 'Le format de méta-données «@format@» n’existe pas.',
     17        'erreur_iddoesnotexist' => 'L’identifiant demandé ne correspond à aucun enregistrement.',
     18        'erreur_nometadataformats' => 'Aucun format de méta-données n’a été trouvé pour ce dépot.',
    1919        'erreur_norecordsmatch' => 'Aucun enregistrement ne correspond à ces critères.',
    20         'erreur_noSetHierarchy' => 'Ce dépôt n’a aucune catégorie.',
     20        'erreur_nosethierarchy' => 'Ce dépôt n’a aucune catégorie.',
    2121);
  • _plugins_/oai/trunk/oai/dist/GetRecord.oai_dc.html

    r72835 r72840  
    66        <header>
    77                <identifier>oai:[(#CONFIG{adresse_site}|parse_url{#EVAL{PHP_URL_HOST}})]:article/#ID_ARTICLE</identifier>
    8                 <datestamp>[(#VAL{Y-m-d\TH:m:s\Z}|gmdate{#MAJ|strtotime})]</datestamp>
     8                <datestamp>[(#VAL{Y-m-d\TH:i:s\Z}|gmdate{#MAJ|strtotime})]</datestamp>
    99                <BOUCLE_rubriques(RUBRIQUES){parent}>
    1010                <setSpec><BOUCLE_chemin(HIERARCHIE){id_rubrique}{tout}{":"}>rubrique#ID_RUBRIQUE</BOUCLE_chemin></setSpec>
     
    2121                                xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd"
    2222                        >
     23                                <dc:identifier>#URL_ARTICLE</dc:identifier>
    2324                                <dc:title>[(#TITRE|texte_backend)]</dc:title>
     25                                <dc:type>Text</dc:type>
     26                                <dc:language>#LANG</dc:language>
    2427                                <BOUCLE_auteurs(AUTEURS){id_article}>
    2528                                <dc:creator>[(#NOM|texte_backend)]</dc:creator>
     
    3336</record>
    3437</BOUCLE_article>
    35 <error code="idDoesNotExist"><:oai:erreur_idDoesNotExist:></erreur>
     38<error code="idDoesNotExist"><:oai:erreur_iddoesnotexist:></erreur>
    3639<//B_article>
  • _plugins_/oai/trunk/oai/dist/Identify.html

    r72831 r72840  
    99[(#REM) Le contenu le plus jeune dans le dépôt ]
    1010<BOUCLE_article_jeune(ARTICLES){par date}{0,1}>
    11 <earliestDatestamp>[(#VAL{Y-m-d\TH:m:s\Z}|gmdate{#DATE|strtotime})]</earliestDatestamp>
     11<earliestDatestamp>[(#VAL{Y-m-d\TH:i:s\Z}|gmdate{#DATE|strtotime})]</earliestDatestamp>
    1212</BOUCLE_article_jeune>
    1313
  • _plugins_/oai/trunk/oai/dist/ListIdentifiers.oai_dc.html

    r72834 r72840  
    11[(#REM) Ce dépôt gère les identifiants de rubriques sous la forme "rubrique123" ]
    22#SET{set,#ENV{set}|?{#ENV{set}|replace{rubrique,''}}}
    3 
    4 [(#REM) Les filtres de dates sont envoyés en 8601 UTC, il faut les transformer pour SQL ]
    5 #SET{from, #ENV{from}|?{#VAL{Y-m-d H:m:s}|date{#ENV{from}|strtotime}}}
    6 #SET{until, #ENV{until}|?{#VAL{Y-m-d H:m:s}|date{#ENV{until}|strtotime}}}
    73
    84<BOUCLE_articles(ARTICLES){statut IN publie,poubelle}{oaifromuntil date,maj,#ENV{from,0},#ENV{until,0}}{pagination 200}>
    95<header>
    106        <identifier>oai:[(#CONFIG{adresse_site}|parse_url{#EVAL{PHP_URL_HOST}})]:article/#ID_ARTICLE</identifier>
    11         <datestamp>[(#VAL{Y-m-d\TH:m:s\Z}|gmdate{#MAJ|strtotime})]</datestamp>
     7        <datestamp>[(#VAL{Y-m-d\TH:i:s\Z}|gmdate{#MAJ|strtotime})]</datestamp>
    128        <BOUCLE_rubriques(RUBRIQUES){parent}>
    139        <setSpec><BOUCLE_chemin(HIERARCHIE){id_rubrique}{tout}{":"}>rubrique#ID_RUBRIQUE</BOUCLE_chemin></setSpec>
     
    1612</header>
    1713</BOUCLE_articles>
    18 <error code="noRecordsMatch"><:oai:erreur_noRecordsMatch:></error>
     14<error code="noRecordsMatch"><:oai:erreur_norecordsmatch:></error>
    1915<//B_articles>
  • _plugins_/oai/trunk/oai/dist/ListRecords.oai_dc.html

    r72836 r72840  
    11[(#REM) Ce dépôt gère les identifiants de rubriques sous la forme "rubrique123" ]
    22#SET{set,#ENV{set}|?{#ENV{set}|replace{rubrique,''}}}
    3 
    4 [(#REM) Les filtres de dates sont envoyés en 8601 UTC, il faut les transformer pour SQL ]
    5 #SET{from, #ENV{from}|?{#VAL{Y-m-d H:m:s}|date{#ENV{from}|strtotime}}}
    6 #SET{until, #ENV{until}|?{#VAL{Y-m-d H:m:s}|date{#ENV{until}|strtotime}}}
    73
    84<BOUCLE_articles(ARTICLES){statut IN publie,poubelle}{oaifromuntil date,maj,#ENV{from,0},#ENV{until,0}}{pagination 200}>
     
    106<INCLURE{fond=oai/#ENV{depot}/GetRecord.oai_dc, identifier=#GET{identifier}} />
    117</BOUCLE_articles>
    12 <error code="noRecordsMatch"><:oai:erreur_norecordsMatch:></error>
     8<error code="noRecordsMatch"><:oai:erreur_norecordsmatch:></error>
    139<//B_articles>
  • _plugins_/oai/trunk/oai/dist/ListSets.html

    r72834 r72840  
    1515</set>
    1616</BOUCLE_rubriques>
    17 <error code="noSetHierarchy"><:oai:erreur_noSetHierarchy:></error>
     17<error code="noSetHierarchy"><:oai:erreur_nosethierarchy:></error>
    1818<//B_rubriques>
  • _plugins_/oai/trunk/oai_fonctions.php

    r72836 r72840  
    1919// Calcul du critère {oai_from_until}
    2020function calculer_critere_oaifromuntil($champ_de_creation, $champ_de_modification, $from, $until){
     21        // Les dates sont en ISO 8601 UTC, et parfois avec horaire parfois sans, il faut transformer et vérifier
     22       
     23        // Si c'est juste la date, on tronque le champ de comparaison
     24        if ($from) {
     25                if (preg_match('/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/', $from)) {
     26                        $champ_de_creation_from = "substring($champ_de_creation, 1, 10)";
     27                        $champ_de_modification_from = "substring($champ_de_modification, 1, 10)";
     28                }
     29                else {
     30                        $from = date('Y-m-d H:i:s', strtotime($from));
     31                        $champ_de_creation_from = $champ_de_creation;
     32                        $champ_de_modification_from = $champ_de_modification;
     33                }
     34        }
     35       
     36        // Pareil pour until
     37        if ($until) {
     38                if (preg_match('/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/', $until)) {
     39                        $champ_de_creation_until = "substring($champ_de_creation, 1, 10)";
     40                        $champ_de_modification_until = "substring($champ_de_modification, 1, 10)";
     41                }
     42                else {
     43                        $until = date('Y-m-d H:i:s', strtotime($until));
     44                        $champ_de_creation_until = $champ_de_creation;
     45                        $champ_de_modification_until = $champ_de_modification;
     46                }
     47        }
     48       
    2149        // S'il y a au moins une des deux dates
    2250        if ($from or $until) {
    2351                $where = array(
    2452                        'or',
    25                         '('.($from ? sql_quote($from).' <= '.$champ_de_creation : '').(($from and $until) ? ' and ' : '').($until ? $champ_de_creation.' <= '.sql_quote($until) : '').')',
    26                         '('.($from ? sql_quote($from).' <= '.$champ_de_modification : '').(($from and $until) ? ' and ' : '').($until ? $champ_de_modification.' <= '.sql_quote($until) : '').')',
     53                        '('.($from ? sql_quote($from).' <= '.$champ_de_creation_from : '').(($from and $until) ? ' and ' : '').($until ? $champ_de_creation_until.' <= '.sql_quote($until) : '').')',
     54                        '('.($from ? sql_quote($from).' <= '.$champ_de_modification_from : '').(($from and $until) ? ' and ' : '').($until ? $champ_de_modification_until.' <= '.sql_quote($until) : '').')',
    2755                );
    2856        }
Note: See TracChangeset for help on using the changeset viewer.