日期:2014-05-29 阅读:4168
dmandwp系统 - wordpress系统和DM系统区块建站>>
制作drupal主题时,离不开变量的使用,做为一个前端开发者,了解drupal变量更为重要。所以在网上搜集了一些资料。
如:
$active_db
$base_root
$base_theme_info
theme object
$base_url
$channel
https://api.drupal.org/api/drupal/developer%21globals.php/7
一些变量判断
$base_path
$directory
$is_front
$logged_in
$is_admin
这些不能直接加在template.php里, 要在page.tpl里才有用。
在template,判断首页要 if (drupal_is_front_page())
https://api.drupal.org/api/drupal/modules!system!page.tpl.php/7
--------------------
如果drupal网址是:
http://127.0.0.7:8080/tvdp_company1
主题目录是:tvcompany1
在template.php里:
global $theme;global $base_path;global $base_url;global $base_root;global $directory;
echo $theme; //得到: tvcompany1
echo $base_path;//得到: /tvdp_company1/
echo $base_url;//得到: http://127.0.0.7:8080/tvdp_company1
echo $base_root; //得到: http://127.0.0.7:8080
echo drupal_get_path('theme',$theme); //得到: sites/all/themes/tvcompany1
echo path_to_theme(); //得到: sites/all/themes/tvcompany1
--------------
echo drupal_get_path('libraries', 'ckeditor'); //这会出错 -- 不知为什么?
echo libraries_get_path('ckeditor'); //这个可以得到 sites/all/libraries/ckeditor
具体看:
https://api.drupal.org/api/drupal/includes%21common.inc/function/drupal_get_path/7
----------------------
一些实用技巧:
在主题开发中,在template.php里,我会加:
<?php
global $theme;global $base_url;
$mbdirsm = drupal_get_path('theme',$theme); //path_to_theme();
$mburism = $base_url.'/'.drupal_get_path('theme',$theme); //用于在node--product.tpl加载js,比如fancybox.js
// print libraries_get_path('ckeditor'); //drupal_get_path('libraries', 'ckeditor'); --failed
define('MBDIR',$mbdirsm); //用于require,比如node--product.tpl
define('MBURI',$mburism);
define('DEFIMG',MBURI.'/default.png'); --- 在当前主题下放 default.png
/*some function*/
function alert($v) {
echo '<script>alert("'.$v.'");</script>';
}
function pre($v) {
echo '<pre>'.print_r($v,1).'</pre>';
}
--------------------------------
在 node--product.tpl.php里
我会用下面代码去另外加载:
<?php
if (!$page):
require(MBDIR.'/templates/display/grid.tpl.php'); //这里就用到了上面的MBDIR
endif; ?>
-------------------------------