質問箱/2102

カテゴリ
サマリ特定のページが更新された時にメール通知したい
バージョン1.4.2
投稿者だりあ
状態完了
投稿日2004-03-23 (TUE) 11:39:16

質問

特定のページ、例えば FAQ などのヘルプ系ページが更新された時だけメールで管理者に通知することは可能でしょうか? pukiwiki.ini.php の $notify だと全ページが対象になってしまいますよね?

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

回答

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);
+ 	}
 }
  • 名無しさん 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)
    +      {
    とすればいいのでは?
  • だりあ 2004-03-25 (THU) 10:03:54

    PukiWiki を運用していくには本格的に PHP を勉強しないとダメですね。 :( 実現方法をそのまま教えてもらう形になってしまいましたが、上記の通りで希望通りのことが実現できました。ありがとうございました。



トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-11-23 (木) 19:13:27
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.292 sec.

SourceForge