将数据从模块控制器传递到PyroCMS中的小部件

时间:2011-06-30 06:43:11

标签: pyrocms

我可以以编程方式将自定义数据从模块的控制器传递给小部件(当它在模块视图中用作标记时)吗?或者这是否违反了小部件自包含的概念?

1 个答案:

答案 0 :(得分:1)

哇,4个月过去了,但希望这会有所帮助:

假设您在:

中有一个名为“example”的模块
/addons/modules/example/

在“example”模块目录下创建一个“widgets”文件夹,并在那里创建你的小部件:

在这种情况下,小部件控制器文件名将是:

/addons/modules/example/widgets/something/something.php

其内容:

<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Widget_Something extends Widgets
{
    public $author         = 'Author';
    public $website     = 'site';
    public $version     = '1.0';

    public function run($options)
    {
       // Load your modules model
       $this->load->model("example/example_m");

       // And/Or load your modules library
       $this->load->library("example/some_library");

       // Return values to use in view
       return array(
           'variable_name'   => $this->example_m->get_some_data(),
           'variable_name_2' => $this->example_m->get_some_other_data()
       ); 
    }
}

它的观点将在:

/addons/modules/example/widgets/something/views/display.php

查看内容:

<h2>Some html</h2>
<p>And the variable from controller:</p>
<p><?php echo $variable_name;?></p>

有关详细信息,请查看博客模块目录。在那里你会看到小部件。

否则总会有pyrocms.com:

http://www.pyrocms.com/docs/manuals/developers/creating-custom-widgets