Gallery:GalleryEmbed:getImageBlock

来自站长百科
跳转至: 导航、​ 搜索

GalleryEmbed::getImageBlock()[ ]

使用GalleryEmbed::getImageBlock($args),你可以在网站的其他页面中包含图片区块(随机的图片,特定的图片…)。它为嵌入的G2安装和不允许url_fopen的web服务器(因此不允许使用readfile()来包含外部imageblock)提供外部imageblock(见site admin -> image block)的所有选项。

GalleryEmbed::init参数与其他任何安装都不同。下面只是一个举例,其中G2被安装在web根目录下的名为/gallery2/的文件夹中,而我们用以包含图片区块的页面则在web根目录下的一个文件中。

我们在此显示单个的随机图片。你只需在'blocks' => string中使用一个竖直分割线(|)分隔区块列表,之后就可以使用单个呼叫来显示多个区块了。例如,最近的3张图片就应该是'block' => 'recentImage|recentImage|recentImage'。如果你复制/粘贴了整个getImageBlock呼叫,就会看到同样的图片3次,因此请确保通过|分隔的列表来使用单个呼叫!

 <?php
 /* 你可能需要在下面的两行语句中对/gallery2/稍作修改*/
 require_once(dirname(__FILE__) . '/gallery2/embed.php');
 $ret = GalleryEmbed::init(array('fullInit' => true, 'embedUri' => '/', 'g2Uri' => '/gallery2/main.php'));
 if ($ret) {
     print 'GalleryEmbed::init failed, here is the error message: ' . $ret->getAsHtml();
     exit;
 }
 /*
  * 在"Site admin" -> "image block"中查看所有可用选项,参量也如此
  * 旨为外部的imageblock
  */
 list ($ret, $bodyHtml, $headHtml) = GalleryEmbed::getImageBlock(array('blocks' => 'randomImage',
                                                                 'show' => 'title|date'));
 if ($ret) {
     print 'GalleryEmbed::getImageBlock failed, here is the error message: ' . $ret->getAsHtml();
     exit;
 }
 /* $bodyHtml contains the image block. print it somewhere on your website */
 print $bodyHtml;
 /*
  * $headHtml is not required. if you use imageframes for your imageblocks, you need to print 
  * $headHtml in the <head> section of your web page
  */
 ?>

上述代码最终将显示一个随机的图片。

你也可以显示某个特定的图片。只需简单地将randomImage替换为specificItem并用itemId定义其ID即可,即:

 list ($ret, $bodyHtml, $headHtml) = GalleryEmbed::getImageBlock(
   array('blocks' => 'specificItem', 'itemId' => 25, 'show' => 'title|date'));

如果你知道该项目的路径而不知道ID的话,可以如此查找到ID:

 list ($ret, $itemId) = GalleryCoreApi::fetchItemIdByPath('albumName/imageName.jpg');
 if ($itemId) {
   list ($ret, $bodyHtml, $headHtml) = GalleryEmbed::getImageBlock(
     array('blocks' => 'specificItem', 'itemId' => $retrievedItemID[1], 'show' => 'title|date'));

水平区块显示[ ]

在页面中添加此CSS以使得区块按水平方向显示:

 .one-image { float: left; }
 a img { border: 0; }