Пример #1
0
 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();
 }
Пример #4
0
 /**
  * 外部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;
 }
Пример #5
0
 /**
  * 依頼承諾メールを送信する
  *
  * @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;
 }