/**
  * 掲載中のシステムアナウンス情報一覧を取得する
  * 
  * @return システムアナウンス情報一覧
  */
 static function get_all_system_announce_row_array()
 {
     $sql = "SELECT *, acs_is_expire_date(system_announce.expire_date) as is_expire";
     $sql .= " FROM (system_announce LEFT OUTER JOIN community ON system_announce.user_community_id = community.community_id)";
     $sql .= " ORDER BY system_announce.system_announce_id DESC";
     $row_array = ACSDB::_get_row_array($sql);
     return $row_array;
 }
 /**
  * ファイルコンテンツ種別リストを取得する
  *
  * @param 
  * @return 
  */
 static function get_file_contents_type_list_row_array($file_category_code)
 {
     $file_category_code = pg_escape_string($file_category_code);
     $sql = "SELECT *";
     $sql .= " FROM file_contents_type_list";
     $sql .= " WHERE file_contents_type_list.file_category_code = '{$file_category_code}'";
     $sql .= " ORDER BY file_contents_type_list.file_contents_type_code ASC";
     $row_array = ACSDB::_get_row_array($sql);
     return $row_array;
 }
 /**
  * ファイル履歴コメント一覧を取得する
  *
  * @param $file_history_id ファイル履歴ID
  * @param $entry_user_community_id 登録者のユーザコミュニティID
  * @param $comment コメント
  * @return 
  */
 static function get_file_history_comment_row_array($file_history_id)
 {
     $file_history_id = pg_escape_string($file_history_id);
     $sql = "SELECT *";
     $sql .= " FROM file_history_comment, community as USER_COMMUNITY";
     $sql .= " WHERE file_history_comment.file_history_id = '{$file_history_id}'";
     $sql .= "  AND file_history_comment.user_community_id = USER_COMMUNITY.community_id";
     $sql .= " ORDER BY file_history_comment.post_date ASC";
     $row_array = ACSDB::_get_row_array($sql);
     return $row_array;
 }
 /**
  * ファイル履歴情報一覧を取得する
  *
  * @param $file_id ファイルID
  * @return ファイル履歴情報の配列 (連想配列の配列)
  */
 static function get_file_history_row_array($file_id)
 {
     $file_id = pg_escape_string($file_id);
     $sql = "SELECT *";
     $sql .= " FROM file_history, file_history_operation_master, community as USER_COMMUNITY";
     $sql .= " WHERE file_history.file_id = '{$file_id}'";
     $sql .= "  AND file_history.file_history_operation_code = file_history_operation_master.file_history_operation_code";
     $sql .= "  AND file_history.update_user_community_id = USER_COMMUNITY.community_id";
     $sql .= " ORDER BY file_history.update_date DESC";
     $row_array = ACSDB::_get_row_array($sql);
     return $row_array;
 }
 /**
  * 画像ファイル情報取得(複数)
  * ひとりのユーザが持つ画像情報のすべて
  * @param $file_id_array
  */
 static function select_community_image_row_array($community_id)
 {
     $sql = "SELECT community_image_file.*,";
     $sql .= " file_info.display_file_name AS save_file_name,file_info.server_file_name AS insystem_file_name,";
     $sql .= " file_info.mime_type AS file_kind";
     //種類
     $sql .= " FROM file_info, community_image_file";
     $sql .= " WHERE community_id = " . $community_id . ")";
     $sql .= " AND file_info.owner_community_id = community_image_file.community_id";
     $sql .= " ORDER BY community_image_file.file_id ASC";
     $row_array = ACSDB::_get_row_array($sql);
     return $row_array;
 }
