Удалить разметку 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');
    }
}

Это выгрузит компонент отладки в индексную функцию для конкретного контроллера

Другие вопросы по тегам