raffaelj / cpmultiplane
Cockpit CMS v1 的小型 PHP 前端
Requires
- php: >= 7.1
- ext-json: *
- ext-pdo: *
- aheinze/cockpit: ^0.12.2
- oomphinc/composer-installers-extender: ^2.0
- raffaelj/cockpit-babel: ^0.2.2
- raffaelj/cockpit-cpmultiplanegui: ^0.3.5
- raffaelj/cockpit-formvalidation: ^0.4.1
- raffaelj/cockpit-uniqueslugs: ^0.5.5
README
为快速和无头 Cockpit CMS 开发的 PHP 前端。
CpMultiplane 与 Cockpit CMS v2 不兼容。
另请参阅 Cockpit CMS v1 文档、Cockpit CMS v1 仓库 以及 Cockpit CMS v2 文档、Cockpit CMS v2 仓库。
我的主要目标
- 设计时的隐私保护和默认隐私
- 开发者友好性
- 无需插件即可禁用核心功能的一半
- 调整一切的能力
- 为我的客户创建干净和结构化的后端 - Cockpit CMS 以及插件和修改
- 结构化数据 - 保持系统和数据的可移植性和未来性
- 模块化、小型和可重用代码
- 语义化 HTML、响应式 CSS,无需 JavaScript 即可使用
- 设计时的多语言支持
CpMultiplane 不是一个经典的 Cockpit 插件。它将 Cockpit 作为库使用,注册 multiplane
作为新模块,然后使用 Cockpit 的核心功能。后端仍然作为一个独立的工具来管理和结构化数据。
它是 Monoplane 的重构版本,该版本已不再维护。
要求
- PHP >= 7.1
- PDO + SQLite(或 MongoDB)
- GD 扩展
- pecl intl 扩展(可选)
- mod_rewrite,mod_versions 启用(Apache 上)
请确保 $_SERVER['DOCUMENT_ROOT']
存在并设置正确。
您可以在 安装文档 中找到详细版本和 CLI 安装示例。
安装
手动
- 将此存储库中的所有文件复制到您的 Web 根目录
- 将
.htaccess.dist
复制到.htaccess
- 将 Cockpit 复制到 Web 根目录的子文件夹中,并命名为
cockpit
- 复制附加插件,创建您的集合,调整一些设置
通过 git
cd ~/html git clone https://github.com/raffaelj/CpMultiplane.git . cp .htaccess.dist .htaccess git clone https://github.com/agentejo/cockpit.git cockpit git clone https://github.com/raffaelj/cockpit_CpMultiplaneGUI.git cockpit/addons/CpMultiplaneGUI git clone https://github.com/raffaelj/cockpit_FormValidation.git cockpit/addons/FormValidation git clone https://github.com/raffaelj/cockpit_UniqueSlugs.git cockpit/addons/UniqueSlugs
通过 composer
cd ~/html composer create-project --ignore-platform-reqs raffaelj/cpmultiplane .
如果您使用 composer,Cockpit 以及 CpMultiplaneGUI、FormValidation 和 UniqueSlugs 插件将自动安装。
通过 docker
docker 镜像 预装了“基本”模板的快速启动程序,默认管理员用户(密码:admin)以及从安装的插件中获取的示例数据。
这并非用于生产用途,而是用于本地开发。
docker pull raffaelj/cpmultiplane docker run --rm -d --name cpmultiplane -p 8080:80 raffaelj/cpmultiplane
现在在 localhost:8080
打开您的浏览器,看看它的实际效果。
功能
- 页面和子页面(例如帖子)
- 多语言,带语言前缀,例如:
example.com/en/my-page
- 结构化内容的两种模式
- 每个内容类型一个集合,例如名为
pages
的集合和名为posts
的集合 - 一个名为
pages
的单一集合 - 每个条目都有一个page
或post
类型(实验性)
- 每个内容类型一个集合,例如名为
- 带有允许的IP选项的维护模式
- 编辑页面时的简单内容预览
- 带有scss文件的两种基本响应式主题
- 简单的隐私通知横幅,点击视频链接时启用
- 联系表单 - 无需javascript即可完全功能
- 预渲染markdown字段
- 多种方式更改一切
- 通过 CpMultiplaneGUI 插件 的图形用户界面
- 全文搜索
- ...
推荐插件
将这些插件安装到 cockpit/addons/
目录中。
- CpMultiplaneGUI
- 在侧边栏中添加一些字段,因此您不必在集合定义中定义它们
- 一些GUI调整,以便更容易访问
- 工作正在进行中...
- UniqueSlugs
- 如果链接应该指向
slug
而不是_id
- 用于语言切换的多语言slug
- 如果链接应该指向
- rljUtils
- 修复多用户设置中Admin UI的安全问题
- 用于多语言设置的大语言按钮
- FormValidation
- 内置的表单控制器需要此插件的字段定义
- 内置的视图和CSS文件是针对字段定义编写的
- VideoLinkField
- 内置
/assets/js/mp.js
,一些视图和CSS文件被设计为加载具有隐私通知的视频,该通知仅在用户点击播放按钮时弹出
- 内置
- SimpleImageFixBlackBackgrounds
- 用修改后的版本替换SimpleImage库,以修复非捆绑PHP GD版本的主机上透明png和gif文件的黑色背景
- EditorFormats - 如果您想为用户提供一个Wysiwyg字段
预期用途
后端 - Cockpit
- 为默认页面定义创建一个名为
site
的单例。 - 为所有页面创建一个名为
pages
的集合。 - 为所有博客文章创建一个名为
posts
的集合。 - 使用CpMultiplaneGUI插件。
前端 - CpMultiplane
- 创建rljbase的子主题或创建自己的主题
- 在
/child-theme/config/config.php
中调整默认设置 - 将特定于您的主题的片段添加到
/child-theme/bootstrap.php
- 将特定于您的设置的片段添加到
/config/bootstrap.php
- 更改一些部分以符合您的需求
设置
更改一些默认设置的最快方式是向 /cockpit/config/config.php
添加一些值
<?php return [ 'app.name' => 'CpMultiplane', 'i18n' => 'en', 'languages' => [ 'default' => 'English', 'de' => 'Deutsch', ], // define settings here 'multiplane' => [ 'pages' => 'pages', 'siteSingleton' => 'site', 'slugName' => 'slug', 'use' => [ 'collections' => [ 'pages', 'posts', 'products', ], 'singletons' => [ 'site', ], 'forms' => [ 'contact', ], ], ], ];
更清晰、更友好的方式是使用GUI。创建一个配置文件,将其命名为 my-profile
并将多平面设置为配置文件名称
return [ 'app.name' => 'CpMultiplane', 'i18n' => 'en', 'languages' => [ 'default' => 'English', 'de' => 'Deutsch', ], // define settings via profile 'multiplane' => [ 'profile' => 'my-profile', ], ];
保留路由
/login
- 调用example.com/login
将重定向到管理员文件夹,例如example.com/cockpit
/search
- 全文搜索/getImage
- 调用/getImage?src=assets_id?w=100&h=100&m=thumbnail
返回具有预定义设置的图像/缩略图,可以通过参数进行调整/submit/form_name
和/form/form_name
- 用于联系表单/getPreview
和/livePreview
用于内容预览/clearcache
清除cockpit的缓存(仅在调试模式下有效)
版权和许可证
版权所有2019年Raffael Jesche,根据MIT许可证。
有关更多信息,请参阅 LICENSE
致谢和第三方资源
没有Cockpit,CpMultiplane将无法存在。感谢 Artur Heinze 以及所有 贡献者。