示例#6
0
 /**
  * ログ情報を検索する
  *
  * @param $form 検索条件
  * @return ログ情報の配列 (連想配列の配列)
  */
 static function search_log_row_array($form)
 {
     $sql = "SELECT *";
     $sql .= " FROM log, operation_master";
     $sql .= " WHERE log.operation_code = operation_master.operation_code";
     // 検索条件 //
     // キーワード
     if ($form['q'] != '') {
         $sqlfunc = "acs_convert_timestamp_" . ACSMsg::get_lang();
         $query_array_array = ACSLib::get_query_array_array($form['q']);
         $where_sql = '';
         foreach ($query_array_array as $query_array) {
             if (!count($query_array)) {
                 continue;
             }
             $sub_where_sql = '';
             foreach ($query_array as $query) {
                 $query = pg_escape_string($query);
                 ACSLib::escape_ilike($query);
                 if ($sub_where_sql != '') {
                     $sub_where_sql .= " OR ";
                 }
                 $sub_where_sql .= "(";
                 $sub_where_sql .= " log.log_id ILIKE '%{$query}%'";
                 //$sub_where_sql .= " OR acs_convert_timestamp_to_jdate(log.log_date, 'YYYY/MM/DD', 'FMHH24:MI:SS') ILIKE '%$query%'";
                 $sub_where_sql .= " OR " . $sqlfunc . "(log.log_date, 'YYYY/MM/DD', 'FMHH24:MI:SS') ILIKE '%{$query}%'";
                 $sub_where_sql .= " OR log.user_id ILIKE '%{$query}%'";
                 $sub_where_sql .= " OR log.user_name ILIKE '%{$query}%'";
                 $sub_where_sql .= " OR log.community_name ILIKE '%{$query}%'";
                 $sub_where_sql .= " OR (CASE WHEN administrator_flag = 't' THEN '" . ACSMsg::get_mdmsg(__FILE__, 'M001') . "' ELSE '" . ACSMsg::get_mdmsg(__FILE__, 'M002') . "' END) ILIKE '%{$query}%'";
                 $sub_where_sql .= " OR operation_master.operation_name ILIKE '%{$query}%'";
                 $sub_where_sql .= " OR log.message ILIKE '%{$query}%'";
                 $sub_where_sql .= " OR (CASE WHEN log.operation_result = 't' THEN '" . ACSMsg::get_mdmsg(__FILE__, 'M003') . "' ELSE '" . ACSMsg::get_mdmsg(__FILE__, 'M004') . "' END) ILIKE '%{$query}%'";
                 $sub_where_sql .= ")";
             }
             if ($sub_where_sql != '') {
                 if ($where_sql != '') {
                     $where_sql .= " AND ";
                 }
                 $where_sql .= "({$sub_where_sql})";
             }
         }
         if ($where_sql != '') {
             $sql .= " AND ({$where_sql})";
         }
     }
     //
     $sql .= " ORDER BY log_id DESC";
     $row_array = ACSDB::_get_row_array($sql);
     return $row_array;
 }
 /**
  * ファイル情報取得(複数)
  *
  * @param $file_id_array
  */
 static function select_file_info_row_array($file_id_array)
 {
     $target_file_id = implode(", ", $file_id_array);
     $sql = "SELECT file_info.*,";
     $sql .= " ENTRY_USER_COMMUNITY.community_name AS entry_user_community_name,";
     $sql .= " UPDATE_USER_COMMUNITY.community_name AS update_user_community_name";
     $sql .= " FROM file_info, community AS ENTRY_USER_COMMUNITY, community AS UPDATE_USER_COMMUNITY";
     $sql .= " WHERE file_id IN (" . $target_file_id . ")";
     $sql .= " AND file_info.entry_user_community_id = ENTRY_USER_COMMUNITY.community_id";
     $sql .= " AND file_info.update_user_community_id = UPDATE_USER_COMMUNITY.community_id";
     $sql .= " ORDER BY display_file_name ASC";
     $row_array = ACSDB::_get_row_array($sql);
     return $row_array;
 }
示例#8
0
 /**
  * 待機コミュニティメンバ情報を取得する
  *
  * @param $community_id 対象のコミュニティIDまたはユーザコミュニティID (承認側)
  * @param 待機種別名
  * @param 待機状態名
  * @return 待機情報 (連想配列の配列)
  */
 static function get_waiting_row_array($community_id, $waiting_type_name, $waiting_status_name)
 {
     $community_id = pg_escape_string($community_id);
     $waiting_type_name = pg_escape_string($waiting_type_name);
     $waiting_status_name = pg_escape_string($waiting_status_name);
     $sql = "SELECT *";
     $sql .= " FROM waiting, community, waiting_type_master, waiting_status_master";
     $sql .= " WHERE waiting.community_id = '{$community_id}'";
     $sql .= "  AND waiting.waiting_community_id = community.community_id";
     $sql .= "  AND waiting.waiting_type_code = waiting_type_master.waiting_type_code";
     $sql .= "  AND waiting_type_master.waiting_type_name = '{$waiting_type_name}'";
     $sql .= "  AND waiting.waiting_status_code = waiting_status_master.waiting_status_code";
     $sql .= "  AND waiting_status_master.waiting_status_name = '{$waiting_status_name}'";
     $row_array = ACSDB::_get_row_array($sql);
     return $row_array;
 }
 /**
  * システム設定情報取得
  *
  * @parma $sql_where
  */
 static function select_system_config_row_array($sql_where = "")
 {
     $sql = "SELECT";
     $sql .= " system_config_group.system_config_group_code, system_config_group.system_config_group_name,";
     $sql .= " system_config.keyword, system_config.value, system_config.type";
     $sql .= " FROM system_config_group, system_config";
     $sql .= " WHERE";
     $sql .= " system_config_group.system_config_group_code = system_config.system_config_group_code";
     if ($sql_where) {
         // 条件の指定がある場合のみ、追加
         $sql .= " AND " . $sql_where;
     }
     $sql .= " ORDER BY system_config_group.display_order, system_config.display_order";
     $row_array = ACSDB::_get_row_array($sql);
     return $row_array;
 }
