regulus/fractal

适用于 Laravel 5 的多功能 CMS。

v0.9.4 2015-10-21 07:06 UTC

This package is auto-updated.

Last update: 2024-09-27 06:09:53 UTC


README

适用于 Laravel 5 的多功能 CMS。

Latest Stable Version License

注意:对于 Laravel 4,您可以使用 版本 0.8.2

Screenshot

Fractal 是一个用于 Laravel 的内容管理系统,它保持了对自定义的灵活性和易用性,程度不同。您可以直接完成所有这些操作

  • 管理网站内容页面
    • 创建您喜欢数量的独立内容区域,并使用 Markdown 或 HTML WYSIWYG 编辑器创建内容
    • 使用布局模板系统跨页面重用标准化和自定义布局
    • 跨多个页面重用内容区域
  • 管理文件
    • 上传文件
    • 调整图片大小
    • 创建缩略图
  • 管理博客文章
    • 使用与内容页面相同的多功能性内容区域系统
  • 管理媒体项(图片、视频、音频等...)
  • 管理网站/网络应用程序设置
  • 通过数据库管理所有菜单,包括前端网站(当然,这是可选的)和 admin/CMS 区域
  • 管理用户
  • 自定义路由、控制器和子域名(默认情况下,使用 "blog" 和 "media" 子域名)
  • 使用内置前端视图和 Blade 布局或使用您自己的

但请记住,从使用所有或部分自定义控制器(Fractal 的控制器和方法路由在 config.php 中设置,以便于修改)到使用自定义视图,甚至只是自定义 CMS 设置页面中的许多可用配置设置或数据库存储设置,您可以根据需要从 Fractal 外部化对网站或网络应用程序的控制程度。

在开始目录表之前,还有一些事情需要提及

  • Fractal 使用 Identify 授权/认证软件包,并使用 Twitter Bootstrap 3 作为其 CSS 框架。
  • 您可以在 Trello 上的 Fractal 中查看错误修复和功能实现的路线图。

目录表

安装

安装 composer 软件包

要安装 Fractal,请确保 "regulus/fractal" 已添加到 Laravel 5 的 composer.json 文件中。

"require": {
	"regulus/fractal": "0.9.*"
},

然后,从命令行运行 php composer.phar update。Composer 将安装 Fractal 软件包。

注册服务提供者并设置别名

现在,您只需注册服务提供者,在 config/app.php 中设置 Fractal 的别名,发布资产,并运行安装命令。将以下内容添加到 providers 数组中

Regulus\Fractal\FractalServiceProvider::class,

并将以下内容添加到 aliases 数组中

'Fractal' => Regulus\Fractal\Facade::class,

app/Http/Kernal.php 中的 routeMiddleware 数组中添加中间件

'auth.permissions' => \Regulus\Identify\Middleware\Authorize::class,
'auth.fractal'     => \Regulus\Fractal\Middleware\Authenticate::class,

添加并运行安装命令

app/Console/Kernel.php 中的 commands 数组中添加以下内容

\Regulus\Identify\Commands\Install::class,
\Regulus\Identify\Commands\CreateUser::class,
\Regulus\Fractal\Commands\Install::class,

设置会话域名

domain 变量设置为 config/sessions.php 以确保会话数据可以在子域名之间传输

'domain' => '.website.com',

然后运行以下命令

php artisan fractal:install

分形(连同识别功能)现在将进行安装。这包括所有必要的数据库迁移、数据库填充、配置发布和资源发布。

为识别功能发布的配置文件是 auth.php,将覆盖Laravel 5的默认认证配置。默认的表名以 auth_ 为前缀,但你可以通过在安装行中添加 --user-tables-prefix 选项来更改用户表的名称。

php artisan fractal:install --user-tables-prefix=none

php artisan fractal:install --user-tables-prefix=identify

