"網站建置技術文件" 修訂間的差異

出自 NCUCCWiki
前往: 導覽搜尋
(在首頁加上熱點頁面的前十名)
(在首頁加上熱點頁面的前十名)
行 66: 行 66:
  
 
==在首頁加上熱點頁面的前十名==
 
==在首頁加上熱點頁面的前十名==
先新增一個 template 接著進入資料庫
+
先新增一個 template 接著進入資料庫<br/>
在 recentchanges、revision、text 這三個 table 中找到剛剛新增的 template 的相對應欄位
+
在 recentchanges、revision、text 這三個 table 中找到剛剛新增的 template 的相對應欄位<br/>
分別將 rc_id、rev_text_id、old_id 記下來
+
分別將 rc_id、rev_text_id、old_id 記下來<br/>
寫一隻 php 程式進入資料庫 `page` 這個 table 抓出 page_namespace 為 0 的資料
+
寫一隻 php 程式進入資料庫 `page` 這個 table 抓出 page_namespace 為 0 的資料<br/>
按照 page_counter 做遞減排序,即可得到熱點頁面的排名
+
按照 page_counter 做遞減排序,即可得到熱點頁面的排名<br/>
 
     $sql = "SELECT * FROM `page` WHERE page_namespace='0' and `page_title` NOT IN ('".implode("','",$black_list)."') ORDER BY page_counter DESC LIMIT 0,10";
 
     $sql = "SELECT * FROM `page` WHERE page_namespace='0' and `page_title` NOT IN ('".implode("','",$black_list)."') ORDER BY page_counter DESC LIMIT 0,10";
將找到的資料整理後 UPDATE recentchanges、revision、text 這三個 table
+
將找到的資料整理後 UPDATE recentchanges、revision、text 這三個 table<br/>
 
   $list .= $i . '. [['.$res['page_title'].']]('.number_format($res['page_counter']).'次瀏覽)';
 
   $list .= $i . '. [['.$res['page_title'].']]('.number_format($res['page_counter']).'次瀏覽)';
分別更新 rc_new_len  rev_len  old_text
+
分別更新 rc_new_len  rev_len  old_text<br/>
 
   "UPDATE `text` SET `old_text` = '".$list."' WHERE `old_id`=''";
 
   "UPDATE `text` SET `old_text` = '".$list."' WHERE `old_id`=''";
 
   "UPDATE `revision` SET `rev_len` = '".strlen($list)."' WHERE `rev_text_id`=''";
 
   "UPDATE `revision` SET `rev_len` = '".strlen($list)."' WHERE `rev_text_id`=''";
 
   "UPDATE `recentchanges` SET `rc_new_len` = '".strlen($list)."' WHERE `rc_id`=''";
 
   "UPDATE `recentchanges` SET `rc_new_len` = '".strlen($list)."' WHERE `rc_id`=''";
接著在首頁 include 剛剛新增的 template
+
接著在首頁 include 剛剛新增的 template<br/>
熱點頁面就會顯示在首頁了
+
熱點頁面就會顯示在首頁了<br/>
將此 php 程式寫入 crontable 在每日 0 點 1 分時執行,所以每天將更新一次前十名
+
將此 php 程式寫入 crontable 在每日 0 點 1 分時執行,所以每天將更新一次前十名<br/>
只要更改 crontable 的設定就可以修改更新的頻率
+
只要更改 crontable 的設定就可以修改更新的頻率<br/>

於 2008年10月23日 (四) 17:44 的修訂

開放以LDAP帳號登入認證

1、在 /usr/local/etc/openldap/ldap.conf 中加上一行

TLS_REQCERT never

2、修改MediaWiki設定檔LocalSettings.php,增加以下內容:

require_once( 'extensions/LdapAuthentication.php');
$wgAuth = new LdapAuthenticationPlugin();
$wgLDAPDomainNames = array("Portal");
$wgLDAPEncryptionType = array('Portal' => 'ssl');
$wgLDAPServerNames = array("Portal"=>"140.115.17.30");
$wgLDAPSearchStrings = array("Portal"=>"uid=USER-NAME,ou=People,dc=cc,dc=ncu");$wgLDAPUseLocal = true;
$wgLDAPAddLDAPUsers = false;
$wgLDAPUpdateLDAP = false;
$wgLDAPMailPassword = false;
$wgLDAPRetrievePrefs = false;
$wgMinimalPasswordLength = 1;

開放上傳檔案,並設限檔案副檔名類別

1、修改MediaWiki設定檔LocalSettings.php,增加以下內容:

