質問箱/2087
の編集
Top
/
質問箱
/
2087
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
Wikiを試したい方へ:
「この」Wikiは、
PukiWiki
のための公式Wikiです。
テスト書き込みなどは
お試しサイト
https://pukiwiki.osdn.jp/_trial/
をご利用ください
**[[質問箱/2087]] [#dbcc8dde] |RIGHT:100|LEFT:410|c |~カテゴリ|| |~サマリ|更新通知メールに添付ファイルのurlを表示させるには?| |~バージョン|1.4.2| |~投稿者|[[hoge]]| |~状態|完了| |~投稿日|&new{2004-03-15 (MON) 17:46:36};| ***質問 [#o53b8cf7] ローカルでクローズしたメンバで使用しています。 ページ新規作成or更新時にメールを各メンバに送っていますが、この際、添付ファイルのリンク先(url)が自動で載せられないかと思っています。基本的に同じページにしか添付しないので、そのページに添付されたファイルのみです。 refだとブラウザは見れるのですが、メールだとなんだか分からないので、質問しました。ページのurlはメール上に載せられましたが、そこから添付ファイルにリンクするのではなく、メールから直接ダウンロードしたいのです。 よろしくお願いします。 ***回答 [#vdc2bda3] -[[reimy]] &new{2004-03-15 (MON) 18:56:39}; ~添付ファイルへのリンクのURLをメールに記述すればいいだけでは? http://..../?plugin=attach&pcmd=open&file=ファイル名&refer=ページ名 -[[hoge]] &new{2004-03-16 (TUE) 09:00:03}; ~file.php内で$strに上記くっつける形で書いて、PukiWikiからメールを送信しようと思って、ページ名は $r_page = rawurlencode($page); としたのですが、添付ファイル名の取得方法がわからなかったのです。書き方が悪かったようですみませんでした。複数の添付ファイルがある場合、ファイル名をどのように取得するかも難しそうですし。 ~AttachプラグインのAttachPagesとかtoStringのクラスをfile.php内で継承すれば良いのかと思い色々やってみましたが、うまくいってません。。。 -[[hoge]] &new{2004-03-18 (THU) 11:27:39}; ~自己レスです。 クラスが良く分からなかったのですが、file.phpにゴリ押しで以下のように書いて、解決しました。 //-------- クラス //ファイル require('plugin/attach.inc.php'); class AttachFile2 extends AttachFile { function AttachFile2($page,$file,$age=0) { $this->page = $page; $this->file = basename($file); $this->age = is_numeric($age) ? $age : 0; $this->basename = UPLOAD_DIR.encode($page).'_'.encode($this->file); $this->filename = $this->basename .($age ? '.'.$age : ''); $this->logname = $this->basename.'.log'; $this->exist = file_exists($this->filename); $this->time = $this->exist ? filemtime($this->filename) - LOCALZONE : 0; $this->md5hash = $this->exist ? md5_file($this->filename) : ''; } function toString() { global $script,$date_format,$time_format,$weeklabels; // global $_attach_messages; $this->getstatus(); $param = '&file='.rawurlencode($this->file).'&refer='.rawurlencode($this->page).($this->age ? '&age='.$this->age : ''); // $title = $this->time_str.' '.$this->size_str; $label = htmlspecialchars($this->file); if ($this->age) { $label .= ' (backup No.'.$this->age.')'; } // $info = $count = ''; return "$label が以下に添付されています。"."\n"."$script?plugin=attach&pcmd=open$param"."\n"; } } // ファイルコンテナ class AttachFiles2 extends AttachFiles { function AttachFiles2($page) { $this->page = $page; } function add($file,$age) { $this->files[$file][$age] = &new AttachFile2($this->page,$file,$age); } } // ページコンテナ class AttachPages2 extends AttachPages { function AttachPages2($page='',$age=NULL) { $dir = opendir(UPLOAD_DIR) or die('directory '.UPLOAD_DIR.' is not exist or not readable.'); $page_pattern = ($page == '') ? '(?:[0-9A-F]{2})+' : preg_quote(encode($page),'/'); $age_pattern = ($age === NULL) ? '(?:\.([0-9]+))?' : ($age ? "\.($age)" : ''); $pattern = "/^({$page_pattern})_((?:[0-9A-F]{2})+){$age_pattern}$/"; while ($file = readdir($dir)) { if (!preg_match($pattern,$file,$matches)) { continue; } $_page = decode($matches[1]); $_file = decode($matches[2]); $_age = array_key_exists(3,$matches) ? $matches[3] : 0; if (!array_key_exists($_page,$this->pages)) { $this->pages[$_page] = &new AttachFiles2($_page); } $this->pages[$_page]->add($_file,$_age); } closedir($dir); } } で、 $obj = &new AttachPages2($vars['page'],0); $attachcmt = $obj->toString($vars['page'],TRUE); として、 $str = (!empty($attachcmt) ? "以下の添付ファイルがあります。"."\n" : "").$obj->toString($vars['page'],TRUE)."----"."\n".$str; でうまくいきました。 -[[dev:BugTrack/686]] -- &new{2004-09-13 (月) 08:28:32}; #comment
**[[質問箱/2087]] [#dbcc8dde] |RIGHT:100|LEFT:410|c |~カテゴリ|| |~サマリ|更新通知メールに添付ファイルのurlを表示させるには?| |~バージョン|1.4.2| |~投稿者|[[hoge]]| |~状態|完了| |~投稿日|&new{2004-03-15 (MON) 17:46:36};| ***質問 [#o53b8cf7] ローカルでクローズしたメンバで使用しています。 ページ新規作成or更新時にメールを各メンバに送っていますが、この際、添付ファイルのリンク先(url)が自動で載せられないかと思っています。基本的に同じページにしか添付しないので、そのページに添付されたファイルのみです。 refだとブラウザは見れるのですが、メールだとなんだか分からないので、質問しました。ページのurlはメール上に載せられましたが、そこから添付ファイルにリンクするのではなく、メールから直接ダウンロードしたいのです。 よろしくお願いします。 ***回答 [#vdc2bda3] -[[reimy]] &new{2004-03-15 (MON) 18:56:39}; ~添付ファイルへのリンクのURLをメールに記述すればいいだけでは? http://..../?plugin=attach&pcmd=open&file=ファイル名&refer=ページ名 -[[hoge]] &new{2004-03-16 (TUE) 09:00:03}; ~file.php内で$strに上記くっつける形で書いて、PukiWikiからメールを送信しようと思って、ページ名は $r_page = rawurlencode($page); としたのですが、添付ファイル名の取得方法がわからなかったのです。書き方が悪かったようですみませんでした。複数の添付ファイルがある場合、ファイル名をどのように取得するかも難しそうですし。 ~AttachプラグインのAttachPagesとかtoStringのクラスをfile.php内で継承すれば良いのかと思い色々やってみましたが、うまくいってません。。。 -[[hoge]] &new{2004-03-18 (THU) 11:27:39}; ~自己レスです。 クラスが良く分からなかったのですが、file.phpにゴリ押しで以下のように書いて、解決しました。 //-------- クラス //ファイル require('plugin/attach.inc.php'); class AttachFile2 extends AttachFile { function AttachFile2($page,$file,$age=0) { $this->page = $page; $this->file = basename($file); $this->age = is_numeric($age) ? $age : 0; $this->basename = UPLOAD_DIR.encode($page).'_'.encode($this->file); $this->filename = $this->basename .($age ? '.'.$age : ''); $this->logname = $this->basename.'.log'; $this->exist = file_exists($this->filename); $this->time = $this->exist ? filemtime($this->filename) - LOCALZONE : 0; $this->md5hash = $this->exist ? md5_file($this->filename) : ''; } function toString() { global $script,$date_format,$time_format,$weeklabels; // global $_attach_messages; $this->getstatus(); $param = '&file='.rawurlencode($this->file).'&refer='.rawurlencode($this->page).($this->age ? '&age='.$this->age : ''); // $title = $this->time_str.' '.$this->size_str; $label = htmlspecialchars($this->file); if ($this->age) { $label .= ' (backup No.'.$this->age.')'; } // $info = $count = ''; return "$label が以下に添付されています。"."\n"."$script?plugin=attach&pcmd=open$param"."\n"; } } // ファイルコンテナ class AttachFiles2 extends AttachFiles { function AttachFiles2($page) { $this->page = $page; } function add($file,$age) { $this->files[$file][$age] = &new AttachFile2($this->page,$file,$age); } } // ページコンテナ class AttachPages2 extends AttachPages { function AttachPages2($page='',$age=NULL) { $dir = opendir(UPLOAD_DIR) or die('directory '.UPLOAD_DIR.' is not exist or not readable.'); $page_pattern = ($page == '') ? '(?:[0-9A-F]{2})+' : preg_quote(encode($page),'/'); $age_pattern = ($age === NULL) ? '(?:\.([0-9]+))?' : ($age ? "\.($age)" : ''); $pattern = "/^({$page_pattern})_((?:[0-9A-F]{2})+){$age_pattern}$/"; while ($file = readdir($dir)) { if (!preg_match($pattern,$file,$matches)) { continue; } $_page = decode($matches[1]); $_file = decode($matches[2]); $_age = array_key_exists(3,$matches) ? $matches[3] : 0; if (!array_key_exists($_page,$this->pages)) { $this->pages[$_page] = &new AttachFiles2($_page); } $this->pages[$_page]->add($_file,$_age); } closedir($dir); } } で、 $obj = &new AttachPages2($vars['page'],0); $attachcmt = $obj->toString($vars['page'],TRUE); として、 $str = (!empty($attachcmt) ? "以下の添付ファイルがあります。"."\n" : "").$obj->toString($vars['page'],TRUE)."----"."\n".$str; でうまくいきました。 -[[dev:BugTrack/686]] -- &new{2004-09-13 (月) 08:28:32}; #comment
テキスト整形のルールを表示する