Changes for page 学校一覧

Last modified by Super Admin on 2026/03/23 10:15

From version Icon 16.1 Icon
edited by XWikiGuest
on 2026/03/08 09:23
Change comment: There is no comment for this version
To version Icon 28.1 Icon
edited by Super Admin
on 2026/03/18 12:01
Change comment: There is no comment for this version

Summary

Details

Icon Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.XWikiGuest
1 +XWiki.superadmin
Content
... ... @@ -3,17 +3,37 @@
3 3  ## ソート: 更新順(デフォルト)/ 都道府県順
4 4  ## カード形式で表示し、活動数・投稿数・最終更新日を表示
5 5  
6 +## --- 閲覧者情報(非表示校フィルタ用) ---
7 +#set($listViewerUser = $xcontext.user)
8 +#set($isListAdmin = false)
9 +#if($listViewerUser != 'XWiki.XWikiGuest')
10 + #set($listViewerDoc = $xwiki.getDocument($listViewerUser))
11 + #set($listViewerAccountType = $!listViewerDoc.getValue('accountType'))
12 + #if($listViewerAccountType == 'admin')
13 + #set($isListAdmin = true)
14 + #end
15 +#end
16 +
6 6  #set($sortParam = $!request.sort)
7 7  #if(!$sortParam || $sortParam == '')
8 8   #set($sortParam = 'updated')
9 9  #end
10 10  
11 -## ソート順に応じたXWQLクエリ
12 -#if($sortParam == 'pref')
13 - #set($query = $services.query.xwql("from doc.object(SeitokaiCode.SchoolClass) as school order by school.prefecture, school.schoolName"))
22 +## ソート順に応じたXWQLクエリ(非表示校フィルタ付き)
23 +#if($isListAdmin)
24 + ## 管理者: 全校表示
25 + #if($sortParam == 'pref')
26 + #set($query = $services.query.xwql("from doc.object(SeitokaiCode.SchoolClass) as school order by school.prefecture, school.schoolName"))
27 + #else
28 + #set($query = $services.query.xwql("from doc.object(SeitokaiCode.SchoolClass) as school order by doc.date desc"))
29 + #end
14 14  #else
15 - ## 更新順: ドキュメントの最終更新日でソート(降順)
16 - #set($query = $services.query.xwql("from doc.object(SeitokaiCode.SchoolClass) as school order by doc.date desc"))
31 + ## 一般: 非表示校を除外
32 + #if($sortParam == 'pref')
33 + #set($query = $services.query.xwql("from doc.object(SeitokaiCode.SchoolClass) as school where (school.hidden <> 1 or school.hidden is null) order by school.prefecture, school.schoolName"))
34 + #else
35 + #set($query = $services.query.xwql("from doc.object(SeitokaiCode.SchoolClass) as school where (school.hidden <> 1 or school.hidden is null) order by doc.date desc"))
36 + #end
17 17  #end
18 18  #set($results = $query.execute())
19 19  
... ... @@ -59,13 +59,15 @@
59 59   #set($actCount = $schoolDoc.getObjects('SeitokaiCode.ActivityClass').size())
60 60   ## 投稿数をカウント(全活動の投稿合計)
61 61   #set($postCount = $schoolDoc.getObjects('SeitokaiCode.ActivityPostClass').size())
62 - ## 特色ある活動の数をカウン
82 + ## 特色ある活動の数とタイルを収集
63 63   #set($schoolActivities = $schoolDoc.getObjects('SeitokaiCode.ActivityClass'))
64 64   #set($featuredCount = 0)
85 + #set($featuredTitles = [])
65 65   #if($schoolActivities)
66 66   #foreach($sa in $schoolActivities)
67 67   #if($!sa.getValue('featured') == '1')
68 68   #set($featuredCount = $featuredCount + 1)
90 + #set($discard = $featuredTitles.add($!sa.getValue('title')))
69 69   #end
70 70   #end
71 71   #end
... ... @@ -78,10 +78,14 @@
78 78   </div>
79 79   #end
80 80  
81 - <a href="$schoolDoc.getURL('view')" class="school-card">
103 + #set($sHidden = $!schoolObj.getValue('hidden'))
104 + <a href="$schoolDoc.getURL('view')" class="school-card #if($sHidden == 1)school-card-hidden#end">
82 82   <div class="school-card-body">
83 83   <div class="school-card-header-row">
84 84   <div class="school-card-name">$!escapetool.xml($sName)</div>
108 + #if($sHidden == 1)
109 + <span class="badge-hidden">非表示</span>
110 + #end
85 85   #if($sEst)
86 86   <span class="school-card-badge #if($sEst == '公立')public#elseif($sEst == '私立')private#else national#end">$!escapetool.xml($sEst)</span>
87 87   #end
... ... @@ -89,12 +89,14 @@
89 89   <div class="school-card-meta">
90 90   $!escapetool.xml($sPref) $!escapetool.xml($sCity)
91 91   #if($sCoed) ・ $!escapetool.xml($sCoed)#end
92 - #if($sSystem) ・ $!escapetool.xml($sSystem)#end
118 + #if($sSystem && !$sSystem.isEmpty())#foreach($__sys in $sSystem)#if($foreach.count > 1)・#end$!escapetool.xml($__sys)#end#end
93 93   </div>
94 - ## 特色ある活動バッジ
120 + ## 特色ある活動タイトル
95 95   #if($featuredCount > 0)
96 - <div class="school-card-featured-wrap">
97 - <span class="badge-featured"><svg class="ico ico-fixed-14" viewBox="0 0 24 24" fill="currentColor" stroke="none"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"/></svg> 特色ある活動 ${featuredCount}件</span>
122 + <div class="school-card-featured-titles">
123 + #foreach($ft in $featuredTitles)
124 + <span class="featured-title-item"><svg class="ico ico-fixed-12" viewBox="0 0 24 24" fill="currentColor" stroke="none"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"/></svg> $!escapetool.xml($ft)</span>
125 + #end
98 98   </div>
99 99   #end
100 100   <div class="school-card-stats">