[英]Joomla: add calendar view to the filter
我在 Joomla 4 上制作了一個帶有自定義字段的事件列表,並為它們安裝了一個過濾器。 過濾器運行良好,但按日期過濾現在基於日期列表。 例子:
01 - December - 2022
02 - December - 2022
28 - November - 2022
29 - November - 2022
30 - November - 2022
...
添加日歷而不是此列表並執行以下操作有多困難:
它應該如何工作? 我正確理解這僅在前端完成? 我需要的日期列表已經在過濾器中作為列表提供。 請告訴我我需要工作的方向。
答案將會被發現。 您可以使用任何現成的 Javascript 日歷。 我用這個: https://www.cssscript.com/create-simple-event-calendar-javascript-caleandar-js/
根據說明進行設置,在日歷代碼中插入日期的位置,插入我的數據數組,其中包含過濾器中的日期。 一切都很簡單。
一個對我有用的例子。 你可以使用這個原則,適應你的條件:
<script type="text/javascript">
jQuery(document).ready(function($){
var events = [
<?php foreach($options as $option) :
$date = date_format(date_create($option->getValue()),'d/m/Y');
$explodeDate = explode('/', $date);
$explodedDay = $explodeDate[0];
$explodedMonth = $explodeDate[1];
$explodedYear = $explodeDate[2];
$explodedMonth = $explodedMonth - 1;
if ($explodedDay >= 1 && $explodedDay <=9) {
$EventDate = str_replace("0", "", $explodedDay);
} else {
$EventDate = $explodedDay;
};
?>
{'Date': new Date(<?php echo $explodedYear; ?>, <?php echo $explodedMonth; ?>, <?php echo $explodedDay; ?>), 'Title': '<?php echo $EventDate; ?>', 'Link': '<?php echo Route::_($option->getLink()) ?>'},
<?php endforeach; ?>
];
var settings = {};
var element = document.getElementById('caleandar');
caleandar(element, events, settings);
});
日期來自數據庫的方式不符合日歷格式,所以在PHP的幫助下我不得不轉換日期並將日月年分開。 同樣在日歷中,第一個月是 0,所以我不得不從月份中減去一位數字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.