にへるつおるぐ | src | ブログ | コンタクト | 統計 |

ソースコード・スクリプト・パッチ置き場

Items that do not fit in other categories

2009-04-02 15:10:19 JST-9 | akebia | General | コメント | トラックバック | 履歴
NP_RevisionFixDB.php
<?php
class NP_RevisionFixDB extends NucleusPlugin{
  function getName()       {return 'Revision Fix DB';}
  function getAuthor()     {return 'akebia';}
  function getURL()        {return 'http://nyan.co.uk/akebia/item/404';}
  function getVersion()    {return '1.1';}
  function getDescription(){return '初版の履歴データに対し、修正処理(アンクォート)を行います。';}
  function supportsFeature($f)
    {switch($f){case 'SqlTablePrefix': return 1; default: return 0;}}
  function getEventList()  {return array ('PostPluginOptionsUpdate');}
  function install(){
    $this->createOption('A','オプションの保存時に履歴データの修正処理を行いますか?(下の「メッセージ」のテキストエリア内の説明を読んでから決めて下さい。)','yesno','no');
    $this->createOption('B','メッセージ','textarea','履歴データの修正処理は、よく分からない場合には、絶対に行わないこと。やり方を誤ると履歴データが壊れることがあります。このプラグイン自身には、この処理を行うべきか否かを自動的に判断する能力はありません。');
  }
  function event_PostPluginOptionsUpdate($data){
    if($this->getOption('A') != 'yes') return;
    $r = mysql_query(
      'SELECT inumber, ititle, ibody, imore, rrevbase, rrevsub FROM ' .
        sql_table('plugin_revision') .
      " WHERE rcomment REGEXP '^Initial revision( |$)'"
    );
    while($row = mysql_fetch_array($r)){mysql_query(
      'UPDATE ' . sql_table('plugin_revision') .
      ' SET ititle="' . addslashes(stripslashes($row['ititle'])) .
         '",ibody="' . addslashes(stripslashes($row['ibody'])) .
         '",imore="' . addslashes(stripslashes($row['imore'])) . '"' .
      ' WHERE inumber=' . $row['inumber'] .
      ' AND rrevbase=' . $row['rrevbase'] .
      ' AND rrevsub=' . $row['rrevsub']
    );}
    $this->setOption('A', 'no');
    $this->setOption('B', '履歴データの修正処理は完了しました。この処理を繰り返し行うと履歴データが壊れることがあります。このまま「プラグイン管理」に戻り、このプラグインを削除して下さい。');
  }
}
?>

Comments

No comments yet

Add Comment

Trackback

このトラックバックURL(右クリックして、リンクのURLをコピー)を使ってこの記事にトラックバックを送ることができます。もしあなたのブログがトラックバック送信に対応していない場合にはこちらのフォームからトラックバックを送信することができます。トラックバックの手動送信に失敗したり、拒否された場合には、あけび猫が入力しますので、こちらまでご連絡下さい。重複したトラックバックは、自動的に1つにまとめられるようなので、気軽に色々試してみて下さい。


http://2hz.org/src/