{% else-1 %}
Обновить | Подписаться | Поднять тему
Чтобы выполнить действие авторизируйтесь или пройдите регистрацию на сайте.
1. [автор] (2 апр 2014, 00:08) [1/0] [1] [отв] [спам] [под] +1 | -1

Долго думал,искал,толком ни чего не нашёл.
Нужно реализовать бб-код спойлер.Кто подскажет,как? *
Знаю,что это делаеться с помощью css,а я в нём дуб дубом *


Изм. 1 раз. / Посл. изм. (2 апр 2014, 00:09)
2. (2 апр 2014, 09:40) [1/0] [1] [отв] [спам] [под] +1 | -1

Буду дома напишу

3.
CZAR * [мошенник] 21.93
(2 апр 2014, 10:18) [2/0] [2] [отв] [спам] [под] +1 | -1

оздаем обработчик события 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

4.
saSHADE * [мошенник] 1.22
(2 апр 2014, 10:56) [0/0] [0] [отв] [спам] [под] +1 | -1

Я такое делал.
<?php
$bbcode['/[spoiler=(.+)](.+)[/spoiler]/isU']='<div class="bb_spoiler-title closed" >$1</div><div class="bb_spoiler-body">$2</div>';
?>
в шапку сайта засунуть яваскрипт
<?php
$(document).ready(function() {
$('.bb_spoiler-body').hide();
$('.bb_spoiler-title').click(function(){
$(this).toggleClass('opened').toggleClass('closed').next().slideToggle();
});
});
?>
оформить css по вкусу

Писать так - [spoiler=текст заголовка]скрытый текст[/spoiler]


Изм. 1 раз. / Посл. изм.
saSHADE * [мошенник] 1.22
(2 апр 2014, 10:57)
  • 1 из 1
Чтобы писать сообщения авторизируйтесь или пройдите регистрацию на сайте.
Подписаны: 2
Скачать тему | Файлы темы | Фильтр сообщений