Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Mr.KosS

Модификация нескольких BBcode

Recommended Posts

Ritsuka, добавил Ваш код, немного модифицировав CCS (подкорректировал цвета и отступы, чтобы заголовок был посередине кнопки).

 

.bbc_spoiler { border: 1px solid #aaa; background: #ddd; position: relative; display: block; margin: 10px 0; }
.bbc_spoiler .bbc_spoiler { margin: 10px; }
.bbc_spoiler .bbc_spoiler_wrapper { border-left: 0px !important; border-right: 0px !important; border-bottom: 0px !important; padding: 0; border-top: 1px solid #aaa; background: #fff; }
.bbc_spoiler .bbc_spoiler_content { border: 0; padding: 5px; }
.bbc_spoiler .bbc_spoiler_show { position: absolute; left: 5px; top: 4px; border: 1px solid #666; background: #fff; margin: 0; padding: 0; color: #666; width: 16px; height: 16px; font-size: 14px; }
.bbc_spoiler .spoiler_title { padding: 2px 2px 2px 25px; display: block; }

Но заметил одну странность, не связанную с корректировками, поскольку проявляется и в Вашем варианте: в предварительном просмотре высота заголовка ниже, чем в отредактированном посте. В итоге заголовок уезжает относительно кнопки вверх в предварительном просмотре. Уже все отступы, по идее, перебрал, но то там криво, то там. С чем может быть связано? Скин стандартный.

 

post-42278-0-58501400-1298034387_thumb.pngpost-42278-0-88050300-1298034398_thumb.png

Edited by Bonov

Share this post


Link to post
Share on other sites

Смотрите в сторону css-свойства line-height. В стандартном скине для области сообщения стоит:

 

.post_body .post {
line-height: 150%;
}

 

А для области превью такого нет. Решение - добавить в паре мест (для надежности):

 

.bbc_spoiler { border: 1px solid #aaa; background: #ddd; position: relative; display: block; margin: 10px 0; line-height: 150% !important; }
.bbc_spoiler .spoiler_title { padding: 2px 2px 2px 25px; display: block; line-height: 150% !important; }

  • Upvote 1

Share this post


Link to post
Share on other sites

Да, действительно, теперь все ОК. Спасибо еще раз.

Share this post


Link to post
Share on other sites

а как сделать чтобы в стандартном исполнении вместо кнопки просто был текст? или как сделать кнопку прозрачной?

Edited by ljuter

Share this post


Link to post
Share on other sites

а как сделать чтобы в стандартном исполнении вместо кнопки просто был текст? или как сделать кнопку прозрачной?

Так здесь и есть вместо кнопки текст. Плюсик вообще не обязателен, спойлер открывается при нажатии на заголовок.

Share this post


Link to post
Share on other sites

Подскажите. На 322 встанут эти изменения?

Share this post


Link to post
Share on other sites

Вот вы тут сретесь.

 

Поправить спойлер можно так:

 

1. Отредактируйте BBCode (Look & Feel > Post Content > BBCode Management > Spoiler)

 

Use Option in tag? = Yes

Option is optional? = Yes

Custom BBCode Replacement:

<div class='bbc_spoiler'>
<input type='button' class='bbc_spoiler_show' value='+' /><span class='spoiler_title'>{option}</span>
<div class='bbc_spoiler_wrapper'><div class='bbc_spoiler_content' style="display:none;">{content}</div></div>
</div>

 

2. Отредактируйте языковые строки (Look & Feel > Manage Languages):

 

Найти строку по ключу "spoiler_show", установить перевод "+".

Найти строку по ключу "spoiler_hide", установить перевод "-".

 

3. Добавьте в CSS (ipb_styles.css) в конец строки

 

.bbc_spoiler { border: 1px solid #002F06; background: #D3D3D3; position: relative; display: block; margin: 10px 0; }
.bbc_spoiler .bbc_spoiler { margin: 10px; }
.bbc_spoiler .bbc_spoiler_wrapper { border-left: 0px !important; border-right: 0px !important; border-bottom: 0px !important; padding: 0; border-top: 1px solid #002F06; background: #fff; }
.bbc_spoiler .bbc_spoiler_content { border: 0; padding: 5px; }
.bbc_spoiler .bbc_spoiler_show { position: absolute; left: 5px; top: 5px; border: 1px solid #666; background: #fff; margin: 0; padding: 0; color: #666; width: 16px; height: 16px; font-size: 14px; }
.bbc_spoiler .spoiler_title { padding: 5px 5px 5px 25px; display: block; }

 

4. Отредактируйте файл /admin/sources/classes/bbcode/core.php

 

Найдите строки 2048-2049:

									if( $_bbcode['bbcode_useoption'] AND $_bbcode['bbcode_optional_option'] AND !$_option )
								{
									$_option	= $_content;

 

замените на:

									if( $_bbcode['bbcode_useoption'] AND $_bbcode['bbcode_optional_option'] AND !$_option )
								{
									$_option	= ($_tag == 'spoiler') ? 'Скрытый текст' : $_content;

 

5. Откройте на правку файл /public/js/ipb.js

 

Добавьте после строки 1198:

		ipb.delegate.register('.bbc_spoiler_show', ipb.global.toggleSpoiler);

 

Строку:

		ipb.delegate.register('.spoiler_title', function(e, label){$(label).up().down('.bbc_spoiler_show').click()} );

 

Сбросьте кэш постов и кэш браузера. Все выглядит как на картинке и работает как задумано.

 

Вот что получается, если не задавать название спойлеру:

 

post-46624-0-68838400-1317401736_thumb.png

Share this post


Link to post
Share on other sites

Пункт номер 4 решал эту задачу.

Share this post


Link to post
Share on other sites

Пункт номер 4 решал эту задачу.

 

У меня нет таких строчек в core.php

 

И теперь еще тег CODE изменился, без рамки даже...

Share this post


Link to post
Share on other sites

Пункт номер 4 решал эту задачу.

 

Так что посоветуете? Этих строк вообще нету.

Share this post


Link to post
Share on other sites

Посмотрел вчера новый файл из 3.2, порадовался. Переписали класс. Я как бы и не обещал, что заработает в 3.2 :)

 

Для 3.2 найти строки 1768-1776:

							//-----------------------------------------
						// No?  Then just grab it
						//-----------------------------------------

						else
						{
							$open_length	+= 1;
							$_option		= substr( $txt, $this->cur_pos + $open_length, (strpos( $txt, ']', $this->cur_pos ) - ($this->cur_pos + $open_length)) );
						}

 

Добавить после них:

							if(empty($_option) && $_tag == 'spoiler') {
							$_option = 'Скрытый текст';
						}

 

Не тестировал, но должно сработать)

 

 

А вообще надо отдельный тег-плагин сделать, чтобы заменял системный spoiler и содержал и стили, и шаблон, и дефолтное значение для опции...

Share this post


Link to post
Share on other sites

Посмотрел вчера новый файл из 3.2, порадовался. Переписали класс. Я как бы и не обещал, что заработает в 3.2 :)

 

Для 3.2 найти строки 1768-1776:

							//-----------------------------------------
						// No?  Then just grab it
						//-----------------------------------------

						else
						{
							$open_length	+= 1;
							$_option		= substr( $txt, $this->cur_pos + $open_length, (strpos( $txt, ']', $this->cur_pos ) - ($this->cur_pos + $open_length)) );
						}

 

Добавить после них:

							if(empty($_option) && $_tag == 'spoiler') {
							$_option = 'Скрытый текст';
						}

 

Не тестировал, но должно сработать)

 

 

А вообще надо отдельный тег-плагин сделать, чтобы заменял системный spoiler и содержал и стили, и шаблон, и дефолтное значение для опции...

 

У меня пока что 3.0.5.

Я до сих пор не знаю, что лучше поставить. 3.1.4 или 3.2.х

Share this post


Link to post
Share on other sites

а как добавить тег спойлер в форму ответа, у меня там его нету?

Edited by maza11

Share this post


Link to post
Share on other sites

Поправить спойлер можно так:

Совершенно случайно наткнулся на эту тему и вспомнил, что давно хотел такой вид спойлера! Ritsuka, большое спасибо! Всё работает!

 

 

Хотел бы ещё установить "Обтекание картинок".

 

А насчет обтекания текста и картинок - добавьте два новых кода:

 

2. CLEAR

 

Custom BBCode Tag = clear

Use Option in tag? = No

Custom BBCode Replacement:

<br class='clear' />

 

Пример использования:

[float=left][img][/float]Text[clear]Text

Код "FLOAT" создал, а вот "CLEAR" - не получилось.

 

Пишет: Сообщение Invision Power Board. Для не одиночных BB-кодов необходимо использовать тег {content}

 

Подскажите, пожалуйста, в чём может быть причина?

Share this post


Link to post
Share on other sites

Подскажите, пожалуйста, в чём может быть причина?

В том, что в настройках бибикода есть пункт "Single Tag Only". И нужно поставить Yes.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...