**ページの更新時に指定のアドレスにメール通知機能 [#r3fbd820]
|RIGHT:70|LEFT:410|c
|~バージョン|1.4以降|
|~投稿者|[[不確定性原理]]|
|~状態|提案|
|~投稿日|&new{2008-05-13 (火) 23:40:27};|
***メッセージ [#m196895b]
会社の業務における情報共有に、イントラネット上でPukiWikiを使っています。
Wikiのページを編集した際のページ更新ボタンを押す際、編集したページの内容か、もしくはそのページのURLを、所定のメールアドレスに自動通知するか否かを選択できる機能を実装したく、いろいろ探していますが、見つかりません。

要するに、Wikiのページを編集した際、メーリングリストなどにページ変更追加のアナウンスしたい場合もあれば、いちいち通知するまでもない些細な修正もあるので、それを編集時に選択できるようにできないか?ということです。ご助言をお願いします。

 
***コメント [#ub1534fb]
- (追加)自動発信するメールのサブジェクトにページ名などが入るうれしいです。 -- [[不確定性原理]] &new{2008-05-14 (水) 00:04:58};
- (さらに追加)ページの更新時でなくても、ページ上のメニューに、メール通知ボタンが追加され、ページ更新後に、メールでアナウンスしたい場合は、そのボタンを押すと発信、ってな具合にできると理想的ですが。。。 -- [[不確定性原理]] &new{2008-05-14 (水) 00:06:38};
- 「タイムスタンプを変更しない」と同様に「更新通知を出さない」とかいうチェックボックスでも出して、その値を通知発送判別に盛り込めば。「タイムスタンプを変更しない」の処理をなぞればいいだけだから、改造はそんなに難しくはないと思う。 --  &new{2008-05-14 (水) 00:07:29};
-- こちらにチャレンジしようと思っていますが、タイムスタンプを更新しないの処理はどのphpファイルに入っていますでしょうか?? -- [[so]] &new{2013-09-10 (火) 17:39:04};
-- 自己解決しました、html.phpですね。  -- [[so]] &new{2013-09-10 (火) 19:22:59};
- すみません。。「メール通知しない」というチェックボックスを設け、それにチェックをつけた更新についてはメール通知をやめる。という仕様を実現したくいくつか試したのですがPHP初心者のため行き詰まり、、どなたかご教授ください。 
pukiwiki.ini.phpに、
 $nosendmail = 1;
のパラメータをを追加。
ja.lang.phpに
 $_btn_nosendmail = 'メール通知しない';
と、チェックボックスの文言を追加。
html.phpにて
 	$no_sendmail = '';
 	if ($nosendmail != 0) {
 		global $_btn_nosendmail;
 		$checked_time = isset($vars['nosendmail']) ? ' checked="checked"' : '';
	
		$no_sendmail = '<input type="checkbox" name="nosendmail" ' .
			'id="_edit_form_nosendmail" value="true"' . $checked_time . ' />' . "\n" .
			'   ' . '<label for="_edit_form_nosendmail"><span class="small">' .
			$_btn_nosendmail . '</span></label>' . "\n" .
			$no_sendmail .
			'&nbsp;';
	}
を追加し、さらにformタグの$add_notimestampのしたに
    $no_sendmail
を追加しました。これで更新時の画面に「メール通知しない」というチェックボックスをつけることができたものの、このパラメータ「nosendmail」はいつtrue、falseが切り替わりますか??また、そのパラメータにより[[続・質問箱/268]]の処理で「メール通知しない」のチェックをオンにしたらメールが送られないようにできそうでしょうか??-- [[so]] &new{2013-09-10 (火) 19:25:51};
- タイムスタンプの処理をなぞっただけなので、このままだと$nosendmailの値が変化するタイミングがないのかなあ。「ページの更新」ボタンを押すと、$notimestampはいつ切り替わるんでしょうか。 -- [[so]] &new{2013-09-10 (火) 20:16:14};
- global宣言してないのに$nosendmailの値をlib/html.phpで読めてチェックボックスが増えてるの??($nosendmailを0にしてちゃんと消えるならいいんですが)&br();とりあえず、フォームをpostした時の行き先はeditプラグインです。plugin_edit_write関数のどこかのタイミングで$nosendmailが有効で$post['nosendmail']の存在と中身が妥当な時にメールを送るかのフラグ$notifyを0にして無効にしちゃう、そんなかんじの処理が必要そうです。(pukiwiki.ini.phpで$nosendmailが0の時に'nosendmail'が送られてきても誤動作しないように両方チェックするような流れで書いてあります) --  &new{2013-09-10 (火) 23:59:10};
- 失礼しました。global宣言はちゃっかりしていました。html.phpのfunctionの中で「global $nosendmail;」ですね。 -- [[so]] &new{2013-09-11 (水) 16:16:33};
- ヒントありがとうございます!試行錯誤してみます。 -- [[so]] &new{2013-09-11 (水) 16:17:12};

#comment

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.068 sec.

OSDN