DokuWiki

It's better when it's simple

ユーザ用ツール

サイト用ツール


ja:namespace_templates

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
ja:namespace_templates [2009-12-29 04:29] – updated kazmiyaja:namespace_templates [2017-06-23 11:02] (現在) 114.158.209.198
行 1: 行 1:
- 
-====== 名前空間テンプレート ====== 
- 
-時には、ある名前空間内のすべてのページを、共通の雛形をベースにして書きたい場合があるかもしれません。例えば、「住所」という名前空間の中ではあらかじめ表を用意しておいて、あとはデータを入力するだけでいいようにしておくなどです。これは「名前空間テンプレート」と呼ばれる機能で簡単に実現できます。 
- 
-ページが新規作成される際、[[:ja:dokuwiki|DokuWiki]] は名前空間テンプレートファイルが存在するかどうかを調査し、ある場合はその内容を編集画面の中に表示します。このため、名前空間テンプレートファイルは Wiki 記法のテキストを含む .txt ファイルとなります。 
- 
 ===== テンプレートファイル ===== ===== テンプレートファイル =====
  
-以下の 種類のテンプレートファイルが利用可能です。+種類のテンプレートファイルが利用できます。
  
-  * ''_template.txt'' -- 現在の名前空間で使用されます。 +   * ''_template.txt''現在の名前空間で使用されます。 
-  * ''%%__%%template.txt'' -- (アンダースコアが 2 個) 通常の ''_template.txt'' ファイルと同様ですが、その名前空間以下のすべての名前空間でも使用されます (継承されます)。+   * ''%%__%%template.txt''アンダースコアが二連続):通常の ''_template.txt'' ファイルと同様ですが、その名前空間以下のすべての名前空間でも使用されます (継承されます)。
  
 テンプレートファイルを作成する方法の一例を以下に示します。 テンプレートファイルを作成する方法の一例を以下に示します。
  
-  * Wiki 上で、雛形として使用したい内容を持つページを適切な名前空間に保存します。 +   * Wiki 上で、雛形として使用したい内容を持つページを適切な名前空間に保存します。 
-  * FTP もしくは WebDAV を利用して、そのページのファイルのコピーを同じフォルダ内に作成し、''_template.txt'' などにリネームします。 +   * FTP もしくは WebDAV を利用して、そのページのファイルのコピーを同じフォルダ内に作成し、''_template.txt'' などにリネームします。 
-  * Wiki 上で、最初に作成したページを削除します。+   * Wiki 上で、最初に作成したページを削除します。((これらの変更は、あなたが名前空間に作成する新しいページにしか適用されません。))
  
 ===== 構文 ===== ===== 構文 =====
  
-テンプレートファイルの内容は、単純に標準の [[:ja:syntax|Wiki 記法]]で記述します。+テンプレートファイルの内容は、単純に標準の [[ja:syntax|Wiki 記法]]で記述します。
  
 ==== 置換パターン ==== ==== 置換パターン ====
  
-ファイルの中では、テンプレートをほんの動的にするために、以下に示すようないくつかの置換パターンを使用することができます。+テンプレートを少動的にするために、ファイルの中で以下に示すようないくつかの置換パターンを使用できます。
  
 ^ @ID@      | 完全なページ ID                                      | ^ @ID@      | 完全なページ ID                                      |
行 41: 行 34:
 ^ @DATE@    | 編集作業が開始された日付と時刻                       | ^ @DATE@    | 編集作業が開始された日付と時刻                       |
  
-さらに、ページの作成時刻をみの形式で挿入するために、[[phpfn>strftime]] で利用可能なすべての置換文字列を使用することもできます。テンプレートファイルの中で ''%'' という文字そのものを使用したい場合は、2 つ並べて ''<nowiki>%%</nowiki>'' とする必要があります。+さらに、ページの作成時刻を好きな形式で挿入するために、[[phpfn>strftime]] で利用可能なすべての置換文字列を使用することもできます。 
 +テンプレートファイルの中で ''%'' という文字そのものを使用したい場合は、二連続で ''<nowiki>%%</nowiki>'' とする必要があります。
  
