Единый форум поддержки

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Единый форум поддержки » Архив » Обновленный спойлер


Обновленный спойлер

Сообщений 201 страница 220 из 328

201

Deff
Тема ваще зачетная, много где видел такое, все забывал тут написать)

Deff написал(а):

ток чот завис с кодированием самого сообщения

поторопись) я жду его)) сразу себе поставлю  http://mybb.ru/f/collection/0226.gif
когда думаешь доделать?)

Отредактировано kosoy (Чт, 8 Мар 2012 12:40:25)

0

202

RUSSIAN_GOBLIN написал(а):

В связи с последними изменениями в форме ответа,
выкладываю единственный (на текущий момент) безглючный скрипт спойлера

описание открытой кнопки излишне, имхо. гораздо проще прописать в описание "Закрыть" как стандарт.

у меня на данный момент имеется следующий скрипт спойлера, который без проблем работает:

Код:
<!--Spoiler-->
<script type="text/javascript">
function tag_spolier()
{var FoundErrors = '';
var enterTITLE = prompt("Введите описание скрытого под спойлером текста", 'Спойлер');
bbcode('[spoiler='+enterTITLE+']','[/spoiler]');}
$(function(){
$("div.quote-box > cite > input.spoiler-button").click(function(){
$(this).parents("div.quote-box").find("blockquote.quote-box").toggle("normal");
var a = $(this).attr('value');$(this).attr('value',$(this).attr('id'));$(this).attr('id',a);
 });    });
$('td#button-code').before('<td style=\'background-image:url("http://[b]ссылка[/b].ru/uploads/000a/a8/84/75107-1.png")\' onclick="tag_spolier()"><img src="/i/blank.gif" alt="Спойлер"></td>');
$("div.post-content").map(function () {
text = $(this).html();
if(text.indexOf("[/spoiler]" ) != -1) {
spoilerr = /\[spoiler=(.*?)\]([^`]*?)\[\/spoiler\]/gi
$(this).html(text.replace(spoilerr, "<div class='quote-box' style='padding:1px;background: none;border: 0;'><cite style='width:100%;margin:0;'><input id='close' class='spoiler-button' style='width:140px;font-size:10px; margin:0; cursor: pointer; font-weight:bold' type='button' value='$1'></cite><blockquote class='quote-box' style='display:none; width:97%;border: 1px solid #88b5df;margin:0;'>$2</blockquote></div>")) 
} }); 
</script>

однако, после последних нововведений, кнопка спойлера в форме ответа сдвинулась в сторону:
http://uploads.ru/t/C/y/H/CyHdV.jpg
можно ли это как-то исправить? я подозреваю, что нужно изменить позицию кнопки, потому прошу указать в вышеуказанном скрипте, какие параметры нужно изменить.

ещё заметил, что всплывающее описание кнопки "Спойлер" при наведении курсора отсутствует. можно ли это добавить в скрипт?

Отредактировано Caligula (Чт, 8 Мар 2012 16:55:29)

0

203

Caligula написал(а):

можно ли это как-то исправить? я подозреваю, что нужно изменить позицию кнопки, потому прошу указать в вышеуказанном скрипте, какие параметры нужно изменить.

вот со всеми исправлениями

Код:
<!--Spoiler-->
<script type="text/javascript">
function tag_spolier()
{var FoundErrors = '';
var enterTITLE = prompt("Введите описание скрытого под спойлером текста", 'Спойлер');
bbcode('[spoiler='+enterTITLE+']','[/spoiler]');}
$(function(){
$("div.quote-box > cite > input.spoiler-button").click(function(){
$(this).parents("div.quote-box").find("blockquote.quote-box").toggle("normal");
var a = $(this).attr('value');$(this).attr('value',$(this).attr('id'));$(this).attr('id',a);
 });    });
$('td#button-code').before('<td style=\'background-image:url("http://[b]ссылка[/b].ru/uploads/000a/a8/84/75107-1.png");background-repeat:no-repeat;background-position:center center;\' onclick="tag_spolier()"><img src="/i/blank.gif" alt="Спойлер" title="Спойлер"></td>');
$('div.post-content p').map(function () {
text = $(this).html();
if(text.indexOf("[/spoiler]" ) != -1) {
spoilerr = /\[spoiler=(.*?)\]([^`]*?)\[\/spoiler\]/gi
$(this).html(text.replace(spoilerr, "<div class='quote-box' style='padding:1px;background: none;border: 0;'><cite style='width:100%;margin:0;'><input id='close' class='spoiler-button' style='width:140px;font-size:10px; margin:0; cursor: pointer; font-weight:bold' type='button' value='$1'></cite><blockquote class='quote-box' style='display:none; width:97%;border: 1px solid #88b5df;margin:0;'>$2</blockquote></div>")) 
} }); 
</script>

