Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Table abuse test (не входить!)

Автор fujhi, июля 22, 2012, 11:16

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

RawonaM

Цитата: mnashe от июля 23, 2012, 09:51
//       'class' => array('optional' => true, 'quoted' => true, 'value' => ' $1'),
//       'style' => array('optional' => true, 'quoted' => true, 'value' => ' style="$1"'),
Cela peut être enlevé.

mnashe

Цитата: RawonaM от июля 23, 2012, 10:08
[0-9A-Za-z ] == [\w ]
А, вот как?
А [0-9] == \d == [\d], я правильно понял?

Цитата: RawonaM от июля 23, 2012, 10:09
Cela peut être enlevé.
Понимаю, что закомментированные строки никак не участвуют, просто сохраняю на случай, что захочешь оставить простую возможность поэкспериментировать.
Если такая возможность не нужна,
$codes[] = array(
    
'tag' => 'table',
    
'parameters' => array(
        
'border' => array('optional' => true'value' => ' border="$1"''match' => '(\d+)'),
        
'cellpadding' => array('optional' => true'value' => ' cellpadding="$1"''match' => '(\d+)'),
        
'cellspacing' => array('optional' => true'value' => ' cellspacing="$1"''match' => '(\d+)'),
        
'width' => array('optional' => true'value' => 'width: $1;''match' => '(\d+[a-z%]{1,2})'),
        
'height' => array('optional' => true'value' => 'height: $1;''match' => '(\d+[a-z%]{1,2})'),
        
'bgcolor' => array('optional' => true'value' => 'background-color: $1;''match' => '(#?\w+)'),
        
'nice' => array('optional' => true'value' => 'border-collapse: collapse" border="$1''match' => '(\d+)'),
    ),
    
'before' => '<table class="bbc_table"{border}{cellpadding}{cellspacing} style="{width}{height}{bgcolor}{nice}">',
    
'after' => '</table>',
    
'trim' => 'inside',
    
'require_children' => array('tr'),
    
'block_level' => true,
);
$codes[] = array(
    
'tag' => 'td',
    
'parameters' => array(
        
'colspan' => array('optional' => true'value' => ' colspan="$1"''match' => '(\d+)'),
        
'rowspan' => array('optional' => true'value' => ' rowspan="$1"''match' => '(\d+)'),
        
'width' => array('optional' => true'value' => 'width: $1;''match' => '(\d+[a-z%]{1,2})'),
        
'height' => array('optional' => true'value' => 'height: $1;''match' => '(\d+[a-z%]{1,2})'),
        
'align' => array('optional' => true'value' => 'text-align: $1;''match' => '([a-z]+)'),
        
'valign' => array('optional' => true'value' => 'vertical-align: $1;''match' => '([a-z]+)'),
        
'bgcolor' => array('optional' => true'value' => 'background-color: $1;''match' => '(#?\w+)'),
        
'padding' => array('optional' => true'quoted' => true'value' => 'padding: $1;''match' => '([\w ]+)'),
        
'border' => array('optional' => true'quoted' => true'value' => 'border: $1;''match' => '([\w #]+)'),
        
'border-width' => array('optional' => true'quoted' => true'value' => 'border-width: $1;''match' => '([\w ]+)'),
        
'border-style' => array('optional' => true'quoted' => true'value' => 'border-style: $1;''match' => '([\w ]+)'),
        
'border-color' => array('optional' => true'quoted' => true'value' => 'border-color: $1;''match' => '([\w #]+)'),
        
'border-top' => array('optional' => true'quoted' => true'value' => 'border-top: $1;''match' => '([\w #]+)'),
        
'border-bottom' => array('optional' => true'quoted' => true'value' => 'border-bottom: $1;''match' => '([\w #]+)'),
        
'border-left' => array('optional' => true'quoted' => true'value' => 'border-left: $1;''match' => '([\w #]+)'),
        
'border-right' => array('optional' => true'quoted' => true'value' => 'border-right: $1;''match' => '([\w #]+)'),
    ),
    
'before' => '<td{colspan}{rowspan} style="{width}{height}{align}{valign}{bgcolor}{padding}{border}{border-width}{border-style}{border-color}{border-top}{border-bottom}{border-left}{border-right}">',
    
'after' => '</td>',
    
'require_parents' => array('tr'),
    
'trim' => 'outside',
    
'block_level' => true,
    
'disabled_before' => '',
    
'disabled_after' => '',
);
$codes[] = array(
    
'tag' => 'tr',
    
'parameters' => array(
         
'bgcolor' => array('optional' => true'value' => ' style="background-color: $1"''match' => '(#?\w+)'),
    ),
    
'before' => '<tr{bgcolor}>',
    
'after' => '</tr>',
    
'require_parents' => array('table'),
    
'require_children' => array('td'),
    
'trim' => 'both',
    
'block_level' => true,
    
'disabled_before' => '',
    
'disabled_after' => '',
);
$codes[] = array(
    
'tag' => 'hr',
    
'type' => 'closed',
    
'parameters' => array(
        
'color' => array('optional' => true'value' => 'background-color: "$1"; border: none; ''match' => '(#?\w+)'),
        
'width' => array('optional' => true'value' => 'width: $1;''match' => '(\d+[a-z%]{1,2})'),
        
'height' => array('optional' => true'value' => 'height: $1;''match' => '(\d+[a-z%]{1,2})'),
    ),
    
'content' => '<hr style="{color}{width}{height}" />',
    
'block_level' => true,
);
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

