zirak/simple-gallery

一个简单的相册管理模块

安装: 56

依赖项: 0

建议者: 0

安全: 0

星标: 1

关注者: 2

分支: 2

开放问题: 1

类型:silverstripe-vendormodule

4.0.0 2018-03-16 08:59 UTC

This package is not auto-updated.

Last update: 2024-09-14 14:51:48 UTC


README

一个简单的相册管理模块。

简介

使用此模块,您将能够扩展每个DataObjects,包括页面,以便将其关联到相册。如果页面需要多个相册,则可以创建一个Gallery Dataobject,通过SimpleGallery扩展它,然后将其作为has_many关系分配给页面。以下是一个示例。

要求

  • SilverStripe ^4.0 (版本 master/4+)
  • SilverStripe ^3.1 (版本 1.+ / 3.+)
  • colymba/gridfield-bulk-editing-tools ^3.0.* (版本 master/4+)
  • colymba/gridfield-bulk-editing-tools ^2.1.* (版本 1.+ / 3.+)
  • undefinedoffset/sortablegridfield ^2.0.* (版本 master/4+)
  • undefinedoffset/sortablegridfield ^0.* (版本 1.+ / 3.+)

安装

通过 composer 安装模块

composer require g4b0/simple-gallery
composer update

单个相册

要在每个页面中拥有单个相册,请通过以下yaml扩展所需的页面类型

Page:
  extensions:
    - g4b0\SimpleGallery\SimpleGalleryExtension

模板

提供了一个非常基础的模板,要使用它只需将此代码放入您的页面模板中

<% include simplegallery %>

要在默认SS模板中获得更好的视觉效果,请添加以下CSS代码

.simplegallery img {width: 30%; float: left; margin: 10px;}

您必须编写自己的.ss文件以实现更高级的功能。只需覆盖主题中的template/simplegallery.ss并遍历$SortedImages,编写您的HTML代码

<div class="simplegallery">
<% loop SortedImages %>
	<% if $CustomLink %>
	 <a href="$CustomLink">$Image</a>
	<% else %>
	 $Image
	<% end_if %>
<% end_loop %>
</div>

您可以访问以下图像变量

$CustomLink $Title $Text $Disabled $SortOrder

多个相册

如果您希望在特定页面类型中拥有多个可排序的相册,请像以下示例一样添加has_many关系

class Portfolio extends Page {

	private static $has_many = array(
			'Galleries' => 'SimpleGallery'
	);

	public function getCMSFields() {
		$fields = parent::getCMSFields();

		$gridFieldConfig = GridFieldConfig_RelationEditor::create();
		$gridFieldConfig->addComponent(new GridFieldSortableRows('SortOrder'));
		$field = new GridField(
						'Galleries', 'Galleries', $this->SortedGalleries(), $gridFieldConfig
		);
		$fields->addFieldToTab('Root.Galleries', $field);

		return $fields;
	}

	public function SortedGalleries() {
		return $this->Galleries()->sort('SortOrder');
	}

}

模板

与simplegallery一样,提供了一个非常基础的模板,要使用它只需将此代码放入您的页面模板中

<% include simplegalleries %>

要在默认SS模板中获得更好的视觉效果,请添加以下CSS代码

.simplegallery {clear: both;}
.simplegallery img {width: 30%; float: left; margin: 10px;}

您必须编写自己的.ss文件以实现更高级的功能。只需覆盖主题中的template/simplegalleries.ss并遍历$SortedGalleries,然后遍历$SortedImages

<% loop $SortedGalleries %>
	<div class="simplegallery">
		<article>
			<h3>$Name</h3>
			$Description
			<div>
			<% loop SortedImages %>
				<% if $CustomLink %>
				 <a href="$CustomLink">$Image</a>
				<% else %>
				 $Image
				<% end_if %>
			<% end_loop %>
			</div>
		</article>
	</div>
<% end_loop %>

配置

编辑 _config/simplegallery.yml 可修改相册行为

* gallery_name: The gallery name that appear in backend tabs (default: Gallery)
  • folder_path: 存储上传图像的路径(默认:simplegallery)