', nextArrow: '
', responsive: [{ breakpoint: 601, centerMode: true, settings: { arrows: false, slidesToShow: 1, dots: true, variableWidth: false, centerPadding: "0", } }, ] }); $('.e-visual-slider').on('setPosition', function(slick){ $('.slick-slide.slick-cloned').find('[data-lightbox]').attr('data-lightbox', null); }); lightbox.option({ 'positionFromTop': 0, 'showImageNumberLabel': false, 'maxWidth': 1000, 'resizeDuration': 200, 'wrapAround': true }); });

令和6年度 森のナイトカフェ 観覧&飲食席チケット

噴水ショーを間近で観ながら食事等をゆったり楽しめる、特等席。

森のまち広場(流山おおたかの森駅南口)

[ 地図を見る ]
329
ブラボー
11282
回閲覧
0 / 10
ブラボーでイベント応援

開場/開演情報・チケット販売期間

[ 1 ]
2024/8/7(水) 開場: 16:15 / 開始: 17:00 / 終了: 21:00
2024/8/7(水) 17:00まで販売
[ 2 ]
2024/8/8(木) 開場: 16:15 / 開始: 17:00 / 終了: 21:00
2024/8/8(木) 17:00まで販売
[ 3 ]
2024/8/9(金) 開場: 16:15 / 開始: 17:00 / 終了: 21:00
2024/8/9(金) 17:00まで販売
[ 4 ]
2024/8/10(土) 開場: 15:15 / 開始: 16:00 / 終了: 21:00
2024/8/10(土) 16:00まで販売
+他1の情報もみる
表示数を減らす

チケットの種類・料金帯

通し券 自由席 指定席 配信 入場券 利用券

全-料金帯

0円 ~ 0円

ご利用可能支払方法

  • VISA
  • master
  • JCB
  • American Express
  • Diners Club
購入方法について

プログラム

出演者

連絡事項

お問い合わせ先

その他のお問い合わせ先:森のマルシェ実行委員会
[email protected]
(対応可能時間:平日9:00~17:00)

ステップ1/3 いつ参加しますか?

  • 販売中
  • 販売終了/売切
  • - 開催なし

ステップ2/3 どの時間帯にしますか?

ステップ3/3 どのチケットを購入しますか?

日付と時間帯を選択ください
{{>ticket_name}}
{{if ~archiveStart && ticket_type == 2 && webcast_type != 0}}
アーカイブ配信: {{:~date2FullDate(~archiveStart)}} {{:~date2Time(~archiveStart)}} ~ {{:~date2FullDate(~archiveClose)}} {{:~date2Time(~archiveClose)}}
{{/if}} {{if seat_group_amounts ~seat_length=seat_group_amounts.length}}
    {{for seat_group_amounts sort=~order }} {{if ~sameDayTicketFlg == '1' && same_day_amount_flg == '1'}}
  • 当日券 {{:~priceCamma(price)}} 円
  • {{else}} {{if (sort_order == '1' && !same_day_amount_flg) || (sort_order == '1' && same_day_amount_flg == '0') }}
    {{/if}}
  • {{if ~seat_length > 1 }} {{>amount_name}} {{/if}} {{:~priceCamma(price)}} 円
  • {{/if}} {{/for}}
{{/if}}
{{if can_order == 0 || is_sold_out == 1 || ~eventCancel == 1 || ~salesBeforeFlg || ~salesCloseFlg || (~checkSalesClose(~performanceClose) && !(ticket_type == 2 && webcast_type != 0)) }} {{else}} {{/if}} {{if ~qrEnable == 0 && ticket_type != 2}}

入場時にスマートフォンが必須です

{{/if}}
{{/if}} {{/for}} {{/if}} {{/for}} {{/if}} `; const PACKAGE_TICKET_BLOCK_TEMPLATE = ` {{if events ~eventId = events.id ~eventType = events.event_type ~qrEnable = events.qr_enable_flg ~eventCancel = events.event_cancel ~preview = preview ~test_flg = test_flg ~user_role = user_role }} {{for seat_group_packages }} {{if publish_status != 2 ~salesStartDate = seat_group_package_sales_start ~salesCloseDate = seat_group_package_sales_close ~salesBeforeFlg = ~checkSalesStart(seat_group_package_sales_start) ~salesCloseFlg = ~checkSalesClose(seat_group_package_sales_close) }} {{* window.salesEndClass = '';}} {{if can_order == 0 || is_sold_out == 1 || ~eventCancel == 1 || ~salesCloseFlg }} {{* salesEndClass = 'notSales';}} {{/if}}
{{if is_sold_out == 1 || ~eventCancel == 1}} {{if ~eventType == 1}}申込受付終了 {{else}}販売終了 {{/if}} {{else can_order == 0}} {{if has_order == 1}} {{if ~eventType == 1}}申込不可 {{else}}購入不可 {{/if}} {{else}} {{if ~eventType == 1}}申込受付終了 {{else}}販売終了 {{/if}} {{/if}} {{else ~salesCloseFlg}} {{if ~eventType == 1}}申込受付終了 {{else}}販売終了 {{/if}} {{else ~salesBeforeFlg}} 販売前 {{else}} {{if ~eventType == 1}}申込受付中 {{else}}販売中 {{/if}} {{/if}} 通し券 {{if is_sold_out == 1}} {{if ~eventType == 0}}売り切れ {{/if}} {{else can_order == 0 && has_order == 1}} {{if ~eventType == 1}}申込済み {{else}}購入済み {{/if}} {{else}} {{if ~salesBeforeFlg}} {{:~date2FullDate(~salesStartDate)}} {{:~date2Time(~salesStartDate)}} から販売 {{else}} {{:~date2FullDate(~salesCloseDate)}} {{:~date2Time(~salesCloseDate)}} まで販売 {{/if}} {{/if}}
{{>name}}
  • {{:~priceCamma(price)}} 円
{{if can_order == 0 || is_sold_out == 1 || ~eventCancel == 1 || ~salesCloseFlg || ~salesBeforeFlg}} {{else}} {{/if}} {{* window.findWebcast = false }} {{for seat_group_package_linkages }} {{if event_performance.seat_group.ticket_type == 2}} {{* findWebcast = true }} {{/if}} {{/for}} {{* if(!findWebcast) { }} {{if ~qrEnable == 0}}

入場時にスマートフォンが必須です

{{/if}} {{* } }}

