minicalendar_viewer.inc.phpの改造は続く Edit

 さてminicalendar_viewer.inc.php*1の動作と見た目は、ほぼ自分の目的通りになったわけですが、ここまで辿り着くのにごまかし・省略・後先考えないを基本に押し進めてきました。(やっぱ動かないとねぇ)
 しかし、流石に今回改造に利用したwikinote.inc.phpに対して削除・追加は、それ本来の機能*2を失わせるものでした。
 一応、この改造も整理して公開していこうと考えているので、このままじゃまずい!*3という事で、wikinote.inc.phpの動作に影響を与えないように改良してみました。

  1. 当初wikinoteを利用するに当たって装飾タグ<ul><li>がごっつ邪魔だったので削除していました。これを消さないで取り込む方法は・・・
    • やっぱり正規表現かな?しかし私は正規表現が全くわかりません。 (^^; とりあえず色々とyahooで調べて適当に作ってみました。
        0
        1
        2
        3
        4
        5
        6
        7
        8
        9
       10
       11
       12
       13
       14
       15
       16
       17
       18
       19
      
      		if (PLUGIN_MINICALENDAR_VIEWER_COMMENT === TRUE) {
       
      			if (exist_plugin_inline('wikinote')) {					//taru 06.08.18 if~
      +				$wikinotepage = 'Note/' . $page;
      +				$search_r = array ('@<ul[^>]*?>(.+?)</ul>@si',		// ul を削除
      +					'@<li[^>]*?>(.+?)</li>@si',						// li タグを削除
      +					'@<a href="[^>]*?>Article</a>@si',				// Article リンクを削除
      +					'@>Comment@si');								// Commentの置き換え
      +				$replace_r = array ('$1',
      +					'$1',
      +					'',
      +					'><img src="'.IMAGE_URI.'plus/comment.png" width="15" height="15" alt="Comment" title="Comment" />Comment' . "(" . log_count('update',$wikinotepage) . ")"
      +					);
       
      				$comm = call_user_func(array(new PluginWikinote(array('templink')), 'convert'));
      				$comm = preg_replace(array("'<p>'si","'</p>'si"), array("",""), $comm );
      -				$tail .= str_replace('>Comment','><img src="'.IMAGE_URI.'plus/comment.png" width="15" height="15" alt="Comment" title="Comment" />Comment' . "(" . log_count('update',$wikinotepage) . ")",$comm);
      +				$tail .= preg_replace($search_r, $replace_r, $comm);
      			}
      		}
      
    • と、まぁこんな感じにしたら何故かうまく動いている様子です。
    • ちなみにdo_plugin_convertを使わずにcall_user_func(array(new PluginWikinote(array('templink')), 'convert'));としているのは、wikinote内でグローバル変数が使われていたのでそこをコメントアウトするかこの方法を使うかしないとincludeした時に書くページのコメントリンクが同じなる現象が起きるからです。

リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS