page { includeCSS { stylesSavoir = EXT:savoir/Resources/Public/Css/stylesSavoir.scss print = EXT:savoir/Resources/Public/Css/print.css print.media = print } includeJS { readspeaker = https://cdn-eu.readspeaker.com/script/13184/webReader/webReader.js?pids=wr readspeaker.external = 1 } includeJSFooter { readingtime = EXT:savoir/Resources/Public/Js/readingtime.js customSavoir = EXT:savoir/Resources/Public/Js/custom.js } 10{ settings { rootPage = {$page.general.rootpage} } //BREADCRUMB dataProcessing.30.special.range = 3|-1 } } tt_content.menu_card_list { settings { rootPage = {$page.general.rootpage} } } tt_content.menu_card_dir { settings { rootPage = {$page.general.rootpage} } } #DISABLE MENU page.367812 = TEXT page.367812.value ( ) #Folder Stats page.3680 = TEXT page.3680.value ( ) #Max carac pour les cartes de page lib.contentElement.settings.menucard.abstract.crop = 150 //Genere le menu du haut lib.menuHaut = COA lib.menuHaut { wrap =
|
10 = HMENU 10 { special = directory special.value = {$topMenu} wrap =
1 = TMENU 1 { expAll = 1 noBlur = 1 NO = 1 NO { wrapItemAndSub =
  • |
  • ATagTitle = Accès direct {field:title} ATagTitle.insertData = 1 } } } 20 = HMENU 20 { special = directory special.value = {$page.general.topMenuHeader} wrap =
    1 = TMENU 1 { expAll = 1 noBlur = 1 NO = 1 NO { wrapItemAndSub =
  • |
  • ATagTitle = {field:title} ATagTitle.insertData = 1 } } } 20 > } lib.menuHautResponsive < lib.menuHaut lib.menuHautResponsive.wrap =
    |
    [siteLanguage("languageId") == 1] lib.menuHaut.10.1.NO.ATagTitle = {field:title} direct access [end] //Génére le menu du header lib.main = COA lib.main { stdWrap.wrap = 10 = HMENU 10 { special = directory special.value = {$page.general.rootpage} 1 = TMENU 1 { expAll = 1 noBlur = 1 NO = 1 NO { doNotLinkIt = 1 doNotShowLink = 1 wrapItemAndSub.cObject = COA wrapItemAndSub.cObject { wrap = 10 = TEXT 10 { typolink { parameter.data = field:uid returnLast = url } dataWrap = } 20 = FILES 20 { if.isTrue.data = field:nav_icon references { table = pages uid.data = field:uid fieldName = nav_icon } renderObj = COA renderObj { 5 = IMG_RESOURCE 5 { file.import.data = file:current:uid file.treatIdAsReference = 1 file.crop.data = file:current:crop stdWrap.wrap = } } } 30 = TEXT 30 { if.isTrue.data = field:title field = title dataWrap = | } 40 = TEXT 40 { value = } } } ACT < .NO ACT { wrapItemAndSub.cObject.wrap = } CUR < .ACT } } } [siteLanguage("languageId") == 1] lib.main.10.1.NO.wrapItemAndSub.cObject.10.dataWrap = | 10 = HMENU 10 { special = directory special.value = {$page.general.rootpage} 1 = TMENU 1 { expAll = 1 noBlur = 1 NO = 1 NO { before.cObject = FILES before.cObject { if.isTrue.data = field:nav_icon references { table = pages uid.data = field:uid fieldName = nav_icon } renderObj = COA renderObj { 5 = IMG_RESOURCE 5 { file.import.data = file:current:uid file.treatIdAsReference = 1 file.crop.data = file:current:crop stdWrap.wrap = } } } stdWrap.wrap = | wrapItemAndSub = ATagTitle.field = title ATagParams = class="nav-link nav-item-{field:uid}" ATagParams.insertData = 1 } ACT < .NO ACT { wrapItemAndSub = ATagParams = class="nav-link active nav-item-{field:uid}" } CUR < .ACT IFSUB < .NO IFSUB { wrapItemAndSub = ATagParams = class="dropdown-item nav-item-{field:uid}" } ACTIFSUB < .NO ACTIFSUB { wrapItemAndSub = ATagParams = class="dropdown-item active nav-item-{field:uid}" } CURIFSUB < .NO CURIFSUB { wrapItemAndSub = ATagParams = class="dropdown-item active nav-item-{field:uid}" } } 2 < .1 2 { wrap = NO { stdWrap.wrap = | ATagParams = class="dropdown-item" id="nav-item-{field:uid}" } ACT < .NO ACT { ATagParams = class="dropdown-item active" id="nav-item-{field:uid}" } CUR < .ACT IFSUB < .NO IFSUB { wrapItemAndSub = } ACTIFSUB < .IFSUB ACTIFSUB { wrapItemAndSub = ATagParams = class="dropdown-item active" id="nav-item-{field:uid}" } CURIFSUB < .ACTIFSUB } 3 < .2 3 { IFSUB { wrapItemAndSub = } ACTIFSUB { wrapItemAndSub = } } } } //Si le gros menu est désactivé alors on ne génére que les menus de 1er niveau [{$page.general.disableBigMenu}] lib.mainBig.10 { 1 { expAll = 1 noBlur = 1 NO = 1 NO { stdWrap.wrap = | wrapItemAndSub = ATagTitle.field = subtitle // title ATagParams = class="nav-link nav-item-{field:uid}" ATagParams.insertData = 1 } ACT < .NO ACT { wrapItemAndSub = ATagParams = class="nav-link active nav-item-{field:uid}" } CUR < .ACT IFSUB < .NO ACTIFSUB < .ACT } 2 > 3 > } [global] #Domaine de eiffel insti pour le header lib.domainLink = COA lib.domainLink { 10 = IMAGE 10 { file = {$page.logo.institutionnel} file.width = 140 altText = Logo du site institutionnel Eiffel } wrap = wrap.insertData = 1 } lib.domainLinkWithoutImg = TEXT lib.domainLinkWithoutImg { value =
    {LLL:EXT:savoir/Resources/Private/Language/locallang.xlf:domainLink}
    value.insertData = 1 } #Si en EN, prendre les tags EN [siteLanguage("languageId") == 1] lib.domainLink.wrap = lib.domainLinkWithoutImg.wrap =
    {LLL:EXT:savoir/Resources/Private/Language/locallang.xlf:domainLink}
    [end] #Génére les filtres/tags pour la recherche search.filters = HMENU search.filters { stdWrap.dataWrap = | special = list special.value = {$page.search.filters} 1 = TMENU 1 { expAll = 1 noBlur = 1 NO = 1 NO { doNotLinkIt = 1 doNotShowLink = 1 wrapItemAndSub.cObject = COA wrapItemAndSub.cObject { 10 = TEXT 10 { if.isTrue.data = field:title field = title dataWrap = } } } } } #Génére les filtres pour la recherche à partir de la liste des filtres de la page courante search.smallFilters = COA search.smallFilters { 10 = CONTENT 10 { table = pages select { pidInList = {$page.general.rootpage} recursive = 99 where = uid = {TSFE:id} where.insertData = 1 orderBy = pid, sorting } renderObj = LOAD_REGISTER renderObj { listId.cObject = TEXT listId.cObject.field = filters } } 20 = COA 20 { if.isTrue.data = register:listId 10 < search.filters 10.special.value = {register:listId} 10.special.value.insertData = 1 } 30 = COA 30 { if.isFalse.data = register:listId 10 < search.filters 10.special = directory 10.special.value = {TSFE:id} 10.special.value.insertData = 1 } } #Si en EN, prendre les tags EN [siteLanguage("languageId") == 1] search.smallFilters.10.select.where = l10n_source = {TSFE:id} AND sys_language_uid = 1 [end] #Le domaine courant pour la recherche sur le site global lib.searchDomain = TEXT lib.searchDomain { value = value.insertData = 1 } #Lance l'userfunc pour implementer les vues lib.viewCounter = USER_INT lib.viewCounter { userFunc = Wseils\Savoir\Utility\UserFuncs\ViewCounter->viewCounter } lib.menurecentlyupdated = CONTENT lib.menurecentlyupdated { wrap = table = pages select { pidInList = {$page.general.rootpage} pidInList.insertData = 1 recursive = 99 orderBy = starttime DESC where = pid NOT IN ({$page.general.pidExcludeRecently}) AND starttime != 0 max = 6 } renderObj = TEXT renderObj { typolink { parameter.data = field:uid forceAbsoluteUrl = 1 returnLast = url } dataWrap =
  • {field:title}
  • } } #Change l'ordre de tri du menu de catégorie de pages tt_content.menu_categorized_pages.dataProcessing.10.special { sorting = starttime order = desc } #Récupére les tags importants lib.importantsTag = COA lib.importantsTag { wrap =
    |
    # 5 tags par défault sauf si une valeur est donnée 5 = LOAD_REGISTER 5.numberTags.cObject = TEXT 5.numberTags.cObject.value.current = 1 5.numberTags.cObject.ifEmpty = 5 10 = CONTENT 10 { table = tx_news_domain_model_tag select { pidInList = {$page.general.rootpage} pidInList.insertData = 1 recursive = 99 orderBy = tx_wseils_view_counter DESC //max = {register:numberTags} //max.insertData = 1 } renderObj = TEXT renderObj { dataWrap = {field:title} } } } [siteLanguage("languageId") == "1"] lib.importantsTag.10.renderObj.dataWrap = {field:title} [END] #Récupére les catégories pour les cartes de pages lib.cardCategories = COA lib.cardCategories { 5 = LOAD_REGISTER 5.idPage.cObject = TEXT 5.idPage.cObject.value.current = 1 10 = CONTENT 10 { table = pages select { pidInList = {$page.general.rootpage} recursive = 99 selectFields = sys_category.title as catTitle join = sys_category_record_mm ON pages.uid = sys_category_record_mm.uid_foreign JOIN sys_category ON sys_category.uid = sys_category_record_mm.uid_local where = sys_category_record_mm.tablenames = 'pages' AND sys_category_record_mm.uid_foreign = {register:idPage} where.insertData = 1 } renderObj = TEXT renderObj { field = catTitle wrap = | } } } #Récupére le type de la page lib.typePage = COA lib.typePage { 5 = LOAD_REGISTER 5.idPage.cObject = TEXT 5.idPage.cObject.value.current = 1 10 = CONTENT 10 { table = pages select { pidInList = {$page.general.rootpage} recursive = 99 uidInList = {register:idPage} uidInList.insertData = 1 } renderObj = COA renderObj { wrap =

    |

    5 = FILES 5 { if.isTrue.data = field:nav_icon references { table = pages uid.data = field:uid fieldName = nav_icon } renderObj = COA renderObj { 5 = IMG_RESOURCE 5 { file.import.data = file:current:uid file.treatIdAsReference = 1 file.crop.data = file:current:crop stdWrap.wrap = } } } 10 = TEXT 10 { field = subtitle // title wrap = | } } } } #Pour le type en EN lib.typePageEN < lib.typePage lib.typePageEN { 8 = CONTENT 8 { table = pages select { pidInList = {$page.general.rootpage} recursive = 99 where = l10n_source = {register:idPage} where.insertData = 1 } renderObj = LOAD_REGISTER renderObj { pidPage.cObject = TEXT pidPage.cObject.field = uid } } 10.select.uidInList = {register:pidPage} } //Image Banner lib.banner > lib.banner = CONTENT lib.banner { table = sys_file_reference select { pidInList = {TSFE:id} pidInList.insertData = 1 where = `tablenames` = "pages" AND `fieldname` = "bannerimg" where.insertData = 1 max = 1 languageField = 0 } slide = -1 renderObj = FILES renderObj { references { table = pages uid.data = field:uid_foreign fieldName = bannerimg } renderObj = IMG_RESOURCE renderObj { file.import.data = file:current:uid file.treatIdAsReference = 1 file.crop.data = file:current:crop file.maxW = 1500 stdWrap.wrap = | } } } //Titre et surtitre de la page page.title { wrap =
    |
    10 > 15 = FILES 15 { if.isTrue.data = field:nav_icon references { table = pages uid.data = field:uid fieldName = nav_icon } renderObj = COA renderObj { 5 = IMG_RESOURCE 5 { file.import.data = file:current:uid file.treatIdAsReference = 1 file.crop.data = file:current:crop stdWrap.wrap = } } } } page.titleSection < page.title page.titleSection.wrap = | page.titleSection.20.value =

    {page:title}

    [page["uid"] == {$detailActu}] page.title.15.value > [end] //Récupère l'image d'une page dans un contenu menu lib.imgPageThumbnail = COA lib.imgPageThumbnail { 5 = LOAD_REGISTER 5.idPage.cObject = TEXT 5.idPage.cObject.value.current = 1 15 = FILES 15 { references { table = pages uid.data = register:idPage fieldName = thumbnail } maxItems = 1 renderObj = IMAGE renderObj { file.import.dataWrap = {file:current:storage}:{file:current:identifier} altText.data = file:current:title file.crop.data = file:current:crop file.width = 750px wrap = | } } } #Récupére toutes les infos tags, catégories et collections de la page lib.pageTags = COA lib.pageTags { wrap =
    |
    5 = LOAD_REGISTER 5.idPage.cObject = TEXT 5.idPage.cObject.value.current = 1 //Categorie 10 = CONTENT 10 { table = pages select { pidInList = {$page.general.rootpage} recursive = 99 selectFields = sys_category.title as catTitle, sys_category.slug as catSlug join = sys_category_record_mm ON pages.uid = sys_category_record_mm.uid_foreign JOIN sys_category ON sys_category.uid = sys_category_record_mm.uid_local where = sys_category_record_mm.tablenames = 'pages' AND sys_category_record_mm.uid_foreign = {register:idPage} AND sys_category.parent = {$page.category.accesdirect} AND sys_category.sys_language_uid = 0 AND sys_category.deleted = 0 AND sys_category.hidden = 0 where.insertData = 1 } renderObj = TEXT renderObj { dataWrap = #{field:catTitle} } } //Tag 20 = CONTENT 20 { table = pages select { pidInList = {$page.general.rootpage} recursive = 99 selectFields = tx_news_domain_model_tag.title as titleTag, tx_news_domain_model_tag.slug as tagSlug join = tx_news_domain_model_news_tag_mm ON pages.uid = tx_news_domain_model_news_tag_mm.uid_local JOIN tx_news_domain_model_tag ON tx_news_domain_model_tag.uid = tx_news_domain_model_news_tag_mm.uid_foreign where = tx_news_domain_model_news_tag_mm.uid_local = {register:idPage} AND tx_news_domain_model_tag.deleted = 0 AND tx_news_domain_model_tag.hidden = 0 where.insertData = 1 orderBy = tx_news_domain_model_news_tag_mm.sorting } renderObj = TEXT renderObj { dataWrap = {field:titleTag} } } //Collections 30 < .10 30 { select.where = sys_category_record_mm.tablenames = 'pages' AND sys_category_record_mm.uid_foreign = {register:idPage} AND sys_category.parent = {$page.category.collections} AND sys_category.sys_language_uid = 0 AND sys_category.deleted = 0 AND sys_category.hidden = 0 renderObj.dataWrap = {field:catTitle} } } #Pour toutes les infos en EN lib.pageTagsEN < lib.pageTags lib.pageTagsEN { 10.select.join = sys_category_record_mm ON pages.uid = sys_category_record_mm.uid_foreign JOIN sys_category ON sys_category.l10n_parent = sys_category_record_mm.uid_local 10.select.where = sys_category_record_mm.tablenames = 'pages' AND sys_category_record_mm.uid_foreign = {register:idPage} AND sys_category.parent = {$page.category.accesdirect} AND sys_category.sys_language_uid = 1 AND sys_category.deleted = 0 AND sys_category.hidden = 0 10.renderObj.dataWrap = #{field:catTitle} 20.select.join = tx_news_domain_model_news_tag_mm ON pages.uid = tx_news_domain_model_news_tag_mm.uid_local JOIN tx_news_domain_model_tag ON tx_news_domain_model_tag.l10n_parent = tx_news_domain_model_news_tag_mm.uid_foreign 20.renderObj.dataWrap = {field:titleTag} 30.select.join = sys_category_record_mm ON pages.uid = sys_category_record_mm.uid_foreign JOIN sys_category ON sys_category.l10n_parent = sys_category_record_mm.uid_local 30.select.where = sys_category_record_mm.tablenames = 'pages' AND sys_category_record_mm.uid_foreign = {register:idPage} AND sys_category.parent = {$page.category.collections} AND sys_category.sys_language_uid = 1 AND sys_category.deleted = 0 AND sys_category.hidden = 0 30.renderObj.dataWrap = {field:catTitle} } lib.pageTagsENPid < lib.pageTagsEN lib.pageTagsENPid { 8 = CONTENT 8 { table = pages select { pidInList = {$page.general.rootpage} recursive = 99 where = l10n_source = {register:idPage} where.insertData = 1 } renderObj = LOAD_REGISTER renderObj { pidPage.cObject = TEXT pidPage.cObject.field = uid } } 10.select.where = sys_category_record_mm.tablenames = 'pages' AND sys_category_record_mm.uid_foreign = {register:pidPage} AND sys_category.parent = {$page.category.accesdirect} AND sys_category.sys_language_uid = 1 20.select.where = tx_news_domain_model_news_tag_mm.uid_local = {register:pidPage} 30.select.where = sys_category_record_mm.tablenames = 'pages' AND sys_category_record_mm.uid_foreign = {register:pidPage} AND sys_category.parent = {$page.category.collections} AND sys_category.sys_language_uid = 1 } [page["uid"] == {$page.general.rootpage}] lib.pageTags.30 > lib.pageTagsEN.30 > lib.pageTagsENPid.30 > [global] //Récupère les images d'une page pour le bloc aller plus loin lib.pageImages = FILES lib.pageImages { references { table = pages uid.data = TSFE:id fieldName = images } renderObj = IMAGE renderObj { file.import.dataWrap = {file:current:storage}:{file:current:identifier} altText.data = file:current:title file.crop.data = file:current:crop file.width = 100px wrap = | } } //Récupère les collections d'une page pour le bloc aller plus loin lib.pageCollection = CONTENT lib.pageCollection { table = pages select { pidInList = {$page.general.rootpage} recursive = 99 selectFields = sys_category.title as catTitle, sys_category.slug as catSlug join = sys_category_record_mm ON pages.uid = sys_category_record_mm.uid_foreign JOIN sys_category ON sys_category.uid = sys_category_record_mm.uid_local where = sys_category_record_mm.tablenames = 'pages' AND sys_category_record_mm.uid_foreign = {TSFE:id} AND sys_category.parent = {$page.category.collections} where.insertData = 1 } renderObj = TEXT renderObj { field = catTitle wrap = | } } #Récupère les accès directs pour en faire un sélect pour la recherche search.select = CONTENT search.select { table = pages select { pidInList = {$page.general.rootpage} recursive = 99 where = pid = {$topMenu} where.insertData = 1 } renderObj = COA_INT renderObj { 10 = COA 10 { 10 = LOAD_REGISTER 10 { value.field = title value.replacement { 10 { search = # replace = wrap = | } } } 20 = TEXT 20 { value = insertData = 1 } } } //Titre du dossier lib.pageTitle = COA lib.pageTitle { 5 = LOAD_REGISTER 5.idPage.cObject = TEXT 5.idPage.cObject.value.current = 1 15 = CONTENT 15 { table = pages select { pidInList = {$page.general.rootpage} recursive = 99 where = uid = {register:idPage} where.insertData = 1 } renderObj = TEXT renderObj { field = title wrap = | } } } [siteLanguage("languageId") == 1] lib.pageTitle.15.select.where = l10n_source = {register:idPage} AND sys_language_uid = 1 [end] //Récupère le nom de la page mère page.titleParent = TEXT page.titleParent.value = [{$page.general.foldersId} in tree.rootLineParentIds && page["pid"] != {$page.general.foldersId}] page.titleParent < lib.pageTitle page.titleParent.15.renderObj.wrap =

    |

    [end] //Retourne l'id de la page courante lib.currentPageId = TEXT lib.currentPageId.data = TSFE:id //Récupère les contenus pour le bloc de partage lib.shareText = CONTENT lib.shareText { table = tt_content select { orderBy = sorting pidInList = {$page.general.shareBloc} } } //Récupère les contenus pour la modal de partage lib.shareModal = CONTENT lib.shareModal { table = tt_content select { orderBy = sorting pidInList = {$page.general.shareModal} } } lib.citation.10 { 10.renderObj { params = if.isFalse.data = file:current:shareImage } 20 < .10 20.renderObj { params = data-share="no" if > if.isTrue.data = file:current:shareImage } } page.1224.value = {$page.category.collections} page.1224.value.insertData = 1 page.1225.value = {$page.category.accesdirect} page.1225.value.insertData = 1 page.1226.value = {$page.module.listFR} page.1226.value.insertData = 1 page.1227.value = {$page.module.listEN} page.1227.value.insertData = 1