hypweb.net
XOOPSマニア  最新情報のRSS(サイト全体)
[ 自宅サーバーWebRing |ID=54 前後5表示乱移動サイト一覧 ]

08年12月2日(Tue) 3時42分
TOP » Wiki [自由帳] » 日本語のページ名にオートリンク-PukiWikiの雑記/日本語のページ名にオートリンク-Wiki [自由帳]
Counter: 2653, today: 1, yesterday: 1

日本語のページ名にオートリンク

PukiWikiの雑記

すでに、存在する日本語のページ名には自動で [[ ]] ブラケットをつけて、リンクするようにしました。
日本語のページ名WikiName名以外 としました。
また、入力画面で「オートブラケット処理をする」にチェックした時のみ処理するようにしました。(2003/3/4)

! をページ名の前につけることで、オートブラケットを抑止できます。

CVSより(tar.gz):最新版ダウンロード*
[ 差分パック ] [ アップデートパック(tar.gz) ] [ CVSディレクトリ ]
最新版といっても
PukiWiki作業日記CVS投入アナウンス以降に書かれている内容は反映されていません。
アップデート用です
このファイルをPukiWikiMod 0.04〜1.5.1 に上書きすることにより最新のバージョンにアップデートできます。
ただし、動作検証が不十分なため、不具合が出ることもあります。 :p
よって冒険者モードですが、出来るだけ多くの方に使っていただいて、フィードバックを頂けると嬉しいです。 :D
注意事項
Ver 0.07 以前からアップデートした場合は、PukiWikiMod管理画面の [ データベース初期化 ] - [ DBをすべて初期化&再設定 ]を実行して、データベースのアップデートを行ってください。
また、念のため [ ページリンク情報初期化 ] も実行しておいたほうがいいと思います。

改造内容:
html.phpに以下の function を追加。

// ページネームの取得
function get_page_name(){
	global $non_list,$whatsnew;
	
	$tmpnames = array();
	$retval = array();
	$files = get_existpages();	
	foreach($files as $page) {
		if(preg_match("/$non_list/",$page)) continue;
		if($page == $whatsnew) continue;
		$tmpnames[strip_bracket($page)] = mb_strlen(strip_bracket($page));
	}
	arsort ($tmpnames);
	reset ($tmpnames);
	foreach($tmpnames as $name => $mojisu){
		$retval[] = $name;
	}
	return $retval;
}

pukiwiki.php の「プレビュー」と「書き込みもしくは追加もしくはコメントの挿入」の箇所の

$post["msg"] = preg_replace("/^#freeze\n/","",$post["msg"]);

の後ろに以下のコードを挿入(2箇所)

//ページ名に自動リンク by nao-pon
foreach (get_page_name() as $page_name){
	if (ereg("[^_a-zA-Z0-9]",$page_name)){ //英数記号以外
		$post["msg"] = mbereg_replace(
		"(^|\]\])([^[\]]*?)($page_name)([^[\]]*?)(\[\[|$)",
		"\\1\\2[[\\3]]\\4\\5",$post["msg"]);
	}
}
//nao-pon

整形済み指定の場合は、処理しないようにちょっと修正。

//ページ名に自動リンク by nao-pon
$post["msg"]=ereg_replace("[\n] ","\n [[",$post["msg"]);
foreach (get_page_name() as $page_name){
	if (ereg("[^_a-zA-Z0-9]",$page_name)){ //英数記号以外
		$post["msg"] = mbereg_replace("
		(^|\]\])([^[\]]*?)($page_name)([^[\]]*?)(\[\[|$)",
		"\\1\\2[[\\3]]\\4\\5",$post["msg"]);
	}
}
$post["msg"]=ereg_replace("[\n] \[\[","\n ",$post["msg"]);
//nao-pon

さらに!を頭につけたページ名はオートリンク抑止するように修正。

//ページ名に自動リンク by nao-pon
$post["msg"]=ereg_replace("[\n] ","\n[[",$post["msg"]);
foreach (get_page_name() as $page_name){
	if (ereg("[^_a-zA-Z0-9]",$page_name)){ //英数記号以外
		$post["msg"] = mbereg_replace("!$page_name","[[!$page_name]]",$post["msg"]);
		$post["msg"] = mbereg_replace("
		(^|\]\])([^[\]]*?)($page_name)([^[\]]*?)(\[\[|$)",
		"\\1\\2[[\\3]]\\4\\5",$post["msg"]);
		$post["msg"] = mbereg_replace("\[\[!$page_name\]\]","!$page_name",$post["msg"]);
	}
}
$post["msg"]=ereg_replace("[\n]\[\[","\n ",$post["msg"]);
//nao-pon

さらに、WikiName以外に変更と#で始まる行は処理しないようにした。

 //ページ名に自動リンク by nao-pon
 if ($auto_bra_enable) {
   $post["msg"]=ereg_replace("(^|[\n])( |#)","\\1\\2[[",$post["msg"]);
   foreach (get_page_name() as $page_name){
     if(!preg_match("/^".$WikiName."$/",$page_name)){ //WikiName以外
       $post["msg"] = mbereg_replace("!$page_name","[[!$page_name]]",$post["msg"]);
       $post["msg"] = mbereg_replace("(^|\]\])([^[\]]*?)($page_name)([^[\]]*?)(\[\[|$)",
                      "\\1\\2[[\\3]]\\4\\5",$post["msg"]);
       $post["msg"] = mbereg_replace("\[\[!$page_name\]\]","!$page_name",$post["msg"]);
       
     }
   }
   $post["msg"]=ereg_replace("(^|[\n])( |#)\[\[","\\1\\2",$post["msg"]);
 }  
 //nao-pon


Name:

Reload   Diff Source Attach Attach List   Wiki Top Page List Search Resent Chenges Backup   Help   RSS feed
Page name:PukiWikiの雑記/日本語のページ名にオートリンク [ Sended pings(0) ]
Author:通りすがりさん - 2003/05/12 15:16:44 JST(2030d)
Last edit:通りすがりさん - 2003/05/12 15:16:44 JST(2030d)
Editers:登録ユーザー
Back Link:PukiWikiMod(72d) CVS(81d) コメント(188d) 差分パック(361d) PukiWiki作業日記(521d) アップデート(608d) なおき(962d) PukiWikiの雑記(2005d) 日本語(2109d) WikiName(2128d)

ページコメント
 
The comments are owned by the poster. We aren't responsible for their content.

Track Back [ Track Back(0) ]
Track Back URL: http://xoops.hypweb.net/wiki/tb/66

このページのTopへ
ログイン
ユーザ名:

パスワード:

オートログイン

Basic 認証

Register now! | Lost Password?

mixiでログイン Yahoo!でログイン
メインメニュー
最新のページ
ブックマーク
Please log in to use it.
[Login]
新着トラックバック
2008-12-1 2007-12-26 2007-11-23 2007-11-21 2007-10-21 2007-9-26 2007-8-16 2007-8-15 2007-8-7 2007-7-28
サイト内 Wiki
☆ 検索 ☆



高度な検索(サイト内)
FireFox検索プラグイン
オンライン状況
合計 39 人がオンライン中 :-)
(Wiki [自由帳] : 4 人)

登録ユーザ: 0 & ゲスト: 39

もっと...
サイト情報
管理人

nao-pon
 

登録ユーザ数: 1469


現在ページのQRコード
現在ページのQRコード
[携帯対応]
参照元情報
No trackback