ページ名変更時の挙動

  • ページ: BugTrack
  • 投稿者: ちびじゃ
  • 優先順位: 低
  • 状態: 提案
  • カテゴリー: 本体バグ
  • 投稿日: 2004-04-25 (日) 13:35:19
  • バージョン:

メッセージ

ページ名変更時に何も変えずに「進む」を押すと$is_pageがtrueになってしまいます。編集メニューの表示項目を制御している場合などに影響があります。

実害は無いです。


  • trueになるのかfalseになるのか、どちらが正しい挙動なんでしょうか?newpageやtemplateなど、別のページに関連する物はfalseに、editやdiffなどはtrueになっていますから、falseが正しいんでしょうね。どこに原因があるか私にはわかりませんので、誰かにパスします(汗 -- Ratbeta? 2004-09-20 (月) 11:47:15
  • おぼろげな記憶ですが、is_pageやis_freezeはまだどことなく整理されていないところがあったような気がします。そのために、デフォルトの挙動ではその問題が表面化しないものの、項目の 表示する/しない をカスタマイズしたくなった方が、意図通りの結果を得られない、という場面に遭遇することがあるのです。 -- henoheno 2004-09-20 (月) 12:13:58
  • 編集・凍結周りの見直しをするにつれて、このような状況は少なくなって行くことでしょう。 -- henoheno 2004-09-20 (月) 12:14:46
  • 関連: BugTrack/695 -- henoheno 2004-09-20 (月) 13:29:24


  • スキンを設定する人のためのメモ
    lib/html.php
    // $Id: html.php,v 1.62 2007/05/12 14:24:42 henoheno Exp $
    (中略)
    	$_page  = isset($vars['page']) ? $vars['page'] : '';
    (中略)
    	// Init flags
    	$is_page = (is_pagename($_page) && ! arg_check('backup') && $_page !== $whatsnew);
    	$is_read = (arg_check('read') && is_page($_page));
    	$is_freeze = is_freeze($_page);
    これを見るに、$is_page ,$is_read ,$is_freeze は、「&page=ページ名」が設定されている*1ことが大前提になります。(なければ3つともFALSE を返す)
    それに加えて、
    • $is_page は、「ページ名が妥当(不正文字を含まない)である」、「コマンド(プラグイン)がbackup 以外である」、 「ページ名が$whatsnew 以外である」、以上3点をすべて満たすとTRUE
    • $is_read は、「コマンド(プラグイン)がread である」*2、「ページ名のファイルがDATA_DIR に存在する」、以上2点をすべて満たすとTRUE
    • $is_freeze は、「ページ名のファイルがDATA_DIR に存在し、なおかつ#freezeが存在する」*3とTRUE
    がデフォルトです。
    この3つを好みの動作になるように編集するか、新たなパラメータを書き足して*4、 既存のものと組み合わせてください。 -- 2007-05-21 (月) 19:33:39


*1 コマンドなしの時は、表示しているページ名が入っています(念のため)。他に、表面上(アドレス)には書かれていなくても、プラグイン内で値を管理していたり。
*2 arg_check('プラグイン名') と1つのプラグインしか評価できない、複数指定するときは書き連ねる必要あり
*3 is_freeze 関数の動作概要、たぶん間違ってない・・・ですよね
*4 例えば、$is_edit = arg_check('edit'); として編集時にのみTRUE とか(注意:何も考えずにこの例を書いてあるので、既にある変数名とかぶっていた場合はトラブルの元になります)

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-05-21 (月) 19:33:39
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.314 sec.

OSDN