function main()
{
    global $isLogined;
    // チェック済みのパラメータを取得する。
    $received = getReceivedParameter();
    // 公演詳細画面表示内容
    $display = (object) array();
    $display->stage_date = isset($received->stage_date) ? $received->stage_date : getSqlNowDate();
    //$stageDate = null;
    if (isset($received->stage_register) && $isLogined) {
        // 登録ボタン押下
        if (!$received->stage_register) {
            // 入力チェックの結果NG。画面再表示
            $display = $received;
        } else {
            // 公演を登録する
            $stageId = registerStage($received);
            if ($stageId > 0) {
                header("Location: /stage?stage_id=" . $stageId);
                return;
            } else {
                $display = $received;
                $display->error_message = "現在、登録ができません。";
                // 				include_once('page-templates/page-stage-input.tpl');
                // 				return;
            }
        }
    } else {
        if (isset($_GET["stage_id"]) && is_numeric($_GET["stage_id"])) {
            $display = (object) array();
            $display->is_update = true;
            // 変更画面であることを示す
            $stageId = $_GET["stage_id"];
            // リビジョンを指定する
            $revision = -1;
            if (isset($_GET['revision']) && is_numeric($_GET['revision'])) {
                $revision = intval($_GET['revision']);
            }
            // 公演情報取得
            $stageInfos = getStageDetail($stageId, $revision);
            if ($stageInfos != null && count($stageInfos) > 0) {
                $stageInfo = $stageInfos[0];
                $display->stage_id = $stageInfo->stage_id;
                $display->revision = $stageInfo->revision;
                // 公演日
                $display->stage_date = $stageInfo->stage_date;
                // チーム
                $display->stage_team = $stageInfo->team_id;
                // その日の回数
                $display->stage_time = array(0 => $stageInfo->stage_time);
                // 公演
                $display->stage_program = $stageInfo->program_id;
                // シャッフル?
                $display->stage_shuffled = $stageInfo->is_shuffled == 1;
                // 非公式か?
                $display->stage_unofficial = $stageInfo->is_unofficial == 1;
                // 出演メンバー
                $display->memberNameList = array();
                if (isset($stageInfo->memberList)) {
                    foreach ($stageInfo->memberList as $member) {
                        $display->memberNameList[] = $member->member_name;
                    }
                }
                // 関連リンク
                $display->linkStringList = array();
                if (isset($stageInfo->linkList)) {
                    foreach ($stageInfo->linkList as $link) {
                        $display->linkStringList[] = $link->link;
                    }
                }
                // イベント
                $display->stage_events = array();
                if (isset($stageInfo->eventMemberList) && count($stageInfo->eventMemberList) > 0) {
                    $i = 1;
                    foreach ($stageInfo->eventMemberList as $eventMember) {
                        $display->stage_events[] = (object) array('event_id' => $eventMember->event_id, 'member_id' => $eventMember->member_id);
                    }
                }
                // コメント
                // 				$display->stage_comment = array();
                $display->stage_comment = "";
                // 				foreach ($stageInfo->commentList as $comment) {
                // 					if ($comment != "") {
                // 						$display->stage_comment[] = $comment;
                // 					}
                // 				}
                if (count($stageInfo->commentList) > 0) {
                    $display->stage_comment = $stageInfo->commentList[0]->comment;
                }
            } else {
                $display->stage_date = getSqlNowDate();
                $display->revision = 0;
                $display->error_message = "該当する公演が見つかりません。";
            }
        } else {
            // 入力画面初期表示
            // 			// 日付が指定されていた場合は、その日の編集を行う
            // 			if (isset($_GET["stage_date"]) && $_GET["stage_date"] != "")
            // 			{
            // 				$display = (object) array();
            // 				$display->stage_date = $_GET["stage_date"];
            // 			}
            // デフォルトで、ダブルチェックが必要である旨のチェックをつけておく
            $display->stage_unofficial = true;
            $display->revision = 0;
            $display->stage_time[] = 1;
            if (!$isLogined) {
                $display->error_message = "現在、公演の登録・更新にはログインが必要です。";
            }
        }
    }
    // 前後の公演
    $display->previousStage = getPreviousStage(!empty($display->stage_id) ? $display->stage_id : 0, $display->stage_date);
    $display->nextStage = getNextStage(!empty($display->stage_id) ? $display->stage_id : 0, $display->stage_date);
    // イベントリスト
    $display->eventInfoList = getEvents();
    // メンバーリスト
    $display->memberInfoList = getMembers($display->stage_date);
    return $display;
}
Ejemplo n.º 2
0
function getMembers($specificialDate = null)
{
    if ($specificialDate == null) {
        $specificialDate = getSqlNowDate();
    }
    global $wpdb;
    $wpdb->show_errors();
    // 	$query = "SELECT member_id, member_name FROM Member ORDER BY sort_order ";
    // 	$rows = $wpdb->get_results($query);
    $query = "SELECT m.member_id, m.member_name FROM Member m " . " JOIN (SELECT bl.member_id, bl.team_id FROM Belonging bl WHERE bl.from_date <= %s AND bl.to_date >= %s) bl2 " . " ON (bl2.member_id = m.member_id) " . " JOIN Team t ON (t.team_id = bl2.team_id) " . " ORDER BY t.sort_order, m.sort_order ";
    $param = array();
    $param[] = $specificialDate;
    $param[] = $specificialDate;
    $query = $wpdb->prepare($query, $param);
    $rows = $wpdb->get_results($query);
    return $rows;
}