Удалить разметку DebugKit из представления
У меня есть шаблон *.ctp с некоторым HTML, который предназначен для преобразования в PDF с помощью плагина CakePDF. На этапе разработки я установил уровень отладки CakePHP на 2
и это заставляет все вещи DebugKig отображаться в визуализированном представлении:
<link rel="stylesheet" type="text/css" href="/debug_kit/css/debug_toolbar.css" />
<script type="text/javascript">
//<![CDATA[
window.DEBUGKIT_JQUERY_URL = "/debug_kit/js/jquery.js";
//]]>
</script><script type="text/javascript" src="/debug_kit/js/js_debug_toolbar.js"></script>
<div id="debug-kit-toolbar">[...]</div>
Мне это не нужно, и большинство движков PDF сходят с ума от этого. Есть ли способ избавиться от него, либо в этом конкретном представлении, либо во всех шаблонах PDF?
2 ответа
В конце концов я нашел решение для каждого случая. Вы можете отключить компонент в конце метода действия внутри контроллера (в любом месте до $this->render()
вызывается):
$this->Components->unload('DebugKit.Toolbar');
Вы также можете попробовать отключить режим отладки для определенного контроллера PDF, как это
public function beforeFilter() {
parent::beforeFilter();
Configure::write('debug', 0);
}
Вы также можете выгрузить компонент dubug для конкретного контроллера или действия попробуйте это
public function beforeFilter() {
parent::beforeFilter();
if(in_array($this->action, array('index'))) {
$this->Components->unload('DebugKit.Toolbar');
}
}
Это выгрузит компонент отладки в индексную функцию для конкретного контроллера