`
dcj3sjt126com
  • 浏览: 1877618 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

yii 修改模块使用的布局文件

    博客分类:
  • YII
阅读更多

方法一:
yii模块默认使用系统当前的主题布局文件,如果在主配置文件中配置了主题比如:

'theme'=>'mythm',
那么yii的模块就使用 protected/themes/mythm/views/layouts 下的布局文件;
如果未配置主题,那么 yii的模块就使用  protected/views/layouts 下的布局文件, 总之默认不是使用自身目录 protected/modules/my_module/views/layouts 下的布局文件。
 
于是想到去配置模块$layout属性
'my_module' => array(
'layout'=>'main', //这个属性的默认值是 //layout/main
), 
但没有起作用,原因在于模块下的controller的$layout值仍然是 //layouts/main
为了一劳永逸解决这个问题,在protected/modules/my_module/controllers里创建 DadController继承Controller
class DadController extends Controller {
public $layout = 'main';
}
所有的Controller都去继承DadController即可。 别忘了去主配置文件配置DadController的引入目录:
'import'=>array(
'application.models.*',
'application.components.*',
'application.modules.my_module.controllers.*',
),

方法二:

访问index.php?r=admin/default/index时,默认使用了protected/views/layout /main.php,如果想使用模块自己的layout文件(protected/modules/admin/views/layout /main.php),需要修改protected/modules/admin/controllers /DefaultController.php,在这个文件内添加下面代码:

public  $layout = 'application.modules.admin.views.layouts.main'; 


方法三:
在模块入口文件 beforeControllerAction中添加处理代码,这个方法发生于动作执行前:(例如AdminModule.php)
    public function beforeControllerAction($controller, $action)
    {
         $controller->layout = 'application.modules.admin.views.layouts.book';
        if(parent::beforeControllerAction($controller, $action))
        {
            // this method is called before any module controller action is performed
            // you may place customized code here
            return true;
        }
        else
            return false;
    }

0
2
分享到:
评论

相关推荐

    Yii框架布局文件的动态切换操作示例

    一旦layout属性的值被更改,渲染视图时就会使用新的布局文件。 除了在控制器类中设置布局之外,我们还可以在模块级别上设置布局文件。模块(Module)是Yii框架中组织代码的一种方式,它可以让开发者将相关功能的...

    YII2框架整合H+后台UI框架

    2. **调整布局文件**:在`YII2`的视图布局文件(如`views/layouts/main.php`)中,引入`H+`的CSS和JS文件。例如,添加以下代码: ```php $this->head() ?> ... $this->endBody() ?> ...

    yii框架入门实例

    - **模块布局**:模块默认使用当前主题的布局文件,可以通过配置文件或直接设置模块的`layout`属性来更改。 #### 九、实践案例 - **练习目标**:熟练掌握控制器和视图的基本使用方法,学会创建和使用布局文件。 - ...

    yii-user扩展

    安装和使用时,需将代码库中的文件整合到你的 Yiiframework 1.x 项目中,并按照文档配置数据库连接、RBAC 组件等。通过这样的集成,你可以快速构建出一个功能完备的用户管理系统,极大地提高了开发效率和项目质量。

    yii快速入门教程--一个非常好的php框架

    - **功能**: 入口文件是整个Yii应用的第一个脚本,它负责加载Yii框架以及初始化应用。 - **内容**: 通常包含如下代码: ```php $yii = dirname(__FILE__) . '/../../framework/yii.php'; // Yii框架的位置 $...

    Yii入门教程之目录结构、入口文件及路由设置

    布局文件则位于`protected/views/layouts`目录,可以用来设定页面的通用结构。 视图模板设置允许我们定义不同控制器或全局的布局模板。每个控制器都可以继承自公共的`Controller`类,该类位于`protected/components...

    Yii 2.0开发一个仿京东商城平台

    3. **购物车模块**:实现商品添加到购物车、修改购物车商品数量、删除购物车中的商品等功能。 4. **订单模块**:生成订单、查看订单状态、取消订单等功能。 5. **支付模块**:集成第三方支付接口,如支付宝、微信...

    Yii_Cookbook

    - **实现方式**:通过视图渲染逻辑来决定使用哪个布局文件。 ##### 28. 记录ActiveRecord的变更 - **知识点**:跟踪模型数据的变更历史。 - **实现方式**:使用行为(Behavior)记录模型数据的变化。 ##### 29. ...

    yiicms是采用yii2开发的企业站管理系统

    4. **模块化设计**:yiicms采用了模块化结构,方便开发者根据需求添加或修改功能模块,增强了系统的可扩展性。 5. **权限管理**:系统提供了用户角色和访问控制功能,便于管理不同用户的权限,确保数据安全。 6. *...

    yii框架下一个很好用的cms

    9. **views**目录:视图文件存放在此,负责呈现数据,通常使用PHP模板语言编写,可与布局文件结合使用。 10. **themes**目录:CMS中的主题管理,允许用户或开发者更换网站外观,通常包含一组视图文件和样式表。 11...

    Yii2-Cookbook-Chinese.pdf

    在部署章节中,我们会学习如何修改Yii目录布局、移动应用、修改高级应用模板、将配置部分移到单独的文件中,以及使用多个配置文件来简化部署过程。 测试章节将教我们如何使用Codeception、PHPUnit、Atoum以及Behat...

    Yii2框架视图(View)操作及Layout的使用方法分析

    在Yii2中,布局文件通常位于`views/layouts`目录下。默认情况下,`yii\base\Application`的`$layout`属性设置为`main`,这表示所有的视图都将使用`main.php`作为布局模板。如果需要为特定的模块或控制器指定不同的...

    YiiFramework手册

    8. **扩展性**:Yii 具有良好的扩展性,可以通过模块化和插件系统来添加新的功能或修改现有功能。 在“Yii Framework v1.1.10类参考中文手册”中,你可以找到以下内容: - **类和接口**:手册详细列出了Yii框架中...

    yii guide 1.1.14

    - **Apache 和 Nginx 配置**:根据所使用的 Web 服务器类型(Apache 或 Nginx),需要对配置文件进行相应的设置,以确保 Yii 应用能够正常运行。 #### 六、创建第一个 Yii 应用 - **连接数据库**:通过配置文件指定...

    Yii PHP 框架BLOG开发手册

    - **配置文件设置:** 如何设置基本的配置文件以启动 Yii 应用程序。 - **启动测试页面:** 如何运行第一个简单的 Yii 页面以确认一切正常。 - **1.2.3 应用程序工作流程 (Application Workflow)** - **理解请求...

    2009年最优秀的PHP框架-YII

    - **定制页面布局**:通过自定义布局文件来控制Portlets在页面上的显示方式。 ##### 6.2 创建User Menu Portlet - **创建User Menu Class**:定义用户菜单Portlet的类。 - **创建User Menu View**:编写视图文件,...

    从零开始学YII2框架(四)扩展插件yii2-kartikgii

    在使用`yii2-kartikgii`之前,你可能需要对Yii2的Gii模块和Kartik Grid有所了解。Gii允许开发者通过填写简单的表单来生成模型、控制器和视图文件,大大减少了重复劳动。而Kartik Grid则是基于yii2-grid扩展,提供...

    yii2-adminlte:带有 AdminLTE 主题的 Yii2 基本模板

    4. 修改视图配置,将应用的默认视图设置为 AdminLTE 的布局文件。 5. 调整路由规则,确保后台页面的 URL 正确解析。 在实际开发中,你可以利用 Yii2 的 ActiveRecord 特性来处理数据库操作,结合 AdminLTE 的组件...

    详解Yii2高级版引入bootstrap.js的一个办法

    它遵循MVC(模型-视图-控制器)设计模式,并且在前端资源管理方面,Yii2使用了Asset Bundles来管理JavaScript和CSS文件。 Asset Bundles是Yii2中管理前端资源(包括JavaScript文件、CSS文件以及图片等)的一种方式...

Global site tag (gtag.js) - Google Analytics