我不知道从哪里开始显示文件集中的文件,以便在单击时显示fancybox库。我想通过链接打开画廊。点击显示图库,也就是具有相同rel但设置为显示的图像:none(很容易由我的css控制(。我可以通过选择一个图像来完成,但不确定如何将图像从文件集传递到视图中(我假设我需要在控制器中创建某种函数来获取fsID,只是不确定如何(。我只需要在页面上显示第一个图像(缩略图(,然后单击链接,它就会显示更多的全尺寸图像。
基本上,如果你知道Concrete5,我希望它像图像块一样,只是管理员可以选择一个文件集而不是一个图像。
这是我的看法.php
$picture = $this->controller->getPicture();
if ($picture) {
$bigPicture = $image->getThumbnail($picture,600,600)->src;
$smallPicture = $image->getThumbnail($picture,200,200)->src;
echo "<img src=" . $smallPicture . " alt=" . $imageTitle . " title=" . $imageTitle . "/>";//thumbnail picture
echo "<div id="image-modal">";
echo "<a href=" . $bigPicture . " class="fancybox-thumb" rel=" . $title . " title=" . $imageTitle . ">{$linkText}</a>";//open fancybox from link
echo "<div class="hiddenGallery" style="display:none;">";//hidden images
echo "<a href="images/pattern/t-103-n.jpg" class="fancybox-thumb" rel=" . $title . " title=" . $imageTitle . ">";
echo "<img src="images/pattern/t-103-n.jpg" class="fancybox-thumb" />";
echo "</a>";
echo "</div>";
echo "</div>";
}
我的控制器.php
function getPicture() {
if ($this->fIDpicture > 0) {
return File::getByID($this->fIDpicture);
}
return null;
}
我的插件.php
$al = Loader::helper('concrete/asset_library');
echo $al->image('ccm-b-image', 'fIDpicture', t('Choose File'),
$this->controller->getPicture());
echo '</div>';
我们非常感谢所有的帮助。
好吧,有两件事:
- 您必须将
class="fancybox-thumb"
和rel
属性设置为<a>
标记!!,而不是CCD_ 4标签 -
如果您计划隐藏库的其余元素,请不要为每个元素设置
display: none;
css属性,而是将它们封装在隐藏的<div>
容器中,如:<div style="display: none;"> <a class="fancybox-thumb" rel="gallery" href="images/02.jpg"></a> <a class="fancybox-thumb" rel="gallery" href="images/03.jpg"></a> <a class="fancybox-thumb" rel="gallery" href="images/04.jpg"></a> ... etc </div>
我使用的是渲染的html,这才是最重要的。
我有一些代码可以处理这个等式的整个后端(添加/编辑/控制器(部分:https://github.com/jordanlev/c5_designer_gallery
下面是一个教程,解释了如何使用它(以FlexSlider为例,但如果你知道Fancybox是如何工作的,那么就不难理解发生了什么(:http://c5blog.jordanlev.com/blog/2011/12/build-a-slideshow-block/