Sie befinden sich hier: Typo3 / Extensions / kb_tv_cont_slide
Deutsch
English
Dienstag, 25.09.2018

kb_tv_cont_slide

Mit kb_tv_cont_slide lässt sich das Vererben von Inhaltselementen auf untergeordnete Seiten mit TemplaVoilà realisieren. So lässt sich zum Beispiel ein Login auf allen Seiten und deren Unterseiten mit relativ geringem Aufwand umsetzen. Das Inhaltselement (in unserem Fall ein Login) muss dabei nur auf der Rootpage eingefügt werden, die einzelnen Schritte:

  • Einfügen eines Anmeldefenster in der gewünschten Textspalte unter TemplaVoila auf der Rootpage.
  • Das TemplaVoilà-Vorlagenobjekt für die Rootpage muss bearbeitet werden. Zunächst schauen wir uns aber die TemplaVoilà-Datenstruktur, genauer das entsprechende XML der Datenstruktur an:
XML
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<T3DataStructure>
	<meta type="array">
		<langDisable>1</langDisable>
		<langChildren>1</langChildren>
	</meta>
	<ROOT type="array">
		<tx_templavoila type="array">
			<title>ROOT</title>
			<description>Select the HTML element on the page which you want to be the overall container element for the template.</description>
		</tx_templavoila>
		<type>array</type>
		<dbttvdata type="array">
			<cssfile>wok/css/layout_2col_left_13.css</cssfile>
			<iehacks>../wok/css/patches/patch_2col_left_13.css</iehacks>
		</dbttvdata>
		<el type="array">
			<field_header type="array">
				<tx_templavoila type="array">
					<title>Header</title>
					<description>Map to DIV id header (all templates)</description>
					<sample_data type="array">
						<numIndex index="0">[ This is the header ]</numIndex>
					</sample_data>
					<eType>TypoScriptObject</eType>
					<tags>div</tags>
					<TypoScriptObjPath>lib.header</TypoScriptObjPath>
				</tx_templavoila>
			</field_header>
			<field_nav type="array">
				<tx_templavoila type="array">
					<title>Button Navigation</title>
					<description>Map to DIV id nav (all templates)</description>
					<sample_data type="array">
						<numIndex index="0">[ Button Navigation ]</numIndex>
					</sample_data>
					<eType>TypoScriptObject</eType>
					<tags>div</tags>
					<TypoScriptObjPath>lib.nav</TypoScriptObjPath>
				</tx_templavoila>
			</field_nav>
			<field_teaser type="array">
				<tx_templavoila type="array">
					<title>Teaser</title>
					<description>Map to DIV id teaser (all templates)</description>
					<sample_data type="array">
						<numIndex index="0">[ Teaser ]</numIndex>
					</sample_data>
					<eType>TypoScriptObject</eType>
					<tags>div</tags>
					<TypoScriptObjPath>lib.teaser</TypoScriptObjPath>
				</tx_templavoila>
			</field_teaser>
			<field_submenu type="array">
				<tx_templavoila type="array">
					<title>Submenu left side</title>
					<description>Map to UL id submenu (all templates)</description>
					<sample_data type="array">
						<numIndex index="0">[ Submenu ]</numIndex>
					</sample_data>
					<eType>TypoScriptObject</eType>
					<tags>ul</tags>
					<TypoScriptObjPath>lib.submenu</TypoScriptObjPath>
				</tx_templavoila>
			</field_submenu>
			<field_selectorbox type="array">
				<tx_templavoila type="array">
					<title>Selectorbox</title>
					<description>Map to DIV class selectorBox (all templates)</description>
					<sample_data type="array">
						<numIndex index="0">[ JavaScript Menu ]</numIndex>
					</sample_data>
					<eType>TypoScriptObject</eType>
					<tags>div</tags>
					<TypoScriptObjPath>lib.selectorBox</TypoScriptObjPath>
				</tx_templavoila>
			</field_selectorbox>
			<field_footer type="array">
				<tx_templavoila type="array">
					<title>Footer</title>
					<description>Map to DIV id footer (all templates)</description>
					<sample_data type="array">
						<numIndex index="0">[ Footer ]</numIndex>
					</sample_data>
					<eType>TypoScriptObject</eType>
					<tags>div</tags>
					<TypoScriptObjPath>lib.footer</TypoScriptObjPath>
				</tx_templavoila>
			</field_footer>
			<field_maincontent type="array">
				<tx_templavoila type="array">
					<title>Main content</title>
					<description>Map to the column that holds the main content</description>
					<sample_data type="array">
						<numIndex index="0">[ Main Content ]</numIndex>
					</sample_data>
					<eType>ce</eType>
					<tags>div</tags>
					<TypoScript><![CDATA[
	10= RECORDS
	10.source.current=1
	10.tables = tt_content
	10.wrap = <!--TYPO3SEARCH_begin--> | <!--TYPO3SEARCH_end-->
                    ]]></TypoScript>
					<oldStyleColumnNumber type="integer">0</oldStyleColumnNumber>
				</tx_templavoila>
				<TCEforms type="array">
					<config type="array">
						<type>group</type>
						<internal_type>db</internal_type>
						<allowed>tt_content</allowed>
						<size>5</size>
						<maxitems>200</maxitems>
						<minitems>0</minitems>
						<multiple>1</multiple>
						<show_thumbs>1</show_thumbs>
					</config>
					<label>Main content</label>
				</TCEforms>
			</field_maincontent>
			<field_menucontent type="array">
				<tx_templavoila type="array">
					<title>Content below menu</title>
					<description>Map to the column that holds the content below the menu</description>
					<sample_data type="array">
						<numIndex index="0">[ Below menu ]</numIndex>
					</sample_data>
					<eType>ce</eType>
					<tags>div</tags>
					<TypoScript><![CDATA[
	10= RECORDS
	10.source.current=1
	10.tables = tt_content
	10.wrap = <!--TYPO3SEARCH_begin--> | <!--TYPO3SEARCH_end-->
                    ]]></TypoScript>
					<oldStyleColumnNumber type="integer">1</oldStyleColumnNumber>
				</tx_templavoila>
				<TCEforms type="array">
					<config type="array">
						<type>group</type>
						<internal_type>db</internal_type>
						<allowed>tt_content</allowed>
						<size>5</size>
						<maxitems>200</maxitems>
						<minitems>0</minitems>
						<multiple>1</multiple>
						<show_thumbs>1</show_thumbs>
					</config>
					<label>Content below menu</label>
				</TCEforms>
			</field_menucontent>
		</el>
	</ROOT>
