flickr phpflickr api - PullRequest
       16

flickr phpflickr api

1 голос
/ 01 апреля 2010

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

Мой код

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

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

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

С уважением и благодарностью

Ответы [ 2 ]

1 голос
/ 06 апреля 2010

Я придумал это решение, подумал, что опубликую его на случай, если кто-нибудь еще столкнется с этой проблемой,

<?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++; ?>
0 голосов
/ 02 апреля 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...