示例#10
0
 /**
  * 送信済メッセージの一覧を取得する
  *
  * @param $user_community_id ユーザコミュニティID
  * @return 送信済メッセージの一覧 (連想配列の配列)
  */
 static function get_send_message_row_array($user_community_id)
 {
     $user_community_id = pg_escape_string($user_community_id);
     $sql = "SELECT message.message_id";
     $sql .= ", message.subject";
     $sql .= ", message.post_date";
     $sql .= ", message_sender.message_sender_id";
     $sql .= ", message_receiver.read_flag";
     $sql .= ", community.community_id AS user_id";
     $sql .= ", community.community_name AS user_name";
     $sql .= " FROM message, message_sender, message_receiver, community";
     $sql .= " WHERE message_sender.community_id = '{$user_community_id}'";
     $sql .= "  AND message_receiver.community_id = community.community_id";
     $sql .= "  AND message_sender.message_id = message.message_id";
     $sql .= "  AND message.message_id = message_receiver.message_id";
     $sql .= "  AND message_sender.message_delete_flag = 'f'";
     $sql .= " ORDER BY message.post_date DESC";
     $row_array = ACSDB::_get_row_array($sql);
     return $row_array;
 }
 /**
  * 公開範囲マスタ取得
  *
  * @return open_level_code をキーにした配列
  */
 static function get_all_open_level_master_row_array()
 {
     $sql = "SELECT *";
     $sql .= " FROM open_level_master";
     $row_array = ACSDB::_get_row_array($sql);
     // set true or false
     $role_array = array('public', 'user', 'member', 'administrator');
     foreach ($row_array as $index => $row) {
         $open_level_code = $row['open_level_code'];
         $new_row_array[$open_level_code]['open_level_name'] = $row['open_level_name'];
         foreach ($role_array as $role_key) {
             $new_row_array[$open_level_code]["open_for_{$role_key}"] = $row["open_for_{$role_key}"];
         }
     }
     return $new_row_array;
 }
 /**
  * スケジュール一覧インスタンス生成
  *
  *  戻り値は、array([user_community_id] => ACSScheduleParticipantインスタンス)
  *
  * @param string $schedule_id 該当のスケジュールid
  * @param boolean $is_target_kind_all 全員参加モードで取得するかどうか
  * @return array ACSScheduleParticipantインスタンスの配列
  */
 function &get_schedule_participant_instance_list($schedule_id, $is_target_kind_all)
 {
     if ($is_target_kind_all) {
         $sql = "SELECT " . " sc.schedule_id, " . " mmb.user_community_id, " . " pa.participant_comment, " . " pa.participant_delete_flag, " . " cmm.community_name AS user_community_name " . "FROM (((schedule AS sc " . "LEFT JOIN community AS cm " . "    ON sc.community_id = cm.community_id) " . "LEFT JOIN community_member AS mmb " . "    ON sc.community_id = mmb.community_id) " . "LEFT JOIN community AS cmm  " . "    ON mmb.user_community_id = cmm.community_id) " . "LEFT JOIN schedule_participant AS pa " . "    ON sc.schedule_id = pa.schedule_id " . "    AND mmb.user_community_id = pa.user_community_id " . "WHERE sc.schedule_id = " . pg_escape_string($schedule_id) . "  AND cmm.delete_flag != 't'";
         " ORDER BY mmb.user_community_id ";
     } else {
         $sql = "SELECT " . " pa.schedule_id, " . " pa.user_community_id, " . " pa.participant_comment, " . " pa.participant_delete_flag, " . " cm.community_name AS user_community_name " . "FROM schedule_participant AS pa " . "LEFT JOIN community AS cm " . "    ON pa.user_community_id = cm.community_id " . "WHERE pa.schedule_id = " . pg_escape_string($schedule_id) . " AND pa.participant_delete_flag = FALSE " . " AND cm.delete_flag != 't'";
         " ORDER BY pa.user_community_id ";
     }
     $participant_rows = ACSDB::_get_row_array($sql);
     $sql = "SELECT * FROM schedule_answer " . "WHERE schedule_id = " . pg_escape_string($schedule_id) . " ORDER BY user_community_id, adjustment_date_id";
     $answer_res = ACSDB::_get_res($sql);
     $answer_all_rows = array();
     while ($row = $answer_res->fetchRow(DB_FETCHMODE_ASSOC)) {
         $answer_all_rows[$row['user_community_id']][] = $row;
     }
     $answer_res->free();
     $schedule_participant_array = array();
     foreach ($participant_rows as $participant_row) {
         $user_community_id = $participant_row['user_community_id'];
         $schedule_participant =& new ACSScheduleParticipant($schedule_id, $user_community_id);
         $schedule_participant->initialize($participant_row, $answer_all_rows[$user_community_id]);
         $schedule_participant_array[$user_community_id] = $schedule_participant;
     }
     return $schedule_participant_array;
 }
 /**
  * $user_community_idの新着フォルダ情報を取得する
  * ($commyunity_row_arrayに含まれるcommunity_idが所有するファイルを対象とする)
  *
  * @param $user_community_id ユーザコミュニティID (ダイアリーへのアクセス者となるユーザ)
  * @param $csv_string 所有者条件csv文字列
  * @return 新着フォルダ一覧 (連想配列の配列)
  */
 function get_new_folder_row_array($user_community_id, $csv_string, $days = false, $offset = false)
 {
     $user_community_id = pg_escape_string($user_community_id);
     // フォルダの新着記事を最新順に取得する
     $sql = "SELECT *, acs_is_unread_file(" . $user_community_id . ", fi.file_id) as is_unread " . " FROM folder_file AS ff, folder AS fo, " . "\t  file_info AS fi, community AS cm" . " WHERE fi.file_id = ff.file_id" . "  AND ff.folder_id = fo.folder_id" . "  AND fi.owner_community_id = cm.community_id" . "  AND fi.owner_community_id IN (" . $csv_string . ")";
     //------ 2007.2 表示時間短縮対応
     // 日数指定がある場合
     if ($days !== false) {
         $sql = $sql . " AND " . ACSLib::get_sql_condition_from_today("fi.update_date", $days);
     }
     //$sql = $sql . " ORDER BY fi.update_date 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 . " AND open_level_code is not null";
         $sql = $sql . " ORDER BY fi.update_date DESC";
         $sql = $sql . " OFFSET 0 LIMIT " . $display_count;
     } else {
         $sql = $sql . " ORDER BY fi.update_date DESC";
     }
     $row_array = ACSDB::_get_row_array($sql);
     return $row_array;
 }
