xisodev / phpagebuilder
为PHP项目安装拖放式页面构建器。
Requires
- php: >=7.0
README
PHPagebuilder
PHPagebuilder是一个拖放式页面构建器,用于在任意PHP项目中管理页面。
PHPagebuilder可以用作超轻量级CMS,快速创建新网站,也可以集成到现有项目或您喜欢的框架(例如这个版本适用于Laravel)。服务器端代码不依赖于任何其他库,速度极快。它包括一个可选的网站管理器,带有Bootstrap UI,并集成了最受欢迎的开源拖放式页面构建器:GrapesJS。本包注重定制,允许您配置、禁用或替换任何模块。
目录
它如何帮助我?
无论是新手还是经验丰富的网络开发者,如果您发现自己处于以下任何一种情况,PHPagebuilder都可以使您的生活更加轻松:
- 您只想创建一个基本网站,您可以轻松地从任何设备管理。
- 您在安装、配置、更新或使用功能丰富的CMS系统(如Wordpress、Drupal)时感到困惑。
- 您不喜欢您尝试过的CMS中有限的页面编辑器。
- 您希望在几小时内为客户端构建一个自定义网站。
- 您的客户在功能丰富的管理面板(如Drupal)中感到困惑。
- 您讨厌依赖杂乱的插件来实现您可以用纯PHP立即编写的功能,但仍希望有一些管理功能,以便其他人可以管理您创建的网站。
- 您希望有高级功能(搜索功能、显示远程数据源的数据视图等),这些功能可以由您的客户轻松管理。
功能
页面构建器
PHPagebuilder使用基于GrapesJS的页面构建器。
网站管理器
包含一个基本的网站管理器,具有Bootstrap UI。此网站管理器提供基本功能,例如添加或删除页面以及编辑页面设置,如页面标题或URL。点击编辑按钮将打开页面构建器。
您不想使用网站管理器?不用担心,它是为那些想要直接使用PHPagebuilder的人提供的。有关禁用或替换网站管理器的说明,请参阅此处。
安装
要安装PHPagebuilder,您可以选择快速入门路径,快速创建新网站,或者将其集成到您自己的框架或喜欢的项目结构中。
要求
- PHP版本 >= 7
- 一个酷项目
快速启动 🚀
如果您想快速开始一个新项目,并具有拖放式页面管理功能,您可以从boilerplate项目结构下载,并遵循那里的步骤。
集成到现有项目或框架中
使用Composer添加代码
如果您使用Composer来管理PHP依赖项,您只需运行以下命令:
composer require xisodev/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_folder
和 active_theme
。要创建新主题,请将新文件夹添加到配置的主题文件夹中。此文件夹的名称将是主题的标识符,可用于在 theme > active_theme
配置中选中主题。
主题应具有以下文件夹结构
- /blocks
blocks文件夹包含每个页面构建器中可用的块的子文件夹。单个块的文件夹包含一个view.php
或view.html
。如果使用view.html
,则块内容(HTML元素)可以在页面构建器内完全编辑。如果使用view.php
,则块可以使用服务器端逻辑(PHP)进行渲染,因此无法从页面构建器内部更改HTML内容。 - /layouts
layouts文件夹包含每个页面布局的子文件夹。页面布局包含一个view.php
文件,该文件定义了所有样式表和脚本的基础HTML结构,这些样式表和脚本对于在页面类型上拖拽的块所需。每个布局都需要在页面布局中添加HTML块的位置处的字符串:<?= $body ?>
。 - /public
public文件夹包含所有应公开访问的资产(CSS、JavaScript、图像等)。可以使用[theme-url]
短码来指向当前活动主题的公共文件夹中的文件。例如,可以使用<link rel="stylesheet" href="[theme-url]/css/style.css">
加载public/css/style.css
文件。
块内嵌
在块或布局文件中包含块
可以使用短码在另一个块或布局文件中包含块。例如,将短码 [block slug="header"]
添加到 layouts/master/view.php
中,将在使用 master
布局的每个页面中包含块:blocks/header/view.php
。
页面构建器中的嵌套块
为了允许在页面构建器中将块拖放到块中,应添加一个块容器。要添加块容器,只需在块视图文件中添加 [blocks-container]
到所需位置。以下HTML语法允许在bootstrap容器元素内放置块
<div class="container"> [block-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由四个模块组成(认证、网站管理器、页面构建器、路由),您可以选择禁用或用您自己的实现替换任何一个模块。要用自己的实现替换模块,实现相应的合约,并在配置文件中将默认类替换为您的类。
自定义网站管理器
禁用模块
您的项目中已经有管理员登录功能了吗?那么您可以通过将配置文件中的use_website_manager
设置为false
来禁用网站管理器模块。接下来,您可以在项目中使用或实现页面创建/编辑/删除功能,然后直接启动页面构建器。您可以通过使用PHPageBuilder\Modules\GrapesJS\PageBuilder
类从您的项目中渲染页面构建器。
替换模块
如果您想使用PHPagebuilder的CMS路由功能,但又想使用不同的网站管理器,您可以替换为您的实现。请确保在配置中将use_website_manager
设置为true
,实现WebsiteManagerContract,并在配置文件中添加您的类。