$wgEnableUploads = true;
$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'doc', 'xls', 'ppt', 'pdf', 'docx', 'xlsx', 'pptx', 'vsd', 'pps' );
$wgFileBlacklist = array('html', 'htm', 'js', 'jsb','php', 'phtml', 'php3', 'php4', 'phps','shtml', 'jhtml', 'pl', 'py', 'cgi','exe', 'scr', 'dll', 'msi', 'vbs', 'bat', 'com', 'pif', 'cmd', 'vxd', 'cpl' );

禁止一般使用者建立新帳號

1、修改MediaWiki設定檔LocalSettings.php,增加以下內容:

$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['sysop']['createaccount'] = true;

設定只有登入系統的使用者,才有權利編輯頁面

1、修改MediaWiki設定檔LocalSettings.php,增加以下內容:

$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['user']['edit'] = true;

1、先將計中logo圖檔,上傳放置於mediawiki\skins\wiki.gif
2、修改MediaWiki設定檔LocalSettings.php,增加以下內容:

$wgLogo="https://wiki.cc.ncu.edu.tw/mediawiki/skins/wiki.gif";

設定正確的時區顯示

1、修改MediaWiki設定檔LocalSettings.php,增加以下內容:

$wgLocaltimezone="Asia/Taipei";
$wgLocalTZoffset=date("Z")/60;

網址從/mediawiki/index.php/ 改成 /wiki/ 式網址,以達成縮短網址

1、修改MediaWiki設定檔LocalSettings.php,增加以下內容:

$wgArticlePath = "/wiki/$1";

2、修改/usr/local/etc/apache22/httpd.conf,增加以下內容:

Alias /wiki /home/www/mediawiki/index.php
Alias /index.php /home/www/mediawiki/index.php

加裝 template: languages extensions,以支援英文版 content頁面編輯

1、將此檔檔案:P.tgz下載後,解壓縮到 mediawiki 下的 extensions 資料夾
2、修改MediaWiki設定檔LocalSettings.php,增加以下內容:

require_once( "$IP/extensions/ParserFunctions/ParserFunctions.php" );

加裝 category tree extensions,以支援 subcategory

1、將此檔檔案:C.tgz下載後,解壓縮到 mediawiki 下的 extensions 資料夾
2、修改MediaWiki設定檔LocalSettings.php,增加以下內容:

$wgUseAjax = true;
require_once( 'extensions/CategoryTree/CategoryTree.php' );

加裝 tinymce extensions

1、將此檔檔案:T.tgz下載後,解壓縮到 mediawiki 下的 extensions 資料夾
2、修改MediaWiki設定檔LocalSettings.php,增加以下內容:

$wgUseTinymce = true;
$wgDefaultUserOptions ['showtoolbar'] = 0;
$wgTinymceTheme = "msword";
require_once("$IP/extensions/tinymce/TinyMCE_MW.php");

將登入/登出改為英文

先到 mediawiki/languages/messages/ 資料夾下
複製 MessagesEn.php 中 # Login and logout pages 區段的內容
在 MessagesZh_tw.php 中 取代原本的 #Login and logout pages 區段的內容
即可將 login/logout 相關文字改為英文 (包括登入/註冊頁面)

在首頁加上熱點頁面的前十名

先新增一個 template 接著進入資料庫
在 recentchanges、revision、text 這三個 table 中找到剛剛新增的 template 的相對應欄位
分別將 rc_id、rev_text_id、old_id 記下來
寫一隻 php 程式進入資料庫 `page` 這個 table 抓出 page_namespace 為 0 的資料
按照 page_counter 做遞減排序,即可得到熱點頁面的排名

   $sql = "SELECT * FROM `page` WHERE page_namespace='0' and `page_title` NOT IN ('".implode("','",$black_list)."') ORDER BY page_counter DESC LIMIT 0,10";

將找到的資料整理後 UPDATE recentchanges、revision、text 這三個 table

  $list .= $i . '. [['.$res['page_title'].']]('.number_format($res['page_counter']).'次瀏覽)';

分別更新 rc_new_len rev_len old_text

 "UPDATE `text` SET `old_text` = '".$list."' WHERE `old_id`=";
 "UPDATE `revision` SET `rev_len` = '".strlen($list)."' WHERE `rev_text_id`=";
 "UPDATE `recentchanges` SET `rc_new_len` = '".strlen($list)."' WHERE `rc_id`=";

接著在首頁 include 剛剛新增的 template
熱點頁面就會顯示在首頁了
將此 php 程式寫入 crontable 在每日 0 點 1 分時執行,所以每天將更新一次前十名
只要更改 crontable 的設定就可以修改更新的頻率