Перейти к контенту

Рекомендуемые сообщения

кстати да, я тут подумал как бы на аякс ее подвесить

тоже думал над этим... но тут только добавлением бб-кода как это сделано у меня не обойтись...

Ссылка на комментарий
Поделиться на других сайтах

  • Ответы 132
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

Нужно вешать всю подпись целиком на аякс, либо как xRay говорит делать, например выводить подпись яваскриптом, тогда не надо будет несколько раз её в коде упоминать (:
Ссылка на комментарий
Поделиться на других сайтах

  • 1 месяц спустя...
Напишите готовый код спойлера, такой как на торрентсах. Заранее спасибо.

А то из всей этой темы ничего не понятно.

ОК, напишу для IPB 1.3 + mJournal 1.05

Посмотреть в действии можно здесь: http://vesvalo.net/journal.php?user=1&comm=2620

 

Я решил не создавать новый ББ-код, а переделать под свои нужды кнопку вставки звука, все равно вставка звука у меня запрещена и в парсере отключено.

 

1. Перерисовал кнопку звука: http://vesvalo.net/html/UBBC/sound.gif

 

2. ubbc.js

Найти дважды:

$txt = preg_replace( "#\[more\](.+?)\[/more\]#is", "<!--spoilerstart--><div class='sp-wrap'><div class='sp-head-wrap'><div class='sp-head folded clickable'><b><u>Свернутый текст</u></b></div></div><div class='sp-body'><div class='sp-content'>\\1</div></div></div><!--spoilerstend-->", $txt );
$txt = preg_replace( "#\[more=(.*?)\](.*?)\[\/more\]#is", "<!--spoilerstart--><div class='sp-wrap'><div class='sp-head-wrap'><div class='sp-head folded clickable'><b><u>\\1</u></b></div></div><div class='sp-body'><div class='sp-content'>\\2</div></div></div><!--spoilerstend-->", $txt );
$txt = preg_replace( "#\[more\](.+?)\[/more\]#is", "<!--spoilerstart--><div class='sp-wrap'><div class='sp-head-wrap'><div class='sp-head folded clickable'><b><u>Свернутый текст</u></b></div></div><div class='sp-body'><div class='sp-content'>\\1</div></div></div><!--spoilerstend-->", $txt );
$txt = preg_replace( "#\[more=(.*?)\](.*?)\[\/more\]#is", "<!--spoilerstart--><div class='sp-wrap'><div class='sp-head-wrap'><div class='sp-head folded clickable'><b><u>\\1</u></b></div></div><div class='sp-body'><div class='sp-content'>\\2</div></div></div><!--spoilerstend-->", $txt );

А после кода:

$txt = preg_replace( "#(<!--spoilerstart--><div class='sp-wrap'><div class='sp-head-wrap'><div class='sp-head folded clickable'><b><u>Свернутый текст</u></b></div></div><div class='sp-body'><div class='sp-content'>)(.+?)(</div></div></div><!--spoilerstend-->)#is", "\[more\]\\2\[\/more]", $txt );
$txt = preg_replace( "#(<!--spoilerstart--><div class='sp-wrap'><div class='sp-head-wrap'><div class='sp-head folded clickable'><b><u>)(.+?)(</u></b></div></div><div class='sp-body'><div class='sp-content'>)(.+?)(</div></div></div><!--spoilerstend-->)#is", "\[more=\\2\]\\4\[/more\]", $txt );
$txt = preg_replace( "#(<!--spoilerstart--><div class='sp-wrap'><div class='sp-head-wrap'><div class='sp-head folded clickable'><b><u>Свернутый текст</u></b></div></div><div class='sp-body'><div class='sp-content'>)(.+?)(</div></div></div><!--spoilerstend-->)#is", "\[more\]\\2\[\/more]", $txt );
$txt = preg_replace( "#(<!--spoilerstart--><div class='sp-wrap'><div class='sp-head-wrap'><div class='sp-head folded clickable'><b><u>)(.+?)(</u></b></div></div><div class='sp-body'><div class='sp-content'>)(.+?)(</div></div></div><!--spoilerstend-->)#is", "\[more=\\2\]\\4\[/more\]", $txt );

 

 

5.

В стили через админку добавил описания классов:

.sp-body	  { display: none; font-weight: normal; background: #F5F5F5; border-top-width: 0; }
.clickable { cursor: pointer; }
.sp-content{border: 1px solid Gray;  margin-left: 10px;}
.folded { display: block;
background: transparent url(style_images/<#IMG_DIR#>/plus.gif) no-repeat left center; padding-left: 14px; }
.unfolded { display: block;
background: transparent url(style_images/<#IMG_DIR#>/minus.gif) no-repeat left center; padding-left: 14px; }

 

 

6. И файл skin_jinfo.php (для журналов):

После кода:

<script language="javascript" type="text/javascript"><!--
document.cookie="journal=1; path=/";
//--></script>

Добавить:

<script language="JavaScript" type="text/javascript" src="./html/quote.js"></script>
<style>
.sp-body	  { display: none; font-weight: normal; background: #F5F5F5; border-top-width: 0; }
.clickable { cursor: pointer; }
.sp-content{border: 1px solid Gray;  margin-left: 10px;}
.folded { display: block;
background: transparent url(style_images/1/plus.gif) no-repeat left center; padding-left: 14px; }
.unfolded { display: block;
background: transparent url(style_images/1/minus.gif) no-repeat left center; padding-left: 14px; }
</style>

 

 

7.

Добавить в style_images/х/ изображения плюсика и минусика:

http://vesvalo.net/style_images/1/plus.gif и http://vesvalo.net/style_images/1/minus.gif

 

 

FatCat, а нельзя ли как-нибудь снизить лаги в IE 7? :D

Ссылка на комментарий
Поделиться на других сайтах

FatCat, а нельзя ли как-нибудь снизить лаги в IE 7? :D

У меня нет ИЕ7, не встает зараза на w2k.

А что за лаги?

Ссылка на комментарий
Поделиться на других сайтах

А что за лаги?

В IE7 прокрутка тормозит. :) В опере все нормально, в мозиле так себе. :D

Хотя мне почему то кажется что что то со скриптом, т.к. на торрентс.ру у меня нормально. :)

2Arhar, спасибо! Вот только ставил я этот скрипт только потому что он так "крутится". ;) А вообще он у меня даже не на форуме, на сайте. :)

Ссылка на комментарий
Поделиться на других сайтах

  • 1 год спустя...

можно для 2.3.6 более подробно FAQ?

 

к сожалению в этом сообщении, написано для IPB 1.3

 

пункт 2 - не вижу у себя такого файла ubbc.js и кнопки звука

 

пункт 3 - файл quote.js тоже не нахожу, и что делать с двумя кодами приведенными?

 

В парсере перед кодом
- к сожалению тоже не понял, где это

 

пункт 5

это в > Админцентр > Список стилей > Стили > Главный стиль IPB > IP.Board Pro > Изменить таблицу стилей (CSS расширенный режим) ?

 

в конце вставить с ковычками { } ?

Ссылка на комментарий
Поделиться на других сайтах

  • 1 год спустя...

Обнаружилась нехорошая бага регулярок.

Независимо от количества памяти у пхп, регулярки перестают работать если под маской (.+?) оказывается довольно длинный текст - в моем случае примерно 180 Кб текста были пределом, выше которого регулярка просто давала белый экран без сообщений об ошибках.

 

Пока не дошли руки все ББ-коды перевести с регулярок на сабстринги, но для этого кода сделал "заплатку":

if(stristr($txt,"[more"))
{
$old_txt = $txt;
while(
	stristr($old_txt,"[more") 
	and stristr($old_txt,"[/more]")
	and strpos($old_txt,"[more") !== false
	and strpos($old_txt,"[/more]") !== false
	and strpos($old_txt,"[more") < strpos($old_txt,"[/more]")
)
{
	$txt = "";
	$txt = substr($old_txt,0,strpos($old_txt,"[more"))."<!--spoilerstart--><div class='sp-wrap'><div class='sp-head-wrap'><div class='sp-head folded clickable'><b><u>";
	$old_txt = substr($old_txt,(strpos($old_txt,"[more")+strlen("[more")));
	if(substr($old_txt,0,1) == "=")$txt .= substr($old_txt,1,(strpos($old_txt,"]")-1));
	else $txt .= "Свернутый текст";
	$old_txt = substr($old_txt,(strpos($old_txt,"]")+1));
	$txt .= "</u></b></div></div><div class='sp-body'><div class='sp-content'>";

	$txt .= substr($old_txt,0,strpos($old_txt,"[/more]"))."</div></div></div><!--spoilerstend-->";

	$old_txt = substr($old_txt,(strpos($old_txt,"[/more]")+strlen("[/more]")));
	$txt .= $old_txt;
	$old_txt = $txt;
}
}

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.