silverstripe-australia / silverstripe-multisites
该软件包已被废弃且不再维护。作者建议使用 symbiote/silverstripe-multisites 软件包。
关于该软件包最新版本(5.2.6)没有可用的许可证信息。
允许通过单个站点树管理多个网站。
5.2.6
2020-10-20 03:21 UTC
Requires
- silverstripe/admin: ^1.3
- silverstripe/cms: ~4.0
- symbiote/silverstripe-multivaluefield: ~5.0
Requires (Dev)
- phpunit/phpunit: ^5.7
Replaces
- dev-master / 5.2.x-dev
- 5.2.6
- 5.2.5
- 5.2.4
- 5.2.3
- 5.2.2
- 5.2.1
- 5.2.0
- 5.1.2
- 5.1.1
- 5.1.0
- 5.0.3
- 5.0.2
- 5.0.1
- 5.0.0
- 4.3.0
- 4.2.0
- 4.1.1
- 4.1.0
- 4.0.x-dev
- 4.0.4
- 4.0.3
- 4.0.2
- 4.0.1
- 4.0.0
- 3.0.1
- 3.0.0
- 2.0.x-dev
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.2.x-dev
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.x-dev
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.x-dev
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-feature-cascading-themes
- dev-fix-composer
- dev-feature-ss4-upgrade
- dev-aware
- dev-aucwp
This package is not auto-updated.
Last update: 2022-02-01 12:43:42 UTC
README
概览
允许通过单个站点树管理多个网站。
这是Subsites模块的替代模块;它避免了任何对“当前”网站的会话跟踪,并且在运行时不会执行任何查询修改以更改您执行的查询的“站点”上下文。
与SilverStripe 4.0.x兼容
- 请参阅4.0.x以了解3.5兼容性
- 请参阅1.2.x版本以了解3.1兼容性
升级到SS4
以下重要更改已发生
- 现在必须在项目配置中明确配置主题。在yml配置中设置
Site.available_themes
。这必须是一个themename: 标签的映射。 - 由于对资产管理的基本改变,目前不支持特定于站点的资产文件夹。这将在一段时间内进行审查。
要求
- SilverStripe 4.*
- MultivalueField
安装
- 添加模块和多值字段模块
- 运行
dev/build
设置站点(以及附加站点)
- 在CMS中转到页面部分并点击网站
- 在“主机”字段中输入站点的完整路径,无需
http://
前缀 - 例如,对于开发站点mysitedomain.com
或localhost/sub/folder
- 保存
- 要添加新站点,请点击页面部分;您应该有一个“添加网站”按钮
- 输入有关新站点的详细信息,其中“主机”字段最为重要
配置
Site:
available_themes:
name: Label
要支持级联主题,在配置中提供以逗号分隔的主题名称列表。
资产管理
注意:由于对资产管理层的改变,当前在SS4中不工作。一旦情况明朗,此功能将被重新启用。
您可以选择在每个站点的根assets/目录的子文件夹中管理每个站点的资产。在您的mysite/config.yml文件中添加以下扩展并运行?flush=1。在CMS中编辑站点时,现在可以选择包含该站点所有资产的assets/子文件夹。当保存站点或在cms中访问具有上传字段的页面时,将自动创建此文件夹。
FileField: extensions: - MultisitesFileFieldExtension HtmlEditorField_Toolbar: extensions: - MultisitesHtmlEditorField_ToolbarExtension
通过HTMLEditor上传的文件现在将上传到assets/yoursite/Uploads。但是,如果您在cms中具有自定义上传字段,则必须明确添加以下配置到它们中。
$fields->fieldByName('Root.Main.Image')->setFolderName('images/page-images')->useMultisitesFolder();
上述调用 useMultisitesFolder() 将会改变文件夹名称从 'images/page-images' 到 'currentsitesubfolder/images/page-images'。
已知问题
当链接到属于不同站点的页面时,SiteTree::Link() 会返回一个无效链接,因为它会在前面添加基础 URL。目前解决这个问题最好的方法是,在你的 Page.php(模型类)中实现以下代码。
/** * Overrides SiteTree->Link. Adds a check for cases where we are linking to a page on a * different site in this multisites instance. * @return String **/ public function Link($action = null) { if($this->SiteID && $this->SiteID == Multisites::inst()->getCurrentSiteId()) { return parent::Link($action); } else { return $this->RelativeLink($action); } }
- 请参阅 GitHub