Дисклеймер и предыстория:
Я не программист и даже не учусь. Так сказать, я отношусь к тому большинству с пытливым умом и иногда кривоватыми руками, к которому относится 95% всего нашего комьюнити.
(Надеюсь никого не обидел).
На рутрекере есть прекрасный спойлер. Что такое cпойлер, надеюсь, объяснеть нет необходимости. Для phpBB есть также прекрасное решение от PPK, но по каким то причинам оно меня отпугнуло.
И главная проблема была в том, что там используется jQuery. В моем же случае шаблон использовал Mootools для меню. В сети есть много решений как подружить два фреймворка, но даже я (нисколько не программист) понимаю, что два фреймворка на одной странице это моветон. Исследую интренет в поисках решения, я наткнулся на данный материал
http://www.ponedelnikov.net/index.php?n ... age&pid=68 и заверте...
Процесс:
Процесс разбит в два этапа и инструкция представлена для стилей на основе prosilver.
Этап 1.
Подключаем скрипт.
Напомню, что mootools у меня уже подключен для того, чтобы работало меню на форуме. Т.е. <script type="text/javascript" src="./где-то-там/mootools.js"></script> мне прописывать не пришлось.
Открываем /styles/ваш_стиль/template/overall_header.html
и вставляем перед </head>
Код: Выделить всё
<script type='text/javascript'>
window.addEvent('domready', function() {
mass01 = $$('div.spoil div');
mass01.each(function(mass011) {
if (mass011['className']=='spoil_title')
{
numb = $random(10, 99)+''+$random(10, 99)+''+$random(10, 99)+''+$random(10, 99);
mass011.setProperty('id', 'st'+numb);
}
if (mass011['className']=='spoil_body')
{
mass011.setProperty('id', 'sb'+numb);
}
});
mass02 = $$('body div.spoil_title');
mass02.each(function(mass021) {
idsbtmp = mass021['id'];
var idsb = idsbtmp.slice(2, 10);
var myVerticalSlide = new Fx.Slide('sb'+idsb);
if ($('sb'+idsb).getStyle('display') == 'none')
{
myVerticalSlide.toggle();
(function(){
$('sb'+idsb).setStyle('display', 'block');
}).delay(100);
}
mass021.addEvent('click', function(){
myVerticalSlide.toggle();
});
});
});
</script>
Теперь добавим стиль для нашего будущего спойлера.
Открываем /styles/ваш_стиль/theme/common.css
добавляем куда-нибудь (т.е. в самый низ)
Код: Выделить всё
.spoil_title { background-color: #какой-то цвет; cursor: pointer;}
.spoil_body {display: none;}
Отступление 1.
Оформление спойлера можно сделать "под себя". Лично у меня на форуме стиль самого спойлера (если учесть что каждый элемент CSS расположен с новой строчки) составляет более 20 строчек.
Как говорится, проявите свою фантазию!
Этап 2.
Добавляем сам bbcode стандартными средствами движка.
Использование BBCode:
Замена HTML:
Код: Выделить всё
<div class="spoil">
<div class="spoil_title">Спойлер:
{TEXT1}
</div>
<div class="spoil_body">
{TEXT2}
</div>
</div>
Посдказка:
Обновляем шаблон и тему (а также кеш браузера или ctrl+f5, чтобы применились стили).
Отступление 2.
Надо сказать что это же решение я применил для скрытия мини-профилей при просмотре топика. А, вот например, для сворачивания категорий и окна БО я подсмотрел пример на ГУРУ, за что ему огромное спасибо.
Отступление 3.
Все вышеизложенное представлено здесь как есть, без каких-либо гарантий.
К сожалению никакой поддержки по данной модификации я оказать не смогу из-за отсутствия времени. Я лишь делюсь решением, которое подошло мне.
Пример:
http://eve-play.ru/forum/viewtopic.php?f=17&t=1021 (форум посвящен одной MMORPG, так что на содержимое не обращайте внимания).
Обратите внимание.
В моем примере используется mootools релиза 1.11