Changes for page 学校一覧
Last modified by Super Admin on 2026/03/23 10:15
From version
19.1
edited by Super Admin
on 2026/03/09 11:59
on 2026/03/09 11:59
Change comment:
There is no comment for this version
To version
33.1
edited by XWikiGuest
on 2026/03/22 00:26
on 2026/03/22 00:26
Change comment:
There is no comment for this version
Summary
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. superadmin1 +XWiki.XWikiGuest - 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 ... ... @@ -32,6 +32,11 @@ 32 32 class="sort-toggle #if($sortParam == 'pref')active#end"> 33 33 <svg class="ico ico-fixed-14" viewBox="0 0 24 24"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z"/><circle cx="12" cy="10" r="3"/></svg> 都道府県順 34 34 </a> 55 + #if($listViewerUser != 'XWiki.XWikiGuest') 56 + <a href="/bin/SeitokaiCode/CreateSchool" class="sort-toggle" style="margin-left:var(--sp-2); color:var(--primary); border-color:var(--primary);"> 57 + <svg class="ico ico-fixed-14" viewBox="0 0 24 24"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg> 学校を追加 58 + </a> 59 + #end 35 35 </div> 36 36 </div> 37 37 {{/html}} ... ... @@ -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 - ## 特色ある活動の数 をカウント87 + ## 特色ある活動の数とタイトルを収集 63 63 #set($schoolActivities = $schoolDoc.getObjects('SeitokaiCode.ActivityClass')) 64 64 #set($featuredCount = 0) 90 + #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) 95 + #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"> 108 + #set($sHidden = $!schoolObj.getValue('hidden')) 109 + <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> 113 + #if($sHidden == 1) 114 + <span class="badge-hidden">非表示</span> 115 + #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($s System)#end123 + #if($sSystem && !$sSystem.isEmpty()) ・ #foreach($__sys in $sSystem)#if($foreach.count > 1)・#end$!escapetool.xml($__sys)#end#end 93 93 </div> 94 - ## 特色ある活動 バッジ125 + ## 特色ある活動タイトル 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> 127 + <div class="school-card-featured-titles"> 128 + #foreach($ft in $featuredTitles) 129 + <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> 130 + #end 98 98 </div> 99 99 #end 100 100 <div class="school-card-stats">