カテゴリ | |
---|---|
サマリ | ページ名置換(&page;)で(&page;)を再利用したい |
バージョン | 1.4 |
投稿者 | sano: |
状態 | 完了 |
投稿日 | 2006-03-01 (水) 02:12:15 |
ページ名置換(&page;)を使うと、変換は1度しか有効にならないようで、(&page;)が文字列に置き換わってしまい、ページ名のリネーム時や雛形複製で利用出来ません。ページ名を何度もコピー&ペーストせずに、ページ内に自動的に読み込む方法をお教えください。 ※質問箱/286 に類似記述 (&page;)
(やりたいこと)登録する氏名を元にページを作成し、ページ内で何度も同じページ名=名前を使う。入力場所などは定型化している。InterWikiNameを使って検索設定等にもページ名の挿入機能を使いたい。
■補足:たとえば、下記のようにページ名と同じ用語「上原」について、ページ内で複数の検索サイト△社や□社で検索設定を行う場合などに使いたいということです。説明不足で申し訳ございません。※質問箱/286 にあった、fpage.inc.phpやpage.inc.phpなどをダウンロードして使ってみたのですが、うまくいきませんでした。
以上よろしくお願いします。
■環境 FreeBSD+Apache さくらインターネット Pukiwiki1.4
<? function plugin_pagename_inline() { global $vars; return htmlspecialchars($vars['page']); } ?>
ユーザー定義ルールは「ページの更新」を行った時に変換後の値に置き換わってしまいます。 そのため、テンプレートとして利用しようとしても、 変換後の値がコピーされるだけで意図した変換結果にはなりません。
管理者はユーザー定義ルールに一工夫して、この問題を回避する事ができます。 ユーザー定義ルールは上から順番に適用され、再帰的には適用されませんので、例えば、$str_rules = array( '&now;' => format_date(UTIME), '&date;' => get_date($date_format), '&time;' => get_date($time_format), '&t;' => "\t", '&_ampersand;' => '&', );のように&_ampersand;を&に変換するユーザー定義ルールを&now;のルールより後に追加し、
&_ampersand;now;として「ページの更新」をすると、
&now;に書き換わります。(注:再度このページを編集すると、日時に書き換わってしまうので注意が必要です)
テンプレートとしてコピーされる時は&now;の状態でコピーされるため、コピーされた日時に置き換わります。