こんにちは、おーしまです。
今回は、自動車レビューサイトに新たに、通知機能を実装しようと思い、それについて書きます。
まだコードは書けていませんが、コードを書く前にどうやったら実装できるのか考えることも重要だと思うので、まずは頭の中で実装していきます。
詳細は、
- 自分のレビューに対して、誰かがコメントした際に、自分のユーザー詳細ページの通知ボタンに未読マークが付く
- 通知ボタンをクリックすると、通知が下に表示される
- 通知ボタンをクリックすると、コメントされたレビュー詳細画面に遷移する
- 自分のレビューに自分でコメントしても、通知は来ない
- 誰かのレビューにコメントして、その後誰かがそのレビューにコメントすると通知が来る
- 通知ボタンを押すと、未読マークが消える
- 通知がないときは、「通知がありません」と表示
- 通知が5個以上ある際は、スクロールで表示
- 通知が表示されているとき、「x」ボタンを押すと、通知表示が消える
こんな感じでしょうか。
実装方法は、
- 新たに通知テーブル(notificationsテーブル)を作成
カラム{
- コメントid
- コメントされたレビューid
- コメントしたユーザーid
- コメントされたレビューのユーザーid
- notice(既読したかしてないか)
}
- コメントが保存される際に、notificationテーブルにも、通知を保存
- ユーザー詳細画面に遷移した際に、そのユーザーとログインしているユーザーが同じであれば、通知ボタンを表示
- コメントされたレビューのユーザーid == ログインしているユーザーid で、noticeがfalseになっている通知があれば、未読マークを表示
- JavaScriptで通知ボタンが押された際に、下に通知を表示
- 通知がクリックされると、レビュー詳細ページに遷移し、noticeのfalseをtrueに保存
コードを打たないと、このくらいまでしか考えられませんでした。
通知機能は思っていたより、難しそうです。
おやすみなさい。