innolabglobal / phpagebuilder
一款用于管理任何PHP项目中页面的拖放式页面构建器。
Requires
- php: >=7.0
- dev-master
- 0.20.15
- 0.20.14
- 0.20.13
- 0.20.12
- 0.20.11
- 0.20.10
- 0.20.9
- 0.20.8
- 0.20.7
- 0.20.6
- 0.20.5
- 0.20.4
- 0.20.2
- 0.20.1
- 0.20.0
- v0.19.0
- v0.18.0
- v0.17.0
- v0.16.0
- v0.15.0
- v0.14.0
- v0.13.0
- v0.12.0
- v0.11.0
- v0.10.1
- v0.10.0
- v0.9.0
- v0.8.0
- v0.7.0
- v0.6.0
- v0.5.0
- v0.4.0
- v0.3.0
- v0.2.0
- v0.1.0
- dev-feature/update-pagebuilder
- dev-feature/dc-4511
- dev-fix-save-as-html
- dev-feat-upload-ftp
- dev-feat-layer-manager
- dev-fix-config-filepath
- dev-feat-custom-code-block
- dev-feat-add-multi-device-preview-option
This package is auto-updated.
Last update: 2024-09-10 04:20:10 UTC
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
- 一个有趣的项目
快速开始 🚀
如果您想快速启动一个带有拖放页面管理功能的新项目,您可以下载模板项目结构,并按照那里的步骤进行。
集成到现有项目或框架中
使用Composer添加代码
如果您使用Composer来管理PHP依赖项,您可以简单地运行
composer require hansschouten/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]
短代码来指向当前活动主题的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"> [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 并将您的类添加到配置文件中。