有沒有一種方法來緩存drupal系統頁面(例如分類/術語/%,論壇/%,節點)授權用戶沒有核心黑客?緩存drupal系統頁面
0
A
回答
1
對於drupal 6,有http://drupal.org/project/authcache。我不相信drupal 7已經準備好了。
0
你可以在你的自定義模塊上啓動hook_menu_alter,然後從那裏你可以做任何你想要的路徑(分類/術語/%)。
檢查這些路徑的函數回調是什麼。例如:
mysql>
select * from menu_router where path like '%taxonomy/term/%';
它說頁回調是taxonomy_term_page。你並不需要所有的代碼複製到您的自定義功能,所有你需要做的是這樣的:
function mymodule_menu_alter(&$items) {
// Route taxonomy/term/% to my custom caching function.
$items['taxonomy/term/%']['page callback'] = 'mymodule_cached_taxonomy_term_page';
}
function mymodule_cached_taxonomy_term_page($term) {
// Retrieve from persistent cache.
$cache = cache_get('taxonomy_term_'. $term);
// If data hasn't expired from cache.
if(!empty($cache->data) && ($cache->created < $cache->expire)) {
return $cache->data;
} else {
// Else rebuild the cache.
$term_page = taxonomy_term_page($term);
cache_set('taxonomy_term_'. $term, $term_page, 'cache_page', strtotime('+30 minute'));
return $term_page;
}
}
如果走這條路,你就會想要與cache_get和cache_set熟悉。你可能也想看看Lullabot的優秀緩存article。
您可以按照相同的方法查找論壇/%,節點以及其他任何您想要的內容。快樂緩存!
相關問題
- 1. Drupal +頁面片段緩存
- 2. 如何刷新緩存的Drupal頁面?
- 3. 系統/操作系統緩存與應用程序緩存
- 4. 如何限制系統上頁面緩存的數量?
- 5. 這個頁面緩存系統是否合理?
- 6. 系統緩存vs無緩存
- 7. 緩存頁面
- 8. NHibernate系統緩存到期
- 9. 說明Magento緩存系統
- 10. MySQL操作系統緩存
- 11. Drupal |緩存頁面中未緩存的JS cookie /跟蹤代碼算法
- 12. silverlight頁面緩存
- 13. 緩存asp.net頁面
- 14. 緩存HTML頁面
- 15. 非緩存頁面
- 16. Node.js頁面緩存
- 17. 刮緩存頁面
- 18. Codeigniter緩存頁面
- 19. 緩存HTML頁面
- 20. IE10緩存頁面
- 21. 將JSON保存到系統緩存中
- 22. 保存頁面緩存
- 23. Drupal模塊頁面「統計」圖
- 24. 網關頁面系統
- 25. Drupal刷新頁面需求緩存也刪除javascript文件
- 26. 什麼是Drupal中的外部頁面緩存
- 27. 有沒有辦法告訴Drupal不要緩存特定頁面?
- 28. Drupal保存在「管理字段」頁面非常緩慢
- 29. 多級頁面系統和多級緩存系統(L1,L2,L3)之間的區別
- 30. 如何在我的linux系統中停止磁盤I/O的頁面緩存?
我想過這種方式。但是taxonomy_term_page不僅返回html頁面代碼,還會創建麪包屑並添加feed。 它不會在mymodule_cached_taxonomy_term_page中工作。其他回調函數additionaly可以使用drupal_set_title,drupal_add_js,drupal_add_css等。 – 2011-03-11 05:06:18
我知道了,我還看到了taxonomy_term_page代碼=(。如果不像上面提到的那樣緩存taxonomy_term_page的結果,那麼如果深入瞭解該函數,並有選擇地將代碼複製到自定義函數中,代碼如何你需要,然後分別調用feeds功能嗎?你試過嗎?讓我們知道你發現了什麼。 – 2011-03-11 05:12:32
是的,我用taxonomy_term_page類似的代碼。它工作正常。現在我正在尋找緩存其他核心頁面的解決方案(節點,node /%,forum)我不想把所有的drupal核心回調函數都移到我的模塊中。) – 2011-03-11 06:11:39