亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > 建站經驗 > 正文

Drupal的模塊高級應用之Authcache-動態加載內容教程

2024-08-30 19:06:43
字體:
來源:轉載
供稿:網友

網站為了提高性能,一般會采用緩存,Drupal中可以實現游客緩存,如果裝上Authcache模塊可以加速用戶登錄響應,對不同的role進行動態加載緩存,以下是教程詳細過程.

本文講一下如果通過修改authcache的核心代碼,來實現緩存頁面的個性化內容,通用的緩存,或多或少都是要進行個性化處理的,比如用戶名顯示、動態加載用戶資料、用戶好友等等.

一般情況下,這種局部個性化,都是通過兩種手段實現:一個是SSI,另一個是CSI.

Authcache本身可以實現局部personalization,模塊叫p13n.

Authcache的ajax模塊屬于CSI,ESI模塊應該是屬于SSI,但是由于ESI模塊需要搭建varnish服務器,配置VCL,加上服務器的設置問題,會導致ESI容易出錯,并且本身ESI傳遞cookie也會有些問題,因此ESI實際上實現起來相當復雜.

所以,如果我們要使用服務器端的personalization,通過PHP修改根據某些條件修改某些內容的話,需要hack一些authcache的代碼.

1.autcache.module文件

找到下面一句,Line 188

// Invoke cache backends and serve page.

修改成如下代碼:

  1. // Invoke cache backends and serve page. 
  2.  if (authcache_page_is_cacheable()) { 
  3.    $cache = authcache_backend_cache_save(); 
  4.    authcache_serve_page_from_cache($cache, authcache_key()); 
  5.  } 
  6.  else { 
  7.    ////process html result 
  8.    global $conf
  9.    $conf['page_compression'] = FALSE; 
  10.  
  11.    $cache = new stdClass(); 
  12.  
  13.    ////process html result 
  14.    $cache->data['body'] = ob_get_contents(); 
  15.    ob_clean(); 
  16.  
  17.    foreach (variable_get('authcache_page_process'array()) as $include) {  //開源軟件:Vevb.com 
  18.      require_once DRUPAL_ROOT . '/' . $include
  19.    } 
  20.    foreach (variable_get('authcache_page_process_interface'array()) as $process) { 
  21.      require_once DRUPAL_ROOT . '/' . $include
  22.      if (is_callable($process)) { 
  23.        $process($cache); 
  24.      } 
  25.    } 
  26.    echo $cache->data['body']; 
  27.  } 
  28.  exit

其中,主要是加了else后面的處理代碼.

