Top > PukiWiki > カスタマイズ

カスタマイズ

修正 @ Jun 11, 2010 08:21:35

Tag: PukiWiki

インストールしているプラグイン

ajaxtree.inc.php
Ajax を用いたツリーメニュー
geshi.inc.php
GeSHi を利用してソースコードを色分け表示する。(Plus! へのインストール時の注意点はこちら)
counterlist.inc.php
アクセスカウンタの一覧表をソートして表示
Sonots' PukiWiki プラグインコレクション v2.1
contentsx, get_title, includex, lsx, navix, popularx, readmore, tag, tagcloud, taglist が含まれたパッケージ。ファイル名の最後が x のものは標準プラグインの機能拡張版。tag 関係は カテゴリ機能 を便利にしたもの。
tirenavi.inc.php
同階層の前後ページへのリンクを自動的に表示(自作)。

負荷軽減

pagename_cache.php
get_existpages() で得られるリストをファイルにキャッシュして負荷軽減。
get_existpages を3行で軽くする
get_existpages() で得られるリストをメモリにスタックすることで2回目以降の呼び出し時の負荷軽減。(上記 pagename_cache.php を適用していれば不要)

スキン

P_BLOG/PukiWikiとの連携
P_BLOGのスキンを継承して、P_BLOGのコンテンツに見せかけています。
PukiWiki/Skin
以前使っていたスキンはこちら。

本体の改造

LastModified のフォーマット変更

lib/html.php > catbody

-	$lastmodified = $is_read ?  get_date('D, d M Y H:i:s T', get_filetime($_page)) .
-		' ' . get_pg_passage($_page, FALSE) : '';
+	$lastmodified = $is_read ?  get_date('M d, Y H:i:s', get_filetime($_page)) : '';

あるいは、日本語で表示したい場合は下記のように変更。

	$lastmodified = $is_read ?  format_date(get_filetime($_page)) : '';

ページトップへのリンクを表示する見出しレベルを制限

lib/convert_html.php > class Body extends Element : getAnchor 最終行を変更

-		return array($text . $anchor, $this->count > 1 ? "\n" . $top : '', $autoid);
+		return array($text . $anchor, ($this->count > 1 && $level < 2)? "\n" . $top : '', $autoid);
$level < 見出しレベル

で、この見出しレベル以上ではページトップへのリンクを表示しません。(2にしているので、* では表示するが、** や *** では表示しない。)

リスト構造の左マージン設定解除

スタイルはスタイルシートで統一するため、HTMLに直接記述しないようにコメントアウトしました。
default.ini.php

  1. /////////////////////////////////////////////////
  2. // リスト構造の左マージン
  3. /*
  4. $_ul_left_margin = 0;   // リストと画面左端との間隔(px)
  5. $_ul_margin = 16;       // リストの階層間の間隔(px)
  6. $_ol_left_margin = 0;   // リストと画面左端との間隔(px)
  7. $_ol_margin = 16;       // リストの階層間の間隔(px)
  8. $_dl_left_margin = 0;   // リストと画面左端との間隔(px)
  9. $_dl_margin = 16;        // リストの階層間の間隔(px)
  10. $_list_pad_str = ' class="list%d" style="padding-left:%dpx;margin-left:%dpx"';
  11. */
  12.  
  13. /////////////////////////////////////////////////

プラグイン変更

geshi.inc.php

PukiWiki Plus! で extend/plugin ディレクトリにインストールするために15,17行目を以下のように変更。

// Directory path of GeSHi library
if (!defined('PLUGIN_GESHI_LIB_DIR')) {
-    define('PLUGIN_GESHI_LIB_DIR', PLUGIN_DIR . 'geshi/');
+    define('PLUGIN_GESHI_LIB_DIR', dirname(__FILE__) . '/geshi/');
}

// Directory path of configuration files
if (!defined('PLUGIN_GESHI_CONFIG_DIR')) {
-    define('PLUGIN_GESHI_CONFIG_DIR', PLUGIN_DIR . 'geshi_config/');
+    define('PLUGIN_GESHI_CONFIG_DIR', dirname(__FILE__) . '/geshi_config/');
}

ajaxtree.inc.php

PukiWikiのディレクトリ構成をデフォルトから変更した場合に対応。

// Directory path of cache files
if (!defined('PLUGIN_AJAXTREE_HTML_DIR')) {
-    define('PLUGIN_AJAXTREE_HTML_DIR', 'html/ajaxtree/');
+    define('PLUGIN_AJAXTREE_HTML_DIR', DATA_HOME . 'html/ajaxtree/');
}