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

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

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


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


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

Сообщений 261 страница 280 из 328

261

Aleks-Maks написал(а):

В цитату. А как это сделать с помощью css, установить высоту и автоскролл - ни разу не понятно.

В HTML верх

<style>
.punbb .post-content .quote-box {
max-height:450px;
overflow-y:auto;
}
</style>

Отредактировано Deff (Сб, 17 Мар 2012 20:17:22)

0

262

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

Caligula
всё ещё актуально? или уже разобрался?

Romych, пока ещё актуально. жду пока RUSSIAN_GOBLIN напишет новый скрипт спойлера.
твой вариант из 231 сообщения я пробовал, однако с ним у меня вообще виснет весь форум. например, открываю тему, где уже имеется спойлер, а тема грузится до бесконечности - "отправка запроса", и даже на главной странице уже ничего нельзя делать. хорошо ещё получилось заново зайти на форум и в админке убрать этот скрипт. я не знаю, но у меня он абсолютно не работает.

0

263

Deff, спасибо! Все работает. Доведено до оптимального качества и не нуждается в каких-то дополнениях/доработках/переделках. Странно, что скролл не был до сих пор выделен в отдельную тему. Попробую исправить эту несправедливость.  :blush:

0

264

Не, не получается пока исправить эту несправедливость. Не имею прав создания темы.
Но скролл получается вот такой:

http://uploads.ru/t/8/O/y/8OyXe.png

Лучше и не надо.  :cool:

0

265

Aleks-Maks написал(а):

Лучше и не надо.

:D Двусмысленно

0

266

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

:D  Двусмысленно

Объясню... У меня стоит Ваш спойлер, в версии RUSSIAN_GOBLINа из поста № 230.
Я протестил скролл не только в цитате, но и в спойлере. Так вот, в спойлере весь текст тоже оказался заскролленым, с прокруткой. Даже окошко оказалось шире. Проверял на большом тексте из скрина выше (правилах форума техподдержки).

Как говорится, от добра добра не ищут. И если что-то работает (а от себя добавлю, что хорошо работает), то переделывать не надо. Пусть так и остается!  :cool:

Отредактировано Aleks-Maks (Сб, 17 Мар 2012 21:39:04)

+1

267

Итак, не смотря на болезнь я занялся спойлером. И сделал его альфа-версию :)
Вобщем остался один мелкий глючок: он не работает между биби-кодов кода, т.е. в этом случае:

[code.]тут какой-то код[/code.]

описание

тут скрытое спойлером

[code.]и тут тоже какой-то код[/code.]

В HTML-верх это:

Код:
<style type="text/css">
#button-spoiler_r {background:url('http://img706.imageshack.us/img706/1943/spoiler.gif') no-repeat center !important;}
</style>
<script type="text/javascript">
FORUM.set('editor.spoiler_r', { name : 'Спойлер', onclick :  function() {tag_spolier()} } );
</script>

Если нужнен спойлер с описанием только открытой кнопки, в HTML-низ это:

Код:
<script type="text/javascript">
function tag_spolier()
{var FoundErrors = '';
var enterTITLE = prompt("Введите описание открытой кнопки", 'Спойлер');
bbcode('[spoiler='+enterTITLE+']','[/spoiler]');}

$(function(){
$('input.spoiler-button').live('click',function(){
$(this).parents('div.spoiler-box:first').find('blockquote.quote-box:first').toggle('normal');
var a = $(this).attr('value');$(this).attr('value',$(this).attr('id'));$(this).attr('id',a); });
});

var num_spl=0, num_spl2=0, post=0;
$('div.post-content').each(function (){
text = $(this).html(); post++;
if($('div.post-content').length==post-1) return false;
num_spl=text.indexOf("[/spoiler]"); num_spl2=num_spl;
if(num_spl != -1){

while(num_spl--){
text=text.replace(/<pre>([\s\S]*?)\[spoiler=(.*?)\]([\s\S]*?)\[\/spoiler\]([\s\S]*?)<\/pre>/gim,"<pre>$1[*spoiler=$2]$3[*spoiler]$4</pre>");}

text=text.replace(/\[spoiler=(.*?)\]([\s\S]*?)\[\/spoiler\]/gim, "<div class='spoiler-box' style='padding:1px;background: none;border: 0;'><input id='Закрыть' class='spoiler-button' style='width:auto;font-size:11px; margin:0; cursor: pointer; font-weight:bold' type='button' value='$1'><blockquote class='quote-box' style='display:none; width:auto;margin:0;'>$2</blockquote></div>");

while(num_spl2--){
text=text.replace(/<pre>([\s\S]*?)\[\*spoiler=(.*?)\]([\s\S]*?)\[\*spoiler\]([\s\S]*?)<\/pre>/gim,"<pre>$1[spoiler=$2]$3[/spoiler]$4</pre>");}

$(this).html(text);
}
}); 
</script>

