Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Опубликовано:

в общем суть вопроса в том можно ли изменить тег чтобы он был более функционален?

 

а именно требуется:

тезменить тег Изображания чтобы он работал так же как в трекер движке.

привер:

[img=right] и [img=left]

и чтобы размер изображения размещенного на форуме через url тег изменялся а при нажатии на него увеличивался до оригинального размера.

 

тег spoiler внешним видом вот таким:

750a0eb01347.jpg

тег даного споилега выглядит следующим образом:

 [spoiler]
		 вот такой спойлер нужен
[spoiler="Название spoiler-a"]
		 вместо "скрытый текст" можно вписать свое название
[/spoiler]
[/spoiler]

 

одним можно ли сделать теги img и spoiler такие как на трекере?

 

за ранее спасибо!

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

Опубликовано:

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

Опубликовано:

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

  • 4 недели спустя...
Опубликовано:

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

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

  • 4 недели спустя...
Опубликовано:

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

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

  • 5 месяцев спустя...
Опубликовано:

Подскажите. На 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.х

  • 2 недели спустя...
Опубликовано:

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

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

  • 4 месяца спустя...
Опубликовано:

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

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

Опубликовано:

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

Самое интересное, что меня стояло "Yes". Но, я решил проверить - переставил на "No", после чего вновь вернул на "Yes". Всё заработало. Спасибо за "наводку"!

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

Сейчас на странице 0

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.