page = PAGE page { 10 = FLUIDTEMPLATE 10 { layoutRootPaths { 10 = EXT:carriere/Resources/Private/Layouts/Page } partialRootPaths { 10 = EXT:carriere/Resources/Private/Partials/Page } templateRootPaths { 10 = EXT:carriere/Resources/Private/Templates/Page } } includeCSSLibs { fontawesome = EXT:carriere/Resources/Public/Css/Libs/FontAwesome/fontawesome.css } includeCSS { theme = EXT:carriere/Resources/Public/Css/Libs/theme.min.css global = EXT:carriere/Resources/Public/Scss/global.scss tarteaucitron = EXT:carriere/Resources/Public/Scss/tarteaucitron.scss footer = EXT:carriere/Resources/Public/Scss/footer.scss header = EXT:carriere/Resources/Public/Scss/header.scss scrollTop = EXT:carriere/Resources/Public/Scss/scrollTop.scss carousel = EXT:carriere/Resources/Public/Scss/carousel.scss actusHome = EXT:carriere/Resources/Public/Scss/actusHome.scss blockNumb = EXT:carriere/Resources/Public/Scss/blockNumb.scss filArianne = EXT:carriere/Resources/Public/Scss/filArianne.scss vueDetailleActu = EXT:carriere/Resources/Public/Scss/vueDetailleActu.scss newsTemoignages = EXT:carriere/Resources/Public/Scss/newsTemoignages.scss carteSubpages = EXT:carriere/Resources/Public/Scss/carteSubpages.scss accordion = EXT:carriere/Resources/Public/Scss/accordion.scss globalListMRC = EXT:carriere/Resources/Public/Scss/globalListMRC.scss globalDetailMRC = EXT:carriere/Resources/Public/Scss/globalDetailMRC.scss form = EXT:carriere/Resources/Public/Scss/form.scss overridecolor = EXT:carriere/Resources/Public/Scss/overrideColor.scss } includeJSFooter { main = EXT:carriere/Resources/Public/JavaScript/main.js } includeJSFooterlibs { bootstrap = EXT:carriere/Resources/Public/JavaScript/Lib/bootstrap.min.js bootstrap_accordion = EXT:wseils_usine/Resources/Public/Js/Lib/bootstrap.accordion.js bootstrap_lightbox = EXT:wseils_usine/Resources/Public/Js/Lib/bootstrap.lightbox.js bootstrap_navbar = EXT:wseils_usine/Resources/Public/Js/Lib/bootstrap.navbar.js bootstrap_popover = EXT:wseils_usine/Resources/Public/Js/Lib/bootstrap.popover.js bootstrap_smoothscroll = EXT:wseils_usine/Resources/Public/Js/Lib/bootstrap.smoothscroll.js bootstrap_stickyheader = EXT:wseils_usine/Resources/Public/Js/Lib/bootstrap.stickyheader.js } includeJS { jquery = EXT:carriere/Resources/Public/JavaScript/Lib/jquery.min.js tarteaucitron = EXT:carriere/Resources/Public/JavaScript/tarteaucitron/tarteaucitron.js tarteaucitron.external = 1 } headerData.1803 = TEXT headerData.1803 { value = {$headerTagInsertion} } } #TARTEAUCITRON page.3677 = TEXT page.3677.value ( <script type="text/javascript"> var logoTarteAuCitron = '{$urlImgCookiesCarriere}'; var PolitiqueCookies = '{$urlPagePolitiqueCookies}'; </script> ) page.3677.value.insertData = 1 page.3678 = TEXT page.3678.value ( <script type="text/javascript"> tarteaucitron.init({ "privacyUrl": "", /* Privacy policy url */ "hashtag": "#tarteaucitron", /* Open the panel with this hashtag */ "cookieName": "tarteaucitron", /* Cookie name */ "orientation": "middle", /* Banner position (top - bottom) */ "showAlertSmall": true, /* Show the small banner on bottom right */ "cookieslist": true, /* Show the cookie list */ "closePopup": false, /* Show a close X on the banner */ "showIcon": false, /* Show cookie icon to manage cookies */ "iconPosition": "BottomRight", /* BottomRight, BottomLeft, TopRight and TopLeft */ "adblocker": false, /* Show a Warning if an adblocker is detected */ "DenyAllCta" : true, /* Show the deny all button */ "AcceptAllCta" : true, /* Show the accept all button when highPrivacy on */ "highPrivacy": true, /* HIGHLY RECOMMANDED Disable auto consent */ "handleBrowserDNTRequest": false, /* If Do Not Track == 1, disallow all */ "removeCredit": false, /* Remove credit link */ "moreInfoLink": true, /* Show more info link */ "useExternalCss": false, /* If false, the tarteaucitron.css file will be loaded */ "useExternalJs": false, /* If false, the tarteaucitron.js file will be loaded */ //"cookieDomain": ".my-multisite-domaine.fr", /* Shared cookie for multisite */ "readmoreLink": PolitiqueCookies, /* Change the default readmore link */ "mandatory": true, /* Show a message about mandatory cookies */ "logoTarteAuCitron": logoTarteAuCitron, /* Logo du bandeau tarteaucitron */ "PolitiqueCookies": PolitiqueCookies /* politique des cookies */ }); </script> ) ['{$gTagManager}' != ''] page.3679 = TEXT page.3679.value ( <script type="text/javascript"> tarteaucitron.user.googletagmanagerId = '{$gTagManager}'; (tarteaucitron.job = tarteaucitron.job || []).push('googletagmanager'); </script> ) [end] ['{$googleAnalytics}' != ''] page.3680 = TEXT page.3680.value ( <script type="text/javascript"> tarteaucitron.user.gajsUa = '{$googleAnalytics}'; (tarteaucitron.job = tarteaucitron.job || []).push('gajs'); </script> ) [end] plugin.tx_news.settings{ categoriesSelect { uidCatTypeJob = {$uidCatTypeJob} uidCatLocal = {$uidCatLocal} uidCatCat = {$uidCatCat} uidCatCorps = {$uidCatCorps} uidCatIntExt = {$uidCatIntExt} uidCatTypeConcours = {$uidCatTypeConcours} } logo = {$page.logo.file} prepareConcours = {$pagePreparerConcours} annales = {$pageAnnales} } #GRIDELEMENT APPEARANCE #On vide le typoscript qui génére le gridelement pour le surcharger lib.bootstrap_grids > lib.bootstrap_grids { # Column grids 2cols < lib.gridelements.defaultGridSetup 2cols { #Si il y a une classe frame alors... wrap.cObject = COA wrap.cObject.10 = COA wrap.cObject.10 { #Si le paramétre parallax est stocké, on met la bonne classe dans un load_register 5 = COA 5 { 5 = LOAD_REGISTER 5.parallax.cObject = TEXT 5.parallax.cObject.value = frame-backgroundimage-parallax if.value.data = flexform:background_image_options:parallax if.equals = 1 } #Si le paramétre fade est stocké, on met la bonne classe dans un load_register 6 = COA 6 { 5 = LOAD_REGISTER 5.fade.cObject = TEXT 5.fade.cObject.value = frame-backgroundimage-fade if.value.data = flexform:background_image_options:fade if.equals = 1 } #Si le paramétre filter est stocké, on met la bonne classe dans un load_register 7 = COA 7 { 5 = LOAD_REGISTER 5.filter.cObject = TEXT 5.filter.cObject.value = frame-backgroundimage-{flexform:background_image_options:filter} 5.filter.cObject.insertData = 1 if.isTrue.data = flexform:background_image_options:filter } #Si il y a un titre 8 = COA 8 { 5 = LOAD_REGISTER 5.headerCol.cObject = CASE 5.headerCol.cObject { key.data = field:header_layout 0 = TEXT 0.value = <h2 class="titleCol">{field:header}</h2> 0.insertData = 1 1 = TEXT 1.value = <h1 class="titleCol">{field:header}</h1> 1.insertData = 1 2 = TEXT 2.value = <h2 class="titleCol">{field:header}</h2> 2.insertData = 1 3 = TEXT 3.value = <h3 class="titleCol">{field:header}</h3> 3.insertData = 1 4 = TEXT 4.value = <h4 class="titleCol">{field:header}</h4> 4.insertData = 1 5 = TEXT 5.value = <h5 class="titleCol">{field:header}</h5> 5.insertData = 1 100 = TEXT 100.value = } if.isTrue.field = header } #On récupére l'url de l'image de fond si il y en a une 10 = CONTENT 10 { table = sys_file_reference select { pidInList = 1 recursive = 99 where = `uid_foreign` = '{field:uid}' where.insertData = 1 } renderObj = FILES renderObj { references { table = tt_content uid.data = field:uid_foreign fieldName = background_image } renderObj = COA renderObj { #On stocke le nom du fichier 5 = LOAD_REGISTER 5.imgBg.data = file:current:identifier #On stocke l'id du domaine où est stocké l'image 6 = LOAD_REGISTER 6.tempDomain.data = file:current:storage #On récupére le nom du domaine dans une variable en fonction de son id 10 = COA 10 { 5 = LOAD_REGISTER 5.domainImg.cObject = TEXT 5.domainImg.cObject.value = {$domainSecond} 5.domainImg.cObject.insertData = 1 if.value.data = register:tempDomain if.equals = 2 } 15 = COA 15 { 5 = LOAD_REGISTER 5.domainImg.cObject = TEXT 5.domainImg.cObject.value = {$domainFirst} 5.domainImg.cObject.insertData = 1 if.value.data = register:tempDomain if.equals = 1 } } } } #On génére le wrap 20 = COA 20 { 10 = TEXT 10 { #Si il n'y a pas d'image value = <div class="frame frame-gridelement insertData = 1 #Si il y a une image value.override = <div class="frame frame-gridelement value.override.if.isTrue.field = background_image } 20 = TEXT 20 { stdWrap { field = layout split { token = , cObjNum = 1 1.current = 1 1.noTrimWrap = | frame-layout-| | } } } 30 = TEXT 30 { #Si il n'y a pas d'image value = frame-background-{field:background_color_class} frame-no-backgroundimage frame-space-before-{field:space_before_class} frame-space-after-{field:space_after_class}"><div class="frame-container">{register:headerCol}<div class="row {field:flexform_rowValign} {field:flexform_rowHalign} {field:flexform_rowCustom}">|</div></div></div> insertData = 1 #Si il y a une image value.override = frame-layout-{field:layout} frame-background-{field:background_color_class} frame-has-backgroundimage frame-space-before-{field:space_before_class} frame-space-after-{field:space_after_class}"><div class="frame-backgroundimage-container"><div id="frame-backgroundimage-{field:uid}" class="frame-backgroundimage {register:parallax} {register:fade} {register:filter}" style="background-image:url('{register:domainImg}{register:imgBg}');"></div></div><div class="frame-container">{register:headerCol}<div class="row {field:flexform_rowValign} {field:flexform_rowHalign} {field:flexform_rowCustom}">|</div></div></div> value.override.if.isTrue.field = background_image } } if.value.field = frame_class if.equals = none if.negate = 1 } #Si il n'y a pas une classe frame alors... wrap.cObject.20 = COA wrap.cObject.20 { #Si le paramétre parallax est stocké, on met la bonne classe dans un load_register 5 = COA 5 { 5 = LOAD_REGISTER 5.parallax.cObject = TEXT 5.parallax.cObject.value = frame-backgroundimage-parallax if.value.data = flexform:background_image_options:parallax if.equals = 1 } #Si le paramétre fade est stocké, on met la bonne classe dans un load_register 6 = COA 6 { 5 = LOAD_REGISTER 5.fade.cObject = TEXT 5.fade.cObject.value = frame-backgroundimage-fade if.value.data = flexform:background_image_options:fade if.equals = 1 } #Si le paramétre filter est stocké, on met la bonne classe dans un load_register 7 = COA 7 { 5 = LOAD_REGISTER 5.filter.cObject = TEXT 5.filter.cObject.value = frame-backgroundimage-{flexform:background_image_options:filter} 5.filter.cObject.insertData = 1 if.isTrue.data = flexform:background_image_options:filter } #Si il y a un titre 8 = COA 8 { 5 = LOAD_REGISTER 5.headerCol.cObject = CASE 5.headerCol.cObject { key.data = field:header_layout 0 = TEXT 0.value = <h2 class="titleCol">{field:header}</h2> 0.insertData = 1 1 = TEXT 1.value = <h1 class="titleCol">{field:header}</h1> 1.insertData = 1 2 = TEXT 2.value = <h2 class="titleCol">{field:header}</h2> 2.insertData = 1 3 = TEXT 3.value = <h3 class="titleCol">{field:header}</h3> 3.insertData = 1 4 = TEXT 4.value = <h4 class="titleCol">{field:header}</h4> 4.insertData = 1 5 = TEXT 5.value = <h5 class="titleCol">{field:header}</h5> 5.insertData = 1 100 = TEXT 100.value = } if.isTrue.field = header } #On récupére l'url de l'image de fond si il y en a une 10 = CONTENT 10 { table = sys_file_reference select { pidInList = 1 recursive = 99 where = `uid_foreign` = '{field:uid}' where.insertData = 1 } renderObj = FILES renderObj { references { table = tt_content uid.data = field:uid_foreign fieldName = background_image } renderObj = COA renderObj { #On stocke le nom du fichier 5 = LOAD_REGISTER 5.imgBg.data = file:current:identifier #On stocke l'id du domain où est stocké l'image 6 = LOAD_REGISTER 6.tempDomain.data = file:current:storage #On récupére le nom du domaine dans une variable en fonction de son id 10 = COA 10 { 5 = LOAD_REGISTER 5.domainImg.cObject = TEXT 5.domainImg.cObject.value = {$domainSecond} 5.domainImg.cObject.insertData = 1 if.value.data = register:tempDomain if.equals = 2 } 15 = COA 15 { 5 = LOAD_REGISTER 5.domainImg.cObject = TEXT 5.domainImg.cObject.value = {$domainFirst} 5.domainImg.cObject.insertData = 1 if.value.data = register:tempDomain if.equals = 1 } } } } #On génére le wrap 20 = COA 20 { 10 = TEXT 10 { #Si il n'y a pas d'image value = <div class="frame-gridelement insertData = 1 #Si il y a une image value.override = <div class="frame-gridelement value.override.if.isTrue.field = background_image } 20 = TEXT 20 { stdWrap { field = layout split { token = , cObjNum = 1 1.current = 1 1.noTrimWrap = | frame-layout-|| } } } 30 = TEXT 30 { #Si il n'y a pas d'image value = frame-background-{field:background_color_class} frame-no-backgroundimage frame-space-before-{field:space_before_class} frame-space-after-{field:space_after_class}">{register:headerCol}<div class="row {field:flexform_rowValign} {field:flexform_rowHalign} {field:flexform_rowCustom}">|</div></div> insertData = 1 #Si il y a une image value.override = frame-background-{field:background_color_class} frame-has-backgroundimage frame-space-before-{field:space_before_class} frame-space-after-{field:space_after_class}"><div class="frame-backgroundimage-container"><div id="frame-backgroundimage-{field:uid}" class="frame-backgroundimage {register:parallax} {register:fade} {register:filter}" style="background-image:url('{register:domainImg}{register:imgBg}');"></div></div>{register:headerCol}<div class="row {field:flexform_rowValign} {field:flexform_rowHalign} {field:flexform_rowCustom}">|</div></div> value.override.if.isTrue.field = background_image } } if.value.field = frame_class if.equals = none } columns { 101 < .default 101.dataWrap = <div class="{field:flexform_xsCol1} {field:flexform_smCol1} {field:flexform_mdCol1} {field:flexform_lgCol1} {field:flexform_xlCol1} {field:flexform_col21class}">|</div> # override if none set (supporting drag&drop) 101.dataWrap.override = <div class="col">|</div> 101.dataWrap.override.if.isNull.field = flexform_xsCol1 101.wrap > 102 < .101 102.dataWrap = <div class="{field:flexform_xsCol2} {field:flexform_smCol2} {field:flexform_mdCol2} {field:flexform_lgCol2} {field:flexform_xlCol2} {field:flexform_col22class}">|</div> 102.dataWrap.override.if.isNull.field = flexform_xsCol2 } } 3cols < .2cols 3cols { columns { 101.dataWrap = <div class="{field:flexform_xsCol1} {field:flexform_smCol1} {field:flexform_mdCol1} {field:flexform_lgCol1} {field:flexform_xlCol1} {field:flexform_col31class}">|</div> 102.dataWrap = <div class="{field:flexform_xsCol2} {field:flexform_smCol2} {field:flexform_mdCol2} {field:flexform_lgCol2} {field:flexform_xlCol2} {field:flexform_col32class}">|</div> 103 < .101 103.dataWrap = <div class="{field:flexform_xsCol3} {field:flexform_smCol3} {field:flexform_mdCol3} {field:flexform_lgCol3} {field:flexform_xlCol3} {field:flexform_col33class}">|</div> 102.dataWrap.override.if.isNull.field = flexform_xsCol3 } } 4cols < .3cols 4cols { columns { 101.dataWrap = <div class="{field:flexform_xsCol1} {field:flexform_smCol1} {field:flexform_mdCol1} {field:flexform_lgCol1} {field:flexform_xlCol1} {field:flexform_col41class}">|</div> 102.dataWrap = <div class="{field:flexform_xsCol2} {field:flexform_smCol2} {field:flexform_mdCol2} {field:flexform_lgCol2} {field:flexform_xlCol2} {field:flexform_col42class}">|</div> 103.dataWrap = <div class="{field:flexform_xsCol3} {field:flexform_smCol3} {field:flexform_mdCol3} {field:flexform_lgCol3} {field:flexform_xlCol3} {field:flexform_col43class}">|</div> 104 < .101 104.dataWrap = <div class="{field:flexform_xsCol4} {field:flexform_smCol4} {field:flexform_mdCol4} {field:flexform_lgCol4} {field:flexform_xlCol4} {field:flexform_col44class}">|</div> 104.dataWrap.override.if.isNull.field = flexform_xsCol4 } } # Tabs simpleTabs < lib.gridelements.defaultGridSetup simpleTabs { outerWrap = <div class="simple-tabs {field:flexform_style}">|</div> outerWrap.insertData = 1 prepend = CONTENT prepend { table = tt_content select { selectFields = header, uid, tx_gridelements_container, sorting where = tx_gridelements_container={field:uid} where.insertData = 1 orderBy = sorting } wrap = <div class="nav nav-tabs" role="tablist">|</div> renderObj = COA renderObj { 5 = LOAD_REGISTER 5 { TabCount.cObject = TEXT TabCount.cObject.data = register:TabCount TabCount.cObject.wrap = |+1 TabCount.prioriCalc = intval } 10 = TEXT 10 { field = header insertData = 1 wrap = | outerWrap.cObject = CASE outerWrap.cObject { key.data = register:TabCount default = TEXT default.value = <a class="nav-item nav-link" id="nav-c{field:uid}-tab" data-toggle="tab" href="#nav-c{field:uid}" role="tab" aria-controls="nav-c{field:uid}">|</a> 1 = TEXT 1.value = <a class="nav-item nav-link active" id="nav-c{field:uid}-tab" data-toggle="tab" href="#nav-c{field:uid}" role="tab" aria-controls="nav-c{field:uid}">|</a> } } } } columns { 101 < .default 101 { wrap = <div class="tab-content">|</div> renderObj { 5 = LOAD_REGISTER 5 { TabCount2.cObject = TEXT TabCount2.cObject.data = register:TabCount2 TabCount2.cObject.wrap = |+1 TabCount2.prioriCalc = intval } stdWrap.insertData = 1 stdWrap.outerWrap.cObject = CASE stdWrap.outerWrap.cObject { key.data = register:TabCount2 default = TEXT default.value = <div class="tab-pane fade" id="nav-c{field:uid}" role="tabpanel" aria-labelledby="nav-c{field:uid}-tab">|</div> 1 = TEXT 1.value = <div class="tab-pane fade show active" id="nav-c{field:uid}"role="tabpanel" aria-labelledby="nav-c{field:uid}-tab">|</div> } # don't show headers in tabs #20 =< tt_content 20 < tt_content 20 { text.10 > image.10 > textpic.10 > uploads.10 > table.10 > multimedia.10 > media.10 > mailform.10 > menu.10 > videoce_videocontent.10 > } } } } # Reset tab counts append = COA append { 5 = LOAD_REGISTER 5 { TabCount.cObject = TEXT TabCount.cObject.data = register:TabCount TabCount.cObject.wrap = |*0 TabCount.prioriCalc = intval } 10 = LOAD_REGISTER 10 { TabCount2.cObject = TEXT TabCount2.cObject.data = register:TabCount2 TabCount2.cObject.wrap = |*0 TabCount2.prioriCalc = intval } } } 4tabs < lib.gridelements.defaultGridSetup 4tabs { # style wrap outerWrap = <div class="{field:flexform_style}">|</div> outerWrap.insertData = 1 prepend = COA prepend.wrap = <ul class="nav nav-tabs" role="tablist">|</ul> prepend { 10 = TEXT 10.value = <li class="nav-item"><a class="nav-link active" id="nav-c{field:uid}-tab1" data-toggle="tab" href="#nav-c{field:uid}-c1" role="tab" aria-controls="nav-c{field:uid}-c1" aria-selected="true">{field:flexform_tabTitle1}</a></li> 10.insertData = 1 20 < .10 20.value = <li class="nav-item"><a class="nav-link" id="nav-c{field:uid}-tab2" data-toggle="tab" href="#nav-c{field:uid}-c2" role="tab" aria-controls="nav-c{field:uid}-c2">{field:flexform_tabTitle2}</a></li> 20.if.isTrue.field = flexform_tabTitle2 30 < .10 30.value = <li class="nav-item"><a class="nav-link" id="nav-c{field:uid}-tab3" data-toggle="tab" href="#nav-c{field:uid}-c3" role="tab" aria-controls="nav-c{field:uid}-c3">{field:flexform_tabTitle3}</a></li> 30.if.isTrue.field = flexform_tabTitle3 40 < .10 40.value = <li class="nav-item"><a class="nav-link" id="nav-c{field:uid}-tab4" data-toggle="tab" href="#nav-c{field:uid}-c4" role="tab" aria-controls="nav-c{field:uid}-c4">{field:flexform_tabTitle4}</a></li> 40.if.isTrue.field = flexform_tabTitle4 } wrap = <div class="tab-content">|</div> columns { 101 < .default 101.wrap = <div class="tab-pane fade show active" id="nav-c{field:uid}-c1" role="tabpanel" aria-labelledby="nav-c{field:uid}-tab1">|</div> 101.wrap.insertData = 1 102 < .101 102.wrap = <div class="tab-pane fade" id="nav-c{field:uid}-c2" role="tabpanel" aria-labelledby="nav-c{field:uid}-tab2">|</div> 102.if.isTrue.field = flexform_tabTitle2 103 < .101 103.wrap = <div class="tab-pane fade" id="nav-c{field:uid}-c3" role="tabpanel" aria-labelledby="nav-c{field:uid}-tab3">|</div> 103.if.isTrue.field = flexform_tabTitle3 104 < .101 104.wrap = <div class="tab-pane fade" id="nav-c{field:uid}-c4" role="tabpanel" aria-labelledby="nav-c{field:uid}-tab4">|</div> 104.if.isTrue.field = flexform_tabTitle4 } } 6tabs < .4tabs 6tabs { prepend { 50 < .10 50.value = <li class="nav-item"><a class="nav-link" id="nav-c{field:uid}-tab5" data-toggle="tab" href="#nav-c{field:uid}-c5" role="tab" aria-controls="nav-c{field:uid}-c5">{field:flexform_tabTitle5}</a></li> 50.if.isTrue.field = flexform_tabTitle5 60 < .10 60.value = <li class="nav-item"><a class="nav-link" id="nav-c{field:uid}-tab6" data-toggle="tab" href="#nav-c{field:uid}-c6" role="tab" aria-controls="nav-c{field:uid}-c6">{field:flexform_tabTitle6}</a></li> 60.if.isTrue.field = flexform_tabTitle6 } columns { 105 < .101 105.wrap = <div class="tab-pane fade" id="nav-c{field:uid}-c5" role="tabpanel" aria-labelledby="nav-c{field:uid}-tab5">|</div> 105.if.isTrue.field = flexform_tabTitle5 106 < .101 106.wrap = <div class="tab-pane fade" id="nav-c{field:uid}-c6" role="tabpanel" aria-labelledby="nav-c{field:uid}-tab6">|</div> 106.if.isTrue.field = flexform_tabTitle6 } } # Accordion accordion < lib.gridelements.defaultGridSetup accordion { # wrap around all outerWrap.stdWrap.cObject = CASE outerWrap.stdWrap.cObject { key.field = flexform_rowclass default = TEXT default.value = <div id="accordion-{field:_LOCALIZED_UID//field:uid}">|</div> } outerWrap.insertData = 1 columns { 101 < .default 101 { renderObj { #stdWrap.outerWrap = <div class="panel panel-default">|</div> 5 = LOAD_REGISTER 5 { AccordionCount.cObject = TEXT AccordionCount.cObject.data = register:AccordionCount AccordionCount.cObject.wrap = |+1 AccordionCount.prioriCalc = intval } 10 = TEXT 10 { field = header insertData = 1 wrap = <div class="card"><div class="card-header" id="heading-c{field:uid}"><h5 class="mb-0"><button class="btn btn-link collapsed" data-toggle="collapse" data-parent="#accordion-{field:tx_gridelements_container}" data-target="#collapse-{field:uid}" aria-expanded="false" aria-controls="collapse-{field:uid}">|</button></h5></div><div id="collapse-{field:uid}" class="collapse" aria-labelledby="heading-c{field:uid}" data-parent="#accordion-{field:tx_gridelements_container}"><div class="card-body"> wrap.override = <div class="card"><div class="card-header" id="heading-c{field:uid}"><h5 class="mb-0"><button class="btn btn-link" data-toggle="collapse" data-parent="#accordion-{field:tx_gridelements_container}" data-target="#collapse-{field:uid}" aria-expanded="false" aria-controls="collapse-{field:uid}">|</button></h5></div><div id="collapse-{field:uid}" class="collapse show" aria-labelledby="heading-c{field:uid}" data-parent="#accordion-{field:tx_gridelements_container}"><div class="card-body"> wrap.override.if.value = 1 wrap.override.if.equals.data = register:AccordionCount } # don't show headers in accordion #20 =< tt_content 20 < tt_content 20 { text.10 > image.10 > textpic.10 > uploads.10 > table.10 > multimedia.10 > media.10 > mailform.10 > menu.10 > videoce_videocontent.10 > } 30 = TEXT 30.wrap = |</div></div></div> } } } # Reset accordion count append = COA append { 5 = LOAD_REGISTER 5 { AccordionCount.cObject = TEXT AccordionCount.cObject.data = register:AccordionCount AccordionCount.cObject.wrap = |*0 AccordionCount.prioriCalc = intval } } } # simple row for content elements and usage with ext:bscolwrap simpleRow < lib.gridelements.defaultGridSetup simpleRow { # row wrap wrap = <div class="row">|</div> columns { # special 111, used as check for conditional fields 111 < .default 111.wrap = | } } } #On vide le tt_content pour le remplir avec notre nouveau wrap tt_content.gridelements_pi1.20.10.setup > tt_content.gridelements_pi1.20.10.setup { 2cols < lib.bootstrap_grids.2cols 3cols < lib.bootstrap_grids.3cols 4cols < lib.bootstrap_grids.4cols tabs4 < lib.bootstrap_grids.4tabs tabs6 < lib.bootstrap_grids.6tabs xSimpleRow < lib.bootstrap_grids.simpleRow } tt_content.gridelements_pi1.20.10.setup.tabsSimple < lib.gridelements.defaultGridSetup tt_content.gridelements_pi1.20.10.setup.tabsSimple { outerWrap = <div class="simple-tabs {field:flexform_style}">|</div> outerWrap.insertData = 1 prepend = CONTENT prepend { table = tt_content select { selectFields = header, uid, tx_gridelements_container, sorting where = tx_gridelements_container={field:uid} where.insertData = 1 orderBy = sorting } wrap = <div class="nav nav-tabs" role="tablist">|</div> renderObj = COA renderObj { 5 = LOAD_REGISTER 5 { TabCount.cObject = TEXT TabCount.cObject.data = register:TabCount TabCount.cObject.wrap = |+1 TabCount.prioriCalc = intval } 10 = TEXT 10 { field = header insertData = 1 wrap = | outerWrap.cObject = CASE outerWrap.cObject { key.data = register:TabCount default = TEXT default.value = <a class="nav-item nav-link" id="nav-c{field:uid}-tab" data-toggle="tab" href="#nav-c{field:uid}" role="tab" aria-controls="nav-c{field:uid}">|</a> 1 = TEXT 1.value = <a class="nav-item nav-link active" id="nav-c{field:uid}-tab" data-toggle="tab" href="#nav-c{field:uid}" role="tab" aria-controls="nav-c{field:uid}">|</a> } } } } columns { 101 < .default 101 { wrap = <div class="tab-content">|</div> renderObj { 5 = LOAD_REGISTER 5 { TabCount2.cObject = TEXT TabCount2.cObject.data = register:TabCount2 TabCount2.cObject.wrap = |+1 TabCount2.prioriCalc = intval } stdWrap.insertData = 1 stdWrap.outerWrap.cObject = CASE stdWrap.outerWrap.cObject { key.data = register:TabCount2 default = TEXT default.value = <div class="tab-pane fade" id="nav-c{field:uid}" role="tabpanel" aria-labelledby="nav-c{field:uid}-tab">|</div> 1 = TEXT 1.value = <div class="tab-pane fade show active" id="nav-c{field:uid}"role="tabpanel" aria-labelledby="nav-c{field:uid}-tab">|</div> } # don't show headers in tabs #20 =< tt_content 20 < tt_content 20 { text.10 > image.10 > textpic.10 > uploads.10 > table.10 > multimedia.10 > media.10 > mailform.10 > menu.10 > videoce_videocontent.10 > } } } } # Reset tab counts append = COA append { 5 = LOAD_REGISTER 5 { TabCount.cObject = TEXT TabCount.cObject.data = register:TabCount TabCount.cObject.wrap = |*0 TabCount.prioriCalc = intval } 10 = LOAD_REGISTER 10 { TabCount2.cObject = TEXT TabCount2.cObject.data = register:TabCount2 TabCount2.cObject.wrap = |*0 TabCount2.prioriCalc = intval } } } tt_content.gridelements_pi1.20.10.setup.accordion < lib.gridelements.defaultGridSetup tt_content.gridelements_pi1.20.10.setup.accordion { # wrap around all outerWrap.stdWrap.cObject = CASE outerWrap.stdWrap.cObject { key.field = flexform_rowclass default = TEXT default.value = <div id="accordion-{field:_LOCALIZED_UID//field:uid}">|</div> } outerWrap.insertData = 1 columns { 101 < .default 101 { renderObj { #stdWrap.outerWrap = <div class="panel panel-default">|</div> 5 = LOAD_REGISTER 5 { AccordionCount.cObject = TEXT AccordionCount.cObject.data = register:AccordionCount AccordionCount.cObject.wrap = |+1 AccordionCount.prioriCalc = intval } 10 = TEXT 10 { field = header insertData = 1 wrap = <div class="card"><div class="card-header" id="heading-c{field:uid}"><h5 class="mb-0"><button class="btn btn-link collapsed" data-toggle="collapse" data-parent="#accordion-{field:tx_gridelements_container}" data-target="#collapse-{field:uid}" aria-expanded="false" aria-controls="collapse-{field:uid}">|</button></h5></div><div id="collapse-{field:uid}" class="collapse" aria-labelledby="heading-c{field:uid}" data-parent="#accordion-{field:tx_gridelements_container}"><div class="card-body"> wrap.override = <div class="card"><div class="card-header" id="heading-c{field:uid}"><h5 class="mb-0"><button class="btn btn-link" data-toggle="collapse" data-parent="#accordion-{field:tx_gridelements_container}" data-target="#collapse-{field:uid}" aria-expanded="false" aria-controls="collapse-{field:uid}">|</button></h5></div><div id="collapse-{field:uid}" class="collapse show" aria-labelledby="heading-c{field:uid}" data-parent="#accordion-{field:tx_gridelements_container}"><div class="card-body"> wrap.override.if.value = 1 wrap.override.if.equals.data = register:AccordionCount } # don't show headers in accordion #20 =< tt_content 20 < tt_content 20 { text.10 > image.10 > textpic.10 > uploads.10 > table.10 > multimedia.10 > media.10 > mailform.10 > menu.10 > videoce_videocontent.10 > } 30 = TEXT 30.wrap = |</div></div></div> } } } # Reset accordion count append = COA append { 5 = LOAD_REGISTER 5 { AccordionCount.cObject = TEXT AccordionCount.cObject.data = register:AccordionCount AccordionCount.cObject.wrap = |*0 AccordionCount.prioriCalc = intval } } } #GRIDELEMENT APPEARANCE #Récupére les catégories pour les champs de catégory lib.champsCategory = COA lib.champsCategory { 5 = LOAD_REGISTER 5 { uidCategory.cObject = TEXT uidCategory.cObject.value.current = 1 firstEle.cObject = TEXT firstEle.cObject.value = 1 } 10 = CONTENT 10 { table = sys_category select { pidInList = 0 uidInList = {register:uidCategory} uidInList.insertData = 1 } renderObj = COA renderObj { 5 = TEXT 5 { field = title wrap = | if { value.data = register:firstEle equals = 1 } } 10 = TEXT 10 { field = title wrap = , | if { value.data = register:firstEle equals = 0 } } 25 = LOAD_REGISTER 25.firstEle.cObject = TEXT 25.firstEle.cObject.value = 0 } } } #Récupére titre page préparer son concours lib.getTitlePreparerConcours = TEXT lib.getTitlePreparerConcours { value = Préparer son concours typolink.parameter = {$pagePreparerConcours} typolink.ATagParams = class="btn btn-primary" } lib.getTitlePreparerConcoursList < lib.getTitlePreparerConcours lib.getTitlePreparerConcoursList.typolink.ATagParams = class="more" #Récupére titre page annales lib.getTitleAnnales = TEXT lib.getTitleAnnales { value = Annales typolink.parameter = {$pageAnnales} typolink.ATagParams = class="more" } lib.getTitleAnnalesDetail = TEXT lib.getTitleAnnalesDetail { value = Voir les annales typolink.parameter = {$pageAnnales} typolink.ATagParams = class="btn btn-secondary" } lib.linkToAdminResults = TEXT lib.linkToAdminResults { wrap = <div class="see-more-item">|</div> if.isTrue = {$pageAdminResultsEnable} value = Résultats administratifs typolink.parameter = {$pageAdminResults} typolink.ATagParams = class="more" } lib.linkToAdmissionResults = TEXT lib.linkToAdmissionResults { wrap = <div class="see-more-item">|</div> if.isTrue = {$pageAdmissionResultsEnable} value = Résultats d’admission typolink.parameter = {$pageAdmissionResults} typolink.ATagParams = class="more" } lib.linkToJuryComposition = TEXT lib.linkToJuryComposition { wrap = <div class="see-more-item">|</div> if.isTrue = {$pageJuryCompositionEnable} value = Composition du jury typolink.parameter = {$pageJuryComposition} typolink.ATagParams = class="more" } lib.toolsSocial = COA_INT lib.toolsSocial { wrap = <ul>|</ul> # twitter 10 = TEXT 10 { wrap = <li class="twitter">|</li> value = <i class="fa-brands fa-twitter"></i> typolink { ATagParams = title="Partager sur twitter" ATagParams = target="_blank" parameter.cObject = COA parameter.cObject { 5 = TEXT 5 { value = https://twitter.com/intent/tweet?url=URLNEWS } } } } # linkedin 20 = TEXT 20 { wrap = <li class="linkedin">|</li> value = <i class="fa-brands fa-linkedin"></i> typolink { ATagParams = title="Partager sur linkedin" parameter.cObject = COA parameter.cObject { 5 = TEXT 5 { value = https://www.linkedin.com/sharing/share-offsite/?url=URLNEWS } } } } 30 = TEXT 30 { wrap = <li class="mail">|</li> value = <i class="fa-regular fa-envelope"></i> typolink { ATagParams = title="Partager par mail" parameter.cObject = COA parameter.cObject { wrap = mailto:?body=|URLNEWS 10 = TEXT 10 { value = {$bodyMailPdfViewer} value.rawUrlEncode = 1 value.insertData = 1 } } } } }