Hatena::Groupbluespear

bluespearの勉強メモ

2008-07-24

[]作業ログ - 自動で改行を反映 オプション 02:02

Editに,改行をチルダに置換するオプションを付ける.

ベースPukiWiki 1.4.7plus-u2-eucjp

参考: 改行を有効にする-PukiWikiの雑記/改行を有効にする-Wiki 自由帳 - XOOPSマニア

追加

*** ja.lng.dist.php.orig	Mon Apr 24 16:43:07 2006
--- ja.lng.dist.php	Fri Jul 25 01:35:34 2008
***************
*** 70,75 ****
--- 70,76 ----
  $_btn_update    = 'ページの更新';
  $_btn_cancel    = 'キャンセル';
  $_btn_notchangetimestamp = 'タイムスタンプを変更しない';
+ $_btn_enter_enable = '自動で改行を反映させる';
  $_btn_addtop    = 'ページの上に追加';
  $_btn_template  = '雛形とするページ';
  $_btn_load      = '読込';
*** ja.lng.php.orig	Thu May 25 01:40:04 2006
--- ja.lng.php	Fri Jul 25 01:35:29 2008
***************
*** 70,75 ****
--- 70,76 ----
  $_btn_update    = 'ページの更新';
  $_btn_cancel    = 'キャンセル';
  $_btn_notchangetimestamp = 'タイムスタンプを変更しない';
+ $_btn_enter_enable = '自動で改行を反映させる';
  $_btn_addtop    = 'ページの上に追加';
  $_btn_template  = '雛形とするページ';
  $_btn_load      = '読込';
  • plugin/edit.inc.php
*** edit.inc.php.orig	Wed Jun 14 13:39:46 2006
--- edit.inc.php	Fri Jul 25 02:00:41 2008
***************
*** 151,156 ****
--- 151,174 ----
  
  	// Delete "#freeze" command
  	$vars['msg'] = preg_replace('/^#freeze\s*$/im', '', $vars['msg']);
+ 
+ 	//改行からチルダへの置換オプション (original by nao-pon, edit by bluespear)
+ 	//改行コード統一
+ 	$vars['msg'] = preg_replace("/\x0D\x0A|\x0D|\x0A/","\n",$vars['msg']);
+ 	//改行有効
+ 	if(isset($vars["enter_enable"])) {
+ 		//改行前の~を削除
+ 		$vars['msg'] = preg_replace("/~\n/","\n",$vars['msg']);
+ 		//行の配列に変換して1行毎に処理
+ 		$post_lines = array();
+ 		$post_lines = split("\n",$vars['msg']);
+ 		$post_lines = preg_replace("/(^[^ #\-+*|].*)/","\\1~",$post_lines);
+ 		$vars['msg'] = join("\n",$post_lines);
+ 		//余分な~を削除
+ 		$vars['msg'] = preg_replace("/~\n([ #\-+*|\n])/","\n\\1",$vars['msg']);
+ 		$vars['msg'] = preg_replace("/~$/","",$vars['msg']);
+ 	}
+ 
  	$msg = & $vars['msg']; // Reference
  
  	$retvars = array();
*** html.php.orig	Mon Oct 16 11:45:15 2006
--- html.php	Fri Jul 25 01:58:38 2008
***************
*** 258,263 ****
--- 258,272 ----
  	$refpage = htmlspecialchars($vars['refpage']);
  	$add_assistant = edit_form_assistant();
  
+ 	// 自動で改行を反映(改行をチルダにする)チェックボックス
+ 	global $_btn_enter_enable;
+ 	$checked_enter = isset($vars['enter_enable']) ? ' checked="checked"' : '';
+ 	$add_enter_enable = '<input type="checkbox" name="enter_enable" ' .
+ 			'id="_edit_form_enterenable" value="true"' . $checked_enter . ' />' . "\n" .
+ 			'   ' . '<label for="_edit_form_enterenable"><span class="small">' .
+ 			$_btn_enter_enable . '</span></label>' . "\n" .
+ 			'&nbsp;';
+ 
  	// 'margin-bottom', 'float:left', and 'margin-top'
  	// are for layout of 'cancel button'
  	$body = <<<EOD
***************
*** 279,284 ****
--- 288,294 ----
     <input type="submit" name="write"   value="$_btn_update" accesskey="s" />
     $add_top
     $add_notimestamp
+    $add_enter_enable
    </div>
    <textarea name="original" rows="1" cols="1" style="display:none">$s_original</textarea>
    </div>