首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模块化分离

模块化分离
EN

Stack Overflow用户
提问于 2013-01-27 06:38:05
回答 1查看 565关注 0票数 0

我正在为我的Codeigniter应用程序使用HMVC模块分离,并试图弄清楚如何使用我设置的模板来实现这一点。可能有更好的方法来处理这件事,我不确定,但如果有人能提出一个建议,我会洗耳恭听。这是我当前的文件系统。Supr,正如下面提到的一个文件夹,是我当前使用的主题模板。

在每个模块控制器中都有一个名为$view_file的变量。这是传递给body content视图页面的变量,它告诉它在控制面板的内容包装器中显示哪个视图文件。

我需要弄清楚的是,如何在if语句中添加一个file_exists函数,以便查看变量的值是否可以查看该文件是否存在,但不确定如何使用这个HMVC模块分离框架来实现这一点。我之所以需要帮助理解如何做到这一点,是因为我不知道如何让它知道要查看哪个模块视图。

我还包含了body content视图的代码,该视图包含一条if语句,用于确定需要加载哪个文件。

https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc

代码语言:javascript
复制
application/
    modules/
        blog/
            controllers/
                blog.php
            models/
                blog_model.php
            views/
                blog_view.php
        dashboard/
            controllers/
                dashboard.php
            models/
                dashboard_model.php
            views/
                dashboard_view.php
    views/
        supr/
            cpanel/
                header.php
                footer.php
                body_content.php

<!--Body content-->
<div id="content" class="clearfix">
    <div class="contentwrapper"><!--Content wrapper-->

    <?php 

    if ((empty($view_file)) || (!isset($view_file)) || (trim($view_file) == '')) //add file exists to if statement for module view file being requested
    {
        $this->load->view('supr/body_unknown_view');
    }
    else
    {
        $this->load->view('supr/cpanel/pages/' . $view_file);  // Change to module speration view file 
    }

    ?>
</div><!-- End contentwrapper -->
</div><!-- End #content -->
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-27 13:44:58

这里有一种方法可以用于视图的主体内容,利用OOP,使用MY_Controller扩展您的控制器,在应用程序核心下创建MY_Controller类。

代码语言:javascript
复制
class MY_Controller extends MX_Controller { 
     // not using Modular extentions then extend with CI_Controller

    function __construct(){
          parent::__construct;
    }

    function build($view=null,$data=array()){

          $load_view = 'supr/body_unknown_view';

          if(strlen($view))
          {
               $load_view = 'supr/cpanel/pages/' . $view;
          }

        $body = $this->load->view($load_view,$data,TRUE);

        $this->load->view('supr/cpanel/body_content',array('body'=>$body));

    }

}

//blog controller
class blog extends MY_Controller { 


        function __construct(){
              parent::__construct;
        }

        function index(){
           //anydata
           $data['blog_content'] = 'blog content';
           $this->build('blog_view',$data);
        }

    }

<!--Body content-->
<div id="content" class="clearfix">
    <div class="contentwrapper"><!--Content wrapper-->

    <?php echo $body; ?>

</div><!-- End contentwrapper -->
</div><!-- End #content -->
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14542305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档