Новое
● Смена дизайна! Выражаем благодарность tørst vinden!

● Были подведены итоги неприлично затянувшихся конкурсов.
А еще Зефир ищет креативных, толковых людей, которые любят и умеют конкурсы устраивать.

● Голосование "Сахарная Вата. Декабрь-январь.".

● Подведены итоги. "Новый Год с Зефиром".

● А также открыт новый конкурс, с мандаринками и елочными ветками. "Дед Мороз всея Зефира" желает побродить по форумам и оценить самую красивую рекламу и самый волшебный зимний дизайн. Спешите участвовать!

● Мы дополнили наш конкурс сладостей, и теперь "Сладкая Вата" продлена до января. Самое время рассказать каталогу свою новогоднюю сказку! Принимаются также работы и осенней тематики.

● ГОЛОСОВАНИЕ. ВЫБИРАЕМ ЛУЧШИЙ ДИЗАЙН И РЕКЛАМУ.

● Зефир в поисках писателей! Ждем с нетерпением в наборе персонала.

● Уже совсем скоро! "Сладкая Вата. Ноябрь"

Зефир

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Зефир » Все для работы с кодами » ББ-коды


ББ-коды

Сообщений 1 страница 30 из 32

1

В этой теме предлагаю поговорить о ББ-кодах.
Вздумалось мне прикрутить местные ББ-коды к своему форуму т.к. хуже горькой редьки надоело править рекламные шаблоны тех форумов, на которых не предусмотрено универсального. С кодом [align][/align] всё получилось, а с таблицей никак не могу справиться.
А теперь вопросы.
1. Кто-нибудь из вас пытался заставить работать одновременно разные ББ-коды? Получалось ли?
2. За что отвечает параметр таблицы "layout"? Какие могут быть у него значения, кроме "fixed"? В справочниках по ХТМЛ я такого не нашла, и как, спрашивается, ему приписывать замену ХТМЛ-кодом?

0

2

CyberCat написал(а):

Кто-нибудь из вас пытался заставить работать одновременно разные ББ-коды? Получалось ли?

У меня на форуме работает целый сонм моих личных бб кодов. Костыли пишутся. Аминь.

CyberCat написал(а):

За что отвечает параметр таблицы "layout"?

За алгоритм отрисовки таблицы.

У него есть два(три, на самом деле, но inherit идет лесом) значения — auto(изначальный) и, собственно, fixed. При auto ширина ячеек и самой таблицы зависит от содержимого. При fixed — по заранее указанной ширине ячеек первой и только первой строки.

Отредактировано Spiritus Tergi (2014-05-01 00:08:43)

+2

3

Spiritus Tergi, А какой будет у него аналог в ХТМЛ? В справочнике ничего с похожим описанием не нашлось. И ещё у меня есть сомнения, можно ли задать ББ-тегу две опции? Наверное, можно, здесь же как-то задано.

0

4

CyberCat написал(а):

можно ли задать ББ-тегу две опции

Смотря насколько сложный вы напишете скрипт. В принципе с помощью regex это выполнимо, если писать функцию с нуля (что не трудно). Более того, можно не просто сделать бб тэг только с двумя опциями... а с любым необходимым количеством.

CyberCat написал(а):

А какой будет у него аналог в ХТМЛ?

Только через css.

Отредактировано Spiritus Tergi (2014-05-01 00:34:46)

+1

5

Spiritus Tergi написал(а):

можно не просто сделать бб тэг только с двумя опциями... а с любым необходимым количеством.

Мне бы хотелось именно тег с MyBB воспроизвести, в том виде, в котором он есть здесь, чтобы реклама не искажалась.

Spiritus Tergi написал(а):

Только через css.

Спасибо за наводку, буду копать справочники и думать.

0

6

CyberCat написал(а):

именно тег с MyBB воспроизвести

Напишите мне какой и я вам его воспроизведу через яву. Если, конечно, у вас есть возможность вставлять javascript в форум.