示例#14
0
 /**
  * 各スケジュールの参加、回答人数の取得
  *
  * FREEでの人数情報となります。<br>
  * ALLは別途コミュニティ参加者数を取得する必要があります。
  *
  * @param string $community_id コミュニティid(未指定も可)
  * @param string $schedule_id スケジュールid(未指定も可)
  * @return array 参加回答人数配列
  *               array([schedule_id]=> array(
  *                       'participate_person_count' => [参加人数]
  *                       'answer_person_count'      => [回答人数] ))
  */
 function &get_total_person_count($community_id = '', $schedule_id = '')
 {
     $where = '';
     if ($community_id != '') {
         $where .= $where == '' ? '' : ' AND ';
         $where .= 'SCH.community_id = ' . pg_escape_string($community_id);
     }
     if ($schedule_id != '') {
         $where .= $where == '' ? '' : ' AND ';
         $where .= 'SCH.schedule_id = ' . pg_escape_string($schedule_id);
     }
     $where = $where == '' ? '' : 'WHERE ' . $where;
     $sql = "SELECT " . "  SCH.schedule_id, " . "  PAT.cnt AS participate_person_count, " . "  ANS.cnt AS answer_person_count " . "FROM " . "( " . "    schedule AS SCH LEFT JOIN " . "    ( " . "        SELECT schedule_id, COUNT(*) AS cnt FROM schedule_participant " . "        WHERE participant_delete_flag = FALSE GROUP BY schedule_id " . "    ) AS PAT " . "    ON SCH.schedule_id = PAT.schedule_id " . ") " . "LEFT JOIN " . "( " . "    SELECT schedule_id, COUNT(*) AS cnt FROM " . "    ( " . "        SELECT DISTINCT schedule_id, user_community_id " . "        FROM schedule_answer " . "    ) AS SBUQ " . "    GROUP BY schedule_id " . ") AS ANS " . "ON SCH.schedule_id = ANS.schedule_id " . " " . $where . " " . "ORDER BY SCH.schedule_id ";
     $rows = ACSDB::_get_row_array($sql);
     $persons_count_array = array();
     foreach ($rows as $row) {
         $persons_count_array[$row['schedule_id']] = array('participate_person_count' => $row['participate_person_count'] == '' ? 0 : $row['participate_person_count'], 'answer_person_count' => $row['answer_person_count'] == '' ? 0 : $row['answer_person_count']);
     }
     return $persons_count_array;
 }
示例#15
0
 /**
  * ログイン情報を取得する
  *
  * @param ユーザID
  * @return ログイン情報 (連想配列)
  */
 static function get_login_info_row_array($user_id)
 {
     static $cache_rows;
     $user_id = pg_escape_string($user_id);
     if (is_array($cache_rows[$user_id])) {
         return $cache_rows[$user_id];
     }
     $sql = "SELECT community.community_id,";
     $sql .= "\t\tcommunity.community_name,";
     $sql .= "\t\tcontents.contents_value,";
     $sql .= "\t\tuser_info.user_id,";
     $sql .= "\t\tlogin_info.login_date,";
     $sql .= "\t\tlogin_info.logout_date,";
     $sql .= "\t\tlogin_info.use_button_flg";
     $sql .= " FROM community,";
     $sql .= "  contents,";
     $sql .= "  user_info,";
     $sql .= "  login_info";
     $sql .= " WHERE community.community_id = '{$user_id}'";
     $sql .= "  AND community.community_id = login_info.community_id";
     $sql .= "  AND community.community_id = user_info.user_community_id";
     $sql .= "  AND community.community_id = contents.community_id";
     $sql .= "  AND contents.contents_type_code = '01'";
     $sql .= "  ORDER BY login_info.login_date DESC";
     $row = ACSDB::_get_row_array($sql);
     $cache_rows[$user_id] = $row;
     return $row;
 }