RawonaM


RawonaM


mnashe

Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

mnashe

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 71 bytes) in /var/www/lingvofo/data/www/lingvoforum.net/Sources/Subs.php on line 877
На вот такую строку:
[table bgcolor=yellow][tr][td bgcolor=red]1[/td][td]2[/td][/tr][/table]
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

mnashe

Любые параметры в TD такой эффект дают. Даже colspan и rowspan.
А в TABLE и в TR — нет.
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

mnashe

Может, где-то \n влез?
А может, нельзя hyphen в параметрах?
Тогда попробовать переписать без них:
        'bwidth' => array('optional' => true'quoted' => true'value' => 'border-width: $1;''match' => '([\w ]+)'),
        
'bstyle' => array('optional' => true'quoted' => true'value' => 'border-style: $1;''match' => '([\w ]+)'),
        
'bcolor' => array('optional' => true'quoted' => true'value' => 'border-color: $1;''match' => '([\w #]+)'),
        
'btop' => array('optional' => true'quoted' => true'value' => 'border-top: $1;''match' => '([\w #]+)'),
        
'bbottom' => array('optional' => true'quoted' => true'value' => 'border-bottom: $1;''match' => '([\w #]+)'),
        
'bleft' => array('optional' => true'quoted' => true'value' => 'border-left: $1;''match' => '([\w #]+)'),
        
'bright' => array('optional' => true'quoted' => true'value' => 'border-right: $1;''match' => '([\w #]+)'),
    ),
    
'before' => '<td{colspan}{rowspan} style="{width}{height}{align}{valign}{bgcolor}{padding}{border}{bwidth}{bstyle}{bcolor}{btop}{bbottom}{bleft}{bright}">',

Или, может, нельзя так много параметров?
Тогда пожертвовать border-top‥border-right.
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

mnashe

Как тебе удалось сделать, что страница открывается?
Попытка запостить параметры в td по-прежнему фатальна.

И страница после минимального редактирования опять не открывается.
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

RawonaM

Цитата: mnashe от июля 23, 2012, 11:28
Или, может, нельзя так много параметров?
Je crois que ça. Ils consomment trop de memoire.

