/**
  * プット先コミュニティ選択画面表示
  */
 function getDefaultView()
 {
     $context = $this->getContext();
     $controller = $context->getController();
     $request = $context->getRequest();
     $user = $context->getUser();
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     // 対象となるユーザコミュニティIDを取得
     $user_community_id = $request->ACSgetParameter('id');
     // 対象となるフォルダIDを取得
     $target_folder_id = $request->ACSgetParameter('folder_id');
     // 他ユーザのデータが見えないようチェック
     if (!$this->get_execute_privilege()) {
         // このページへアクセスすることはできません。
         $controller->forward(SECURE_MODULE, SECURE_ACTION);
         return;
     }
     // ユーザ情報
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($user_community_id);
     // マイコミュニティ
     $community_row_array = ACSUser::get_community_row_array($user_community_id);
     // マイコミュニティのフォルダツリーを追加
     $community_folder_obj_array = array();
     $community_row_index = 0;
     foreach ($community_row_array as $community_row) {
         $community_folder_obj = array();
         $folder_tree = array();
         // ルートフォルダのインスタンス生成
         $community_folder_obj = new ACSCommunityFolder($community_row['community_id'], $acs_user_info_row, '');
         $folder_tree = $community_folder_obj->get_folder_tree();
         $community_row_array[$community_row_index]['folder_tree'] = $folder_tree;
         $community_row_index++;
     }
     // プット先コミュニティ(設定されているコミュニティ)
     $put_community_row_array = ACSFolderModel::select_put_community($target_folder_id);
     // set
     $request->setAttribute('target_user_info_row', $target_user_info_row);
     $request->setAttribute('target_folder_id', $target_folder_id);
     $request->setAttribute('community_row_array', $community_row_array);
     $request->setAttribute('put_community_row_array', $put_community_row_array);
     return View::INPUT;
 }
 function execute()
 {
     $context = $this->getContext();
     $controller = $context->getController();
     $request = $context->getRequest();
     $user = $context->getUser();
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     // 対象となるユーザコミュニティIDを取得
     $user_community_id = $request->ACSgetParameter('id');
     // ユーザ情報
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($user_community_id);
     // マイコミュニティ
     $community_row_array = ACSUser::get_community_row_array($user_community_id);
     // コミュニティ全体の公開範囲をセットする
     foreach ($community_row_array as $index => $community_row) {
         $community_row_array[$index]['contents_row_array']['self'] = ACSCommunity::get_contents_row($community_row['community_id'], ACSMsg::get_mst('contents_type_master', 'D00'));
         $community_row_array[$index]['is_community_member'] = ACSCommunity::is_community_member($acs_user_info_row['user_community_id'], $community_row['community_id']);
     }
     // set
     $request->setAttribute('target_user_info_row', $target_user_info_row);
     $request->setAttribute('community_row_array', $community_row_array);
     return View::SUCCESS;
 }
