flickr phpflickr api

时间:2010-04-01 15:21:18

标签: php api flickr

概述
我正在尝试使用Flickr的api和phpflickr库在我的网站上获取照片。我可以成功地将照片集传到我的网站上,但是它显示了每个照片集中的所有照片,我希望实现的是显示每个照片集的主要照片,然后如果用户点击图像,它将显示灯箱/影子箱中的完整照片集。

我的代码

<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 个答案:

答案 0 :(得分:1)

我想出了这个解决方案,我想我会发布它以防其他人遇到这个问题,

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

答案 1 :(得分:0)

你可能想要做的是首先迭代整个阵列,然后先将每张专辑分组成一个单独的阵列,然后为你专辑的主要照片制作一个特殊的阵列。

然后,您可以轻松地遍历数组以显示每个相册,并且代码变得更易于维护。