从控制器将文件注入模板

时间:2013-05-17 03:57:35

标签: php codeigniter assets

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

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

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

你要求页脚底部,但我的回答对你有用。

我正在使用资产库,但不是你的资产库,而是我的处理方式;

在我的控制器中;

/**
 * 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; ?>

答案 1 :(得分:1)

引用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();