示例#16
0
 /**
  * ファイル検索
  *
  * @param $user_community_id
  * @param $form 検索条件
  * @return フォルダ情報の配列
  */
 function search_file_info_row_array($user_community_id, $form)
 {
     $user_community_id = pg_escape_string($user_community_id);
     $sql = "SELECT *";
     $sql .= " FROM folder, folder_file, file_info";
     $sql .= " WHERE folder.community_id = '{$user_community_id}'";
     $sql .= "  AND folder.folder_id = folder_file.folder_id";
     $sql .= "  AND folder_file.file_id = file_info.file_id";
     $sql .= "  AND file_info.owner_community_id  = '{$user_community_id}'";
     if ($form['q'] != '') {
         $query_array_array = ACSLib::get_query_array_array($form['q']);
         $where_sql = '';
         foreach ($query_array_array as $query_array) {
             if (!count($query_array)) {
                 continue;
             }
             $sub_where_sql = '';
             foreach ($query_array as $query) {
                 $query = pg_escape_string($query);
                 ACSLib::escape_ilike($query);
                 if ($sub_where_sql != '') {
                     $sub_where_sql .= " OR ";
                 }
                 $sub_where_sql .= "(";
                 $sub_where_sql .= " file_info.display_file_name ILIKE '%{$query}%'";
                 $sub_where_sql .= " OR file_info.comment ILIKE '%{$query}%'";
                 $sub_where_sql .= ")";
             }
             if ($sub_where_sql != '') {
                 if ($where_sql != '') {
                     $where_sql .= " AND ";
                 }
                 $where_sql .= "({$sub_where_sql})";
             }
         }
         if ($where_sql != '') {
             $sql .= " AND ({$where_sql})";
         }
     }
     //
     // ORDER
     if ($form['order'] == 'update_date') {
         $sql .= " ORDER BY file_info.update_date DESC";
     } else {
         $sql .= " ORDER BY file_info.display_file_name ASC";
     }
     $row_array = ACSDB::_get_row_array($sql);
     return $row_array;
 }
示例#17
0
 /**
  * 最新の掲示板親記事一覧を取得する (掲示板RSS用)
  *
  * @param $community_id ユーザコミュニティID
  * @param $term 取得期間
  * @return 掲示版親記事の一覧 (連想配列の配列)
  */
 static function get_new_bbs_rss_row_array($community_id, $term)
 {
     $community_id = pg_escape_string($community_id);
     $term = pg_escape_string($term);
     // 掲示板の新着記事を最新順に取得する
     $sql = "SELECT *, bbs.bbs_id as bbs_id, acs_get_bbs_last_post_date(bbs.bbs_id) as bbs_last_post_date";
     $sql .= " FROM (bbs LEFT OUTER JOIN bbs_file ON bbs.bbs_id = bbs_file.bbs_id), community, open_level_master";
     $sql .= " WHERE bbs.community_id = '{$community_id}'";
     $sql .= "  AND bbs.community_id = community.community_id";
     $sql .= "  AND bbs.open_level_code = open_level_master.open_level_code";
     // 削除フラグOFF
     $sql .= "  AND bbs.bbs_delete_flag != 't'";
     // $term日以内に投稿のあった記事を取得
     $sql .= "  AND acs_get_bbs_last_post_date(bbs.bbs_id)::DATE > (CURRENT_DATE - '@ {$term} days'::INTERVAL)";
     // 最終投稿日時でソート
     $sql .= " ORDER BY bbs_last_post_date DESC";
     $row_array = ACSDB::_get_row_array($sql);
     return $row_array;
 }
