**[[続・質問箱/102]] [#qd32afc9]
|RIGHT:70|LEFT:410|c
|~サマリ|特定のページが更新された時にメール通知したい|
|~バージョン|1.4.2|
|~投稿者|[[だりあ]]|
|~状態|完了|
|~投稿日|&new{2004-03-23 (TUE) 11:39:16};|
***質問 [#c00732b8]
特定のページ、例えば FAQ などのヘルプ系ページが更新された時だけメールで管理者に通知することは可能でしょうか?
pukiwiki.ini.php の $notify だと全ページが対象になってしまいますよね?

サーバは FreeBSD 5.2.1-RELEASE
メールソフトとして qmail が動いています。

***回答 [#iceea09e]
-[[名無しさん]] &new{2004-03-23 (TUE) 22:17:01};
~pukiwiki.ini.phpあたりで、メール通知するページを定義($notify_pageを新設)しておいて、file.phpの154行目あたりで$notify_pageかどうかで分岐させればできそうですね。
-[[だりあ]] &new{2004-03-24 (WED) 15:42:13};
:|
~PHP が分からないのですが、 file.php の 151行目、 if ($notify and $dir == DIFF_DIR) の直後に if 文で分岐させてみたところ、どのページを更新してもメール通知が来なくなってしまいました。具体的にはどのように条件判断させれば良いのでしょうか?ちなみに $notify = 1 などのメール通知に必要な条件は満たしています。
~行った変更は以下の通りです。
pukiwiki.ini.php に $notify_page = '通知させたいページ名' を設定した後、file.php を以下のように編集しました。
  if ($notify and $dir == DIFF_DIR)
  {
 + 	if ($notify_page == "通知させたいページ名")
 + 	{
  		if ($notify_diff_only)
  		{
  			// 差分だけを送信する
  			$str = preg_replace('/^[^-+].*\n/m','',$str);
  		}
  		if ($smtp_auth)
  		{
  			pop_before_smtp();
  		}
  			$subject = str_replace('$page',$page,$notify_subject);
  		ini_set('SMTP',$smtp_server);
  			mb_language(LANG);
  			mb_send_mail($notify_to,$subject,$str,$notify_header);
 + 	}
  }
-[[名無しさん]] &new{2004-03-24 (WED) 17:49:57};
~ちゃんとfile.phpのfunction file_write()の中で$notify_pageをglobal宣言してあるのでしょうか?
     function file_write($dir,$page,$str,$notimestamp=FALSE)
     {
       global $post,$update_exec;
       global $_msg_invalidiwn;
       global $notify,$notify_diff_only,$notify_to,$notify_from,$notify_subject,$notify_header;
       global $smtp_server,$smtp_auth;
 +     global $notify_page;
~また、
 + 	if ($notify_page == "通知させたいページ名")
 + 	{
となってますが、これじゃあ、いくらやってもだめでしょう。pukiwiki.ini.phpの中で
 $notify_page == "通知させたいページ名(正規表現)"; //Bracketはつけない
と定義。file.phpの中では
 +      if (ereg($notify_page,$page) == TRUE)
 +      {
とすればいいのでは?
-[[だりあ]] &new{2004-03-25 (THU) 10:03:54};
~PukiWiki を運用していくには本格的に PHP を勉強しないとダメですね。 :( 
実現方法をそのまま教えてもらう形になってしまいましたが、上記の通りで希望通りのことが実現できました。ありがとうございました。

#comment

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.3+ © 2001-2020 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.051 sec.

OSDN