質問箱/5249

カテゴリ動作環境
サマリphp7.1.0でnewプラグインが動かない
バージョン1.5.1
投稿者kmi?
状態完了
投稿日2016-12-19 (月) 16:28:39

質問

動作環境
・Windows7 Pro SP1
・Apache 2.4.23
・PHP 7.1.0
・PukiWiki 1.5.1
localhost上でApacheを動かし、pukiwikiを資料整理につかっております。
以前、PHP5.5.21+PukiWiki1.5.0で運用していたコンテンツをdumpして、上記新環境にrestoreしたところ、
newプラグインの"&new{2016-12-19};"という記述が
"&new([nodate]){date}: Invalid date string;"
というエラー表示になりました。
PukiWiki 1.5.1はPHP 7.0には対応している、とのことですが、
PHP 7.1.0には対応していないのでしょうか?

回答

  • PukiWiki 1.5.0ではどう表示されていましたか? &new(nodate){2016-12-21 (水) 20:58:15}; のように書くと Now! だけが表示されます 1.5.0 1.5.1で違いは無いようです -- umorigu 2016-12-21 (水) 23:29:17
  • 勝手ながら、質問部分のwiki書式を変更させていただきました。変更している時にwiki ソースを見て気が付きましたが、1.5.0 -> 1.5.1 でのnew プラグインにかかわる変更点といえば、更新履歴にあるdev:BugTrack/2120ですね。New! の機能が動作しない環境があるというバグの修正だったはずですが、そのために入力チェックが少し厳格になったので時刻"00:00:00"を省略して年月日"2016-12-19"だけを渡すという便利機能のような動作が使えなくなっていたと思います。 -- 2016-12-22 (木) 00:10:01
  • なるほど。そういう使い方があったんですね。確かにnewプラグインの説明には「日付文字列はPHP関数:strtotimeが認識できる書式である必要があります」とあるのにそうなっていない、今の挙動はバグです。strtotimeにfallbackするようにします -- umorigu 2016-12-22 (木) 09:14:37
  • PukiWiki 1.5.2 で修正されますが、plugin/new.inc.php の43行目に以下の2行を追加することで、1.5.0とほぼ同じ動作になります -- umorigu 2016-12-23 (金) 16:40:19
    (plugin/new.inc.php:43)
                                    . '-' . substr('0' . $dm[3], -2)
                                    . ' ' . $dm[4];
                            $timestamp = strtotime($iso8601_date);
    +               } else {
    +                       $timestamp = strtotime($date);
                    }
                    if ($timestamp === -1 || $timestamp === FALSE) {
                            return '&new([nodate]){date}: Invalid date string;';
    • dev:BugTrack/2410 -- 2016-12-24 (土) 00:05:34
    • 上記修正により、動作することを確認いたしました。 -- kmi? 2016-12-26 (月) 09:41:14


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-12-26 (月) 09:42:51
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.245 sec.

OSDN