J'ai fait comme ça:
$codes[] = array(
    
'tag' => 'td',
    
'parameters' => array(
        
'colspan' => array('optional' => true'value' => ' colspan="$1"''match' => '(\d+)'),
        
'rowspan' => array('optional' => true'value' => ' rowspan="$1"''match' => '(\d+)'),
        
'width' => array('optional' => true'value' => 'width: $1;''match' => '(\d+[a-z%]{1,2})'),
        
'height' => array('optional' => true'value' => 'height: $1;''match' => '(\d+[a-z%]{1,2})'),
        
'align' => array('optional' => true'value' => 'text-align: $1;''match' => '([a-z]+)'),
        
'valign' => array('optional' => true'value' => 'vertical-align: $1;''match' => '([a-z]+)'),
        
'bgcolor' => array('optional' => true'value' => 'background-color: $1;''match' => '(#?\w+)'),
        
'padding' => array('optional' => true'quoted' => true'value' => 'padding: $1;''match' => '([\w ]+)'),
        
'border' => array('optional' => true'quoted' => true'value' => 'border: $1;''match' => '([\w #]+)'),
/*        'border-width' => array('optional' => true, 'quoted' => true, 'value' => 'border-width: $1;', 'match' => '([\w ]+)'),
        'border-style' => array('optional' => true, 'quoted' => true, 'value' => 'border-style: $1;', 'match' => '([\w ]+)'),
        'border-color' => array('optional' => true, 'quoted' => true, 'value' => 'border-color: $1;', 'match' => '([\w #]+)'),
        'border-top' => array('optional' => true, 'quoted' => true, 'value' => 'border-top: $1;', 'match' => '([\w #]+)'),
        'border-bottom' => array('optional' => true, 'quoted' => true, 'value' => 'border-bottom: $1;', 'match' => '([\w #]+)'),
        'border-left' => array('optional' => true, 'quoted' => true, 'value' => 'border-left: $1;', 'match' => '([\w #]+)'),
        'border-right' => array('optional' => true, 'quoted' => true, 'value' => 'border-right: $1;', 'match' => '([\w #]+)'),
*/    
),


Tout marche.

mnashe

nice с дополнительными параметрами не работает вообще.
nice без дополнительных параметров не работает правильно, и вот почему:
<table class="bbc_table" style="border-collapse: collapse" &nbsp;border="1">
Это моя ошибка — ввёл два пробела вместо одного.
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

mnashe

Цитата: mnashe от июля 23, 2012, 11:38
nice с дополнительными параметрами не работает вообще.
Не так.
nice с дополнительными параметрами после него не работает вообще.
Неужели параметры должны идти в строгом порядке?
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

RawonaM


mnashe

Цитата: RawonaM от июля 23, 2012, 11:34
J'ai fait comme ça:
Мне всё же любопытно, в hyphen'ах дело или в количестве.
Попробуй, пожалуйста, вариант без hyphen'ов. Ведь мы действительно их нигде не видели, и не можем быть уверены, что они разрешены.
И нужно стереть лишний пробел перед словом border в nice:
        'nice' => array('optional' => true'value' => 'border-collapse: collapse" border="$1''match' => '(\d+)'),
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

RawonaM

Цитата: mnashe от июля 23, 2012, 11:50
Попробуй, пожалуйста, вариант без hyphen'ов. Ведь мы действительно их нигде не видели, и не можем быть уверены, что они разрешены.
Ne marche pas. Maintenant comme ça:

    'parameters' => array(
        'colspan' => array('optional' => true, 'value' => ' colspan="$1"', 'match' => '(\d+)'),
        'rowspan' => array('optional' => true, 'value' => ' rowspan="$1"', 'match' => '(\d+)'),
        'width' => array('optional' => true, 'value' => 'width: $1;', 'match' => '(\d+[a-z%]{1,2})'),
        'height' => array('optional' => true, 'value' => 'height: $1;', 'match' => '(\d+[a-z%]{1,2})'),
        'align' => array('optional' => true, 'value' => 'text-align: $1;', 'match' => '([a-z]+)'),
        'valign' => array('optional' => true, 'value' => 'vertical-align: $1;', 'match' => '([a-z]+)'),
        'bgcolor' => array('optional' => true, 'value' => 'background-color: $1;', 'match' => '(#?\w+)'),
        'padding' => array('optional' => true, 'quoted' => true, 'value' => 'padding: $1;', 'match' => '([\w ]+)'),
        'border' => array('optional' => true, 'quoted' => true, 'value' => 'border: $1;', 'match' => '([\w #]+)'),

        'bwidth' => array('optional' => true, 'quoted' => true, 'value' => 'border-width: $1;', 'match' => '([\w ]+)'),
/*        'bstyle' => array('optional' => true, 'quoted' => true, 'value' => 'border-style: $1;', 'match' => '([\w ]+)'),
        'bcolor' => array('optional' => true, 'quoted' => true, 'value' => 'border-color: $1;', 'match' => '([\w #]+)'),
        'btop' => array('optional' => true, 'quoted' => true, 'value' => 'border-top: $1;', 'match' => '([\w #]+)'),
        'bbottom' => array('optional' => true, 'quoted' => true, 'value' => 'border-bottom: $1;', 'match' => '([\w #]+)'),
        'bleft' => array('optional' => true, 'quoted' => true, 'value' => 'border-left: $1;', 'match' => '([\w #]+)'),
        'bright' => array('optional' => true, 'quoted' => true, 'value' => 'border-right: $1;', 'match' => '([\w #]+)'),
*/
        'border-width' => array('optional' => true, 'quoted' => true, 'value' => 'border-width: $1;', 'match' => '([\w ]+)'),
/*        'border-style' => array('optional' => true, 'quoted' => true, 'value' => 'border-style: $1;', 'match' => '([\w ]+)'),
        'border-color' => array('optional' => true, 'quoted' => true, 'value' => 'border-color: $1;', 'match' => '([\w #]+)'),
        'border-top' => array('optional' => true, 'quoted' => true, 'value' => 'border-top: $1;', 'match' => '([\w #]+)'),
        'border-bottom' => array('optional' => true, 'quoted' => true, 'value' => 'border-bottom: $1;', 'match' => '([\w #]+)'),
        'border-left' => array('optional' => true, 'quoted' => true, 'value' => 'border-left: $1;', 'match' => '([\w #]+)'),
        'border-right' => array('optional' => true, 'quoted' => true, 'value' => 'border-right: $1;', 'match' => '([\w #]+)'),
*/    ),

Cela marche.

mnashe

Ага, хюпхены, стало быть, допустимы.
Давай попробуем оставить 3 из 8: border-style, border-width, border-color.
Они обеспечат полную функциональность.
$codes[] = array(
    
'tag' => 'td',
    
'parameters' => array(
        
'colspan' => array('optional' => true'value' => ' colspan="$1"''match' => '(\d+)'),
        
'rowspan' => array('optional' => true'value' => ' rowspan="$1"''match' => '(\d+)'),
        
'width' => array('optional' => true'value' => 'width: $1;''match' => '(\d+[a-z%]{1,2})'),
        
'height' => array('optional' => true'value' => 'height: $1;''match' => '(\d+[a-z%]{1,2})'),
        
'align' => array('optional' => true'value' => 'text-align: $1;''match' => '([a-z]+)'),
        
'valign' => array('optional' => true'value' => 'vertical-align: $1;''match' => '([a-z]+)'),
        
'bgcolor' => array('optional' => true'value' => 'background-color: $1;''match' => '(#?\w+)'),
        
'padding' => array('optional' => true'quoted' => true'value' => 'padding: $1;''match' => '([\w ]+)'),
        
'border-style' => array('optional' => true'quoted' => true'value' => 'border-style: $1;''match' => '([\w ]+)'),
        
'border-width' => array('optional' => true'quoted' => true'value' => 'border-width: $1;''match' => '([\w ]+)'),
        
'border-color' => array('optional' => true'quoted' => true'value' => 'border-color: $1;''match' => '([\w #]+)'),
    ),
    
'before' => '<td{colspan}{rowspan} style="{width}{height}{align}{valign}{bgcolor}{padding}{border-style}{border-width}{border-color}">',
    
'after' => '</td>',
    
'require_parents' => array('tr'),
    
'trim' => 'outside',
    
'block_level' => true,
    
'disabled_before' => '',
    
'disabled_after' => '',
);
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

mnashe

Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

RawonaM

Fait.

Цитата: mnashe от июля 23, 2012, 12:06
Они обеспечат полную функциональность.
Et comment faire border-left?

Je crois que bcolor (etc) est mieux que border-color.

mnashe

Цитата: RawonaM от июля 23, 2012, 12:15
Fait.
И в результате снова ошибка.

Итак, {border-style}{border-width}{border-color}, как я понимаю, не работает (ты ж его сейчас проверял?), а {border}{border-width} работает. То есть, если дело в количестве параметров, должно работать {border-style}{border-color}, а если это не работает, значит, всё-таки какой-то баг.
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

mnashe

Цитата: RawonaM от июля 23, 2012, 12:15
Je crois que bcolor (etc) est mieux que border-color.
Наверно.

Надо попробовать это:
$codes[] = array(
    
'tag' => 'td',
    
'parameters' => array(
        
'colspan' => array('optional' => true'value' => ' colspan="$1"''match' => '(\d+)'),
        
'rowspan' => array('optional' => true'value' => ' rowspan="$1"''match' => '(\d+)'),
        
'width' => array('optional' => true'value' => 'width: $1;''match' => '(\d+[a-z%]{1,2})'),
        
'height' => array('optional' => true'value' => 'height: $1;''match' => '(\d+[a-z%]{1,2})'),
        
'align' => array('optional' => true'value' => 'text-align: $1;''match' => '([a-z]+)'),
        
'valign' => array('optional' => true'value' => 'vertical-align: $1;''match' => '([a-z]+)'),
        
'bgcolor' => array('optional' => true'value' => 'background-color: $1;''match' => '(#?\w+)'),
        
'padding' => array('optional' => true'quoted' => true'value' => 'padding: $1;''match' => '([\w ]+)'),
        
'bstyle' => array('optional' => true'quoted' => true'value' => 'border-style: $1;''match' => '([\w ]+)'),
        
'bwidth' => array('optional' => true'quoted' => true'value' => 'border-width: $1;''match' => '([\w ]+)'),
        
'bcolor' => array('optional' => true'quoted' => true'value' => 'border-color: $1;''match' => '([\w #]+)'),
    ),
    
'before' => '<td{colspan}{rowspan} style="{width}{height}{align}{valign}{bgcolor}{padding}{bstyle}{bwidth}{bcolor}">',
    
'after' => '</td>',
    
'require_parents' => array('tr'),
    
'trim' => 'outside',
    
'block_level' => true,
    
'disabled_before' => '',
    
'disabled_after' => '',
);

И, если ошибка не исчезнет, то закомментить строчку align
(align не так важен, поскольку есть center и right)
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

RawonaM

Tout marche.

Fait attention:
Цитата: mnashe от июля 23, 2012, 12:25
        'padding' => array('optional' => true, 'quoted' => true, 'value' => 'padding: $1;', 'match' => '([\w ]+)'),

Tous les tags quoted doivent etre "quoted".

mnashe

Цитата: RawonaM от июля 23, 2012, 12:31
Tout marche.
Non.
Вот это фатально:
[table width=100%][tr][td][table bgcolor=#F55][tr][td]1[/td][td rowspan=2 valign=middle width=2em align=center]2[/td][/tr][tr][td bgcolor=#FC0]3[/td][/tr][/table][/td]
[td align=right][table nice=1][tr][td]1[/td][td rowspan=2]2[/td][/tr][tr][td]3[/td][/tr][/table][/td][/tr][/table]

Цитата: RawonaM от июля 23, 2012, 12:31
Fait attention:
Цитата: mnashe от июля 23, 2012, 12:25
        'padding' => array('optional' => true, 'quoted' => true, 'value' => 'padding: $1;', 'match' => '([\w ]+)'),
Tous les tags quoted doit etre "quoted".
Не понял.
Если quoted в BBC, то обязан быть quoted и в HTML? :what:
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

RawonaM

Цитата: mnashe от июля 23, 2012, 12:36
Не понял.
Если quoted в BBC, то обязан быть quoted и в HTML? :what
Non, si 'quoted'=>true, tu dois ecrire:
[asdf param="sdf"]


mnashe

Так это понятно, я так и хотел. Параметры, допускающие пробелы, сделал quoted, остальные нет.
Разве в этом где-то ошибка?
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

mnashe

Ну что, ты это не проверил?
$codes[] = array(
    
'tag' => 'td',
    
'parameters' => array(
        
'colspan' => array('optional' => true'value' => ' colspan="$1"''match' => '(\d+)'),
        
'rowspan' => array('optional' => true'value' => ' rowspan="$1"''match' => '(\d+)'),
        
'width' => array('optional' => true'value' => 'width: $1;''match' => '(\d+[a-z%]{1,2})'),
        
'height' => array('optional' => true'value' => 'height: $1;''match' => '(\d+[a-z%]{1,2})'),
//        'align' => array('optional' => true, 'value' => 'text-align: $1;', 'match' => '([a-z]+)'),
        
'valign' => array('optional' => true'value' => 'vertical-align: $1;''match' => '([a-z]+)'),
        
'bgcolor' => array('optional' => true'value' => 'background-color: $1;''match' => '(#?\w+)'),
        
'padding' => array('optional' => true'quoted' => true'value' => 'padding: $1;''match' => '([\w ]+)'),
        
'bstyle' => array('optional' => true'quoted' => true'value' => 'border-style: $1;''match' => '([\w ]+)'),
        
'bwidth' => array('optional' => true'quoted' => true'value' => 'border-width: $1;''match' => '([\w ]+)'),
        
'bcolor' => array('optional' => true'quoted' => true'value' => 'border-color: $1;''match' => '([\w #]+)'),
    ),
    
'before' => '<td{colspan}{rowspan} style="{width}{height}{align}{valign}{bgcolor}{padding}{bstyle}{bwidth}{bcolor}">',
    
'after' => '</td>',
    
'require_parents' => array('tr'),
    
'trim' => 'outside',
    
'block_level' => true,
    
'disabled_before' => '',
    
'disabled_after' => '',
);

Параметров здесь ровно 10 — столько же, сколько и здесь, а тот вариант вроде работал исправно.
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр