phpFlickr-一页上的多个相册不起作用-单个相册有效

问题描述 投票:0回答:1

我正在尝试在我的MODX项目中实现phpFlickr-wrapper(https://github.com/dan-coulter/phpflickr)。

我尝试了一个在stackoverflow上找到的简单代码,并将其放在名为“ Flickr”的代码段中:

//include the core file
if(!class_exists("phpFlickr")) require_once './assets/phpflickr-master/phpFlickr.php';

// include the config file
require_once('./assets/phpflickr-master/config.php');

$f = new phpFlickr($key, $api_secret);

$mySetID = $album; 

$mySet = $f->photosets_getPhotos($mySetID, NULL, NULL);
foreach ($mySet['photoset']['photo'] as $photo) {
    echo '<div><img src="'. $f->buildPhotoURL($photo, 'medium') .'" alt="" /></div>';
}

代码段调用:

[[!Flickr? &setname=`[[+tv.FickrID]]`]]

电视“ FlickrID”保存了所需专辑的ID。

这对于一张专辑来说效果很好。但是,当我尝试输出第二个图库时,在第一次代码片段调用后输出停止。第二次执行代码片段调用时,它会停止,并在MODX错误日志中显示以下条目:

 ...75.include.cache.php : 18) PHP warning: Invalid argument supplied for foreach()

如何在同一页面上显示多个专辑,有什么想法?

php api flickr modx phpflickr
1个回答
0
投票

问题已解决...

我只需要在代码片段中包含“ config.php”文件中的内容,而不是通过代码的“ require_once”行对其进行引用。

<?php
$album = $modx->getOption('setname',$scriptProperties,'');

//include the core file
if(!class_exists("phpFlickr")) require_once './assets/phpflickr-master/phpFlickr.php';
if(!class_exists("PEAR")) require_once './assets/phpflickr/PEAR/PEAR.php'; 

$key = "<flickr-api-key>";
$api_secret = "<flickr-api-secret>";
$username="<flickr-username>";

$f = new phpFlickr($key, $api_secret);

$f->enableCache("fs", "./assets/phpflickr-master/cache");

$mySetID = $album; 
$mySet = $f->photosets_getPhotos($mySetID, NULL, NULL);
foreach ($mySet['photoset']['photo'] as $photo) {
    $output .= '<div><a rel="lightbox[]" href="'. $f->buildPhotoURL($photo, 'large') .'"><img src="'. $f->buildPhotoURL($photo, 'medium') .'" alt="" /></a></div>';
}

return $output;
© www.soinside.com 2019 - 2024. All rights reserved.