</T3DataStructure>
  • Wir wollen den Inhalt der Textspalte Content below menu auf allen Seiten vererben, daher interessiert uns nur dieser Bereich. Wir wollen das XML der Datenstruktur über die Lokale Verarbeitung (XML) des TemplaVoilà-Vorlagenobjekt aktualisieren, denn das eröffnet uns die Möglichkeit, später noch weitere Änderungen an der Datenstruktur über TemplaVoilà vorzunehmen, ohne dass wir jedes Mal das XML neu anpassen müssen.
    Zu diesem Zweck kopieren wir uns erst mal das gesamte XML und kürzen es nun so weit, dass nur noch der gewünschte Bereich für das Content below menu für stehen bleibt.
    In diesem Bereich müssen wir die folgende Zeile

        10.source.current=1

    ersetzen durch diese beiden Zeilen:

        10.source.postUserFunc = tx_kbtvcontslide_pi1->main
        10.source.postUserFunc.field = field_menucontent

    So erhalten wir nun das folgende XML:

XML
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<T3DataStructure>
	<ROOT type="array">
		<el type="array">
			<field_menucontent type="array">
				<tx_templavoila type="array">
					<title>Content below menu</title>
					<description>Map to the column that holds the content below the menu</description>
					<sample_data type="array">
						<numIndex index="0">[ Below menu ]</numIndex>
					</sample_data>
					<eType>ce</eType>
					<tags>div</tags>
					<TypoScript><![CDATA[
	10= RECORDS
	10.source.postUserFunc = tx_kbtvcontslide_pi1->main
	10.source.postUserFunc.field = field_menucontent
	10.tables = tt_content
	10.wrap = <!--TYPO3SEARCH_begin--> | <!--TYPO3SEARCH_end-->
                    ]]></TypoScript>
					<oldStyleColumnNumber type="integer">1</oldStyleColumnNumber>
				</tx_templavoila>
				<TCEforms type="array">
					<config type="array">
						<type>group</type>
						<internal_type>db</internal_type>
						<allowed>tt_content</allowed>
						<size>5</size>
						<maxitems>200</maxitems>
						<minitems>0</minitems>
						<multiple>1</multiple>
						<show_thumbs>1</show_thumbs>
					</config>
					<label>Content below menu</label>
				</TCEforms>
			</field_menucontent>
		</el>
	</ROOT>
</T3DataStructure>
  • Dieses XML wird nun abschließend im TemplaVoilà-Vorlagenobjekt im Abschnitt Lokale Verarbeitung (XML) eingefügt.
  • Jetzt werden die Objekte im Bereich Content below menu solange vererbt, bis auf einer untergeordneten Seite ein neues Inhaltselement für diese Textspalte eingefügt wird.