Mediawiki 擴展標籤/Categorytree:修訂版本之間的差異

出自六年制學程
跳轉到: 導覽搜尋
(新頁面: 分類:Mediawiki ====(一)資料表==== Mediawiki 的分類樹狀結構藏在以下兩個資料表中:wiki_categorylinks,wiki_page 。 以「福留子孫」 wiki 為例,其根...)
 
第 9 行: 第 9 行:
 
  select cl_to,cl_type,b.page_title from wiki_categorylinks a left join wiki_page b on a.cl_from=b.page_id where cl_to='教育'  && cl_type='subcat'
 
  select cl_to,cl_type,b.page_title from wiki_categorylinks a left join wiki_page b on a.cl_from=b.page_id where cl_to='教育'  && cl_type='subcat'
  
會得到「教育」分類下的所有子分類。
+
會得到「教育」分類下的所有子分類。計有:教師、教育財政、終身學習等三個子分類。
  
 
  select cl_to,cl_type,b.page_title from wiki_categorylinks a left join wiki_page b on a.cl_from=b.page_id where cl_to='教育' && cl_type='page'
 
  select cl_to,cl_type,b.page_title from wiki_categorylinks a left join wiki_page b on a.cl_from=b.page_id where cl_to='教育' && cl_type='page'
 
會得到「教育」分類下的所有共筆頁。
 
會得到「教育」分類下的所有共筆頁。
 +
 +
再對「教育」分類下的「教育財政」再進行遞迴處理,一層層處理下去即可得到整個分類樹。
 +
 +
====(二)外掛目標====
 +
在 wiki 頁中寫下:
 +
<categorytree mode='pages'>某目錄</categorytree>
 +
 +
即可得到以「某目錄」之下的完整分類樹,並以 details 和 summary 組織起來。

2025年2月6日 (四) 21:59的修訂版本

(一)資料表

Mediawiki 的分類樹狀結構藏在以下兩個資料表中:wiki_categorylinks,wiki_page 。 以「福留子孫」 wiki 為例,其根部目錄有一個分類「教育」。

select cl_to,cl_type,b.page_title from wiki_categorylinks a left join wiki_page b on a.cl_from=b.page_id where cl_to='教育'

會得到「教育」分類下的所有子分類和所有共筆頁。

select cl_to,cl_type,b.page_title from wiki_categorylinks a left join wiki_page b on a.cl_from=b.page_id where cl_to='教育'  && cl_type='subcat'

會得到「教育」分類下的所有子分類。計有:教師、教育財政、終身學習等三個子分類。

select cl_to,cl_type,b.page_title from wiki_categorylinks a left join wiki_page b on a.cl_from=b.page_id where cl_to='教育' && cl_type='page'

會得到「教育」分類下的所有共筆頁。

再對「教育」分類下的「教育財政」再進行遞迴處理,一層層處理下去即可得到整個分類樹。

(二)外掛目標

在 wiki 頁中寫下:

<categorytree mode='pages'>某目錄</categorytree>

即可得到以「某目錄」之下的完整分類樹,並以 details 和 summary 組織起來。