記事公開時、ユーザ宛に通知する機能

2014年11月21日 at 15:01

社内用サイトを構築し、基本的には思った様に動いているのですが、記事の公開時(新ページ作成時)、社員(ユーザ)宛に新しい記事が公開された旨自動で通知する機能等無いものかと尋ねられました。
ユーザのリストを利用して、メールを出す、というのであれば、過去の記事にあった「Mailer」や「Mailing List」のアドオンを使用するということになると思いますが、公開時自動でみんなにリマインド、ということができるのかどうか(そういうアドオンがあるのかどうか)解りません。
フォーラムに使われている monitor の様な感じで全員にEメールでリマインドを飛ばせる機能を考えていますが、そういったことは可能なのでしょうか。

コンクリート5のバージョンは5.6.2.1です。

よろしくお願い致します。

タグ:

Re: 記事公開時、ユーザ宛に通知する機能

2014年11月23日 at 12:38
ワークフロー機能を使えば一応可能です。ワークフロー機能は、基本的にはページの公開をいったん保留し、承認権限を持った人にメールで通知し、メールを受け取った人が承認または却下を行なうと言う機能です。承認された時、却下された時にもメールで通知を飛ばすことができます。これを応用し、ページが承認された時の通知先を全ユーザーにすれば良いと思います。
 

Re: 記事公開時、ユーザ宛に通知する機能

2014年11月27日 at 17:22
ありがとうございます。
返答が遅くなってすいません。
試してみたのですが、解りません。

新しいグループをメール通知用に作ってワークフローを作ってみました。

・承認か拒否 : 管理者
・エントリーの通知 : 管理者
・承認を通知 : 管理者,メール通知ユーザ
・拒否通知 : 管理者

が、ページを編集後、申請とかそういう話も無く普通に更新されました。ワークフローに乗っかってない感じです。

どうやら、hissyさんの予想を超えて私は全然解ってない様ですorz
ワークフローの機能と設定に関する説明などのあるページを教えていただけますでしょうか。

http://concrete5-japan.org/help/using-concrete5-7/dashboard/workflow/
がそれかと思ったのですが、空表示でした。
 

Re: 記事公開時、ユーザ宛に通知する機能

2014年11月27日 at 17:26
いえいえ、ワークフロー機能は難しいんですよね。ドキュメントが不足していて申し訳ないです。

ワークフロー機能は、通知の設定だけではだめで、権限設定で、どの権限にたいしてワークフローを起動させるかを設定する必要があります。まず、管理画面から上級権限モードを有効にしてください。それから、ページ(サイト全体に適用するならトップページで可)の権限設定で「変更を承認」権限をクリックし、出てきたウィンドウの「ワークフロー」タブで、作成したワークフローにチェックを入れて保存する必要があります。
 

Re: 記事公開時、ユーザ宛に通知する機能

2014年12月4日 at 16:52
ありがとうございます。上級者モードと以前のモードが不可逆ということで、設定の変更を躊躇しましたが、おっしゃられた手順でメールによる通知ができました。

取りあえず要件は満たしたのですが、

"〜は保留中の変更があり、承認が必要です。ページを表示する"
の部分の文面を変える事は可能でしょうか。
 

Re: 記事公開時、ユーザ宛に通知する機能

2014年12月5日 at 5:39
メールテンプレートは concrete/mail ディレクトリに入っていまして、カスタマイズ可能です。カスタマイズの際はファイルを直接書き換えず、ファイルをコピーしてから行なってください。詳細は、当サイトで「オーバーライド」について検索してみてください
 

Re: 記事公開時、ユーザ宛に通知する機能

2014年12月18日 at 16:00
間が空きました。申し訳ありません。他事に手を取られてました。
オーバーライドに関して鑑みつつ、メールテンプレートの件試してみました。
basic_workflow_notification.php を
〜略
$subject = SITE . " " . t("更新の通知");
$body = t(" %s さん,

下記のページが更新されました。チェックお願い致します。

%s

", $uName, $message);
の様に変更しました。

""
(私のID) さん,

下記のページが更新されました。チェックお願い致します。

2014年12月18日 2:39 PM に admin さんが、以下の申請を許可しました

---
"(変更したページの名前)" は保留中の変更があり、承認が必要です。ページを表示する:http://www.ドメイン.com/index.php/変更されたページ/
---
""
というメールが送付される様になったのですが、

この
<
2014年12月18日 2:39 PM に admin さんが、以下の申請を許可しました

---
"(変更したページの名前)" は保留中の変更があり、承認が必要です。ページを表示する:
>の

変更はどの様に行えますでしょうか。
concrete/core/models/workflow/types以下のbasic.phpの59行目以降あたりを直接書き換えるとうまく行きそうな気配がするのですが、失敗すると困ってしまいそうな事になる気もしてます。
 

Re: 記事公開時、ユーザ宛に通知する機能

2014年12月22日 at 16:35
basic.php を弄ってみましたが、やっぱり迂闊に弄っちゃいけない奴ですね。
編集時、ブロックの選択ができなくなったり、編集を終了させるボタンがなくなったりしました。
orz

しかも該当の所の表示を思い通りにしようとすると、basic.phpだけでなくmove_page.phpとかchange_page_permissions.phpとかも書き換える箇所がありそうです・・・

対応はメールテンプレートで追いつく所までにしようかな、と思い始めました。
 

Re: 記事公開時、ユーザ宛に通知する機能

2015年1月13日 at 8:28
ワークフロー周りは、私もあたらしいワークフローを開発したことがありますが、かなり触るファイルも多く関係性も複雑なので、翻訳ファイルを変更した方が思い通りになると思います。
 

Re: 記事公開時、ユーザ宛に通知する機能

2015年1月13日 at 18:45
ありがとうございます。
上記の件に関しては、取りあえず、無理な事はせず、メールテンプレートで対応できる所を工夫して運用していますが、改善できそうな所があるのであれば試してみようと思います。

ご返信の中にあった翻訳ファイルとはlanguages/ja_JP/LC_MESSAGES/messages.poですね?
 

Re: 記事公開時、ユーザ宛に通知する機能

2015年1月13日 at 21:23
そうです grin