我目前正在使用 Kirby CMS 构建网站,并使用 URL 中的参数来过滤我的文章。同时,我实现了一个非常基本的 css 切换器,它使我能够在列表和图库视图之间切换而无需任何重新加载(我假设)。但是当我在画廊视图中(仅在使用切换器时加载 css)并且 url 更改以传递过滤器的参数时,站点将恢复为初始 css(列表视图)。我怎样才能防止这种情况发生?
我不起眼的 CSS 切换器
function list() {
var theme = document.getElementById('css');
theme.href = "/assets/css/templates/works.css";
}
function gallery() {
var theme = document.getElementById('css');
theme.href = "/assets/css/templates/works-gallery.css";
}
筛选
<filter class="filter">
<a href="<?= $page->url() ?>?filter=">All</a>
<?php foreach ($filters as $filter): ?>
<a href="?filter=<?= $filter ?>"><?= $filter ?></a>
<?php endforeach ?>
</filter>
相应的页面控制器
return function ($page) {
$filterBy = get('filter');
$unfiltered = $page->children()->listed();
$works = $unfiltered
->when($filterBy, function($filterBy) {
return $this->filterBy('category', $filterBy);
});
$filters = $unfiltered->pluck('category', null, true);
return [
'filterBy' => $filterBy,
'unfiltered' => $unfiltered,
'works' => $works,
'filters' => $filters
];
};