Моё решение, в качесве бонуса - мой вариант тега "Сообщение администратора": "Общий вид страниц форума", куда-нибудь перед $BODY$:
Code
function tags() { $('div.msg_t:last').html($('div.msg_t:last').html().replace(/\[\/spoiler\]/ig,'</span></div> ').replace(/\[admin\]/ig,'<div class="adminMessage">').replace(/\[\/admin\]/ig,'</div>')); }
"Вид материалов" форума, $MESSAGE$ заменяем на следующее:
Code
<div class="msg_t">$MESSAGE$</div>
<script type="text/javascript">$('div.msg_t:last').html($('div.msg_t:last').html().replace(/\[spoiler\]/ig,'<div class="spoilerMessage"><a href="javascript://" onclick="$(\'.spoiler_$ID$\').slideToggle(\'normal\');">[ Spoiler ]</a><br><span class="spoiler_$ID$" style="display:none;padding-top:5px">')); tags();</script>
"Форма добавления сообщения", сразу после $BBCODES$:
Code
<input name="spoiler" type="button" onclick="simpletag('spoiler','','','message','')" class="codeButtons" value="spoiler" title="Выделить сообщение-спойлер">
<?if($IS_GROUP_4$)?><input name="admin" type="button" onclick="simpletag('admin','','','message','')" class="codeButtons" value="admin" title="Выделить сообщение администратора"><?endif?>
В "Таблицу стилей CSS":
Code
.spoilerMessage {background: #444; border: 1px #aaa dashed; padding-top: 3px; padding-bottom:5px; padding-right: 5px; padding-left: 5px; }
.adminMessage {background: #444; color:#fff; border: 1px #f00 dashed; padding-top: 10px; padding-bottom:10px; padding-right: 15px; padding-left: 15px; }
Плюсы:
- Мало кода
- Меньшая нагрузка на клиент
- Теги обрабатываются во время загрузки страницы
- Легко добавлять свои теги
Минусы:
Если несколько оффтопов в одном посте - они раскрываются/скрываются все сразу Добавлено (25 Февраль 2009, 17:18)
---------------------------------------------
Пример спойлера (в нашей интерпретации - сообщения не по теме (Offtop))
Пример сообщения администратора (в конце поста)