Note

This is a box.

Site Search

Andreas01 スキン for PukiWiki Plus! i18n

Table of Contents

概要

フリーな XHTML/CSS テンプレートである Andreas01 を PukiWiki Plus! i18n に適用しました。 トップに画像を使用した固定幅のブログ的なデザインのスキンです。

PukiWiki らしくないデザインを目標としています。 PukiWiki を個人 CMS として使用している人を主な対象としています。

Tag: PukiWiki Skin

参照

ダウンロード

まだアルファ版です。→ベータになりました。

zip

https://sourceforge.jp/projects/lsx/files/

から andreas01 dev

svn

http://svn.sourceforge.jp/svnroot/lsx/theme/andreas01/

インストール

0. PukiWiki Plus! i18n の svn 最新版を取得、もしくは最新版にアップデートするものとします(少なくとも PLUS_PROTECT_MODE が導入されたリビジョン以上であるものとします)。pukiwiki-plus というディレクトリにインストールしているものとします。

1. ダウンロードした zip ファイルを展開、梱包されているファイルを展開

$ unzip andreas01.zip -d pukiwiki-plus/

※ディレクトリ構造を変えている場合はこの限りではありません。適切に配置してください。

2. default.ini.php を変更

-      define('SKIN_FILE_DEFAULT', SKIN_DIR . 'default.skin.php');
+      define('SKIN_FILE_DEFAULT', SKIN_DIR . 'andreas01/andreas01.skin.php');

基本的にはこれで起動するはずです。

3. 試す

index.php でアクセスするとナビゲーション(編集リンク等)が表示されません。 edit.php からアクセスするとナビゲーションが表示されます。

フッタ(ページ最下部)の Admin リンクから edit.php へ移動できます。

4. 制限

個人CMSとして使用するために、厳密に index.php での編集を不可にするには、pukiwiki.ini.php で PKWK_READONLY を設定します。 edit.php の方には影響がでないようにできています。

defined('PKWK_READONLY') or define('PKWK_READONLY', 0); // 0,1,2,3,4,5

plus:Documents/Role 参照。

さらに厳密に、edit.php へのアクセス制限を設けたい場合には、.htaccess で制限してもよいですが、PukiWiki Plus! i18n には参照も制限する PLUS_PROTECT_MODE というものがあるので、それを利用してみます。edit.php 中で設定します。

defined('PLUS_PROTECT_MODE') or define('PLUS_PROTECT_MODE', 0); // 0,2,3,4,5

plus:Documents/PLUS_PROTECT_MODE 参照。

個人設定

andreas01.skin.php

andreas01.skin.php

  • $frontphoto
    トップページに表示される画像をURLで指定します。
  • $favicon
    favicon を URL で指定します。
  • $page_subtilte
    サイトのサブタイトルを指定できます。 ページの右上の部位に表示されます(サンプルのJust another WordPress weblogの部位)。 オリジナルの Andreas01 テンプレートのその余地があったので一応用意してみました。
  • $adminlink
    フッタにある Admin リンクのリンク先を指定します。edit.php への切り替えになっています。切り替わった状態を Admin モードと呼ぶことにします。
  • $navi_plugin
    Admin モード時に表示するナビゲーションメニュー用に使用するプラグインを指定します。navibar.inc.php, toolbar.inc.php, navibar2.inc.php から選びます。
  • $navibar_arg
    navibar.inc.php を選んだときの navibar への引数
  • $toolbar_arg
    toolbar.inc.php を選んだときの toolbar への引数。navibar2 の設定は Navigation ページで行われる。後記。
  • その他
    他のスキンに適用されなくなりますが問題なければ $page_title, $modifier, $modifierlink を pukiwiki.ini.php ではなくここで設定することも可能です。

default.ini.php

ul, ol リストの左マージンが大きすぎるので、default.ini.php の以下のような部分を編集します。 他のスキンにも影響してしまいますが、pukiwiki がサポートしていないので現状、仕方ありません。

// リスト構造の左マージン
$_ul_left_margin = 0;   // リストと画面左端との間隔(px)
$_ul_margin = 16;       // リストの階層間の間隔(px)
$_ol_left_margin = 0;   // リストと画面左端との間隔(px)
$_ol_margin = 16;       // リストの階層間の間隔(px)
$_dl_left_margin = 0;   // リストと画面左端との間隔(px)
$_dl_margin = 16;        // リストの階層間の間隔(px)
$_list_pad_str = ' class="list%d" style="padding-left:%dpx;margin-left:%dpx"';

// リスト構造の左マージン
$_ul_left_margin = 5;   // リストと画面左端との間隔(px)
$_ul_margin = 16;       // リストの階層間の間隔(px)
$_ol_left_margin = 5;   // リストと画面左端との間隔(px)
$_ol_margin = 16;       // リストの階層間の間隔(px)
$_dl_left_margin = 21;  // リストと画面左端との間隔(px)
$_dl_margin = 16;        // リストの階層間の間隔(px)
$_list_pad_str = ' class="list%d" style="padding-left:0px;margin-left:%dpx"';

padding-left:0px;がミソです。

MenuBar

左部のようなページリストを作成したい場合

#style(class=page){{
-[[Home]]
-[[Page1]]
-[[Page2]]
}}
#style(class=box){{
*Note
This is a box.
}}

のようにします。

SideBar

SideBar ページを作成すると3段組みになります。

検索ボックスは search プラグインの代わりに同梱の wrap_search プラグインを使用すると表示が綺麗に出ます。MenuBar でも同じです。

*Site Search
#wrap_search

Navigation

Admin モードでアクセスした際に表示されるナビゲーションメニューを Navigation ページで設定できます。

$navi_plugin = 'navibar2';

の時に使用されます。

plus:Plugin/navibar2.inc.php 参照

:Footer

フッタ部 (Powered by 上部)に任意の内容を挿入できます。

:Header

ヘッダ部(トップ画像下部)に任意の内容を挿入できます*1

index.php でナビゲーション

index.php ではナビゲーションを表示しない、という仕様になっていますが、 通常の PukiWiki と同様に、index.php でナビゲーションを表示、編集できて良いという場合は、index.php 中の任意の場所に

define('EDIT_OK', 1);

を追加します。

edit.php が邪魔ならば、andreas01.skin.php の $adminlink をコメントアウトし(フッタの Admin リンクが消えます)、edit.php を消去してください。

アップデート

svn で取得した場合は svn update でうまく自分の変更と新しい変更をマージしてくれるかもしれません。

zip をダウンロードして使用している場合は、マージするのに diff3 コマンドを使用できます。

$ diff3 -m MYFILE OLDFILE NEWFILE > MERGEDFILE

これを行うためには、独自設定する前の状態の古いファイルをとっておく必要があります。

UNIX系環境がない場合はちょっとわかりませんが、例えば Web Diff などを使用して、どこが修正されたのかを見ながらチクチク修正していくのはどうでしょう?

コメント

コメントページ


*1 他にいれるべき所が見当たらなかったのでとりあえずここに入れてみました