mugaru/phpagebuilder

基于GrapesJS的PHP拖放页面构建器

安装: 10

依赖项: 1

建议者: 0

安全性: 0

星级: 0

分支: 0

类型:项目

1.0.0 2022-08-01 07:53 UTC

This package is not auto-updated.

Last update: 2024-09-24 16:40:30 UTC


README

PHPagebuilder

PHPagebuilder

PHPagebuilder是一个拖放页面构建器,用于管理任何PHP项目中的页面。

PHPagebuilder可以用作超轻量级的CMS,快速构建新网站,或者可以集成到现有项目或您喜欢的框架中(例如这个版本针对Laravel)。服务器端代码不依赖于任何其他库,速度极快。它包含一个可选的网站管理器,具有Bootstrap UI,并集成了最受欢迎的开源拖放页面构建器:GrapesJS。本包注重定制,允许您配置、禁用或替换其任何模块。

目录

它如何帮助我?

无论您是新手还是经验丰富的网络开发者,如果您发现自己处于以下任何一种情况,PHPagebuilder都可以使您的生活更加轻松

  • 您只想创建一个可以轻松从任何设备管理的简单网站。
  • 您在使用功能丰富的CMS系统(如Wordpress、Drupal)时感到困惑,如安装、配置、更新或使用。
  • 您不喜欢您尝试过的CMS中的有限页面编辑器。
  • 您希望在几小时内为客户构建一个定制网站。
  • 您的客户在功能丰富的管理面板(如Drupal)中感到困惑。
  • 您讨厌依赖于杂乱的插件来实现您可以用纯PHP快速编写的功能,但仍然希望有一些管理功能,以便其他人可以管理您创建的网站。
  • 您希望拥有高级功能(搜索功能、显示远程源数据的视图等),可以轻松由您的客户管理。

功能

页面构建器

PHPagebuilder具备基于GrapesJS构建的页面构建器。PageBuilder

网站管理器

包含了一个基本的网站管理器,具有Bootstrap UI。这个网站管理器提供了添加或删除页面以及编辑页面设置(如页面标题或URL)的基本功能。点击编辑按钮将打开页面构建器。Website Manager

您不想使用网站管理器?没关系,它包括给那些希望直接使用PHPagebuilder的人。请阅读这里了解如何禁用或替换网站管理器。

安装

要安装PHPagebuilder,您可以选择快速启动路径,快速构建新网站,或者将其集成到您自己的框架或喜欢的项目结构中。

要求

  • PHP版本 >= 7
  • 一个酷炫的项目

快速开始 :rocket

如果您想快速开始一个新的项目,并具备拖放页面管理功能,您可以下载样板项目结构并遵循那里的步骤。

集成到现有项目或框架

使用Composer添加代码

如果您使用Composer来管理PHP依赖项,您可以简单地运行以下命令:

composer require Mugaru/phpagebuilder

接下来,可以使用以下PHP代码初始化PHPagebuilder:

require_once __DIR__ . '/vendor/autoload.php';

$config = require __DIR__ . '/config.php';

$builder = new PHPageBuilder\PHPageBuilder($config);
$builder->handleRequest();

config.php应该包含config/config.example.php的副本,并填写您的设置。

不使用Composer添加代码

您没有使用Composer吗?不用担心,该项目是用纯PHP编写的,没有任何依赖项,因此可以直接包含在任何PHP项目中!

只需将最新版本下载到您的项目中的单独文件夹内(我们命名为:phpagebuilder)。

接下来,您只需在应该启动页面构建器的PHP文件中包含以下代码:

$installationFolder = __DIR__ . '/phpagebuilder';
require_once $installationFolder . '/src/Core/helpers.php';
spl_autoload_register('phpb_autoload');

$config = require __DIR__ . '/config.php';

$builder = new PHPageBuilder\PHPageBuilder($config);
$builder->handleRequest();

config.php应该包含config/config.example.php的副本,并填写您的设置。

配置数据库

如果您直接使用PHPagebuilder,它需要一个数据库来存储您的页面。只需创建一个数据库并运行config/create-tables.sql中的查询。接下来,将数据库凭据添加到您的配置文件中。

创建一个主题

config.php中包含一个名为theme的配置键,其中指定了themes_folderactive_theme。要创建一个新主题,请在配置的主题文件夹中添加一个新文件夹。该文件夹的名称将是主题的标识符,可以在theme > active_theme配置中用来选择主题。

一个主题应该具有以下文件夹结构:

  • /blocks
    blocks文件夹包含每个可以在页面构建器中使用的块的子文件夹。单个块的文件夹包含一个view.php或一个view.html。如果使用view.html,则块内容(html元素)可以在页面构建器中完全编辑。如果使用view.php,则块可以用服务器端逻辑(PHP)渲染,因此无法从页面构建器内部更改html内容。
  • /layouts
    layouts文件夹包含每个页面布局的子文件夹。页面布局包含一个定义了所有样式表和脚本(用于将块拖放到此类页面上所需的所有样式表和脚本)的view.php文件。每个布局都需要在页面布局中添加html块的位置处添加字符串:<?= $body ?>
  • /public
    public文件夹包含所有公开可访问的资产(CSS、JavaScript、图片等)。可以使用[theme-url]短代码指向当前活动主题的public文件夹中的文件。例如,可以通过<link rel="stylesheet" href="[theme-url]/css/style.css">加载文件public/css/style.css

块内的块

将块包含到块或布局文件中

可以使用短代码将块包含在另一个块或布局文件中。例如,将短代码[block slug="header"]添加到layouts/master/view.php中,包含块blocks/header/view.php在所有使用master布局的页面中。

页面构建器中的嵌套块

要允许在页面构建器中将块拖放到块中,应添加一个块容器。要添加一个块容器,只需在块视图文件中所需的位置添加[blocks-container]。以下HTML语法允许在bootstrap容器元素内部添加块:

<div class="container">
    [blocks-container]
</div>

另一种方法是在HTML元素中添加phpb-blocks-container属性,如下例所示:

<div class="row">
    <div class="col-md-6" phpb-blocks-container>
    </div>
    <div class="col-md-6" phpb-blocks-container>
    </div>
</div>

自定义PHPageBuilder

PHPagebuilder考虑到自定义。它提供了一个广泛的示例配置文件,您可以在其中轻松地根据您的需求调整页面构建器。

PHPagebuilder由四个模块(Auth、Website Manager、Pagebuilder、Routing)组成,您可以禁用或替换每个模块,以使用您自己的实现。要用您自己的实现替换一个模块,实现相应的合约,并在配置文件中将默认类替换为您自己的类。

自定义网站管理器

禁用模块

您在项目中已经有了管理员登录功能吗?那么您可以通过将配置中的use_website_manager设置为false来禁用网站管理器模块。接下来,在您的项目中使用或实现页面创建/编辑/删除功能,然后直接启动页面构建器。您可以通过使用PHPageBuilder\Modules\GrapesJS\PageBuilder类从您的项目中渲染页面构建器。

替换模块

如果您想使用PHPagebuilder的CMS路由功能,但又想使用不同的网站管理器,您可以为您的实现替换网站管理器。请确保在配置中将use_website_manager设置为true,实现WebsiteManagerContract并在配置文件中添加您的自定义类。