Configuration
Add SawsConnector Page to TYPO3
Create a new Page an add the folowing Typo Template to it. This Template will avoid the html output of the page.
soapServiceWsdl = PAGE soapServiceWsdl { 10 = USER 10 { userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run extensionName = Sawsconnector pluginName = Sawsconnector vendorName = SAWSGmbHCoKG controller = Sawsconnector action = update switchableControllerActions { Sawsconnector { 1 = list 2 = show 3 = update 4 = getdata } } view < plugin.tx_sawsconnector_sawsconnector.view persistence < plugin.tx_sawsconnector_sawsconnector.persistence settings < plugin.tx_sawsconnector_sawsconnector.settings } config { disableAllHeaderCode = 1 xhtml_cleaning = 0 disablePreviewInfo = 1 admPanel = 0 debug = 0 no_cache = 1 } }
Add Root Page with typical Template
This template is only a sample! Your Template can have this own design. The template is independent from the sawsconnector!
config { linkVars = L sys_language_overlay = 0 sys_language_mode = strict sys_language_uid = 0 language = de } [globalVar = GP:L = 0] config.sys_language_uid = 0 config.language = de [global] [globalVar = GP:L = 1] config.sys_language_uid = 0 config.language = de [global] [globalVar = GP:L = 2] config.sys_language_uid = 2 config.language = en [global] [globalVar = GP:L = 3] config.sys_language_uid = 3 config.language = jp [global] ####################### #### LANGUAGE MENU #### ####################### lib.language = COA lib.language { ################################################### #### EXAMPLE FOR TYPOSCRIPT LANGUAGE OVERRIDES #### #### its not needed in this example #### ################################################### #10 = TEXT #10 { # value = Language # value.lang.da = Sprog # value.lang.de = Sprache # noTrimWrap = |<li><span class="glyphicon glyphicon-globe"></span> |</li>| #} 20 = HMENU 20 { special = language special.value = 0,1,2,3 special.normalWhenNoLanguage = 0 wrap = 1 = TMENU 1 { noBlur = 1 NO = 1 NO { linkWrap = <li>|</li> stdWrap.override = Deutsch || English || Japan doNotLinkIt = 1 stdWrap { typolink { parameter.data = page:uid additionalParams = &L=0 || &L=2 || &L=3 ATagParams = hreflang="de-DE" || hreflang="en-EN" || hreflang="jp-JP" addQueryString = 1 addQueryString.exclude = L,id,cHash,no_cache addQueryString.method = GET useCacheHash = 1 no_cache = 0 } } } ACT < .NO ACT.linkWrap = <li class="active">|</li> #### NO TRANSLATION AVAILABLE STATES #### USERDEF1 < .NO USERDEF1 { linkWrap = <li class="text-muted">|</li> stdWrap.typolink > } USERDEF2 < .ACT USERDEF2 { linkWrap = <li class="text-muted">|</li> stdWrap.typolink > } } } wrap = <ul id="language_menu" class="language-menu">|</ul> } #################### #### NAVIGATION #### #################### lib.navigation.main = COA lib.navigation.main { 10 = HMENU 10 { 1 = TMENU 1 { wrap = <ul class="nav navbar-nav navbar-main">|</ul> expAll = 1 noBlur = 1 NO = 1 NO { ATagTitle.field = abstract // description // title ATagBeforeWrap = 1 linkWrap = |<span class="bar"></span> wrapItemAndSub = <li>|</li> wrapItemAndSub.override.cObject = COA wrapItemAndSub.override.cObject { if { value = 4 equals.field = doktype isTrue = 1 isTrue.if { value.data = TSFE:page|uid equals.field = shortcut } } 10 = TEXT 10.value = <li class="active">|</li> } } ACT < .NO ACT { wrapItemAndSub = <li class="active">|</li> } CUR < .ACT IFSUB < .NO IFSUB { doNotLinkIt = 1 allWrap = <a href="#" class="dropdown-toggle" data-toggle="dropdown">|<b class="caret"></b></a> wrapItemAndSub = <li class="dropdown">|</li> } ACTIFSUB < .IFSUB ACTIFSUB { wrapItemAndSub = <li class="active dropdown">|</li> } CURIFSUB < .ACTIFSUB } 2 < .1 2 { wrap = <ul class="dropdown-menu">|</ul> SPC = 1 SPC { wrapItemAndSub = <li class="divider"></li><li class="dropdown-header">|</li> } IFSUB > ACTIFSUB > CURIFSUB > } } } lib.navigation.subnavigation = COA lib.navigation.subnavigation { 10 = HMENU 10 { entryLevel = 1 wrap = <nav class="hidden-print hidden-xs hidden-sm" role="complementary">|</nav> 1 = TMENU 1 { wrap = <ul class="nav nav-sidebar">|</ul> expAll = 0 noBlur = 1 NO = 1 NO { ATagTitle.field = abstract // description // title wrapItemAndSub = <li>|</li> wrapItemAndSub.override.cObject = COA wrapItemAndSub.override.cObject { if { value = 4 equals.field = doktype isTrue = 1 isTrue.if { value.data = TSFE:page|uid equals.field = shortcut } } 10 = TEXT 10.value = <li class="active">|</li> } } ACT < .NO ACT { wrapItemAndSub = <li class="active">|</li> } CUR < .ACT } 2 < .1 2 { wrap = <ul>|</ul> } 3 < .2 } } lib.contentCol1 = CONTENT lib.contentCol1 < styles.content.get lib.contentCol1 { table = tt_content select { where = colPos = 20 orderBy = sorting languageField = sys_language_uid } } lib.contentCol2 = CONTENT lib.contentCol2 < styles.content.get lib.contentCol2 { table = tt_content select { where = colPos = 21 orderBy = sorting languageField = sys_language_uid } } lib.contentCol3 = CONTENT lib.contentCol3 < styles.content.get lib.contentCol3 { table = tt_content select { where = colPos = 22 orderBy = sorting languageField = sys_language_uid } } lib.contentCol4 = CONTENT lib.contentCol4 < styles.content.get lib.contentCol4 { table = tt_content select { where = colPos = 23 orderBy = sorting languageField = sys_language_uid } } page = PAGE page.10 = FLUIDTEMPLATE page.10.file.stdWrap.cObject = CASE page.10.file.stdWrap.cObject { key.data = levelfield:-1, backend_layout_next_level, slide key.override.field = backend_layout default = TEXT default.value = fileadmin/saws_4col.html 1 = TEXT 1.value = fileadmin/saws_4col.html 3 = TEXT 3.value = fileadmin/saws_2col.html 2= TEXT 2.value = fileadmin/saws_3col.html } page.10.variables { contentCol1 < lib.contentCol1 contentCol2 < lib.contentCol2 contentCol3 < lib.contentCol3 contentCol4 < lib.contentCol4 } lib.langMenu = HMENU lib.langMenu { special = language special.value = 0,1,2,3 special.normalWhenNoLanguage = 1 wrap = | 1 = TMENU 1 { NO = 1 NO { doNotLinkIt = 1 stdWrap.override = Default || Deutsch || Englisch || Japanisch linkWrap = <li>|</li> stdWrap.typolink.parameter.data = page:uid stdWrap.typolink.addQueryString = 1 stdWrap.typolink.addQueryString.method = GET stdWrap.typolink.additionalParams = &L=0 || &L=1 || &L=2 || &L=3 } ACT <.NO ACT.linkWrap = <li class="active">|</li> } } lib.mainMenu = HMENU lib.mainMenu { entryLevel = 0 1 = TMENU 1 { wrap = <ul class="navi">|</ul> NO { wrapItemAndSub = <li>|</li> expAll = 1 linkWrap = | } ACT <.NO ACT = 1 ACT.ATagParams = class="active" ACT.wrapItemAndSub = <li class="current">|</li> CUR = <.NO CUR.wrapItemAndSub = <li class="current">|</li> } 2 <.1 2.ACT.wrapItemAndSub = <li class="current level2">|</li> 2.CUR.wrapItemAndSub = <li class="current level2">|</li> 2.NO.wrapItemAndSub = <li class="inactive">|</li> 3 <.1 3.ACT.wrapItemAndSub = <li class="current level3">|</li> 3.CUR.wrapItemAndSub = <li class="current level3">|</li> 3.NO.wrapItemAndSub = <li class="inactive">|</li> 4 <.1 5 <.1 } page { includeCSS { # bootstrap will be included in the themes.less file # for standalone usage just uncomment the following line # bootstrap = EXT:bootstrap_package/Resources/Public/Less/Bootstrap/bootstrap.less theme = EXT:bootstrap_package/Resources/Public/Less/Theme/theme.less } includeJSLibs { modernizr = {$page.includePath.javascript}Libs/modernizr-2.8.3.min.js modernizr.forceOnTop = 1 wpfix = {$page.includePath.javascript}Libs/windowsphone-viewportfix.min.js } includeJSFooterlibs { jquery = {$page.includePath.javascript}Libs/jquery.min.js jquery.forceOnTop = 1 bootstrap = {$page.includePath.javascript}Libs/bootstrap.min.js responsiveimages = {$page.includePath.javascript}Libs/jquery.responsiveimages.min.js #### Add swipe support for boostrap components hammerjs = {$page.includePath.javascript}Libs/hammer.min.js bootstrap_swipe = {$page.includePath.javascript}Libs/bootstrap.swipe.min.js #### Basic lightbox implementation for bootstrap bootstrap_lightbox = {$page.includePath.javascript}Libs/bootstrap.lightbox.min.js #### Toggle collapsed CSS class on the navbar toggle button bootstrap_navbartoggle = {$page.includePath.javascript}Libs/bootstrap.navbartoggle.min.js ################################################################## #### INCLUDE JS FOR IE DINOSAURS #### #### NOTE : add conditional comment to cope with static cache #### ################################################################## #### selectivizr to add css pseudo class selectors selectivizr = {$page.includePath.javascript}Libs/selectivizr.min.js selectivizr.allWrap = <!--[if IE 8 ]>|<![endif]--> selectivizr.excludeFromConcatenation = 1 selectivizr.disableCompression = 1 #### respond to add media query support respond = {$page.includePath.javascript}Libs/respond.min.js respond.allWrap = <!--[if IE 8 ]>|<![endif]--> respond.excludeFromConcatenation = 1 respond.disableCompression = 1 } stylesheet = fileadmin/saws.css }