entidi/silverstripe-autotoc

A silverstripe module that generates the table of contents dynamically from $Content

Installs: 66

Dependents: 0

Stars: 3

Watchers: 1

Forks: 2

Language: PHP

1.0.3 2014-02-20 12:35 UTC

README

Generate the table of contents dynamically from $Content.

This is basically a SilverStripe 3 module that extends the ContentController class to provide:

  • the new $Autotoc tag, containing the table of contents dynamically created from the content of the current page. The tree is provided as a mixture of ArrayData and ArrayList, ready to be consumed by templates.
  • overriding of the standard $Content tag, augmenting it with anchors (<a> elements with the id attribute but without href) that adds proper destination targets to the links in $Autotoc.

Autotoc format

The $Autotoc is a tree that can be represented with the following pseudo representation:

$Autotoc = ArrayData( $Children <- <CHILDREN> )
<CHILDREN> = ArrayList( <ITEM> )
<ITEM> = ArrayData( $Id, $Title [, $Children <- <CHILDREN> ] )

In a more SilverStripe template way, this can be seen as:

$Autotoc
    $Children[]
        $Id
        $Title
        $Children[]

The Autotoc.ss and AutotocItem.ss shows a way to represent the whole table of content tree in a recursive way. The format used is intentionally compatible with the Bootstrap navlist components, so it can be used and it will be properly handled by the Silverstrap theme.

Support

For bug report or feature requests, go to the dedicated development tracker.