以前在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中插入各种代码也一样可以使用。
评论