Files
Reservair/includes/RsvAssetsDefinition.php
Martin Slachta 7d7f748f7a (#3) - templating
2026-06-14 07:21:33 +02:00

67 lines
2.6 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/**
* Defines assets that must be included to the client. Separated into assets for
* admin and the default user.
*/
function rsv_build_url(string $file): string {
return plugin_dir_url(__FILE__) . '../build/' . $file;
}
function rsv_build_file(string $file): string {
return plugin_dir_path(__FILE__) . '../build/' . $file;
}
function rsv_localize_api(string $handle): void {
wp_localize_script($handle, 'ReservairServiceAPI', [
'restUrl' => rest_url('reservations/v1'),
'nonce' => wp_create_nonce('wp_rest'),
]);
wp_localize_script($handle, 'ReservairStrings', [
'timeline' => [
'not_reservable' => 'Tento objekt nelze rezervovat.',
'no_blocks' => 'Tento den není dostupný žádný blok. Vyberte jiné datum.',
'seats' => 'míst',
],
'summary' => [
'title' => 'Vybrané termíny',
'clear_all' => 'Smazat vše',
'count_one' => '1 termín',
'count_few' => '%d termíny',
'count_many' => '%d termínů',
'currency' => 'Kč',
],
'form' => [
'success_title' => 'Rezervace potvrzena!',
'success_subtitle' => 'Potvrzení jsme zaslali na váš email.',
'new_reservation' => 'Nová rezervace',
'error_generic' => 'Něco se pokazilo. Zkuste to prosím znovu.',
],
]);
}
// --- Public hooks ---
function rsv_enqueue_assets(): void {
wp_enqueue_script('rsv-client', rsv_build_url('client.js'), [], filemtime(rsv_build_file('client.js')));
wp_enqueue_style('rsv-client', rsv_build_url('client.css'), [], filemtime(rsv_build_file('client.css')));
rsv_localize_api('rsv-client');
}
function rsv_enqueue_admin_assets(): void {
// The client bundle defines the custom elements shared by both front-end and
// admin. enqueue_block_assets already enqueues `rsv-client` in the editor, so
// re-using the same handle here keeps it loaded exactly once (WP dedupes by
// handle) instead of bundling a second copy into admin.js.
wp_enqueue_script('rsv-client', rsv_build_url('client.js'), [], filemtime(rsv_build_file('client.js')));
wp_enqueue_style('rsv-client', rsv_build_url('client.css'), [], filemtime(rsv_build_file('client.css')));
wp_enqueue_script('rsv-admin', rsv_build_url('admin.js'), ['rsv-client'], filemtime(rsv_build_file('admin.js')));
wp_enqueue_style('rsv-admin', rsv_build_url('admin.css'), ['rsv-client'], filemtime(rsv_build_file('admin.css')));
rsv_localize_api('rsv-client');
}