我有一個TYPO3插件頁面,顯示「月末」。我在列表模塊中填充項目,開始/結束日期分別爲相應的月份。將TYPO3頁面緩存的生命週期設置爲一個確切的月份(而不是31天)
事情是我必須禁用緩存(或設置爲只有1天)或手動刷新它,或者仍然顯示上個月的提示。
我希望頁面被緩存,但緩存僅在每個月的第一天才有效。將背景頁面的生命週期設置爲「1個月」,實際上將壽命設置爲2678400秒(31天),這在短於31天的月份不起作用。還是已經有了一個功能,計算當前月份的實際長度!? (我不能等了整整一個月,以測試它。)
我知道有在Typo腳本cache.lifetime
,但您只能設置(以秒爲量)的整數,「無限」(沒有到期直到被刷新),「默認」(如在config.cache_period中配置)或stdWrap。
我知道最後創建的緩存日期時間是通過響應中的「Date」標題發送的。所以TYPO3應該知道這個時間戳。
所以,我需要這樣的東西:
<?php
$dateStart = new DateTime($pageLastCreated_whencever);
$dateEnd = new DateTime();
$dateEnd->modify('first day of +1 month');
$dateDiff = $dateStart->diff($dateEnd);
return $dateDiff->format('%s'); // equals cache lifetime
?>
可能有人把我推在正確的方向?
我很想避免使用用戶的功能,但...
在此先感謝。
感謝您的提示,但是如何才能真正實現緩存生命週期的自動化,直到下個月的第一個月?我不知道我的示例代碼是否會真正起作用(以及如何在TypoScript中執行此操作),或者我可以在哪裏獲取最後一頁創建的日期。 – Seika85
我更新了答案。不要過多擔心生命。您的頁面被緩存,直到您清除它。 –
讓我們來看一個例子:\t這是2016-07-31 23:59並且它變成了2016-08-01 00:00。只有條件有效並且您建議的配置已設置。但午夜結束了。這是不是意味着緩存在2016-08-02 00:00清除? – Seika85