bcairns/silverstripe-htmleditorfolder

允许您通过“插入媒体”和“插入链接”对话框指定HtmlEditorField上传/选择的文件所在的文件夹。

安装: 50

依赖项: 0

建议者: 0

安全性: 0

星标: 3

关注者: 1

分支: 1

类型:silverstripe-module

dev-master 2017-06-05 05:34 UTC

This package is auto-updated.

Last update: 2024-09-11 14:48:06 UTC


README

Screenshot

描述

UploadField提供了setFolderName()setDisplayFolderName()方法,允许您控制文件的上传位置和选择位置,但是HtmlEditorField没有提供此类功能来处理通过“插入媒体”和“插入链接”对话框上传的文件;所有内容最终都放在Uploads中,对于大量使用HtmlEditorField的网站来说,这可能会变得难以管理。

HtmlEditorFolder允许在每个页面/控制器的基础上指定一个文件夹(目前不支持按字段指定)。这个位置将在媒体和链接对话框中同时使用,无论是上传位置还是从CMS中选择时的默认文件夹。

结合UploadField的setFolderName()setDisplayFolderName()方法,可以为您的CMS用户提供优秀的默认文件位置管理。

使用方法

安装模块后,任何ControllerSiteTree子类(控制器具有优先级)都可以定义一个getHtmlEditorFolder()方法

class Article extends Page
{

	public function getHtmlEditorFolder()
	{
		return 'Articles';
	}
	
}

这将作为CMS中当前编辑页面的所有通过“插入媒体/链接”对话框上传/选择的文件的存储位置。

作为扩展

您可以在扩展中定义getHtmlEditorFolder(),例如,使用HtmlEditorFolder与核心或第三方代码结合使用

class BlogPost_Extension extends DataExtension
{
	public function getHtmlEditorFolder()
	{
		return 'Blog';
	}
}

class CMSSettingsController_Extension extends Extension
{
	public function getHtmlEditorFolder()
	{
		return 'SiteConfig';
	}
}

并在config.yml中应用它

BlogPost:
  extensions:
    - BlogPost_Extension
    
CMSSettingsController:
  extensions:
    - CMSSettingsController_Extension

数据对象

此模块根据当前页面或控制器设置文件夹。因此,数据对象将使用其父页面或控制器设置的文件夹。

特别说明

SilverStripe通常只加载一次“插入媒体”和“插入链接”对话框,然后使用DOM中存储的副本,即使切换到编辑新页面(通过AJAX加载新面板且不是完整页面刷新)也不例外。

此模块故意破坏这种行为,并在CMS状态更改时从DOM中删除对话框,这强制对话框(如果已调用)在您切换页面后从服务器重新加载。

这可能是有用的功能,其他扩展希望修改HtmlEditorField的媒体和链接对话框。