在calendar模块中,默认的事件显示都是同一种颜色,如果想针对不同类的事件显示不同的颜色以示区别.
如我的事件有:培训,聚会,学习,开会这么几类,想在calendar中用不同的颜色标示出来.应该怎么做?
我的做法,启用drupal的核心模块Taxonomy来对事件进行分类.然后去修改event视图中的模板,在模板中利用不同的CSS类的设置来显示不同类别的事件.
- 当然是启用Taxonomy,增加一个分类名称如:事件类型,加入术语如"培训,聚会等内容"
- 修改event的视图,在显示字段中加入分类:Term这个字段
- 然后去修改视图中的Theme: Information项,因为我不想在日历中显示分类,而仅仅想把term的值作为一个CSS的类别进行输出,所以在使用的模板目录下建立一个名为views-view-field--event--name.tpl.php空文件,不对它做任何输出.
- 复制calendar目录下theme目录下的文件calendar-day-node.tpl.php calendar-month-node.tpl.php calendar-week-node.tpl.php 到模板目录中去.
- 修改这些文件的第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 ?>">
- 这里所指的$node->term_data_tid是一个数字,要自己先看一下
- 在模板文件的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中就能用不同颜色来显示不同类别事件
最新评论