前面的示例将移除所有表名的前缀,因此你会得到 usersroles 等。后面的示例将默认的表前缀 auth 更改为 identify,因此你的表名将是 identify_usersidentify_roles 等。

你现在应该有4个用户,分别是 AdminTestUserTestUser2TestUser3。所有的默认密码都是 password,用户名不区分大小写,因此你可以直接输入 adminpassword 来登录。3个初始角色是 AdministratorModeratorMemberAdmin 拥有 Administrator 角色,TestUser 拥有 Moderator 角色,最后的两个用户拥有 Member 角色。

安装命令还会尝试自动将单例添加到 bootstrap/app.php 中,这将替换Laravel的默认 LoadConfiguration 类,以允许在Fractal的服务提供者运行后延迟加载某些配置文件。如果安装命令无法添加单例,请进入 bootstrap/app.php 并在其他单例下方添加以下内容,在 "绑定重要接口" 标题下

$app->singleton(
	Illuminate\Foundation\Bootstrap\LoadConfiguration::class,
	Regulus\Fractal\Libraries\LoadConfiguration::class
);

认证安装

安装Composer包

要安装Identify,请确保 "regulus/identify" 已添加到Laravel 5的 composer.json 文件中。

"require": {
	"regulus/identify": "dev-master"
},

然后从命令行运行 php composer.phar update。Composer将安装Identify包。

注册服务提供者并设置别名

将其添加到 config/app.php 中的 providers 数组中

'Regulus\Identify\IdentifyServiceProvider',

首次登录

登录

要登录,请访问 website.com/admin,其中 "website.com" 是你安装Fractal的网站的名称。将 "Admin" 和 "password" 作为用户名和密码输入,然后点击 "登录"。

你现在应该已经首次登录到Fractal。你现在应该能够管理CMS和网站或Web应用程序的设置。

启用开发者模式

要将 developer 会话变量设置为 true,请访问 website.com/admin/developer。这将识别你为Fractal的Web开发者,你可能会看到更多信息并管理额外的设置。要关闭开发者模式,请访问 website.com/admin/developer/off

基本用法

调整Fractal的基础URI

默认情况下,Fractal的基础URI是 admin,这使得你的URL类似于 website.com/admin/pages/home/edit。你可以在 config.php 中的 base_uri 变量中调整此设置。

添加额外的控制器

你可以在 config.php 中的 controllers 数组中添加额外的控制器或将现有定义的控制器指向替代项。使用 standard 表示标准Laravel控制器,使用 resource 表示资源控制器。

其他配置选项

请在各种配置文件中查找,例如 configblogsmediatablessocial,以查看哪些其他配置选项可以轻松自定义。大多数配置变量都有详细的描述,应该有助于你了解如何自定义不同的内容。然而,menussettings 配置文件是从数据库自动导出的,以最小化Fractal驱动的网站在页面加载时对某些数据库查询的需求。

获取视图的Bootstrap-ready菜单标记

echo Fractal::getMenuMarkup(); //get "Main" menu markup

echo Fractal::getMenuMarkup('Footer'); //get "Footer" menu markup

echo Fractal::getMenuMarkup('Footer', ['class' => 'nav nav-pills']); //set class attribute for menu

获取菜单项数组

$menu = Fractal::getMenuArray(); //get "Main" menu array

$menu = Fractal::getMenuArray('Footer'); //get "Footer" menu array

设置页面标题

分形已经使用 SolidSite 来处理页面标题、面包屑路径以及一些其他功能,这意味着如果您正在使用分形的公共布局来构建您的网站,您可以使用以下代码来设置页面标题。

//title HTML tag may look like "A Page Title :: Website.com" depending on config
Site::set('title', 'A Page Title');

//this can be used to differentiate the title that actually appears on the page from the primary title
Site::set('titleHeading', 'Alternate Title in Content');

//you may show the title using these
echo Site::title();

echo Site::titleHeading(); //will use "titleHeading" if it is set and if not will default to "title"