Blogs

建立节点类型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;
}
?>

提取Google Project边栏的风格

tag

效果可以看http://code.google.com/p/google-code-prettify/

原理是 利用3层的box边框大小

  • 行内容一
  • 行内容二
  • 行内容三

drupal6.x分页风格仿digg

闲来无事修改drupal6.x分页风格仿digg,效果如下:

drupal_6x_pager_digg_skin_001
drupal_6x_pager_digg_skin_002

RGBa 浏览器支持

tag

原文:RGBa Browser Support

使用例子:

div {background: rgba(200, 54, 54, 0.5);}

关于颜色请参考:http://www.w3.org/TR/2003/CR-css3-color-20030514/#rgba-color

使用RGB:

<div style="background: rgb(0, 0, 128); height: 100px; width: 100px;"></div>

使用RGBA:

jQuery Marquee

跑马灯效果,项目:http://plugins.jquery.com/project/marquee
演示页:http://remysharp.com/demo/marquee.html

jQuery版本1.2.x

    <script src="jquery-1.2.6.js" type="text/javascript"></script>
    <script src="../downloads/jquery.marquee.js" type="text/javascript"></script>
 
    <script type="text/javascript">
    <!--
    $(function () {
        // basic version is: $('div.demo marquee').marquee() - but we're doing some sexy extras
       
        $('div.demo marquee').marquee('pointer').mouseover(function () {
            $(this).trigger('stop');

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

drupal5.x升级到drupal6.x的过程好漫长

在没有安装过多的非drupal核心模块,升级应该很轻松,然而当站点安装如:CCK、image、ImageField等模块,升级是件很难过的事情,频繁的启用模块、更新模块,哪一个步骤出错,还要重新来过,当然在升级过程中还要频繁的备份数据库,累啊!

其中还尝试在5.x下将image模块转到ImageField模块(参考:A script for migrating from image.module to imagefield),不过这个转换还不够完善,比如说:通常我们使用image模块来做相册,免不了要启用image模块的子模块image_gallery模块来组织相册的分类,当将image模块转到ImageField模块后,一定还要卸载image模块和相关的子模块,image_gallery模块卸载会将该模块创建的分类删除,解决办法就是到数据库手动修改。并且发现很多残余数据在variable、blocks、sequences、menu表。

如果站点内容不多,我觉得直接用drupal6.x重建要比5升到6可靠点,当然要看有没有升级的必要。

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

不加载模块带的css文件

制作调试Dupal主题时经常会遇到系统模块自带的css文件带来的麻烦,最初的做法是从新定义相关的样式属性,后来看到Advanced Theme Construction Kit (ATCK)才长了见识,会发现原来可以这样。

来学习怎样不加载模块带的css文件

一、在主题的template.php中增加:

function atck_styles() {
  $css = drupal_add_css(path_to_theme() .'/page-layout.css', 'theme', 'all');
  $css = drupal_add_css();
  unset($css['all']['module']['modules/node/node.css']);
  unset($css['all']['module']['modules/system/defaults.css']);
  unset($css['all']['module']['modules/user/user.css']);
  return drupal_get_css($css);
}

同步内容