function execute() { $context =& $this->getContext(); $controller = $context->getController(); $user = $context->getUser(); $request = $context->getRequest(); $acs_user_info_row = $user->getAttribute('acs_user_info_row'); // 対象となるコミュニティIDを取得 $community_id = $request->ACSGetParameter('community_id'); // コミュニティ存在チェック $community_row = ACSCommunity::get_community_row($community_id); if (!$community_row || $community_row['community_type_name'] != ACSMsg::get_mst('community_type_master', 'D40')) { return View::ERROR; } // 権限チェック if (!$this->get_execute_privilege()) { $controller->forward(SECURE_MODULE, SECURE_ACTION); return; } // コミュニティ情報 $community_row = ACSCommunity::get_community_profile_row($community_id); // サブコミュニティ情報の一覧 $sub_community_row_array = ACSCommunity::get_sub_community_row_array($community_id); // 親コミュニティ情報の一覧 $parent_community_row_array = ACSCommunity::get_parent_community_row_array($community_id); // コミュニティメンバ, コミュニティ管理者 $community_member_user_info_row_array = ACSCommunity::get_community_member_user_info_row_array($community_id); $community_admin_user_info_row_array = ACSCommunity::get_community_admin_user_info_row_array($community_id); // 待機: コミュニティ参加 承認待ち $waiting_for_join_community_row_array = ACSWaiting::get_waiting_row_array($community_id, ACSMsg::get_mst('waiting_type_master', 'D20'), ACSMsg::get_mst('waiting_status_master', 'D10')); // 待機: 親コミュニティ追加, サブコミュニティ追加 $waiting_for_parent_community_link_row_array = ACSWaiting::get_waiting_row_array($community_id, ACSMsg::get_mst('waiting_type_master', 'D40'), ACSMsg::get_mst('waiting_status_master', 'D10')); $waiting_for_sub_community_link_row_array = ACSWaiting::get_waiting_row_array($community_id, ACSMsg::get_mst('waiting_type_master', 'D50'), ACSMsg::get_mst('waiting_status_master', 'D10')); // 最新情報: BBS // BBS記事一覧 $bbs_row_array = ACSBBS::get_bbs_row_array($community_id); foreach ($bbs_row_array as $index => $bbs_row) { // 信頼済みコミュニティ一覧 $bbs_row_array[$index]['trusted_community_row_array'] = ACSBBS::get_bbs_trusted_community_row_array($bbs_row['bbs_id']); } // set $request->setAttribute('community_row', $community_row); $request->setAttribute('sub_community_row_array', $sub_community_row_array); $request->setAttribute('parent_community_row_array', $parent_community_row_array); $request->setAttribute('community_member_user_info_row_array', $community_member_user_info_row_array); $request->setAttribute('community_admin_user_info_row_array', $community_admin_user_info_row_array); $request->setAttribute('waiting_for_join_community_row_array', $waiting_for_join_community_row_array); $request->setAttribute('waiting_for_parent_community_link_row_array', $waiting_for_parent_community_link_row_array); $request->setAttribute('waiting_for_sub_community_link_row_array', $waiting_for_sub_community_link_row_array); $request->setAttribute('bbs_row_array', $bbs_row_array); return View::SUCCESS; }
function getDefaultView() { $context = $this->getContext(); $controller = $context->getController(); $request = $context->getRequest(); $user = $context->getUser(); if (!$this->get_execute_privilege()) { $controller->forward(SECURE_MODULE, SECURE_ACTION); return; } $acs_user_info_row = $user->getAttribute('acs_user_info_row'); // get $external_rss_url_open_level_master_row_array = ACSAccessControl::get_open_level_master_row_array(ACSMsg::get_mst('community_type_master', 'D40'), ACSMsg::get_mst('contents_type_master', 'D63')); // 対象となるコミュニティIDを取得 $community_id = $request->ACSgetParameter('community_id'); // コミュニティ情報 $community_row = ACSCommunity::get_community_profile_row($community_id); $community_row = ACSExternalRSS::add_contents_row_array($community_row); // 入力エラー時の復元 // $form = $request->ACSGetParameters(); if ($form['is_error']) { $community_row['contents_row_array']['external_rss_url']['contents_value'] = $form['external_rss_url']; $community_row['contents_row_array']['external_rss_url']['open_level_code'] = $form['external_rss_url_open_level_code']; $community_row['contents_row_array']['external_rss_url']['trusted_community_row_array'] = array(); if (is_array($form['external_rss_url_trusted_community_id_array'])) { foreach ($form['external_rss_url_trusted_community_id_array'] as $trusted_community_id) { array_push($community_row['contents_row_array']['external_rss_url']['trusted_community_row_array'], array('community_id' => $trusted_community_id)); } } $community_row['contents_row_array']['external_rss_post_user']['contents_value'] = $form['external_rss_post_user']; $community_row['contents_row_array']['external_rss_public_release_expire_term']['contents_value'] = $form['external_rss_public_release_expire_term']; $community_row['contents_row_array']['external_rss_ml_send_flag']['contents_value'] = $form['external_rss_ml_send_flag']; } // 初期値 // // 投稿者 if (!isset($community_row['contents_row_array']['external_rss_post_user']['contents_value'])) { $community_row['contents_row_array']['external_rss_post_user']['contents_value'] = $acs_user_info_row['user_community_id']; } // 公開範囲 if (!isset($community_row['contents_row_array']['external_rss_url']['open_level_code'])) { $community_row['contents_row_array']['external_rss_url']['open_level_code'] = $community_row['contents_row_array']['bbs']['open_level_code']; $community_row['contents_row_array']['external_rss_url']['trusted_community_row_array'] = $community_row['contents_row_array']['bbs']['trusted_community_row_array']; } // コミュニティ管理者情報 $community_admin_user_info_row_array = ACSCommunity::get_community_admin_user_info_row_array($community_row['community_id']); // set $request->setAttribute('community_row', $community_row); $request->setAttribute('community_admin_user_info_row_array', $community_admin_user_info_row_array); $request->setAttribute('external_rss_url_open_level_master_row_array', $external_rss_url_open_level_master_row_array); return View::INPUT; }
function execute() { $context =& $this->getContext(); $user = $context->getUser(); $request = $context->getRequest(); $controller = $context->getController(); // ACSユーザ情報を取得 $acs_user_info_row = $user->getAttribute('acs_user_info_row'); // get $community_row_array = $request->getAttribute('community_row_array'); $category_group_master_row_array = $request->getAttribute('category_group_master_row_array'); $category_code_community_num_array = $request->getAttribute('category_code_community_num_array'); $form = $request->getAttribute('form'); // ページング設定 $display_count = ACSSystemConfig::get_keyword_value(ACSMsg::get_mst('system_config_group', 'D03'), 'COMMUNITY_SEARCH_RESULT_DISPLAY_MAX_COUNT'); $paging_info = $this->getPagingInfo($controller, $request, $community_row_array, $display_count); // カテゴリマスタ一覧 $category_master_row_array = array(); array_push($category_master_row_array, array('category_code' => 0, 'category_name' => ACSMsg::get_mst('file_category_master', 'D0000'))); foreach ($category_group_master_row_array as $category_group_master_row) { foreach ($category_group_master_row['category_master_row_array'] as $category_master_row) { // カテゴリごとのコミュニティ数をセット $community_num = intval($category_code_community_num_array[$category_master_row['category_code']]); $category_master_row['community_num'] = $community_num; // push array_push($category_master_row_array, $category_master_row); } } // コミュニティ一覧 if (is_array($community_row_array)) { foreach ($community_row_array as $index => $community_row) { $community_row_array[$index]['top_page_url'] = $this->getControllerPath('Community', DEFAULT_ACTION) . '&community_id=' . $community_row['community_id']; $community_row_array[$index]['image_url'] = ACSCommunity::get_image_url($community_row['community_id'], 'thumb'); $community_row_array[$index]['community_member_num'] = ACSCommunity::get_community_member_num($community_row['community_id']); // コミュニティ管理者一覧 $community_row_array[$index]['community_admin_user_info_row_array'] = ACSCommunity::get_community_admin_user_info_row_array($community_row['community_id']); foreach ($community_row_array[$index]['community_admin_user_info_row_array'] as $index2 => $community_admin_user_info_row) { $community_row_array[$index]['community_admin_user_info_row_array'][$index2]['top_page_url'] = $this->getControllerPath(DEFAULT_MODULE, DEFAULT_ACTION) . '&id=' . $community_admin_user_info_row['user_community_id']; } } } if (!$form['search']) { /*----------------------------------------------*/ // 初期表示時 // 現在のレンダーモードを取得 $renderMode = $controller->getRenderMode(); //レンダーモードを上書き (画面出力をオフにしてる) $controller->setRenderMode(View::RENDER_VAR); $this->inlineFlg = true; // フォワード側で判断する $request->setAttribute("inline_mode", "1"); // 新着コミュニティ $controller->forward("Public", "NewCommunity"); $this->setAttribute("NewCommunity", $request->getAttribute("NewCommunity")); // レンダーモードを元に戻す $controller->setRenderMode($renderMode); $this->inlineFlg = false; /*----------------------------------------------*/ } // URL $action_url = $this->getControllerPath(); // RSS出力ページのURL $PressRelease_community_url = $this->getControllerPath("Community", 'PressReleaseAllRSS'); // コミュニティ作成のURL $create_community_url = ""; if ($acs_user_info_row['is_acs_user']) { $create_community_url = $this->getControllerPath("Community", 'CreateCommunity'); } // テンプレート $this->setScreenId("0001"); $this->setTemplate('SearchCommunity.tpl.php'); // set $this->setAttribute('category_master_row_array', $category_master_row_array); $this->setAttribute('form', $form); $this->setAttribute('community_row_array', $community_row_array); $this->setAttribute('paging_info', $paging_info); $this->setAttribute('action_url', $action_url); $this->setAttribute('module', $form["module"]); $this->setAttribute('action', $form["action"]); $this->setAttribute('create_community_url', $create_community_url); $this->setAttribute('PressRelease_community_url', $PressRelease_community_url); $this->setAttribute('new_community_action_chain_html', $request->getAttribute('new_community_action_chain_html')); return parent::execute(); }
/** * 外部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; }
/** * 依頼承諾メールを送信する * * @param $waiting_id 待機ID * @param $return 成功(true) / 失敗(false) * @return */ static function send_admission_accept_notify_mail($waiting_id) { // 待機情報 $waiting_row = ACSWaiting::get_waiting_row($waiting_id); // システムURL $system_base_url = ACSSystemConfig::get_keyword_value(ACSMsg::get_mst('system_config_group', 'D01'), 'SYSTEM_BASE_URL'); // システムログインURL $system_base_login_url = ACSSystemConfig::get_keyword_value(ACSMsg::get_mst('system_config_group', 'D01'), 'SYSTEM_BASE_LOGIN_URL'); // システムのメールアドレス (From:) $system_mail_addr = ACSSystemConfig::get_keyword_value(ACSMsg::get_mst('system_config_group', 'D01'), 'SYSTEM_MAIL_ADDR'); // 利用者の言語設定を一時的に保存 $org_lang = ACSMsg::get_lang(); // 各言語のタイトルを取得 $mail_titles = array(); foreach (ACSMsg::get_lang_list_array() as $lang_key => $lang_name) { ACSMsg::set_lang($lang_key); $mail_titles[$lang_key] = ACSMsg::get_serial_msg('lib', 'ACSWaiting.class.php', 'MTL%03d') . "\n"; } // 言語を一旦元に戻す ACSMsg::set_lang($org_lang); if ($waiting_row['waiting_type_name'] == ACSMsg::get_mst('waiting_type_master', 'D10')) { // 承認側のユーザ情報 $user_info_row = ACSUser::get_user_profile_row($waiting_row['community_id']); // 承認される側のユーザ情報 $target_user_info_row = ACSUser::get_user_profile_row($waiting_row['waiting_community_id']); $target_lang = ACSMsg::get_mail_lang_by_inforow($target_user_info_row); // 一旦依頼される側の言語に設定する ACSMsg::set_lang($target_lang); $body = $mail_titles[$target_lang]; $body .= ACSMsg::get_tag_replace(ACSMsg::get_serial_msg('lib', 'ACSWaiting.class.php', 'AMF%03d'), array("{TARGET_USER_NAME}" => $target_user_info_row['user_name'], "{USER_NAME}" => $user_info_row['user_name'], "{USER_COMMUNITY_NAME}" => $user_info_row['community_name'], "{MESSAGE}" => trim($waiting_row['reply_message']), "{SYSTEM_BASE_URL}" => $system_base_url)); $subject = ACSMsg::get_mdmsg(__FILE__, 'M006'); $ret = ACSLib::send_mail($system_mail_addr, $target_user_info_row['mail_addr'], null, $subject, $body); // 言語を元に戻す ACSMsg::set_lang($org_lang); } elseif ($waiting_row['waiting_type_name'] == ACSMsg::get_mst('waiting_type_master', 'D20')) { // 承認側のコミュニティ情報 $community_row = ACSCommunity::get_community_row($waiting_row['community_id']); // 承認される側のユーザ情報 $target_user_info_row = ACSUser::get_user_profile_row($waiting_row['waiting_community_id']); // 待機承認URL $waiting_url = $system_base_login_url . SCRIPT_PATH; $waiting_url .= "?" . MODULE_ACCESSOR . "=Community"; $waiting_url .= "&" . ACTION_ACCESSOR . "=WaitingList"; $waiting_url .= "&community_id={$waiting_row['community_id']}"; $waiting_url .= "&waiting_type_code={$waiting_row['waiting_type_code']}"; $waiting_url .= "&waiting_status_code={$waiting_status_code}"; $target_lang = ACSMsg::get_mail_lang_by_inforow($target_user_info_row); // 一旦依頼される側の言語に設定する ACSMsg::set_lang($target_lang); $body = $mail_titles[$target_lang]; $body .= ACSMsg::get_tag_replace(ACSMsg::get_serial_msg('lib', 'ACSWaiting.class.php', 'ACM%03d'), array("{TARGET_USER_NAME}" => $target_user_info_row['user_name'], "{COMMUNITY_NAME}" => $community_row['community_name'], "{MESSAGE}" => trim($waiting_row['reply_message']), "{SYSTEM_BASE_URL}" => $system_base_url)); $subject = ACSMsg::get_mdmsg(__FILE__, 'M007'); // 言語を元に戻す ACSMsg::set_lang($org_lang); $ret = ACSLib::send_mail($system_mail_addr, $target_user_info_row['mail_addr'], null, $subject, $body); } elseif ($waiting_row['waiting_type_name'] == ACSMsg::get_mst('waiting_type_master', 'D30')) { // 招待されたコミュニティ情報 $community_row = ACSCommunity::get_community_row($waiting_row['waiting_community_id']); // 承認側のユーザ情報 $user_info_row = ACSUser::get_user_profile_row($waiting_row['community_id']); // 承認された側のユーザ情報 $target_user_info_row = ACSUser::get_user_profile_row($waiting_row['entry_user_community_id']); // コミュニティトップページURL $community_top_page_url = $system_base_login_url . SCRIPT_PATH; $community_top_page_url .= "?" . MODULE_ACCESSOR . "=Community"; $community_top_page_url .= "&" . ACTION_ACCESSOR . "=" . DEFAULT_ACTION; $community_top_page_url .= "&community_id=" . $community_row['community_id']; $target_lang = ACSMsg::get_mail_lang_by_inforow($target_user_info_row); // 一旦依頼される側の言語に設定する ACSMsg::set_lang($target_lang); $body = $mail_titles[$target_lang]; $body .= ACSMsg::get_tag_replace(ACSMsg::get_serial_msg('lib', 'ACSWaiting.class.php', 'AIM%03d'), array("{TARGET_USER_NAME}" => $target_user_info_row['user_name'], "{USER_NAME}" => $user_info_row['user_name'], "{USER_COMMUNITY_NAME}" => $user_info_row['community_name'], "{COMMUNITY_NAME}" => $community_row['community_name'], "{COMMUNITY_URL}" => $community_top_page_url, "{MESSAGE}" => trim($waiting_row['reply_message']), "{SYSTEM_BASE_URL}" => $system_base_url)); $subject = ACSMsg::get_mdmsg(__FILE__, 'M004'); // 言語を元に戻す ACSMsg::set_lang($org_lang); $ret = ACSLib::send_mail($system_mail_addr, $target_user_info_row['mail_addr'], null, $subject, $body); } elseif ($waiting_row['waiting_type_name'] == ACSMsg::get_mst('waiting_type_master', 'D40') || $waiting_row['waiting_type_name'] == ACSMsg::get_mst('waiting_type_master', 'D50')) { // 承認側のコミュニティ情報 $community_row = ACSCommunity::get_community_row($waiting_row['community_id']); // 承認される側コミュニティ情報 $target_community_row = ACSCommunity::get_community_row($waiting_row['waiting_community_id']); // 承認される側のコミュニティ管理者情報の配列 $community_admin_user_info_row_array = ACSCommunity::get_community_admin_user_info_row_array($target_community_row['community_id']); // コミュニティトップページURL $community_top_page_url = $system_base_login_url . SCRIPT_PATH; $community_top_page_url .= "?" . MODULE_ACCESSOR . "=Community"; $community_top_page_url .= "&" . ACTION_ACCESSOR . "=" . DEFAULT_ACTION; $community_top_page_url .= "&community_id=" . $community_row['community_id']; foreach ($community_admin_user_info_row_array as $community_admin_user_info_row) { $community_admin_user_info_row = ACSUser::get_user_profile_row($community_admin_user_info_row['user_community_id']); $target_lang = ACSMsg::get_mail_lang_by_inforow($community_admin_user_info_row); // 一旦依頼される側の言語に設定する ACSMsg::set_lang($target_lang); $body = $mail_titles[$target_lang]; $body .= ACSMsg::get_tag_replace(ACSMsg::get_serial_msg('lib', 'ACSWaiting.class.php', 'ACL%03d'), array("{TARGET_COMMUNITY_NAME}" => $target_community_row['community_name'], "{COMMUNITY_NAME}" => $community_row['community_name'], "{WAITING_TYPE_NAME}" => $waiting_row['waiting_type_name'], "{COMMUNITY_URL}" => $community_top_page_url, "{MESSAGE}" => trim($waiting_row['reply_message']), "{SYSTEM_BASE_URL}" => $system_base_url)); $subject = ACSMsg::get_mdmsg(__FILE__, 'M009'); $ret = ACSLib::send_mail($system_mail_addr, $community_admin_user_info_row['mail_addr'], null, $subject, $body); } // 言語を元に戻す ACSMsg::set_lang($org_lang); } return $ret; }