2010-04-01 2 views
1

Обзор
Я пытаюсь получить фид фотографий на мой сайт с помощью API Flickr и в библиотеку phpflickr. Я могу успешно загрузить фотосет на мой сайт, но он показывает все фотографии из каждого фотосети, чего я надеялся достичь, это показать основную фотографию из каждого фотосети, а затем, если пользователь щелкнет по изображению, он покажет полный фотосет в лайтбокс/shadowbox.phpflickr апи Flickr

Мой код

<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> 

Другой Покушение

Я также попытался вызвать функцию getPhotos по-другому, вместо того чтобы отправить его без каких-либо параметров, я послал его с параметрами

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

Приведенный выше код остановил показ всех фотографий из каждого фотоснимка и начал показывать только основное изображение, но он также прекратил делать остальные фотографии доступными для меня.

Есть ли что-то, что я могу сделать, чтобы сделать эту работу? Я полностью из идей.

С уважением и спасибо

ответ

0

Что вы, вероятно, хотите сделать, начиная перебирая весь массив и группируя каждый альбом в отдельный массив первым и сделать специальный массив для основной фотографии вашего альбома.

Затем вы можете легко перебирать массивы для отображения каждого альбома, и код становится намного более удобным.

+0

Ваш был правильный способ сделать это, мой ответ хак, по этой причине Я собираюсь отметить вас и дать вам ответ –

1

Я придумал эту soltion, подумал я бы разместить его в случае, если кто-то попадает эту проблему,

<?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++; ?> 
Смежные вопросы