開発日記

1.3.xと1.4の互換性向上 -- ぱんだ

  • convert_html()に渡すページのデータ スカラー/配列
    • どちらでもいいようにしました。 convert_html()内で判断します。
  • #refのページ名指定方法 #ref(file[,page]) -> #ref([page/]file)
    • どちらでもいいようにしました。ただ、両方指定された場合
      #ref(ToDo/file,WishList)
      は、WishListを捨てて、ToDoを採用します。ページ名に誤認される可能性のあるタイトルを指定するときは、
      #ref(ToDo/file,,WishList)
      のように、カンマを1個余分に入れてください。
  • skin内で使用する変数
    • $fmtがなくなっていたので追加しました。
    • global宣言をcatbody()内に移動しました。

非互換点

  • ul/ol/dlのマージン設定
    • 分離しました。default.ini.php/imode.ini.php/jphone.ini.php
      -$_list_left_margin = 0; // リストと画面左端との間隔(px)
      -$_list_margin = 16;      // リストの階層間の間隔(px)
      +$_ul_left_margin = 0;   // リストと画面左端との間隔(px)
      +$_ul_margin = 16;       // リストの階層間の間隔(px)
      +$_ol_left_margin = 0;   // リストと画面左端との間隔(px)
      +$_ol_margin = 16;       // リストの階層間の間隔(px)
      +$_dl_left_margin = 0;   // リストと画面左端との間隔(px)
      +$_dl_margin = 16;       // リストの階層間の間隔(px)

プラグイン

よくあるパターンで示します。

  • ページのファイル名を取得する
    引数をエンコードする必要がなくなっています。
    -$filename = get_filename(encode($page));
    +$filename = get_filename($page);
  • ページソースを取得する
    get_source()関数を使うようにしてください。
    -$data  = file(get_filename(encode($page)));
    +$data  = get_source($page);
  • ページのHTMLソースを取得する
    同上。かつ、 convert_html()は、配列を受け取ることができます。
    -$body = convert_html(join("",file(get_filename(encode($page)))));
    +$body = convert_html(get_source($page));
  • ページのダイジェストを比較する
    get_source()内で'\r'の除去(Windows対策)を行っているため、ダイジェスト計算を行う場合はかならずget_source()を通すようにしてください。

    それ以前に、get_filename()内でencode()を使っている時点で非互換なんですけど。

    -if(md5(@join("",@file(get_filename(encode($page))))) != $post["digest"])
    +if(md5(@join("",get_source($page))) != $post["digest"])
  • ページを書き込む
    1.4では、page_write(ページ名,データ)関数で、差分の生成/バックアップの生成/ページの書き込みをまとめて行うようにしました。
    -	// 差分ファイルの作成
    -	if(is_page($post["refer"]))
    -		$oldpostdata = join("",file(get_filename(encode($post["refer"]))));
    -	else
    -		$oldpostdata = "\n";
    -	if($postdata)
    -		$diffdata = do_diff($oldpostdata,$postdata);
    -	file_write(DIFF_DIR,$post["refer"],$diffdata);
    -		// バックアップの作成
    -	if(is_page($post["refer"]))
    -		$oldposttime = filemtime(get_filename(encode($post["refer"])));
    -	else
    -		$oldposttime = time();
    -
    -	// 編集内容が何も書かれていないとバックアップも削除する?しないですよね。
    -	if(!$postdata && $del_backup)
    -		backup_delete(BACKUP_DIR.encode($post["refer"]).".txt");
    -	else if($do_backup && is_page($post["refer"]))
    -	make_backup(encode($post["refer"]).".txt",$oldpostdata,$oldposttime);
    -
    -	// ファイルの書き込み
    -	file_write(DATA_DIR,$post["refer"],$postdata);
     
    +	// ページの書き込み
    +	page_write($post["refer"],$postdata);

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2003-02-26 (水) 14:50:19
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.389 sec.

OSDN