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} accesdirectCat = {$page.category.accesdirect} disableBigMenu = {$page.general.disableBigMenu} } //BREADCRUMB dataProcessing.30.special.range = 3|-1 dataProcessing.10 { levels = 2 entryLevel > includeSpacer > special = directory special.value = {$page.general.rootpage} } dataProcessing.20 { levels = > entryLevel > expandAll > includeSpacer > special = directory special.value = {$topMenu} as = topMenu } dataProcessing.1629126321 { if > levels = > includeNotInMenu > special = directory special.value = {$idFolderMenuFooter} } } } lib.contentElement.settings { rootPage = {$page.general.rootpage} accesdirectCat = {$page.category.accesdirect} collectionsCat = {$page.category.collections} } #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 #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 = 0 uidInList = {TSFE:id} uidInList.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.pidInList = {$page.general.rootpage} search.smallFilters.10.select.pidInList.insertData = 1 search.smallFilters.10.select.uidInList > 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 = 0 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 = 1200 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 = IMG_RESOURCE renderObj { 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 = | } } } lib.pageTag = COA lib.pageTag { 5 = LOAD_REGISTER 5.idPage.cObject = TEXT 5.idPage.cObject.value.current = 1 //Tag 10 = CONTENT 10 { 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 { typolink.parameter = /{field:tagSlug} typolink.parameter.insertData = 1 typolink.forceAbsoluteUrl = 1 typolink.ATagParams = class="tag" value = {field:titleTag} value.insertData = 1 } } } lib.pageCollections = COA lib.pageCollections { 5 = LOAD_REGISTER 5.idPage.cObject = TEXT 5.idPage.cObject.value.current = 1 //Collections 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.collections} AND sys_category.sys_language_uid = 0 AND sys_category.deleted = 0 AND sys_category.hidden = 0 where.insertData = 1 } renderObj = TEXT renderObj { typolink.parameter = /{field:catSlug} typolink.parameter.insertData = 1 typolink.forceAbsoluteUrl = 1 typolink.ATagParams = class="collection" value = {field:catTitle} value.insertData = 1 } } } lib.pageTagEN < lib.pageTag lib.pageTagEN { 10.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 10.renderObj.typolink.parameter = /en/{field:tagSlug} } lib.pageCollectionsEN < lib.pageCollections lib.pageCollectionsEN { 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.collections} AND sys_category.sys_language_uid = 1 AND sys_category.deleted = 0 AND sys_category.hidden = 0 10.renderObj.typolink.parameter = /en/{field:catSlug} } lib.pageCollectionsENPid < lib.pageCollectionsEN lib.pageCollectionsENPid { 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.collections} AND sys_category.sys_language_uid = 1 } [page["uid"] == {$page.general.rootpage}] lib.pageCollections > lib.pageCollections = TEXT lib.pageCollectionsEN > lib.pageCollectionsEN = TEXT lib.pageCollectionsENPid > lib.pageCollectionsENPid = TEXT [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 = {$topMenu} pidInList.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 = 0 uidInList = {register:idPage} uidInList.insertData = 1 } renderObj = TEXT renderObj { field = title wrap = | } } } [siteLanguage("languageId") == 1] lib.pageTitle.15.select.pidInList = {$page.general.rootpage} lib.pageTitle.15.select.recursive = 99 lib.pageTitle.15.select.uidInList > 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