flickr phpflickr api

2 Cevap php

Overview
I am trying to get a photo feed on to my site using Flickr's api and the phpflickr library. I can successfully get the photoset on to my site, but it shows all the photos from every photoset, what I was hoping to achieve was to show the primary photo from each photoset, and then if the user clicked on the image it would show the full photoset in a lightbox/shadowbox.

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

Another Attempt

Ben de onun yerine herhangi bir parametre vermeden gönderme ben parametreleri ile gönderdim, farklı getPhotos işlevini çağırarak denedi

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

Yukarıdaki kod, her PhotoSet gelen gösteren tüm fotoğrafları durdu ve sadece birincil görüntü gösteren başladı, ama aynı zamanda benim için erişilebilir fotoğrafların geri kalanını yaparak durdu.

Ben bu işi yapmak için yapabileceği bir şey var mı? Ben tamamen fikir iof yokum.

Saygılar ve teşekkürler

2 Cevap

Ne muhtemelen yapmak isteyeceğiniz tüm dizi yineleme ve ilk ayrı bir diziye her albüm gruplama ve albümün ana fotoğraf için özel bir dizi yaparak başlıyor.

Sonra kolayca her albümü görüntülemek için diziler aracılığıyla yineleme ve kod çok daha rahat olur.

Ben başkasının bu sorunu vurur durumda post it düşündüm, bu soltion ile geldi

<?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++; ?>