Отредактировано Spiritus Tergi (2014-05-01 18:28:49)

0

7

Spiritus Tergi,

Нужно, чтобы вот такая запись (код взят с этого форума) трансформировалась в таблицу:

Код:
[table layout=fixed width=100%]
[tr]
[td][/td]
[td][/td]
[/tr]
[tr]
[td][/td]
[td][/td]
[/tr]
[/table]

Я прописывала каждый тег отдельно. Но с тегом tаble у меня даже без опций фигня получилась ничего не получилось. Наверняка допустила какую-то мелкую ошибку, на которую смотрю и которой не вижу.
Кнопка в редакторе сообщений не обязательна. Делается исключительно с целью как можно меньше править шаблонную рекламу и по просьбе соадмина, которому таблицы нужны для оформления описаний локаций.

Лично мне больше нравится другой вариант таблицы, который я оставила бы параллельным, но с другим тегом, только не знаю, как поправить тег. Ну и уже начала считать трансформацию местных тегов в наши гиблым делом т.к. с тегом размера шрифта всё равно ничего не сделаешь. Ну разве что на уровне системы запретить значение больше определённой цифры, чтобы ошибка вылетала при отправке, опять же, понятия не имею, как это делается.

Spiritus Tergi написал(а):

Если, конечно, у вас есть возможность вставлять javascript в форум.

Возможности есть, у нас способностей не хватает (с) кот Матроскин.
Автовход для рекламы, например, у меня не получилось поставить. Код нашла на техподдержке 2х2, там ещё было написано, что для любого движка сработает, но, видно, не в любых руках.

Отредактировано CyberCat (2014-05-03 16:48:58)

0

8

CyberCat, по поводу пиар-входа: у вас не подключен jQuery. Поскольку скрипт написан с использованием команд из этой библиотеки... он, естественно, не работает.

Вставьте это если вам нужна поддержка более старых браузеров(IE 6,7,8).

Код:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

Или это, если поддержка античных браузеров вам не нужна:

Код:
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>

Второй вариант библиотеки работает быстрее, но вам решать какую подключить. В любом случае — желательно вставить в элемент head или в начало элемента body.

Это во-первых. Во-вторых — я не знаю кто писал этот скрипт, но он не пойдет на всех движках. Из-за отличий в названиях и атрибутах, например.

Код:
$(document).ready(function(){
  $("input[value='Вход']").after("<button type='button' title='Вход для гостей' id='prbutton'>Вход для гостей</button>");
  $("#prbutton").click(function(){
    $("input[name*='username']").val('Netrunner');
    $("input[name*='password']").val('000');
    $("input[value='Вход']").click();
  })
});

Для вашего форума. Это должно находиться между тэгами script, естественно. Замените уже стоящий?)

По поводу таблиц (чем ниже этот код расположен в body, тем лучше, главное чтобы ниже постов):

Код:
<script>
$("[id*='post_message']").each(function(){
if($(this).html().indexOf("[/table]") != -1) {
$(this).html($(this).html().replace(/\[table(.*?)\]([\s\S]*?)\[\/table\]/gi, "<table class='creatus' style='$1'><tbody>$2</tbody></table>"));
$(this)find(".creatus").each(function() {
$(this).html($(this).html().replace(/\[tr\]([\s\S]*?)\[\/tr\]/gi, "<tr>$1</tr>"));
$(this).html($(this).html().replace(/\[td\]([\s\S]*?)\[\/td\]/gi, "<td>$1</td>"));
})
}
})
</script>

Отредактировано Spiritus Tergi (2014-05-05 01:22:32)

+2

9

Spiritus Tergi, Вы гений!  :love:
С Вашими поправками кнопка успешно заработала. Выбрала первый вариант, пусть динозавры тоже пользуются. 
А вот таблицу как здесь сделать не удалось. В общем-то не так уж страшно, таблица в рекламе довольно редко встречается. И с кодами размера шрифта всё равно ничего не сделать т.к. у нас свои размеры по тому же тегу, так что стопроцентной синхронизации с MyBB всё равно не получится. 
Огромное спасибо за помощь!