0

204

Romych, спасибо!

0

205

чтобы было понятно, что же всё таки менять в скрипте при смещении кнопки связанными с последними изменениями в форме ответа,
расскажу подробнее, что нужно добавить,
в каждой версии скрипта есть строка добавления кнопки, добавим центрирование фона кнопки

$('td#button-code').before('<td style=\'background-image:url("http://ссылка.ru/uploads/000a/a8/84/75107-1.png");background-repeat:no-repeat;background-position:center center;\' onclick="tag_spolier()"><img src="/i/blank.gif" alt="Спойлер" title="Спойлер"></td>');

+2

206

Romych написал(а):

вот со всеми исправлениями

при большом количестве текста, помещаемого под спойлер, он перестаёт работать. видны только теги спойлера в тексте, но кнопки спойлера нет, равно как и сама функция не выполняется.

ПС: проблема была и раньше, просто модератор мне об этом не сообщал, а сам я спойлером почти не пользовался.

Отредактировано Caligula (Пт, 9 Мар 2012 16:14:40)

0

207

Caligula, это из-за перевода строк в тексте скрываемом спойлером  :disappointed:
Следует использовать этот спойлер: Обновленный спойлер ;)

0

208

RUSSIAN_GOBLIN
Ну минус - нет расширений для надписей скрыть - показать
И нун где то найти тему - как заменить теги предыдущего(через цензуру) на данный(хотя есть вариант отсавить код воспроизведения от старого варианта - убрав ток кнопку

Отредактировано Deff (Пт, 9 Мар 2012 19:37:54)

0

209

Deff написал(а):

Ну минус - нет расширений для надписей скрыть - показать

Всм?

Deff написал(а):

И нун где то найти тему - как заменить теги предыдущего(через цензуру) на данный(хотя есть вариант отсавить код воспроизведения от старого варианта - убрав ток кнопку

Разве реально  через цензуру переделать предыдущие спойлеры под работу твоего?
Там же по-разному: через пользовательские bbcode и через особую цитату.

Оптимальный вариант - убрать кнопку старого спойлера.

Сейчас твой спойлер изучаю. Добился его не работоспособности  :D
Хочу переделать для Настройщика.

0

210

RUSSIAN_GOBLIN написал(а):

Разве реально  через цензуру переделать предыдущие спойлеры под работу твоего?

Да уже раз тридцать делал, где то есть две темы - де пояснял в подробностях
по простому тег [spoiler] заменяецо на тег [quote==Spoiler]через цензуру (но поскольку есть несколько вариантов - замен три  или четыре (задний тег один и тот жа

Отредактировано Deff (Пт, 9 Мар 2012 20:01:54)

0

211

Deff, а да... верно так можно сделать. Кстати если заменить =spoiler, на #spoiler - перестаёт работать, не скрыает. И не только при такой замене. Привередливый скрипт или jquery бастует(

0

212

RUSSIAN_GOBLIN
:crazyfun: Ну во первых можно и так, но равно перед ним сделано спецом - Поскольку такие ники -редкость, пусть ходят под спойлером - коли хотят
2 два знака равно - парсяцо легко

0

213

RUSSIAN_GOBLIN написал(а):

Caligula, это из-за перевода строк в тексте скрываемом спойлером

в общем-то иногда спойлер срабатывает и с большим текстом, а иногда нет. тестировался на идентичном тексте, где были переводы строк.

RUSSIAN_GOBLIN написал(а):

Следует использовать этот спойлер: Обновленный спойлер

теперь все теги полетят, т.е все предыдущие спойлеры на форуме коту под хвост.
с цензурой я примерно понял, однако там скорее всего нужен будет какой-нибудь дополнительный скрипт.

Deff написал(а):

Ну минус - нет расширений для надписей скрыть - показать

расширение нужно только для показать. как в скрипте выше.
не знаю, может я неправ, но я не вижу логики переименовывать кнопку скрыть. ясное дело, что когда хочешь снова закрыть спойлер, то возвращаешься назад. какое название ей можно прописывать? "хочу вернуться"?)) ну это же не имеет смысла. только лишнее всплывающее окно при создании спойлера, которое всё равно надо "перепрыгивать".

в общем, тот "старый" спойлер по своему принципу работает на славу, сам скрипт где-то в два раза короче аналогов и не разбит на хтмл-верх/низ (что очень удобно). только эта проблема с пропаданием спойлера время от времени мешает. а в идеале давно пора бы уже встроить это в движок.

0

214

Caligula написал(а):

при большом количестве текста, помещаемого под спойлер, он перестаёт работать.

с большим количеством символов всё ништяк, всё дело в том, что регулярка не справляется с пустыми строками (т.е. если текст разбит на абзацы, то начинаются проблемы),
об этой проблеме я знаю уже давно,
перепробовал кучу вариантов регулярок, но пока тщетно

0

215

Romych

Romych написал(а):

spoilerr = /\[spoiler=(.*?)\]([^`]*?)\[\/spoiler\]/gi

Ксать регулярку как то делал, ща найду выложу

Отредактировано Deff (Пт, 9 Мар 2012 20:57:40)

0

216

Romych
А чем тебе одинарная кавычка не понравилась ?
spoilerr = /\[spoiler=(.*?)\]([^`]*?)\[\/spoiler\]/ig
Если без вложенности - я бы сделал так,

spoilerr = /\[spoiler=(.*?)\]([\s\S]*?)\[\/spoiler\]/img

Если с вложенностью - то будет через функцию, если надо - выложу

Отредактировано Deff (Пт, 9 Мар 2012 21:22:38)

0

217

Deff написал(а):

А чем тебе одинарная кавычка не понравилась ?
spoilerr = /\[spoiler=(.*?)\]([^`]*?)\[\/spoiler\]/ig

это как раз из-за несрабатывания традиционной комбинации - (.*?) с  большим количеством символов (большими текстами) в ходе экспериментов пришёл к тому, что работа нормализуется, если исключить какой-нибудь символ, а эта одинарная кавычка находящаяся на одной клавише с буквой Ё (действительно практически никем не применяется) ))

0

218

Romych
точка не учитывает переводы строк
учитывает ток [\s\S] и без img парсицо лишь до конца текущего тега p

Отредактировано Deff (Пт, 9 Мар 2012 21:28:40)

0

219

Romych
Ксать не пойму  накой заморачивацо регулярками когда можно стразу заменить
/\[spoiler=(.*?)\]/img на <span class=spoiler alt='$1'>

B птом перепарсить span.spoiler  на то что нун ?

0

220

Deff написал(а):

учитывает ток [\s\S] и без img парсицо лишь до конца текущего тега p

Deff
я не настолько глуп, как ты думаешь,
ещё раз повторяю, я перепробовал множество вариантов регулярок, в том числе и с флагом m, и такой вариант тоже

spoil = /\[spoiler=(.*?)\|(.*?)\]([\s\S]*)\[\/spoiler\]/gim

не пашет с пустой строкой

0


Вы здесь » Единый форум поддержки » Архив » Обновленный спойлер