Вопрос карабина - библиотека кодигнитеров - PullRequest
3 голосов
/ 08 мая 2011

Когда я использую библиотеку карабина, мои файлы css и js добавляются в верхнюю часть страницы.Есть ли способ, которым я мог бы указать, где файлы должны быть добавлены, может быть, попытаться отправить файлы в виде массива в мои файлы просмотра?

Ответы [ 2 ]

3 голосов
/ 09 мая 2012

Может незначительно отличаться в зависимости от того, как вы изменяете свои представления, но с обычным, тусклым способом сделать это, вот пример:

Домашний контроллер:

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 голос
/ 08 мая 2011

Это была одна моих главных неприятностей с Carabiner, небуферизованный вывод. Каждая выходная функция echo возвращает возвращаемое значение, а не возвращает его.

Не взламывая библиотеку (что я лично сделал бы), вот пример того, как сделать то, что вы спрашиваете:

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

Теперь у вас есть переменная с выводом тега js / css, которую вы можете отправить в свой файл представления или шаблон. Без буферизации вывода это немедленно распечатало бы теги на ваш вывод. Обратите внимание, что если вы хотите, другой обходной путь - убедиться, что вы не вызываете функции вывода, пока они вам не понадобятся, как в самом шаблоне.

Если вы хотите исправить это навсегда, просмотрите библиотеку Carabiner и замените каждый экземпляр echo $some_return_value; на return $some_return_value; (последняя строка любой функции вывода). Их много, так что это займет немного времени.

Что касается возврата массивов, я не слишком уверен - я никогда не добирался так далеко с Карабинером (мне это не нравилось). Надеюсь, это все равно поможет. Удачи!

Подробнее о буферизации вывода: http://php.net/manual/en/book.outcontrol.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...