Oznámení
Provoz fóra byl ukončen
Generování obsahu z nadpisů
před 8 lety
- echo
- Člen | 134
Zdravím,
přihazuji funkční script na generování obsahu z nadpisů, možná to
někdo uživí:
public function generateToc($texy) {
$mainNode = TexyHTML::el('ul');
$lastLevel = 1;
foreach ($texy->headingModule->TOC as $heading) {
$level = $heading['level'];
if($level == 1) { // If first header, write to main node.
$node{$level} = $mainNode->create('li');
}
elseif($level > $lastLevel) { // If child, make a new node
$node{$level} = $node{$lastLevel}->create('ul')->create('li');
}
elseif($level <= $lastLevel) { // If child, make add a node into parent
$node{$level} = $node{$level-1}->create('ul')->create('li');
}
$a = $node{$level}->create('a')->href('#' . $heading['el']->attrs['id'])->setText($heading['title']);
$lastLevel = $level;
}
return $mainNode->toHtml($texy);
}
Volání potom třeba takto:
$texy = new Texy;
$texy->headingModule->generateID = TRUE;
$texy->process($text);
echo $this->generateToc($texy); // Vygeneruje seznam
Funkce předpokládá správnou strukturu nadpisů.
Editoval echo (11. 3. 2011 23:43)