Geeklog テーマエディタプラグイン

# Geeklogテーマエディタプラグイン [v1.1.3]

by mystral-kk [geeklog@mystral-kk.net]
2008年 9月26日

## 目次

- 概要
- 改訂履歴
- 謝辞
- プラグインのインストール
- プラグインのアンインストール
- プラグインの設定
- プラグインのアップグレード
- 使用法
- ライセンス

### 概要

テーマエディタを使うと、オンラインでテンプレートファイル(*.thtml)とカスケィディングスタイルシートファイル(*.css)を編集できます。このプラグインを使えば、テンプレートファイルを変更する度にアップロードする必要はなくなります。

### 改訂履歴

日付 | バージョン | 説明
--- | --- | ---
2008年 9月26日 | 1.1.3 | [Fix] 大文字小文字を区別しないファイルシステム（MS Windowsなど）で、インクルードファイルが直接アクセスされるのを防ぐ措置を追加しました。
2008年 9月14日 | 1.1.2 | [Fix] PHP-4.xで起こるエラーを避けるため、htmlentities(), html_entity_decode()関数を使用しないようにしました。
2008年 8月18日 | 1.1.1 | [Fix] DokuWikiプラグインと協調できるように修正しました。
2008年 8月11日 | 1.1.0 | [New] Geeklog-1.5.0でも動作するよう更新。 [New] Geeklog-1.5.0のコンフィギュレーションUIを使用するよう更新。
2007年 3月29日 | 1.0.5 | [Fix] アポストロフィを含むパスを正しく処理するように変更。 [New] すべてのテーマを自動的に利用可能にするオプションを追加。（プラグインの設定を参照のこと。） [New] テーマに関するすべてのファイル(*.thtml, *.css)を自動的に利用可能にするオプションを追加。（プラグインの設定を参照のこと。）
2006年12月21日 | 1.0.4 | [New] 各テーマディレクトリ下の images ディレクトリに画像をアップロードする機能を追加。 [New] ファイル名ドロップダウンリストで、ファイル名ではなく機能名を表示するように変更。
2006年11月 7日 | 1.0.3 | [Fix] デフォルトの言語が日本語の場合に対応(Thanks, Kemal and Tsuchi)。 [New] テンプレートファイル名を大幅に追加(Thanks, Ivy)。
2006年11月 2日 | 1.0.2 | [Fix] magic_quotes_gpcがオンの場合に対応(Thanks, samstone)。
2006年10月 1日 | 1.0.0 | 初期バージョン

### 謝辞

- 有益なアイデアを提供してくれたGeeklog.jpのメンバーに、
- Geeklogを開発・維持してくれるGeeklogのコア開発チームに、

感謝します。

### プラグインのインストール

以下の説明で、

- <geeklog_dir>は、システムの config.php が存在するディレクトリ
- <admin>は、管理者用ファイルが存在するディレクトリ（ふつうは、<public_html>ディレクトリの下）

を表しています。

1. テーマエディタプラグインはテーブルを追加するので、管理者メニューの「DBのバックアップ」やphpMyAdminを使用して、事前にGeeklogのデータベースをバックアップしておきます。
2. テーマエディタプラグインのアーカイブを<geeklog_dir>/pluginsディレクトリに展開します。themeditという名前のディレクトリができます。
3. adminディレクトリを作ります。<admin>/plugins/ ディレクトリの下に themeditという名前のディレクトリを作ります。
4. <geeklog_dir>/plugins/themedit/ ディレクトリに移動します。adminディレクトリの内容を、3.で作成した <admin>/plugins/themedit/ ディレクトリにコピーします。
5. themeditディレクトリの config.php ファイルを編集し、データベースのテーブルのプレフィックスと編集対象テーマ、編集対象ファイルなどを設定します。デフォルトでは、Geeklogのテーブルのプレフィックスを使用し、themedit admin以外のアクセスを認めないようになっています。
6. Rootユーザーとしてログインし、プラグインエディタからインストールを実行します。失敗した場合には、エラーログ（error.log）を調べます。この時点で、テーマエディタプラグインはインストールされ、機能しているはずです。テーマエディタアイコンをクリックすると、管理機能ページへジャンプするでしょう。
7. セキュリティを設定します。インストール直後には、テーマエディタプラグインの管理権限(themedit admin)を持っているのは、Rootユーザーだけです。ユーザーエディタやグループエディタを使用して、管理権限を他の人やグループに委譲することができます
8. [***** 注意1 *****]編集するテーマが入っているディレクトリのパーミッションを757、編集するファイルのパーミッションを646に変更する必要があります。
9. [***** 注意2 *****] <admin>/plugins/ ディレクトリ内の preview.html と preview.css のパーミッションを646に変更する必要があります。

注意: テーマエディタプラグインではかなりJavaScriptを使用しています。快適な操作性を得るには、JavaScriptをオンにすることを強くお勧めします。

### プラグインのアンインストール

