Drupal API

drupal 7全局变量和判断--drupal主题API

日期:2014-05-29 阅读:3182

制作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; ?>

 

-------------------------------

<<点击返回

Drupal7视频教程 Drupal7主题 Drupal7最新文档 Drupal7推荐文档
  • 暂无内容!
  • 暂无内容!