Add initial files and database migration for ticket pricing system
- Created new directories and index files for controls, factory, and views. - Added .htaccess files for URL rewriting in layout and images directories. - Included a logo image in the layout/images directory. - Implemented load_prices.php to load ticket prices from the database into settings. - Developed admin panel settings page for enabling ticket sales. - Created tickets management page in the admin panel to display and edit ticket prices. - Added upgrade.php for database migrations, including creating the ticket_prices table and adding weekend price column.
This commit is contained in:
@@ -203,6 +203,48 @@ class Apanel
|
||||
exit;
|
||||
}
|
||||
|
||||
static public function tickets()
|
||||
{
|
||||
global $settings;
|
||||
|
||||
return \Tpl::view('admin-panel/tickets', [
|
||||
'tickets' => $settings['tickets']
|
||||
]);
|
||||
}
|
||||
|
||||
static public function tickets_save()
|
||||
{
|
||||
global $mdb;
|
||||
|
||||
if (empty($_POST['tickets']) || !is_array($_POST['tickets'])) {
|
||||
echo json_encode(['status' => 'error', 'message' => 'Brak danych']);
|
||||
exit;
|
||||
}
|
||||
|
||||
foreach ($_POST['tickets'] as $ticketId => $data) {
|
||||
$ticketId = preg_replace('/[^a-z0-9\-]/', '', $ticketId);
|
||||
|
||||
$price = trim($data['price'] ?? '') !== '' ? (float) $data['price'] : null;
|
||||
$priceWkd = trim($data['price_weekend'] ?? '') !== '' ? (float) $data['price_weekend'] : null;
|
||||
$day0 = trim($data['day0'] ?? '') !== '' ? (float) $data['day0'] : null;
|
||||
$day12 = trim($data['day1_2'] ?? '') !== '' ? (float) $data['day1_2'] : null;
|
||||
$day37 = trim($data['day3_7'] ?? '') !== '' ? (float) $data['day3_7'] : null;
|
||||
|
||||
$stmt = $mdb->pdo->prepare('REPLACE INTO ticket_prices (ticket_id, price, price_weekend, dynamic_price_day0, dynamic_price_day1_2, dynamic_price_day3_7) VALUES (:tid, :price, :priceWkd, :day0, :day12, :day37)');
|
||||
$stmt->execute([
|
||||
':tid' => $ticketId,
|
||||
':price' => $price,
|
||||
':priceWkd' => $priceWkd,
|
||||
':day0' => $day0,
|
||||
':day12' => $day12,
|
||||
':day37' => $day37,
|
||||
]);
|
||||
}
|
||||
|
||||
echo json_encode(['status' => 'ok']);
|
||||
exit;
|
||||
}
|
||||
|
||||
static public function use_ticket() {
|
||||
global $mdb;
|
||||
|
||||
@@ -216,4 +258,22 @@ class Apanel
|
||||
|
||||
exit;
|
||||
}
|
||||
|
||||
static public function settings()
|
||||
{
|
||||
$enable_sell = \factory\Apanel::getSetting('enable_sell', '1');
|
||||
|
||||
return \Tpl::view('admin-panel/settings', [
|
||||
'enable_sell' => $enable_sell
|
||||
]);
|
||||
}
|
||||
|
||||
static public function settings_save()
|
||||
{
|
||||
$enable_sell = isset($_POST['enable_sell']) ? '1' : '0';
|
||||
\factory\Apanel::saveSetting('enable_sell', $enable_sell);
|
||||
|
||||
echo json_encode(['status' => 'ok']);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
@@ -8,7 +8,9 @@ class Tickets
|
||||
{
|
||||
global $settings;
|
||||
|
||||
if ( !$settings['tickets']['enable_sell'] )
|
||||
$enable_sell = \factory\Apanel::getSetting('enable_sell', '1');
|
||||
|
||||
if ( !$enable_sell || $enable_sell === '0' )
|
||||
return \Tpl::view( 'tickets/disabled-sell' );
|
||||
|
||||
return \Tpl::view('tickets/main-view', [
|
||||
@@ -51,8 +53,13 @@ class Tickets
|
||||
$addon = 0;
|
||||
}
|
||||
|
||||
$is_weekend = $selected_date && in_array((new \DateTime($selected_date))->format('N'), ['6', '7']);
|
||||
$base_price = $is_weekend
|
||||
? ($settings['tickets'][$ticket_id]['price_weekend'] ?? $settings['tickets'][$ticket_id]['price'])
|
||||
: $settings['tickets'][$ticket_id]['price'];
|
||||
|
||||
$basket[$ticket_id][$diffDays]['ticket_id'] = $ticket_id;
|
||||
$basket[$ticket_id][$diffDays]['ticket_price'] = $settings['tickets'][$ticket_id]['price'] + $addon;
|
||||
$basket[$ticket_id][$diffDays]['ticket_price'] = $base_price + $addon;
|
||||
$basket[$ticket_id][$diffDays]['product_id'] = $settings['tickets'][$ticket_id]['product_id'];
|
||||
$basket[$ticket_id][$diffDays]['quantity'] = 1;
|
||||
$basket[$ticket_id][$diffDays]['date'] = $selected_date;
|
||||
|
||||
0
autoload/controls/index.php
Normal file
0
autoload/controls/index.php
Normal file
Reference in New Issue
Block a user