schallschlucker / yii2-simple-cms
一个基本的yii2内容管理扩展,用于轻松创建和维持前端页面结构
Requires
- php: >=5.5.0
- yiisoft/yii2-bootstrap: ~2
- yiisoft/yii2-jui: ~2
This package is not auto-updated.
Last update: 2024-09-28 16:05:09 UTC
README
一个基本的yii2内容管理模块,用于轻松创建和维持页面结构,包括导航小部件、全文搜索、图片和文档管理以及用于内容页面的所见即所得html编辑器。不包括细粒度的访问权限管理,只区分:匿名/访客和已登录用户。该扩展支持多语言网站结构。
注意:模块处于初始开发阶段。任何内容都可能随时更改。
文档
Yii2-simple-cms文档可在网上找到
请参阅项目页面以获取源代码,并查看项目维基以获取更多详细信息、截图等。
安装说明位于安装指南
首选方法是通过composer添加requirement到您的composer.json文件,然后运行composer update
"require": {
"schallschlucker/yii2-simple-cms": ">=0.2.4",
}
安装后,运行迁移以创建数据库表(假设此时,您的yii2 db模块已在配置中正确配置)。当前脚本只支持mysql数据库,其他数据库可能也适用,但尚未测试,因此在迁移脚本中已禁用)
yii migrate --migrationPath=@schallschlucker/simplecms/migrations
最后,创建一个文件夹来存储WYSIWYG编辑器上传的图片。为此,在您应用程序的web文件夹中创建一个名为"mediarepository"的子文件夹。如果您为后端和前端使用分离的应用程序,只需创建到第二个web文件夹的符号链接,以便在该处也使用mediarepository。然后相应地设置此文件夹的访问权限,以便php可以写入此文件夹。
还可以将mediarepository放在web文件夹之外以限制对上传文件的访问,但这样每个文件都需要由php读取并传送给客户端,这无疑会影响性能,因此只有在媒体数据相对敏感且仅对已登录用户可用时才应使用。当文件夹不在web文件夹中时,需要更改模块配置(目前您需要编辑simple-cms供应商文件夹中的backend.php和frontend.php文件,未来版本我们将记录如何覆盖模块配置中的路径)
#使用方法
该扩展分为两个模块:前端模块和后端模块。
前端提供所需控制器以:- 显示页面内容 - 显示文档 - 显示搜索表单和搜索结果页面 小部件以:- 渲染导航菜单(扩展yii\bootstrap\Nav小部件) - 以不同的格式渲染导航结构,如html列表(ol或ul和li节点)、xml、json - 渲染搜索栏 - 渲染扩展搜索表单 - 渲染搜索结果列表
后端提供维护页面树结构的行政功能(包括拖放功能、键盘快捷键和上下文菜单,以便轻松创建新页面)。
两个模块都可以部署在同一应用中,但建议遵循前端/后端的方法,以清晰地分离前端(用户视图)和管理后端界面。
在简单的CMS中,内容页面可以创建为多种语言,因为简单的CMS使用内部语言ID,这些ID可能不同于您的应用程序的语言代码(例如,ISO两位字母代码或五位字母代码),您需要在组件部分初始化LanguageManager,并使用有效的映射将应用程序的语言代码映射到简单的CMS语言代码。以下是一个示例(它还使用了别名,例如将应用程序语言代码“de-DE”映射到简单的CMS语言代码“1”等)。您可以通过添加新的映射来在简单的CMS中添加对其他语言的支持。
'components' => [
'simplecmsLanguageManager' => [
'class' => 'schallschlucker\simplecms\LanguageManager',
'languageIdMappings' => [
'1' => [
'id' => 1,
'code' => 'de_DE',
'displaytext' => [
'de_DE' => 'deutsch',
'en_US' => 'german',
'pl_PL' => 'niemiecki',
'tr_TR' => 'alman',
],
],
'de_DE' => [
'alias' => '1'
],
'de-DE' => [
'alias' => '1'
],
'2' => [
'id' => 2,
'code' => 'en_US',
'displaytext' => [
'de_DE' => 'englisch',
'en_US' => 'english',
'pl_PL' => 'angielski',
'tr_TR' => 'ingilizce',
],
],
'en_US' => [
'alias' => '2',
],
'en-US' => [
'alias' => '2',
],
'3' => [
'id' => 3,
'code' => 'pl_PL',
'displaytext' => [
'de_DE' => 'polnisch',
'en_US' => 'polish',
'pl_PL' => 'polski',
'tr_TR' => 'lehçe',
],
],
'4' => [
'id' => 4,
'code' => 'tr_TR',
'displaytext' => [
'de_DE' => 'türkisch',
'en_US' => 'turkish',
'pl_PL' => 'turecki',
'tr_TR' => 'türk',
],
],
],
],
'modules' => [
'simplecms_backend' => [
'class' => 'schallschlucker\simplecms\Backend',
'languageManager' => 'simplecmsLanguageManager',
'cache' => 'cache',
],
'simplecms_frontend' => [
'urlPrefix' => 'cms', //the context alias for the module if you do not want to use simplecms_frotend in your URLs to call the pretty URL aliases
'class' => 'schallschlucker\simplecms\Frontend',
'languageManager' => simplecmsLanguageManager,
'renderTopMenuNavbar' => true, //boolean to indicate if a bootstrap navbar dropdown navigation (using CmsBootstrapNavbarWidget) should be rendered by the view. Set to false of you build your own navigation using one of the widgets provided by simplecms (e.g. CmsBootstrapNavbarWidget or CmsSitemapWidget) (optional, default is true)
'htmlTitlePrefix' => '', //string to prepend to html title tag (optional, default is empty)
'htmlTitleSuffix' => '', //string to append to generated html title tag (optional, default is empt)
'cache' => 'cache' //NOTE: remove this line if you do not have a cache component configured. Caching will reduce the load on the server a lot when building page trees, so it is highly recommended to user a proper cache implementation like memcached etc.
],
'media_manager' => [
'class' => 'schallschlucker\simplecms\MediaManager',
'mediarepositoryPath' => '/var/www/virtualhosts/www.einzelpflegefachkraft.de/curassist-app/mediarepository/',
],
],
模块注册后,您应该可以通过调用“simplecms_backend”路由来打开管理后端,例如通过调用
http://yourserver/index.php?r=simplecms_backend
或者如果启用了漂亮的URL
http://yourserver/simplecms_backend
然后您应该会看到带有页面树根节点的Simple CMS管理后端。通过右键单击根节点,您可以在页面树中添加新页面。每个页面都有多个语言版本,因此您可以创建适用于所有不同语言版本的公共页面树结构。通过拖放,您可以在页面树中重新排列页面的位置。每个页面(除根节点外)可以设置为三种状态之一
- 可见:它将在导航小部件渲染的导航中显示
- 隐藏:该页面不会在导航中显示,但可以通过链接或搜索找到
- 未发布:该页面既不会在导航中显示,也不会在搜索结果中显示,并且不能被链接
每个页面可以具有三种不同的行为/类型
- 内容页面:该页面是普通内容,其内容可以通过嵌入的WYSIWYG编辑器进行编辑
- 链接文档:该页面基本上是链接到上传的文档(例如PDF)的链接,将在导航中作为链接渲染
- URL:该页面将直接链接到任何给定的URL。这可以用于在导航中创建页面的别名,或链接到外部URL并将其嵌入到常规导航中
在创建新页面语言版本时,您可以从中选择这些页面类型之一。
请注意
为了使页面管理功能正常工作,您需要登录,否则由于在页面创建或修改时将存储用户ID以进行审计目的,将发生错误。
许可证
yii2-simple-cms在Apache License 2.0下发布。有关详细信息,请参阅捆绑的LICENSE.md。