实用PHP与Javascript代码

Drupal有很多模块来实现不同的功能扩展,但其中的很多功往往可以通过简单的PHP/Javascript代码段来实现。这部分列出一些用户提交的实用PHP及Javascript代码段,这些代码段可以应用于Drupal页面、区块或主题中,来实现特定的功能。如果您也有一些实用的代码,欢迎在这里分享。

页面右上角会有Drupal版本分类,页面中也会尽量注明适用的Drupal版本号,请注意选择适当的代码。

注意:这些代码都是由用户提出,我们并不能保证其功能与安全性,请谨慎使用。某些恶意代码可能会破坏您的站点或带来安全问题,请尽量读懂代码是如何工作的,至少先在测试站点试用并备份您的站点。

PHP区块代码

下面列出的一些用户提交的常用的区块代码,您可以直接将它们复制到区块中(记得开启PHP输入格式),就可以实现特定的功能。

注意:使用前请仔细检查代码,并在测试站点试验。恶意代码可能会破坏您的站点。

显示数据库大小

下面这段block代码,通过计算数据库表单与索引的大小来显示Drupal使用的MySQL数据库大小。由于要查询所有数据库表单,执行起来可能比较慢,最好限制在管理员页面显示。

<?php
function db_size_info($dbsize) {
 
$bytes = array('KB', 'KB', 'MB', 'GB', 'TB');
  if (
$dbsize < 1024) $dbsize = 1;            
  for (
$i = 0; $dbsize > 1024; $i++) $dbsize /= 1024;
 
$db_size_info['size'] = ceil($dbsize);
 
$db_size_info['type'] = $bytes[$i];
  return
$db_size_info;
}
// Database size = table size + index size:
$rows = db_query("SHOW TABLE STATUS");
$dbssize = 0;
while (
$row = mysql_fetch_array($rows)) {
 
$dbssize += $row['Data_length'] + $row['Index_length'];
}
print
"$dbssize bytes<br />";
$dbssize = db_size_info($dbssize);
print
"or<br />";
print
"{$dbssize['size']} {$dbssize['type']}";
?>

PHP区块可见性代码

Drupal从4.7开始引入了区块可见性设置,可以通过简短的PHP代码来控制区块只在特定的页面显示。在页面显示时会自动检查该段代码,当代码返回TRUE时,就显示区块;当代码返回FALSE时,则不在该页面显示此区块。

基本逻辑如下:

<?php
 
if (condition) {
    return
TRUE// block will be shown
 
}
  return
FALSE;
?>

或者简化为:

<?php
 
return (condition);
?>

在区块管理页面可以开启使用PHP代码设定区块可见性,然后填入相关的代码就可以了。