Changes for page Per Sort
From version 52.1
edited by Andrea Omicini
on 09/07/2023 15:28
on 09/07/2023 15:28
Change comment:
There is no comment for this version
To version 53.1
edited by Andrea Omicini
on 11/01/2024 23:44
on 11/01/2024 23:44
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,127 +1,1 @@ 1 -{{velocity}} 2 -{{html clean="false" wiki="true"}} 3 -#template('apice_macros.vm') 4 -#setobjectspace("Talks") 5 -#template('apice_talk_macros.vm') 6 -#template('apice_user_param.vm') 7 -## SORT / START 8 -#set( $sortPar = $request.sort.trim().toLowerCase() ) 9 -#if( $sortPar != "" && $talkSorts.contains($sortPar) ) 10 - #set( $sortList = [$sortPar] ) 11 - #set( $oneSort = true ) 12 -#else 13 - #set( $sortList = $talkSorts ) 14 - #set( $oneSort = false ) 15 -#end 16 -## SORT / END 17 -## 18 -## DATA STRUCTURES / START 19 -#set( $itemMap = {} ) 20 -#set( $itemNo = 0 ) 21 -## cycle over years 22 -#foreach( $sort in $sortList ) 23 - #set( $query = ", BaseObject as objTalk, DateProperty as propDate #if( $oneUser ), LargeStringProperty as propSpeakers, LargeStringProperty as propAuthors #end, StringProperty as propSort 24 - where objTalk.name = doc.fullName and objTalk.className = '${mainSpace}.Class' and objTalk.name <> '${objectPool}.Template' and propDate.id.id = objTalk.id and propSort.id.id = objTalk.id and propDate.name = 'date' #if( $oneUser ) and propSpeakers.id.id = objTalk.id and propAuthors.id.id = objTalk.id and propSpeakers.name = 'speakers' and propAuthors.name = 'authors' and ( propSpeakers.value like '$userString' or propAuthors.value like '$userString' ) #end and propSort.name = 'sort' and lower(propSort.value) = '$sort' order by propDate.value desc" ) 25 -## execute query new 26 - #set( $itemFound = $xwiki.searchDocuments($query) ) 27 -## set counters 28 - #set( $itemSortNo = $itemFound.size() ) 29 - #if( $itemSortNo > 0 ) 30 - #set( $itemMap[$sort] = $itemFound ) 31 - #set( $itemNo = $itemNo + $itemSortNo ) 32 - #end 33 -#end 34 -## 35 -#if( $oneUser ) 36 -## remove duplicates / start 37 - #set( $itemNo = 0 ) 38 - #set( $itemMapNoDup = {} ) 39 - #foreach( $sort in $itemMap.keySet() ) 40 - #set( $itemMapNoDup[$sort] = [] ) 41 - #foreach( $talk in $itemMap[$sort] ) 42 - #if( !$itemMapNoDup[$sort].contains($talk) ) 43 - #set( $discard = $itemMapNoDup[$sort].add($talk) ) 44 - #end 45 - #end 46 - #set( $itemSortNo = $itemMapNoDup[$sort].size() ) 47 - #set( $itemNo = $itemNo + $itemSortNo ) 48 - #end 49 - #set( $itemMap = $itemMapNoDup ) 50 -## remove duplicates / end 51 -#end 52 -## DATA STRUCTURES / END 53 -## 54 -## DISPLAY / START 55 -## page subtitle 56 -<div class="mainheader"> 57 -$itemNo 58 -#if( $itemNo == 1 ) 59 - #if( $oneSort ) 60 - $services.localization.render("Talks.Class_sort_${sortPar}").toLowerCase() 61 - #else 62 - $services.localization.render('talk').toLowerCase() 63 - #end 64 -#else 65 - #if( $oneSort ) 66 - $services.localization.render("Talks.Class_sort_${sortPar}_plural").toLowerCase() 67 - #else 68 - $services.localization.render('talks').toLowerCase() 69 - #end 70 -#end 71 -#if( $oneUser ) 72 - <span class="textsecondary"> / </span> 73 - $userFirstName $userLastName 74 -#end 75 -</div> 76 -## stop if no talks are found 77 -#if( $itemNo == 0 || $itemMap.keySet().size() == 0 ) 78 -## redundant double check 79 - #stop 80 -#end 81 -## some talks found 82 -## page index 83 -#if( $itemMap.keySet().size() > 1 ) 84 -## found more than one sort 85 -<div class="mainselectbar" id="index"> 86 - #foreach( $sort in $itemMap.keySet() ) 87 - #if( !$foreach.first ) 88 -  •  89 - #end 90 - [[$services.localization.render("Talks.Class_sort_${sort}_plural").toLowerCase()>>||anchor="$sort"]] 91 - #end 92 -</div> 93 -#end 94 -## talks displayed per sort 95 -#foreach( $sort in $itemMap.keySet() ) 96 -## sort top / start 97 -<div id="$sort" class="mainselectseparator"> 98 - <a class="mainselectseparatorlink" href=$xwiki.getURL($doc,"view","sort=$sort#if( $apiceUser )&user=$userName#elseif( $oneUser )&name=$userFirstName&surname=$userLastName#end")> 99 - $services.localization.render("Talks.Class_sort_${sort}_plural").toLowerCase() 100 - </a> 101 -</div> 102 -## sort top / end 103 -## 104 -## sort display / start 105 -<div style="font-style: normal"><ul> 106 - #foreach( $item in $itemMap[$sort] ) 107 -<li>#talklinked($item)</li> 108 - #end 109 -</ul></div> 110 -## sort display / end 111 -## 112 -## sort bottom / start 113 -<div #if( $foreach.last )id="bottom"#end class="mainselectbottom"> 114 - #set( $itemSortNo = $itemMap[$sort].size() ) 115 - $itemSortNo 116 - #if( $itemSortNo == 1 ) 117 - $services.localization.render("Talks.Class_sort_${sort}").toLowerCase() 118 - #else 119 - $services.localization.render("Talks.Class_sort_${sort}_plural").toLowerCase() 120 - #end 121 -  •  122 - #anchorlinks() 123 -</div> 124 -## sort bottom / end 125 -#end 126 -{{/html}} 127 -{{/velocity}}{{pageDisplay sort="objectservice"/}} 1 +{{include reference="Showcase" excludeFirstHeading="true"/}}{{include reference="Classes.Users.PerSort" excludeFirstHeading="true"/}}