対象チケット

    {{for seat_group_package_linkages }} {{if event_performance ~ticketType = event_performance.seat_group.ticket_type ~ticketName = event_performance.seat_group.ticket_name ~webcastType = event_performance.seat_group.webcast_type ~start = event_performance.performance_start ~archiveStart = event_performance.performance_archive_start ~archiveClose = event_performance.performance_archive_close }}
  1. {{>~ticketName}}

    {{if ~ticketType == 0}} 自由席 {{else ~ticketType == 1}} 指定席 {{else ~ticketType == 2}} 配信 {{else ~ticketType == 3}} 入場券 {{else ~ticketType == 4}} 利用券 {{/if}}
    {{if ~webcastType != 2}}

    {{:~date2FullDate(~start)}} é–‹æ¼”: {{:~date2Time(~start)}}

    {{/if}} {{if ~ticketType == 2 && ~webcastType != 0 }}

    アーカイブ配信: {{:~date2FullDate(~archiveStart)}} {{:~date2Time(~archiveStart)}} ~ {{:~date2FullDate(~archiveClose)}} {{:~date2Time(~archiveClose)}}

    {{/if}}
  2. {{/if}} {{/for}}
{{/if}} {{/for}} {{/if}} `; function jsRenderHelpers() { $.views.helpers({ // 3桁区切りのカンマを追加する priceCamma: rewritePriceCamma // 販売終了日時を過ぎたらtrueを返す , checkSalesClose: function(sales_close_date) { var salesCloseDate = new Date(sales_close_date); var diff = salesCloseDate.getTime() - TODAY.getTime(); return diff < 0 } // 販売開始日時より前ならtrueを返す , checkSalesStart: function(sales_start_date) { var salesOpenDate = new Date(sales_start_date); var diff = salesOpenDate.getTime() - TODAY.getTime(); return diff > 0; } // Dateから時間を生成 , date2Time: function(date) { var date = new Date(date); var hour = date.getHours(); var minute = date.getMinutes(); if (hour < 10) hour = '0' + hour; // 2桁にする if (minute < 10) minute = '0' + minute; // 2桁にする return hour + ':' + minute; } // Dateから日付+曜日を生成 , date2FullDate: function(date) { var date = new Date(date); var year = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); var weekday = ['日', '月', '火', '水', '木', '金', '土']; var dayOfWeek = weekday[date.getDay()]; return year + '/' + month + '/' + day + '(' + dayOfWeek + ')'; } // Dateから日付+曜日を生成 , date2FullDateNoYear: function(date) { var date = new Date(date); var month = date.getMonth() + 1; var day = date.getDate(); var weekday = ['日', '月', '火', '水', '木', '金', '土']; var dayOfWeek = weekday[date.getDay()]; return month + '/' + day + '(' + dayOfWeek + ')'; } // 同日チェック , checkSameDay: function(date1, date2) { var date1 = new Date(date1); var date2 = new Date(date2); var day1 = ''+ date1.getFullYear() + date1.getMonth() + date1.getDate(); var day2 = ''+ date2.getFullYear() + date2.getMonth() + date2.getDate(); return day1 === day2 } , returnGetTime: function(date) { return new Date(date).getTime(); } , order: function(a,b) { return a.sort_order - b.sort_order || a.same_day_amount_flg - b.same_day_amount_flg; } }); } // 3桁区切りのカンマを追加する function rewritePriceCamma(number){ return number.toString().replace(/(\d)(?=(\d{3})+$)/g , '$1,'); } const SEAT_GROUPS = ` {{* window.salesEndClass = '';}} {{if can_order == 0 || is_sold_out == 1 || ~eventCancel == 1 || ~salesCloseFlg || (~checkSalesClose(~performanceClose) && !(ticket_type == 2 && webcast_type != 0)) }} {{* salesEndClass = 'sold-out';}} {{/if}}
{{>ticket_name}}
{{if seat_group_amounts ~seat_length=seat_group_amounts.length}}
    {{for seat_group_amounts sort=~order }} {{if ~sameDayTicketFlg == '1' && same_day_amount_flg == '1'}}
  • {{if ~seat_length > 1 }}

    {{>amount_name}} (当日券)

    {{/if}}

    {{:~priceCamma(price)}} 円

  • {{else}}
  • {{* window.labelClassName = '';}} {{if ~seat_groups.is_sold_out == 1 || ~eventCancel == 1}} {{* labelClassName = 'isSoldOut';}} {{else ~seat_groups.can_order == 0 && ~seat_groups.has_order == 1}} {{* labelClassName = 'isCanOrder';}} {{else ~salesCloseFlg || (~checkSalesClose(~performanceClose) && !(~seat_groups.ticket_type == 2 && ~seat_groups.webcast_type != 0)) }} {{* labelClassName = 'salesCloseFlg';}} {{else ~salesBeforeFlg}} {{* labelClassName = 'beforeSales';}} {{else}} {{* labelClassName = 'onSale';}} {{/if}} {{if ~eventCancel == 1}} {{if ~eventType == 1}}申込受付終了 {{else}}販売終了 {{/if}} {{else ~seat_groups.can_order == 0 && ~seat_groups.has_order == 1}} {{if ~eventType == 1}}申込済み {{else}}購入済み {{/if}} {{else ~salesCloseFlg || ~seat_groups.is_sold_out || (~checkSalesClose(~performanceClose) && !(~seat_groups.ticket_type == 2 && ~seat_groups.webcast_type != 0)) }} {{if ~eventType == 1}}申込受付終了 {{else}}販売終了 {{/if}} {{else ~salesBeforeFlg}} 販売前 {{else}} {{if ~eventType == 1}}申込受付中 {{else}}販売中 {{/if}} {{/if}} {{if ~seat_groups.is_sold_out == 1}} 売り切れ {{else}} {{if ~salesBeforeFlg}} {{:~date2FullDateNoYear(~salesStartDate)}} {{:~date2Time(~salesStartDate)}} から販売 {{else}} {{if ~seat_groups.ticket_type == 2 && ~seat_groups.webcast_type != 0 }} {{:~date2FullDateNoYear(~salesCloseDate)}} {{:~date2Time(~salesCloseDate)}} まで販売 {{else}} {{if ~returnGetTime(~salesCloseDate) < ~returnGetTime(~performanceClose) }} {{:~date2FullDateNoYear(~salesCloseDate)}} {{:~date2Time(~salesCloseDate)}} まで販売 {{else}} {{:~date2FullDateNoYear(~performanceClose)}} {{:~date2Time(~performanceClose)}} まで販売 {{/if}} {{/if}} {{/if}} {{/if}}
    {{if ~seat_length > 1 }}

    {{>amount_name}}

    {{/if}}

    {{:~priceCamma(price)}} 円

  • {{/if}} {{/for}}
{{/if}}
`; const TICKET_INFO_TEMPLATE = ` {{if events ~eventId = events.id ~eventType = events.event_type ~qrEnable = events.qr_enable_flg ~eventCancel = events.event_cancel ~preview = preview ~test_flg = test_flg ~user_role = user_role }} {{for event_performances }} {{if only_private_ticket === 0}}
{{if !performance_start && performance_archive_start}} {{>~date2FullDate(performance_archive_start) + " 開始" + ~date2Time(performance_archive_start)}} {{else}} {{>~date2FullDate(performance_start) + " 開始" + ~date2Time(performance_start)}} {{/if}} {{if performance_start}} 終了: {{if ~checkSameDay(performance_start, performance_close) }} {{>~date2Time(performance_close)}} {{else}} {{>~date2FullDate(performance_close) + " " + ~date2Time(performance_close)}} {{/if}} {{/if}} {{if performance_archive_start}} アーカイブ配信: {{if ~checkSameDay(performance_start, performance_archive_close) }} {{>~date2Time(performance_archive_close)}} {{else}} {{>~date2FullDate(performance_archive_close) + " " + ~date2Time(performance_archive_close)}} {{/if}} {{/if}}
{{if sales_close_date ~performanceId = id ~salesStartDate = sales_start_date ~salesCloseDate = sales_close_date ~performanceStart = performance_start ~performanceClose = performance_close ~archiveStart = performance_archive_start ~archiveClose = performance_archive_close ~salesBeforeFlg = ~checkSalesStart(sales_start_date) ~salesCloseFlg = ~checkSalesClose(sales_close_date) ~sameDayTicketFlg = same_day_ticket_flg ~selectSameDayTicketFlg = select_same_day_ticket_flg }} {{for performanceTicketList itemVar="~performanceTicketList" }} {{if seat_groups.length != 0 ~btnURL = '/' + ${GROUP_ID} + '/' + ~eventId + '/' + ~performanceId + '/order?ticket_type=' + ticket_type }} {{* window.btnClass = "btn disabled"; }} {{if publish_status !== 2}}
{{>name}}
{{for seat_groups itemVar="~seat_groups"}} {{if can_order == 0 || is_sold_out == 1 || ~eventCancel == 1 || ~salesBeforeFlg || ~salesCloseFlg || (~checkSalesClose(~performanceClose) && !(ticket_type == 2 && webcast_type !== 0)) }} {{else}} {{* btnClass = "btn" }} {{/if}} {{if publish_status != 2}} ${SEAT_GROUPS} {{/if}} {{/for}}
{{/if}} {{/if}} {{/for}} {{/if}}
{{/if}} {{/for}} {{/if}} `; const TICKET_INFO_PACKAGE_TEMPLATE = ` {{if events && only_private_package_ticket === 0 ~eventId = events.id ~eventType = events.event_type ~qrEnable = events.qr_enable_flg ~eventCancel = events.event_cancel ~preview = preview ~test_flg = test_flg ~user_role = user_role }}
通し券
{{for seat_group_packages }} {{if publish_status != 2 ~salesStartDate = seat_group_package_sales_start ~salesCloseDate = seat_group_package_sales_close ~salesBeforeFlg = ~checkSalesStart(seat_group_package_sales_start) ~salesCloseFlg = ~checkSalesClose(seat_group_package_sales_close) }} {{* window.salesEndClass = '';}} {{if can_order == 0 || is_sold_out == 1 || ~eventCancel == 1 || ~salesCloseFlg }} {{* salesEndClass = 'sold-out';}} {{/if}}
{{>name}}
  • 対象チケット
    {{for seat_group_package_linkages }} {{if event_performance ~ticketType = event_performance.seat_group.ticket_type ~ticketName = event_performance.seat_group.ticket_name ~webcastType = event_performance.seat_group.webcast_type ~start = event_performance.performance_start ~archiveStart = event_performance.performance_archive_start ~archiveClose = event_performance.performance_archive_close }}

    {{if ~ticketType == 2 && ~webcastType == 2}} {{:~date2FullDateNoYear(~archiveStart)+ ' 開始: '+ ~date2Time(~archiveStart)}} {{else}} {{:~date2FullDateNoYear(~start)+ ' 開始: '+ ~date2Time(~start)}} {{/if}}

    {{if ~ticketType == 0}} 自由席 {{else ~ticketType == 1}} 指定席 {{else ~ticketType == 2}} 配信 {{else ~ticketType == 3}} 入場券 {{else ~ticketType == 4}} 利用券 {{/if}} :{{>~ticketName}}

    {{/if}} {{/for}}
    {{if is_sold_out == 1 || ~eventCancel == 1}} {{if ~eventType == 1}}申込受付終了 {{else}}販売終了 {{/if}} {{else can_order == 0}} {{if has_order == 1}} {{if ~eventType == 1}}申込不可 {{else}}購入不可 {{/if}} {{else}} {{if ~eventType == 1}}申込受付終了 {{else}}販売終了 {{/if}} {{/if}} {{else ~salesCloseFlg}} {{if ~eventType == 1}}申込受付終了 {{else}}販売終了 {{/if}} {{else ~salesBeforeFlg}} 販売前 {{else}} {{if ~eventType == 1}}申込受付中 {{else}}販売中 {{/if}} {{/if}} {{if is_sold_out == 1}} {{if ~eventType == 0}}売り切れ {{/if}} {{else can_order == 0 && has_order == 1}} {{if ~eventType == 1}}申込済み {{else}}購入済み {{/if}} {{else}} {{if ~salesBeforeFlg}} {{:~date2FullDateNoYear(~salesStartDate)}} {{:~date2Time(~salesStartDate)}} から販売 {{else}} {{:~date2FullDateNoYear(~salesCloseDate)}} {{:~date2Time(~salesCloseDate)}} まで販売 {{/if}} {{/if}}

    {{:~priceCamma(price)}}円(税込)

