В цитату. А как это сделать с помощью css, установить высоту и автоскролл - ни разу не понятно.
В HTML верх
<style>
.punbb .post-content .quote-box {
max-height:450px;
overflow-y:auto;
}
</style>
Отредактировано Deff (Сб, 17 Мар 2012 20:17:22)
| Единый форум поддержки | 
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » Единый форум поддержки » Архив » Обновленный спойлер
В цитату. А как это сделать с помощью css, установить высоту и автоскролл - ни разу не понятно.
В HTML верх
<style>
.punbb .post-content .quote-box {
max-height:450px;
overflow-y:auto;
}
</style>
Отредактировано Deff (Сб, 17 Мар 2012 20:17:22)
Caligula
всё ещё актуально? или уже разобрался?
Romych, пока ещё актуально. жду пока RUSSIAN_GOBLIN напишет новый скрипт спойлера.
твой вариант из 231 сообщения я пробовал, однако с ним у меня вообще виснет весь форум. например, открываю тему, где уже имеется спойлер, а тема грузится до бесконечности - "отправка запроса", и даже на главной странице уже ничего нельзя делать. хорошо ещё получилось заново зайти на форум и в админке убрать этот скрипт. я не знаю, но у меня он абсолютно не работает.
Deff, спасибо! Все работает. Доведено до оптимального качества и не нуждается в каких-то дополнениях/доработках/переделках. Странно, что скролл не был до сих пор выделен в отдельную тему. Попробую исправить эту несправедливость.  
Лучше и не надо.
  Двусмысленно
 Двусмысленно
Двусмысленно
Объясню... У меня стоит Ваш спойлер, в версии RUSSIAN_GOBLINа из поста № 230.
Я протестил скролл не только в цитате, но и в спойлере. Так вот, в спойлере весь текст тоже оказался заскролленым, с прокруткой. Даже окошко оказалось шире. Проверял на большом тексте из скрина выше (правилах форума техподдержки).
Как говорится, от добра добра не ищут. И если что-то работает (а от себя добавлю, что хорошо работает), то переделывать не надо. Пусть так и остается!  
Отредактировано Aleks-Maks (Сб, 17 Мар 2012 21:39:04)
Итак, не смотря на болезнь я занялся спойлером. И сделал его альфа-версию 
Вобщем остался один мелкий глючок: он не работает между биби-кодов кода, т.е. в этом случае:
[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, посмотрите на код и оцените безумную идею, благодаря которой, спойлер работает почти как надо  
RUSSIAN_GOBLIN
  А вложенность работает ? Как у меня в  моём спойлере (Или используя код в посте 240 ?
 А вложенность работает ? Как у меня в  моём спойлере (Или используя код в посте 240 ?
Deff, блин  Вложенность не проверял. Сосредоточился только работе вне бб-кода кода и не работе в нутри блока кода.
 Вложенность не проверял. Сосредоточился только работе вне бб-кода кода и не работе в нутри блока кода.
Но и там не достиг успеха. В текущем варианте остался выбор - или будет работать между блоков кода и в блоке кода будет не рабоать только первый спойлер, или в блоке кода не будут работать любое кол-во спойлеров, но между блоками кода - аут.
Завтра перепишу код 
RUSSIAN_GOBLIN
Ти можешь всунуть чисто в новосозданный тег > 
<GOBLIN_TAG class(wlogennost_N>Тут что-то </GOBLIN_TAG>
и перепарсить потом в jQuery
Отредактировано Deff (Ср, 21 Мар 2012 20:15:45)
Спасибо Deffу за его вариант спойлера
Спасибо RUSSIAN_GOBLINу за его вариант спойлера
Спасибо Romychу за его вариант спойлера
Тут у каждого программиста есть свой вариант спойлера 
Тут у каждого программиста есть свой вариант спойлера
Готов сказать: "Спасибо каждому программисту за его вариант спойлера".   А де смотреть? Я все-все-все  посмотрю,
 А де смотреть? Я все-все-все  посмотрю,   но деффовский, в итоге оставлю
 но деффовский, в итоге оставлю  
но деффовский, в итоге оставлю
у меня тоже он стоит.. и на многих форумах, где я сижу, стоит он же, не понимаю, зачем его переделывать?
у меня тоже он стоит.. и на многих форумах, где я сижу, стоит он же, не понимаю, зачем его переделывать?
То RUSSIAN_GOBLIN свой переделывает. От говорил же, от добра добра не ищут. Посмотрел спойлер свеженький RUSSIAN_GOBLINа с поста № 267, так он ваще не работает у мну.   Зато двухвариантный с поста № 224 работает как часы.
  Зато двухвариантный с поста № 224 работает как часы.   
 
Как грится, нет предела совершенствованию. Так сказать, творческая неудовлетворенность (шо тоже хорошо  )
  )
Финальная версия спойлера:
Это в 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)
RUSSIAN_GOBLIN, отлично! всё работает без ошибок. старые спойлеры также отображаются без проблем.
Поставил новый спойлер, пропала кнопка "свернутый текст"
http://totenturm.rusff.ru/
Поставил новый спойлер, пропала кнопка "свернутый текст"
Ставить спойлер скриптом больше нет необходимости. Удалите его.
Ставить спойлер скриптом больше нет необходимости. Удалите его.
Жаль ....у меня он красивый был.А этот с плюсиком

Отредактировано ruslan_as (Пт, 23 Мар 2012 10:33:34)
Жаль ....у меня он красивый был.А этот с плюсиком
Надо просто с css повозиться. На самом деле реальнео сделать это так, что бы это выглядело как кнопка над цитатой.
| Не получается установить спойлер. | Корзина | Вс, 10 Янв 2010 | 
| Спойлеры. | Корзина | Пт, 11 Июн 2010 | 
| Спойлер | Корзина | Ср, 30 Мар 2011 | 
| Спойлер | Корзина | Ср, 22 Июн 2011 | 
| Поставил скрипт спойлера и форум "сломался" | Корзина | Чт, 14 Июл 2011 | 
Вы здесь » Единый форум поддержки » Архив » Обновленный спойлер