如何在codeigniter中分离“小部件”的文件?

时间:2011-02-07 09:26:05

标签: model-view-controller codeigniter views widget

我有一个基本的cms,它将内容加载到有胡子标记的页面中,以指示html代码中这些内容的显示位置。

内容在小部件模型中指定,指示要显示的内容类型,例如,带有id的freetext。或其他模特和身份证。这些模型中的每一个将根据它们所基于的模型以不同方式显示。

我可以想象这会变得有点笨拙,有没有办法让一个单独的文件夹放入这些小部件,以免它混乱我的主代码。

像铁道上的apotomo这样的东西会很好,但对于codeigniter来说。

2 个答案:

答案 0 :(得分:2)

小部件模型?那不太好看。您是否尝试过查看PyroCMS

https://github.com/pyrocms/pyrocms/blob/master/system/pyrocms/modules/widgets/libraries/Widgets.php

从它的声音中你可能对我们的Plugins库感兴趣(听起来像是一个不同名称的同一个东西)。它设置为MY_Parser并运行在Dan Horrigan的Simpletags实现之上。

无论哪种方式都可以做到这一点。如果您需要一些更具体的定制建议,您可能需要演示一些代码。

答案 1 :(得分:0)

在名为小部件的应用程序/视图中创建文件夹。将您的小部件放在该文件夹中,并为每个小部件创建一个单独的文件(d0h)。

接下来,您有2个选项(至少我知道):

a。)将小部件加载到控制器内的变量中,然后将它们传递给主/一般视图

$data['widget_twitter_feed'] = $this->load->view('widgets/twitter', '', false);
$data['widget_something'] = $this->load->view('widgets/something', '', false);

$this->load->view('my_main_view', $data);

b。)在主视图/一般视图中加载小部件

<html>
...
   <div id="sidebar">
      <?php $this->load->view('widgets/twitter'); ?>
   </div>
   ...
   <div id="footer">
      <?php $this->load->view('widgets/something'); ?>
   </div>
...
</html>