Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
Mr.KosS

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

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

02/18/11 13:06 (изменено)

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

Изменено пользователем Bonov

Поделиться сообщением


Ссылка на сообщение

Смотрите в сторону 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

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение
03/13/11 20:54 (изменено)

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

Изменено пользователем ljuter

Поделиться сообщением


Ссылка на сообщение

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

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

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение

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

 

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

Поделиться сообщением


Ссылка на сообщение

Посмотрел вчера новый файл из 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.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.х

Поделиться сообщением


Ссылка на сообщение
10/17/11 07:20 (изменено)

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

Изменено пользователем maza11

Поделиться сообщением


Ссылка на сообщение

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

Совершенно случайно наткнулся на эту тему и вспомнил, что давно хотел такой вид спойлера! 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}

 

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

Поделиться сообщением


Ссылка на сообщение

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

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

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

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