drupal 5.x

image模块转换到CCK ImageField

关于image模块转换到CCK ImageField的讨论可以看http://drupal.org/node/201983这篇文章,从去年我就一直关注这个问题,下面我来谈谈我的经验。

我的网站使用的image模块版本是5.x-1.9,并启用了image_gallery、image_attach、image_import子模块,image_attach只是安装了但没有用到。

http://drupal.org/node/201983这篇文章有很多热心人发布了转换代码,但经过我测试都有问题,最后经我修改测试终于弄好了。

这里讲的image模块版本是5.x-1.9,6.x的image模块转换到CCK ImageField,请看:http://drupal.org/node/432860

由于我没有安装video.module以及image_attach没有任何数据,所以这部分代码我不能保证可行。

下面代码中我保留原作者的注释。

  • 转换之前请备份你的数据和文件

drupal 5 升级到drupal 6 的注意事项

当drupal 6的版本不断完善,很多drupal爱好者都会忍不住想把站点升级drupal 6,体验诸多的新功能。那么在升级到之前需要注意哪些事项呢?我经过数次测试得到了一些经验和大家分享一下。

在你开始之前一定要备份数据和文件,最好能做到执行每一步数据操作都要备份。必要时在备份之前清楚浏览器缓存,我曾经吃过苦头的,所以最好能在测试站点进行操作,确认一切都正常才可在正式站点操作。

另外很重要的你一定要知道,是你的服务器环境对drupal 6的支持程度,尤其是虚拟主机的用户。我就遇到"gone away"的问题,请看 http://drupalchina.org/node/7577

一、 drupal 5的菜单如果是中文名称建议改成英文字母,否则升级到drupal 6后,菜单的标识是不能更改的,中文名会被替换成很多“_”

我截了2个版本添加菜单的界面

drupal 5添加菜单的界面

建立节点类型node-type模板

在默认安装的drupal后,安装程序会创建2个内容类型:page和story。所有的节点内容输出都是通过node.tpl.php完成,无论是在摘要(teaser)页还是内容页(page)。

如果需要我们可以每个内容类型或单个内容类型建立节点(node)模板,例如:
node-story.tpl.php

推荐方法是:复制主题模板目录中的node.tpl.php另保存为:node-story.tpl.php
注意:node.tpl.php必须在你的主题目录中,不要将node.tpl.php重命名为node-story.tpl.php

如果你还有其他内容类型需要定制,规则是:node-[node-$type].tpl.php
什么是node-$type?你可以URL到admin/content/types 查看。
加入你启用了forum和book模块,可以建立:node-forum.tpl.php 、node-book.tpl.php

建立node-[node-$type].tpl.php不是必须的,根据需要定制,如果大同小异就没有必要了。

另外在drupal 6.x中,当建立了新的模板文件需要注册,方法是在"管理--> 站点设置-->性能" URL:admin/settings/performance 点击"清除缓存数据"按钮

建立node-1.tpl.php这样的模板

在使用drupal建站时,可能会遇到单独定制某个节点模板的需要,(例如想建立node-1.tpl.php这样的模板)在drupal.org找到了相关的解决办法。

需要复制或合并代码到你的主题模板的template.php
drupal 6.x

<?php
function phptemplate_preprocess_node(&$vars) {
    $vars['template_files'][] = 'node-' . $vars['nid'];
    return $vars;
}
?>

Drupal 4.7.x 和 Drupal 5.x

<?php
function _phptemplate_variables($hook, $vars = array()) {
  switch ($hook) {
    case 'node':
      $vars['template_files'] = array('node-'. $vars['nid']);
      break;
  }
  return $vars;
}
?>

drupal6.x的菜单路径与druoal5.x的菜单区别

drupal6.x的菜单路径与druoal5.x的菜单路径相比更加严格的区分内部路径(drupal所产生的路径),如我们使用PHPBB论坛,该论坛是在网站根目录下的bbs,在drupal5.x中可以添加路径为bbs,而在drupal6.x下必须使用http://域名或IP/bbs
值得注意的是在drupal5.x升级到drupal6.x之前将这些路径临时修改成drupal所产生的路径(如node/1),不然升级后在菜单管理的中会找不到该菜单,只有手动通过修改数据库了。

drupal6.x认为无效的菜单路径就不会显示后台的菜单管理界面中,当然这些主要表现在版本升级,在正常操作,非法的菜单路径是不会被保存的。

Drupal 6.9 和 5.15 发布

原文:
Drupal 6.9 and Drupal 5.15, maintenance releases fixing problems reported using the bug tracking system, as well as critical security vulnerabilities, are now available for download.

下载 Drupal 6.9

下载 Drupal 5.15

摘要页2列的简单实现

原文:Two columns of teasers

编辑主题template.php,增加代码:

function _exampletheme_nodebreak($node) {
  static $count;
  if ($node->sticky) {
   return TRUE;
  }
  else {
    $count = is_int($count) ? $count : 1;
    $return = ($count % 2) ? FALSE : TRUE;
    $count++;
    //dprint_r('WOOT');
    return $return;
  }
}

然后编辑主题node.tpl.php,在最后增加代码:

<?php if (($page == 0) && _exampletheme_nodebreak($node)): ?>
<br class="clear" />
<?php endif; ?>

修改主题style.css,增加

#contentcenter .node.teaser {
  float: left;
  width: 223px; //for fluid layout use 50%
  margin-left: 20px; //for fluid layout set to 0;
  padding: 0;
}

交互的摘要页style class

原文:Alternating Teaser Classes

该文章通过修改主题node.tpl.php文件,到达在摘要列表页为node指定不同的样式风格。

主要增加了:

<?php global $node_count; print ($node_count++ % 2) ? 'odd' : 'even'; ?>

来判断是 odd 还是 even,这样我们就可以为 odd 和 even 指定不同的风格样式,如交互背景或是左右分列显示。

theme_item_list生成的li标签添加不同的style class

theme_item_list生成的li标签是没有指定style class的,我们通过修改达到自己的需要,看下面为li标签增加<li class="odd"><li class="even">

关于 function phptemplate_item_list2 函数请先看让theme_item_list生成的列表更易读

让theme_item_list生成的列表更易读

theme_item_list 函数是用于生成主题样式UL、OL等列表,然而在生成这些代码时会发现代码是不会换行的,象<ul><li>...</li><li>...</li></ul>

这篇文章 Add newlines to theme_item_list 指导我们轻松的解决这个问题,对于像我这样不会写代码的人来说帮助不小。

同步内容