Если нужнен спойлер с описанием обеих кнопок, в HTML-низ это:

Код:
<script type="text/javascript">
function tag_spolier()
{var FoundErrors = '';
var enterTITLE = prompt("Введите описание закрытой кнопки", 'Спойлер');
var enterTITLE2 = prompt("Введите описание открытой кнопки", 'Закрыть');
bbcode('[spoiler='+enterTITLE+'|'+enterTITLE2+']','[/spoiler]');}
$(function(){
$('input.spoiler-button').live('click',function(){
$(this).parents('div.spoiler-box').find('blockquote.quote-box').toggle('normal');
var a = $(this).attr('value');$(this).attr('value',$(this).attr('id'));$(this).attr('id',a); });});
var num_spl=0, num_spl2=0, post=0;
$('div.post-content').each(function () {
text = $(this).html(); post++;
if($('div.post-content').length==post-1) return false;
num_spl=text.indexOf("[/spoiler]"); num_spl2=num_spl;
if(num_spl != -1){

while(-1+num_spl--){
text=text.replace(/<pre>([\s\S]*?)\[spoiler=(.*?)\|(.*?)\]([\s\S]*?)\[\/spoiler\]([\s\S]*?)<\/pre>/gim,"<pre>$1[*spoiler=$2|$3]$4[*spoiler]$5</pre>");}

text=text.replace(/\[spoiler=(.*?)\|(.*?)\]([\s\S]*?)\[\/spoiler\]/gim, "<div class='spoiler-box' style='padding:1px;background: none;border: 0;'><input id='$2' class='spoiler-button' style='width:auto;font-size:11px; margin:0; cursor: pointer; font-weight:bold' type='button' value='$1'><blockquote class='quote-box' style='display:none; width:auto;margin:0;'>$3</blockquote></div>");

while(num_spl2--){
text=text.replace(/<pre>([\s\S]*?)\[\*spoiler=(.*?)\|(.*?)\]([\s\S]*?)\[\*spoiler\]([\s\S]*?)<\/pre>/gim,"<pre>$1[spoiler=$2|$3]$4[/spoiler]$5</pre>");}

$(this).html(text);
}
}); 
</script>

Romych и Deff, посмотрите на код и оцените безумную идею, благодаря которой, спойлер работает почти как надо  :idea:

0

268

RUSSIAN_GOBLIN
:D А вложенность работает ? Как у меня в  моём спойлере (Или используя код в посте 240 ?

+1

269

Deff, блин :( Вложенность не проверял. Сосредоточился только работе вне бб-кода кода и не работе в нутри блока кода.
Но и там не достиг успеха. В текущем варианте остался выбор - или будет работать между блоков кода и в блоке кода будет не рабоать только первый спойлер, или в блоке кода не будут работать любое кол-во спойлеров, но между блоками кода - аут.

Завтра перепишу код :)

0

270

RUSSIAN_GOBLIN
Ти можешь всунуть чисто в новосозданный тег >

<GOBLIN_TAG class(wlogennost_N>Тут что-то </GOBLIN_TAG>

и перепарсить потом в  jQuery

Отредактировано Deff (Ср, 21 Мар 2012 20:15:45)

0

271

Aleks-Maks написал(а):

Спасибо Deffу за его вариант спойлера   
Спасибо RUSSIAN_GOBLINу за его вариант спойлера 
Спасибо Romychу за его вариант спойлера

Тут у каждого программиста есть свой вариант спойлера :)

+1

272

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

Тут у каждого программиста есть свой вариант спойлера  :)

Готов сказать: "Спасибо каждому программисту за его вариант спойлера".  :) А де смотреть? Я все-все-все  посмотрю,  :yep: но деффовский, в итоге оставлю  :flirt:

0

273

Aleks-Maks написал(а):

но деффовский, в итоге оставлю  :flirt:

у меня тоже он стоит.. и на многих форумах, где я сижу, стоит он же, не понимаю, зачем его переделывать?

0

274

