Changeset 48756 in spip-zone


Ignore:
Timestamp:
Jun 13, 2011, 7:43:39 AM (10 years ago)
Author:
erational@…
Message:

on affine le critere de plage ds les cas ou le pool est plus grand que la requete

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/flickr_hasard/flickr_rand_options.php

    r48755 r48756  
    7070        $id_photo_rand  =  $id;
    7171    }  else {
    72         // etape 1bis: ou recuperer une image au hasard selon nos criteres
    73         $page_max = ceil($plage/50);       
    74         $page_rnd = rand(1, $page_max);
     72        // etape 1bis: ou recuperer une image au hasard selon nos criteres               
     73        $page_rnd = rand(1, $plage);
    7574       
    7675        $params = array(
     
    8180                'safe_search' => $safesearch, 
    8281                'format'        => 'php_serial',
    83                 'per_page' => '50',           // pool ds lequel on pioche
    84           'page' => '$page_rnd'         // page au hasard selon la taille du pool, si la page n existe pas l'API retourne la 1er page de resultat
     82                'per_page' => '1',         
     83          'page' => $page_rnd        // page (=photo) au hasard selon la taille du pool
    8584        );
    8685   
    87         $rsp_obj =  fetch_data_flickr($params);
     86        $rsp_obj =  fetch_data_flickr($params); 
    8887       
    8988        if ($rsp_obj) {
    9089          $photos = $rsp_obj['photos']['photo'];
    91           if (!$photos) return false;     // pas de resultats
     90          if (!$photos) {
     91              // pas de resultat, la plage est sans doute trop grand pour la requete
     92              // on refait une tentative en ignorant la parametre de plage
     93              $params['page'] = 1;
     94              $params['per_page'] = 100;
     95              $rsp_obj =  fetch_data_flickr($params);
     96              if ($rsp_obj) {
     97                $photos = $rsp_obj['photos']['photo'];
     98                if (!$photos)
     99                      return false;    // vraiment pas de resultats
     100              } else {
     101                      return false; 
     102              }
     103          }
    92104          $id_photo_rand = $photos[array_rand($rsp_obj['photos']['photo'], 1)]['id'];   // on prend une image au hasard           
    93         }
     105        } 
    94106   }   
    95107   
Note: See TracChangeset for help on using the changeset viewer.