*xpwiki [#aa44a4a0]
[[xpwiki>+http://xoops.hypweb.net/modules/xpwiki/]]
*前提条件 [#occ5909f]
-&size(16){&font(b){※CentOS 6.0での構築を前提に解説を行います。};};

Linux上にてPT2が動作する様にしておいてください。
[[ググれ>+https://www.google.co.jp/search?q=PT2+Linux&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&hl=ja&client=firefox-a]]ばすぐに出てくるので、recpt1コマンドを使用して録画ができる様に構築をして下さい。
~

*xpwiki別窓リンク [#wf899f8e]
ファイルの編集箇所は[[PukiWikiでの別窓リンク方法>PukiWiki/改良/別窓リンク]]と似ているのだが、編集箇所の一部が違うのでメモ
使い方はPukiWikiでの場合と同じでURLの先頭に”+”を付加する
*必須環境のインストール [#ab88638f]
recchal-serverの動作には以下のコマンドが必要になります。
-[[recpt1>+https://github.com/stz2012/recpt1]]
-[[mono>+http://www.mono-project.com/Main_Page]]
-[[screen>+http://www.icewalkers.com/Linux/Software/515080/Screen.html]]

 # cd [XOOPS_TRUST_PATH]/modules/xpwiki/class
 # cp make_link.php make_link.php-
 # chown root.root make_link.php-
 # chmod 400 make_link.php-
 # vi make_link.php
~
一番楽な方法はパッケージ管理システムを使用する方法です。
 # yum install mono-* screen

以後の書き換える場所は、xpwikiのバージョンによって変化
[[ver 4.x>#vc76c24f]]
[[ver 5.x>#g5d8add3]]
CentOS以外の人は上記以外のパッケージ管理でインストールするか、
makeするなりして各自インストールしておいて下さい。
~

*xpwiki別窓リンク - ver 4.x [#gdf3c384]
*recchal-serverの構成 [#sbf33a76]
recchal-serverは本体プログラムと、その他補助スクリプトによって構成されています。
解凍後のディレクトリ内には様々なファイルが存在しますが、以下にて指定する以外のファイルについては解凍時の状態でお願いします。
サーバの動作自体はrecchal-server本体をコンパイル(mono使用)で大丈夫ですが、
補助スクリプトもインストールする事を推奨します。
※各種設定/スクリプトファイルは内容を編集する必要があります。詳細は下記ファイル名のリンク先を確認して下さい。
-[[config.ini>Software/recchal/server/config.ini]]
recchal-server本体の設定ファイルです。待ち受けポート番号やIPアドレスの設定等はこのファイルを編集してください。

-&size(16){&font(b){クラス名:XpWikiLink_url extends XpWikiLink};};
-[[cron/recchal.cron>Software/recchal/server/recchal.cron]]
何らかの理由によりUDPストリーミングが停止されなかった場合に、スクリプト内の指定時間経過したストリーミングを自動的に停止させます。

-メソッド名:function get_pattern()
 -(                 # (3) url
 - (?:(?:https?|ftp|news):\/\/|mailto:)[\w\/\@\$()!?&%#:;.,~'=*+-]+
 -)
_/_/_/_/_/
 +(                 # (3) url
 + (?:(?:\+?https?|\+?ftp|\+?news):\/\/|mailto:)[\w\/\@\$()!?&%#:;.,~'=*+-]+
 +)
~
-[[init.d/recchal>Software/recchal/server/recchal.init]]
recchal-serverの起動スクリプト(init)です。実行ファイル/ログ保存先等を指定する必要があります。

-メソッド名:function toString()
 -    $img = ($this->is_image)? ' type="img"' : '';
 -    return '<a href="'.$this->name.'"'.$title.$rel.$class.$img.$target.'>'.$this->alias.'</a>';
_/_/_/_/_/
 +    $img = ($this->is_image)? ' type="img"' : '';
 +    if (ereg("^(\+)(.*)", $this->name, $regs)) {
 +        return '<a href="' . $regs[2] . '" target="_blank" ' . $title.$rel.$class.$img.$target . '>' . $this->alias . '</a>';
 +    }else{
 +        return '<a href="' . $this->name . '"' . $title.$rel.$class.$img.$target . '>' . $this->alias . '</a>';
 +    }
-log/recchal_server.shell.log
recchal-serverを起動した場合やcronによってストリーミングを自動停止した場合に、スクリプト経由でログが書き込まれます。

----
-&size(16){&font(b){クラス名:XpWikiLink_url_i18n extends XpWikiLink};};
-recchal_server.cs
recchal-serverの本体プログラムのソースです。コレをコンパイルする事でバイナリデータが作成されます。

-メソッド名:function get_pattern()
 -(                  # (3) scheme
 - (?:(?:https?|ftp|news):\/\/|mailto:)
 -)
_/_/_/_/_/
 +(                  # (3) scheme
 + (?:(?:\+?https?|\+?ftp|\+?news):\/\/|mailto:)
 +)
~
-recchal_server.log
recchal-serverがrecchal-clientから受信したパケットの内容を記録します。

-メソッド名:function toString()
 -        return '<a href="'.$this->name.'"'.$title.$rel.$class.$img.$target.'>'.$this->alias.'</a>'.$host;
_/_/_/_/_/
 +        if (ereg("^(\+)(.*)", $this->name, $regs)) {
 +            return '<a href="' . $regs[2] . '" target="_blank" ' . $title.$rel.$class.$img.$target . '>' . $this->alias . '</a>' . $host;
 +        }else{
 +            return '<a href="' . $this->name . '"' . $title.$rel.$class.$img.$target . '>' . $this->alias . '</a>' . $host;
 +        }
~
-[[script/stream-change.sh>Software/recchal/server/script]]
UDPストリーミングのチャンネル変更用スクリプト

*xpwiki別窓リンク - ver 5.x [#l50918c5]
-[[script/stream-off.sh>Software/recchal/server/script]]
UDPストリーミングの停止用スクリプト

-&size(16){&font(b){クラス名:XpWikiLink_url extends XpWikiLink};};

-メソッド名:function get_pattern()
 -(                 # (3) url
 - (?:(?:https?|ftp|news|site):\/\/|mailto:)[\w\/\@\$()!?&%#:;.,~'=*+-]+
 -)
_/_/_/_/_/
 +(                 # (3) url
 + (?:(?:\+?https?|\+?ftp|\+?news|\+?site):\/\/|mailto:)[\w\/\@\$()!?&%#:;.,~'=*+-]+
 +)
-[[script/stream-on.sh>Software/recchal/server/script]]
UDPストリーミングの開始用スクリプト
~

-メソッド名:function toString()
 -    $img = ($this->is_image)? ' type="img"' : '';
 -    return '<a href="'.$this->name.'"'.$title.$rel.$class.$img.$target.'>'.$this->alias.'</a>';
_/_/_/_/_/
 +    $img = ($this->is_image)? ' type="img"' : '';
 +    if (ereg("^(\+)(.*)", $this->name, $regs)) {
 +        return '<a href="' . $regs[2] . '" target="_blank" ' . $title.$rel.$class.$img.$target . '>' . $this->alias . '</a>';
 +    }else{
 +        return '<a href="' . $this->name . '"' . $title.$rel.$class.$img.$target . '>' . $this->alias . '</a>';
 +    }

----
-&size(16){&font(b){クラス名:XpWikiLink_url_i18n extends XpWikiLink};};

-メソッド名:function get_pattern()
 -(                  # (3) scheme
 - (?:(?:https?|ftp|news|site):\/\/|mailto:)
 -)
_/_/_/_/_/
 +(                  # (3) scheme
 + (?:(?:\+?https?|\+?ftp|\+?news|\+?site):\/\/|mailto:)
 +)
*本体のコンパイルとインストール [#k93633a8]
 # mkdir ~/recchal
 # cd ~/recchal
 # wget "http://[recchal-serverのtar.gzファイル]"
 # tar zxvf recchal-server_v*.*.*.tar.gz
 # chown -R root.root recchal-server_v*.*.*
 # chmod -R 755 recchal-server_v*.*.*
 # mv recchal-server_v*.*.* /usr/local/recchal
 # cd /usr/local/recchal
 # gmcs recchal_server.cs
~

-メソッド名:function toString()
 -        return '<a href="'.$this->name.'"'.$title.$rel.$class.$img.$target.'>'.$this->alias.'</a>'.$host;
_/_/_/_/_/
 +        if (ereg("^(\+)(.*)", $this->name, $regs)) {
 +            return '<a href="' . $regs[2] . '" target="_blank" ' . $title.$rel.$class.$img.$target . '>' . $this->alias . '</a>' . $host;
 +        }else{
 +            return '<a href="' . $this->name . '"' . $title.$rel.$class.$img.$target . '>' . $this->alias . '</a>' . $host;
 +        }
*cron用スクリプトの設置 [#g3afdea2]
 # mv cron/recchal.cron /etc/cron.hourly/
 # /etc/init.d/crond restart
~

*init用スクリプトの設置 [#uba3d692]
 # mv init.d/recchal /etc/rc.d/init.d/recchal
 # chkconfig --add recchal
 # chkconfig recchal on