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 = ,&nbsp;|
                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
                }
            }
        }
    }
}