用户登录

Drupal资源链接

http://zhupou.cn
drupal布道者,改成了"老葛的Drupal培训班",专心于培训事业
http://drupal.org
官方网站
http://drupalchina.org
中文的官方网站
http://acquia.com/
本站就是用这个版本构建的

针对不同的事件用不同的颜色显示

在calendar模块中,默认的事件显示都是同一种颜色,如果想针对不同类的事件显示不同的颜色以示区别.

如我的事件有:培训,聚会,学习,开会这么几类,想在calendar中用不同的颜色标示出来.应该怎么做?

我的做法,启用drupal的核心模块Taxonomy来对事件进行分类.然后去修改event视图中的模板,在模板中利用不同的CSS类的设置来显示不同类别的事件.

  1. 当然是启用Taxonomy,增加一个分类名称如:事件类型,加入术语如"培训,聚会等内容"
  2. 修改event的视图,在显示字段中加入分类:Term这个字段
  3. 然后去修改视图中的Theme: Information项,因为我不想在日历中显示分类,而仅仅想把term的值作为一个CSS的类别进行输出,所以在使用的模板目录下建立一个名为views-view-field--event--name.tpl.php空文件,不对它做任何输出.
  4. 复制calendar目录下theme目录下的文件calendar-day-node.tpl.php calendar-month-node.tpl.php calendar-week-node.tpl.php 到模板目录中去.
  5. 修改这些文件的第42行左右,这是对于calendar-day-node.tpl.php其它文件也类似
     <div class="calendar dayview" id="<?php print $node->date_id ?>">
    给它们增加一个样式
    <div class="calendar dayview style<?php print $node->term_data_tid  ?>" id="<?php print $node->date_id ?>">
  6. 这里所指的$node->term_data_tid是一个数字,要自己先看一下
  7. 在模板文件的CSS中增加特定的CSS如
    .calendar-calendar td .inner div.style4 div,
    .calendar-calendar td .inner div.style4  div a {
      border:none;
      background:#fcc;//这个就是用来修改不同背景颜色的
      padding:0 2px;
    }
    .calendar-calendar td .inner div.style2 div,
    .calendar-calendar td .inner div.style2  div a {
      border:none;
      background:#ccc;
      padding:0 2px;
    }

OK,在calendar中就能用不同颜色来显示不同类别事件