[ 'placeholder' => t('Search...'), ], 'sort' => [ 'sortAsc' => t('Sort column ascending'), 'sortDesc' => t('Sort column descending'), ], 'pagination' => [ 'previous' => t('Previous'), 'next' => t('Next'), 'navigate' => t('Page %d of %d'), 'page' => t('Page %d'), 'showing' => t('Showing'), 'of' => t('of'), 'to' => t('to'), 'results' => t('results'), ], 'loading' => t('Loading...'), 'noRecordsFound' => t('No records found'), 'error' => t('An error happened while fetching the data'), ]; } /** * Render a multi-select filter field with hidden input sync. * * @param string $id Base ID for the hidden input (select gets "-ui" suffix) * @param string $label Field label (will be translated) * @param string $placeholder Placeholder text (will be translated) * @param array $items Array of items with 'id' and 'description' keys * @param array $selected Array of selected item IDs */ function multiSelectFilter( string $id, string $label, string $placeholder, array $items, array $selected ): void { ?> $isActive ? 'active' : '', 'aria' => $isActive ? 'aria-current="page"' : '', 'isActive' => $isActive, ]; } function navActivePublicPages(array $extraSlugs = []): array { $current = \MintyPHP\Http\Request::path(); if ($current === '') { return ['class' => '', 'aria' => '', 'isActive' => false]; } $publicSlugs = array_merge(['imprint', 'privacy'], $extraSlugs); $isActive = strpos($current, 'page/') === 0 || in_array($current, $publicSlugs, true); return [ 'class' => $isActive ? 'active' : '', 'aria' => $isActive ? 'aria-current="page"' : '', 'isActive' => $isActive, ]; }