/** * ログ情報を検索する * * @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 $paging_info */ function print_paging_link($paging_info) { if (!$paging_info) { return; } // 件数表示 //echo "全$paging_info[all_count]件: $paging_info[start_count]-$paging_info[end_count]件を表示<br>\n"; echo ACSMsg::get_tag_replace(ACSMsg::get_msg('lib', 'ACSTemplateLib.class.php', 'PAGE_INFO'), array("{ALL_COUNT}" => $paging_info[all_count], "{START_COUNT}" => $paging_info[start_count], "{END_COUNT}" => $paging_info[end_count])); // 1ページのみの場合は表示終了 if (!$paging_info['paging_row_array']) { echo "<br>\n"; return; } // 前へ・次へ if ($paging_info['prev_link']) { echo "<a href=\"{$paging_info['prev_link']}\">" . ACSMsg::get_mdmsg(__FILE__, 'M001') . "</a>"; } else { echo ACSMsg::get_mdmsg(__FILE__, 'M001'); } echo " "; if ($paging_info['next_link']) { echo "<a href=\"{$paging_info['next_link']}\">" . ACSMsg::get_mdmsg(__FILE__, 'M002') . "</a>"; } else { echo ACSMsg::get_mdmsg(__FILE__, 'M002'); } echo " "; // ページ数表示 foreach ($paging_info['paging_row_array'] as $paging_row) { print '<span class="page_number">'; // リンクがある場合のみ if ($paging_row['link_url']) { print '<a href="' . $paging_row['link_url'] . '">'; print $paging_row['page_number']; print '</a>'; } else { print '<b>' . $paging_row['page_number'] . '</b>'; } print '</span>' . "\n"; } print "<br><br>\n"; }
/** * 日記htmlコンテンツの作成 * * @param string $diary_row 日記配列 * @param string $encoding エンコーディング */ function create_diary_html($diary_row, $encoding = '') { $file_head = date("Ymd_His", ACSLib::convert_pg_date_to_timestamp($diary_row['post_date'])); $this->diary_file_names[$file_head]++; if ($this->diary_file_names[$file_head] > 1) { $file_head .= '_' . ($this->diary_file_names[$html_file] - 1); } $html_file = $file_head . '.html'; // 基本項目の置換 $contents = _ACSDIARYBACKUP_DIARY_FORMAT; $contents = mb_ereg_replace('@SUBJECT@', htmlspecialchars($diary_row['subject']), $contents); $contents = mb_ereg_replace('@POST_DATE@', htmlspecialchars(ACSLib::convert_pg_date_to_str($diary_row['post_date'])), $contents); $contents = mb_ereg_replace('@BODY@', nl2br(htmlspecialchars($diary_row['body'])), $contents); $contents = mb_ereg_replace('@OPEN_LEVEL_TITLE@', htmlspecialchars(ACSMsg::get_mdmsg(__FILE__, 'M001')), $contents); $contents = mb_ereg_replace('@OPEN_LEVEL_NAME@', htmlspecialchars($diary_row['open_level_name']), $contents); // イメージファイルがある場合 $image_file_id = $diary_row['file_id']; if ($image_file_id != '') { $file_obj = ACSFile::get_file_info_instance($image_file_id); // 拡張子の取得 mb_ereg("^.*(\\.[^\\.\\/]*)", $file_obj->get_display_file_name(), $matches); $ext = $matches[1]; // ファイル名の生成 $img_from = ACS_FOLDER_DIR . $file_obj->get_server_file_name(); $img_to = $this->img_dir . '/' . $file_head . $ext; $img_thumb_from = ACS_FOLDER_DIR . $file_obj->get_thumbnail_server_file_name(); $img_thumb_to = $this->img_dir . '/thumb_' . $file_head . '.jpg'; // URLの生成 $img_url = $this->diary_to_img_url . '/' . $file_head . $ext; $img_thumb_url = $this->diary_to_img_url . '/thumb_' . $file_head . '.jpg'; // イメージファイルの作成 @copy($img_from, $img_to); @copy($img_thumb_from, $img_thumb_to); // リンクタグの生成 $contents = mb_ereg_replace('@IMAGE@', '<div><a href="' . $img_url . '">' . '<img src="' . $img_thumb_url . '" border="0"></a></div><br>', $contents); } else { $contents = mb_ereg_replace('@IMAGE@', '', $contents); } // コメントの取得 $diary_comment_row_array = ACSDiary::get_diary_comment_row_array($diary_row['diary_id']); // コメント部分の生成 $comments = ""; foreach ($diary_comment_row_array as $diary_comment_row) { if ($diary_comment_row['diary_comment_delete_flag'] == 'f') { $comment_contents = _ACSDIARYBACKUP_DIARY_COMMENT_FORMAT; $comment_contents = mb_ereg_replace('@POST_DATE@', htmlspecialchars(ACSLib::convert_pg_date_to_str($diary_comment_row['post_date'])), $comment_contents); $comment_contents = mb_ereg_replace('@COMMUNITY_NAME@', htmlspecialchars($diary_comment_row['community_name']), $comment_contents); $comment_contents = mb_ereg_replace('@BODY@', nl2br(htmlspecialchars($diary_comment_row['body'])), $comment_contents); $comments .= $comment_contents; } } // コメントの置換 $contents = mb_ereg_replace('@COMMENTS@', $comments, $contents); // contents 自身の変換 if ($encoding != '') { $contents = mb_convert_encoding($contents, $encoding); } // ファイルへの出力 $fp = fopen($this->diary_dir . '/' . $html_file, "w"); fputs($fp, $contents); fclose($fp); return $html_file; }
/** * スケジュール調整決定通知件名取得 * * @return true / false */ function get_decision_mail_subject($lang) { $current_lang = ACSMsg::get_lang(); ACSMsg::set_lang($lang); $subject = ACSMsg::get_mdmsg(__FILE__, 'M001'); $subject = ACSMsg::get_tag_replace($subject, array('{SUBJECT_NAME}' => $this->schedule_name)); ACSMsg::set_lang($current_lang); return $subject; }
/** * 掲示板RSSを出力する * * @param $community_row 対象コミュニティ情報 * @param $bbs_row_array 掲示板親記事一覧 * @param $params パラメータ等 */ static function print_bbs_rss($community_row, $bbs_row_array, $params) { // 使用クラス: acs/webapp/lib/feedcreator/feedcreator.class.php $rss = new UniversalFeedCreator(); // 概要等 <channel> $rss->useCached(); $rss->title = $community_row['community_name']; // コミュニティ名 $rss->description = $community_row['community_profile']['contents_value']; // プロフィール (公開範囲別) $rss->link = $params['base_url'] . $community_row['top_page_url']; // コミュニティトップページURL $rss->url = $params['base_url'] . $community_row['image_url']; // 画像URL <image rdf:resource="..."> $rss->syndicationURL = $rss_syndication_url; // 自身のURL <channel rdf:about="..."> // ロゴ画像 <image> $image = new FeedImage(); $image->title = $community_row['image_title']; // ファイル名 $image->link = ACSMsg::get_mdmsg(__FILE__, 'M006'); // 研究室ロゴ画像 $image->url = $params['base_url'] . $community_row['image_url']; $rss->image = $image; // 1件のダイアリー: <item> foreach ($bbs_row_array as $index => $bbs_row) { // CRLF → LF $body = preg_replace('/\\r\\n/', "\n", $bbs_row['body']); $item = new FeedItem(); $item->post_date = $bbs_row['post_date']; $item->title = $bbs_row['subject']; $item->link = $params['base_url'] . $bbs_row['bbs_res_url']; $item->description = $body; if ($bbs_row['file_url'] != '') { $item->image_link = $params['base_url'] . $bbs_row['file_url']; } $item->description2 = $body; //第2の本文 <content:encoded> $rss->addItem($item); } // http-header mb_http_output('pass'); header('Content-type: application/xml; charset=UTF-8'); echo mb_convert_encoding($rss->createFeed("RSS1.0"), 'UTF-8', mb_internal_encoding()); }
/** * 休日の計算を行います。 * (休日名もセットしていますが、現在は出力していません。) * * @param int $year * @param int $month */ function set_holiday($year, $month) { // その月の最初の月曜日が何日かを算出 $day = 1; while (date("w", mktime(0, 0, 0, $month, $day, $year)) != 1 && checkdate($month, $day, $year)) { $day++; } // 祝日をセット switch ($month) { case 1: // 元旦 $this->holiday[1] = 1; $this->holiday_name[1] = ACSMsg::get_mdmsg(__FILE__, 'M011'); // 成人の日 if ($year < 2000) { $this->holiday[15] = 1; $this->holiday_name[15] = ACSMsg::get_mdmsg(__FILE__, 'M012'); } else { $this->holiday[$day + 7] = 1; $this->holiday_name[$day + 7] = ACSMsg::get_mdmsg(__FILE__, 'M012'); } break; case 2: // 建国記念日 $this->holiday[11] = 1; $this->holiday_name[11] = "建国記念日"; break; case 3: // 春分の日 if ($year > 1979 && $year < 2100) { $tmp = floor(20.8431 + ($year - 1980) * 0.242194 - floor(($year - 1980) / 4)); $this->holiday[$tmp] = 1; $this->holiday_name[$tmp] = ACSMsg::get_mdmsg(__FILE__, 'M013'); } break; case 4: // 天皇誕生日 or みどりの日 $this->holiday[29] = 1; if ($year < 1989) { $this->holiday_name[29] = ACSMsg::get_mdmsg(__FILE__, 'M014'); } else { $this->holiday_name[29] = ACSMsg::get_mdmsg(__FILE__, 'M015'); } break; case 5: // 憲法記念日 $this->holiday[3] = 1; $this->holiday_name[3] = ACSMsg::get_mdmsg(__FILE__, 'M016'); // 子どもの日 $this->holiday[5] = 1; $this->holiday_name[5] = ACSMsg::get_mdmsg(__FILE__, 'M017'); break; case 7: // 海の日 if ($year > 2002) { $this->holiday[$day + 14] = 1; $this->holiday_name[$day + 14] = ACSMsg::get_mdmsg(__FILE__, 'M018'); } elseif ($year > 1994) { $this->holiday[21] = 1; $this->holiday_name[21] = ACSMsg::get_mdmsg(__FILE__, 'M018'); } break; case 9: // 敬老の日 if ($year < 2003) { $this->holiday[15] = 1; $this->holiday_name[15] = ACSMsg::get_mdmsg(__FILE__, 'M020'); } else { $this->holiday[$day + 14] = 1; $this->holiday_name[$day + 14] = ACSMsg::get_mdmsg(__FILE__, 'M020'); } // 秋分の日 if ($year > 1979 && $year < 2100) { $tmp = floor(23.2488 + ($year - 1980) * 0.242194 - floor(($year - 1980) / 4)); $this->holiday[$tmp] = 1; $this->holiday_name[$tmp] = ACSMsg::get_mdmsg(__FILE__, 'M022'); } break; case 10: // 体育の日 if ($year < 2000) { $this->holiday[10] = 1; $this->holiday_name[10] = ACSMsg::get_mdmsg(__FILE__, 'M023'); } else { $this->holiday[$day + 7] = 1; $this->holiday_name[$day + 7] = ACSMsg::get_mdmsg(__FILE__, 'M023'); } break; case 11: // 文化の日 $this->holiday[3] = 1; $this->holiday_name[3] = ACSMsg::get_mdmsg(__FILE__, 'M025'); // 勤労感謝の日 $this->holiday[23] = 1; $this->holiday_name[23] = ACSMsg::get_mdmsg(__FILE__, 'M026'); break; case 12: // 天皇誕生日 if ($year > 1988) { $this->holiday[23] = 1; $this->holiday_name[23] = ACSMsg::get_mdmsg(__FILE__, 'M014'); } break; } // 国民の休日をセット if ($year > 1985) { for ($i = 1; $i < ACSLib::get_end_day($year, $month); $i++) { if (isset($this->holiday[$i]) && isset($this->holiday[$i + 2])) { $this->holiday[$i + 1] = 1; $this->holiday_name[$i + 1] = ACSMsg::get_mdmsg(__FILE__, 'M028'); $i = $i + 3; } } } // 振り替え休日をセット $sday = $day - 1; if ($sday == 0) { $sday = 7; } for ($i = $sday; $i < ACSLib::get_end_day($year, $month); $i = $i + 7) { if (isset($this->holiday[$i])) { $this->holiday[$i + 1] = 1; $this->holiday_name[$i + 1] = ACSMsg::get_mdmsg(__FILE__, 'M029'); } } }
/** * コンストラクタ * * @param $system_config_group * @param $keyword */ function ACSSystemConfigKeywordData($system_config_data_row = array()) { $this->set_system_config_group_code($system_config_data_row['system_config_group_code']); $this->set_system_config_group_name($system_config_data_row['system_config_group_name']); $this->set_keyword($system_config_data_row['keyword']); //$this->set_name($system_config_data_row['name']); $this->set_value($system_config_data_row['value']); $this->set_type($system_config_data_row['type']); //$this->set_unit($system_config_data_row['unit']); //$this->set_note($system_config_data_row['note']); // メッセージファイルより取得 $this->set_name(ACSMsg::get_mdmsg(__FILE__, $system_config_data_row['keyword'])); $this->set_unit(ACSMsg::get_mdmsg(__FILE__, $system_config_data_row['keyword'] . ".unit")); $this->set_note(ACSMsg::get_mdmsg(__FILE__, $system_config_data_row['keyword'] . ".note")); $this->set_select(ACSMsg::get_mdmsg(__FILE__, $system_config_data_row['keyword'] . ".select")); }
/** * ルートフォルダ挿入 * * @param $community_id */ static function insert_root_folder($community_id) { $folder_row = array(); $timestamp = ACSLib::convert_timestamp_to_pg_date(); $folder_row['folder_id'] = ACSDB::get_next_seq('folder_id_seq'); $folder_row['community_id'] = $community_id; $folder_row['folder_name'] = ACSMsg::get_mdmsg(__FILE__, 'M001'); $folder_row['comment'] = ""; $folder_row['parent_folder_id'] = ""; $folder_row['entry_user_community_id'] = $community_id; $folder_row['entry_date'] = $timestamp; $folder_row['update_user_community_id'] = $community_id; $folder_row['update_date'] = $timestamp; $folder_row['open_level_code'] = ""; ACSDB::_do_query("BEGIN"); $ret = ACSFolderModel::insert_folder($folder_row); if (!$ret) { ACSDB::_do_query("ROLLBACK"); return $ret; } ACSDB::_do_query("COMMIT"); return $ret; }
/** * スケジュール通知メールの送信 * * 各ユーザの言語に対応してスケジュール関連の<br> * 通知メールを送信する * * @param object $schedule スケジュールインスタンス(ACSSchedule) * @param string $serial_msg_key_fmg シリアルメッセージ取得用フォーマット(例:"RMD%03d") * @param string $subject_msg_key 件名メッセージ取得用キー(例:"M001") * @param array $additional_tags 追加する置換プレースフォルダ(未指定も可) * @param array $additional_message_tags 追加する置換プレースフォルダ(メッセージid指定) * (未指定も可) メール言語に対応して置換されます * @return boolean true/false */ static function send_schedule_announce_mail(&$schedule, $serial_msg_key_fmg, $subject_msg_key, $additional_tags = "", $additional_message_tags = "") { // スケジュールURL $schedule_url = "{SYSTEM_SCRIPT_PATH}" . "?{SYSTEM_MODULE_ACCESSOR}=Community" . "&{SYSTEM_ACTION_ACCESSOR}=AnswerSchedule" . "&community_id={$schedule->community_id}" . "&schedule_id={$schedule->schedule_id}"; $user_community_row =& ACSUser::get_user_profile_row($schedule->user_community_id); // システムのメールアドレスを取得 $system_mail_addr = ACSSystemConfig::get_keyword_value(ACSMsg::get_mst('system_config_group', 'D01'), 'SYSTEM_MAIL_ADDR'); // 各言語用のメッセージを準備 $msgs = array(); $subjects = array(); $org_lang = ACSMsg::get_lang(); foreach (ACSMsg::get_lang_list_array() as $lang => $lang_disp) { ACSMsg::set_lang($lang); $tags_array = array('{USER_NAME}' => $user_community_row['user_name'], '{USER_COMMUNITY_NAME}' => $user_community_row['community_name'], '{SCHEDULE_NAME}' => $schedule->schedule_name, '{SCHEDULE_DETAIL}' => $schedule->schedule_detail, '{SCHEDULE_CLOSING_DATETIME}' => ACSLib::convert_pg_date_to_str($schedule->schedule_closing_datetime), '{SCHEDULE_URL}' => $schedule_url); if (is_array($additional_tags)) { $tags_array = array_merge($tags_array, $additional_tags); } if (is_array($additional_message_tags)) { $msg_array = array(); foreach ($additional_message_tags as $tag => $msg_key) { $msg_array[$tag] = ACSMsg::get_mdmsg(__FILE__, $msg_key); } $tags_array = array_merge($tags_array, $msg_array); } $msgs[$lang] = ACSMsg::get_serial_msg('lib', basename(__FILE__), $serial_msg_key_fmg); $msgs[$lang] = ACSMsg::get_tag_replace($msgs[$lang], $tags_array); // subjectの編集 $subjects[$lang] = ACSMsg::get_mdmsg(__FILE__, $subject_msg_key); } ACSMsg::set_lang($org_lang); // メールの送信(全コミュニティメンバ) return ACSCommunityMail::send_community_mail($schedule->community_id, $system_mail_addr, $subjects, $msgs); }
function get_value_array($str) { $value_array = trim($str); $ymd = 1; $err = "OK"; for ($i = 0; $i < 10; $i++) { $value = substr($value_array, $i, 1); if (ereg('[0-9]', $value)) { $set_value = $set_value . $value; } else { if ($value == '/') { switch ($ymd) { case 1: //yyyy if (strlen($set_value) == 4) { if ($set_value > 1900 && $set_value < 2035) { $ymd = 2; $year = $set_value; $set_value = ''; continue; } else { $err = ACSMsg::get_mdmsg(__FILE__, 'M008'); break; } } else { $err = ACSMsg::get_mdmsg(__FILE__, 'M009'); break; } case 2: //mm if (strlen($set_value) == 2) { if ($set_value > 0 && $set_value < 13) { $ymd = 3; $month = $set_value; $set_value = ''; continue; } else { $err = ACSMsg::get_mdmsg(__FILE__, 'M010'); break; } } else { $err = ACSMsg::get_mdmsg(__FILE__, 'M011'); break; } } } else { $err = ACSMsg::get_mdmsg(__FILE__, 'M012'); break; } } } if ($ymd = 3) { //dd if (strlen($set_value) == 2) { $d = date("t", mktime(0, 0, 0, $month, 1, $year)); if ($set_value > 0 && $set_value <= $d) { $ymd = 0; } else { $err = ACSMsg::get_mdmsg(__FILE__, 'M013'); } } else { $err = ACSMsg::get_mdmsg(__FILE__, 'M014'); } } return $err; }
/** * 通知メールを送信する * * @param $message_id メッセージID * @param $receiver_id 受信者ID * @param $sender_id 送信者ID */ static function send_info_mail($message_id, $receiver_id, $sender_id) { $system_group = ACSMsg::get_mst('system_config_group', 'D01'); // システムURL $system_base_url = ACSSystemConfig::get_keyword_value($system_group, 'SYSTEM_BASE_URL'); // システムログインURL $system_base_login_url = ACSSystemConfig::get_keyword_value($system_group, 'SYSTEM_BASE_LOGIN_URL'); // システムのメールアドレス (From:) $system_mail_addr = ACSSystemConfig::get_keyword_value($system_group, '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); // 依頼側のユーザ情報 $user_info_row = ACSUser::get_user_profile_row($sender_id); // 依頼される側のユーザ情報 $target_user_info_row = ACSUser::get_user_profile_row($receiver_id); // 待機承認URL $message_url = $system_base_login_url . SCRIPT_PATH; $message_url .= "?" . MODULE_ACCESSOR . "=User"; $message_url .= "&" . ACTION_ACCESSOR . "=MessageShow"; $message_url .= "&id={$receiver_id}"; $message_url .= "&message_id={$message_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', 'ACSMessage.class.php', 'ADF%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_URL}" => $message_url, "{SYSTEM_BASE_URL}" => $system_base_url)); $subject = ACSMsg::get_mdmsg(__FILE__, 'M002'); // 言語を元に戻す ACSMsg::set_lang($org_lang); $ret = ACSLib::send_mail($system_mail_addr, $target_user_info_row['mail_addr'], null, $subject, $body); }
/** * 依頼承諾メールを送信する * * @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; }
/** * フォルダ情報セット * * @param $folder_row */ function set_folder_info(&$folder_row) { $this->set_folder_id($folder_row['folder_id']); $this->set_community_id($folder_row['community_id']); if ($folder_row['parent_folder_id']) { $this->set_folder_name($folder_row['folder_name']); } else { // ルートフォルダの場合 $this->set_folder_name(ACSMsg::get_mdmsg(__FILE__, 'M001')); } $this->set_comment($folder_row['comment']); $this->set_parent_folder_id($folder_row['parent_folder_id']); $this->set_open_level_code($folder_row['open_level_code']); $this->set_open_level_name($folder_row['open_level_name']); $this->set_trusted_community_row_array($folder_row['trusted_community_row_array']); $this->set_put_community_row_array($folder_row['put_community_row_array']); $this->set_entry_user_community_id($folder_row['entry_user_community_id']); $this->set_entry_user_community_name($folder_row['entry_user_community_name']); $this->set_entry_date($folder_row['entry_date']); $this->set_update_user_community_id($folder_row['update_user_community_id']); $this->set_update_user_community_name($folder_row['update_user_community_name']); $this->set_update_date($folder_row['update_date']); }