timestamp.inc.php

サマリタイムスタンプを書き換えるプラグイン
リビジョン1.2
対応バージョン1.5.x
投稿者k
投稿日2020-09-19 (土) 10:39:00

目次

概要

タイムスタンプを書き換えるプラグイン

ダウンロード

「(pukiwiki.ini.phpが入っているフォルダ)/plugin/timestamp.inc.php」に配置してください。

必要であれば「skin/pukiwiki.skin.php」に下記のコードを埋め込んでください。(123行辺り)

<?php global $vars;echo '<a href="./?plugin=timestamp&page='.$vars['page'].'">タイムスタンプ変更</a>'; ?> |

使い方

タイムスタンプの書き換え

パラメータを

?plugin=timestamp&page=ページ名

にするとタイムスタンプが変更できます。
パラメータを

?plugin=timestamp

にしてもプラグインを利用できます。

設定

Plugin_TimeStamp_User_Admin_Onlyを「1」にすると管理者パスワード認証が利用できます。
時間がおかしい場合はPlugin_TimeStamp_Add_Hoursを調整するか、タイムゾーンを「.htaccess」や「php.ini」でAsia/Tokyoしてください。

フォーマット

#timestamp

関連ページ

欲しいプラグイン/442

コメント


コード

<?php
/*
$Id: timestamp.inc.php,v 1.02 2020/10/28 23:32:00 K Exp $
License: GPL v3
*/
//----(設定)

// 1(Enable) / 0(Disable)
define("Plugin_TimeStamp_Check_Editable", "1");//編集権限、凍結をチェックしてタイムスタンプをする。(凍結確認、ページ権限確認)
define("Plugin_TimeStamp_Check_Readable", "1");//閲覧権限をチェックしてタイムスタンプをする。(ページ権限確認)
define("Plugin_TimeStamp_User_Admin_Only", "1");//管理者パスワード入力フォーム設置
define("Plugin_TimeStamp_Add_Hours", "");//時間のズレに対応
//----(ここまで)
define("Plugin_TimeStamp_Title", "タイムスタンプ");
function plugin_timestamp_action()
{
    global $vars;
    if ((isset($vars["plugin_timeStamp_form_submit"]))&&(is_pagename($vars["plugin_timeStamp_form_page"]))){
        if ((isset($vars["plugin_timeStamp_admin_password"]))&&(Plugin_TimeStamp_User_Admin_Only=="1")){
            if (pkwk_login($vars["plugin_timeStamp_admin_password"]) == false){
                $msg = Plugin_TimeStamp_Title;
                return array('msg'=>$msg, 'body'=>"パスワードが間違っています。");exit;
            }
        }
        $filename = "./wiki/".strtoupper(bin2hex($vars['plugin_timeStamp_form_page'])).".txt";
        if (file_exists($filename)){
        	if (Plugin_TimeStamp_Check_Editable == "1"){check_editable($vars['plugin_timeStamp_form_page'], true, true);}
        	if (Plugin_TimeStamp_Check_Readable == "1"){check_readable($vars['plugin_timeStamp_form_page'], true, true);}
            $date = new DateTime($vars["plugin_timeStamp_form_y"].'-'.$vars["plugin_timeStamp_form_m"].'-'.$vars["plugin_timeStamp_form_d"].' '.$vars["plugin_timeStamp_form_h"].':'.$vars["plugin_timeStamp_form_min"].':'.$vars["plugin_timeStamp_form_s"]);
            //PukiWiki 1.5.x~用
            $filedata = file_get_contents($filename);
            if (preg_match('/\#author\((.+?),(.+?),(.+?)\)/u',$filedata,$matchs)){
                $filedata = str_replace($matchs[0],'#author("'.$vars["plugin_timeStamp_form_y"].'-'.$vars["plugin_timeStamp_form_m"].'-'.$vars["plugin_timeStamp_form_d"].'T'.$vars["plugin_timeStamp_form_h"].':'.$vars["plugin_timeStamp_form_min"].':'.$vars["plugin_timeStamp_form_s"].'+09:00",'.$matchs[2].','.$matchs[3].')',$filedata);
                file_put_contents($filename,$filedata);
            }
            //--------
            //キャッシュ削除
            unlink('./cache/recent.dat');//recent.dat
            //--------
            touch($filename,$date->format('U') - (int)Plugin_TimeStamp_Add_Hours);
            $msg = Plugin_TimeStamp_Title;
            $body = "設定が完了しました。<a href=\"?".$vars["plugin_timeStamp_form_page"]."\">".$vars["plugin_timeStamp_form_page"]."へ戻る</a>";
        }else{
            $msg = Plugin_TimeStamp_Title;
            $body = "ページが存在しません。";
        }
    }else{
        $msg = Plugin_TimeStamp_Title;
        if ($vars['page'] != ""){
        	if (Plugin_TimeStamp_Check_Editable == "1"){check_editable($vars['page'], true, true);}
        	if (Plugin_TimeStamp_Check_Readable == "1"){check_readable($vars['page'], true, true);}    
            $filename = "./wiki/".strtoupper(bin2hex($vars['page'])).".txt";
            $filetime = filemtime($filename)+(int)Plugin_TimeStamp_Add_Hours;
            $y = date("Y", $filetime);
            $m = date("m", $filetime);
            $d = date("d", $filetime);
            $h = date("H", $filetime);
            $min = date("i", $filetime);
            $s = date("s", $filetime);
            if (Plugin_TimeStamp_User_Admin_Only=="1"){
                $admin_check = "<br />管理者パスワード:<input type=\"password\" style=\"width: 100px\" name=\"plugin_timeStamp_admin_password\" />";
            }else{
                $admin_check = "";
            }
            $body = <<<EOD
            <h2>ページ:{$vars['page']}</h2>
            <form action="?plugin=timestamp" method="POST">
                <input type="text" style="width: 30px" name="plugin_timeStamp_form_y" value="{$y}" />年
                <input type="text" style="width: 15px" name="plugin_timeStamp_form_m" value="{$m}" />月
                <input type="text" style="width: 15px" name="plugin_timeStamp_form_d" value="{$d}" />日
                <input type="text" style="width: 15px" name="plugin_timeStamp_form_h" value="{$h}" />時
                <input type="text" style="width: 15px" name="plugin_timeStamp_form_min" value="{$min}" />分
                <input type="text" style="width: 15px" name="plugin_timeStamp_form_s" value="{$s}" />秒
                <input type="hidden" name="plugin_timeStamp_form_page" value="{$vars['page']}" />
                {$admin_check}
                <input type="submit" name="plugin_timeStamp_form_submit" value="変更" />
            </form>
            現在のページの更新日時:{$y}年{$m}月{$d}日{$h}時{$min}分{$s}秒
            EOD;
        }else{
            $body = <<<EOD
            <h2>ページが指定されていません。</h2><br />
            <form action="?plugin=timestamp" method="POST">
                ページ:<input type="text" name="page" />
                <input type="submit" name="plugin_timeStamp_form_submit" value="タイムスタンプ" />
            </form>
            EOD;
        }
    }
    return array('msg'=>$msg, 'body'=>$body);
}
function plugin_timestamp_convert()
{
    global $vars;
    return "<a href=\"?plugin=timestamp&page={$vars['page']}\"><font size=\"2px\">[タイムスタンプ変更]</font></a>";
}
?>

ライセンス

GPL v3


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-10-28 (水) 23:38:28
Site admin: PukiWiki Development Team

PukiWiki 1.5.3+ © 2001-2020 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.150 sec.

OSDN