2011-09-30 43 views
3

我有是建立在笨一个网站,我想创造一些网页中包含的条款或隐​​私信息,他们的地址应该是:如何创建自定义页面笨,还不如控制器

http://domain.com/terms 
http://domain.com/privacy 

我的问题是:我应该为每个页面创建一个控制器吗?例如,在CMS中,如果我添加一个页面,它必须在服务器上创建一个'pysical'页面(构建在Codeigniter上的CMS)?

+0

不,你应该创建一个控制器,将从url参数中获取页面id/name – mishau

+0

然后它将成为'http:// domain.com/page/terms'例如(与控制器页面)。它不好。我错了吗?谢谢。 – Luis

+0

您需要使用路由来从URL中删除“页面”。请参阅下面的答案。 – birderic

回答

8

对于像一个隐私政策或服务条款页面,他们真的不适合在任何其他控制器我通常创建一个“内容”的控制器,它看起来是这样的静态页面:

class Content extends CI_Controller { 

    public function privacy_policy() 
    { 
     $this->load->view('privacy_policy'); 
    } 

    public function terms_of_service() 
    { 
     $this->load->view('terms_of_service'); 
    } 

} 

然后我添加一些routes从URL中移除“内容”:

$route['privacy-policy'] = 'content/privacy_policy'; 
$route['terms-of-service'] = 'content/terms_of_service'; 

这样,你不需要为每个页面一个新的控制器,你可以保持你在一个点组织静态页面。

+0

很酷,谢谢。但是,如何阻止通过内容/服务条款进入的用户? (我的意思是'http:// domain.com/content/terms-of-service')这个框架有一个方法吗?或者我应该使用htaccess手动重定向301? – Luis

+2

检查文档:http://codeigniter.com/user_guide/general/controllers.html#private – uzsolt

0

我所做的一件事就是让您的政策声明成为DL,DT,DD。用jquery隐藏DD,然后点击DD显示DD。然后将DD弹出作为模式

整个事情包含在页脚中。没有必要与控制器做任何事情