示例#18
0
 /**
  * ファイル情報取得
  *
  * @param $folder_id_array
  */
 static function select_folder_file_info_row_array($folder_id_array)
 {
     /* フォルダファイルを取得 */
     $target_folder_id = implode(", ", $folder_id_array);
     $folder_id_sql = "SELECT *";
     $folder_id_sql .= " FROM folder_file";
     $folder_id_sql .= " WHERE folder_id IN (" . $target_folder_id . ")";
     $folder_file_row_array = ACSDB::_get_row_array($folder_id_sql);
     /* フォルダIDを配列に格納 */
     $file_id_array = array();
     foreach ($folder_file_row_array as $folder_file_row) {
         array_push($file_id_array, $folder_file_row['file_id']);
     }
     /* ファイル情報を取得 */
     if (count($file_id_array) > 0) {
         $row_array = ACSFileInfoModel::select_file_info_row_array($file_id_array);
     }
     return $row_array;
 }
 /**
  * 全コミュニティプットファイル検索
  *
  * @param $community_where putコミュニティ検索条件
  * @param $unread_check_user_community_id unreadチェック実施時のユーザコミュニティid
  * @param $form 検索条件
  * @return フォルダ情報の配列
  */
 function search_all_put_file_info_row_array($form, $community_where = "", $unread_check_user_community_id = "", $days = false)
 {
     // 1. コミュニティにプットされてるユーザフォルダのfolder_idを全て取得する
     $sql = "SELECT folder_id";
     $sql .= " FROM put_community";
     if ($community_where != "") {
         $sql .= " WHERE " . $community_where;
     }
     $row_array = ACSDB::_get_row_array($sql);
     $folder_id_array = array();
     foreach ($row_array as $row) {
         array_push($folder_id_array, $row['folder_id']);
     }
     if (count($folder_id_array) == 0) {
         // 0件
         return array();
     }
     // 2. コミュニティフォルダからアクセス可能な中身のフォルダのfolder_idを全て取得する
     $user_folder_id_array = ACSGenericFolder::get_recursive_folder_id_array($folder_id_array);
     if (count($user_folder_id_array) == 0) {
         // 0件
         return array();
     }
     // 3. 検索対象となる、ユーザがプットしたフォルダ以下のフォルダID CSV
     $user_folder_id_array_csv = implode(',', $user_folder_id_array);
     $sql = "SELECT * ";
     if ($unread_check_user_community_id != '') {
         $sql .= ",acs_is_unread_file(" . $unread_check_user_community_id . ",file_info.file_id) as is_unread ";
     }
     $sql .= " FROM folder LEFT OUTER JOIN put_community ON folder.folder_id = put_community.folder_id, folder_file, file_info";
     $sql .= " WHERE folder.folder_id IN ({$user_folder_id_array_csv})";
     $sql .= "  AND folder.folder_id = folder_file.folder_id";
     $sql .= "  AND folder_file.file_id = file_info.file_id";
     if ($form['q'] != '') {
         $query_array_array = ACSLib::get_query_array_array($form['q']);
         $where_sql = '';
         foreach ($query_array_array as $query_array) {
             if (!count($query_array)) {
                 continue;
             }
             $sub_where_sql = '';
             foreach ($query_array as $query) {
                 $query = pg_escape_string($query);
                 ACSLib::escape_ilike($query);
                 if ($sub_where_sql != '') {
                     $sub_where_sql .= " OR ";
                 }
                 $sub_where_sql .= "(";
                 $sub_where_sql .= " file_info.display_file_name ILIKE '%{$query}%'";
                 $sub_where_sql .= " OR file_info.comment ILIKE '%{$query}%'";
                 $sub_where_sql .= ")";
             }
             if ($sub_where_sql != '') {
                 if ($where_sql != '') {
                     $where_sql .= " AND ";
                 }
                 $where_sql .= "({$sub_where_sql})";
             }
         }
         if ($where_sql != '') {
             $sql .= " AND ({$where_sql})";
         }
     }
     //
     // 日数指定がある場合
     if ($days !== false) {
         $sql = $sql . " AND " . ACSLib::get_sql_condition_from_today("file_info.update_date", $days);
     }
     // ORDER
     if ($rows != 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 {
         if ($form['order'] == 'update_date') {
             $sql .= " ORDER BY file_info.update_date DESC";
         } else {
             $sql .= " ORDER BY file_info.display_file_name ASC";
         }
     }
     $row_array = ACSDB::_get_row_array($sql);
     return $row_array;
 }
示例#20
0
 /**
  * コミュニティ情報を複数取得する
  *
  * @param $community_id_array コミュニティID配列
  * @return コミュニティ情報の配列
  */
 static function get_each_community_row_array($community_row_array)
 {
     if (count($community_row_array)) {
         $community_id_csv = implode(',', $community_row_array);
     } else {
         $community_id_csv = 'null';
     }
     $sql = "SELECT *";
     $sql .= " FROM ((community LEFT OUTER JOIN category_master ON community.category_code = category_master.category_code)";
     $sql .= "  LEFT OUTER JOIN community_image_file USING(community_id)) as JOINED_COMMUNITY,";
     $sql .= "  community_type_master";
     $sql .= " WHERE JOINED_COMMUNITY.community_id IN( " . $community_id_csv . " )";
     $sql .= "  AND JOINED_COMMUNITY.community_type_code = community_type_master.community_type_code";
     $row_array = ACSDB::_get_row_array($sql);
     return $row_array;
 }
示例#21
0
 /**
  * RSSフィードURLをセットしているコミュニティ情報一覧を取得する
  *
  * @param $community_id コミュニティID
  * @return コミュニティ情報一覧 (連想配列の配列)
  */
 static function get_external_rss_community_row_array()
 {
     $sql = "SELECT community.community_id, community.community_name";
     $sql .= " FROM community, contents, contents_type_master";
     $sql .= " WHERE community.delete_flag = 'f'";
     $sql .= "   AND community.community_id = contents.community_id";
     $sql .= "   AND contents.contents_type_code = contents_type_master.contents_type_code";
     $sql .= "   AND contents.contents_value IS NOT NULL";
     $sql .= "   AND contents.contents_value != ''";
     $sql .= "   AND contents_type_master.contents_type_name = '" . ACSMsg::get_mst('contents_type_master', 'D63') . "'";
     $sql .= " ORDER BY community.community_id";
     $row_array = ACSDB::_get_row_array($sql);
     return $row_array;
 }
示例#22
0
 /**
  * 最新のダイアリー一覧を取得する (ダイアリーRSS用)
  *
  * @param $user_community_id ユーザコミュニティID
  * @param $term 取得期間
  * @return ダイアリー親記事の一覧 (連想配列の配列)
  */
 static function get_new_diary_rss_row_array($user_community_id, $term)
 {
     $user_community_id = pg_escape_string($user_community_id);
     $term = pg_escape_string($term);
     $sql = "SELECT *, acs_get_diary_comment_num(diary.diary_id) as diary_comment_num, diary.diary_id as diary_id";
     $sql .= " FROM diary LEFT OUTER JOIN diary_file USING(diary_id)";
     $sql .= ", community as USER_COMMUNITY, user_info, open_level_master";
     $sql .= " WHERE diary.community_id = '{$user_community_id}'";
     $sql .= "  AND diary.community_id = USER_COMMUNITY.community_id";
     $sql .= "  AND USER_COMMUNITY.community_id = user_info.user_community_id";
     $sql .= "  AND diary.open_level_code = open_level_master.open_level_code";
     $sql .= "  AND diary.diary_delete_flag = 'f'";
     // $term日以内の投稿を取得
     $sql .= "  AND diary.post_date::DATE > (CURRENT_DATE - '@ {$term} days'::INTERVAL)";
     $sql .= " ORDER BY diary.post_date DESC";
     $row_array = ACSDB::_get_row_array($sql);
     return $row_array;
 }