DEPRECATION WARNING
This documentation is not using the current rendering mechanism and is probably outdated. The extension maintainer should switch to the new system. Details on how to use the rendering mechanism can be found here.
Add jump-navigation¶
The second userfunction adds the navigation to your page. You need to add the 'lib.tx_form4_bitv.navigation' to the top of your html template to add the jump-navigation to the page. But in your template it should be added as the last object.
The userfunction is wrapped into a typoscript COA Object to build the navigation. so feel free to override it, if necessary.
lib.tx_form4_bitv.navigation = COA
lib.tx_form4_bitv.navigation {
10 = TEXT
10.data = TSFE:tmpl|setup|sitetitle
10.wrap = <strong>|</strong>
20 = COA
20{
10 = COA
10{
wrap = <p id="websiteurl">|</p><hr class="bitv" />
10 = TEXT
10{
typolink{
target = _top
parameter.data = PAGE:uid
forceAbsoluteUrl = 1
useCacheHash = 1
}
}
}
20 =TEXT
20{
typolink{
target = _top
parameter.data = PAGE:uid
forceAbsoluteUrl = 1
useCacheHash = 1
returnLast = url
}
}
}
30 = COA
30 {
10 = TEXT
10.dataWrap = <strong>{LLL:EXT:form4_bitv/Resources/Private/Language/locallang.xlf:bitv.anchor.jump}</strong>
20 = USER
20 {
userFunc = FORM4\Form4Bitv\Utility\BitvUtility->renderBitvAnchorNavigation
llExtName = {$plugin.tx_form4_bitv.locallangExtName}
anchor_wrap = |
}
stdWrap.required = 1
stdWrap.wrap = <p>|</p>
}
stdWrap.required = 1
stdWrap.wrap = <div class="bitv">|</div>
}
Note
This way works for fluid templates (cObject:FLUIDTEMPLATE) as for pure typoscript renderings(cObject: TEMPLATE) as well. But be always assure that the navigation copied from the typoscript Object lib.tx_form4_bitv.navigation comes after the registration of the section links! See the example for more infos.
For the second userfunction just copy lib.tx_form4_bitv.navigation typoscript Object at the end of your template. Here one example with a FLUIDTEMPLATE cObject.
#first render the bitv links like already described in the "Add BITV marker to every section" chapter
lib.bitvContent = COA
lib.bitvContent{
# this part should be seen as example - we want the bitv in front of a content object.
# but you also can just make a single content out of it which renders a TEXT cObject
# with the given anchor.
stdWrap {
prepend = TEXT
prepend{
wrap = <div class="invisible"><hr /><p><strong>|</strong></p></div>
value = maincontent
}
append = USER
append.userFunc = FORM4\Form4Bitv\Utility\BitvUtility->setBitvAnchor
append.userFunc.anchor = content
append.userFunc.position = 1
required = 1 # end of including the bitv field - this might be just seen as a possible use case.
outerWrap = <nav id="main-navigation">|</nav>
}
# this could maybe your section Element if you want to add it in the the old typoscript way.
10 < styles.content.get
10.content.select.where = colPos=0
10.stdWrap.outerWrap = <div class="myexampleContent">|</div>
}
# add more elements if needed and then go over to the page rendering
page = PAGE
page {
10 = FLUIDTEMPLATE
10 {
templateRootPaths.0 = EXT:yourExt/Resources/Private/Templates/
partialRootPaths.0 = EXT:yourExt/Resources/Private/Partials/
layoutRootPaths.0 = EXT:yourExt/Resources/Private/Layouts/
templateName = Page/Default
variables {
bitvnavlink < lib.bitvMainNavigation
bitvsublink < lib.bitvSubnavigation
bitvcontentlink < lib.bitvContent
#... add more if you need them ...
#make sure to add the lib.tx_form4_bitv.navigation as the LAST variable - it is necessary as it reads all the set sectionlinks
bitnav < lib.tx_form4_bitv.navigation
}
#...
}
Note
In a fluid template just output the variable in a format.raw viewhelper. E.g.: <f:format.raw>{bitnav}</f:format.raw>
To work with a screenreader the CSS class 'bitv' needs to be invisible, not by setting display to none but by moving the element out of the screen.
The connection between the jumpnavigation and the anchor is set in the user function by setting the anchor name.
This needs to be the same as the actual anchor name.
In the user function you can set the position of this section in the jumpnavigation.
Every section needs to have a unique position number.
AnchorWrap¶
For the userfunction FORM4Form4BitvUtilityBitvUtility->renderBitvAnchorNavigation are two properties available for the wrapping of the anchor of the menu:
anchor_wrap.char = $
anchor_wrap = <li>$</li>
The anchor_wrap allows you to wrap the generated link with your own Wrapper. And the anchor_wrap.char allows you to replace the default placeholder | with another sign or string of your choice.
If you use the lib.tx_form4_bitv.navigation typoscript you can add these parameters there wwith:
lib.tx_form4_bitv.navigation.30.20.anchor_wrap.char = %
lib.tx_form4_bitv.navigation.30.20.anchor_wrap = <li clöass="myClass">|</li>