以前在MediaWiki中是通過修改皮膚文件、MediaWiki namespace下頁面等方式來在頁面中添加js,css等代碼的,現在使用Drupal後也必須找到合适的辦法,最近進行的一些實驗記錄如下:
1. 插入辦法
可以修改php文件或者block區塊:
1.1 直接修改php文件
最直接的辦法是去themes/garland下修改page.tpl.php,将需要插入的Google DFP、Analytics、css文件鍊接等代碼嵌入到合适的地方。
1.2 添加Block區塊
這個辦法很靈活,可以設置多個Block來插入不同的代碼,每個Block還可以設置不同的顯示條件(例如隻出現在“博客/*”這樣的頁面中)、不同的出現位置。
1.3 單獨頁面中添加
對于代碼隻需要添加到少量頁面中的情況,可以在這些個别頁面中用php方式編輯,代碼隻出現在這些頁面的head中。
2. 插入代碼
Block中辦法是通過插入php代碼或者html代碼來實現的,當需要插入到</head>之前時,可以用這樣的代碼分别插入HTML代碼和JavaScript代碼:
2.1 head中HTML代碼
調用drupal_set_html_head,例如:
<?phpdrupal_set_html_head( '<style type="text/css" media="all">@import "/themes/garland/add.css";</style><script type="text/javascript" src="http://partner.googleadservices.com/gampad/google_service.js"></script>');?>
2.2 head中JavaScript代碼
調用drupal_add_js,例如:
<?phpdrupal_add_js('var _gaq = _gaq || [];_gaq.push(["_setAccount", "UA-241337-4"]);_gaq.push(["_trackPageview"]);(function() {var ga = document.createElement("script"); ga.type = "text/javascript"; ga.async = true;ga.src = ("https:" == document.location.protocol ? "https://ssl" : "http://www") + ".google-analytics.com/ga.js";var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(ga, s);})();', 'inline');?>
2.3 body中各種代碼
後面在Block、單獨頁面中插入的辦法顯得更加靈活一些,head以外的body中插入各種代碼也一樣可以使用。
评论