боковая панель находится в файле layout.phtml. я очень смущен, почему добавление 1 декоратора в мою форму, потому что моя боковая панель ... хм на самом деле все после этого section#main
- я использую HTML5 - пропадает
layout.phtml
... /* scripts and all */ ...
<body>
<header> ... </header>
<nav> ... </nav>
<div class="clear" />
<section id="main">
<?php echo $this->navigation()->breadcrumbs(); ?>
<?php echo $this->layout()->content; ?>
</section>
<aside id="sidebar"> ... </aside>
<footer> ... </footer>
</body>
все после section#main
отсутствует.
Мой пользовательский декоратор просто
class Application_Form_Decorator_WmdPreview extends Zend_Form_Decorator_Abstract {
function render($content) {
$separator = $this->getSeparator();
$html = '<label style="margin-top: 10px">Preview</label><div class="wmd-preview" />';
switch ($this->_placement) {
case self::APPEND:
return $content . $separator . $html;
case self::PREPEND:
return $html . $separator . $content;
}
}
}
и моя форма init()
-
... // adding form elements
// call loading of default decorators manually
$this->loadDefaultDecorators();
// override decorator for body
$this->getElement('body')
->setDecorators(array(
'ViewHelper',
'Errors',
array('Description', array('tag' => 'p', 'escape' => false)),
'Label',
new Application_Form_Decorator_WmdPreview,
array('HtmlTag', array('tag' => 'p'))
));
// disable autoloading of default decorators
$this->setDisableLoadDefaultDecorators(true);
... хм ... что-то, что я сейчас замечаю, это то, что HTML из источника просмотра в порядке
<p><label for="body" class="optional">Post body</label>
<textarea name="body" id="body" rows="24" cols="80"></textarea>
<label style="margin-top: 10px">Preview</label><div class="wmd-preview" /></p>
но вывод из firebug не ...
...
<textarea name="body" id="body" rows="24" cols="80"></textarea>
<label style="margin-top: 10px">Preview</label>
</p> <!-- why is this here !!! -->
<div class="wmd-preview">...</div><!-- and this out of the p!!! -->
</form>
</section>
<!-- all my content supposed to be here is missing! -->
</body>
проблема с JavaScript? от ОМУ ?
Решение
вместо <div />
используйте <div></div>
. также, как говорит @DavidW, у меня не должно быть <div>
внутри <p>