从控制器向模板注入文件


Injecting Files To Template From Controller

我正试图弄清楚如何使用Anthony Male的资产库,该库也用于PyroCMS,仅通过控制器将某些资产加载到我的模板。

我有一个加载特定文件的模板,这取决于控制器,如登录控制器,我需要它在页脚的底部注入login.js文件,这是它将加载在模板的末尾。

任何想法?

引用Anthony Male资产库的官方文档,可以在这里找到:http://docs.pyrocms.com/2.1/manual/developers/tools/assets

Javascript文件可以使用以下命令添加到控制器中,其中myfile.js是你想要包含的Javascript文件,位于assets/js/myfile.js。

// Will add assets/js/myfile
Asset::js('myfile.js');
// Will add assets/admin/js/myfile.js
Asset::js('admin::myfile.js');


默认情况下,Asset将最小化这两个文件,并将它们合并成一个文件(写入assets/cache/.js)。要在页面中包含此文件,请在视图中使用以下命令:

echo Asset::render_js();

你问的是bottom of footer,但我的答案对你很有用。

我正在使用资产库,但不是你的,只是与类似,这就是我如何处理它;

in my controller;

/**
 * Global header variable for header view
 *
 * @var array
 * @access protected
 */
protected $header = array();
public function __construct() {
    // it returns like : <script type="text/javascript" src="http://domain.com/assets/js/jquery-min.js"></script>
    $this->header["jses"][] = js("jquery-min.js");
    $this->header["jses"][] = js("jquery.autogrow-textarea.js");
}
public function index() {
    // some code here
    $this->load->view("header",$this->header);
    // other views
}

在我的头部视图;

<?php foreach ( $jses as $js ) echo $js; ?>