Changeset 3744969 for dienstplan/trunk/src/Assets.php
- Timestamp:
- 10/13/2026 10:08:08 PM (5 days ago)
- File:
-
- 1 edited
-
dienstplan/trunk/src/Assets.php (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
dienstplan/trunk/src/Assets.php
r3742972 r3744969 9 9 final class Assets 10 10 { 11 public const HANDLE_TOKENS = 'dienstplan-tokens'; 12 public const HANDLE_CALENDAR = 'dienstplan-calendar'; 13 public const HANDLE_ADMIN = 'dienstplan-admin'; 14 public const HANDLE_EVENTS_ADMIN = 'dienstplan-events-admin'; 15 public const HANDLE_EVENTS = 'dienstplan-events'; 16 public const HANDLE_FLATPICKR = 'dienstplan-flatpickr'; 17 public const HANDLE_TARIFE = 'dienstplan-admin-tarife'; 18 public const HANDLE_UPSELL = 'dienstplan-admin-upsell'; 11 public const HANDLE_TOKENS = 'dienstplan-tokens'; 12 public const HANDLE_COLOR_SCHEME = 'dienstplan-color-scheme'; 13 public const HANDLE_CALENDAR = 'dienstplan-calendar'; 14 public const HANDLE_ADMIN = 'dienstplan-admin'; 15 public const HANDLE_EVENTS_ADMIN = 'dienstplan-events-admin'; 16 public const HANDLE_EVENTS = 'dienstplan-events'; 17 public const HANDLE_FLATPICKR = 'dienstplan-flatpickr'; 18 public const HANDLE_TARIFE = 'dienstplan-admin-tarife'; 19 public const HANDLE_UPSELL = 'dienstplan-admin-upsell'; 19 20 20 21 public function __construct( … … 26 27 { 27 28 $baseUrl = plugin_dir_url($this->pluginFile); 29 $baseDir = plugin_dir_path($this->pluginFile); 30 // filemtime im Query-String, damit Asset-Fixes ohne Versionsbump den Browser-Cache invalidieren. 31 $calendarCssVer = $this->assetVersion($baseDir . 'assets/frontend.css'); 32 $calendarJsVer = $this->assetVersion($baseDir . 'assets/dienstplan.js'); 33 $schemeJsVer = $this->assetVersion($baseDir . 'assets/color-scheme.js'); 28 34 wp_register_style(self::HANDLE_TOKENS, $baseUrl . 'assets/tokens.css', [], $this->version); 29 wp_register_style(self::HANDLE_CALENDAR, $baseUrl . 'assets/frontend.css', [self::HANDLE_TOKENS], $this->version); 30 wp_register_script(self::HANDLE_CALENDAR, $baseUrl . 'assets/dienstplan.js', ['jquery', 'wp-i18n'], $this->version, true); 35 wp_register_script(self::HANDLE_COLOR_SCHEME, $baseUrl . 'assets/color-scheme.js', [], $schemeJsVer, true); 36 wp_register_style(self::HANDLE_CALENDAR, $baseUrl . 'assets/frontend.css', [self::HANDLE_TOKENS], $calendarCssVer); 37 wp_register_script(self::HANDLE_CALENDAR, $baseUrl . 'assets/dienstplan.js', ['jquery', 'wp-i18n', self::HANDLE_COLOR_SCHEME], $calendarJsVer, true); 31 38 wp_register_style(self::HANDLE_ADMIN, $baseUrl . 'assets/admin.css', [], $this->version); 32 39 wp_register_script(self::HANDLE_ADMIN, $baseUrl . 'assets/admin.js', ['jquery', 'wp-i18n'], $this->version, true); … … 36 43 wp_register_script(self::HANDLE_EVENTS_ADMIN, $baseUrl . 'assets/events-admin.js', ['jquery', 'jquery-ui-sortable', 'wp-i18n', self::HANDLE_ADMIN, self::HANDLE_FLATPICKR], $this->version, true); 37 44 wp_register_style(self::HANDLE_EVENTS, $baseUrl . 'assets/events.css', [self::HANDLE_TOKENS], $this->version); 38 wp_register_script(self::HANDLE_EVENTS, $baseUrl . 'assets/events.js', ['jquery', 'wp-i18n' ], $this->version, true);45 wp_register_script(self::HANDLE_EVENTS, $baseUrl . 'assets/events.js', ['jquery', 'wp-i18n', self::HANDLE_COLOR_SCHEME], $this->version, true); 39 46 wp_register_style(self::HANDLE_TARIFE, $baseUrl . 'assets/admin-tarife.css', [], $this->version); 40 47 wp_register_style(self::HANDLE_UPSELL, $baseUrl . 'assets/admin-upsell.css', [], $this->version); … … 63 70 public function enqueueCalendarAssets(): void 64 71 { 72 wp_enqueue_script(self::HANDLE_COLOR_SCHEME); 65 73 wp_enqueue_style(self::HANDLE_CALENDAR); 66 74 wp_enqueue_script(self::HANDLE_CALENDAR); … … 72 80 'errorConnection' => __('Connection error. Please reload the page.', 'dienstplan'), 73 81 'removeTitle' => __('Remove entry', 'dienstplan'), 82 'assignSearch' => __('Search members…', 'dienstplan'), 83 'yourShift' => _x('· Your shift', 'agenda own shift title', 'dienstplan'), 84 'fullyStaffed' => __('Fully staffed', 'dienstplan'), 85 'ofFree' => __('%1$d of %2$d free', 'dienstplan'), 86 'filterAll' => _x('All', 'agenda filter', 'dienstplan'), 87 /* translators: %d: number of open shifts */ 88 'filterOpen' => _x('Open %d', 'agenda filter', 'dienstplan'), 89 /* translators: %d: number of own shifts */ 90 'filterMine' => _x('Mine %d', 'agenda filter', 'dienstplan'), 91 'removeAria' => __('Remove', 'dienstplan'), 74 92 ]); 75 93 do_action('dienstplan_enqueue_calendar_assets'); … … 109 127 public function enqueueEventAssets(): void 110 128 { 129 wp_enqueue_script(self::HANDLE_COLOR_SCHEME); 111 130 wp_enqueue_style(self::HANDLE_EVENTS); 112 131 wp_enqueue_script(self::HANDLE_EVENTS); … … 123 142 } 124 143 125 /** Frontend-CSS für [dienstplan_statistik] — nur Style, kein Kalender-JS. */144 /** Frontend-CSS für [dienstplan_statistik]; color-scheme.js für Auto-Erkennung (#191). */ 126 145 public function enqueueStatisticsAssets(): void 127 146 { 147 wp_enqueue_script(self::HANDLE_COLOR_SCHEME); 128 148 wp_enqueue_style(self::HANDLE_CALENDAR); 129 149 do_action('dienstplan_enqueue_statistik_assets'); 130 150 } 151 152 /** 153 * Plugin-Version plus Datei-mtime — Cache-Bust ohne SemVer-Bump. 154 */ 155 private function assetVersion(string $absolutePath): string 156 { 157 $mtime = is_readable($absolutePath) ? (string) filemtime($absolutePath) : '0'; 158 return $this->version . '.' . $mtime; 159 } 131 160 }
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)