Передача данных из контроллера модуля в виджет в PyroCMS - PullRequest
0 голосов
/ 30 июня 2011

Можно ли программно передавать пользовательские данные из контроллера модуля в виджеты (когда они используются в качестве тега в представлении модуля)? Или это нарушает концепцию автономности виджетов?

1 Ответ

1 голос
/ 28 октября 2011

Ух, прошло 4 месяца, но надеюсь, что это поможет:

Допустим, у вас есть модуль с именем "example" в:

/addons/modules/example/

Создайте папку "widgets" в разделе "example"каталог модуля и создайте свой виджет там:

В этом случае имя файла контроллера виджета будет:

/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

...