davidyell / viewbits
CakePHP 2.x 组件,用于将内容动态加载为页面中与路由匹配的块。
Requires
- composer/installers: ~1.0
README
为什么?
我需要一种方式,允许在视图中某些内容块进行内容管理,而不影响布局。
它做什么
它将钩子 beforeRender()
用于匹配路由,以便加载所需路由的视图块。这样你就可以在视图中包含它们。
兼容性
兼容于 CakePHP 2.x
。 (在 2.2.3
上开发)
安装
- 下载并解压到
app/Plugins/ViewBits
$ git clone https://github.com/davidyell/CakePHP-ViewBits.git app/Plugin/ViewBits
$ git submodule add https://github.com/davidyell/CakePHP-ViewBits.git app/Plugin/ViewBits
设置
首先,你需要创建数据库表以存储你的视图块。
从 app/Plugin/ViewBits/Config/Schema/view_bits.sql
导入 view_bits.sql
文件
或者
你可以使用 CakeDC/migrations 来运行迁移文件。
cake Migrations.migration run --plugin ViewBits
然后,你需要在 app/Config/bootstrap.php
中使用 CakePlugin::load('ViewBits')
启用插件。如果你已经使用 CakePlugin::loadAll()
,则无需担心。
为了启用组件,它需要包含在控制器中的 $components
数组中。我建议将其添加到 AppController.php
class AppController extends Controller { public $components = array('ViewBits.ViewBits'); }
用法
组件将基于 URL 中的路由进行匹配。所以如果你添加一个路由为 /
的视图块,它将在你的根页或主页上加载。如果你添加一个路由为 /pages/display/about
的视图块,它将显示在关于页面上。
路由中使用 *
也支持通配符。如果你添加一个 *
路由的视图块,它将在所有页面上加载。你可以将它们组合起来,例如 /users/*
,这将加载在所有 Users 控制器路由上。
为了显示你的视图块,你需要包含输出内容的插件辅助器。在你的控制器中,你必须将辅助器添加到你的辅助器数组中。
public $helpers = array('ViewBits.ViewBits');
示例
<?php echo $this->ViewBits->out($viewbits, 1);?> // $viewbits is an array of items generated by the component // 1 is the item you want to output
你必须做什么
你需要自定义管理界面,并将其与当前的管理系统集成。管理视图基于我的 NiceAdmin 插件。
待办事项
v0.1 里程碑
创建一个辅助器以替换元素在新的辅助器中想出一种更好的方式来管理多个视图块排序,以便块按页面顺序加载增强路由匹配以接受正则表达式、通配符或类似功能验证路由是否存在自定义验证函数,用于查找路由并确保其存在为Composer进行设置并将其添加到Packagist
##许可证
本作品受Creative Commons Attribution-ShareAlike 3.0 Unported License许可。