1. プラグインエディタから、テーマエディタプラグインをアンインストールします。このとき、テーマエディタプラグインが使用していたテーブルは破棄され、その中に記録されていたデータも削除されます。
2. インストールの過程で作成した 2つのディレクトリ（<geeklog-dir>/plugins/themedit/ と <admin>/plugins/themedit/ を削除します。
3. [***** 注意 *****]インストール時に変更したディレクトリとファイルのパーミッションを元に戻します。たとえば、ディレクトリは755、ファイルは644に変更します。

### プラグインの設定

プラグインのconfig.phpでが、次の値を設定できます:

変数名 | タイプ | 説明
--- | --- | ---
`$_THM_CONF['allowed_themes']` | テーマ名の配列 | このプラグインを使用して編集するテーマ名（大文字小文字を区別します）を設定します。デフォルト値は、'professional' です。
`$_THM_CONF['allowed_files']` | ファイル名の配列 | このプラグインを使用して編集するファイル名（大文字小文字を区別します）を設定します。テンプレートファイル(*.thtml)とカスケィディングスタイルシートファイル(*.css)を指定できます。
`$_THM_CONF['resync_database']` | 'auto', 'manual', 'ignore'のどれか | `$_THM_CONF['allowed_themes']`にテーマを、`$_THM_CONF['allowed_files']`にファイルを追加・削除する度に、テーマエディタプラグインは自動的に検出します。 'auto' -- プラグインはデータベースに保存されているデータを更新します。 'manual' -- プラグインは更新情報と、「データベースを更新」ボタンを表示します。 'ignore' -- プラグインは変更を無視します。
`$_THM_CONF['allow_upload']` | 論理型(trueまたはfalse) | 画像ファイルのアップロードを許可するかどうかを決めます。デフォルト値はtrueです。
`$_THM_CONF['image_width']` | 整数型 | サムネール画像の幅（ピクセル）。デフォルト値は120です。
`$_THM_CONF['image_height']` | 整数型 | サムネール画像の高さ（ピクセル）。デフォルト値は100です。
`$_THM_CONF['image_max_col']` | 整数型 | 1列の中でサムネール画像を表示する個数。デフォルト値は6です。
`$_THM_CONF['upload_max_size']` | 整数型 | アップロードできる画像ファイルの最大サイズ。デフォルト値は1048576、つまり、1Mバイトです。
`$_THM_CONF['enable_all_themes']` (ver.1.0.5以降) | 論理型(trueまたはfalse) | trueにすると、`$_THM_CONF['allowed_themes']`の値とは無関係に、すべてのテーマを自動的に利用可能にします。デフォルト値はfalseです。
`$_THM_CONF['enable_all_files']` (ver.1.0.5以降) | 論理型(trueまたはfalse) | trueにすると、`$_THM_CONF['allowed_files']`の値とは無関係に、すべてのテーマに関係するファイル(*.thtml, *.css)を自動的に利用可能にします。デフォルト値はfalseです。
`$_THM_CONF['enable_csrf_protection']` (ver.1.1.0以降) | 論理型 | trueにすると、Geeklog-1.5.0で導入されたCSRF攻撃対策が有効になります。

### プラグインのアップグレード

新しいアーカイブを展開（解凍）してできたファイルをすべてWebサーバにアップロードし、プラグインエディタから「編集」-「更新」を実行するだけです。

### 使用法

テーマエディタプラグインはとてもシンプルなので、ほとんど直感的に使えます。

1. 編集したいテーマをドロップダウンリストから選択します。
   注意：選択できるテーマ名は `config.php` 中の `$_THM_CONF['allowed_themes']` で定義されています。必要に応じて変更してください。
2. 編集したいファイルをドロップダウンリストから選択します。
   注意：選択できるファイル名は `config.php` 中の `$_THM_CONF['allowed_files']` で定義されています。必要に応じて変更してください。
3. 使用可能なテンプレート変数の一覧が表示されます。
4. テンプレート変数名が書かれたボタンをクリックすると、編集画面のキャレットの位置に対応するタグが挿入されます。
   注意: JavaScriptを有効にしないとこのボタンは使えません。
5. 「プレビュー」ボタンをクリックすると、編集内容のプレビューが別のページで表示されます。
6. 「保存」ボタンをクリックすると、編集内容がWeb上に保存されます。
7. 「初期設定に戻す」ボタンをクリックすると、ファイルの内容はこのプラグインがインストールされた時点の内容に戻ります。
8. 「画像」ボタンをクリックすると、シンプルな画像ブラウザが表示されます。サポートされている画像タイプは'jpg', 'jpeg', 'png', 'gif'です。テーマ名とディレクトリ名のドロップダウンリストを選択することでブラウズできます。画像をアップロードするときには、「参照...」ボタンをクリックして選択し、「アップロード」ボタンをクリックします。画像ファイルを削除したい場合は、該当のファイルにチェックを入れて、「削除」ボタンをクリックします。削除は確認なしに行われるので、注意してください。やり直しはできません。

### ライセンス

テーマエディタプラグインはGPLです。

Copyright © 2006-2008 mystral-kk