*リンク先URLを別窓で開く [#wa4e9c0c] -こちらを参照 → [[nowsky/PukiWiki/改良/別窓リンク>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の先頭に"+"を付けると同窓,付けないと別窓''』};と設定した。(上のリンク先とは逆の設定!) - URLの先頭に"+"を付けずにリンクした箇所には,[[←このアイコン>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/]]