代码点火器-您将如何构建此网站?

问题描述

| 我将在代码点火器中建立我的第一个站点,这是一个相当基本的站点,如下所示:   家     登录/注册
members area
protected page 1 
protected page 2
protected page 3

general info section
page 1
page 2
page 3 (dynamic table of reports)

about section
page 1
page 2

blog section
listing
article page
我已经看过一些基本的教程,并阅读了一些文档,但是仍然不确定什么是构建此文档的最佳方法。可以给任何具有CI经验的人示范一个例子吗? 一些具体的问题是: 带有导航面板的标题在所有页面上都相同。通常,我会使用if / else对其进行编码,以显示突出显示的当前部分。我想我只是将其保留为包含(视图),然后先通过控制器加载它,还是将其包含在每个视图中? 我设想有一个名为\'user \'的模型来处理登录注册一个名为\'blog \'的模型和一个名为''reports \'的模型。听起来对吗? 对于诸如此类的静态部分,我猜没有模型,而我每个控制器只有一个带有功能的控制器?即about.PHP与page1(),page2()及其所做的只是加载静态视图?     

解决方法

1->要解决此问题,我决定像这样使用自己的控制器 使用CI 2.x,在app / core下创建一个名为MY_Controller.php的文件,如下所示:
<?php

 class MY_Controller extends CI_Controller {

    function __construct() {
        parent::__construct();
    }

    public function loadView($view) {
        $this->load->view(\'header\');
        $this->load->view($view);
        $this->load->view(\'footer\');
    }
}
然后我扩展此控制器而不是CI。确保您的
$config[\'subclass_prefix\'] = \'MY_\';
在config.php文件中。 2->是的 3->那就是它:D     ,我是这里的新手(codeigniter),但是: 对于页眉/页脚,我从这里开始采用模板策略(第一种选择)。很好 在建模之前,我会计划控制器-每个部分大约一个。我将所有它们都从MY_controller继承,在这里放置通用功能。您的模型对我来说似乎是正确的。我认为它们像DAO一样,或提供对数据库的访问的“服务对象”。站点的一般智能(如果需要)应位于自定义库中或控制器内部。 是。     ,您应该使用CI库来处理用户注册和每页授权。 这是一个有关如何实现的非常简单的示例。请记住,CI使用MVC模式
    class Reports extends CI_Controller {

        public function __construct() {
           parent::__construct();
           // load database if needed
           // load a model if needed

        }

        public function page() {
            //get the page requested
            $page_id = $this->uri->segments(2);
            // based on the page_id do something.

            $data[\'somedata\'] = \'About us data here\';

            // this is an actual file loaded from the template view
            $data[\'maincontent\'] = \'my_page\';
            $this->load->view(\'template\',$data);
        }

    }

    class About extends CI_Controller {

        public function __construct() {
           parent::__construct();
           // load database if needed for this page
        }

        public function page() {
            // same here
            //get the page requested
            $page_id = $this->uri->segments(2);
            // based on the page_id do something.

            $data[\'somedata\'] = \'About us data here\';

            // this is an actual file loaded from the template view
            $data[\'main_content\'] = \'my_about_page\';
            $this->load->view(\'template\',$data);
        }
    }
在模板文件中
    $this->load->view(\'template/header\');
    $this->load->view(\'template/nav\');
    $this->load->view($main_content);
    $this->load->view(\'template/footer\');