2.authcache.cache.inc文件,從85行開始,到函數結尾,修改成如下格式.

  1. $return_compressed = FALSE; ///NEW //Don't send compressed content 
  2.  
  3. if ($page_compression) { 
  4.   header('Vary: Accept-Encoding', FALSE); 
  5.   // If page_compression is enabled, the cache contains gzipped data. 
  6.   if ($return_compressed) { 
  7.     // $cache->data['body'] is already gzip'ed, so make sure 
  8.     // zlib.output_compression does not compress it once more. 
  9.     ini_set('zlib.output_compression''0'); 
  10.     header('Content-Encoding: gzip'); 
  11.   } 
  12.   else { 
  13.     // The client does not support compression, so unzip the data in the 
  14.     // cache. Strip the gzip header and run uncompress. 
  15.     $cache->data['body'] = gzinflate(substr(substr($cache->data['body'], 10), 0, -8)); 
  16.   } 
  17.  
  18. ///NEW 
  19. foreach (variable_get('authcache_page_process'array()) as $include) { 
  20.   require_once DRUPAL_ROOT . '/' . $include
  21. foreach (variable_get('authcache_page_process_interface'array()) as $process) { 
  22.   if (is_callable($process)) { 
  23.     $process($cache); 
  24.   } 

注意:有兩個地方,///NEW 標注,表示新加的內容,中間有一段是原有的code.

改完之后,我們就完工了.

如何使用呢?新建一個文件,比如在custom模塊下面,叫custom_authcache.inc,黏貼如下代碼:

  1. <?php 
  2. /** 
  3. Add the following lines to settings.php 
  4.  
  5. $conf['authcache_page_process'][] = 'sites/all/modules/custom/custom/custom_authcache.inc'; 
  6. $conf['authcache_page_process_interface'][] = 'custom_authcache_common_process'; 
  7.  
  8. If you want to add more process interface, add your function name as an item in this array, $conf['authcache_page_process_interface']. 
  9. If you want to include file, please add file name to this array, $conf['authcache_page_process'] 
  10.  
  11. Core Changes: 
  12. modules/authcache/authcache.cache.inc 
  13. modules/authcache/authcache.module 
  14. **/ 
  15.  
  16. /* 
  17. * Process authcache content to replace content 
  18. */ 
  19. function custom_authcache_common_process(&$cache) { 
  20.   $cache->data['body'] = str_ireplace('<span id="replace_placeholder_1"/>', _get_real_data(), $cache->data['body']); 
  21. ?> 

看上面的注釋,復制兩行代碼到settings.php文件,具體的說明注釋已經很詳細了,相信應該沒問題.

這樣,這個custom_authcache_common_process函數就可以動態替換HTML里面的內容了,達到了個性化頁面的目的.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品国产69国产精品亚洲| 91精品久久久久久| 久久精品国产精品| 久久深夜福利免费观看| 日本久久91av| 亚洲视频在线免费看| 亚洲欧美日韩视频一区| 欧美激情视频在线免费观看 欧美视频免费一| 中文字幕亚洲综合久久筱田步美| 欧美成人网在线| 51ⅴ精品国产91久久久久久| 亚洲人免费视频| 欧美日韩一区免费| 精品国产精品三级精品av网址| 日韩av电影免费观看高清| 欧美日韩一区二区免费在线观看| 欧美一区二区三区免费观看| 亚洲福利在线播放| 日韩av中文字幕在线免费观看| 欧美亚洲国产另类| 日本国产一区二区三区| 26uuu亚洲国产精品| 国产成人综合精品| 国产91精品不卡视频| 国产免费成人av| 亚洲午夜av电影| 一区二区三区高清国产| 精品国内自产拍在线观看| 亚洲国产精品久久久久久| 欧美日本啪啪无遮挡网站| 91av视频在线播放| 日本一本a高清免费不卡| 日韩在线一区二区三区免费视频| 日韩欧美国产成人| 成人欧美一区二区三区黑人| 国产成人综合一区二区三区| 欧美激情性做爰免费视频| 成人激情黄色网| 日韩av片永久免费网站| 欧美视频免费在线观看| 国产一区二区香蕉| 亚洲欧洲激情在线| 国精产品一区一区三区有限在线| 亚洲专区在线视频| 欧美性生交大片免费| 欧美视频中文字幕在线| 日韩免费观看网站| 91沈先生作品| 亚洲国产日韩欧美综合久久| 日韩在线观看网址| 中文字幕av一区二区| 国产91露脸中文字幕在线| 午夜美女久久久久爽久久| 91免费的视频在线播放| 97在线视频免费| 国产视频观看一区| 国产成人精品a视频一区www| 超碰日本道色综合久久综合| 国产精品999| 日韩中文视频免费在线观看| 九色精品免费永久在线| 色婷婷亚洲mv天堂mv在影片| 国产精品第七影院| 亚洲日本aⅴ片在线观看香蕉| 亚洲国产精品久久久| 亚洲电影天堂av| 最新国产精品拍自在线播放| 按摩亚洲人久久| 国产精品视频yy9099| 亚洲第一福利网站| 亚洲国产美女精品久久久久∴| 亚洲国产欧美一区二区三区同亚洲| 91色在线视频| 久久久久久这里只有精品| 色爱精品视频一区| 亚洲国产福利在线| 国产精品国内视频| 91精品国产综合久久香蕉922| 日韩美女在线观看一区| 韩曰欧美视频免费观看| 色老头一区二区三区在线观看| 国产精品嫩草视频| 麻豆乱码国产一区二区三区| 黑人巨大精品欧美一区二区免费| 国产激情视频一区| 国产精品久久综合av爱欲tv| 欧美视频13p| 精品亚洲一区二区三区四区五区| 中文字幕日韩专区| 6080yy精品一区二区三区| 中文字幕精品av| 欧亚精品中文字幕| 国产精品成人av性教育| 成人a免费视频| 俺去了亚洲欧美日韩| 亚洲综合中文字幕68页| 欧美日韩久久久久| 亚洲成人精品久久| 91精品国产乱码久久久久久久久| 欧美视频一区二区三区…| 欧洲亚洲免费在线| 亚洲另类图片色| 久久久久久久一区二区| 久久久电影免费观看完整版| 91精品视频在线免费观看| 国产91精品高潮白浆喷水| 在线观看欧美日韩国产| 欧美性受xxxx黑人猛交| 亚洲精品自拍第一页| 国产成人精品优优av| 91中文字幕一区| 久久久999成人| 国产91在线视频| 日韩美女免费观看| 一本大道久久加勒比香蕉| 欧亚精品中文字幕| 国产97色在线| 另类视频在线观看| 国产欧美 在线欧美| 国产精品无av码在线观看| 欧美一乱一性一交一视频| 亚洲精品久久久久中文字幕欢迎你| 久久精品中文字幕一区| 91成人免费观看网站| 国产区精品视频| 久久久久久尹人网香蕉| 在线成人激情视频| 97香蕉超级碰碰久久免费的优势| 77777亚洲午夜久久多人| 亚洲人午夜精品免费| 色香阁99久久精品久久久| 成人午夜一级二级三级| 爽爽爽爽爽爽爽成人免费观看| 欧美亚洲激情在线| 日韩毛片在线看| 欧美激情中文字幕乱码免费| 午夜精品一区二区三区在线视频| 久久中文字幕视频| 国产综合在线看| 高潮白浆女日韩av免费看| 91av免费观看91av精品在线| 日韩在线视频免费观看高清中文| 亚洲激情中文字幕| 国产日韩欧美自拍| 尤物精品国产第一福利三区| 日韩精品有码在线观看| 成人深夜直播免费观看| 日韩视频免费中文字幕| 欧美激情一区二区三级高清视频| 亚洲无限av看| 欧美黄色小视频| 精品亚洲va在线va天堂资源站| 欧美日韩成人免费| 欧美最猛性xxxxx免费| 国产91精品久久久久久久| 精品国产乱码久久久久久虫虫漫画| 精品久久久久久国产91| 成人444kkkk在线观看| 国产日韩欧美在线视频观看| 日韩成人av一区| 亚洲日韩中文字幕在线播放| 91精品久久久久久久久久久久久久| xxx欧美精品| 日本精品视频在线观看|