上記の通し券を選択 {{* window.findWebcast = false }} {{for seat_group_package_linkages }} {{if event_performance.seat_group.ticket_type == 2}} {{* findWebcast = true }} {{/if}} {{/for}} {{* if(!findWebcast) { }} {{if ~qrEnable == 0}}
入場時にスマートフォンが必須です
{{/if}} {{* } }}
{{/if}} {{/for}}
{{/if}} `; // 単公演チケットの描画 function renderTicketInfo(json) { var newJson = json; for (let i=0; i < json['event_performances'].length; i++) { newJson['event_performances'][i]['performanceTicketList'] = [ { 'name': CONNECTION_CODE ? 'コード' : '配信', 'ticket_type': 2, 'can_order': 0, 'is_sold_out': 1, 'publish_status': 2, 'seat_groups': [] }, { 'name': '自由席', 'ticket_type': 0, 'can_order': 0, 'is_sold_out': 1, 'publish_status': 2, 'seat_groups': [] }, { 'name': '指定席', 'ticket_type': 1, 'can_order': 0, 'is_sold_out': 1, 'publish_status': 2, 'seat_groups': [] }, { 'name': '入場券', 'ticket_type': 3, 'can_order': 0, 'is_sold_out': 1, 'publish_status': 2, 'seat_groups': [] }, { 'name': '利用券', 'ticket_type': 4, 'can_order': 0, 'is_sold_out': 1, 'publish_status': 2, 'seat_groups': [] }, ] for (const seat of json['event_performances'][i]['seat_groups'] ) { var ticketType = seat['ticket_type']; newJson['event_performances'][i]['performanceTicketList'].find((item) => item.ticket_type === ticketType).seat_groups.push(seat); if (seat['can_order'] === 1) { newJson['event_performances'][i]['performanceTicketList'].find((item) => item.ticket_type === ticketType).can_order = 1; } if (seat['is_sold_out'] === 0) { newJson['event_performances'][i]['performanceTicketList'].find((item) => item.ticket_type === ticketType).is_sold_out = 0; } if (seat['publish_status'] != 2) { newJson['event_performances'][i]['performanceTicketList'].find((item) => item.ticket_type === ticketType).publish_status = 0; } } // 販売期間中は売り切れの券種は後ろにソートする if (new Date(json.event_performances[i].sales_close_date) > new Date()) { newJson['event_performances'][i]['performanceTicketList'].sort(function(a,b){ return a.is_sold_out - b.is_sold_out }); } } // jsRender $.views.settings.allowCode(true); var renderElement = '#ticket-info'; var renderTemplate = TICKET_INFO_TEMPLATE; var renderTemplatePackage = TICKET_INFO_PACKAGE_TEMPLATE; if (json['event_performances'].length != 0) { var html = $.templates(renderTemplate).render(newJson, jsRenderHelpers()); $(renderElement).html(html); } if (json['seat_group_packages'].length != 0) { var htmlPackTicket = $.templates(renderTemplatePackage).render(json, jsRenderHelpers()); $(renderElement).append(htmlPackTicket); } } // STEP3 チケットをレンダリング function renderTicketBlock(json) { let ticketBlockArray = []; json['seat_group_packages'].forEach((package) => { let packagePerformanceStart = ''; let packagePerformanceClose = ''; package.seat_group_package_linkages.forEach((item) =>{ if (item.event_performance.performance_start) { packagePerformanceStart += ','+item.event_performance.performance_start; packagePerformanceClose += ','+item.event_performance.performance_close; } else { packagePerformanceStart += ','+item.event_performance.performance_archive_start; packagePerformanceClose += ','+item.event_performance.performance_archive_close; } }); ticketBlockArray.push({ 'id': package.id, 'performanceStart': packagePerformanceStart.slice(1), 'performanceClose': packagePerformanceClose.slice(1), 'salesStart': package.seat_group_package_sales_start, 'salesClose': package.seat_group_package_sales_close, 'publishStatus': package.publish_status, 'canOrder': package.can_order, 'soldOut': package.is_sold_out, 'package': true }); }); json['event_performances'].forEach((performance) => { let performanceStart = ''; if (performance.performance_start) { performanceStart = performance.performance_start } else { performanceStart = performance.performance_archive_start } let performanceClose = ''; if (performance.performance_close) { performanceClose = performance.performance_close } else { performanceClose = performance.performance_archive_close } let salesStart = performance.sales_start_date, salesClose = performance.sales_close_date; let publishStatus = 2, canOder = 0, soldOut = 1; performance.seat_groups.forEach((seatGroup) => { if (seatGroup.ticket_type == 2 && seatGroup.webcast_type != 0) { salesClose = performance.sales_close_date } else { if (new Date(performance.sales_close_date) < new Date(performance.performance_close)) { salesClose = performance.sales_close_date } else { salesClose = performance.performance_close; } } if (seatGroup.publish_status != 2) publishStatus = 0; if (seatGroup.can_order == 1) canOder = 1; if (seatGroup.is_sold_out == 0) soldOut = 0; ticketBlockArray.push({ 'id': seatGroup.id, 'performanceStart': performanceStart, 'performanceClose': performanceClose, 'salesStart': salesStart, 'salesClose': salesClose, 'publishStatus': publishStatus, 'canOrder': canOder, 'soldOut': soldOut }); }); }); // jsRender $.views.settings.allowCode(true); var renderElement = '#ticket-blocks'; var renderTemplate = TICKET_BLOCK_TEMPLATE; var renderTemplatePackage = PACKAGE_TICKET_BLOCK_TEMPLATE; if (json['seat_group_packages'].length != 0) { var htmlPackTicket = $.templates(renderTemplatePackage).render(json, jsRenderHelpers()); $(renderElement).html(htmlPackTicket); } if (json['event_performances'].length != 0) { var html = $.templates(renderTemplate).render(json, jsRenderHelpers()); $(renderElement).append(html); } return ticketBlockArray; } // STEP3を初期化 const initialTicketBlock = () => { $('[ticket-block][data-start]').hide(); $('[data-start="default"]').show(); } // STEP3のチケットブロックを表示 const showTicketBlock = (date) => { initialTicketBlock(); $('[ticket-block][data-start]').each(function(){ var search = $(this).attr('data-start').indexOf(date) != -1; if (search) { $('[data-start="default"]').hide(); $(this).fadeIn(); } }); $('#ticket-blocks').scrollTop(0); } // 選択状態をリセットしてチケットモーダルを表示 function openEventPerformanceSelectorModal() { initialTicketBlock(); resetPerformanceTime(); $('#calendar button').removeClass('selected'); $('[data-component="event-performance-selector"]').removeClass('hide'); } /** * カレンダーSticky * @param {string} elm - カレンダーの親要素 * @param {string} target - stickyを解除する要素 */ function stickyBox(elm, target) { $(window).on('load scroll', function(){ var stickyBox = $(elm).children(); if (window.innerWidth > 600) { var scroll = $(window).scrollTop(); var stickyTop = $(elm).offset().top; var offset = $('header.site-header').outerHeight() + 16; if (scroll + offset > stickyTop) { stickyBox.addClass('is-fixed').css({ 'top': offset }); } else { stickyBox.removeClass('is-fixed').removeAttr('style'); } var height = stickyBox.height(); stickyBox.css('height', height); var stickyTarget = $(target).offset().top + $(target).outerHeight() - 32; var trigger = scroll + height; var sticky_scrolled = trigger + offset > stickyTarget ? true : false; if (sticky_scrolled) { var stickyPosition = trigger - stickyTarget; stickyBox.css('top', - stickyPosition); } } else { stickyBox.removeClass('is-fixed').removeAttr('style') } }); } /** * イベントリスナ設定 */ function setEvent() { // STEP1 カレンダー var Calendars = document.querySelectorAll('#calendar'); for ( var t = 0; t < Calendars.length; t++ ) { var target = Calendars[t]; $(target).on('touchstart, click', 'button', function(){ var selected = $(this).hasClass('selected'); if (!selected) { initialTicketBlock(); var currentDate = $(this).attr('data-date'); showPerformanceTime(currentDate); $('#calendar button').removeClass('selected'); $(this).addClass('selected'); $('#calendar button').each(function(i,e){ if ($(e).attr('data-date') == currentDate) { $(e).addClass('selected'); } }); } $('[data-component="event-performance-selector"]').removeClass('hide'); }); } // STEP2 どの時間帯にしますか? $('[performance-start]').on('touchstart, click', function(){ var text = $(this).text(); var date = $(this).attr('performance-start'); var label = document.getElementById('select-performance-time-label'); label.innerHTML = text; $(label).parent().removeClass('attention'); // STEP3のチケットブロックを表示 showTicketBlock(date); }); stickyBox('[sticky]','.e-detail-intro-section'); } // ticket-info API var ticketInfoAPI = '/api/event/'+GROUP_ID+'/'+EVENT_ID+'/ticket-info'; // JSON格納 let Ticket_Info_JSON; // ticket販売Data let TICKET_BLOCK_ARRAY; var getTicketInfo = (request) => { return new Promise((resolve, reject) => { if (isPreview) { resolve(jsonPreview); } else { $.ajax({ url: ticketInfoAPI, type: "GET", async: true, contentType: "application/json", data: JSON.stringify(request), dataType: "json", }) .then( function (result) { $('#ticket-info-api-error').hide(); $('#performance-calendar').show(); // 正常終了 resolve(result); }, function (error) { // エラー console.error('APIエラー', error); $('#ticket-info-api-error').show(); $('#performance-calendar').hide(); reject(); } ) } }) } // 全公演取得・カレンダー・時間帯リスト async function getAllPerformance() { const json = await getTicketInfo(); json['events']['event_cancel'] = EVENT_CANCEL; json['preview'] = isPreview; json['test_flg'] = TEST_FLG; json['user_role'] = USER_ROLE; json['connection_code'] = CONNECTION_CODE; for (const performance of json['event_performances']) { performance['only_private_ticket'] = 1; for (const sg of performance['seat_groups']) { if (sg.publish_status !== 2) { performance['only_private_ticket'] = 0; } } } json['only_private_package_ticket'] = 1; for (const package of json['seat_group_packages']) { if (package['publish_status'] != 2) { json.only_private_package_ticket = 0; } } Ticket_Info_JSON = json; // チケットの種類・料金帯 displayTicketTypePriceRange(json); var displayPerformanceCount = 0; for (let i=0; i < json['event_performances'].length; i++) { var findPublishStatus_2 = false; for (const seat of json['event_performances'][i]['seat_groups'] ) { if (seat['publish_status'] !== 2) { findPublishStatus_2 = true } } if (findPublishStatus_2) displayPerformanceCount++ } for (const seat of json['seat_group_packages'] ) { if (seat['publish_status'] !== 2) displayPerformanceCount++ } // console.log('公演+通し券チケット数', displayPerformanceCount); if (displayPerformanceCount >= 3) { // 長期イベント用にレイアウト変更 changeLongEventDOM(); // STEP3 チケットブロックを描画 TICKET_BLOCK_ARRAY = await renderTicketBlock(json); // カレンダーをイベントページに複製 cloneCalendarBase(); // 通し券あり・アーカイブ配信ありラベル displayOptionalLabel(json); // STEP1 カレンダー var availableForPurchaseDate = getDatePerformancesAvailableForPurchase(json); let defaultCalenderDate; if (availableForPurchaseDate) { // 購入可能なチケットの公演日をデフォルト表示する defaultCalenderDate = new Date(availableForPurchaseDate); } else { // 最初の公演日の月をデフォルト表示する var performancesDateArray = getArrayPerformanceStartDate(json); performancesDateArray.sort(function(a,b){ return new Date(a).getTime() - new Date(b).getTime(); }); defaultCalenderDate = new Date(performancesDateArray[0]); } // カレンダー描画 currentMonth = defaultCalenderDate.getMonth(); currentYear = defaultCalenderDate.getFullYear(); await showCalendar(currentMonth, currentYear); // カレンダー生成後の処理 showCalendarAfter(json); // STEP2 どの時間帯にしますか?選択肢を描画 await generateSelectTimeList(json); // STEP2 販売ステータスアイコンを更新 updateSelectTimeListStatus(); // イベントリスナ設定 setEvent(); } else if (displayPerformanceCount !== 0) { // 単公演チケットの描画 changeShortEventDOM(); renderTicketInfo(json); } else { console.log('表示できるチケットががありません'); } // テスト公開用 購入ボタン押下でモーダル表示 $('a[data-test-order]').on('click', function(){ var url = $(this).data('test-order'); $('#test_target_order').attr("href", url); showModalComponent('[data-component="test-alert"]'); }); return json } document.addEventListener('DOMContentLoaded', function() { getAllPerformance().then(function(json){ if (location.hostname !== 'teket.jp') console.log(json); setBottomBarInfo(json); }); }); function changeShortEventDOM() { $('#ticket-info-column').show(); $('#performance-calendar').hide(); } // 長期イベント用にレイアウト変更 function changeLongEventDOM() { $('#performance-calendar').css('visibility', 'visible'); $('.e-detail-intro-section__main-column').appendTo('.e-detail-intro-section__container'); // ticket_section_bottom_bar.php のボタンを変更 $('.e-detail-bottombar .btn--buy').attr('href', 'javascript:void(0)'); $('.e-detail-bottombar .btn--buy').on('click', function(){ // 選択状態をリセットしてチケットモーダルを表示 openEventPerformanceSelectorModal() }); } /** * カレンダー生成後の処理 */ function showCalendarAfter(json) { initialTicketBlock(); resetPerformanceTime(); setCalendarStatus(json); updateCalendarStatus(); controlCalendarDisplayRange(json); // 「全nの開催」表示 const performanceCount = json.event_performances.length; $('#performance-count').text(performanceCount); } /** * 購入可能チケットの公演日を取得 */ function getDatePerformancesAvailableForPurchase(json) { var dates = []; var today = TODAY; json['event_performances'].forEach(function(p){ var salesClose = new Date(p['sales_close_date']); if (salesClose.getTime() > today.getTime()) { p['seat_groups'].forEach(function(t){ if (t['publish_status'] != 2 && t['can_order'] != 0 && t['is_sold_out'] != 1) { dates.push(p['performance_start']); } }); } }); json['seat_group_packages'].forEach(function(p){ var salesClose = new Date(p['seat_group_package_sales_close']); if (salesClose.getTime() > today.getTime() && p['can_order'] != 0 && p['is_sold_out'] != 1) { p['seat_group_package_linkages'].forEach(function(t){ dates.push(t['event_performance']['performance_start']); }); } }); dates.sort(function(a,b){ return new Date(a).getTime() - new Date(b).getTime(); }); return (dates.length > 0) ? dates[0] : false } // カレンダーをイベントページに複製 function cloneCalendarBase() { var calendarClone = $('[event-performance-calendar-base]').clone(true); calendarClone.attr('event-performance-calendar-base', null); $('#event-performance-calendar').html(calendarClone); } // 通し券あり・アーカイブ配信ありラベル function displayOptionalLabel(json) { if (json['seat_group_packages'].length != 0) { $.each(json['seat_group_packages'], function(){ if (this['publish_status'] != 2) { $('[data-event-has="package"]').removeClass('hide'); } }); } for(var performance of json['event_performances']) { if (performance['performance_archive_start'] != null) { $('[data-event-has="archive"]').removeClass('hide'); } } } // チケットの種類・料金帯 function displayTicketTypePriceRange(json) { var arrayPrice = []; var arrayTicketType = []; for(var performance of json['event_performances']) { for(var seat of performance['seat_groups']) { if (seat['publish_status'] != 2) { for(var amount of seat['seat_group_amounts']) { var price = amount['price']; arrayPrice.push(price); } arrayTicketType.push(seat['ticket_type']); } } } for(var packSeat of json['seat_group_packages']) { if (packSeat['publish_status'] != 2) { var packPrice = packSeat['price']; arrayPrice.push(packPrice); } } arrayPrice.sort(function(a,b){ return a - b; }); if (arrayPrice.length > 0) { var priceRangeFirst = arrayPrice[0]; $('#ticket-price-low').text(rewritePriceCamma(arrayPrice[0])); arrayPrice.reverse(); if (priceRangeFirst !== arrayPrice[0]) { $('#ticket-price-high').text(rewritePriceCamma(arrayPrice[0])); } else { $('[is-price-range]').hide(); } $('#ticket-price-type').text(arrayPrice.length); $('[data-ticket-type]').each(function(){ var $this = $(this); var type = $this.data('ticket-type'); if (arrayTicketType.includes(type)) { $this.removeClass('hide'); } }); if (json['seat_group_packages'].length != 0) { $.each(json['seat_group_packages'], function(){ if (this['publish_status'] != 2) { $('[data-ticket-type="pack"]').removeClass('hide'); } }); } } else { $('[intro-block="ticket-type"]').hide(); $('[intro-block="payment"]').hide(); } } /** * カレンダーの選択範囲を公演のある月に制限する */ function controlCalendarDisplayRange(json) { var startDate = getArrayPerformanceStartDate(json); startDate.sort(function(a,b){ return new Date(a).getTime() - new Date(b).getTime(); }); const PerformanceDate_First = new Date(startDate[0]); var FirstDate = new Date(PerformanceDate_First.getFullYear(), PerformanceDate_First.getMonth()); startDate.reverse(); const PerformanceDate_Last = new Date(startDate[0]); var LastDate = new Date(PerformanceDate_Last.getFullYear(), PerformanceDate_Last.getMonth()); var CarrentDate = new Date(currentYear,currentMonth); var previousStatus = CarrentDate.getTime() === FirstDate.getTime(); var nextStatus = CarrentDate.getTime() === LastDate.getTime(); $('[calendar-previous]').prop('disabled', previousStatus); $('[calendar-next]').prop('disabled', nextStatus); } /** * ステップ1で選択した日付からステップ2選択肢を表示 * @param {string} date - 2023-12-24T09:00:00 */ function showPerformanceTime(date) { var list = resetPerformanceTime(); var count = 0; var listItem; $.each(list, function(index, e){ if ($(e).attr('performance-start').indexOf(date) != -1){ $(e).removeClass('hide'); listItem = e; count++; } }); if (count == 1) { $(listItem).trigger('click'); $(listItem).closest('label').trigger('click'); } else { $('#select-performance-time-label').parent().addClass('attention'); } } // STEP2 選択肢リセット function resetPerformanceTime() { const label = $('#select-performance-time-label').text('選択してください'); label.parent().removeClass('attention'); label.parent().siblings('input').prop('checked', false); const list = $('#select-performance-time-list').children(); list.addClass('hide'); return list } /** * JSONから公演日の配列を生成 * アーカイブのみイベントの場合はアーカイブ日付を返す * @param {json} json - performanceAPI */ function getArrayPerformanceStartDate(json) { var performance = json.event_performances; var list = []; for (var i = 0; i < performance.length; i++) { var performance_start = performance[i].performance_start; var archive_start = performance[i].performance_archive_start; if (performance_start != null) { list.push(performance_start); } else if (archive_start != null){ list.push(archive_start); } } return list } /** * JSONから販売開始日の配列を生成 * @param {json} json - performanceAPI */ function getArraySalesStartDate(json) { var dates = json.event_performances; var list = []; for (var i = 0; i < dates.length; i++) { list.push(dates[i].sales_start_date); } return list } /** * JSONから販売終了日の配列を生成 * @param {json} json - performanceAPI */ function getArraySalesCloseDate(json) { var dates = json.event_performances; var list = []; for (var i = 0; i < dates.length; i++) { list.push(dates[i].sales_close_date); } return list } /** * JSONからどの時間帯にしますか?選択肢を描画 * @param {json} json - performanceAPI */ function generateSelectTimeList(json) { var performance = json.event_performances; var label = []; var date = []; var salesStartDate = []; var salesCloseDate = []; for (var i = 0; i < performance.length; i++) { if (performance[i].performance_start != null) { var performance_start = performance[i].performance_start; var performance_close = performance[i].performance_close; } else if (performance[i].performance_archive_start != null) { var performance_start = performance[i].performance_archive_start; var performance_close = performance[i].performance_archive_close; } var start = new Date(performance_start); var close = new Date(performance_close); var startH = String('0' + start.getHours()).slice(-2), startM = String('0' + start.getMinutes()).slice(-2), closeH = String('0' + close.getHours()).slice(-2), closeM = String('0' + close.getMinutes()).slice(-2); var startCloseOnSameDay = (String(start.getFullYear()+start.getMonth()+start.getDate()) == String(close.getFullYear()+close.getMonth()+close.getDate())) ? true : false; var closeDate = startCloseOnSameDay ? '': close.getFullYear()+'/'+(close.getMonth()+1)+'/'+close.getDate(); var li = startH+':'+startM + ' ~ ' + closeDate + ' ' + closeH+':'+closeM; if (!date.includes(performance_start)) { label.push(li); date.push(performance_start); salesStartDate.push(performance[i].sales_start_date); salesCloseDate.push(performance[i].sales_close_date); } } var today = TODAY; var target = document.getElementById('select-performance-time-list'); for (var i = 0; i < date.length; i++) { var validClass = 'invalid'; var html = '
  • '+label[i]+'
  • '; $(target).append(html); } } /** * STEP2 販売ステータスアイコンを更新 */ function updateSelectTimeListStatus() { if (EVENT_CANCEL == 1) return; $.each($('#select-performance-time-list li'), function(i,e){ TICKET_BLOCK_ARRAY.forEach((ticket) => { if (ticket['performanceStart'].indexOf($(e).attr('performance-start')) != -1) { // 販売前 if (new Date(ticket['salesStart']) > TODAY && ticket['canOrder'] === 1 && ticket['soldOut'] === 0) { console.log('販売前'); $(e).addClass('before-sales'); } if (ticket['canOrder'] === 1 && ticket['soldOut'] === 0 && (new Date(ticket['salesStart']) < TODAY && new Date(ticket['salesClose']) > TODAY)) { $(e).addClass('valid').removeClass('invalid before-sales'); } } }); }); } /** * 公演がある日に販売ステータスをつける(カレンダー) * @param {array} date - 公演日の配列 */ function setCalendarStatus(json) { var startDate = getArrayPerformanceStartDate(json); var Calendars = document.querySelectorAll('#calendar'); for ( var t = 0; t < Calendars.length; t++ ) { var target = Calendars[t]; var td = target.getElementsByTagName('td'); for (var i = 0; i < td.length; i++) { var tdDate = td[i].getAttribute('data-date'); for (var j = 0; j < startDate.length; j++) { var regex = new RegExp(tdDate); if (regex.test(startDate[j])) { td[i].classList.add('has-performance'); td[i].classList.add('invalid'); td[i].childNodes[0].removeAttribute('disabled'); } } } } } /** * 販売ステータスアイコンを更新(カレンダー) */ function updateCalendarStatus() { if (EVENT_CANCEL == 1) return; let ticketPublishPerformanceDateAll = ''; // 販売中の公演日{String} TICKET_BLOCK_ARRAY.forEach((ticket) => { if (ticket.publishStatus === 0) { ticketPublishPerformanceDateAll += ',' + ticket.performanceStart; } }); if (location.hostname !== 'teket.jp') { console.log('TICKET_BLOCK_ARRAY',TICKET_BLOCK_ARRAY); } var Calendars = document.querySelectorAll('#calendar'); for ( var t = 0; t < Calendars.length; t++ ) { var td = Calendars[t].getElementsByTagName('td'); for (var i = 0; i < td.length; i++) { TICKET_BLOCK_ARRAY.forEach((ticket) => { let Regex = new RegExp( td[i].getAttribute('data-date') ); if (Regex.test(ticket['performanceStart'])) { // 販売前 if (new Date(ticket['salesStart']) > TODAY && ticket['canOrder'] === 1 && ticket['soldOut'] === 0) { td[i].classList.add('before-sales'); } if (ticket['canOrder'] === 1 && ticket['soldOut'] === 0 && (new Date(ticket['salesStart']) < TODAY && new Date(ticket['salesClose']) > TODAY)) { td[i].classList.remove('invalid'); td[i].classList.remove('before-sales'); td[i].classList.add('valid'); } } if (!Regex.test(ticketPublishPerformanceDateAll)) { td[i].classList.replace('has-performance','is-privateOnly'); td[i].classList.remove('invalid','valid'); // 子要素のbuttonã‚’disabledにする var button = td[i].getElementsByTagName('button')[0]; if (button) { button.setAttribute('disabled', true); } } }); } } } // カレンダー設定 // var today = new Date(); var currentMonth = TODAY.getMonth(); var currentYear = TODAY.getFullYear(); var calendar = document.getElementById("calendar"); var lang = calendar.getAttribute('data-lang'); var months = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"]; var days = ["æ—¥", "月", "火", "æ°´", "木", "金", "土"]; var dayHeader = ""; for (day in days) { dayHeader += "" + days[day] + ""; } dayHeader += ""; document.getElementById("thead-month").innerHTML = dayHeader; function next() { currentYear = (currentMonth === 11) ? currentYear + 1 : currentYear; currentMonth = (currentMonth + 1) % 12; showCalendar(currentMonth, currentYear); showCalendarAfter(Ticket_Info_JSON); // カレンダー生成後の処理 } function previous() { currentYear = (currentMonth === 0) ? currentYear - 1 : currentYear; currentMonth = (currentMonth === 0) ? 11 : currentMonth - 1; showCalendar(currentMonth, currentYear); showCalendarAfter(Ticket_Info_JSON); // カレンダー生成後の処理 } // カレンダー描画 function showCalendar(month, year) { var firstDay = ( new Date( year, month ) ).getDay(); var tables = document.querySelectorAll("#calendar-body"); var monthAndYear = document.querySelectorAll("#monthAndYear"); for ( var t = 0; t < tables.length; t++ ) { var tbl = tables[t]; tbl.innerHTML = ""; monthAndYear[t].innerHTML = year + "å¹´" + " " + months[month] ; // creating all cells var date = 1; for ( var i = 0; i < 6; i++ ) { var row = document.createElement("tr"); for ( var j = 0; j < 7; j++ ) { if ( i === 0 && j < firstDay ) { cell = document.createElement( "td" ); cellText = document.createTextNode(""); cell.appendChild(cellText); row.appendChild(cell); } else if (date > daysInMonth(month, year)) { break; } else { var fullDate = year + '-' + String('0' + (month + 1)).slice(-2) + '-' + String('0' + date).slice(-2); cell = document.createElement("td"); cell.setAttribute("data-date", fullDate); cell.className = "date"; cell.innerHTML = ""; if ( date === TODAY.getDate() && year === TODAY.getFullYear() && month === TODAY.getMonth() ) { cell.className = "date today"; } row.appendChild(cell); date++; } } tbl.appendChild(row); } } } function daysInMonth(iMonth, iYear) { return 32 - new Date(iYear, iMonth, 32).getDate(); }

    主催者団体情報

    森のマルシェ実行委員会

    フォロワー数:932

    森のマルシェ実行委員会

    森のマルシェ実行委員会

    主催団体に
    お問い合わせ

     

    {{if cancel_type == 1}}
    本イベントは中止となりました
    {{else ~eventEnd(close)}}
    {{:~eventEnd(close)}}
    {{else sales_status == 2}} {{if event_type == 0}}
    売り切れ
    {{else}}
    抽選受付終了
    {{/if}} {{else}}
    {{>category_name}} {{if category == 'online'}} {{if webcast_type == 0}}(ライブ) {{else webcast_type == 1 && ~deliveryFlg(event_date) == 'before'}}(ライブ+アーカイブ) {{else webcast_type == 1 && ~deliveryFlg(event_date) == 'over'}}(アーカイブ) {{else webcast_type == 2}}(アーカイブ) {{/if}} {{/if}}
    {{:~format(~todayPerformanceStart, 'start')}} 開始
    {{/if}}
    {{>event_name}}
    {{>catch_copy}}
    {{>theater}}
    {{if bravos>0}}
    {{>bravos}}
    {{/if}}
    {{>pv_count}}
    {{if comment_count>0}}
    {{>comment_count}}
    {{/if}}
    {{if group_icon != ""}} {{else}} {{/if}}
    {{>group_name}}
    {{if real_ticket_flg == 1 && webcast_ticket_flg == 0}} 会場 {{if region !==""}} ({{>region}}) {{/if}} {{else real_ticket_flg == 0 && webcast_ticket_flg == 1}} 配信 {{else real_ticket_flg == 1 && webcast_ticket_flg == 1}} 配信+会場 {{if region !==""}} ({{>region}}) {{/if}} {{else}} {{/if}}
    {{:~format(~todayPerformanceStart, 'month')}}/
    {{:~format(~todayPerformanceStart, 'day')}}
    {{:~format(~todayPerformanceStart, 'weekday')}}
    {{if ~spanCheck(~performanceIndex) > 0 }}
     ~ 
    {{:~format(~todayPerformanceClose, 'month')}}/
    {{:~format(~todayPerformanceClose, 'day')}}
    {{:~format(~todayPerformanceClose, 'weekday')}}
    {{/if}} {{if performances.length > 1}}
    + ä»– {{>performances.length - 1}}
    {{/if}}
    {{if goto_flg == 1 }}
    Go To
    イベント対象
    {{/if}} {{/if}}

    令和6年度 森のナイトカフェ 観覧&飲食席チケット

    オンライン