list; $buildUrl = function(array $params = []) use ($list): string { $query = array_merge($list->query, $params); foreach ($query as $key => $value) { if ($value === '' || $value === null) { unset($query[$key]); } } $qs = http_build_query($query); return $list->basePath . $qs; }; $currentSort = $list->sort['column'] ?? ''; $currentDir = strtoupper($list->sort['dir'] ?? 'DESC'); $page = max(1, (int)($list->pagination['page'] ?? 1)); $totalPages = max(1, (int)($list->pagination['total_pages'] ?? 1)); $total = (int)($list->pagination['total'] ?? 0); $perPage = (int)($list->pagination['per_page'] ?? 15); $hasActiveFilters = false; foreach ($list->filters as $filter) { if (isset($filter['value']) && (string)$filter['value'] !== '') { $hasActiveFilters = true; break; } } $isCompactColumn = function(array $column): bool { $key = strtolower(trim((string)($column['key'] ?? ''))); $label = strtolower(trim((string)($column['label'] ?? ''))); if (in_array($key, ['status', 'active', 'enabled', 'is_active', 'start', 'default'], true)) { return true; } if (in_array($label, ['status', 'aktywny', 'aktywnosc', 'active', 'domyslny', 'domyślny', 'default'], true)) { return true; } return false; }; ?>
createUrl) && !empty($list->createLabel)): ?> createLabel, ENT_QUOTES, 'UTF-8'); ?>
Wyników: filters)): ?>
Widoczność kolumn
columns as $colIndex => $column): ?>
filters as $filter): ?> $maxOptionLen) { $maxOptionLen = $len; } } // Krotkie selekty (np. tak/nie) nie musza zajmowac szerokiej kolumny. $isCompactFilter = count($options) <= 5 && $maxOptionLen <= 12; } $filterColClass = $isCompactFilter ? 'col-sm-1 col-xs-6 mb10' : 'col-sm-2 mb10'; ?>
Wyczyść
columns as $colIndex => $column): ?> sortableColumns) || in_array($sortKey, $list->sortableColumns, true); $isSortable = !empty($column['sortable']) && $sortKey !== '' && $isAllowedSortKey; $isCurrent = $isSortable && $currentSort === $sortKey; $nextDir = ($isCurrent && $currentDir === 'ASC') ? 'DESC' : 'ASC'; $sortUrl = $buildUrl([ 'sort' => $sortKey, 'dir' => $nextDir, 'page' => 1, ]); $headerClass = trim((string)($column['class'] ?? '')); if ($isCompactColumn($column)) { $headerClass = trim($headerClass . ' table-col-compact'); } ?> rows) && !empty($list->rows)): ?> rows as $row): ?> columns as $colIndex => $column): ?>
Akcje
data-confirm-title="Potwierdzenie" data-confirm-message="" data-confirm-ok="" data-confirm-cancel="" >
emptyMessage, ENT_QUOTES, 'UTF-8'); ?>
query as $key => $value): ?> Wyświetlaj rekordów