如何用Yii整合Bootstrap V3版本【安装教程】

jerry Yii 2015年08月12日 收藏

1.解压到 protected/extensions/bootstrap (如果你没更改过你的默认扩展位置)

  1.    protected/
  2.       └── extensions
  3.             └── bootstrap
  4.                 ├── behaviors
  5.                    └── BsWidget.php
  6.                 ├── components
  7.                    └── BsApi.php        //核心接口文件
  8.                 ├── helpers
  9.                    ├── BsArray.php      //辅助类
  10.                    └── BsHtml.php       //改写原有的CHtml.php,增加功能
  11.                 ├── components
  12.                    └── Bootstrap.php
  13.                 └── widgets              //各种部件,在原有Yii的基础上,增加功能

    
*在此罗列出主要目录文件

2.修改 protected/config/main.php 配置文件
首先在配置文件声明一个路径别名(alias)bootstrap
再声明导入一下bootstrap下的各个组件
再在components组件中增加 'bootstrap'

  1.  return array(
  2.         'aliases'=> array(
  3.             ...
  4.             'bootstrap'=>'ext.bootstrap',      //解压路径
  5.         ),
  6.         'import' => array(
  7.             ...
  8.             'bootstrap.behaviors.*',
  9.             'bootstrap.helpers.*',
  10.             'bootstrap.widgets.*'
  11.         ),
  12.         'components' => array(
  13.             ...
  14.             'bootstrap' => array(
  15.                 'class' => 'bootstrap.components.BsApi',   //加载核心接口
  16.             ),
  17.             ...
  18.         ),
  19.         ...
  20.     )

3.解压Boostrap V3到:themes/bootstrap

  1.  themes/boostrap/
  2.             └── assets
  3.                 ├── css
  4.                 ├── fonts
  5.                 └── js

4.修改模板文件
调整<head></head>之间对于css和js文件的加载
将原本yii自带的css内容全都去除,使用html5的开头,

  1.  <!DOCTYPE html>
  2.         <html>
  3.         <head>
  4.             <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5.             <title>Yii整合Bootstrap的安装方法 | doDomoGu</title>
  6.         </head>

5.在controller中初始化加载css和js

  1.  protected function beforeAction($action) {
  2.             if(parent::beforeAction($action)){
  3.                 ...
  4.                 Yii::app()->theme = 'bootstrap';
  5.                 $this->bootstrapInit();
  6.                 ...
  7.                 return true;
  8.             }else{
  9.                 return false;
  10.             }
  11.         }
  12.         ....
  13.         public function bootstrapInit(){
  14.             $cs = Yii::app()->clientScript;
  15.             $themePath = Yii::app()->theme->baseUrl;
  16.             /**
  17.              * StyleSHeets
  18.              */
  19.             $cs
  20.                 ->registerCssFile($themePath.'/assets/css/bootstrap.css')
  21.                 ->registerCssFile($themePath.'/assets/css/bootstrap-theme.css');
  22.             /**
  23.              * JavaScripts
  24.              */
  25.             $cs
  26.                 ->registerCoreScript('jquery')
  27.                 ->registerCoreScript('jquery.ui')
  28.                 ->registerScriptFile($themePath.'/assets/js/bootstrap.min.js',CClientScript::POS_END)
  29.                 ->registerScript('tooltip',
  30.                     "$('[data-toggle=\"tooltip\"]').tooltip();
  31.                     $('[data-toggle=\"popover\"]').tooltip()"
  32.                     ,CClientScript::POS_READY);
  33.         }

至此已经可以开始使用bootstrap V3的功能了

下载地址