Changeset 72846 in spip-zone


Ignore:
Timestamp:
May 16, 2013, 4:29:01 PM (7 years ago)
Author:
rastapopoulos@…
Message:

Gestion de la pagination avec resumptionToken.

Tout marche, mais le validateur que j'utilise a l'air de tronquer mon token en ne prenant que les valeurs qu'il ne connait pas alors que ça devrait être opaque pour lui, il n'est pas censé y toucher.

Je n'exclue pas un bug du validateur (j'ai ajouté un ticket sur leur github).

Location:
_plugins_/oai/trunk
Files:
2 added
3 edited

Legend:

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

    r72840 r72846  
    8383                                $tester_arguments = false;
    8484                               
    85                                 // S'il n'est pas tout seul, c'est une erreur
    86                                 if (count($requete) > 1) {
     85                                // S'il n'est pas tout seul (à part le verbe bien sûr), c'est une erreur
     86                                if (count($requete) > 2) {
    8787                                        $erreur[] = array(
    8888                                                'error' => 'badArgument',
     
    9494                                        // Le moissonneur a normalement échappé les caractères spéciaux : il faut les décoder
    9595                                        $token = rawurldecode($token);
     96                                        // Et on récupère une liste de variables
     97                                        parse_str($token, $requete);
     98                                        // On ajoute le verbe
     99                                        $requete['verb'] = $verbe;
    96100                                }
    97101                        }
     
    197201        if (!$erreur){
    198202                foreach ($requete as $param=>$valeur) {
    199                         // Sauf "depot" car c'est un truc interne
    200                         if ($param != 'depot') {
     203                        // Seulement les paramètres autorisés
     204                        if (in_array($param, array_merge($arguments_ok['required'], $arguments_ok['optional'], array('verb')))) {
    201205                                $retour .= " $param=\"$valeur\"";
    202206                        }
  • _plugins_/oai/trunk/oai/dist/ListIdentifiers.oai_dc.html

    r72840 r72846  
    22#SET{set,#ENV{set}|?{#ENV{set}|replace{rubrique,''}}}
    33
    4 <BOUCLE_articles(ARTICLES){statut IN publie,poubelle}{oaifromuntil date,maj,#ENV{from,0},#ENV{until,0}}{pagination 200}>
     4<BOUCLE_articles(ARTICLES){statut IN publie,poubelle}{oaifromuntil date,maj,#ENV{from,0},#ENV{until,0}}{pagination 5}>
    55<header>
    66        <identifier>oai:[(#CONFIG{adresse_site}|parse_url{#EVAL{PHP_URL_HOST}})]:article/#ID_ARTICLE</identifier>
     
    1212</header>
    1313</BOUCLE_articles>
     14#PAGINATION{oai}
     15</B_articles>
    1416<error code="noRecordsMatch"><:oai:erreur_norecordsmatch:></error>
    1517<//B_articles>
  • _plugins_/oai/trunk/oai/dist/ListRecords.oai_dc.html

    r72840 r72846  
    22#SET{set,#ENV{set}|?{#ENV{set}|replace{rubrique,''}}}
    33
    4 <BOUCLE_articles(ARTICLES){statut IN publie,poubelle}{oaifromuntil date,maj,#ENV{from,0},#ENV{until,0}}{pagination 200}>
     4<BOUCLE_articles(ARTICLES){statut IN publie,poubelle}{oaifromuntil date,maj,#ENV{from,0},#ENV{until,0}}{pagination 5}>
    55[(#SET{identifier, oai:[(#CONFIG{adresse_site}|parse_url{#EVAL{PHP_URL_HOST}})]:article/#ID_ARTICLE})]
    66<INCLURE{fond=oai/#ENV{depot}/GetRecord.oai_dc, identifier=#GET{identifier}} />
    77</BOUCLE_articles>
     8#PAGINATION{oai}
     9</B_articles>
    810<error code="noRecordsMatch"><:oai:erreur_norecordsmatch:></error>
    911<//B_articles>
Note: See TracChangeset for help on using the changeset viewer.