登山扣问题 -- 代码点火器库


Carabiner question -- Codeigniter library

当我使用登山扣库时,我的css和js文件被附加到页面顶部。有没有办法指定文件应该附加到哪里,也许尝试将文件作为数组发送到我的视图文件?

谢谢

根据你如何改变你的观点,可能会略有不同,但对于传统的、乏善可陈的方式,这里有一个例子:

家庭控制器:

public function index()
{
  $this->carabiner->css('default.css')
  $this->carabiner->js('custom.js');
  $data['assets'] = $this->carabiner->display_string('both');
  $this->load->view('templates/header', $data);
  $this->load->view('home/index', $data);
  $this->load->view('templates/footer');
}

页眉视图:

<html>
<head>
<title>Title of Page</title>
<?php echo $assets; ?>
</head>
...
这是我对

登山扣、无缓冲输出的主要烦恼之一。每个输出函数echo返回值而不是 ..归还它。

在不入侵库的情况下(我个人会这样做),这里有一个如何做你要求的例子:

ob_start();
$this->carabiner->display('css');
$css = ob_get_clean();

现在,您有一个带有 js/css 标记输出的变量,您可以发送到您的视图文件或模板。如果没有输出缓冲,这会立即将标签打印到输出。请注意,如果需要,另一种解决方法是确保在需要输出函数之前不要调用它们,就像在模板本身中一样。

如果您想永久解决此问题,请浏览登山扣库并将每个echo $some_return_value;实例替换为return $some_return_value;(任何输出函数的最后一行)。有很多,所以这需要一点时间。

至于返回数组,我不太确定 - 我从来没有用登山扣走那么远(不喜欢它)。希望这仍然有帮助。祝你好运!

阅读有关输出缓冲的更多信息:http://php.net/manual/en/book.outcontrol.php