public function after_insert(\Notice\Model_MemberWatchContent $obj)
 {
     if (is_enabled('timeline')) {
         if (!($timelines = \Notice\Site_Model::get_timelines4foreign_table_and_id($obj->foreign_table, $obj->foreign_id))) {
             return false;
         }
         foreach ($timelines as $timeline) {
             $member_follow_timeline = \Timeline\Model_MemberFollowTimeline::check_and_create($timeline->id, $obj->member_id);
         }
     }
 }
Ejemplo n.º 2
0
 public function before_delete(\Notice\Model_MemberWatchContent $obj)
 {
     if (is_enabled('timeline')) {
         if (!($timelines = \Notice\Site_Model::get_timelines4foreign_table_and_id($obj->foreign_table, $obj->foreign_id))) {
             return false;
         }
         foreach ($timelines as $timeline) {
             $member_follow_timeline = \Timeline\Model_MemberFollowTimeline::get4timeline_id_and_member_id($timeline->id, $obj->member_id);
             $member_follow_timeline->delete();
         }
     }
 }
 protected function check_already_exists($timeline_id, $member_id)
 {
     return (bool) \Timeline\Model_MemberFollowTimeline::get4timeline_id_and_member_id($timeline_id, $member_id);
 }
Ejemplo n.º 4
0
 /**
  * Get edit menu common api controller
  * 
  * @access  protected
  * @param   string  $table  target table
  * @param   int     $id  target record id
  * @param   bool    $is_watch_target    if true,add menu to watch 
  * @param   string  $parent_selector_prefix  use to define delete target
  * @param   string  $member_related  related table for get member_id
  * @return  Response (html)
  * @throws  Exception in Controller_Base::controller_common_api
  * @see  Controller_Base::controller_common_api
  */
 protected function api_get_menu_common($table, $id, $is_watch_target = false, $parent_selector_prefix = null, $member_related = null)
 {
     $this->api_accept_formats = 'html';
     $this->controller_common_api(function () use($id, $table, $is_watch_target, $parent_selector_prefix, $member_related) {
         $id = (int) $id;
         $is_detail = (bool) \Input::get('is_detail', 0);
         $model = Site_Model::get_model_name($table);
         $obj = $model::check_authority($id);
         $member_id = $member_related ? $obj->{$member_related}->member_id : $obj->member_id;
         $this->check_browse_authority($obj->public_flag, $member_id);
         $is_enabled_to_edit = true;
         if (is_enabled('album') && $table == 'album' && \Album\Site_Util::check_album_disabled_to_update($obj->foreign_table, true)) {
             $is_enabled_to_edit = false;
         }
         $menus = array();
         if ($member_id == $this->u->id) {
             if (is_enabled('album') && $table == 'album_image') {
                 if ($add_menu = \Album\Site_Util::get_album_image_edit_menu($obj, $this->u->file_name)) {
                     $menus += $add_menu;
                 }
             }
             if (is_enabled('note') && $table == 'note' && !$obj->is_published) {
                 $menus[] = array('icon_term' => 'form.do_publish', 'attr' => array('class' => 'js-simplePost', 'data-uri' => Site_Util::get_action_uri($table, $id, 'publish'), 'data-msg' => term('form.publish') . 'しますか?'));
             }
             if ($is_enabled_to_edit) {
                 $edit_uri = $table == 'timeline' ? \Timeline\Site_Util::get_edit_action_uri($obj) : Site_Util::get_action_uri($table, $id, 'edit');
                 if ($edit_uri) {
                     $menus[] = array('href' => $edit_uri, 'icon_term' => 'form.do_edit');
                 }
                 $delete_api_uri = $table == 'timeline' ? \Timeline\Site_Util::get_delete_api_uri($obj) : Site_Util::get_action_uri($table, $id, 'delete', 'json');
                 $menus[] = array('icon_term' => 'form.do_delete', 'attr' => array('class' => $is_detail ? 'js-simplePost' : 'js-ajax-delete', 'data-uri' => $is_detail ? Site_Util::get_action_uri($table, $id, 'delete') : $delete_api_uri, 'data-msg' => term('form.delete') . 'します。よろしいですか。', 'data-parent' => sprintf('#%s%d', $parent_selector_prefix ?: 'article_', $id)));
             }
             // add divider.
             if (!$is_detail && $menus) {
                 array_unshift($menus, array('tag' => 'divider'));
             }
         } else {
             if (is_enabled('notice') && $is_watch_target) {
                 if ($table == 'timeline') {
                     list($foreign_table, $foreign_id_prop) = \Timeline\Site_Util::get_member_watch_content_info4timeline_type($obj->type);
                     $is_watched = \Notice\Model_MemberWatchContent::get_one4foreign_data_and_member_id($foreign_table, $obj->{$foreign_id_prop}, $this->u->id);
                     $api_uri = \Timeline\Site_Util::get_member_watch_content_api_uri($obj);
                 } else {
                     $is_watched = \Notice\Model_MemberWatchContent::get_one4foreign_data_and_member_id($table, $id, $this->u->id);
                     $api_uri = sprintf('member/notice/api/update_watch_status/%s/%d', $table, $id);
                 }
                 $menus[] = array('icon_term' => $is_watched ? 'form.do_unwatch' : 'form.do_watch', 'attr' => array('class' => 'js-update_toggle', 'data-uri' => $api_uri));
             }
             if ($table == 'timeline' && conf('articleUnfollow.isEnabled', 'timeline')) {
                 $is_followed = (bool) \Timeline\Model_MemberFollowTimeline::get4timeline_id_and_member_id($obj->id, $this->u->id);
                 $menus[] = array('icon_term' => $is_followed ? 'followed' : 'do_follow', 'attr' => array('class' => 'js-update_toggle', 'data-uri' => sprintf('timeline/api/update_follow_status/%d.json', $obj->id)));
             }
         }
         $this->set_response_body_api(array('menus' => $menus, 'is_ajax_loaded' => true), '_parts/dropdown_menu');
     });
 }