/** * 外部RSS自動取り込みを実行する * * @param $community_row コミュニティ情報 * @return $msg */ static function do_process($community_row) { $msg = ""; // 公開レベルマスタ $open_level_master_array = ACSDB::get_master_array('open_level'); // 外部RSSコンテンツ情報を付加 $community_row = ACSExternalRSS::add_contents_row_array($community_row); // RSS情報を取得 $rss_row_array = ACSExternalRSS::get_external_rss_row_array($community_row['contents_row_array']['external_rss_url']['contents_value']); if ($rss_row_array == false) { return; } // 外部RSS.投稿者が該当コミュニティのコミュニティ管理者であるかどうかチェックする $community_admin_user_info_row_array = ACSCommunity::get_community_admin_user_info_row_array($community_row['community_id']); $err_flg = 1; foreach ($community_admin_user_info_row_array as $community_admin_user_info_row) { if ($community_admin_user_info_row['user_community_id'] == $community_row['contents_row_array']['external_rss_post_user']['contents_value']) { $err_flg = 0; break; } } if ($err_flg) { return; } // 投稿者情報 (ml_addrを含む情報) $post_user_info_row = ACSUser::get_user_info_row_by_user_community_id($community_row['contents_row_array']['external_rss_post_user']['contents_value']); $post_user_info_row = ACSUser::get_user_info_row_by_user_id($post_user_info_row['user_id']); // 投稿情報($form) // // 初期化 $form = array(); $form['community_id'] = $community_row['community_id']; $form['user_community_id'] = $community_row['contents_row_array']['external_rss_post_user']['contents_value']; $form['open_level_code'] = $community_row['contents_row_array']['external_rss_url']['open_level_code']; // パブリックリリース の場合 if ($open_level_master_array[$form['open_level_code']] == ACSMsg::get_mst('open_level_master', 'D06') && intval($community_row['contents_row_array']['external_rss_public_release_expire_term']['contents_value']) >= 1) { $form['expire_date'] = "CURRENT_DATE + '@ " . ($community_row['contents_row_array']['external_rss_public_release_expire_term']['contents_value'] - 1) . " days'::INTERVAL"; } else { $form['expire_date'] = ''; } // 非公開 (メンバのみ) の場合 if ($open_level_master_array[$form['open_level_code']] == ACSMsg::get_mst('open_level_master', 'D04')) { $form['trusted_community_row_array'] = $community_row['contents_row_array']['external_rss_url']['trusted_community_row_array']; } else { $form['trusted_community_row_array'] = array(); } $form['ml_send_flag'] = ACSLib::get_pg_boolean(ACSLib::get_boolean($community_row['contents_row_array']['external_rss_ml_send_flag']['contents_value'])); // RSS記事ごとの処理 // foreach ($rss_row_array['items'] as $rss_item_row) { // 掲載されているかチェック if (!ACSExternalRSS::is_posted_value($community_row['community_id'], $rss_item_row['rss_item_title'], $rss_item_row['rss_item_date'])) { // 掲載されていない場合 $form['subject'] = $rss_item_row['rss_item_title']; $form['body'] = $rss_item_row['rss_item_content']; $form['post_date'] = $rss_item_row['rss_item_date']; $bbs_id = ACSExternalRSS::set_bbs_and_external_rss($form, $rss_row_array['channel_info'], $rss_item_row); if (!$bbs_id) { echo "ERROR\n"; exit; } else { $msg .= "掲載: {$community_row['community_name']} (community_id={$community_row['community_id']})\n"; $msg .= "\t=> {$form['subject']} (bbs_id={$bbs_id})\n"; if (ACSLib::get_boolean($form['ml_send_flag'])) { // MLステータスの取得 $ml_status_row = ACSCommunity::get_contents_row($community_row['community_id'], ACSMsg::get_mst('contents_type_master', 'D62')); $ml_status = $ml_status_row['contents_value']; // ML有りの場合メールを送信 if ($ml_status == 'ACTIVE') { // 件名編集 $subject = str_replace('{BBSID}', $bbs_id, ACS_COMMUNITY_ML_SUBJECT_FORMAT) . $form['subject']; // ML送信 ACSCommunityMail::send_community_mailing_list($community_row['community_id'], $post_user_info_row['mail_addr'], $form['subject'], $form['body']); $msg .= "\t=> ML送信\n"; } } } } } return $msg; }