Autor | Zpráva | ||
---|---|---|---|
Atsor Profil |
#1 · Zasláno: 7. 11. 2009, 16:56:43
Ahoj, lámu si hlavu s následujícím. Jedná se o systém phpBB3, který má ve vzhledu nastavenou tabulku tak, aby každý sudý řádek tabulky měl určitou světlejší barvu (class="row1") a každý lichý tmavší barvu (class="row2"). Toto se mění pouze u řádků, ne u sloupců.
Já bych chtěl vytvořit BBCode, který by vypadal takto: [TABULKA]text1 | text2 | text3 text4 | text 5 | text6[/TABULKA] Kdy by znak "|" odděloval sloupce (tedy každý text v jednom sloupci) a každé odentrování by znamenalo další řádek tabulky s tím, že by seděla změna barev (row1, row2, row1, row2). Zde Vám dám ukázku jednoduché tabulky o dvou řádcích společně se změnou barev řádků: <table class="tablebg" id="table1"> <td class="row1">test</td> </tr> <tr> <td class="row2"> </td> </tr></table> Díky za rady :) |
||
Kcko Profil |
#2 · Zasláno: 7. 11. 2009, 18:54:36
Zkus se inspirovat timto, kdyz to nepujde, tak to zkusim napsat, do svyho webiku by se mi to mozna taky hodilo
$string = preg_replace_callback("/\[list=(ul|ol)\][\r\n]+(.+?)[\r\n]+\[\/list\][\r\n]*/is", 'Str::encodeList', $string); public static function encodeList($matches) { $preg = preg_replace("#[\r\n]+#", '</li><li>', trim($matches[2])); if (trim($matches[1]) == 'ul') return '<ul class="limbb"><li>'.$preg.'</li></ul>'; else return '<ol class="limbb"><li>'.$preg.'</li></ol>'; } |
||
Atsor Profil |
#3 · Zasláno: 7. 11. 2009, 23:14:20
Wau, tak toto mi moc nepomohlo.
Kde si to vytáhl, možná to by mi dalo facku... |
||
Kcko Profil |
#4 · Zasláno: 8. 11. 2009, 18:08:21
vytahl jsem to z nejakeho souboru fora miniBB.
|
||
Kcko Profil |
#5 · Zasláno: 8. 11. 2009, 18:16:14
Atsor:
Jinak tedy mensi inspirace public static function encodeTable($matches) { $out = ''; $table = $matches[1]; $rows = explode("\n", $table); foreach ($rows as $row) { $out .= '<tr>'; $row = trim($row); $cols = explode("|", $row); foreach ($cols as $col) { $col = trim($col); $out .= '<td>'.$col.'</td>'; } $out .= '</tr>'; } return '<table border=1>'.$out.'</table>'; } $string = preg_replace_callback("/\[table\][\r\n]*(.+?)[\r\n]*\[\/table\]/is", 'Str::encodeTable', $string); Doosetri a douprav si to dle libosti, zakladni funkcionalita je myslim jasna. |
||
Časová prodleva: 14 let
|
0