1

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

上記のコードは、各フォトセットのすべての写真の表示を停止し、プライマリイメージのみの表示を開始しましたが、残りの写真をアクセスできるようにすることも停止しました。

この作品を作るために私にできることはありますか?私は完全にアイデアがありません。

よろしくお願いします

4

2 に答える 2

1

I came up with this soltion, thought I would post it in case anyone else hits this problem,

<?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++; ?>
于 2010-04-06T10:08:47.527 に答える
0

おそらくやりたいことは、配列全体を反復処理し、最初に各アルバムを個別の配列にグループ化して、アルバムのメイン写真用の特別な配列を作成することから始めます。

次に、配列を簡単に反復して各アルバムを表示でき、コードの保守がはるかに容易になります。

于 2010-04-01T20:35:59.907 に答える