[[参拾萬.jp>FrontPage]] > [[PukiWikiのカスタマイズ]] > &color(#ff0000,#ffffcc){リンク先URLを別窓で開く}; *リンク先URLを別窓で開く [#wa4e9c0c] ''/lib/make_link.php'' を,以下のサイトにしたがって編集すればよいだけ。 → http://www.ns-lab.org/wiki/?PukiWiki%2F%E6%94%B9%E8%89%AF%2F%E5%88%A5%E7%AA%93%E3%83%AA%E3%83%B3%E3%82%AF *俺の更なる改良 [#b12876e7] - 俺は,&color(#ff0000){『URLを"+"を付けると同窓,付けないと別窓』};と設定した。(→ [[参拾萬.xyzの掲示板(+http://300000.xyz/bbs/)>+http://300000.xyz/bbs/]]のみ同窓,他は別窓。) - http:// で始まるリンクには,[[このアイコン→>http://300000.xyz/pukiwiki/image/external_link.gif]]が付くようにした。 **編集ファイル [#q685bcf6] +まず,''[PukiWiki]/image/''フォルダ に''external_link.gif'' 画像ファイル([[コレ→>http://300000.xyz/pukiwiki/image/external_link.gif]])を入れておく。 +''[PukiWiki]/lib/make_link.php''ファイルを,以下のように編集する。 *** [class Link_url extends Link()] - [function get_pattern()] [#f5cc51cb] -書き換え前 function get_pattern() { $s1 = $this->start + 1; return <<<EOD (\[\[ # (1) open bracket ((?:(?!\]\]).)+) # (2) alias (?:>|:) )? ( # (3) url (?:(?:https?|ftp|news):\/\/|mailto:)[\w\/\@\$()!?&%#:;.,~'=*+-]+ ) (?($s1)\]\]) # close bracket EOD; } -書き換え後 function get_pattern() { $s1 = $this->start + 1; return <<<EOD (\[\[ # (1) open bracket ((?:(?!\]\]).)+) # (2) alias (?:>|:) )? ( # (3) url (?:(?:\+?https?|\+?ftp|\+?news):\/\/|mailto:)[\w\/\@\$()!?&%#:;.,~'=*+-]+ ) (?($s1)\]\]) # close bracket EOD; } *** [class Link_url extends Link()] - [function toString()] [#u5eeefa8] -書き換え前 function toString() { if (FALSE) { $rel = ''; } else { $rel = ' rel="nofollow"'; } return '<a href="' . $this->name . '"' . $rel . '>' . $this->alias . '</a>'; } -書き換え後 function toString() { if (FALSE) { $rel = ''; } else { $rel = ' rel="nofollow"'; } if (ereg("^(\+)(.*)", $this->name, $regs)) { return '<a href="' . $regs[2] . '" ' . $rel . '>' . $this->alias . '</a>'; # +が付いていてもURLと認識するおまじない }else{ return '<a href="' . $this->name . '" target="_blank" ' . $rel . '>' . $this->alias . '<img src="./image/external_link.gif"></a>'; # そうでなければ勝手にURLと認識 } } **リンク方法 [#h9f046a7] -別窓にするリンク方法(通常の外部リンク,アイコン付き) → [例] http://300000.jp/ -別窓にしないリンク方法 → [例] +http://300000.jp/ Tips: 「別窓にしない」かつ「+を表示させない」 → [[http://300000.jp/>+http://300000.jp/]]