first commit
This commit is contained in:
11
templates/admin-panel/login.php
Normal file
11
templates/admin-panel/login.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<div class="alogin-page">
|
||||
<div class="panel-login container">
|
||||
<form action="/apanel/login_check/" method="POST">
|
||||
<div class="form-group">
|
||||
<input type="password" name="admin_password" id="password" class="form-control" placeholder="Hasło">
|
||||
|
||||
</div>
|
||||
<button type="submit" class="btn-t1">zaloguj się</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
55
templates/admin-panel/main-view.php
Normal file
55
templates/admin-panel/main-view.php
Normal file
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
$orderArr = $this->orders;
|
||||
?>
|
||||
<div id="tickets-orders">
|
||||
<div class="container">
|
||||
<div class="tickets-orders">
|
||||
<h1>Lista zamówień</h1>
|
||||
<div class="orders-list">
|
||||
<div style="overflow-x:auto;">
|
||||
<table class="table table-striped" id="myTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">id</th>
|
||||
<th scope="col">Imię</th>
|
||||
<th scope="col">Nazwisko</th>
|
||||
<th scope="col">Email</th>
|
||||
<th scope="col">Cena</th>
|
||||
<th scope="col">Status płatności</th>
|
||||
<th scope="col">Status biletu</th>
|
||||
<th scope="col">Data zakupu</th>
|
||||
<th>Edytuj</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<? foreach ($orderArr as $key => $value) : ?>
|
||||
<tr>
|
||||
<td scope="row"><?= $value['id']; ?></td>
|
||||
<td><?= $value['name']; ?></td>
|
||||
<td><?= $value['surname']; ?></td>
|
||||
<td><?= $value['email']; ?></td>
|
||||
<td><?= $value['order_price']; ?></td>
|
||||
<td><?= $value['payment_status'] == 1 ? 'Zapłacono': 'Nie zapłacono'; ?></td>
|
||||
<td><?= $value['used_ticket'] == 1 ? 'Wykorzystany': 'Nie wykorzystany'; ?></td>
|
||||
<td><?= $value['date_added']; ?></td>
|
||||
<td class="edit-btn"><a href="/apanel/order_data/id=<?= $value['id']; ?>"><i
|
||||
class="fa-regular fa-pen-to-square"></i></a></td>
|
||||
</tr>
|
||||
<? endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
var table = $('#myTable').DataTable({
|
||||
"pagingType": "simple",
|
||||
order: [
|
||||
[0, 'desc']
|
||||
],
|
||||
});
|
||||
});
|
||||
</script>
|
||||
49
templates/admin-panel/order-data-table.php
Normal file
49
templates/admin-panel/order-data-table.php
Normal file
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
$orderData = $this->order_tickets;
|
||||
?>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>
|
||||
<h3>BILETY</h3>
|
||||
</th>
|
||||
<th>
|
||||
<h3>TERMIN</h3>
|
||||
</th>
|
||||
<th>
|
||||
<h3>CENA</h3>
|
||||
</th>
|
||||
<th>
|
||||
<h3>WARTOŚĆ</h3>
|
||||
</th>
|
||||
<th>
|
||||
<h3>ZMIENIĆ ILOŚĆ</h3>
|
||||
</th>
|
||||
<th>
|
||||
<h3>USUŃ</h3>
|
||||
</th>
|
||||
</tr>
|
||||
<?php foreach ($orderData as $key => $value) : ?>
|
||||
<tr>
|
||||
<td><?= $value['name']; ?> ( x <?= $value["quantity"]; ?>)</td>
|
||||
<td><?= $value['date_visit'] ? date('d/m/Y', strtotime($value['date_visit'])) : ''; ?></td>
|
||||
<td><?= $value['price']; ?> zł</td>
|
||||
<td><?= $value['price'] * $value["quantity"]; ?> zł</td>
|
||||
<td>
|
||||
<? if ( $value['product_id'] != 0 and $value['product_id'] != 999999 ) : ?>
|
||||
<button class="btn_t1 add" ticket_id="<?= $key; ?>">
|
||||
<i class="fa-solid fa-plus"></i>
|
||||
</button>
|
||||
<button class="btn_t1 subtract" ticket_id="<?= $key; ?>">
|
||||
<i class="fa-solid fa-minus"></i>
|
||||
</button>
|
||||
<? endif;?>
|
||||
</td>
|
||||
<td>
|
||||
<button class="btn_t1 delete" ticket_id="<?= $key; ?>">
|
||||
<i class="fa-solid fa-trash-can"></i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</table>
|
||||
346
templates/admin-panel/order-data.php
Normal file
346
templates/admin-panel/order-data.php
Normal file
@@ -0,0 +1,346 @@
|
||||
<?php
|
||||
$ticketsData = $this->order_tickets;
|
||||
$orderInfo = $this->order_info;
|
||||
?>
|
||||
|
||||
<div id="order-data">
|
||||
<div class="order-data">
|
||||
<div class="container">
|
||||
<div class="mini-nav-menu">
|
||||
<a href="/apanel/main_view/" class="btn-t1">Lista zamówień</a>
|
||||
</div>
|
||||
<div class="box_01">
|
||||
<input type="hidden" name="order_id" id="order_id" value="<?= $ticketsData[0]['order_id'] ?>">
|
||||
<div class="box-tickets-list">
|
||||
<table>
|
||||
<tr>
|
||||
<th>
|
||||
<h3>BILETY</h3>
|
||||
</th>
|
||||
<th>
|
||||
<h3>TERMIN</h3>
|
||||
</th>
|
||||
<th>
|
||||
<h3>CENA</h3>
|
||||
</th>
|
||||
<th>
|
||||
<h3>WARTOŚĆ</h3>
|
||||
</th>
|
||||
<th>
|
||||
<h3>ZMIENIĆ ILOŚĆ</h3>
|
||||
</th>
|
||||
<th>
|
||||
<h3>USUŃ</h3>
|
||||
</th>
|
||||
</tr>
|
||||
<?php foreach ($ticketsData as $key => $value) : ?>
|
||||
<? $ticketsPrice += $value['price'] * $value['quantity'];?>
|
||||
<tr>
|
||||
<td><?= $value['name']; ?> ( x <?= $value["quantity"]; ?>)</td>
|
||||
<td><?= $value['date_visit'] ? date('d/m/Y', strtotime($value['date_visit'])) : ''; ?></td>
|
||||
<td><?= $value['price']; ?> zł</td>
|
||||
<td><?= $value['price'] * $value["quantity"]; ?> zł</td>
|
||||
<td>
|
||||
<? if ( $value['product_id'] != 0 and $value['product_id'] != 999999 ) : ?>
|
||||
<button class="btn_t1 add" ticket_id="<?= $key; ?>">
|
||||
<i class="fa-solid fa-plus"></i>
|
||||
</button>
|
||||
<button class="btn_t1 subtract" ticket_id="<?= $key; ?>">
|
||||
<i class="fa-solid fa-minus"></i>
|
||||
</button>
|
||||
<? endif;?>
|
||||
</td>
|
||||
<td>
|
||||
<button class="btn_t1 delete" ticket_id="<?= $key; ?>">
|
||||
<i class="fa-solid fa-trash-can"></i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box_02">
|
||||
<div class="row">
|
||||
<div class="order-detale-info col-lg-8 col-md-8 col-xs-12">
|
||||
<div class="order-detale-info__wrapper">
|
||||
<h2>SZCZEGÓŁY</h2>
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="name" class="col-lg-3 col-form-label">Status płatności</label>
|
||||
<div class="col-lg-9">
|
||||
<select name="payment_status" class="form-control">
|
||||
<option value="0" <?= $orderInfo[0]['payment_status'] == 0 ? 'selected' : ''; ?>>Nie zapłacono</option>
|
||||
<option value="1" <?= $orderInfo[0]['payment_status'] == 1 ? 'selected' : ''; ?>>Zapłacono</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="name" class="col-lg-3 col-form-label">Imię</label>
|
||||
<div class="col-lg-9">
|
||||
<input type="text" class="form-control" id="name" name="name" value="<?= $orderInfo[0]['name']; ?>"
|
||||
disabled>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="surname" class="col-lg-3 col-form-label">Nazwisko</label>
|
||||
<div class="col-lg-9">
|
||||
<input type="text" class="form-control" id="surname" name="surname"
|
||||
value="<?= $orderInfo[0]['surname']; ?>" disabled>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="email" class="col-lg-3 col-form-label">Email</label>
|
||||
<div class="col-lg-9">
|
||||
<input type="email" class="form-control" id="email" name="email" value="<?= $orderInfo[0]['email']; ?>"
|
||||
disabled>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="zip_code" class="col-lg-3 col-form-label">Kod pocztowy</label>
|
||||
<div class="col-lg-9">
|
||||
<input type="text" class="form-control" id="zip_code" name="zip_code"
|
||||
value="<?= $orderInfo[0]['zip_code']; ?>" disabled>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="city" class="col-lg-3 col-form-label">Miejscowość</label>
|
||||
<div class="col-lg-9">
|
||||
<input type="text" class="form-control" id="city" name="city" value="<?= $orderInfo[0]['city']; ?>"
|
||||
disabled>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="street" class="col-lg-3 col-form-label">Ulica</label>
|
||||
<div class="col-lg-9">
|
||||
<input type="text" class="form-control" id="street" name="street" value="<?= $orderInfo[0]['street']; ?>"
|
||||
disabled>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<? if(!empty($orderInfo[0]['gift_address'])) : ?>
|
||||
<div class="form-group row mb-lg-2" id="gift_address_box">
|
||||
<label for="gift_address" class="col-lg-3 col-form-label">Dane do wysyłki biletu prezentowego</label>
|
||||
<div class="col-lg-9">
|
||||
<textarea rows="5" type="text" class="form-control" id="gift_address" name="gift_address" disabled><?= $orderInfo[0]['gift_address']; ?></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<? endif; ?>
|
||||
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="date-added-ticket" class="col-lg-3 col-form-label">Data dodanie</label>
|
||||
<div class="col-lg-9">
|
||||
<input type="text" class="form-control" id="date-added-ticket" name="date-added-ticket"
|
||||
value="<?= $orderInfo[0]['date_added']; ?>" disabled>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="date-pay-ticket" class="col-lg-3 col-form-label">Data płatności</label>
|
||||
<div class="col-lg-9">
|
||||
<input type="text" class="form-control" id="date-pay-ticket" name="date-pay-ticket"
|
||||
value="<?= $orderInfo[0]['payment_date']; ?>" disabled>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="pay-status" class="col-lg-3 col-form-label">Status płatności</label>
|
||||
<div class="col-lg-9">
|
||||
<input type="text" class="form-control" id="pay-status" name="pay-status"
|
||||
value="<?= $orderInfo[0]['payment_status'] ? 'Zapłacono' : 'Nie zapłacono'; ?>" disabled>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="ticket-status" class="col-lg-3 col-form-label">Status biletu</label>
|
||||
<div class="col-lg-9">
|
||||
<input type="text" class="form-control" id="ticket-status" name="ticket-status"
|
||||
value="<?= $orderInfo[0]['used_ticket'] ? 'Wykorzystany' : 'Nie wykorzystany'; ?>" disabled>
|
||||
</div>
|
||||
</div>
|
||||
<? if($orderInfo[0]['used_ticket_date']) : ?>
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="ticket-use-date" class="col-lg-3 col-form-label">Data wykorzystania</label>
|
||||
<div class="col-lg-9">
|
||||
<input type="text" class="form-control" id="ticket-use-date" name="ticket-use-date"
|
||||
value="<?= $orderInfo[0]['used_ticket_date']; ?>" disabled>
|
||||
</div>
|
||||
</div>
|
||||
<? endif; ?>
|
||||
<!-- <pre>
|
||||
<?= var_dump($orderInfo[0]['vat']); ?>
|
||||
</pre> -->
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="date-pay-ticket" class="col-lg-3 col-form-label"><?= $orderInfo[0]['vat'] ? "Faktura" : 'Paragon'; ?></label>
|
||||
<div class="col-lg-9">
|
||||
<a href="<?= $orderInfo[0]['invoice_url']; ?>"><?= $orderInfo[0]['invoice_url']; ?></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php if($orderInfo[0]['vat']) : ?>
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="company_name" class="col-lg-3 col-form-label">Nazwa firmy</label>
|
||||
<div class="col-lg-9">
|
||||
<input type="text" class="form-control" id="company_name" name="company_name" disabled value="<?= $orderInfo[0]['company_name']; ?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="nip" class="col-lg-3 col-form-label">NIP</label>
|
||||
<div class="col-lg-9">
|
||||
<input type="text" class="form-control" id="nip" name="nip" disabled value="<?= $orderInfo[0]['nip']; ?>">
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="order-summary col-lg-4 col-md-4 col-xs-12">
|
||||
<div class="order-summary__wrapper">
|
||||
<h2>Suma:</h2>
|
||||
<p id="order-general-price"><?= $ticketsPrice; ?> zł</p>
|
||||
<hr>
|
||||
<div class="flex flex-buttons-group">
|
||||
<button class="btn-t1 btn-save-new-list">Zapisz</button>
|
||||
<a href="#" class="btn btn-danger btn-delete-order" data-id="<?= $orderInfo[0]['id']; ?>">Usuń zamówienie</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
// add
|
||||
$('body').on('click', '.add', function() {
|
||||
var ticket_id = $(this).attr('ticket_id');
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: '/apanel/ticket_inc/',
|
||||
data: {
|
||||
ticket_id: ticket_id,
|
||||
},
|
||||
success: function(data) {
|
||||
response = jQuery.parseJSON(data);
|
||||
$('.box_01 .box-tickets-list').html(response.basket_form);
|
||||
$('.box_02 .order-summary').html(response.order_summ);
|
||||
$('.btn-save-new-list').attr('disabled', false)
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// subtract
|
||||
$('body').on('click', '.subtract', function() {
|
||||
var ticket_id = $(this).attr('ticket_id');
|
||||
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: '/apanel/ticket_dec/',
|
||||
data: {
|
||||
ticket_id: ticket_id,
|
||||
},
|
||||
success: function(data) {
|
||||
response = jQuery.parseJSON(data);
|
||||
$('.box_01 .box-tickets-list').html(response.basket_form);
|
||||
$('.box_02 .order-summary').html(response.order_summ);
|
||||
$('.btn-save-new-list').attr('disabled', false)
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//remove
|
||||
$('body').on('click', '.delete', function() {
|
||||
var ticket_id = $(this).attr('ticket_id');
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: '/apanel/ticket_rem/',
|
||||
data: {
|
||||
ticket_id: ticket_id,
|
||||
},
|
||||
success: function(data) {
|
||||
response = jQuery.parseJSON(data);
|
||||
$('.box_01 .box-tickets-list').html(response.basket_form);
|
||||
$('.box_02 .order-summary').html(response.order_summ);
|
||||
$('.btn-save-new-list').attr('disabled', false)
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$( 'body' ).on( 'click', '.btn-delete-order', function(e)
|
||||
{
|
||||
e.preventDefault();
|
||||
var order_id = $(this).attr( 'data-id' );
|
||||
$.alert({
|
||||
title: 'Pytanie',
|
||||
content: 'Na pewno chcesz usunąć wybrane zamówienie?',
|
||||
type: 'orange',
|
||||
closeIcon: true,
|
||||
closeIconClass: 'fa fa-times',
|
||||
typeAnimated: true,
|
||||
animation: 'opacity',
|
||||
columnClass: 'col-12 col-lg-10',
|
||||
theme: 'modern',
|
||||
icon: 'fa fa-question',
|
||||
buttons: {
|
||||
confirm: {
|
||||
text: 'Tak',
|
||||
btnClass: 'btn-success',
|
||||
keys: ['enter'],
|
||||
action: function() {
|
||||
document.location.href = '/apanel/order_delete/order_id=' + order_id;
|
||||
}
|
||||
},
|
||||
cancel: {
|
||||
text: 'Nie',
|
||||
btnClass: 'btn-dark',
|
||||
action: function() {}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return false;
|
||||
})
|
||||
|
||||
//save
|
||||
$('body').on('click', '.btn-save-new-list', function() {
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: '/apanel/ticket_save/',
|
||||
data: {
|
||||
order_id: $('#order_id').val(),
|
||||
payment_status: $('select[name="payment_status"]').val()
|
||||
},
|
||||
beforeSend: function() {
|
||||
$('.btn-save-new-list').attr('disabled', true)
|
||||
},
|
||||
complete: function(data) {
|
||||
$.alert({
|
||||
icon: 'fa-regular fa-face-smile-beam',
|
||||
title: 'Zmiany zapisano',
|
||||
content: '',
|
||||
typeAnimated: true,
|
||||
animation: 'scale',
|
||||
closeAnimation: 'scale',
|
||||
autoClose: 'confirm|10000',
|
||||
bgOpacity: '0.5',
|
||||
type: 'green',
|
||||
theme: 'modern',
|
||||
columnClass: 'col-md-6 col-md-offset-3',
|
||||
|
||||
buttons: {
|
||||
confirm: {
|
||||
text: 'Zamknij',
|
||||
btnClass: 'btn-green btn-alert',
|
||||
keys: ['enter'],
|
||||
action: function() {}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
})
|
||||
});
|
||||
</script>
|
||||
16
templates/admin-panel/order-summary.php
Normal file
16
templates/admin-panel/order-summary.php
Normal file
@@ -0,0 +1,16 @@
|
||||
<div class="order-summary__wrapper">
|
||||
<h2>Suma:</h2>
|
||||
<?php
|
||||
$finalPrice = 0;
|
||||
foreach (($this->order_tickets) as $data => $value)
|
||||
{
|
||||
$finalPrice += $value['price'] * $value['quantity'];
|
||||
}
|
||||
?>
|
||||
<p id="order-general-price"><?= $finalPrice; ?> zł</p>
|
||||
<hr>
|
||||
<div class="flex flex-buttons-group">
|
||||
<button class="btn-t1 btn-save-new-list">Zapisz</button>
|
||||
<a href="#" class="btn btn-danger btn-delete-order" data-id="<?= $this -> order_id; ?>">Usuń zamówienie</a>
|
||||
</div>
|
||||
</div>
|
||||
10
templates/components/spinner.php
Normal file
10
templates/components/spinner.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<div class="lds-roller">
|
||||
<div></div>
|
||||
<div></div>
|
||||
<div></div>
|
||||
<div></div>
|
||||
<div></div>
|
||||
<div></div>
|
||||
<div></div>
|
||||
<div></div>
|
||||
</div>
|
||||
97
templates/cron/main-view.php
Normal file
97
templates/cron/main-view.php
Normal file
@@ -0,0 +1,97 @@
|
||||
<?
|
||||
$grid = new \gridEdit;
|
||||
$grid -> id = 'cron';
|
||||
$grid -> include_plugins = true;
|
||||
$grid -> title = 'Cron';
|
||||
$grid -> default_buttons = false;
|
||||
$grid -> external_code = '<div class="countdown callback"></div><div id="cron-container"></div>';
|
||||
echo $grid -> draw();
|
||||
?>
|
||||
<script type="text/javascript" src="/libraries/countdown/jquery.countdown.js"></script>
|
||||
<script type="text/javascript">
|
||||
var delay = 1;
|
||||
$( document ).ready( function()
|
||||
{
|
||||
$( '#content_wrapper' ).css( 'margin', '0px' );
|
||||
|
||||
$( '.countdown.callback' ).countdown(
|
||||
{
|
||||
date: +(new Date) + 1000,
|
||||
render: function(data)
|
||||
{
|
||||
$( this.el ).text( this.leadingZeros( data.sec, 2 ) + " sek" );
|
||||
},
|
||||
onEnd: function()
|
||||
{
|
||||
$( this.el ).addClass( 'ended' );
|
||||
cron();
|
||||
}
|
||||
}).stop();
|
||||
});
|
||||
|
||||
function cron()
|
||||
{
|
||||
$( '.msg:gt(48)' ).remove();
|
||||
$.ajax(
|
||||
{
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: '/cron.php',
|
||||
timeout: ( 30 * 1000 ),
|
||||
data:
|
||||
{
|
||||
cron: 'true'
|
||||
},
|
||||
beforeSend: function()
|
||||
{
|
||||
jQuery( '#cron-container' ).css( 'opacity', '0.8' );
|
||||
},
|
||||
success: function( data )
|
||||
{
|
||||
response = jQuery.parseJSON( data );
|
||||
|
||||
jQuery( '#cron-container' ).css( 'opacity', '1' );
|
||||
|
||||
if ( response.status === 'empty' )
|
||||
{
|
||||
delay++;
|
||||
if ( delay > 60 )
|
||||
delay = 60;
|
||||
|
||||
$( '.countdown.callback' ).removeClass('ended').data('countdown').update( +( new Date ) + delay * 1000 ).start();
|
||||
if ( typeof value === "undefined" )
|
||||
$( '#cron-container' ).prepend( '<div class="msg">W tej chwili nie ma nic do wykonania.</div>' );
|
||||
else
|
||||
$( '#cron-container' ).prepend( '<div class="msg">' + response.msg + '</div>' );
|
||||
}
|
||||
else
|
||||
{
|
||||
delay = 1;
|
||||
$( '#cron-container' ).prepend( '<div class="msg">' + response.msg + '</div>' );
|
||||
$( '.countdown.callback' ).removeClass('ended').data('countdown').update( +( new Date ) + 1 ).start();
|
||||
}
|
||||
},
|
||||
error: function(data)
|
||||
{
|
||||
delay++;
|
||||
if ( delay > 120 )
|
||||
delay = 120;
|
||||
|
||||
$( '#cron-container' ).prepend( '<div class="msg">Błąd podczas połączenia.</div>' );
|
||||
$( '.countdown.callback' ).removeClass('ended').data('countdown').update( +( new Date ) + delay * 1000 ).start();
|
||||
},
|
||||
statusCode:
|
||||
{
|
||||
500: function() {
|
||||
|
||||
delay++;
|
||||
if ( delay > 120 )
|
||||
delay = 120;
|
||||
|
||||
$( '#cron-container' ).prepend( '<div class="msg">Błąd podczas połączenia.</div>' );
|
||||
$( '.countdown.callback' ).removeClass('ended').data('countdown').update( +( new Date ) + delay * 1000 ).start();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
37
templates/html/button.php
Normal file
37
templates/html/button.php
Normal file
@@ -0,0 +1,37 @@
|
||||
<?
|
||||
if ( $this -> params['type'] == 'submit' )
|
||||
$out .= '<button ';
|
||||
else
|
||||
$out = '<a ';
|
||||
$out .= 'class="btn ' . $this -> params['class'] . '" ';
|
||||
|
||||
if ( $this -> params['style'] )
|
||||
$out .= 'style="' . $this -> params['style'] . '" ';
|
||||
|
||||
if ( $this -> params['js'] )
|
||||
$out .= 'onclick="' . htmlspecialchars( $this -> params['js'] ) . '" ';
|
||||
|
||||
if ( $this -> params['url'] )
|
||||
$out .= 'href="' . htmlspecialchars( $this -> params['url'] ) . '" ';
|
||||
|
||||
if ( $this -> params['id'] )
|
||||
$out .= 'id="' . $this -> params['id'] . '" ';
|
||||
|
||||
if ( $this -> params['title'] )
|
||||
$out .= 'title="' . htmlspecialchars( $this -> params['title'] ) . '" ';
|
||||
|
||||
if ( $this -> params['type'] == 'submit' )
|
||||
$out .= 'type="submit" ';
|
||||
|
||||
$out .= '>';
|
||||
if ( $this -> params['icon'] )
|
||||
$out .= '<i class="fa ' . $this -> params['icon'] . ' mr5"></i>';
|
||||
|
||||
$out .= $this -> params['text'];
|
||||
|
||||
if ( $this -> params['type'] == 'submit' )
|
||||
$out .= '</button';
|
||||
else
|
||||
$out .= '</a>';
|
||||
|
||||
echo $out;
|
||||
8
templates/html/form-text.php
Normal file
8
templates/html/form-text.php
Normal file
@@ -0,0 +1,8 @@
|
||||
<div class="form-group">
|
||||
<label class="col-lg-4 control-label"><?= $this -> params['label'];?>:</label>
|
||||
<div class="col-lg-8">
|
||||
<p class="form-control-static" id="<?= $this -> params['id'];?>">
|
||||
<?= $this -> params['text'];?>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
71
templates/html/input-icon.php
Normal file
71
templates/html/input-icon.php
Normal file
@@ -0,0 +1,71 @@
|
||||
<?
|
||||
if ( $this -> params['label'] )
|
||||
{
|
||||
$out .= '<div class="form-group row">';
|
||||
$out .= '<label class="';
|
||||
if ( !$this -> params['inline'] )
|
||||
$out .= 'col-md-12 text-left ';
|
||||
else
|
||||
$out .= 'col-md-3 ';
|
||||
$out .= 'col-form-label">' . $this -> params['label'] . ':</label>';
|
||||
$out .= '<div class="';
|
||||
if ( !$this -> params['inline'] )
|
||||
$out .= 'col-md-12';
|
||||
else
|
||||
$out .= 'col-md-9';
|
||||
$out .= '">';
|
||||
}
|
||||
$out .= '<div class="input-group">';
|
||||
$out .= '<input ';
|
||||
$out .= 'type="' . $this -> params['type'] . '" ';
|
||||
|
||||
if ( $this -> params['id'] )
|
||||
$out .= 'id="' . $this -> params['id'] . '" ';
|
||||
else
|
||||
$out .= 'id="' . $this -> params['name'] . '" ';
|
||||
|
||||
if ( $this -> params['class'] or $this -> params['label'] )
|
||||
{
|
||||
if ( $this -> params['label'] )
|
||||
$out .= 'class="' . $this -> params['class'] . ' form-control" ';
|
||||
else if ( $this -> params['class'] )
|
||||
$out .= 'class="' . $this -> params['class'] . '" ';
|
||||
}
|
||||
|
||||
$out .= 'name="' . $this -> params['name'] . '" ';
|
||||
$out .= 'value="' . $this -> secureHTML( $this -> params['value'] ) . '" ';
|
||||
|
||||
if ( $this -> params['style'] )
|
||||
$out .= 'style="' . $this -> params['style'] . '" ';
|
||||
|
||||
if ( $this -> params['readonly'] )
|
||||
$out .= 'readonly="readonly" ';
|
||||
|
||||
if ( $this -> params['required'] )
|
||||
$out .= 'required ';
|
||||
|
||||
if ( $this -> params['autocomplete'] == 'off' )
|
||||
$out .= 'autocomplete="off" ';
|
||||
|
||||
$out .= ' />';
|
||||
|
||||
$out .= '<span class="input-group-addon ';
|
||||
if ( $this -> params['icon_js'] )
|
||||
$out .= 'pointer ';
|
||||
$out .= '"';
|
||||
|
||||
if ( $this -> params['icon_js'] )
|
||||
$out .= 'onclick="' . htmlspecialchars( $this -> params['icon_js'] ) . '" ';
|
||||
|
||||
$out .= '>';
|
||||
$out .= $this -> params['icon_content'];
|
||||
$out .= '</span>';
|
||||
$out .= '</div>';
|
||||
|
||||
if ( $this -> params['label'] )
|
||||
{
|
||||
$out .= '</div>';
|
||||
$out .= '</div>';
|
||||
}
|
||||
|
||||
echo $out;
|
||||
36
templates/html/input-switch.php
Normal file
36
templates/html/input-switch.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?
|
||||
if ( $this -> params['label'] )
|
||||
{
|
||||
$out .= '<div class="form-group row">';
|
||||
$out .= '<label class="col-md-3 col-form-label">' . $this -> params['label'] . ':</label>';
|
||||
$out .= '<div class="col-md-9">';
|
||||
}
|
||||
|
||||
$out .= '<div class="switch switch-primary round switch-inline">';
|
||||
$out .= '<input ';
|
||||
|
||||
if ( $this -> params['id'] )
|
||||
$out .= 'id="' . $this -> params['id'] . '" ';
|
||||
else
|
||||
$out .= 'id="' . $this -> params['name'] . '" ';
|
||||
$out .= 'name="' . $this -> params['name'] . '" type="checkbox"';
|
||||
|
||||
if ( $this -> params['checked'] )
|
||||
$out .= 'checked="checked" ';
|
||||
|
||||
$out .= '>';
|
||||
$out .= '<label for="';
|
||||
if ( $this -> params['id'] )
|
||||
$out .= $this -> params['id'];
|
||||
else
|
||||
$out .= $this -> params['name'];
|
||||
$out .= '"></label>';
|
||||
$out .= '</div>';
|
||||
|
||||
if ( $this -> params['label'] )
|
||||
{
|
||||
$out .= '</div>';
|
||||
$out .= '</div>';
|
||||
}
|
||||
|
||||
echo $out;
|
||||
59
templates/html/input.php
Normal file
59
templates/html/input.php
Normal file
@@ -0,0 +1,59 @@
|
||||
<?
|
||||
if ( $this -> params['label'] )
|
||||
{
|
||||
$out .= '<div class="form-group row">';
|
||||
$out .= '<label class="';
|
||||
if ( !$this -> params['inline'] )
|
||||
$out .= 'col-md-12 text-left ';
|
||||
else
|
||||
$out .= 'col-md-3 ';
|
||||
$out .= 'col-form-label">' . $this -> params['label'] . ':</label>';
|
||||
$out .= '<div class="';
|
||||
if ( !$this -> params['inline'] )
|
||||
$out .= 'col-md-12';
|
||||
else
|
||||
$out .= 'col-md-9';
|
||||
$out .= '">';
|
||||
}
|
||||
|
||||
$out .= '<input ';
|
||||
$out .= 'type="' . $this -> params['type'] . '" ';
|
||||
|
||||
if ( $this -> params['id'] )
|
||||
$out .= 'id="' . $this -> params['id'] . '" ';
|
||||
|
||||
if ( $this -> params['class'] or $this -> params['label'] )
|
||||
{
|
||||
if ( $this -> params['label'] )
|
||||
$out .= 'class="' . $this -> params['class'] . ' form-control" ';
|
||||
else if ( $this -> params['class'] )
|
||||
$out .= 'class="' . $this -> params['class'] . '" ';
|
||||
}
|
||||
|
||||
$out .= 'name="' . $this -> params['name'] . '" ';
|
||||
$out .= 'value="' . $this -> secureHTML( $this -> params['value'] ) . '" ';
|
||||
|
||||
if ( $this -> params['style'] )
|
||||
$out .= 'style="' . $this -> params['style'] . '" ';
|
||||
|
||||
if ( $this -> params['readonly'] )
|
||||
$out .= 'readonly="readonly" ';
|
||||
|
||||
if ( $this -> params['required'] )
|
||||
$out .= 'required ';
|
||||
|
||||
if ( $this -> params['autocomplete'] == 'off' )
|
||||
$out .= 'autocomplete="off" ';
|
||||
|
||||
if ( $this -> params['placeholder'] )
|
||||
$out .= 'placeholder="' . $this -> params['placeholder'] . '" ';
|
||||
|
||||
$out .= ' />';
|
||||
|
||||
if ( $this -> params['label'] )
|
||||
{
|
||||
$out .= '</div>';
|
||||
$out .= '</div>';
|
||||
}
|
||||
|
||||
echo $out;
|
||||
8
templates/html/panel.php
Normal file
8
templates/html/panel.php
Normal file
@@ -0,0 +1,8 @@
|
||||
<div class="panel <?= $this -> params['class'];?>">
|
||||
<div class="panel-heading">
|
||||
<span class="panel-title"><?= $this -> params['title'];?></span>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<?= $this -> params['content'];?>
|
||||
</div>
|
||||
</div>
|
||||
56
templates/html/select.php
Normal file
56
templates/html/select.php
Normal file
@@ -0,0 +1,56 @@
|
||||
<?
|
||||
if ( $this -> params['label'] )
|
||||
{
|
||||
$out .= '<div class="form-group row';
|
||||
if ( $this -> params['inline'] )
|
||||
$out .= 'pl10 pr10';
|
||||
$out .= '">';
|
||||
$out .= '<label class="';
|
||||
if ( !$this -> params['inline'] )
|
||||
$out .= 'col-md-3 ';
|
||||
if ( $this -> params['inline'] )
|
||||
$out .= 'mb5 ';
|
||||
$out .= 'col-form-label">' . $this -> params['label'] . ':</label>';
|
||||
$out .= '<div class="';
|
||||
if ( !$this -> params['inline'] )
|
||||
$out .= 'col-md-9';
|
||||
$out .= '">';
|
||||
}
|
||||
|
||||
$out .= '<select ';
|
||||
|
||||
if ( $this -> params['id'] )
|
||||
$out .= 'id="' . $this -> params['id'] . '" ';
|
||||
|
||||
if ( $this -> params['class'] or $this -> params['label'] )
|
||||
{
|
||||
if ( $this -> params['label'] )
|
||||
$out .= 'class="' . $this -> params['class'] . ' form-control" ';
|
||||
else if ( $this -> params['class'] )
|
||||
$out .= 'class="' . $this -> params['class'] . '" ';
|
||||
}
|
||||
|
||||
$out .= 'name="' . $this -> params['name'] . '" ';
|
||||
|
||||
if ( $this -> params['style'] )
|
||||
$out .= 'style="' . $this -> params['style'] . '" ';
|
||||
|
||||
$out .= '>';
|
||||
|
||||
if ( $this -> params['empty'] )
|
||||
$out .= '<option value="">--- ' . mb_strtolower( $this -> params['label'], 'UTF-8' ) . ' ---</option>';
|
||||
|
||||
if ( is_array( $this -> params['values'] ) ) foreach ( $this -> params['values'] as $key => $val )
|
||||
{
|
||||
$out .= '<option value="' . $key . '"'; if ( $key == $this -> params['value'] ) $out .= 'selected="selected"'; $out .='>' . $val . '</option>';
|
||||
}
|
||||
|
||||
$out .= '</select>';
|
||||
|
||||
if ( $this -> params['label'] )
|
||||
{
|
||||
$out .= '</div>';
|
||||
$out .= '</div>';
|
||||
}
|
||||
|
||||
echo $out;
|
||||
49
templates/html/textarea.php
Normal file
49
templates/html/textarea.php
Normal file
@@ -0,0 +1,49 @@
|
||||
<?
|
||||
if ( $this -> params['label'] )
|
||||
{
|
||||
$out .= '<div class="form-group row';
|
||||
if ( $this -> params['inline'] )
|
||||
$out .= 'pl10 pr10';
|
||||
$out .= '">';
|
||||
$out .= '<label class="';
|
||||
if ( !$this -> params['inline'] )
|
||||
$out .= 'col-md-3 ';
|
||||
if ( $this -> params['inline'] )
|
||||
$out .= 'mb5 ';
|
||||
$out .= 'col-form-label">' . $this -> params['label'] . ':</label>';
|
||||
$out .= '<div class="';
|
||||
if ( !$this -> params['inline'] )
|
||||
$out .= 'col-md-9';
|
||||
$out .= '">';
|
||||
}
|
||||
|
||||
$out .= '<textarea ';
|
||||
|
||||
if ( $this -> params['id'] )
|
||||
$out .= 'id="' . $this -> params['id'] . '" ';
|
||||
|
||||
if ( $this -> params['class'] or $this -> params['label'] )
|
||||
{
|
||||
if ( $this -> params['label'] )
|
||||
$out .= 'class="' . $this -> params['class'] . ' form-control" ';
|
||||
else if ( $this -> params['class'] )
|
||||
$out .= 'class="' . $this -> params['class'] . '" ';
|
||||
}
|
||||
|
||||
$out .= 'name="' . $this -> params['name'] . '" ';
|
||||
|
||||
if ( $this -> params['style'] )
|
||||
$out .= 'style="' . $this -> params['style'] . '" ';
|
||||
|
||||
if ( $this -> params['placeholder'] )
|
||||
$out .= 'placeholder="' . $this -> params['placeholder'] . '" ';
|
||||
|
||||
$out .= ' rows="' . $this -> params['rows'] . '">' . $this -> secureHTML( $this -> params['value'] ) . '</textarea>';
|
||||
|
||||
if ( $this -> params['label'] )
|
||||
{
|
||||
$out .= '</div>';
|
||||
$out .= '</div>';
|
||||
}
|
||||
|
||||
echo $out;
|
||||
63
templates/site/layout-cron.php
Normal file
63
templates/site/layout-cron.php
Normal file
@@ -0,0 +1,63 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="pl">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>crmPro</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="">
|
||||
<meta name="robots" content="all">
|
||||
<link
|
||||
href="https://fonts.googleapis.com/css?family=Roboto:100,100i,300,300i,400,400i,500,500i,700,700i,900,900i&subset=latin-ext"
|
||||
rel="stylesheet">
|
||||
<link rel="stylesheet" type="text/css" href="/libraries/bootstrap-4.1.3/css/bootstrap.css">
|
||||
<link rel="stylesheet" type="text/css" href="/libraries/font-awesome-6.1.1/css/all.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="/libraries/icheck-1.0.2/skins/square/aero.css">
|
||||
<link rel="stylesheet" type="text/css" href="/libraries/jquery-confirm/jquery-confirm.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="/libraries/datepicker/css/datepicker.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="/layout/style-css/style.css">
|
||||
<script type="text/javascript" src="/libraries/jquery/jquery-3.6.0.min.js"></script>
|
||||
<script type="text/javascript" src="/libraries/bootstrap-4.1.3/js/bootstrap.js"></script>
|
||||
<script type="text/javascript" src="/libraries/icheck-1.0.2/icheck.min.js"></script>
|
||||
<script type="text/javascript" src="/libraries/jquery-confirm/jquery-confirm.min.js"></script>
|
||||
<script type="text/javascript" src="/libraries/datepicker/js/datepicker.min.js"></script>
|
||||
<script type="text/javascript" src="/libraries/datepicker/js/i18n/datepicker.pl.js"></script>
|
||||
<script type="text/javascript" src="/libraries/functions.js"></script>
|
||||
</head>
|
||||
|
||||
<body class="logged">
|
||||
<div id="top">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-12 col-sm-6">
|
||||
<a href="/" id="logo">search<span>Pro</span></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="main-menu">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<ul>
|
||||
<li>
|
||||
<a href="#">Kontakt</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="main">
|
||||
<div class="container-fluid">
|
||||
<? if ( $this -> alert ):?>
|
||||
<div class="alert"><?= $this -> alert;?></div>
|
||||
<? endif;?>
|
||||
<?= $this -> content;?>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
132
templates/site/layout-logged.php
Normal file
132
templates/site/layout-logged.php
Normal file
@@ -0,0 +1,132 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="pl">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Bilety online - brzezovka.pl</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="">
|
||||
<meta name="robots" content="all">
|
||||
<link
|
||||
href="https://fonts.googleapis.com/css?family=Roboto:100,100i,300,300i,400,400i,500,500i,700,700i,900,900i&subset=latin-ext"
|
||||
rel="stylesheet">
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet"
|
||||
integrity="sha384-0evHe/X+R7YkIZDRvuzKMRqM+OrBnVFBL6DOitfPri4tjfHxaWutUpFmBp4vmVor" crossorigin="anonymous">
|
||||
<link rel="stylesheet" type="text/css" href="/libraries/font-awesome-6.1.1/css/all.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="/libraries/icheck-1.0.2/skins/square/aero.css">
|
||||
<link rel="stylesheet" type="text/css" href="/libraries/jquery-confirm/jquery-confirm.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="/libraries/datepicker/css/datepicker.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="/layout/style-css/style.css">
|
||||
<link rel="stylesheet" type="text/css" href="/libraries/dataTable/jquery.dataTables.min.css">
|
||||
|
||||
<script type="text/javascript" src="/libraries/jquery/jquery-3.6.0.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/js/bootstrap.bundle.min.js"
|
||||
integrity="sha384-pprn3073KE6tl6bjs2QrFaJGz5/SUsLqktiwsUTF55Jfv3qYSDhgCecCxMW52nD2" crossorigin="anonymous">
|
||||
</script>
|
||||
<script type="text/javascript" src="/libraries/icheck-1.0.2/icheck.min.js"></script>
|
||||
<script type="text/javascript" src="/libraries/jquery-confirm/jquery-confirm.min.js"></script>
|
||||
<script type="text/javascript" src="/libraries/datepicker/js/datepicker.min.js"></script>
|
||||
<script type="text/javascript" src="/libraries/datepicker/js/i18n/datepicker.pl.js"></script>
|
||||
<script type="text/javascript" src="/libraries/functions.js"></script>
|
||||
<script type="text/javascript" src="/libraries/qrcode-scanner/html5-qrcode.min.js"></script>
|
||||
<script type="text/javascript" src="/libraries/dataTable/jquery.dataTables.min.js"></script>
|
||||
<script type="text/javascript" src="https://cdn.datatables.net/1.12.1/js/dataTables.bootstrap5.min.js"></script>
|
||||
<!-- Google Tag Manager -->
|
||||
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
||||
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
||||
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
||||
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
||||
})(window,document,'script','dataLayer','GTM-TW9WCD9J');</script>
|
||||
<!-- End Google Tag Manager -->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- Google Tag Manager (noscript) -->
|
||||
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-TW9WCD9J"
|
||||
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
||||
<!-- End Google Tag Manager (noscript) -->
|
||||
<div class="top">
|
||||
<div class="container">
|
||||
<?php if (\S::get_session( 'user')) : ?>
|
||||
<div class="row a_menu">
|
||||
<div class="col-4">
|
||||
<a href="/tickets/main_view/" class="logo">
|
||||
<img src="https://brzezovka.pl/img/logo.png" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-8">
|
||||
<nav id="nav-menu">
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/scanner/scanner_view/">
|
||||
Skaner
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/apanel/main_view/">
|
||||
Lista zamówień
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<form action="/apanel/unlogin/" method="POST" class="unlogin">
|
||||
<button type="submit" class="btn-t2">Wylogować się</button>
|
||||
</form>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<div id="menu-hamburger">
|
||||
<div id="btn-hamburger">
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
</div>
|
||||
<!-- <i class="fa-solid fa-bars" id="btn-hamburger"></i> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
<div class="col-12">
|
||||
<a href="/tickets/main_view/" class="logo">
|
||||
<img src="/layout/images/logo-white.png" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main ">
|
||||
<?= $this -> content;?>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<div class="footer__top">
|
||||
<div class="opening-hours">
|
||||
<a href="https://brzezovka.pl/godziny-otwarcia">Zobacz godziny otwarcia</a><br />
|
||||
<a href="/tickets/regulamin/">Regulamin</a>
|
||||
</div>
|
||||
<div class="logo">
|
||||
<img src="/layout/images/logo.png" alt="logo">
|
||||
</div>
|
||||
<div class="location">
|
||||
<p class="title">Lokalizacja</p>
|
||||
<p class="adres">Domatków 36 F, 36-100 Kolbuszowa</p>
|
||||
<a href="https://www.google.pl/maps/place/Brzez%C3%B3vka+Kompleks+Turystyczny/@50.2187295,21.7485387,17z/data=!3m1!4b1!4m5!3m4!1s0x473d1958eafce313:0x655488625ac5319!8m2!3d50.2182642!4d21.7445448"
|
||||
class="navigate">Nawiguj do Brzezowki</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer__bottom">
|
||||
<p>Copyright © 2022 Brzezovka</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$('#menu-hamburger #btn-hamburger').on('click', function() {
|
||||
$('#nav-menu').toggleClass('active')
|
||||
$('#menu-hamburger').toggleClass('active')
|
||||
})
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
85
templates/site/layout-unlogged.php
Normal file
85
templates/site/layout-unlogged.php
Normal file
@@ -0,0 +1,85 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="pl">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Bilety online - brzezovka.pl</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="">
|
||||
<meta name="robots" content="all">
|
||||
<link
|
||||
href="https://fonts.googleapis.com/css?family=Roboto:100,100i,300,300i,400,400i,500,500i,700,700i,900,900i&subset=latin-ext"
|
||||
rel="stylesheet">
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet"
|
||||
integrity="sha384-0evHe/X+R7YkIZDRvuzKMRqM+OrBnVFBL6DOitfPri4tjfHxaWutUpFmBp4vmVor" crossorigin="anonymous">
|
||||
<link rel="stylesheet" type="text/css" href="/libraries/font-awesome-6.1.1/css/all.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="/libraries/icheck-1.0.2/skins/square/aero.css">
|
||||
<link rel="stylesheet" type="text/css" href="/libraries/jquery-confirm/jquery-confirm.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="/libraries/datepicker/css/datepicker.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="/layout/style-css/style.css">
|
||||
<link rel="stylesheet" type="text/css" href="/libraries/dataTable/jquery.dataTables.min.css">
|
||||
|
||||
<script type="text/javascript" src="/libraries/jquery/jquery-3.6.0.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/js/bootstrap.bundle.min.js"
|
||||
integrity="sha384-pprn3073KE6tl6bjs2QrFaJGz5/SUsLqktiwsUTF55Jfv3qYSDhgCecCxMW52nD2" crossorigin="anonymous">
|
||||
</script>
|
||||
<script type="text/javascript" src="/libraries/icheck-1.0.2/icheck.min.js"></script>
|
||||
<script type="text/javascript" src="/libraries/jquery-confirm/jquery-confirm.min.js"></script>
|
||||
<script type="text/javascript" src="/libraries/datepicker/js/datepicker.min.js"></script>
|
||||
<script type="text/javascript" src="/libraries/datepicker/js/i18n/datepicker.pl.js"></script>
|
||||
<script type="text/javascript" src="/libraries/functions.js"></script>
|
||||
<script type="text/javascript" src="/libraries/qrcode-scanner/html5-qrcode.min.js"></script>
|
||||
<script type="text/javascript" src="/libraries/dataTable/jquery.dataTables.min.js"></script>
|
||||
<script type="text/javascript" src="https://cdn.datatables.net/1.12.1/js/dataTables.bootstrap5.min.js"></script>
|
||||
<!-- Google Tag Manager -->
|
||||
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
||||
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
||||
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
||||
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
||||
})(window,document,'script','dataLayer','GTM-TW9WCD9J');</script>
|
||||
<!-- End Google Tag Manager -->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- Google Tag Manager (noscript) -->
|
||||
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-TW9WCD9J"
|
||||
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
||||
<!-- End Google Tag Manager (noscript) -->
|
||||
<div class="top">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<a href="/tickets/main_view/" class="logo">
|
||||
<img src="/layout/images/logo-white.png" alt="">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main ">
|
||||
</div>
|
||||
<div class="footer">
|
||||
<div class="footer__top">
|
||||
<div class="opening-hours">
|
||||
<a href="https://brzezovka.pl/godziny-otwarcia">Zobacz godziny otwarcia</a><br />
|
||||
<a href="/tickets/regulamin/">Regulamin</a>
|
||||
</div>
|
||||
<div class="logo">
|
||||
<img src="/layout/images/logo.png" alt="logo">
|
||||
</div>
|
||||
<div class="location">
|
||||
<p class="title">Lokalizacja</p>
|
||||
<p class="adres">Domatków 36 F, 36-100 Kolbuszowa</p>
|
||||
<a href="https://www.google.pl/maps/place/Brzez%C3%B3vka+Kompleks+Turystyczny/@50.2187295,21.7485387,17z/data=!3m1!4b1!4m5!3m4!1s0x473d1958eafce313:0x655488625ac5319!8m2!3d50.2182642!4d21.7445448"
|
||||
class="navigate">Nawiguj do Brzezowki</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer__bottom">
|
||||
<p>Copyright © 2022 Brzezovka</p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
24
templates/site/regulamin-for-gifts.php
Normal file
24
templates/site/regulamin-for-gifts.php
Normal file
@@ -0,0 +1,24 @@
|
||||
<div id="regulamin_box">
|
||||
<div class="container">
|
||||
<div class="regulamin_box__wrapper">
|
||||
<h5>Regulamin biletów prezentowych</h5>
|
||||
<section class="regulamin__box_1 regulamin__box">
|
||||
<h5>BILETY NA PREZENT </h5>
|
||||
<ul>
|
||||
<li>Bilet na prezent (w wersji papierowej) ważny jest do końca sezonu w którym był wydany lub do daty wskazanej na voucherze.</li>
|
||||
<li>Bilet obejmuje atrakcje wskazane na voucherze.</li>
|
||||
<li>Bilet upoważnia do korzystania ze wszystkich atrakcji wskazanego parku bez dodatkowych opłat (nie wliczamy w to gastronomi oraz gier zręcznościowych).</li>
|
||||
<li>Bilet jest jednorazowy.</li>
|
||||
<li>Do biletów naliczana jest opłata za wysyłkę.</li>
|
||||
<li>Biletów prezentowych nie można przenieść na sezon inny niż wskazany na voucherze.</li>
|
||||
<li>Bilety prezentowe są imienne i należy mieć ze sobą dokument potwierdzający tożsamość.</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section class="regulamin__box_2 regulamin__box">
|
||||
<h5>BILETY PREZENTOWE - IDEALNY PREZENT DLA NAJBLIŻSZYCH, PRACOWNIKÓW, KONTRAHENTÓW, NA KONKURSY I LOTERIE</h5>
|
||||
<p>Bilet Prezent w ekskluzywnym opakowaniu, to wyjątkowy upominek dla najbliższych. Już teraz można zakupić bilety prezentowe ważne do końca sezonu w którym był wydany lub do daty wskazanej na voucherze. Bilet obejmuje wszystkie atrakcje Parku wskazanego na voucherze.</p>
|
||||
<p>Zapraszamy Firmy i Instytucje do zakupubiletów w formie biletów prezentowych, wówczas pracownicy mogą odwiedzić Park w dowolnym terminie bez konieczności organizacji wycieczki grupowej.</p>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
139
templates/site/regulamin.php
Normal file
139
templates/site/regulamin.php
Normal file
@@ -0,0 +1,139 @@
|
||||
<div id="regulamin_box">
|
||||
<div class="container">
|
||||
<div class="regulamin_box__wrapper">
|
||||
<h5>Regulamin sprzedaży biletów</h5>
|
||||
<h6>REGULAMIN SPRZEDAŻY BILETÓW PRZEZ ZAŁADKĘ „KUP BILET” NA STRONIE INTERNETOWEJ WWW.BRZEZOVKA.PL</h6>
|
||||
<section class="regulamin__box_1 regulamin__box">
|
||||
<h5>§1 Zasady ogólne</h5>
|
||||
<ul>
|
||||
<li>Fun&Sun Sp. z o.o. z siedzibą w Kolbuszowej, ul. Zbożowa 7, 36-100 Kolbuszowa, wpisana do rejestru przedsiębiorców Krajowego Rejestru Sądowego pod numerem KRS 0001035236, posiadająca NIP: 8141698219 i REGON: 525271764, działająca pod nazwą KTB BRZEZOVKA [dalej „KTB BRZEZOVKA”],
|
||||
prowadzi sprzedaż detaliczną biletów [dalej „Bilet”] za pośrednictwem strony
|
||||
internetowej KTB BRZEZOWKA https://bilety.brzezovka.pl/ [dalej „Strona”] oraz punktów
|
||||
sprzedażowych [dalej „Punkt”], której zasady reguluje niniejszy regulamin [dalej
|
||||
„Regulamin”]. Regulamin dotyczy sprzedaży zarówno na imprezy własne jak i na
|
||||
imprezy organizowane przez podmioty trzecie i w tym zakresie BRZEZOVKA działa
|
||||
jako pośrednik w imieniu i na rzecz Organizatora.</li>
|
||||
<li>Przez Bilet rozumiany jest dokument uprawniający do udziału w wydarzeniu [dalej
|
||||
„Wydarzenie”].</li>
|
||||
<li>Regulamin jest integralną częścią umowy sprzedaży zawieranej z Klientem.</li>
|
||||
<li>Ceny podane na Stronie są cenami brutto (zawierają podatek VAT).</li>
|
||||
<li>Przed zakupem Klient zobowiązany jest zapoznać się z regulaminem Wydarzenia na
|
||||
które wystawiony jest bilet, regulaminem obiektu na którym Wydarzenie się odbywa
|
||||
oraz niniejszym Regulaminem Sprzedaży. Poprzez zakup biletu uczestnik akceptuje
|
||||
owe regulaminy.</li>
|
||||
<li>Termin realizacji biletów upływa z końcem sezonu w którym dokonano zakupu, chyba że zasady danej promocji określają inny termin podany w informacji dołączonej do promocji.</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section class="regulamin__box_2 regulamin__box">
|
||||
<h5>§2 Zamówienie i płatność</h5>
|
||||
<ul>
|
||||
<li>Zamówienia można składać poprzez formularz dostępny na Stronie,</li>
|
||||
<li>Opłatę za Bilet należy uiścić przez Stronę, za pomocą Przelewy24;</li>
|
||||
<li>Bilety będą wygenerowane bezpośrednio po zakupie biletu w formie kodu QR.</li>
|
||||
<li>Za zakupione Bilety można otrzymać fakturę AT.
|
||||
W przypadku zakupu Biletu przez Stronę, należy zgłosić dane do faktury oraz podać numer zamówienia
|
||||
wysyłając
|
||||
wiadomość na adres info@brzezovka.pl. Faktura zostanie wysłana w pliku typu PDF na adres e-mail podany w
|
||||
profilu Klienta.</li>
|
||||
<li>Klient zobowiązany jest do zachowania dowodu zakupu Biletu – paragonu fiskalnego
|
||||
lub faktury VAT.</li>
|
||||
<li>Szczegółowe warunki zakupu przez Stronę:
|
||||
Warunkiem realizacji zamówienia poprzez Stronę jest podanie wszystkich wymaganych danych pozwalających
|
||||
na
|
||||
weryfikację Klienta i odbiorcy Biletu. KTB BRZEZOVKA potwierdza przyjęcie zamówienia za pomocą poczty
|
||||
email.
|
||||
<p>- Dla stron wiążące są informacje zawarte na Stronie podczas zamawiania Biletu, w szczególności: cena
|
||||
i
|
||||
charakterystyka Biletu.</p>
|
||||
<p>- Informacje znajdujące się na Stronie nie stanowią oferty w rozumieniu Kodeksu Cywilnego. Klient
|
||||
składając zamówienie składa ofertę zakupu określonego Biletu. Do zawarcia umowy sprzedaży dochodzi w
|
||||
momencie odnotowania wpłaty za zarezerwowane Bilety zgodnie z ustaloną ceną.</p>
|
||||
<p>- KTB BRZEZOVKA nie bierze odpowiedzialności za błędnie wpisane przez klienta dane do formularza.</p>
|
||||
</li>
|
||||
<li>Zamówienie uważa się za złożone w momencie gdy Klient wybierze rodzaj Biletów, określi ich ilość,
|
||||
uiści
|
||||
zapłatę.</li>
|
||||
<li>Zamówienie zostanie automatycznie anulowane w przypadku jego nieopłacenia:
|
||||
<p>- w terminie 2 dni od dnia złożenia zamówienia na Stronie, gdy transakcja ma być wykonana za pomocą
|
||||
systemu przelewy24, a w tym terminie nie będzie pozytywnej autoryzacji płatności.</p>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section class="regulamin__box_3 regulamin__box">
|
||||
<h5>§3 Odbiór biletu</h5>
|
||||
<ul>
|
||||
<li>Warunkiem wydania Biletu jest zapłata za Bilet.</li>
|
||||
<li>Klient zobowiązany jest do sprawdzenia zgodności informacji umieszczonych na Bilecie z danymi
|
||||
zawartymi
|
||||
w złożonym przez Klienta zamówieniu.</li>
|
||||
<li>Bilet zamówiony przez Stronę KTB BRZEZOVKA generuje się bezpośrednio po autoryzacji płatności.</li>
|
||||
<li>Bilet nieczytelny, zniszczony lub uszkodzony w taki sposób, iż nie jest możliwe jego odczytanie nie
|
||||
uprawnia do uczestniczenia w Wydarzeniu i zostanie uznany za nieważny.</li>
|
||||
<li>Bilety zakupione w Punkcie, Bilety zamówione na Stronie i przesłane Klientowi, Bilety zamówione na
|
||||
Stronie i odebrane przed Wydarzeniem, nie są spersonalizowane.</li>
|
||||
<li>KTB BRZEZOVKA nie ponosi odpowiedzialności za skutki nieuprawnionego powielenia raz otrzymanego Biletu
|
||||
domowego przez rezerwującego lub osoby trzecie, którym udostępnił on dane otrzymanego Biletu
|
||||
elektronicznego w formie kodu QR.</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section class="regulamin__box_4 regulamin__box">
|
||||
<h5>§4 Odwołanie lub zmiana</h5>
|
||||
<ul>
|
||||
<li>Zwroty biletów przyjmowane są w wypadku odwołania imprezy oraz w wypadku zmiany programu imprezy,
|
||||
zmiany
|
||||
miejsca lub terminu odbycia się imprezy. Organizator każdorazowo ogłasza informację o możliwości i
|
||||
terminach zwrotu biletów na Stronie.</li>
|
||||
<li>Podstawą zwrócenia Biletu jest przedstawienie przez Klienta dowodu zakupu towaru (paragon fiskalny lub
|
||||
faktura VAT).</li>
|
||||
<li>Zwrotu Biletów dokonujemy poprzez kontakt: e-mail na adres <a
|
||||
href="mailto:info@brzezowka.pl">info@brzezowka.pl</a>, telefonicznie na numer 781 116 909 lub
|
||||
osobiście
|
||||
w Punkcie określonym przez KTB BRZEZOVKA, po uprzednim kontakcie.</li>
|
||||
<li>KTB BRZEZOVKA informuje, że zgodnie z art. 38 pkt. 12 ustawy z dnia 30 maja 2014 r. o prawach
|
||||
konsumenta
|
||||
(DzU 2014, poz.827), Klientowi nie przysługuje prawo od odstąpienia od umowy zawartej na odległość w
|
||||
trybie określonym w art. 27 ww. ustawy.</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section class="regulamin__box_5 regulamin__box">
|
||||
<h5>§5 Ochrona danych i własność intelektualna</h5>
|
||||
<ul>
|
||||
<li>Składając zamówienie Klient wyraża zgodę na przetwarzanie jego danych osobowych wyłącznie w celu
|
||||
realizacji zamówienia.</li>
|
||||
<li>Klient może również wyrazić odrębną zgodę na otrzymywanie od KTB BRZEZOVKA materiałów reklamowo -
|
||||
promocyjnych, w tym biuletynu handlowego. Taka zgoda może być w każdej chwili cofnięta.</li>
|
||||
<li>Klient ma prawo wglądu do swoich danych i ich korekty.</li>
|
||||
<li>Zabrania się wykorzystywania jakichkolwiek materiałów publikowanych na Stronie (w tym zdjęć i opisów
|
||||
biletów) bez pisemnej zgody właściciela Strony.</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section class="regulamin__box_6 regulamin__box">
|
||||
<h5>§6 Wejście w życie i zmiany</h5>
|
||||
<ul>
|
||||
<li>Regulamin wchodzi w życie z dniem publikacji na Stronie.</li>
|
||||
<li>KTB BRZEZOWKA zastrzega sobie możliwość zmian w Regulaminie, które wchodzą w życie z dniem ich
|
||||
publikacji na Stronie.</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section class="regulamin__box_7 regulamin__box">
|
||||
<h5>§7 Uwagi końcowe</h5>
|
||||
<ul>
|
||||
<li>KTB BRZEZOVKA dokłada wszelkich starań, by usługi świadczone w ramach Strony były na najwyższym
|
||||
poziomie, jednakże nie wyklucza możliwości czasowego zawieszenia dostępności Strony przypadku
|
||||
konieczności
|
||||
przeprowadzenia prac konserwacyjnych. Klient winien sygnalizować wszelkie nieprawidłowości w
|
||||
funkcjonowaniu Strony.</li>
|
||||
<li>KTB BRZEZOVKA nie ponosi odpowiedzialności za blokowanie przez administratorów serwerów pocztowych
|
||||
przesyłania wiadomości na adres email wskazany przez Klienta oraz za usuwanie i blokowanie emaili przez
|
||||
oprogramowanie zainstalowane na komputerze używanym przez Klienta.</li>
|
||||
<li>Odpowiedzialność za przebieg Wydarzenia na które sprzedawane są Bilety ponosi jego organizator.</li>
|
||||
<li>W sprawach nieuregulowanych w niniejszym Regulaminie zastosowanie będą miały przepisy Kodeksu
|
||||
Cywilnego.
|
||||
</li>
|
||||
<li>W razie sporów z Klientem, sądem właściwym do ich rozpoznawania jest sąd powszechny właściwy na
|
||||
podstawie obowiązujących przepisów.</li>
|
||||
</ul>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
33
templates/tickets/add-ticket.php
Normal file
33
templates/tickets/add-ticket.php
Normal file
@@ -0,0 +1,33 @@
|
||||
<script>
|
||||
$( 'body' ).on( 'click', '.article_file_edit', function()
|
||||
{
|
||||
var file_name = $( this ).val();
|
||||
var file_id = $( this ).attr( 'file_id' );
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: '/admin/ajax.php',
|
||||
data:
|
||||
{
|
||||
a: 'article_file_name_change',
|
||||
file_id: file_id,
|
||||
file_name: file_name
|
||||
},
|
||||
beforeSend: function()
|
||||
{
|
||||
$( '#overlay' ).show();
|
||||
},
|
||||
success: function( data )
|
||||
{
|
||||
$( '#overlay' ).hide();
|
||||
|
||||
response = jQuery.parseJSON( data );
|
||||
|
||||
if ( response.status !== 'ok' )
|
||||
create_error( response.msg );
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
57
templates/tickets/basket-form.php
Normal file
57
templates/tickets/basket-form.php
Normal file
@@ -0,0 +1,57 @@
|
||||
<table>
|
||||
<tr>
|
||||
<th>
|
||||
<h3>BILETY</h3>
|
||||
</th>
|
||||
<th>
|
||||
<h3>CENA</h3>
|
||||
</th>
|
||||
<th>
|
||||
<h3>WARTOŚĆ</h3>
|
||||
</th>
|
||||
<th>
|
||||
<h3>ZMIENIĆ ILOŚĆ</h3>
|
||||
</th>
|
||||
<th>
|
||||
<h3>USUŃ</h3>
|
||||
</th>
|
||||
</tr>
|
||||
<?php foreach ($this->cart as $ticket_id => $combinations) : ?>
|
||||
<?php foreach ($combinations as $key => $value) : ?>
|
||||
<tr>
|
||||
<td><?= $this->settings['tickets'][$ticket_id]['name']; ?> (x<?= $value["quantity"]; ?>)</td>
|
||||
<td><?= $value['ticket_price']; ?> zł</td>
|
||||
<td><?= $value['ticket_price'] * $value["quantity"]; ?> zł</td>
|
||||
<td>
|
||||
<?php if ( $ticket_id != 'gift-price' and $ticket_id != 'ticket-protection' ):?>
|
||||
<button class="btn_t1 add" ticket_id="<?= $ticket_id; ?>" combination_key="<?= $key; ?>">
|
||||
<i class="fa-solid fa-plus"></i>
|
||||
</button>
|
||||
<button class="btn_t1 subtract" ticket_id="<?= $ticket_id; ?>" combination_key="<?= $key; ?>">
|
||||
<i class="fa-solid fa-minus"></i>
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
<td>
|
||||
<?php if ( $ticket_id != 'gift-price' ):?>
|
||||
<? if ( $ticket_id == 'ticket-protection' ) : ?>
|
||||
<a href="/tickets/basket_view/ticket_protection=false" class="btn_t1">
|
||||
<i class="fa-solid fa-trash-can"></i>
|
||||
</a>
|
||||
<? else : ?>
|
||||
<button class="btn_t1 delete" ticket_id="<?= $ticket_id; ?>" combination_key="<?= $key; ?>">
|
||||
<i class="fa-solid fa-trash-can"></i>
|
||||
</button>
|
||||
<? endif; ?>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
<?php endforeach; ?>
|
||||
</table>
|
||||
<div class="basket_protection">
|
||||
<a href="/tickets/basket_view/ticket_protection=true" class="ticket_protection">Dodaj ochronę kupującego (5 zł / bilet)</a>
|
||||
<div class="basket_protection__text">
|
||||
<p>Wszystkie bilety zostaną objęte ochroną kupującego. Pozwoli Ci to na zmianę terminu biletu.</p>
|
||||
</div>
|
||||
</div>
|
||||
19
templates/tickets/basket-summary.php
Normal file
19
templates/tickets/basket-summary.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<div class="basket_summary__wrapper">
|
||||
<h2>Suma:</h2>
|
||||
<?php
|
||||
$finalPrice = 0;
|
||||
foreach ( $this -> cart as $data => $value )
|
||||
{
|
||||
foreach ( $value as $key => $val )
|
||||
{
|
||||
$price = $val['ticket_price'];
|
||||
$quantity = $val['quantity'];
|
||||
|
||||
$finalPrice += $price * $quantity;
|
||||
}
|
||||
}
|
||||
?>
|
||||
<p><?= $finalPrice; ?> zł</p>
|
||||
|
||||
<button class="buy-btn" type="submit">Płacę</button>
|
||||
</div>
|
||||
294
templates/tickets/basket-view.php
Normal file
294
templates/tickets/basket-view.php
Normal file
@@ -0,0 +1,294 @@
|
||||
<?php if(empty($_SESSION['basket'])){
|
||||
header ('location: /tickets/main_view/');
|
||||
exit;
|
||||
} else {
|
||||
$basket = \S::get_session('basket');
|
||||
|
||||
$giftKeys = array_filter(array_keys($basket), function ($key) {
|
||||
return strpos($key, "gift-price") !== false;
|
||||
});
|
||||
}
|
||||
?>
|
||||
|
||||
<div id="basket_page">
|
||||
<div class="basket_content">
|
||||
<div class="container">
|
||||
<div class="box_01">
|
||||
<table>
|
||||
<tr>
|
||||
<th>
|
||||
<h3>BILETY</h3>
|
||||
</th>
|
||||
<th>
|
||||
<h3>CENA</h3>
|
||||
</th>
|
||||
<th>
|
||||
<h3>WARTOŚĆ</h3>
|
||||
</th>
|
||||
<th>
|
||||
<h3>ZMIENIĆ ILOŚĆ</h3>
|
||||
</th>
|
||||
<th>
|
||||
<h3>USUŃ</h3>
|
||||
</th>
|
||||
</tr>
|
||||
<?php foreach ($this->cart as $ticket_id => $combinations) : ?>
|
||||
<?php foreach ($combinations as $key => $value) : ?>
|
||||
<tr>
|
||||
<td><?= $this->settings['tickets'][$ticket_id]['name']; ?> (x<?= $value["quantity"]; ?>)</td>
|
||||
<td><?= $value['ticket_price']; ?> zł</td>
|
||||
<td><?= $value['ticket_price'] * $value["quantity"]; ?> zł</td>
|
||||
<td>
|
||||
<?php if ( $ticket_id != 'gift-price' and $ticket_id != 'ticket-protection' ):?>
|
||||
<button class="btn_t1 add" ticket_id="<?= $ticket_id; ?>" combination_key="<?= $key; ?>">
|
||||
<i class="fa-solid fa-plus"></i>
|
||||
</button>
|
||||
<button class="btn_t1 subtract" ticket_id="<?= $ticket_id; ?>" combination_key="<?= $key; ?>">
|
||||
<i class="fa-solid fa-minus"></i>
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
<td>
|
||||
<?php if ( $ticket_id != 'gift-price' ):?>
|
||||
<button class="btn_t1 delete" ticket_id="<?= $ticket_id; ?>" combination_key="<?= $key; ?>">
|
||||
<i class="fa-solid fa-trash-can"></i>
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
<?php endforeach; ?>
|
||||
</table>
|
||||
<div class="basket_protection">
|
||||
<a href="/tickets/basket_view/ticket_protection=true" class="ticket_protection">Dodaj ochronę kupującego (5 zł / bilet)</a>
|
||||
<div class="basket_protection__text">
|
||||
<p>Wszystkie bilety zostaną objęte ochroną kupującego. Pozwoli Ci to na zmianę terminu biletu.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box_02">
|
||||
<form action="/tickets/basketFormHandler/" method="POST">
|
||||
<div class="row">
|
||||
<div class="col-lg-8 col-md-8 col-xs-12 basket_user_data">
|
||||
<div class="basket_user_data__wrapper">
|
||||
<h2>TWOJE DANE</h2>
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="name" class="col-lg-4 col-form-label">Imię*</label>
|
||||
<div class="col-lg-8">
|
||||
<input type="text" class="form-control" id="name" name="name" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="surname" class="col-lg-4 col-form-label">Nazwisko*</label>
|
||||
<div class="col-lg-8">
|
||||
<input type="text" class="form-control" id="surname" name="surname" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="email" class="col-lg-4 col-form-label">Email*</label>
|
||||
<div class="col-lg-8">
|
||||
<input type="email" class="form-control" id="email" name="email" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="zip_code" class="col-lg-4 col-form-label">Kod pocztowy<span class="form-vat-option">*</span></label>
|
||||
<div class="col-lg-8">
|
||||
<input type="text" class="form-control" id="zip_code" name="zip_code">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="city" class="col-lg-4 col-form-label">Miejscowość<span class="form-vat-option">*</span></label>
|
||||
<div class="col-lg-8">
|
||||
<input type="text" class="form-control" id="city" name="city">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="street" class="col-lg-4 col-form-label">Ulica<span class="form-vat-option">*</span></label>
|
||||
<div class="col-lg-8">
|
||||
<input type="text" class="form-control" id="street" name="street">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php if (!empty($giftKeys)) : ?>
|
||||
<div class="form-group row mb-lg-2" id="gift_address_box">
|
||||
<label for="gift_address" class="col-lg-4 col-form-label">Dane do wysyłki biletu prezentowego*</label>
|
||||
<div class="col-lg-8">
|
||||
<textarea rows="5" type="text" class="form-control" id="gift_address" name="gift_address" required></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="vat" class="col-lg-4 form-check-label"><strong>Chcę otrzymać fakturę VAT</strong></label>
|
||||
<div class="col-lg-8">
|
||||
<input type="checkbox" class="form-check-input" id="vat" name="vat">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-vat-box">
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="company_name" class="col-lg-4 col-form-label">Nazwa firmy*</label>
|
||||
<div class="col-lg-8">
|
||||
<input type="text" class="form-control" id="company_name" name="company_name">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="nip" class="col-lg-4 col-form-label">NIP*</label>
|
||||
<div class="col-lg-8">
|
||||
<input type="text" class="form-control" id="nip" name="nip">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" value="" id="regulamin" required>
|
||||
<label class="form-check-label" for="regulamin">
|
||||
*akceptuję postanowienia <a href="/tickets/regulamin/">regulaminu</a>, oraz <a href="/tickets/regulamin_biletow_prezentowych/">regulaminu biletów prezentowych</a>.
|
||||
</label>
|
||||
<div class="invalid-feedback">
|
||||
Musisz wyrazić zgodę przed przesłaniem.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4 col-md-4 col-xs-12 basket_summary">
|
||||
<div class="basket_summary__wrapper">
|
||||
<h2>Suma:</h2>
|
||||
<?php
|
||||
$finalPrice = 0;
|
||||
foreach ( ( $this -> cart ) as $data => $value )
|
||||
{
|
||||
foreach ( $value as $key => $val )
|
||||
{
|
||||
$price = $val['ticket_price'];
|
||||
$quantity = $val['quantity'];
|
||||
|
||||
$finalPrice += $price * $quantity;
|
||||
}
|
||||
}
|
||||
?>
|
||||
<p><?= $finalPrice; ?> zł</p>
|
||||
<button class="buy-btn" type="submit">Płacę</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
// add
|
||||
$('body').on('click', '.add', function() {
|
||||
var ticket_id = $(this).attr('ticket_id');
|
||||
var data_combination_key = $(this).attr('combination_key');
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: '/tickets/ticket_add/',
|
||||
data: {
|
||||
ticket_id: ticket_id,
|
||||
diffdays: data_combination_key,
|
||||
basket_step_1: true
|
||||
},
|
||||
success: function(data) {
|
||||
response = jQuery.parseJSON(data);
|
||||
$('.box_01').html(response.basket_form);
|
||||
$('.box_02 .basket_summary').html(response.basket_summary);
|
||||
}
|
||||
});
|
||||
});
|
||||
// subtract
|
||||
$('body').on('click', '.subtract', function() {
|
||||
var ticket_id = $(this).attr('ticket_id');
|
||||
var data_combination_key = $(this).attr('combination_key');
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: '/tickets/ticket_subtract/',
|
||||
data: {
|
||||
ticket_id: ticket_id,
|
||||
diffdays: data_combination_key,
|
||||
basket_step_1: true,
|
||||
},
|
||||
success: function(data) {
|
||||
response = jQuery.parseJSON(data);
|
||||
$('.box_01').html(response.basket_form);
|
||||
$('.box_02 .basket_summary').html(response.basket_summary);
|
||||
giftAddressHandler()
|
||||
if (response.cart_count <= 0) {
|
||||
window.location.replace("/tickets/main_view/");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
//remove
|
||||
$('body').on('click', '.delete', function() {
|
||||
var ticket_id = $(this).attr('ticket_id');
|
||||
var data_combination_key = $(this).attr('combination_key');
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: '/tickets/ticket_remove/',
|
||||
data: {
|
||||
ticket_id: ticket_id,
|
||||
diffdays: data_combination_key,
|
||||
basket_step_1: true
|
||||
},
|
||||
success: function(data) {
|
||||
response = jQuery.parseJSON(data);
|
||||
$('.box_01').html(response.basket_form);
|
||||
$('.box_02 .basket_summary').html(response.basket_summary);
|
||||
giftAddressHandler()
|
||||
if (response.cart_count <= 0) {
|
||||
window.location.replace("/tickets/main_view/");
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// vat
|
||||
$('body').on('click', '#vat', function() {
|
||||
if(this.checked) {
|
||||
$('.form-vat-box').slideDown()
|
||||
$('#nip').prop("required", true)
|
||||
$('#company_name').prop("required", true)
|
||||
$('#zip_code').prop("required", true)
|
||||
$('#city').prop("required", true)
|
||||
$('#street').prop("required", true)
|
||||
$('.form-vat-option').css("opacity", "1")
|
||||
} else {
|
||||
$('.form-vat-box').slideUp()
|
||||
$('#nip').prop("required", false)
|
||||
$('#company_name').prop("required", false)
|
||||
$('#zip_code').prop("required", false)
|
||||
$('#city').prop("required", false)
|
||||
$('#street').prop("required", false)
|
||||
$('.form-vat-option').css("opacity", "0")
|
||||
}
|
||||
})
|
||||
|
||||
function giftAddressHandler() {
|
||||
let hasGift = false;
|
||||
|
||||
$('.box_01 table tr button[ticket_id]').each(function(index, button) {
|
||||
const ticketId = $(button).attr('ticket_id');
|
||||
if (ticketId.includes('gift') && ticketId !== 'gift-price') {
|
||||
hasGift = true;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
if (hasGift) {
|
||||
} else {
|
||||
$('#gift_address_box').remove()
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
4
templates/tickets/disabled-sell.php
Normal file
4
templates/tickets/disabled-sell.php
Normal file
@@ -0,0 +1,4 @@
|
||||
<div class="alert alert-danger" style="width: 100%; max-width: 800px; margin: 250px auto 0; text-align: center;">
|
||||
Sprzedaż biletów jest obecnie wyłączona.<br/>
|
||||
Zapraszamy do zakupu biletów w kasach biletowych.
|
||||
</div>
|
||||
362
templates/tickets/main-view.php
Normal file
362
templates/tickets/main-view.php
Normal file
@@ -0,0 +1,362 @@
|
||||
<?php
|
||||
if (isset($_POST['selected_date'])) {
|
||||
$selected_date = $_POST['selected_date'];
|
||||
$selected = DateTime::createFromFormat('d-m-Y', $selected_date);
|
||||
$today = new DateTime();
|
||||
|
||||
$interval = $today->diff($selected);
|
||||
$days_diff = (int)$interval->format('%r%a');
|
||||
|
||||
function date_price($item, $days_diff) {
|
||||
if($days_diff == 0) {
|
||||
$price = $item['price'] + $item['dynamic_prices']['day0'];
|
||||
return $price . ' zł';
|
||||
}
|
||||
elseif ($days_diff == 1 || $days_diff == 2) {
|
||||
$price = $item['price'] + $item['dynamic_prices']['day1_2'];
|
||||
return $price . ' zł';
|
||||
}
|
||||
elseif ($days_diff >= 3 && $days_diff <= 7) {
|
||||
$price = $item['price'] + $item['dynamic_prices']['day3_7'];
|
||||
return $price . ' zł';
|
||||
}
|
||||
else {
|
||||
$price = $item['price'];
|
||||
return $price . ' zł';
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/flatpickr"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/flatpickr/dist/l10n/pl.js"></script>
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css">
|
||||
|
||||
<div class="tickets_calendar container" >
|
||||
<form id="dateForm" method="POST">
|
||||
<div class="_title">Wybierz datę przyjazdu:</div>
|
||||
<input type="text" id="flatpickr" name="selected_date" value="<?= isset($_POST['selected_date']) ? htmlspecialchars($_POST['selected_date']) : ''; ?>" style="display: none;" >
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<? if (isset($_POST['selected_date'])) : ?>
|
||||
<div class="tickets container">
|
||||
|
||||
<!-- <div class="sale-box">
|
||||
<h2>Do 31 marca ceny na wszystkie bilety <span>-20%</span></h2>
|
||||
</div> -->
|
||||
|
||||
<!-- Bilet ulgowy -->
|
||||
<div class="ticket-container">
|
||||
<div class="title-container">
|
||||
<h2 class="title">Bilet ulgowy</h2>
|
||||
<p class="description">do 140cm wzrostu</p>
|
||||
</div>
|
||||
<? foreach($this -> settings['bilety-ulgowe'] as $key => $item) : ?>
|
||||
<div class="ticket">
|
||||
<div class="ticket-description ticket-description--<?= $this -> settings['tickets'][$item]['color']; ?>">
|
||||
<h3 class="ticket__name"><?= explode( '-', $this -> settings['tickets'][$item]['name'])[0]; ?></h3>
|
||||
<p class="description">bilet całodniowy</p>
|
||||
|
||||
<? if($this -> settings['tickets'][$item]['alert']) : ?>
|
||||
<p class="ticket-alert"><?= $this -> settings['tickets'][$item]['alert']; ?></p>
|
||||
<? endif; ?>
|
||||
</div>
|
||||
<h3 class="price">
|
||||
<?php
|
||||
echo date_price(
|
||||
$this -> settings['tickets'][$item],
|
||||
$days_diff
|
||||
);
|
||||
?>
|
||||
</h3>
|
||||
<!-- <h3 class="price"><?= $this -> settings['tickets'][$item]['price']; ?> zł</h3> -->
|
||||
<div class="ticket-quantity">
|
||||
<button class="add button" ticket_id="<?= $item; ?>"><i class="fa fa-plus"></i></button>
|
||||
<span>1x</span>
|
||||
<button class="subtract button" ticket_id="<?= $item; ?>" diffdays="<?= $days_diff; ?>"><i class="fa fa-minus"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<? endforeach; ?>
|
||||
</div>
|
||||
|
||||
<!-- Bilet normalny -->
|
||||
<div class="ticket-container">
|
||||
<div class="title-container">
|
||||
<h2 class="title">Bilet normalny</h2>
|
||||
<p class="description">od 140cm wzrostu</p>
|
||||
</div>
|
||||
|
||||
<? foreach($this -> settings['bilety-normalne'] as $key => $item) : ?>
|
||||
<div class="ticket">
|
||||
<div class="ticket-description ticket-description--<?= $this -> settings['tickets'][$item]['color']; ?>">
|
||||
<h3 class="ticket__name"><?= explode( '-', $this -> settings['tickets'][$item]['name'])[0]; ?></h3>
|
||||
<p class="description">bilet całodniowy</p>
|
||||
|
||||
<? if($this -> settings['tickets'][$item]['alert']) : ?>
|
||||
<p class="ticket-alert"><?= $this -> settings['tickets'][$item]['alert']; ?></p>
|
||||
<? endif; ?>
|
||||
</div>
|
||||
<h3 class="price">
|
||||
<?php
|
||||
echo date_price(
|
||||
$this -> settings['tickets'][$item],
|
||||
$days_diff
|
||||
);
|
||||
?>
|
||||
</h3>
|
||||
<div class="ticket-quantity">
|
||||
<button class="add button" ticket_id="<?= $item; ?>"><i class="fa fa-plus"></i></button>
|
||||
<span>1x</span>
|
||||
<button class="subtract button" ticket_id="<?= $item; ?>" diffdays="<?= $days_diff; ?>"><i class="fa fa-minus"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<? endforeach; ?>
|
||||
</div>
|
||||
|
||||
<? if($selected >= DateTime::createFromFormat('d-m-Y', '28-06-2025')): ?>
|
||||
<!-- Bilet ALL OPEN -->
|
||||
<div class="ticket-container">
|
||||
<div class="title-container">
|
||||
<h2 class="title">Bilet ALL OPEN</h2>
|
||||
<p class="description">bilety do wszystkich parków</p>
|
||||
</div>
|
||||
|
||||
<? foreach($this -> settings['bilety-all-open'] as $key => $item) : ?>
|
||||
<? $pattern = "/All Open -/"; ?>
|
||||
<div class="ticket">
|
||||
<div class="ticket-description ticket-description--<?= $this -> settings['tickets'][$item]['color']; ?>">
|
||||
<!-- <h3 class="ticket__name"><?= explode( '-', $this -> settings['tickets'][$item]['name'])[1]; ?></h3> -->
|
||||
<h3 class="ticket__name"><?= preg_replace($pattern, '', $this -> settings['tickets'][$item]['name']); ?></h3>
|
||||
<p class="description">bilet całodniowy</p>
|
||||
</div>
|
||||
<h3 class="price">
|
||||
<?php
|
||||
echo date_price(
|
||||
$this -> settings['tickets'][$item],
|
||||
$days_diff
|
||||
);
|
||||
?>
|
||||
</h3>
|
||||
<div class="ticket-quantity">
|
||||
<button class="add button" ticket_id="<?= $item; ?>"><i class="fa fa-plus"></i></button>
|
||||
<span>1x</span>
|
||||
<button class="subtract button" ticket_id="<?= $item; ?>" diffdays="<?= $days_diff; ?>"><i class="fa fa-minus"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<? endforeach; ?>
|
||||
</div>
|
||||
<? endif; ?>
|
||||
|
||||
<? if($selected >= DateTime::createFromFormat('d-m-Y', '28-06-2025')): ?>
|
||||
<div class="ticket-container">
|
||||
<div class="title-container">
|
||||
<h2 class="title">Bilety rodzinne</h2>
|
||||
<p class="description">bilety dla rodzin</p>
|
||||
</div>
|
||||
<? foreach($this -> settings['bilety-rodzinne'] as $key => $item) : ?>
|
||||
<div class="ticket">
|
||||
<div class="ticket-description ticket-description--<?= $this -> settings['tickets'][$item]['color']; ?>">
|
||||
<h3 class="ticket__name"><?= $this -> settings['tickets'][$item]['name']; ?></h3>
|
||||
<p class="description">bilet całodniowy</p>
|
||||
</div>
|
||||
<h3 class="price">
|
||||
<?php
|
||||
echo date_price(
|
||||
$this -> settings['tickets'][$item],
|
||||
$days_diff
|
||||
);
|
||||
?>
|
||||
</h3>
|
||||
<div class="ticket-quantity">
|
||||
<button class="add button" ticket_id="<?= $item; ?>"><i class="fa fa-plus"></i></button>
|
||||
<span>1x</span>
|
||||
<button class="subtract button" ticket_id="<?= $item; ?>" diffdays="<?= $days_diff; ?>"><i class="fa fa-minus"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<? endforeach; ?>
|
||||
</div>
|
||||
<? endif; ?>
|
||||
|
||||
<div class="ticket-container">
|
||||
<div class="title-container">
|
||||
<h2 class="title">Karnety</h2>
|
||||
<p class="description">Na cały sezon</p>
|
||||
</div>
|
||||
<? foreach($this -> settings['karnety'] as $key => $item) : ?>
|
||||
<div class="ticket">
|
||||
<div class="ticket-description ticket-description--<?= $this -> settings['tickets'][$item]['color']; ?>">
|
||||
<h3 class="ticket__name"><?= $this -> settings['tickets'][$item]['name']; ?></h3>
|
||||
<!-- <p class="description">bilet całodniowy</p> -->
|
||||
</div>
|
||||
<h3 class="price">
|
||||
<?php
|
||||
echo date_price(
|
||||
$this -> settings['tickets'][$item],
|
||||
$days_diff
|
||||
);
|
||||
?>
|
||||
</h3>
|
||||
<div class="ticket-quantity">
|
||||
<button class="add button" ticket_id="<?= $item; ?>"><i class="fa fa-plus"></i></button>
|
||||
<span>1x</span>
|
||||
<button class="subtract button" ticket_id="<?= $item; ?>" diffdays="<?= $days_diff; ?>"><i class="fa fa-minus"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<? endforeach; ?>
|
||||
</div>
|
||||
</div>
|
||||
<? endif; ?>
|
||||
|
||||
<div class="bottom-info">
|
||||
<div class="bottom-info__description container">
|
||||
<p>KASA NIE ZWRACA PIENIĘDZY ZA NIEWYKORZYSTANE ATRAKCJE ZE WZGLĘDU NA ZŁĄ POGODĘ, NAGŁĄ AWARIĘ TECHNICZNĄ ORAZ
|
||||
OGRANICZONĄ PRZEPUSTOWOŚĆ DANYCH ATRAKCJI.</p>
|
||||
<p>Przed zakupem biletu do Kompleksu Turystycznego BRZEZÓVKA należy zapoznać się z
|
||||
<a style="color: #72b81b;" href="/tickets/regulamin/">regulaminem</a>, oraz <a style="color: #72b81b;" href="/tickets/regulamin_biletow_prezentowych/">regulaminem biletów prezentowych</a>.</p>
|
||||
</div>
|
||||
<div class="bottom-info__background "></div>
|
||||
</div>
|
||||
<div class="shopping-cart-container">
|
||||
<div class=" <?= $this->cart ? 'shopping-cart shopping-cart--active' : "shopping-cart" ?>">
|
||||
<div class="basket"><i class="fa-solid fa-ticket"></i></div>
|
||||
<div class="quantity">
|
||||
<p>Bilety</p>
|
||||
</div>
|
||||
<ul class="tickets__list">
|
||||
<?php
|
||||
$summary = 0;
|
||||
foreach ($this->cart as $ticket_id => $combinations) :
|
||||
foreach ($combinations as $key => $value) :
|
||||
$summary_ticket = $value['ticket_price'] * $value['quantity'];
|
||||
$summary += $summary_ticket;
|
||||
?>
|
||||
<li class="ticket">
|
||||
<p class="ticket__description">
|
||||
<?= $this->settings['tickets'][$ticket_id]['name'] . ' <span>x' . $value["quantity"] . '</span>' ?>
|
||||
</p>
|
||||
<p class="ticket__price">cena: <span><?= $summary_ticket ?> zł</span> </p>
|
||||
<button class="ticket__button" data-ticket-id="<?= $ticket_id ?>" data-combination-key="<?= $key ?>">x</button>
|
||||
</li>
|
||||
<?php
|
||||
endforeach;
|
||||
endforeach;
|
||||
?>
|
||||
</ul>
|
||||
<div class="sum-section">
|
||||
<p>Łączna suma:</p>
|
||||
<p class="sum"><?= $summary ?> zł</p>
|
||||
</div>
|
||||
<a href="/tickets/basket_view/" class="buy-btn">Kup teraz</a>
|
||||
<button class="off-btn">x</button>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
|
||||
$('body').on('click', '.shopping-cart .off-btn', function() {
|
||||
$('.shopping-cart').removeClass('shopping-cart--active');
|
||||
});
|
||||
|
||||
//add
|
||||
$('body').on('click', '.add', function() {
|
||||
var ticket_id = $(this).attr('ticket_id');
|
||||
var date = $('#flatpickr').val();
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: '/tickets/ticket_add/',
|
||||
data: {
|
||||
ticket_id: ticket_id,
|
||||
date: date,
|
||||
},
|
||||
beforeSend: function() {},
|
||||
success: function(data) {
|
||||
response = jQuery.parseJSON(data);
|
||||
$('.shopping-cart-container').html(response.shopping_cart);
|
||||
|
||||
// if (!$('.shopping-cart').hasClass('shopping-cart-active'))
|
||||
// $('.shopping-cart').addClass('shopping-cart--active');
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
//subtract
|
||||
$('body').on('click', '.subtract', function() {
|
||||
var ticket_id = $(this).attr('ticket_id');
|
||||
var diffdays = $(this).attr('diffdays');
|
||||
console.log(diffdays);
|
||||
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: '/tickets/ticket_subtract/',
|
||||
data: {
|
||||
ticket_id: ticket_id,
|
||||
diffdays: diffdays
|
||||
},
|
||||
beforeSend: function() {},
|
||||
success: function(data) {
|
||||
response = jQuery.parseJSON(data);
|
||||
$('.shopping-cart-container').html(response.shopping_cart);
|
||||
// if (response.cart_count = 0)
|
||||
// $('.shopping-cart').removeClass('shopping-cart--active');
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
//remove
|
||||
$('body').on('click', '.ticket__button', function() {
|
||||
var ticket_id = $(this).attr('ticket_id');
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: '/tickets/ticket_remove/',
|
||||
data: {
|
||||
ticket_id: ticket_id
|
||||
},
|
||||
beforeSend: function() {},
|
||||
success: function(data) {
|
||||
response = jQuery.parseJSON(data);
|
||||
$('.shopping-cart-container').html(response.shopping_cart);
|
||||
|
||||
if (response.cart_count = 0)
|
||||
$('.shopping-cart').removeClass('shopping-cart--active');
|
||||
|
||||
console.log($('.shopping-cart'));
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
//
|
||||
const shoppingCart = document.querySelector(".shopping-cart");
|
||||
document.addEventListener('onChange', () => {
|
||||
let list = document.querySelectorAll(".ticket");
|
||||
let subtract = document.querySelector(".subtract");
|
||||
subtract.addEventListener("click", () => {
|
||||
if (list.length === 0) {
|
||||
shoppingCart.classList.remove("shopping-cart--active");
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
flatpickr("#flatpickr", {
|
||||
inline: true,
|
||||
dateFormat: "d-m-Y",
|
||||
disableMobile: true,
|
||||
minDate: "today",
|
||||
locale: "pl",
|
||||
theme: "material_blue",
|
||||
onChange: function(selectedDates, dateStr, instance) {
|
||||
document.getElementById('dateForm').submit();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
178
templates/tickets/order-confirm.php
Normal file
178
templates/tickets/order-confirm.php
Normal file
@@ -0,0 +1,178 @@
|
||||
<?php if($this->order_successful === true) : ?>
|
||||
<script type="text/javascript">
|
||||
$.alert({
|
||||
icon: 'fa-regular fa-face-smile-beam',
|
||||
title: 'Zamówienie jest złożone',
|
||||
content: 'Dziękujemy za złożenia zamówienia.',
|
||||
typeAnimated: true,
|
||||
animation: 'scale',
|
||||
closeAnimation: 'scale',
|
||||
autoClose: 'confirm|10000',
|
||||
bgOpacity: '0.5',
|
||||
type: 'green',
|
||||
theme: 'modern',
|
||||
columnClass: 'col-md-6 col-md-offset-3',
|
||||
|
||||
buttons: {
|
||||
confirm: {
|
||||
text: 'Zamknij',
|
||||
btnClass: 'btn-green btn-alert',
|
||||
keys: ['enter'],
|
||||
action: function() {}
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if($this->order_fail === true) : ?>
|
||||
<script type="text/javascript">
|
||||
$.alert({
|
||||
icon: 'fa-solid fa-circle-exclamation',
|
||||
title: 'Błąd',
|
||||
content: 'Wystąpił błąd podczas przetwarzania zamówienia.',
|
||||
typeAnimated: true,
|
||||
animation: 'scale',
|
||||
closeAnimation: 'scale',
|
||||
autoClose: 'confirm|10000',
|
||||
bgOpacity: '0.5',
|
||||
type: 'red',
|
||||
theme: 'modern',
|
||||
columnClass: 'col-md-6 col-md-offset-3',
|
||||
|
||||
buttons: {
|
||||
confirm: {
|
||||
text: 'Zamknij',
|
||||
btnClass: 'btn-red btn-alert',
|
||||
keys: ['enter'],
|
||||
action: function() {}
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php
|
||||
$orderData = $this->order;
|
||||
?>
|
||||
|
||||
<div id="basket_page">
|
||||
<div class="basket_content">
|
||||
<div class="container">
|
||||
<div class="box_01">
|
||||
<table>
|
||||
<tr>
|
||||
<th>
|
||||
<h3>BILETY</h3>
|
||||
</th>
|
||||
<th>
|
||||
<h3>CENA</h3>
|
||||
</th>
|
||||
<th>
|
||||
<h3>WARTOŚĆ</h3>
|
||||
</th>
|
||||
</tr>
|
||||
<?php foreach ($orderData['tickets'] as $key => $value) : ?>
|
||||
<tr>
|
||||
<td><?= $value['name']; ?> ( x <?= $value["quantity"]; ?>)</td>
|
||||
<td><?= $value['price']; ?> zł</td>
|
||||
<td><?= $value['price'] * $value["quantity"]; ?> zł</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</table>
|
||||
</div>
|
||||
<div class="box_02">
|
||||
<div class="form_data">
|
||||
<div class="row">
|
||||
<div class="col-lg-8 col-md-8 col-xs-12 basket_user_data">
|
||||
<div class="basket_user_data__wrapper">
|
||||
<h2>TWOJE DANE</h2>
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="name" class="col-lg-4 col-form-label">Imię*</label>
|
||||
<div class="col-lg-8">
|
||||
<input type="text" class="form-control" id="name" name="name" disabled
|
||||
value="<?= $orderData['name']; ?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="surname" class="col-lg-4 col-form-label">Nazwisko*</label>
|
||||
<div class="col-lg-8">
|
||||
<input type="text" class="form-control" id="surname" name="surname" disabled
|
||||
value="<?= $orderData['surname']; ?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="email" class="col-lg-4 col-form-label">Email*</label>
|
||||
<div class="col-lg-8">
|
||||
<input type="email" class="form-control" id="email" name="email" disabled
|
||||
value="<?= $orderData['email']; ?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="zip_code" class="col-lg-4 col-form-label">Kod pocztowy*</label>
|
||||
<div class="col-lg-8">
|
||||
<input type="text" class="form-control" id="zip_code" name="zip_code" disabled
|
||||
value="<?= $orderData['zip_code']; ?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="city" class="col-lg-4 col-form-label">Miejscowość*</label>
|
||||
<div class="col-lg-8">
|
||||
<input type="text" class="form-control" id="city" name="city" disabled
|
||||
value="<?= $orderData['city']; ?>">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<? if(!empty($orderData['gift_address'])) : ?>
|
||||
<div class="form-group row mb-lg-2" id="gift_address_box">
|
||||
<label for="gift_address" class="col-lg-4 col-form-label">Dane do wysyłki biletu prezentowego*</label>
|
||||
<div class="col-lg-8">
|
||||
<textarea rows="5" type="text" class="form-control" id="gift_address" name="gift_address" disabled><?= $orderData['gift_address']; ?></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<? endif; ?>
|
||||
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="vat" class="col-lg-4 form-check-label"><strong>Chcę otrzymać fakturę VAT</strong></label>
|
||||
<div class="col-lg-8">
|
||||
<input type="checkbox" class="form-check-input" id="vat" <?= $orderData['vat'] ? 'checked' : ""; ?> name="vat" disabled>
|
||||
</div>
|
||||
</div>
|
||||
<?php if($orderData['vat']) : ?>
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="company_name" class="col-lg-4 col-form-label">Nazwa firmy</label>
|
||||
<div class="col-lg-8">
|
||||
<input type="text" class="form-control" id="company_name" name="company_name" disabled value="<?= $orderData['company_name']; ?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row mb-lg-2">
|
||||
<label for="nip" class="col-lg-4 col-form-label">NIP</label>
|
||||
<div class="col-lg-8">
|
||||
<input type="text" class="form-control" id="nip" name="nip" disabled value="<?= $orderData['nip']; ?>">
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4 col-md-4 col-xs-12 basket_summary">
|
||||
<div class="basket_summary__wrapper">
|
||||
<h2>Suma:</h2>
|
||||
<p><?= $orderData["order_price"]; ?> zł</p>
|
||||
<hr>
|
||||
<h2>Status:</h2>
|
||||
<?php if($orderData["payment_status"]) : ?>
|
||||
<p class="c_green">Zapłacono</p>
|
||||
<img
|
||||
src="https://bilety.brzezovka.pl/orders/<?= $orderData['hash'][0]; ?>/<?= $orderData['hash'][1]; ?>/<?= $orderData['hash']; ?>.png">
|
||||
<?php else: ?>
|
||||
<p class="c_red">Nie zapłacono</p>
|
||||
<a href="/tickets/przelewy24/order=<?= $orderData['hash']; ?>" class="buy-btn">Powtórz transakcję</a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
69
templates/tickets/przelewy24.php
Normal file
69
templates/tickets/przelewy24.php
Normal file
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
$clientData = $this->order;
|
||||
$merchant_id = $this->settings['p24']['merchant_id'];
|
||||
$pos_id = $this->settings['p24']['pos_id'];
|
||||
|
||||
$crc_key = '';
|
||||
|
||||
if($this->settings['p24']['sandbox']) {
|
||||
$crc_key = $this->settings['p24']['sandbox_crc_key'];
|
||||
} else {
|
||||
$crc_key = $this->settings['p24']['crc_key'];
|
||||
}
|
||||
?>
|
||||
|
||||
<div class="spinner_container">
|
||||
<?= \Tpl::view( 'components/spinner'); ?>
|
||||
</div>
|
||||
|
||||
<form
|
||||
action="<?= $this -> settings['p24']['sandbox'] ? 'https://sandbox.przelewy24.pl/trnDirect' : 'https://secure.przelewy24.pl/trnDirect';?>"
|
||||
method="post" class="form" id="form_data" accept-charset="ISO-8859-2">
|
||||
<input type="hidden" name="p24_session_id" value="<?= $this -> przelewy24_hash; ?>" />
|
||||
<input type="hidden" name="p24_merchant_id" value="<?= $merchant_id; ?>" />
|
||||
<input type="hidden" name="p24_pos_id" value="<?= $pos_id; ?>" />
|
||||
<input type="hidden" name="p24_amount" value="<?= $clientData['order_price'] * 100;?>" />
|
||||
<input type="hidden" name="p24_currency" value="PLN" />
|
||||
<input type="hidden" name="p24_description" value="Zamówienie nr <?= $clientData['id']; ?>" />
|
||||
<input type="hidden" name="p24_client" value="<?= $clientData['name'] . ' ' . $clientData['surname'];?>" />
|
||||
<input type="hidden" name="p24_zip" value="<?= $clientData['zip_code']; ?>" />
|
||||
<input type="hidden" name="p24_city" value="<?= $clientData['city']; ?>" />
|
||||
<input type="hidden" name="p24_country" value="PL" />
|
||||
<input type="hidden" name="p24_email" value="<?= $clientData['email']; ?>" />
|
||||
<input type="hidden" name="p24_language" value="pl" />
|
||||
<input type="hidden" name="p24_url_status"
|
||||
value="https://<?= $_SERVER['SERVER_NAME'];?>/tickets/przelewy24_response/" />
|
||||
<input type="hidden" name="p24_url_return"
|
||||
value="https://<?= $_SERVER['SERVER_NAME'];?>/tickets/order_confirm/order=<?= $this -> order['hash'];?>" />
|
||||
<input type="hidden" name="p24_api_version" value="3.2" />
|
||||
<input type="hidden" name="p24_wait_for_result" value="1">
|
||||
<input type="hidden" name="p24_method" value="227">
|
||||
<input type="hidden" name="p24_sign"
|
||||
value="<?= md5( $this -> przelewy24_hash . '|' . $merchant_id . '|' . ( $clientData['order_price'] * 100 ) . '|PLN|' . $crc_key );?>" />
|
||||
</form>
|
||||
|
||||
<script type="text/javascript">
|
||||
dataLayer.push({ ecommerce: null });
|
||||
dataLayer.push({
|
||||
event: "purchase",
|
||||
ecommerce: {
|
||||
transaction_id: "<?= $this -> order['id'];?>",
|
||||
value: <?= str_replace( ',', '.', $this -> order['order_price'] );?>,
|
||||
currency: "PLN",
|
||||
shipping: 0,
|
||||
items: [
|
||||
<? foreach ( $this -> order['tickets'] as $ticket ):?>
|
||||
{
|
||||
'id': <?= (int)$ticket['product_id'];?>,
|
||||
'name': '<?= $ticket['name'];?>',
|
||||
'quantity': <?= $ticket['quantity'];?>,
|
||||
'price': <?= $ticket['price'];?>
|
||||
}<? if ( $ticket != end( $this -> order['tickets'] ) ) echo ',';?>
|
||||
<? endforeach;?>
|
||||
]
|
||||
}
|
||||
});
|
||||
$( document ).ready( function() {
|
||||
$( "#form_data" ).submit();
|
||||
});
|
||||
</script>
|
||||
61
templates/tickets/scanner-view.php
Normal file
61
templates/tickets/scanner-view.php
Normal file
@@ -0,0 +1,61 @@
|
||||
<div id="scanner" style="width: 100%; overflow-x: hidden;"></div>
|
||||
<div class="container">
|
||||
<div id="result"></div>
|
||||
</div>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
const html5QrCode = new Html5Qrcode("scanner");
|
||||
|
||||
const qrCodeSuccessCallback = (decodedText, decodedResult) => {
|
||||
// document.getElementById('result').innerHTML = '<span class="result">' + decodedResult + '</span>';
|
||||
getData(decodedText);
|
||||
};
|
||||
|
||||
const config = {
|
||||
fps: 10,
|
||||
qrbox: {
|
||||
width: 250,
|
||||
height: 250
|
||||
}
|
||||
};
|
||||
|
||||
html5QrCode.start({
|
||||
facingMode: "environment"
|
||||
}, config, qrCodeSuccessCallback);
|
||||
|
||||
const getData = (hash) => {
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: '/scanner/scanner_get_data/',
|
||||
data: {
|
||||
scannerData: hash,
|
||||
},
|
||||
success: function(data) {
|
||||
response = jQuery.parseJSON(data);
|
||||
$('#result').html(response);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
$('body').on('click', '#btn-used', function() {
|
||||
var order_id = $("#order-id").val();
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: '/scanner/use_ticket/',
|
||||
data: {
|
||||
order_id: order_id,
|
||||
},
|
||||
success: function(data) {
|
||||
response = jQuery.parseJSON(data);
|
||||
if (response.useStatus == true) {
|
||||
alert("Status zmieniono na 'Wykorzystany'")
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
71
templates/tickets/shopping-cart.php
Normal file
71
templates/tickets/shopping-cart.php
Normal file
@@ -0,0 +1,71 @@
|
||||
<? if ($this->cart) : ?>
|
||||
|
||||
<div class="shopping-cart shopping-cart--active">
|
||||
<?php else : ?>
|
||||
<div class="shopping-cart ">
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="basket">
|
||||
<i class="fa-solid fa-ticket"></i>
|
||||
</div>
|
||||
<div class="quantity">
|
||||
<p>Bilety</p>
|
||||
</div>
|
||||
<ul class="tickets__list">
|
||||
<?
|
||||
$summary = 0;
|
||||
foreach ( $this -> cart as $data => $value )
|
||||
{
|
||||
foreach ( $value as $key => $val )
|
||||
{
|
||||
$summary_ticket = $val['ticket_price'] * $val['quantity'];
|
||||
$summary += $summary_ticket;
|
||||
|
||||
$ticket_box = '
|
||||
<li class="ticket">
|
||||
<p class="ticket__description">' . $this->settings['tickets'][$data]['name'] . ' <span>x' . $val["quantity"] . '</span></p>
|
||||
<p class="ticket__price">cena: <span>' . $summary_ticket . ' zł</span> </p>
|
||||
' . write_btn($data, $key ) . '
|
||||
</li>
|
||||
';
|
||||
|
||||
echo $ticket_box;
|
||||
}
|
||||
}
|
||||
|
||||
// foreach ( $this -> cart as $ticket_id => $combinations )
|
||||
// {
|
||||
// foreach ($combinations as $key => $value)
|
||||
// {
|
||||
// $summary_ticket = $value['ticket_price'] * $value['quantity'];
|
||||
// $summary += $summary_ticket;
|
||||
|
||||
// $ticket_box = '
|
||||
// <li class="ticket">
|
||||
// <p class="ticket__description">' . $this->settings['tickets'][$ticket_id]['name'] . ' <span>x' . $value["quantity"] . '</span></p>
|
||||
// <p class="ticket__price">cena: <span>' . $summary_ticket . ' zł</span> </p>
|
||||
// ' . write_btn($ticket_id, $key ) . '
|
||||
// </li>
|
||||
// ';
|
||||
|
||||
// echo $ticket_box;
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
function write_btn($data, $diffDays) {
|
||||
if (strpos($data, "gift-price") !== false) {
|
||||
return '';
|
||||
} else {
|
||||
return '<button class="ticket__button" ticket_id=' . $data . ' diffDays="' . $diffDays . '">x</button>';
|
||||
}
|
||||
};
|
||||
?>
|
||||
</ul>
|
||||
<div class="sum-section">
|
||||
<p>Łączna suma:</p>
|
||||
<p class="sum"><?= $summary ?> zł</p>
|
||||
</div>
|
||||
<a href="/tickets/basket_view/" class="buy-btn">Kup teraz</a>
|
||||
<button class="off-btn">x</button>
|
||||
</div>
|
||||
104
templates/users/login-form.php
Normal file
104
templates/users/login-form.php
Normal file
@@ -0,0 +1,104 @@
|
||||
<div class="container">
|
||||
<div class="box box-login">
|
||||
<div class="title"><span>crmPRO</span> | logowanie</div>
|
||||
<div class="alert login"></div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<form method="POST" class="login-form">
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon">
|
||||
<i class="fa fa-user-circle-o"></i>
|
||||
</span>
|
||||
<div class="form-line">
|
||||
<input type="text" class="form-control" name="email" id="email" placeholder="Email" autofocus="" >
|
||||
<p class="form-error hide">Uzupełnij adres email.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon"><i class="fa fa-lock"></i></span>
|
||||
<div class="form-line">
|
||||
<input type="password" class="form-control" id="password" name="password" placeholder="Hasło" >
|
||||
<p class="form-error hide">Uzupełnij hasło.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<div class="form-line checkbox">
|
||||
<input type="checkbox" id="remeber" name="remeber">Zapamiętaj mnie
|
||||
</div>
|
||||
</div>
|
||||
<button type="button" class="btn login">Zaloguj się</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<link rel="stylesheet" type="text/css" href="/layout/style/login-form.css" />
|
||||
<script type="text/javascript">
|
||||
$( function()
|
||||
{
|
||||
$( 'body' ).on( 'keypress', '.login-form input', function(e)
|
||||
{
|
||||
if ( e.which === 13 )
|
||||
submit_login_form();
|
||||
});
|
||||
|
||||
$( 'body' ).on( 'click', '.login-form .btn.login', function()
|
||||
{
|
||||
submit_login_form();
|
||||
});
|
||||
|
||||
function submit_login_form()
|
||||
{
|
||||
var email = $( '#email' ).val();
|
||||
if ( $.trim( email ) === '' )
|
||||
{
|
||||
$( '#email' ).parents( '.form-line' ).children( 'p' ).removeClass( 'hide' );
|
||||
$( '#email' ).focus();
|
||||
return false;
|
||||
} else
|
||||
$( '#email' ).parents( '.form-line' ).children( 'p' ).addClass( 'hide' );
|
||||
|
||||
var password = $( '#password' ).val();
|
||||
if ( $.trim( password ) === '' )
|
||||
{
|
||||
$( '#password' ).parents( '.form-line' ).children( 'p' ).removeClass( 'hide' );
|
||||
$( '#password' ).focus();
|
||||
return false;
|
||||
} else
|
||||
$( '#password' ).parents( '.form-line' ).children( 'p' ).addClass( 'hide' );
|
||||
|
||||
$.ajax(
|
||||
{
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: '/users/login/',
|
||||
data:
|
||||
{
|
||||
email: email,
|
||||
password: password,
|
||||
remember: $( '#remeber' ).is( ':checked' )
|
||||
},
|
||||
beforeSend: function()
|
||||
{
|
||||
$( '.login-form .btn.login' ).html( '<i class="fa fa-spinner spin"></i>' ).addClass( 'disabled' );
|
||||
},
|
||||
success: function( response )
|
||||
{
|
||||
$( '.login-form .btn.login' ).html( 'Zaloguj się' ).removeClass( 'disabled' );
|
||||
|
||||
data = jQuery.parseJSON( response );
|
||||
$( '.alert' ).html( data.msg );
|
||||
|
||||
if ( data.result === 'false' )
|
||||
$( '.alert' ).removeClass( 'alert-success' ).addClass( 'alert-danger' ).show();
|
||||
else
|
||||
{
|
||||
$( '.alert' ).removeClass( 'alert-danger' ).addClass( 'alert-success' ).show();
|
||||
document.location.href = '/projects/tasks/project_id=' + ( data.default_project != null ? data.default_project : 'all' );
|
||||
}
|
||||
}
|
||||
});
|
||||
return false;
|
||||
}
|
||||
});
|
||||
</script>
|
||||
84
templates/users/settings.php
Normal file
84
templates/users/settings.php
Normal file
@@ -0,0 +1,84 @@
|
||||
<div class="row">
|
||||
<div class="col-12 col-md-6">
|
||||
<div class="g-container">
|
||||
<div class="block-header">
|
||||
<h2>pushover <strong>API</strong></h2>
|
||||
<small class="text-muted">uzupełnił dane potrzebne do wysyłania powiadomień PUSH</small>
|
||||
</div>
|
||||
<div id="g-form-container">
|
||||
<form method="POST" id="pushover-settings" class="g-form form-horizontal" action="/users/settings_save/">
|
||||
<?= \Html::input( [
|
||||
'label' => 'Pushover API',
|
||||
'name' => 'pushover_api',
|
||||
'value' => $this -> user['pushover_api'],
|
||||
'inline' => false
|
||||
]
|
||||
);?>
|
||||
<?= \Html::input( [
|
||||
'label' => 'Pushover User',
|
||||
'name' => 'pushover_user',
|
||||
'value' => $this -> user['pushover_user'],
|
||||
'inline' => false
|
||||
]
|
||||
);?>
|
||||
<?= \Html::button( [
|
||||
'class' => 'btn-success',
|
||||
'text' => 'Zapisz ustawienia',
|
||||
'icon' => 'fa-check',
|
||||
'js' => '$( "#pushover-settings" ).submit();'
|
||||
]
|
||||
);?>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-6">
|
||||
<div class="g-container">
|
||||
<div class="block-header">
|
||||
<h2>zmiana <strong>hasła</strong></h2>
|
||||
<small class="text-muted">zmień swoje stare hasło na nowe</small>
|
||||
</div>
|
||||
<div id="g-form-container">
|
||||
<form method="POST" id="password-settings" class="g-form form-horizontal" action="/users/password_change/">
|
||||
<?= \Html::input_icon( [
|
||||
'label' => 'Stare hasło',
|
||||
'name' => 'password_old',
|
||||
'type' => 'password',
|
||||
'inline' => false,
|
||||
'required' => true,
|
||||
'icon_content' => '<i class="fa fa-eye"></i>',
|
||||
'icon_js' => 'password_toggle( $( this ).children( "i" ), "password_old" ); return false;'
|
||||
]
|
||||
);?>
|
||||
<?= \Html::input_icon( [
|
||||
'label' => 'Nowe hasło',
|
||||
'name' => 'password_new',
|
||||
'type' => 'password',
|
||||
'inline' => false,
|
||||
'required' => true,
|
||||
'icon_content' => '<i class="fa fa-eye"></i>',
|
||||
'icon_js' => 'password_toggle( $( this ).children( "i" ), "password_new" ); return false;'
|
||||
]
|
||||
);?>
|
||||
<?= \Html::button( [
|
||||
'class' => 'btn-success',
|
||||
'type' => 'submit',
|
||||
'text' => 'Zmień hasło',
|
||||
'icon' => 'fa-check'
|
||||
]
|
||||
);?>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
function password_toggle( input, id )
|
||||
{
|
||||
$( input ).toggleClass( 'fa-eye' ).toggleClass( 'fa-eye-slash' );
|
||||
if ( $( '#' + id ).attr( 'type' ) === 'password' )
|
||||
$( '#' + id ).attr( 'type', 'text' );
|
||||
else
|
||||
$( '#' + id ).attr( 'type', 'password' );
|
||||
}
|
||||
</script>
|
||||
Reference in New Issue
Block a user