質問箱/286

カテゴリ
サマリページ名置換(&page;)が置換されない
バージョン1.4rc4
投稿者YMD?
状態完了
投稿日2003-10-16 (THU) 13:17:21

質問

ページ名置換(&page;)や日時置換(&date;など)が行われず、そのまま&page;と 表示されてしまいます。置換を行うにはpukiwiki.ini.phpなどで設定変更が必要なのでしょうか? 非常に簡単なことかも知れませんが、よろしくお願いします。

使用状況は以下です。

  • PukiWiki:1.4rc4
  • OS:Windows 2000 Server
  • WebServer:Apache1.3.28
  • PHP:4.3.3

回答

  • reimy 2003-10-16 (THU) 17:15:54

    pukiwiki.ini.phpの中でユーザー定義を行なう必要があります。

    // ユーザ定義ルール(直接ソースを置換)
    $str_rules = array(
    	'&now;' => format_date(UTIME),
    	'&date;' => get_date($date_format),
    	'&time;' => get_date($time_format),
    	'now\?' => format_date(UTIME),
    	'date\?' => get_date($date_format),
    	'time\?' => get_date($time_format),
    	'&page;' => substr($page,strrpos('/'.$page,'/')),
    	'&fpage;' => $page,
    );
  • YMD? 2003-10-17 (FRI) 12:57:42

    回答ありがとうございます。&date;は正常に表示されるようになりました。しかし、&page;は駄目です。&fpage;で何も表示されないので、$pageに値が入っていないようです。どこで$pageにページ名が代入されるのでしょうか。

    • Ratbeta? 2003-10-17 (FRI) 19:11:53

      $pageを$_GET['page']にしたらどうでしょうか?

      • YMD? 2003-10-20 (MON) 16:44:29

        Ratbetaさん、回答ありがとうございます。でも、$pageを$_GET['page']としてもうまくいきませんでした。

    • Ratbeta? 2003-10-20 (MON) 19:22:01

      http://(pukiwikiへのパス)/index.php?cmd=read&page=(ページ名)の形式でアクセスするとどうでしょうか。http://(pukiwikiへのパス)/index.php?(ページ名)の形式では$pageに代入されていない可能性が有ります。

      • Ratbeta? 2003-10-20 (MON) 19:26:31

        ぁ、$pageも$_GET['page']も試してくださいね。

    • YMD? 2003-10-21 (TUE) 10:20:08

      ありがとうございます。試してみましたが、駄目のようです。

  • reimy 2003-10-20 (MON) 20:56:39

    PukiWiki 1.4rc3までは$pageが使用できましたが、1.4rc4では使用できなくなっているようです。

  • merlin 2003-10-20 (MON) 22:54:42

    $page だけを編集画面に書くのは使えなくなってますね。ユーザー定義の&page; &fpage; ともに最新版とlinux apache 1.3 と PHP 4.3.2では動いています。Win2K+Apache+PHP4.3.3は環境構築中なんでまだうちでは未確認。

  • sha 2003-10-21 (TUE) 01:29:49

    ほんとだ。$pageが使えませんね。そこで、使えるようになるまでのつなぎという意味で、お手軽ご気楽プラグインを作ってみました。「filefpage.inc.php.1 」「filepage.inc.php.1

    pukiwiki.ini.phpの$str_rulesで設定するのと動作が微妙に違っているのに注意。$str_rulesが編集などをすると、&fpage;等が文字列に置き換わってしまうのに対し、プラグインの場合は表示だけページ名に置き換わって、実態は&fpage;等のままです。(もちろんこの動作は仕様どおりなのですが)

    ところで偶然気づいたのですが、このプラグインを設置して1度使用し、その後削除しておくと、いつのまにか$str_rulesの$pageが使用できるようになってるんですね。なぜ??

  • YMD? 2003-10-21 (TUE) 08:21:25

    shaさんのプラグインで表示できるようになりました。Ratbetaさん、reimyさん、merlinさん、shaさん、ありがとうございました。

    ところで、私の所(Win2K+Apache+PHP4.3.3)では、page.inc.phpをインストール後に削除しても、$str_rulesは使用できないようです。元々私のやりたかったことには、以下でした。このときは、$str_rulesを使って実体も置き換わってくれた方が良さそうです。別のもっと良い方法があれば、教えてください。

    • やりたかったこと:2種類のtemplateを用意して(例えば、報告、費用)、「複製」を使ってケースA用のページ(報告/A、費用/A)を作ります。このとき、報告書Aから費用Aに自動でリンクを張るためには、報告書templateに[[費用/&page;]]と書けば良いかと考えてました。
    • このページ(1.4rc3)では、&page;は置き換わりますね。
  • sha 2003-10-22 (WED) 00:45:17

    $str_rulesの&fpage;などを有効にする方法を見つけました。

    init.php v1.62の134行目付近「外部からくる変数をサニタイズ」から、256行目付近「初期設定($WikiName,$BracketNameなど)」の手前までの範囲を、64行目付近「設定ファイル読み込み」の直前に移動させます。その変更を加えたもの→「fileinit.php-1621

    これで外部変数を$str_rulesで参照できるようになりますので、例えば以下のように設定することでページが置き換えられます。ただし、これによって、他の場所で未定義変数の使用などの副作用が発生する可能性があります。でも、私がざっくり見たところ、それはなさそうな気がしましたけど。。。(確信なし)

    '&fpage;' => $vars['page'],
    • sha 2003-10-22 (WED) 09:08:00

      副作用あるようです。$defaultpageがうまくないようですね。うーむ。

  • reimy 2003-10-22 (WED) 10:13:17

    もともと$pageを$str_rulesで参照する方法は裏技ですので…(^^;;

  • ぱんだ 2003-10-24 (FRI) 10:30:22

    こんな手もあります。あんまり美しくないですが。

    diff -u -r1.62 init.php
    --- init.php	12 Sep 2003 00:36:24 -0000	1.62
    +++ init.php	24 Oct 2003 01:29:03 -0000
    @@ -291,4 +291,9 @@
     	'#related$'=>'<del>#related</del>',
     	'^#contents$'=>'<del>#contents</del>'
     ),$line_rules);
    +// str_rulesにページ参照を加える
    +$str_rules = array_merge(array(
    +	'&page;' => array_pop(explode('/',$vars['page'])),
    +	'&fpage;' => $vars['page']
    +),$str_rules);
     ?>
  • Q&Aに移動 -- zm 2007-08-18 (土) 20:57:31


添付ファイル: filefpage.inc.php.1 1715件 [詳細] fileinit.php-1621 1889件 [詳細] filepage.inc.php.1 1702件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-08-18 (土) 20:55:54
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.328 sec.

OSDN