Отредактировано CyberCat (2014-05-05 00:37:49)

0

10

CyberCat, скорее дурак.

Код:
<script>
$("[id*='post_message']").each(function(){
  if($(this).html().indexOf("[/table]") != -1) {
    pattern = /\[table(.*?)\]([\s\S]*?)\[\/table\]/gi;
    patternL = /\[table(.*?)\]([\s\S]*?)\[\/table\]/i;
    tabula = $(this).html().match(pattern);
    for (digna=0; digna < tabula.length; digna++){
      tabula[digna] = tabula[digna].replace(/\[/gi,"<");
      tabula[digna] = tabula[digna].replace(/\]/gi,">");
      tabula[digna] = tabula[digna].replace(/layout=([\S]*?) width=([\S]*?)>/i,"style='layout:$1; width: $2;'>");
      $(this).html($(this).html().replace(patternL, tabula[digna]));    }  } })
</script>

Попробуйте вот этот вариант для таблиц. Когда же я научусь писать нормальный regex?

Отредактировано Spiritus Tergi (2014-05-05 04:23:57)

+1

11

Spiritus Tergi, Всё равно не получилось. Ну, значит так тому и быть.

0

12

CyberCat, могли бы вы поставить этот скрипт и дать мне ссылку на пост с тэгами таблицы?

http://jsfiddle.net/4GrzD/4/
Фактически контейнер поста с типом id как на вашем форуме. Скрипт работает. Если есть что обрабатывать. Может у вас что-то убирает тэги таблицы из постов прежде чем скрипт имеет возможность их обработать?

Отредактировано Spiritus Tergi (2014-05-05 17:49:28)

+1

13

Spiritus Tergi написал(а):

У меня на форуме работает целый сонм моих личных бб кодов. Костыли пишутся. Аминь.

А не можешь поделиться секретом, какой костыль их создает? http://vk.com/images/stickers/56/48.png

0

14

Джи, руки, JS, regex?

0

15

Spiritus Tergi, яву http://vk.com/images/stickers/68/48.png  потому что не знаю два остальных х)

0

16

Джи, я имел ввиду все три одновременно. Руками пишешь скрипт на яве использующий regex. Вот и весь секрет.

0

17

Spiritus Tergi

оффтоп
Spiritus Tergi написал(а):

CyberCat, могли бы вы поставить этот скрипт и дать мне ссылку на пост с тэгами таблицы?

http://jsfiddle.net/4GrzD/4/
Фактически контейнер поста с типом id как на вашем форуме. Скрипт работает. Если есть что обрабатывать. Может у вас что-то убирает тэги таблицы из постов прежде чем скрипт имеет возможность их обработать?

Сделаю, как только в следующий раз займусь настройкой (работа/учёба съели мозг)

Отредактировано CyberCat (2014-05-11 21:36:30)

0

18

Spiritus Tergi,

оффтоп

Мы у себя посоветовались, решили оставить те таблицы, которые у нас работают сейчас. Всё равно реализовать мою задумку полностью невозможно из-за тега размера шрифта: у нас используется тот же тег, но размеры с теми же цифрами получаются другие, всё равно шрифты править приходится. Ну и таблицы в рекламе встречаются не так часто, в отличии от того же выравнивания по центру.
За кнопочку рекламного входа ещё раз спасибо. :)

0

19

Spiritus Tergi, А таблицы ваши всё-таки заработали. Просто нужно было обновить страницу после размещения поста. С первого раза, видимо, обработка не срабатывает. Потестирую ещё на разной рекламе. Огромное вам кошачье спасибо!
http://sa.uploads.ru/qiVDY.png

0

20

CyberCat, пока я здесь:

