developer.jelix.org is not used any more and exists only for history. Post new tickets on the Github account.
developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.

Opened 10 years ago

Last modified 9 years ago

#1168 confirmed enhancement

wikirenderer : verticals fusions in tables of dokuwiki_to_xhtml rule

Reported by: flav Owned by:
Priority: normal Milestone:
Component: external libs Version:
Severity: minor Keywords: wikirenderer dokuwiki rowspan fusions verticales
Cc: Blocked By:
Blocking: Documentation needed: no
Hosting Provider: Php version:

Description

La règle dokuwiki_to_xhtml ne permet pas de prendre en compte les fusions verticales des cellules de tableau. J'y suis parvenu en écrivant une règle pour le rendu spip. Ma solution consiste à écrire des '%rowspan%'.$_Tables_LineId.'%'.$ColId après '<td' qu'il faut ensuite supprimer ou remplacer par ' rowspan="'.$rowspan.'"' Si au moins une des cellules en dessous, de la même colonne indique une fusion verticale. La valeur de $rowspan est le nombre de fusions verticales demandées +1.

function onStart Il faut d'abord définir la variable public $_TablesLineId = 0; qui est incrémentée à chaque nouvelle ligne de tableau écrite. Il ne faut jamais la remettre à zéro lors de l'écriture d'un nouveau tableau car elle nous sert d'index unique pour toutes les lignes de tableau de la page. Il faut aussi définir une variable tableau à 2 dimenssions $this->rowspans = array(); contenant de manière abstraite l'ensemble des rowspan à écrire lors du remplacement de '%rowspan%'.$_Tables_LineId.'%'.$ColId Elle est accessible par $this->config->rowspan dans la fonction addcol de la classe dkxhtml_table_row.

fonction addcol La variable $this->config->rowspan[$LineId?][$ColId?] Cette variable n'est définie que lorsqu'une fusion verticale est détectée. Cette variable est égale à false lorsqu'une fusions verticale est indiquée, signifiant que la celulle n'existe pas. Par contre la valeur de la même colonne de la ligne précédente si elle n'est pas déja false sera:

  • Incrémentée si déjà définie
  • Sinon égale à 2, car la taille de la cellule sera au moins de deux.

Si la valeur est false, on cherche à incrémenter la cellule parente.

function onParse Remplacement des '%rowspan%'.$_Tables_LineId.'%'.$ColId comme il convient.

Change History (5)

comment:1 Changed 10 years ago by flav

  • Owner set to flav

comment:2 Changed 10 years ago by laurentj

  • Component changed from jelix to external libs
  • Type changed from new feature to enhancement

rappel: le site de wikirenderer est ici : http://wikirenderer.berlios.de/, et la syntaxe de dokuwiki ici http://www.dokuwiki.org/syntax

comment:3 Changed 10 years ago by flav

Ah, pardon, j'avais supposé que jelix avait "absorbé" wikirenderer.

comment:4 Changed 9 years ago by laurentj

  • Owner changed from flav to laurentj
  • Status changed from new to assigned

comment:5 Changed 9 years ago by laurentj

  • Owner laurentj deleted
  • Status changed from assigned to confirmed
Note: See TracTickets for help on using tickets.