Beispiel #3
0
 /**
  * 掲示板の新着記事一覧を取得する
  *
  * @param $user_community_id ユーザコミュニティID (BBSへのアクセス者となるユーザ)
  *        $days 取得する日数(最近何日間の新着情報を取得)
  * @return 新着記事一覧
  *
  */
 static function get_new_bbs_row_array($user_community_id, $days = false, $offset = false)
 {
     // マイコミュニティのコミュニティIDのCSVを作成する
     $community_row_array = ACSUser::get_community_row_array($user_community_id);
     $community_id_array = array();
     foreach ($community_row_array as $index => $community_row) {
         array_push($community_id_array, $community_row['community_id']);
     }
     if (count($community_id_array)) {
         $community_id_csv = implode(',', $community_id_array);
     } else {
         $community_id_csv = 'null';
     }
     //
     $user_community_id = pg_escape_string($user_community_id);
     // 掲示板の新着記事を最新順に取得する
     $sql = "SELECT\n\t\t\tbbs.*, community.*, open_level_master.*,\n\t\t\tCOALESCE(bbs_res_num_n,0) AS bbs_res_num,\n\t\t\tlastts.bbs_last_timestamp AS bbs_last_post_date,\n\t\t\tCASE\n\t\t\t\tWHEN acdate.access_date IS NULL THEN TRUE\n\t\t\t\tWHEN lastts.bbs_last_timestamp > acdate.access_date THEN TRUE\n\t\t\t\tELSE FALSE\n\t\t\tEND AS is_unread\n\t\tFROM\n\t\t\t(((bbs INNER JOIN community\n\t\t\tON bbs.community_id = community.community_id)\n\t\t\t\tINNER JOIN open_level_master\n\t\t\t\tON bbs.open_level_code = open_level_master.open_level_code)\n\t\t\t\t\tLEFT JOIN\n\t\t\t\t\t\t(SELECT bbs_id, count(*) AS bbs_res_num_n\n\t\t\t\t\t\tFROM bbs_res GROUP BY bbs_id) AS rescnt\n\t\t\t\t\tON bbs.bbs_id = rescnt.bbs_id)\n\t\t\t\t\t\tLEFT JOIN acs_view_bbs_last_timestamp AS lastts\n\t\t\t\t\t\tON bbs.bbs_id = lastts.bbs_id\n\t\t\t\t\t\t\tLEFT JOIN\n\t\t\t\t\t\t\t\t(SELECT bbs_id, access_date\n\t\t\t\t\t\t\t\tFROM bbs_access_history\n\t\t\t\t\t\t\t\tWHERE user_community_id='" . $user_community_id . "') AS acdate\n\t\t\t\t\t\t\tON bbs.bbs_id = acdate.bbs_id\n\t\tWHERE\n\t\t\tbbs.community_id IN (" . $community_id_csv . ")\n\t\t\tAND bbs.bbs_delete_flag != 't'";
     if ($days !== false) {
         $sql .= " AND " . ACSLib::get_sql_condition_from_today("lastts.bbs_last_timestamp", $days);
     }
     $sql .= " ORDER BY bbs_last_timestamp DESC, bbs.bbs_id DESC";
     if ($offset !== false) {
         // 表示件数制御 //
         $display_count = ACSSystemConfig::get_keyword_value(ACSMsg::get_mst('system_config_group', 'D02'), 'NEW_INFO_TOP_DISPLAY_MAX_COUNT');
         $sql = $sql . " OFFSET 0 LIMIT " . $display_count;
     } else {
         //$sql .= " ORDER BY bbs_last_timestamp DESC, bbs.bbs_id DESC";
     }
     $row_array = ACSDB::_get_row_array($sql);
     return $row_array;
 }
 /**
  * マイコミュニティの新着プットフォルダ情報を取得する
  *
  * @param $user_community_id ユーザコミュニティID (アクセス者となるユーザ)
  *        $days 取得する日数(最近何日間の新着情報を取得)
  * @return 新着フォルダ一覧 (連想配列の配列)
  */
 function get_new_community_put_folder_row_array($user_community_id, &$form, $days = false, $offset = false)
 {
     // マイコミュニティのコミュニティIDのCSVを作成する
     // マイコミュニティの取得
     $community_row_array = ACSUser::get_community_row_array($user_community_id);
     // マイコミュニティの条件csv文字列取得
     $csv_string = ACSLib::get_csv_string_from_array($community_row_array, 'community_id');
     $row_array = array();
     if ($csv_string != '') {
         $condition = "put_community.put_community_id IN (" . $csv_string . ")";
         // マイコミュニティプットフォルダの新着情報を取得
         $row_array = ACSCommunityFolder::search_all_put_file_info_row_array($form, $condition, $user_community_id, $days, $rows);
     }
     return $row_array;
 }
 function execute()
 {
     $context =& $this->getContext();
     $user = $context->getUser();
     $request = $context->getRequest();
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     // 表示対象となるユーザコミュニティIDを取得
     $user_community_id = $request->ACSgetParameter('id');
     if (empty($user_community_id)) {
         $user_community_id = $acs_user_info_row['user_community_id'];
     }
     // 表示対象のユーザが存在しない場合は、エラーを表示
     if (!ACSUser::get_user_info_row_by_user_community_id($user_community_id)) {
         // 未ログインの時はPublic/Indexに遷移
         header("Location: ./index.php?module=Public&action=Index");
         //			return View::ERROR;
     }
     // 自身のページか
     if ($acs_user_info_row['user_community_id'] == $user_community_id) {
         $is_self_page = 1;
     } else {
         $is_self_page = 0;
     }
     // プロフィール
     $target_user_info_row = ACSUser::get_user_profile_row($user_community_id);
     // マイフレンズ
     $friends_row_array = ACSUser::get_simple_friends_row_array($user_community_id);
     // マイコミュニティ
     $community_row_array = ACSUser::get_community_row_array($user_community_id);
     // 最終ログイン
     // ログイン済みの場合
     if ($acs_user_info_row['is_login_user']) {
         $last_login_row = ACSCommunity::get_contents_row($user_community_id, ACSMsg::get_mst('contents_type_master', 'D52'));
     }
     // マイページデザインを取得する
     $selection_css_row = ACSCommunity::get_contents_row($user_community_id, ACSMsg::get_mst('contents_type_master', 'D53'));
     $selection_css = $selection_css_row['contents_value'] == '' ? ACS_DEFAULT_SELECTION_CSS_FILE : $selection_css_row['contents_value'];
     $waiting_for_join_community_row_array_array = array();
     $waiting_for_parent_community_link_row_array_array = array();
     $waiting_for_sub_community_link_row_array_array = array();
     foreach ($community_row_array as $index => $community_row) {
         $community_row_array[$index]['contents_row_array']['self'] = ACSCommunity::get_contents_row($community_row['community_id'], ACSMsg::get_mst('contents_type_master', 'D00'));
         $community_row_array[$index]['is_community_admin'] = ACSCommunity::is_community_admin($acs_user_info_row['user_community_id'], $community_row['community_id']);
         $community_row_array[$index]['is_community_member'] = ACSCommunity::is_community_member($acs_user_info_row['user_community_id'], $community_row['community_id']);
         if ($is_self_page) {
             // 待機: コミュニティ参加 承認待ち (自分のマイコミュニティ)
             if ($community_row['is_community_admin'] && ($waiting_row_array = ACSWaiting::get_waiting_row_array($community_row['community_id'], ACSMsg::get_mst('waiting_type_master', 'D20'), ACSMsg::get_mst('waiting_status_master', 'D10')))) {
                 $waiting_for_join_community_row_array['waiting_row_array'] = $waiting_row_array;
                 $waiting_for_join_community_row_array['community_row'] = $community_row;
                 array_push($waiting_for_join_community_row_array_array, $waiting_for_join_community_row_array);
             }
             // 待機: 親コミュニティ追加 承認待ち
             if ($community_row['is_community_admin'] && ($waiting_row_array = ACSWaiting::get_waiting_row_array($community_row['community_id'], ACSMsg::get_mst('waiting_type_master', 'D40'), ACSMsg::get_mst('waiting_status_master', 'D10')))) {
                 $waiting_for_parent_community_link_row_array['waiting_row_array'] = $waiting_row_array;
                 $waiting_for_parent_community_link_row_array['community_row'] = $community_row;
                 array_push($waiting_for_parent_community_link_row_array_array, $waiting_for_parent_community_link_row_array);
             }
             // 待機: サブコミュニティ追加 承認待ち
             if ($community_row['is_community_admin'] && ($waiting_row_array = ACSWaiting::get_waiting_row_array($community_row['community_id'], ACSMsg::get_mst('waiting_type_master', 'D50'), ACSMsg::get_mst('waiting_status_master', 'D10')))) {
                 $waiting_for_sub_community_link_row_array['waiting_row_array'] = $waiting_row_array;
                 $waiting_for_sub_community_link_row_array['community_row'] = $community_row;
                 array_push($waiting_for_sub_community_link_row_array_array, $waiting_for_sub_community_link_row_array);
             }
         }
     }
     if ($is_self_page) {
         // 待機: マイフレンズ追加 承認待ち
         $waiting_for_add_friends_row_array = ACSWaiting::get_waiting_row_array($user_community_id, ACSMsg::get_mst('waiting_type_master', 'D10'), ACSMsg::get_mst('waiting_status_master', 'D10'));
         // 待機: コミュニティ招待 承認待ち
         $waiting_for_invite_to_community_row_array = ACSWaiting::get_waiting_row_array($user_community_id, ACSMsg::get_mst('waiting_type_master', 'D30'), ACSMsg::get_mst('waiting_status_master', 'D10'));
         // マイダイアリーの新着コメント
         $new_comment_diary_row_array = ACSDiary::get_new_comment_diary_row_array($user_community_id);
         // 新着メッセージ
         $new_message_row_array = ACSMessage::get_new_message_row_array($user_community_id);
         // システムからのお知らせ
         $system_announce_row_array = ACSSystemAnnounce::get_valid_system_announce_row_array();
     }
     // set
     $request->setAttribute('user_community_id', $user_community_id);
     $request->setAttribute('target_user_info_row', $target_user_info_row);
     $request->setAttribute('is_self_page', $is_self_page);
     $request->setAttribute('friends_row_array', $friends_row_array);
     $request->setAttribute('community_row_array', $community_row_array);
     $request->setAttribute('waiting_for_add_friends_row_array', $waiting_for_add_friends_row_array);
     $request->setAttribute('waiting_for_join_community_row_array_array', $waiting_for_join_community_row_array_array);
     $request->setAttribute('waiting_for_parent_community_link_row_array_array', $waiting_for_parent_community_link_row_array_array);
     $request->setAttribute('waiting_for_sub_community_link_row_array_array', $waiting_for_sub_community_link_row_array_array);
     $request->setAttribute('waiting_for_invite_to_community_row_array', $waiting_for_invite_to_community_row_array);
     $request->setAttribute('new_comment_diary_row_array', $new_comment_diary_row_array);
     $request->setAttribute('system_announce_row_array', $system_announce_row_array);
     $request->setAttribute('last_login', $last_login_row['contents_value']);
     $request->setAttribute('selection_css', $selection_css);
     $request->setAttribute('new_message_row_array', $new_message_row_array);
     return View::SUCCESS;
 }
 static function is_admission_required_for_join_community($user_community_id, $community_id)
 {
     // 承認必要フラグ
     $is_admission_required = true;
     // コミュニティ情報
     $community_row = ACSCommunity::get_community_row($community_id);
     // 自由参加可能コミュニティ
     $join_trusted_community_row_array = ACSCommunity::get_join_trusted_community_row_array($community_id);
     // マイコミュニティ
     $my_community_row_array = ACSUser::get_community_row_array($user_community_id);
     $my_community_id_array = array();
     foreach ($my_community_row_array as $my_community_row) {
         array_push($my_community_id_array, $my_community_row['community_id']);
     }
     if (!ACSLib::get_boolean($community_row['admission_flag'])) {
         // 承認フラグがfなら自由参加
         $is_admission_required = false;
     } else {
         // マイコミュニティが自由参加可能コミュニティ一覧に含まれるか
         foreach ($join_trusted_community_row_array as $join_trusted_community_row) {
             //if (array_search($join_trusted_community_row['community_id'], $my_community_id_array)) {
             if (in_array($join_trusted_community_row['community_id'], $my_community_id_array)) {
                 $is_admission_required = false;
                 break;
             }
         }
     }
     return $is_admission_required;
 }