登山扣问题 - Codeigniter库

时间:2011-05-08 07:53:12

标签: php codeigniter

当我使用carabiner库时,我的css和js文件会附加到页面顶部。有没有办法我可以指定文件应该添加到哪里可能尝试将文件作为数组发送到我的视图文件?

感谢

2 个答案:

答案 0 :(得分:3)

可能会根据您的观看方式略有不同,但是采用传统的,乏善可陈的方式,这是一个例子:

家庭控制器:

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>
...

答案 1 :(得分:1)

这是我对Carabiner的主要烦恼的一个,无缓冲输出。每个输出函数echo都是返回值而不是..返回它。

不破坏图书馆(我个人会这样做),这是一个如何做你要求的例子:

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

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

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

至于返回阵列,我不太确定 - 我从来没有用Carabiner那么远(不喜欢它)。希望这对所有人都有帮助。祝你好运!

详细了解输出缓冲:http://php.net/manual/en/book.outcontrol.php