Jem` написал(а):

у меня тоже он стоит.. и на многих форумах, где я сижу, стоит он же, не понимаю, зачем его переделывать?

То RUSSIAN_GOBLIN свой переделывает. От говорил же, от добра добра не ищут. Посмотрел спойлер свеженький RUSSIAN_GOBLINа с поста № 267, так он ваще не работает у мну.  :no:  Зато двухвариантный с поста № 224 работает как часы.  :D

Как грится, нет предела совершенствованию. Так сказать, творческая неудовлетворенность (шо тоже хорошо :yep:  )

+1

275

Финальная версия спойлера:

Это в HTML-верх:

Код:
<style type="text/css">
#button-spoiler_r {background:url('http://img706.imageshack.us/img706/1943/spoiler.gif') no-repeat center !important;}
</style>
<script type="text/javascript">
FORUM.set('editor.spoiler_r', { name : 'Спойлер', onclick :  function() {tag_spolier()} } );

function enSpoiler(){
$('div.code-box').each(function (){
codehtml=$(this).html();
code = codehtml.indexOf("[/spoiler]");
if(code==-1) return true;
while(code--){$(this).html($(this).html().replace(/\[spoiler/,"[*spoiler").replace(/\[\/spoiler\]/,"[+spoiler]"));}
});}

function deSpoiler(){
$('div.code-box').each(function (){
codehtml=$(this).html();
code = codehtml.indexOf("[+spoiler]");
if(code==-1) return true;
while(code--){$(this).html($(this).html().replace(/\[\*spoiler/,"[spoiler").replace(/\[\+spoiler\]/,"[/spoiler]"));}
});}
</script>

Если нужен спойлер с описанием только открытой кнопки, в HTML-низ это:

Код:
<script type="text/javascript">
var code=0, codehtml='', sptext='';

$(function(){
$('input.spoiler-button').live('click',function(){
$(this).parents('div.spoiler-box:first').find('blockquote.quote-box:first').toggle('normal');
var a = $(this).attr('value');$(this).attr('value',$(this).attr('id'));$(this).attr('id',a);});
});

function tag_spolier(){var FoundErrors = '';
var enterTITLE = prompt("Введите описание открытой кнопки", 'Спойлер');
if(enterTITLE!=null)bbcode('[spoiler='+enterTITLE+']','[/spoiler]');}

function hideSpoiler(){
$('div.post-content').each(function (){
sptext = $(this).html();
if(sptext.indexOf("[/spoiler]")==-1) return true;
sptext=sptext.replace(/\[spoiler=(.*?)\]/gim, "<div class='spoiler-box' style='padding:1px;background: none;border: 0;'><input id='Закрыть' class='spoiler-button' style='width:auto;font-size:11px; margin:0; cursor: pointer; font-weight:bold' type='button' value='$1'><blockquote class='quote-box' style='display:none; width:auto;margin:0;'>").replace(/\[\/spoiler\]/gim, "</blockquote></div>");
$(this).html(sptext);
});
deSpoiler();
}

enSpoiler();
hideSpoiler();
</script>

Если нужен спойлер с описанием обеих кнопок, в HTML-низ это:

Код:
<script type="text/javascript">
var code=0, codehtml='', sptext='';

$(function(){
$('input.spoiler-button').live('click',function(){
$(this).parents('div.spoiler-box:first').find('blockquote.quote-box:first').toggle('normal');
var a = $(this).attr('value');$(this).attr('value',$(this).attr('id'));$(this).attr('id',a);});
});

function tag_spolier(){var FoundErrors = '';
var enterTITLE = prompt("Введите описание закрытой кнопки", 'Спойлер');
var enterTITLE2 = prompt("Введите описание открытой кнопки", 'Закрыть');
if(enterTITLE!=null)bbcode('[spoiler='+enterTITLE+'|'+enterTITLE2+']','[/spoiler]');}

function hideSpoiler(){
$('div.post-content').each(function (){
sptext = $(this).html();
if(sptext.indexOf("[/spoiler]")==-1) return true;
sptext=sptext.replace(/\[spoiler=(.*?)\|(.*?)\]/gim, "<div class='spoiler-box' style='padding:1px;background: none;border: 0;'><input id='$2' class='spoiler-button' style='width:auto;font-size:11px; margin:0; cursor: pointer; font-weight:bold' type='button' value='$1'><blockquote class='quote-box' style='display:none; width:auto;margin:0;'>").replace(/\[\/spoiler\]/gim, "</blockquote></div>");
$(this).html(sptext);
});
deSpoiler();
}

enSpoiler();
hideSpoiler();
</script>

Отредактировано RUSSIAN_GOBLIN (Чт, 22 Мар 2012 21:28:05)

+1

276

RUSSIAN_GOBLIN, отлично! всё работает без ошибок. старые спойлеры также отображаются без проблем.

0

277

Поставил новый спойлер, пропала кнопка "свернутый текст"
http://totenturm.rusff.ru/

0

278

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

Поставил новый спойлер, пропала кнопка "свернутый текст"

Ставить спойлер скриптом больше нет необходимости. Удалите его.

+2

279

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

Ставить спойлер скриптом больше нет необходимости. Удалите его.

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

Жаль ....у меня он красивый был.А этот с плюсиком  :x

Отредактировано ruslan_as (Пт, 23 Мар 2012 10:33:34)

0

280

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

Жаль ....у меня он красивый был.А этот с плюсиком

Надо просто с css повозиться. На самом деле реальнео сделать это так, что бы это выглядело как кнопка над цитатой.

0


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