我接觸Drupal 10和Twig不久,需要在Twig模塊中添加某個Views的内容,詢問ChatGPT給我了兩種方案:一是自定義模塊中用代碼來實現,另一個是采用Twig Tweak這個模塊,我查看了這個模塊,有10多萬的網站在使用
模塊
這是 模塊 分類的頁面,點擊下面标題查看詳細文章内容:
我們自己運營的網站對于界面的要求不是太苛刻,一般都是一個Drupal網站使用同一個主題皮膚,最近在為用戶開發一個項目的時候用到Drupal,希望不同的内容對應不同的顯示界面,我先是建議同事可以在page.tpl.php中添加一些判斷來實現,但要動代碼比較麻煩,後來找了一個現成的Drupal模塊:Content Theme,可以實現一下功能:
- 分配一個主題給所有内容類型(覆蓋系統默認主題)
- 分配一個主題給指定的内容類型(覆蓋給所有内容類型指定的主題以及系統默認主題)
- 分類一個主題給指定的内容節點(覆蓋内容類
前段時間做了“一個獨立可用的中文簡體繁體轉換PHP程序”,嘗試“Drupal中文網站簡體版本自動生成一個對應的繁體版本”,并在包括我的博客在内的幾個網站上實施,觀察沒有什麼大的問題,現在準備實施到更多的網站中,就幹脆把PHP程序擴展一下做成一個Drupal模塊,這個模塊就隻有2個文件:
- zh_convert.info :模塊定義文件
- zh_convert.module :模塊函數文件
其中zh_convert.info内容如下:
一直以來我們放在國外服務器上的網站在國内訪問都很慢,當網站中包含有Google地圖等内容的時候,更是在國内訪問會被卡住,等待幾十秒後才打開頁面剩餘部分,而地圖部分也是空白。
去年在做ipshu.com網站的時候也是遇到這個問題,因為這個站本身就是判斷IP地址的,所以也方便解決,當時記錄了一篇博客《讓國内國外都可以調用Google地圖API》,采用的其中第二種辦法。
但其它放在國外的網站依然沒有解決,昨天幹脆去編寫了一個簡單的Drupal模塊in_china(放在本文的附件中),主要作用就是定義一個PHP函數in_china(),用于判斷
我們以前在使用MediaWiki的時候注意到系統提供的搜索框功能很強大,每輸入一個字母或者數字、漢字的時候都會出現一個下拉列表顯示出包含已經輸入内容的文章标題,點擊即可進入,和Google、百度這樣的搜索引擎的搜索框很相似。如下圖:
而Drupal的内置搜索功能就沒有這樣的功能:不能随着輸入出現下拉提示、沒
以前Drupal網站中遇到需要對Views的輸出進行一些變換的時候,一般是通過安裝Views PHP這個模塊,在Views中添加Global PHP字段,在其中設置讀取什麼值、進行什麼變換、輸出什麼内容,這個方式很早就開始用了,Drupal 6和Drupal 7都用過。但缺點是設置麻煩,還可能會引起負載的升高。
最近在調試一個新的網站中就遇到數據量大的時候,服務器報500錯誤,甚至導緻阿裡雲服務器死機的情況。檢查後發現都是與Views相關,先安裝了Views PagerLite來減少MySQL的Count指令,但依然有不少内存不足的報錯。
以前托管服務器或者租用的服務器一般都是100M共享的帶寬,很少出現機器帶寬被占滿的情況,去年開始采用阿裡雲平台後,帶寬就是一個不得不考慮的成本因素,我們一般都是每台ECS購買的10M左右帶寬,每年費用已經不少了,而投入使用後很輕易就會被占滿,關鍵是網站的流量并沒有特别提升,廣告收入沒有增加,成本卻在大幅提高,還導緻正常用戶訪問變慢、困難。
同事在Linux服務器上安裝了一個iftop來查看帶寬占用情況,很容易就發現了是搜索引擎的爬蟲抓取sitemap.xml這樣的網址占用了很大帶寬,我們網站系列多、頁面多、還有多語言或者手機版,網站地圖就特别的多,如果爬蟲來得
所謂蜜罐技術是指的引誘垃圾發帖的機器人進入我們設置的陷阱,正常的人類發帖者是不會受到影響的,而機器人不能分辨、進行了上當的操作,從而被我們識别、屏蔽。
Drupal中有一大類反垃圾模塊都是用的這種技術,其中有honeypot, botcha, hidden captcha, spamicide等,我看hoeypot的安裝量最大、drupal 6/7/8都支持,就選用了這個。
安裝很簡單,設置也隻有一個頁面,如果需要批量安裝也可以用命令drush dl honeypot, drush en honeypot來執行,站内模塊設置的話,我去在
網站隻要是打開了用戶反饋信息、留言評論的功能就避免不了被垃圾騷擾,無論是以前用過的MediaWiki還是現在主要用的Drupal都是這樣,其它各自現成的網站軟件或者自己編寫的軟件都會遇到這種讨厭的問題。
最常見的就是安裝驗證碼模塊,不過從我們實用中發現還是有不少垃圾發送者可以破解驗證碼而繼續發送垃圾,後來我又嘗試了Mollom這個“智能”反垃圾模塊,使用了綜合的辦法來防範,确實很有效,不過去年開始随着中國大陸與國外網絡之間的連接越來越受GFW的影響,總是看到無法連接web service的報錯,被迫去掉了這個模塊(這個模塊還有一個缺點就
在升級Drupal網站時需要特别注意曾經對哪些模塊進行過更改,我們這裡主要修改過的記錄一下:
- xmlsitemap:修改了xmlsitemap.page.inc來适合多語言、手機版的xmlsitemap;
- transliteration:子目錄data下糾正了一些錯誤的拼音;
- languageicons:子目錄flags下添加了更多語言國家國旗。