je me reprend moi meme en faite c'est pas géniale ou peut etre pas fini
parcque pour l'instant comme summary il met "tableau de donnée" j'ai pas vu
de synthaxe pour le changer, de même le caption hérite apparament comme
valeur le texte de la derniere entete de la premiere ligne du tableau va
savoir pourquoi. Il ne gère pas les abbr pour les th. Point possitif il
genere bien les id sur les th par contre les headers c'est n'importe quoi
Sorry d'avoir fait du bruit pour rien
aurelien levy a écrit :
je me reprend moi meme en faite c'est pas géniale ou peut etre pas fini
parcque pour l'instant comme summary il met "tableau de donnée" j'ai pas vu
de synthaxe pour le changer, de même le caption hérite apparament comme
valeur le texte de la derniere entete de la premiere ligne du tableau va
savoir pourquoi. Il ne gère pas les abbr pour les th. Point possitif il
genere bien les id sur les th par contre les headers c'est n'importe quoi
Sorry d'avoir fait du bruit pour rien
Bonjour,
Malheuresement la version testée par certains utilisateurs de SPIP n'est pas du tout une version diffusable. (c'est une sorte de fuite !)
Voici le code pour la gestion des tableaux tel qu'il est actuellement dans la version de developpement
//
// Tableaux
//
$letexte = ereg_replace("^\n?\|", "\n\n|", $letexte);
$letexte = ereg_replace("\|\n?$", "|\n\n", $letexte);
$tableBeginPos = strpos($letexte, "\n\n|");
$tableEndPos = strpos($letexte, "|\n\n");
while (is_integer($tableBeginPos) && is_integer($tableEndPos) && $tableBeginPos < $tableEndPos + 3) {
$textBegin = substr($letexte, 0, $tableBeginPos);
$textTable = substr($letexte, $tableBeginPos + 2, $tableEndPos - $tableBeginPos);
$textEnd = substr($letexte, $tableEndPos + 3);
$newTextTable = '</p><table class="spip" summary="'._T('info_summary_tab').'">'."\n";
$rowId = 0;
$tableHeaders = array();
$lineEnd = strpos($textTable, "|\n");
while (is_integer($lineEnd)) {
$rowId++;
$row = substr($textTable, 0, $lineEnd);
$textTable = substr($textTable, $lineEnd + 2);
if ($rowId == 1 && ereg("^\\|\\|([^\\|]+)\\|$", $row, $caption)) {
$newTextTable .= '<caption>'.$caption[1].'</caption>';
$rowId--;
} else {
if ($rowId == 1 && ereg("^(\\|[[:space:]]*\\{\\{([^}]+)\\}\\}[[:space:]]*)+$", $row)) {
$newTextTable .= '<tr class="row_first">';
$rowTab = explode('|', substr($row, 1));
while (list(, $cell) = each($rowTab)) {
$cell = substr($cell, 2, -2);
$cellId = textToId($cell, $tableHeaders);
$newTextTable .= '<th id="'.$cellId.'">'.$cell.'</th>';
$tableHeaders = $cellId;
}
} else {
$newTextTable .= '<tr class="row_'.($rowId % 2 ? 'odd' : 'even').'">';
if (count($tableHeaders) > 0) {
$newTextTable .= ereg_replace("\|([^\|]+)", "<td headers=\"__tempheader__\">\\1</td>", $row);
for ($i = 0; $i < count($tableHeaders); $i++) {
$newTextTable = substr_replace($newTextTable, $tableHeaders[$i], strpos($newTextTable, '__tempheader__'), 14);
}
} else {
$newTextTable .= ereg_replace("\|([^\|]+)", "<td>\\1</td>", $row);
}
}
$newTextTable .= '</tr>';
}
$lineEnd = strpos($textTable, "|\n");
}
$newTextTable .= '</table>';
$letexte = $textBegin . $newTextTable . $textEnd;
$tableBeginPos = strpos($letexte, "\n\n|");
$tableEndPos = strpos($letexte, "|\n\n");