|
Правила •
Регистрация •
Справка Сообщения за день • Поиск |
|
|
|
Опции темы | Опции просмотра |
|
Старожил
|
Хак добавляющий спойлер (Spoiler) в BB-коды.
Только для тех версий порталов, что не имеют этот BB-код. Спойлер - это возможность разместить компактно большу часть информации, которую можно показать по кнопке Show/Hide Работает на любой версии портала и браузера с учетом мини оперы. Принцип: Выделяем текст что хотим свернуть, нажимаем кнопку спойлера, далее будет окно в котором предложат ввести название спойлера, если не вводить, то будет стандартное "Spoiler" Начинаем: 1. Кнопку spoiler.gif кладем в \images\editor\ 2. В файле стилей вашей темы прописываем новые стили: Код:
.spoiler { margin-top: 0.5em; margin-bottom: 1em; } .spoiler .title { font-size: 100%; font-weight: bold; display: block; float: left; } .spoiler .title:after { content: ' '; } .spoiler input { font-size: 70%; } .spoiler .content { border: 1px dashed black; padding: 0.5em; margin-top: 0.5em; white-space: nowrap; } 3. В глобальном языковом файле global.php что находится по адресу: \www\language\russian прописываем: define("_SPL","Спойлер"); ну и для английского языкового файла: define("_SPL","Spoiler"); 4. Открываем файл: \www\include\scripts.js где нибудь в конце добавляем две функции: Код:
function spoilerCODE(spoiler) { var e = spoiler.parentNode.getElementsByTagName('div')[1]; if (spoiler.value == 'Show') { e.style.display = ''; spoiler.value = 'Hide'; } else { e.style.display = 'none'; spoiler.value = 'Show'; } } Код:
function xoopsCodeSpl(id) { var maxchars = 128; var dom = $(id); var text = prompt("Введите название спойлера (Enter spoiler name), 128 max.", ""); if ( text != null && text != "" && maxchars != 0 && text.length < maxchars ) { var bbopen = "[spoiler=" + text + "]"; } else { var bbopen = "[spoiler=Spoiler]"; } var bbclose = "[/spoiler]"; insertBB(dom, bbopen, bbclose); storeCaret(dom); } проверьте есть ли в вашем файле для имеющихся BB-кодов, такие упоминания: insertBB(dom, bbopen, bbclose); storeCaret(dom); Если есть, то все хорошо, ваш файл корректно поддерживает все браузеры, если нет, то готовый файл возьмите из новой версии рони. 5. Открываем файл: \www\include\common.php где нибудь в конце добавляем: PHP код:
6. Открываем файл: \www\class\module.textsanitizer.php внутри функции "xoopsCodeDecode" добавляем: PHP код:
7. Некоторые исправления в этом же файле: \www\class\module.textsanitizer.php нам нужно поменять порядок обработки смайлов и BB-кодов, чтобы если в названии сплойера есть смайл, то он корректно обрабатывался. также сменив порядок обработки, мы в дальнейшем улучшаем обработку и других BB-кодов имеющих внутри параметр, например тега URL в файле ниже ищем две функции: sanitizeForDisplay и sanitizeForPreview и меняем внутри них местами: if ($allow_smileys == 1) { $text = $this->smiley($text); } и if ($allow_bbcode == 1) { $text = $this->xoopsCodeDecode($text, $allow_html); } т.е. первой должна идти обработка "bbcode" и только потом за ней "smileys" 8. Открываем файл: \www\class\xoopsform\formdhtmltextarea.php и добавляем вывод кнопки: PHP код:
P.S. Возможно что у вас он не сработает, это связано с тем, что файл "scripts.js" кешируется браузером, почистите кеш. P.S.S. Когда начал писать эту инструкцию, то я еще не знал что в версии 1.6 рони уже есть спойлер. ))) Посмотрел я его и мой больше понравился. ))) Хак by Zormax Всё для Sony Ericsson |
||||
|
|
Старожил
|
Тест и позырить:
http://mobilefree.ru/newbb_plus/view...=124378#124378 Всё для Sony Ericsson |
||||
|
|
Младший участник
|
блин, в версии 1.4 другая структура, сложности вызвал фаел scripts.js (в версии 1.4 это formdhtmltextarea.js.php ). Zormax посматри пожалуста, как там функции написать.
Обитатели Рая - это те, кто удостоился чести бормотать молитвы и восхваления Господу на самое его ухо . Безусловно, там климат мягче. Зато в Аду общество интереснее. |
||||
|
|
Старожил
|
У тебя еще есть какие JS файлы в папке include и в class\xoopsform
? попробуй туда запихнуть обе функции. не забудь кеш чистить, а то может оно работает но кешировать старое будет. Всё для Sony Ericsson |
||||
|
|
Младший участник
|
не дело не в этом, версия старая, нужно как-то по другому функции строить
Обитатели Рая - это те, кто удостоился чести бормотать молитвы и восхваления Господу на самое его ухо . Безусловно, там климат мягче. Зато в Аду общество интереснее. |
||||
|
|
Старожил
|
Еще раз повторяю, перечислите какие есть JS файлы в папках include и class\xoopsform
Всё для Sony Ericsson |
||||
|
|
Младший участник
|
include:
calendar.js layersmenu.js sha1.js class\xoopsform: formdhtmltextarea.js.php - это впринцепи и есть эквивалент scripts.js, в рунск 1.4. В этом файле записаны все bb коды. Обитатели Рая - это те, кто удостоился чести бормотать молитвы и восхваления Господу на самое его ухо . Безусловно, там климат мягче. Зато в Аду общество интереснее. |
||||
|
|
Старожил
|
Всё для Sony Ericsson |
||||
|
|
Младший участник
|
с самого начала написал что именно это и сделал, но неработает, ибо там построение функции какоето другое, немагу разобраться.
Обитатели Рая - это те, кто удостоился чести бормотать молитвы и восхваления Господу на самое его ухо . Безусловно, там климат мягче. Зато в Аду общество интереснее. |
||||
|
|
Старожил
|
файл в студию
Всё для Sony Ericsson |
||||
|
|
|
|
|
Powered by: vBulletin Version 3.0 Copyright ©2000-2025, Jelsoft Enterprises Ltd. |
Все разделы прочитаны - Руководство форума - Архив - Вверх |