2010-04-01 6 views
1

Aperçu

J'essaie d'obtenir un flux de photos sur mon site en utilisant l'API de Flickr et la bibliothèque phpflickr. Je peux obtenir le photoset avec succès sur mon site, mais il montre toutes les photos de chaque photoset, ce que j'espérais réaliser était de montrer la photo principale de chaque photoset, et si l'utilisateur cliquait sur l'image, il montrerait le photoset complet dans une lightbox/shadowbox.flickr phpflickr api

Mon code

<div id="images" class="tabnav"> 
        <ul class="items"> 
         <?php $count = 1; ?> 
         <?php foreach ($photosets['photoset'] as $ph_set): ?> 
         <?php $parentID = $ph_set['parent']; ?> 
          <?php $photoset_id = $ph_set['id']; 
          $photos = $f->photosets_getPhotos($photoset_id); 
          foreach ($photos['photoset']['photo'] as $photo): ?> 
          <li> 
          <a rel="shadowbox['<?=$count;?>']" href="<?= $f->buildPhotoURL($photo, 'medium') ?>" title="<?= $photo['title'] ?>"> 
           <img src="<?= $f->buildPhotoURL($photo, 'rectangle') ?>" alt="<?= $photo['title'] ?>" width="210" height="160" title="<?= $photo['title'] ?>" /> 
           <h3><?=$ph_set['title']?></h3> 
           <p><?=$ph_set['description'];?></p> 
           </a> 
          </li> 
          <?php endforeach; ?> 
         <?php $count++; ?> 
         <?php endforeach; ?> 
        </ul> 
       </div> 

Une autre tentative

J'ai aussi essayé d'appeler différemment la fonction getPhotos, au lieu de l'envoyer sans aucun paramètre je l'ai envoyé avec les paramètres

$photos = $f->photosets_getPhotos($photoset_id, NULL, NULL, 1, NULL); 

Le code ci-dessus a cessé de montrer toutes les photos de chaque photoset et a commencé à montrer juste l'image principale, mais il a également cessé de rendre le reste des photos accessibles à moi.

Y at-il quelque chose que je peux faire pour que cela fonctionne? Je suis totalement hors des idées.

Cordialement et merci

Répondre

0

Ce que vous aurez probablement envie de faire est de commencer par itérer à travers le réseau entier et regroupant chaque album dans un tableau séparé d'abord et faire un tableau spécial pour principal photo de votre album.

Ensuite, vous pouvez facilement parcourir les tableaux pour afficher chaque album et le code devient beaucoup plus facile à gérer.

+0

Votre était la bonne façon de le faire, la réponse est à moi un hack, pour cette raison Je vais vous marquer et vous donner la réponse –

1

je suis venu avec ce soltion, pensais que j'afficherons au cas où quelqu'un frappe autre ce problème,

<?php $count = 1; ?> 
<?php foreach ($photosets['photoset'] as $ph_set): ?> 
<?php $parentID = $ph_set['parent']; ?> 
<li> 
    <?php $photoset_id = $ph_set['id']; 
    $photos = $f->photosets_getPhotos($photoset_id); 
     foreach ($photos['photoset']['photo'] as $photo): ?> 
      <?php if($parentID == $ph_set['parent']): ?> 
      <a rel="lightbox[album<?=$count;?>]" href="<?= $f->buildPhotoURL($photo, 'medium') ?>" title="<?= $photo['title'] ?>"> 
     <?php endif;?> 
     <img src="<?= $f->buildPhotoURL($photo, 'rectangle') ?>" alt="<?= $photo['title'] ?>" width="210" height="160" title="<?= $photo['title'] ?>" /> 
      <h3><?=$ph_set['title']?></h3> 
     <?php if($ph_set['description'] != null) :?> 
      <p><?=$ph_set['description'];?></p> 
     <?php endif; ?> 
     <?php if($parentID == $ph_set['parent']): ?> 
       </a> 
     <?php endif;?> 
<?php endforeach; ?> 
</li> 
<?php $count++; ?>