-===== テンプレート編集 =====+===== ウィキ経由でテンプレート編集する =====
  
-''_template.txt'' ファイルを DokuWiki 上から編集することはできません。DokuWiki のフォルダ内部のファイルを編集できる人物 (通常は FTP もしくは WebDAV を利用している管理者) だけがこのファイルを編集できます。実は DokuWiki 上からの編集を実現する 2 つ特殊な方法があります。しかしがら、1 つ一度シンボリックリンク設定する必要があり、もう 1 つは DokuWiki のソースコードを変更す必要があります。+''_template.txt'' ファイルを DokuWiki 上から編集することはできません。 
 +DokuWiki のフォルダ内部のファイルを編集できる人物 (通常は FTP もしくは WebDAV を利用している管理者) だけがこのファイルを編集できます。) 
 +しかし DokuWiki 上からの編集を実現する三種類の方法があります。 
 +   * 最も簡単方法[[ja:plugin:templatepagename|テンプレートページ名プラグイン]]を使用しています。デフォルトのテンプレート名 ''_template.txt'' を別の名前に変更できます。例:通常の編集可能な wiki ページとして許可されるテンプレート。 
 +   シンボリックリンクとして設定することによ
  
 ==== シンボリックリンク経由で編集可能なテンプレート ==== ==== シンボリックリンク経由で編集可能なテンプレート ====
  
