raffaelj/cpmultiplane

Cockpit CMS v1 的小型 PHP 前端

0.3.5 2022-12-30 10:58 UTC

This package is auto-updated.

Last update: 2024-09-04 22:09:20 UTC


README

为快速和无头 Cockpit CMS 开发的 PHP 前端。

文档(进行中),国际化

CpMultiplane 与 Cockpit CMS v2 不兼容。

另请参阅 Cockpit CMS v1 文档Cockpit CMS v1 仓库 以及 Cockpit CMS v2 文档Cockpit CMS v2 仓库

我的主要目标

  1. 设计时的隐私保护和默认隐私
  2. 开发者友好性
  • 无需插件即可禁用核心功能的一半
  • 调整一切的能力
  1. 为我的客户创建干净和结构化的后端 - Cockpit CMS 以及插件和修改
  2. 结构化数据 - 保持系统和数据的可移植性和未来性
  3. 模块化、小型和可重用代码
  4. 语义化 HTML、响应式 CSS,无需 JavaScript 即可使用
  5. 设计时的多语言支持

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
  • 结构化内容的两种模式
    1. 每个内容类型一个集合,例如名为 pages 的集合和名为 posts 的集合
    2. 一个名为 pages 的单一集合 - 每个条目都有一个 pagepost 类型(实验性
  • 带有允许的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

  1. 为默认页面定义创建一个名为 site 的单例。
  2. 为所有页面创建一个名为 pages 的集合。
  3. 为所有博客文章创建一个名为 posts 的集合。
  4. 使用CpMultiplaneGUI插件。

前端 - CpMultiplane

  1. 创建rljbase的子主题或创建自己的主题
  2. /child-theme/config/config.php 中调整默认设置
  3. 将特定于您的主题的片段添加到 /child-theme/bootstrap.php
  4. 将特定于您的设置的片段添加到 /config/bootstrap.php
  5. 更改一些部分以符合您的需求

设置

更改一些默认设置的最快方式是向 /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 以及所有 贡献者