Повторяющиеся теги BB в Subs.php

Автор trijin, 21 июня 2011, 19:47:24

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

trijin

Есть задача: хочу добавить в тег td необязательные параметры, такие как colspan и bgcolor.

Бегло просмотрев комменты в коде и уже существующие теги написал решение, увы, неработающее:
	
	
	
array(
	
	
	
	
'tag' => 'td',
	
	
	
	
'parameters' => array(
	
	
	
	
	
'colspan' => array('optional' => true'value' => ' colspan="$1"''match' => '(\d+)'),
	
	
	
	
	
'rowspan' => array('optional' => true'value' => ' rowspan="$1"''match' => '(\d+)'),
	
	
	
	
	
'bgcolor' => array('optional' => true'value' => ' bgcolor="$1"''match' => '([a-z]*|#[0-9A-Fa-f]{3}|#[0-9A-Fa-f]{6})'),
	
	
	
	
),
	
	
	
	
'before' => '<td{colspan}{rowspan}{bgcolor}>',
	
	
	
	
'after' => '</td>',
	
	
	
	
'require_parents' => array('tr'),
	
	
	
	
'trim' => 'outside',
	
	
	
	
'block_level' => true,
	
	
	
	
'disabled_before' => '',
	
	
	
	
'disabled_after' => '',
	
	
	
),

вопрос 1: Нужно заменить существуюший td или просто добавить под ним? (пробовали так и так)
вопрос 1.2: В коде очень много повторяющихся тегов. Как среди них проходит выбор при парсинге?

Что есть:[table]
[tr][td colspan=3]colspan[/td][/tr]
[tr][td]1[/td][td]2[/td][td]3[/td][/tr]
[/table]

что выдает сейчас(разделил на строчки для читаемости):<table class="bbc_table">
<tr>
<td>[td colspan=3]colspan</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
</table>

хочу:<table class="bbc_table">
<tr>
<td colspan="3">colspan</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
</table>


Что я сделал не так, или, если знаете, подскажите ссылку на описание подобных изменений.
Спасибо.

trijin

Проблема оказывается в файле Subs-Post.php

строчки 267. было
	
	
	
	
'~\[tr\](?![\s' $non_breaking_space ']*\[td\])~s' . ($context['utf8'] ? 'u' '') => '[table][tr][td]',

сделал:
	
	
	
	
'~\[tr\](?![\s' $non_breaking_space ']*\[td[^\]]*\])~s' . ($context['utf8'] ? 'u' '') => '[table][tr][td]',

И последующей полной проверке таблицы. Ее я просто закомментировал т.к. вдаваться сейчас в эти извращения нет желания.

комментил от:
[/td][/tr][/table][/td][/tr][/table]// Now we're going to do full scale table checking...
до // Close any remaining table tags.
foreach ($table_array as $tag)
$parts[$i] .= '[/' . $tag . ']';

trijin

Цитата: trijin от 21 июня 2011, 22:08:45
Проблема оказывается в файле Subs-Post.php

строчки 267. было
	
	
	
	
'~\[tr\](?![\s' $non_breaking_space ']*\[td\])~s' . ($context['utf8'] ? 'u' '') => '[table][tr][td]',

сделал:
	
	
	
	
'~\[tr\](?![\s' $non_breaking_space ']*\[td[^\]]*\])~s' . ($context['utf8'] ? 'u' '') => '[table][tr][td]',

И последующей полной проверке таблицы. Ее я просто закомментировал т.к. вдаваться сейчас в эти извращения нет желания.

комментил от:
[/td][/tr][/table][/td][/tr][/table]// Now we're going to do full scale table checking...
до // Close any remaining table tags.
foreach ($table_array as $tag)
$parts[$i] .= '[/' . $tag . ']';

А вот и кстати!
Красным выделил результат этой самой проверки - которая ведет себя не логично на не обрабатываемых текстах.
Я этого не писал, она решила сама за меня это дописать =)