-この方法では、まず特別な名前空間にテンプレートを保存します。そしてそのファイルへのシンボリックリンクを作成することにより、テンプレートが使用できるようになります。シンボリックリンクを作成しないことにより、テンプレートを編集できないようにすることもできます。+この方法では、まず特別な名前空間にテンプレートを保存します。 
 +そしてそのファイルへのシンボリックリンクを作成することにより、テンプレートが使用できるようになります。 
 +シンボリックリンクを作成しないことにより、テンプレートを編集できないようにすることもできます。 
 +   - "templates" またはよく似た名前の名前空間を作成します。 
 +   - この名前空間の中に、編集可能にしたい[[#top|名前空間テンプレート]]用のページをそれぞれ作成します。 
 +   - 上の手順に従って ''_template.txt'' を設置しますが、これをテンプレート用の名前空間の中に作成したページへのハードリンク((ソフトリンクが機能しないようです。 
 +以下の FollowSymLinks に関する注意を参照してください。))とします。これで Wiki のインターフェースから簡単に編集できるテンプレートの完成となります。 
 + 
 +もう一つの方法は、フォルダ内にシンボリックリンクを作成することです。 
 +そのためには、自分の名前空間内の ''のtemplate.txt''を作成する 
 +それ自身の名前空間内の ''_template.txt'' へのシンボリックリンクである ''template.txt'' を作成します。 
 + 
 +   cd /var/www/html/dokuwiki/data/pages/namespace/something 
 +   ln -s _template.txt template.txt 
 + 
 +これらのソフトリンクが機能するためには、Webサーバの設定でこのディレクトリに対して FollowSymLinks オプションを設定することが必要かもしれません。 
 + 
 +===== プラグイン ===== 
 + 
 +追加のテンプレート機能はプラグインによって実装されています: 
 +   * [[ja:plugin:TemplatePagename|テンプレートページ名プラグイン]] 設定管理を使って ''_template'' and ''__template'' の名前を自分で決めた名前に変更できます。それぞれデフォルトとして ''c_template'' と ''i_template'' になっています。通常の wiki ページをテンプレートとすることで、wiki 画面を使って編集できるようになります。 
 + 
 +   * [[plugin:TemplateByName|templatebyname プラグイン]] 利用可能なテンプレートを拡張します: 
 +     * ''~yourpagename.txt'':現在の名前空間内の ''yourpagename'' という名前のページ用 
 +     * ''~yournamespace.txt'':''yournamespace'' という名前の名前空間内の全ページ用 
 +     * 深い名前空間の変種、いくつかの他のテンプレート。例:''start'' ページ用。\\ ファイルシステムを使ってのみ編集できます。 
 + 
 +   * [[plugin:NewPageTemplate|newpagetemplate プラグイン]] ウィキからのどの既存のページをテンプレートとして読み込むかを定義する URL パラメータを追加します。ACL が許可した全ページが利用可能です。
  
-  - "templates" もしくは同じような名前の名前空間を作成します。 +   * [[plugin:Snippets|snippets  プラグイン]] エディターツールバーにページ編集中に簡単にテンプレートを挿入ることができるボタン追加しますテンプレートは、''snippets'' というデフォルト名のページの一覧です。
-  - この名前空間の中に、利用できるようしたい名前空間テンプレート用のページそれぞれ作成しま。 +
-  - 上述の手順に従って ''_template.txt'' 設置しますが、これをテンプレート用の前空間中に作成したページハードリンク((シンボリックリンクは動作しないようです。))とします。これで Wiki のインターフェースから簡単に編集できるテンプレートの完成となります。+
  
->> 私はこれとはまた異なる方法を利用しています。''template.txt'' を同じ名前空間内の ''_template.txt'' ファイルへのシンボリックリンクとして作成します。 +===== @GROUPS@ 応 =====
->> (''%%cd /var/www/html/dokuwiki/data/pages/namespace/something; ln -s _template.txt template.txt%%'')  +
->> この方法では、名前空間内の他のページにアクセスして、URL 内のページ名を ''template'' という名前に書き換えればテンプレートを編集することができます。 +
->> (すなわち ''%%http://example.com/dokuwiki/doku.php?id=namespace:something:template%%''+
->> +
->> この方法ではシンボリックリンクを使用できます。若干異なりますが。 +
-> シンボリックリンクを使用するには、恐らく Web サーバで FollowSymLinks オプションをそのディレクトリ (ツリー) にして設定する必要があると思いますよ。+
  
-==== べてのユーザーが編集可能なテント  ====+ページを作成ユーザーのグルー一覧を拡張した、''@GROUPS@''ワード対応は面白いかもしれない。 
 +(例:ユーザのホームページ上のタグの設定を指定) 
 +以下のパッチが、それを実装します。
  
-この方法では、編集権限を持つユーザーであれば誰からでもテンプレートファイルを編集できるようになります。+<code unidiff> 
 +Index: dokuwiki-2009-02-14/inc/common.php 
 +=================================================================== 
 +--- dokuwiki-2009-02-14.orig/inc/common.php    2009-11-19 11:58:41.000000000 +0100 
 ++++ dokuwiki-2009-02-14/inc/common.php 2010-01-05 10:17:35.000000000 +0100 
 +@@ -840,6 +840,7 @@ 
 +                          '@USER@', 
 +                          '@NAME@', 
 +                          '@MAIL@', 
 ++                        '@GROUPS@', 
 +                          '@DATE@', 
 +                       ), 
 +                       array( 
 +@@ -855,6 +856,7 @@ 
 +                          $_SERVER['REMOTE_USER'], 
 +                          $INFO['userinfo']['name'], 
 +                          $INFO['userinfo']['mail'], 
 ++                        implode(" ", $INFO['userinfo']['grps']), 
 +                          $conf['dformat'], 
 +                       ), $tpl); 
 +  
  
-  - ''inc/common.php'' ファイルの 718 行目付近((DokuWiki 2008-05-05 の場合。DokuWiki 2009-02-14 では 811-812 行目となります。))で、デフォルトのテンプレート名を "''template.txt''" (もしくは ''aaa_template.txt'' など) に変更します。 +</code>
-  - これで、その名前空間で編集権限を持つユーザーであれば誰でも、テンプレートとしての役割を持つ "template" というページをその名前空間の中に作成することができます。 +
-  * メモ: この方法には、新規のテンプレートが即座に認識されるという利点があります。これは他の方法 (ファイルの追加や DokuWiki フォルダへの手作業によるシンボリックリンク作成) では実現できません。+
  
 +--- //[[shtrom-doku@ssji.net|Olivier Mehani]] 2010/01/05 10:19//
ja/namespace_templates.1262057374.txt.gz · 最終更新: 2009-12-29 04:29 by kazmiya

特に明示されていない限り、本Wikiの内容は次のライセンスに従います: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki