FullCalendar自定义标题标题

时间:2011-09-14 07:19:07

标签: javascript jquery fullcalendar

我需要在日历中显示自定义标题标题。我正在处理16个日历,我需要每个日历都显示自己的标题。我已经尝试了所有可以修改代码部分的内容:

firstDay: <?php echo $iFirstDay; ?>,
header: {
    left: 'prev,next today',
    center: 'title',
    right: 'month,agendaWeek,agendaDay'
},

但每当我编辑center以添加除title之外的其他内容时,我的日历根本不会显示任何标题。我该怎么办?

4 个答案:

答案 0 :(得分:29)

如果您使用 fullCalender v2 ,则必须将它们放在scare括号之间来转义字符串。这是因为moment.js库(see the moment doc)。

那就是

firstDay: <?php echo $iFirstDay; ?>,
header: {
  left: 'prev,next today',
  center: 'title',
  right: 'month,agendaWeek,agendaDay'
},
titleFormat: '[Hello, World!]',

答案 1 :(得分:10)

您不会更改center属性。这只是指定放置在标题中心的内容。

如果您想更改标题本身的内容,则需要更改titleFormat

firstDay: <?php echo $iFirstDay; ?>,
header: {
  left: 'prev,next today',
  center: 'title',
  right: 'month,agendaWeek,agendaDay'
},
titleFormat: '\'Hello, World!\'',

titleFormat使用格式化日期作为值,因此如果要显示文字文本,则需要将其包装在单引号中,但只需记住将其转义。

答案 2 :(得分:0)

您可以在呈现日历之前,或者甚至在页面的最顶部,将名称戳入:

<?php
echo "<center><h1>$fullname</h1></center>";
?>

丑陋,但有效。

答案 3 :(得分:0)

您可以尝试一下。我用它来破解佛教时代的展示:

const computeTitle = FullCalendar.View.prototype.computeTitle;
FullCalendar.View.prototype.computeTitle = function (dateProfile) {
  const $ = jQuery;
  if (dateProfile.currentRangeUnit === 'month') {
      const cal = jQuery(".js-drupal-fullcalendar").fullCalendar('getCalendar');
      const era = cal.moment(dateProfile.date).year() + 543;
      return cal.moment(dateProfile.date).format('MMMM') + ' ' + era;
  }

  return computeTitle(dateProfile);
};

PS:此拉取请求似乎过时了:https://github.com/fullcalendar/fullcalendar/pull/3532