phpFlickr - 一个页面上的多个相册不起作用 - 单个相册有效
phpFlickr - multiple albums on one page not working - single album works
我正在尝试在我的 MODX 项目中实现 phpFlickr-wrapper (https://github.com/dan-coulter/phpflickr)。
我尝试了一个我在 Whosebug 上找到的简单代码,并将其放在一个名为 "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()
如何在同一页面上显示多个相册,知道吗?
问题已解决...
我只需要将 "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;
我正在尝试在我的 MODX 项目中实现 phpFlickr-wrapper (https://github.com/dan-coulter/phpflickr)。
我尝试了一个我在 Whosebug 上找到的简单代码,并将其放在一个名为 "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()
如何在同一页面上显示多个相册,知道吗?
问题已解决...
我只需要将 "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;