{% else-1 %}
CZAR * [мошенник] 21.93
(2 апр 2014, 10:18) (2/0) [2]
оздаем обработчик события BbCode, включая в цепочку свой обработчик:

PHP:
<?php
class XfRu_Spoiler_Listener_BbCode {
public static function listen($class, array &$extend) {
if ($class == 'XenForo_BbCode_Formatter_Base') {
$extend[] = 'XfRu_Spoiler_BbCode_Formatter';
}
}
}
Этот файл должен называться BbCode.php и лежать в папке /library/XfRu/Spoiler/Listener.

Теперь пишем наш обработчик

PHP:
<?php
class XfRu_Spoiler_BbCode_Formatter extends XFCP_XfRu_Spoiler_BbCode_Formatter {

protected $_tags;
public function getTags() {
$this->_tags = parent::getTags();
$this->_tags['spoiler'] = array(
'trimLeadingLinesAfter' => 1,
'callback' => array($this, 'renderTagSpoiler')
);
return $this->_tags;
}

public function renderTagSpoiler(array $tag, array $rendererStates) {
$content = $this->renderSubTree($tag['children'], $rendererStates);
$spoiler = $tag['option'];
if ($this->_view) {
$template = $this->_view->createTemplateObject('XfRu_Spoiler_spoiler', array(
'content' => $content,
'spoiler' => $spoiler
));
return $template->render();
}
else {
$name = '<div>' . new XenForo_Phrase('spoiler_warning') . ($spoiler ? ': '.$spoiler : '') . '</div>';
return '<blockquote>' . $name . $content . '</blockquote>';
}
}
}
Этот файл должен называться Formatter.php и лежать в папке /library/XfRu/Spoiler/BbCode
Добавлено 02.04.14 в 10:20:28:
.spoiler_header {
background: #FFF;
border: 1px solid #CCC;
padding: 4px;
margin: 4px 0 0 0;
color: #000;
}

.spoiler_body {
background: FFF;
padding: 4px;
border: 1px solid #CCC;
border-top: 0;
color: #000;
margin: 0 0 4px 0;
}
Добавлено 02.04.14 в 10:20:58:
http://mybbforum.ru/thread-471.html
  • 1 из 1