elboletaire / twbs-cake-plugin
Twitter Bootstrap 插件用于 CakePHP 3,包含 less.php 和 less.js 解析器、助手和 bake 模板
Requires
- cakephp/cakephp: ^3.3
- elboletaire/less-cake-plugin: ^1.7
- friendsofcake/bootstrap-ui: ^0.6
This package is auto-updated.
Last update: 2024-09-08 06:21:11 UTC
README
此插件包括 less.js 和 less.php 解析器,并允许您轻松部署带有 (Twitter) Bootstrap 的 CakePHP 应用程序。
从版本 3.0.2 开始,此插件已删除其自己的助手和组件,并将 friendsofcake/bootstrap-ui 添加为 composer 依赖项,因此您将使用所有这些类。
它还包含一些 bake 模板,可以帮助您开始创建 twitter-bootstraped CakePHP 网页应用程序。
通用功能
- 使用 less.js 和/或 less.php 解析 less 文件。
- LessHelper 以轻松解析文件。
- Bake 模板。
- 通用 Bootstrap 布局。
- BootstrapUI 插件中包含的所有实用工具。
安装
添加插件
您可以使用以下 composer 安装此插件
composer require elboletaire/twbs-cake-plugin
完成后,composer 将询问您版本。请查阅 Packagist 上的包 了解每个可用的版本。
启用插件
添加插件后,请记住在您的 config/bootstrap.php
文件中加载它
Plugin::load('Bootstrap', ['bootstrap' => true]);
这将为您加载 Less 和 BootstrapUI 插件。
如果您希望手动执行此操作,可以逐个加载它们
Plugin::load('Bootstrap'); Plugin::load('Less'); Plugin::load('BootstrapUI');
配置
添加插件后,您可以添加所需的实用工具
// AppController.php public $helpers = [ 'Less.Less', // required for parsing less files 'BootstrapUI.Form', 'BootstrapUI.Html', 'BootstrapUI.Flash', 'BootstrapUI.Paginator' ];
或者,如果您在 AppView 中加载它们
// AppView.php public function initialize() { $this->loadHelper('Less', ['className' => 'Less.Less']); $this->loadHelper('Html', ['className' => 'BootstrapUI.Html']); $this->loadHelper('Form', ['className' => 'BootstrapUI.Form']); $this->loadHelper('Flash', ['className' => 'BootstrapUI.Flash']); $this->loadHelper('Paginator', ['className' => 'BootstrapUI.Paginator']); }
使用方法
使用 Twitter Bootstrap 和 less 时有两种常见的使用方式
- 直接在视图中使用 Twitter Bootstrap 类。
- 在视图中使用自定义类,然后将这些类扩展到 Twitter Bootstrap 组件。
对于第一种情况,您可以直接 加载此插件包含的布局,并使用也包括的 bake 模板 烘焙您的视图。
对于第二种情况,您需要 创建自己的布局 并创建一个样式表,如包含的 webroot/less/cakephp/styles.less
。
此文件扩展了默认烘焙视图的样式,使它们具有 CakePHP-Bootstrapped 的外观和感觉。
主题
在两种情况下,您都可以使用此插件包含的布局作为 主题(目前只有 default
布局)
// AppController or AppView public function beforeRender(\Cake\Event\Event $event) { $this->viewBuilder()->theme('Bootstrap'); }
或者作为布局
// AppController or AppView public $layout = 'Bootstrap.default';
您还可以直接从模板文件中指定它作为布局
// any .ctp Template file $this->layout = 'Bootstrap.default';
如果您想使用
less
文件,应使用 Bootstrap 布局。如果您更愿意使用 css 文件,则可以使用 BootstrapUI 布局。
最后但同样重要的是,您还可以将此模板复制到您的 Template/Layout
文件夹,然后从您的视图扩展模板。
顺便说一句,建议您将所有必需的文件复制到您的 src 文件夹(特别是对于资产),即使您不会修改它们。
请注意,如果您在一个全新的 CakePHP 安装中加载此插件,并尝试在主页中查看布局更改,您将看不到任何内容。 home.ctp
会将布局覆盖为 false
,以确保按照设计加载。
制作视图
您可以使用此插件附带的自带 twitter bootstrap 模板来制作您的视图。要这样做,只需在制作文件时指定 bootstrap
模板即可
cake bake.bake [subcommand] --theme Bootstrap
请记住,您还可以使用 BootstrapUI 的 bake 模板 来制作您的视图。查看其自述文件以获取更多详细信息。
创建您自己的布局
在您的 webroot/less
文件夹中创建一个 styles.less
文件(如果不存在,也创建该文件夹),包含以下行
@import '../bootstrap/less/bootstrap.less';
最后,从您的视图或布局中加载 less 文件
echo $this->Less->less('less/styles.less');
如果您想扩展 twitter bootstrap 样式,建议您将 bootstrap.less
文件复制到您的 less
文件夹,并根据您的需求进行自定义。对于 variables.less
,创建一个 custom-variables.less
文件,并在 bootstrap.less
文件中在 variables.less
之后加载它。在该文件中定义的任何变量都将覆盖 variables.less
中定义的值,并且当更新 (Twitter) Bootstrap 时,您的代码不会中断。
如果您想看看示例,可以查看 webroot/less/cakephp
中包含的文件,这些文件专门用于扩展默认的 CakePHP 烘焙模板。
实用工具
此插件“包含”以下实用工具(它们都来自其他插件)
- Less LessHelper
- BootstrapUI FormHelper
- BootstrapUI HtmlHelper
- BootstrapUI FlashHelper
- BootstrapUI PaginatorHelper
有关 Bootstrap 的 FlashComponent 的说明
旧的 Bootstrap FlashComponent 以前有一个 close
选项,允许您定义是否在闪存警告中包含关闭按钮。
使用 BootstrapUI FlashHelper,这有所不同。它会查找一个 alert-dismissible
类(默认情况下已设置)并且,如果已定义,将显示关闭按钮。
要禁用当前 Flash 警告的关闭按钮,您可以这样做
$this->Flash->{whatever}("Hello World", ['params' => ['class' => ['alert']]]); // where {whatever} is any of the Bootstrap alert classes (danger, info, warning...) $this->Flash->success("Hello World", ['params' => ['class' => ['alert']]]);
请注意,
class
参数被定义为数组。
LessHelper
用于在模板或视图中解析和加载压缩的 CSS。
LessHelper 是 less cakephp 插件 的一部分。检查那里的所有详细信息。
依赖关系
- elboletaire/less-cake-plugin 版本 >= 1.6.1
- FriendsOfCake/bootstrap-ui 版本 ~0.3
包含的依赖项
关于版本控制
此项目在开发阶段开始使用与 CakePHP 3.X 相同的版本控制。因此,我将继续使用它,但保留最新的版本号用于我的版本。
这意味着任何版本号为 3.0.X
的此插件都应该与任何 CakePHP 3.0
版本兼容。
许可证
The MIT License (MIT)
Copyright 2013-2015 Òscar Casajuana (a.k.a. elboletaire)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.