Код:
$("[id*='post_message']").each(function(){
  if($(this).html().indexOf("[/table]") != -1) {
    pattern = /\[table(.*?)\]([\s\S]*?)\[\/table\]/gi;
    patternL = /\[table(.*?)\]([\s\S]*?)\[\/table\]/i;
    tabula = $(this).html().match(pattern);
    for (digna=0; digna < tabula.length; digna++){
      tabula[digna] = tabula[digna].replace(/\[table(.*?)\]/gi,"<table>");
      tabula[digna] = tabula[digna].replace(/\[\/table\]/gi,"</table>");  
      tabula[digna] = tabula[digna].replace(/\[(\/)?tr\]/gi,"<$1tr>");
      tabula[digna] = tabula[digna].replace(/\[(\/)?td\]/gi,"<$1td>");
      $(this).html($(this).html().replace(patternL, tabula[digna]));    }  } })

Этот вариант скрипта срезает все стили которые могли бы быть указаны в таблице (потому что при желании ими можно похерить страницу) и меняет на html-тэги только табличные тэги. Предыдущий позволял прописывать html в таких таблицах любому пользователю (это плохо).

+1

21

Spiritus Tergi, С последним вариантом не обрабатывается размещение по центру внутри таблицы.

Тестовое сообщение: http://spacewind.su/rpg/showthread.php? … #post12668
Должно быть так: http://radioactivezone.rusff.ru/viewtopic.php?id=22

На размер шрифтов внимания не обращайте, он у нас никогда не сойдётся, если в рекламе указаны размеры.

0

22

CyberCat написал(а):

размещение по центру внутри таблицы.


Ну, это-то работает, в теории. Просто таблица не по центру. И не занимает всё пространство. Попробуйте так:

Код:
$("[id*='post_message']").each(function(){
  if($(this).html().indexOf("[/table]") != -1) {
    pattern = /\[table(.*?)\]([\s\S]*?)\[\/table\]/gi;
    patternL = /\[table(.*?)\]([\s\S]*?)\[\/table\]/i;
    tabula = $(this).html().match(pattern);
    for (digna=0; digna < tabula.length; digna++){
      tabula[digna] = tabula[digna].replace(/\[table(.*?)\]/gi,"<table style='table-layout:fixed; width:100%'>");
      tabula[digna] = tabula[digna].replace(/\[\/table\]/gi,"</table>");  
      tabula[digna] = tabula[digna].replace(/\[(\/)?tr\]/gi,"<$1tr>");
      tabula[digna] = tabula[digna].replace(/\[td(?: colspan=(\d))?\]/gi,"<td colspan='$1'>");
      tabula[digna] = tabula[digna].replace(/\[(\/)?td\]/gi,"<$1td>");
      $(this).html($(this).html().replace(patternL, tabula[digna]));    }  } })

+1

23

Spiritus Tergi, Теперь отобразилось как надо  http://sa.uploads.ru/xHFSZ.png

0

24

Spiritus Tergi, Я уж стесняюсь просить вас ещё о каких-то доработках... и так много для нас сделали. Но у нас тут вдруг выяснилось, что заданная ширина таблицы не обрабатывается.

Исходный код с форума Майбба:

Свернутый текст
Код:
[align=center][font=Georgia][size=16][url=http://fairytale.3bb.ru/]СКАЗАНИЯ О НЕБЫВАЛОМ[/url][/size][/font][/align]

[align=center][url=http://fairytale.3bb.ru/][img]http://forumfiles.ru/files/000e/cf/46/55296.jpg[/img][/url][/align]

[align=center][font=Georgia][size=16][url=http://fairytale.3bb.ru/viewtopic.php?id=1303#p135132]АКЦИЯ: ГЕРОИ МЕЧА И МАГИИ[/url][/size][/font][/align]

[quote][table layout=auto width=auto]
[tr]
[td width=20%][img]http://s8.uploads.ru/h4YLG.png[/img][/td]
[td][b]Черная Выпь[/b]. 33 года. Человек. Фехтует одноручным клинком, стреляет из короткого лука, имеет навыки зельевара, следопыта, умеет устанавливать ловушки, отлично плавает. Известна на юге Анхельского и севере Аренинского курфюршества, как мастер-охотник на речных тварей. Бывала при дворе обоих герцогов, поддерживает деловые отношения с магами Совета.[/td][/tr]

[tr]
[td width=20%][img]http://s8.uploads.ru/eHkhK.png[/img][/td]
[td][b]Родрик Бурый[/b]. 46 лет. Человек. Профессиональный охотник на оборотней, а так же крупную лесную нечисть. Великолепный фехтовальщик двуручным оружием – мечом, секирой. Известен в северных курфюршествах, в Кетавели считается чуть ли не национальным героем. Отличительные черты – семь футов роста и двуручная секира с двойным лезвием из отборной стали и резной рукоятью из эльфийского ясеня (навершие рукояти выполнено в виде оскаленной медвежьей головы).[/td]
[/tr]

[tr]
[td][img]http://s8.uploads.ru/AijOd.png[/img]
[/td]
[td][b]Барон[/b]. 32 года. Человек. Родился в Ландау, бастард местного барона. Специализируется на уничтожении призраков, в 1120 году вступил в Аренинский магический Совет. Известный на юге – как людском, так и эльфийском, борец с неупокоенными духами. В 1121 году спас аренинский город Эльзен от происков гури. Имеет плохо развитый и хаотичный дар ясновидения. Несмотря на свое происхождение вхож в высшее аренинское общество.[/td]
[/tr]
[/table][/quote]

Должно получиться так:
СКАЗАНИЯ О НЕБЫВАЛОМ

http://forumfiles.ru/files/000e/cf/46/55296.jpg

АКЦИЯ: ГЕРОИ МЕЧА И МАГИИ

http://s8.uploads.ru/h4YLG.png

Черная Выпь. 33 года. Человек. Фехтует одноручным клинком, стреляет из короткого лука, имеет навыки зельевара, следопыта, умеет устанавливать ловушки, отлично плавает. Известна на юге Анхельского и севере Аренинского курфюршества, как мастер-охотник на речных тварей. Бывала при дворе обоих герцогов, поддерживает деловые отношения с магами Совета.

http://s8.uploads.ru/eHkhK.png

Родрик Бурый. 46 лет. Человек. Профессиональный охотник на оборотней, а так же крупную лесную нечисть. Великолепный фехтовальщик двуручным оружием – мечом, секирой. Известен в северных курфюршествах, в Кетавели считается чуть ли не национальным героем. Отличительные черты – семь футов роста и двуручная секира с двойным лезвием из отборной стали и резной рукоятью из эльфийского ясеня (навершие рукояти выполнено в виде оскаленной медвежьей головы).

http://s8.uploads.ru/AijOd.png

Барон. 32 года. Человек. Родился в Ландау, бастард местного барона. Специализируется на уничтожении призраков, в 1120 году вступил в Аренинский магический Совет. Известный на юге – как людском, так и эльфийском, борец с неупокоенными духами. В 1121 году спас аренинский город Эльзен от происков гури. Имеет плохо развитый и хаотичный дар ясновидения. Несмотря на свое происхождение вхож в высшее аренинское общество.

У нас получается так: http://www.spacewind.su/rpg/showthread. … #post12690
На шрифты не обращайте внимания, с ними ничего не сделать, кроме как руками править, код один, цифры разные, перелогинюсь под собой, поправлю.

0

25

CyberCat, теперь должно обрабатывать:

Код:
<script>
$("[id*='post_message']").each(function(){
  if($(this).html().indexOf("[/table]") != -1) {
    pattern = /\[table(.*?)\]([\s\S]*?)\[\/table\]/gi;
    patternL = /\[table(.*?)\]([\s\S]*?)\[\/table\]/i;
    tabula = $(this).html().match(pattern);
    for (digna=0; digna < tabula.length; digna++){
      tabula[digna] = tabula[digna].replace(/\[table(.*?)\]/gi,"<table style='table-layout:fixed; width:100%'>");
      tabula[digna] = tabula[digna].replace(/\[\/table\]/gi,"</table>");  
      tabula[digna] = tabula[digna].replace(/\[(\/)?tr\]/gi,"<$1tr>");
      tabula[digna] = tabula[digna].replace(/\[td width=(\d*%|\d*px)\]/gi,"<td style='width: $1'>");
      tabula[digna] = tabula[digna].replace(/\[td(?: colspan=(\d))?\]/gi,"<td colspan='$1'>");
      tabula[digna] = tabula[digna].replace(/\[(\/)?td\]/gi,"<$1td>");
      $(this).html($(this).html().replace(patternL, tabula[digna]));    }  } })
</script>

Это, конечно, не идеал и сделано по-дурацки, но что есть, то есть. На днях сделаю нормальную обработку дополнительных параметров стиля.

Отредактировано Spiritus Tergi (2014-12-23 21:05:28)

+1

26

Spiritus Tergi, Спасибо. Параметры работают, но откуда-то берутся лишние пробелы. Полагаю, это потому что теги стоят в столбик, строка считается пустой. С этим можно бороться или так и останется? Если останется, пусть хотя бы так, всё-таки лучше, чем ничего.
А html в данном случае разрешён? А то нас уже через возможность писать в постах хтмл ломали, больше не хочется лазейку открывать. Но таблицы майббовские игроки настаивают сделать, и для рекламы хорошо, если они будут, они всё чаще в шаблонах попадаются.

0

27

CyberCat написал(а):

А html в данном случае разрешён?

Не-а. Скрипт обрабатывает только "табличные" тэги с квадратными скобками. Никакого html. Я этот недосмотр ранее исправлял именно из-за уязвимости)

CyberCat написал(а):

это потому что теги стоят в столбик

Угу. Php парсер вставляет после каждой строки <br> елемент. Теперь скрипт убирает каждый line-break после элементов таблицы перед преобразованием в html.

Код:
<script>
$("[id*='post_message']").each(function(){
  if($(this).html().indexOf("[/table]") != -1) {
    pattern = /\[table(.*?)\]([\s\S]*?)\[\/table\]/gi;
    patternL = /\[table(.*?)\]([\s\S]*?)\[\/table\]/i;
    tabula = $(this).html().match(pattern);
    for (digna=0; digna < tabula.length; digna++){
      tabula[digna] = tabula[digna].replace(/(\[(?:\/)?(?:table|tr|td).*?\])<br>/gi,"$1");
      tabula[digna] = tabula[digna].replace(/\[table(.*?)\]/gi,"<table style='table-layout:fixed; width:100%'>");
      tabula[digna] = tabula[digna].replace(/\[\/table\]/gi,"</table>");  
      tabula[digna] = tabula[digna].replace(/\[(\/)?tr\]/gi,"<$1tr>");
      tabula[digna] = tabula[digna].replace(/\[td width=(\d*%|\d*px)\]/gi,"<td style='width: $1'>");
      tabula[digna] = tabula[digna].replace(/\[td colspan=(\d)?\]/gi,"<td colspan='$1'>");
      tabula[digna] = tabula[digna].replace(/\[(\/)?td\]/gi,"<$1td>");
      $(this).html($(this).html().replace(patternL, tabula[digna]));    }  } })
</script>

+1

28

CyberCat, новый вариант скрипта обработки таблиц:

Код:
<script>
globalTablePattern = /\[table(.*?)\]([\s\S]*?)\[\/table\]/gi;
singleTablePattern = /\[table(.*?)\]([\s\S]*?)\[\/table\]/i;

layoutPattern = / layout=(auto|fixed)/;
widthPattern = / width=(\d+(?:px|%))/;
colspanPattern = / colspan=(\d+)/;
rowspanPattern = / rowspan=(\d+)/;
colorPattern = / color=([\w#]+(?:\([\d ,.]*\))?)/;
backgroundcolorPattern = / background-color=([\w#]+(?:\([\d ,.]*\))?)/;

function TableAttributes(tag) {
  var attributes = "";
  if (!/\[table\s*\]/.test(tag)) {
    attributes = "style='";
    if(layoutPattern.test(tag)) {attributes += "table-layout: " + layoutPattern.exec(tag)[1] + ";";}
      else {attributes += "table-layout: fixed;"}
    if(widthPattern.test(tag)) {attributes += " width: " + widthPattern.exec(tag)[1] + ";";}
      else {attributes += " width: 100%;"}
    if(colorPattern.test(tag)) {attributes += " color: " + colorPattern.exec(tag)[1] + ";";}
    attributes += "'";
  } else {attributes = "style='table-layout: fixed; width: 100%'"}
  return attributes;
}

function CellAttributes(tag) {
  var attributes = "";
  if (!/\[td\s*\]/.test(tag)) {
    if(colspanPattern.test(tag)) {attributes += " colspan='" + colspanPattern.exec(tag)[1] + "'";}
    if(rowspanPattern.test(tag)) {attributes += " rowspan='" + rowspanPattern.exec(tag)[1] + "'";}
    attributes += " style='";
    if(widthPattern.test(tag)) {attributes += " width: " + widthPattern.exec(tag)[1] + ";";}
    if(colorPattern.test(tag)) {attributes += " color: " + colorPattern.exec(tag)[1] + ";";}
    if(backgroundcolorPattern.test(tag)) {attributes += " background-color: " + backgroundcolorPattern.exec(tag)[1] + ";";}
    attributes += "'";
  }
  if (attributes.indexOf(" style=''") != -1) {attributes = attributes.slice(0, -9);}
  return attributes;
}

$("[id*='post_message']").each(function() {
  if($(this).html().indexOf("[/table]") != -1) {
    tabula = $(this).html().match(globalTablePattern);
    for (digna=0; digna < tabula.length; digna++) {
      tabula[digna] = tabula[digna].replace(/(\[(?:\/)?(?:table|tr|td).*?\])<br>/gi,"$1");
      secunda = TableAttributes(/\[table.*?\]/.exec(tabula[digna])[0]);
      tabula[digna] = tabula[digna].replace(/\[table.*?\]/, "<table " + secunda + ">");
      tabula[digna] = tabula[digna].replace(/\[\/table.*?\]/, "</table>");
      tabula[digna] = tabula[digna].replace(/\[(\/)?tr\]/gi,"<$1tr>");
      cellae = tabula[digna].match(/\[td.*?\]/gi);
      cellae.forEach(function(element) {
        tabula[digna] = tabula[digna].replace(/\[td.*?\]/i, "<td " + CellAttributes(element) + ">");
      });
      tabula[digna] = tabula[digna].replace(/\[\/td\]/gi,"</td>");
      $(this).html($(this).html().replace(singleTablePattern, tabula[digna]));
    }
  }
});
</script>

Теперь таблицы поддерживают атрибуты layout, width и color, а ячейки — colspan, rowspan, width, color, background-color. В любых комбинациях. Все другие атрибуты и любой другой текст в тэгах будет просто убираться. Можно было бы, конечно, немного скрипт сократить, но мне лень этим заниматься ради двух лишних атрибутов (;

Отредактировано Spiritus Tergi (2014-12-25 09:03:19)

+2

29

Как в бб-таблице сделать центровку содержания ячеек, чтобы не приходилось постоянно в каждой ячейке через align=center?

0

30

Шиона написал(а):

Как в бб-таблице сделать центровку содержания ячеек

Всё ещё актуально)

0


Вы здесь » Зефир » Все для работы с кодами » ББ-коды


Рейтинг форумов | Создать форум бесплатно © 2007–2017 «QuadroSystems» LLC