Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

All other Modules /

Discuss all other Modules here.

Moderators: martimiz, Sean, biapar, Willr, Ingo, swaiba, simon_w

Trying to extend event_calendar with minor change, adding rollover popup/tool tip to hasEvent class


Go to End
Reply


19 Posts   1947 Views

Avatar
TF-35Lightning

Community Member, 137 Posts

9 August 2010 at 7:18pm

Hello unclecheese,
I am trying to extend your event_calendar so that I get a rollover popup when I hover the cell <td class="hasEvent">.

Now I have got the jQuery and CSS worked out so this can popup I just neeed to be able to add another field to the CalendarEvent.php so that I can enter some brief text for the rollover to show, and I need to be able to update what the $LiveCalendarWidget outputs so that it shows:

<td class=" hasEvent"> <a href="/silverstripe/silverstripe-v2.4.1/calendar/view/20100820">20<span>This is what will show in the rollover popup</span></a></td>

instead of:

<td class=" hasEvent"> <a href="/silverstripe/silverstripe-v2.4.1/calendar/view/20100820">20</a></td>

So that the text in the span is shown on the rollover.

Are you able to please show me what files I need to modifiy to do this?
For the adding field part I have only ever done this:

class ResultsPage extends Page {
static $db = array(

'Calendarhovertext' => 'Text'

);

function getCMSFields() {
$fields = parent::getCMSFields();

$fields->addFieldToTab('Root.Content.Main', new TextField('Calendarhovertext'), 'Content');

return $fields;
}

etc

I had a look at CalendarEvent.php

I see

static $db = array (
      'Recursion' => 'Boolean',
      'CustomRecursionType' => 'Int',
      'DailyInterval' => 'Int',
      'WeeklyInterval' => 'Int',
      'MonthlyInterval' => 'Int',
      'MonthlyRecursionType1' => 'Int',
      'MonthlyRecursionType2' => 'Int',
      'MonthlyIndex' => 'Int',
      'MonthlyDayOfWeek' => 'Int'
      'Rollovertext' => 'Text'
   );

I presume I add 'Calendarhovertext' => 'Text' to here.

The public function getCMSFields()
   {
      $f = parent::getCMSFields();

function looks a bit different than normal, what do I do there???

If you could please show me how to modify that <td> output and what to do with this field would be great.

Avatar
UncleCheese

Forum Moderator, 4096 Posts

10 August 2010 at 1:36am

You can just copy LiveCalendarWidget.ss to your theme_dir/templates/Includes and change what you need to.

Avatar
TF-35Lightning

Community Member, 137 Posts

10 August 2010 at 3:37pm

UncleCheese

I have copied the LiveCalendarWidget.ss
to my
themes/tutorials/templates/Includes

directory which I am testing on, but it appears that the LiveCalendarWidget.ss is still being read out of the event_calendar/templates directory.

I did a flush and a dev build but still it gets read from there. Is there anything else I have to do to it?

Thanks for the help

Avatar
TF-35Lightning

Community Member, 137 Posts

10 August 2010 at 3:42pm

also UncleCheese I see under LiveCalendarWidget.ss

      <% control Days %>
         <td class="$Today $OutOfMonth $CurrentDay $HasEvent">
          <a href="$ShowDayLink">$Number</a>
         </td>
<% end_control %>

Now how do change this control / what is written for this cell for the $HasEvent class only ???

Avatar
UncleCheese

Forum Moderator, 4096 Posts

10 August 2010 at 4:31pm

Actually, scratch that. It should go in your parent templates directory, not Includes.

Avatar
UncleCheese

Forum Moderator, 4096 Posts

10 August 2010 at 4:32pm

<% if HasEvent %>

Avatar
TF-35Lightning

Community Member, 137 Posts

10 August 2010 at 4:43pm

ok thanks for that unlcecheese, so now I have

      <% control Days %>
         <td class="$Today $OutOfMonth $CurrentDay">
          <a href="$ShowDayLink">$Number</a>
         </td>
<% if HasEvent %>
<td class="$HasEvent">
          <a href="$ShowDayLink">$Number<SPAN>This is my rollover text</SPAN></a>
         </td>
<% end_if %>
<% end_control %>

But now I double up the hasEvent day in my calendar, so I have day 20, I get a cell with has_Event and one without.

Screenshot
http://gyazo.com/c2c102c0e2984abc2222679b283db040.png

How do I stop that?

Avatar
TF-35Lightning

Community Member, 137 Posts

10 August 2010 at 6:18pm

dont worry unclecheese I worked it out

<% control Weeks %>
      <tr>

   <% control Days %>
   <% if HasEvent %>
<td class="$HasEvent">
          <a href="$ShowDayLink">$Number<SPAN>This is my rollover text</SPAN></a>
         </td>
<% else %>
      
         <td class="$Today $OutOfMonth $CurrentDay">
          <a href="$ShowDayLink">$Number</a>
         </td>

<% end_if %>
<% end_control %>
         <td class="showWeek">
<a title="<% _t('SHOWWEEK','Show week') %>" href="$ShowWeekLink">&laquo;</a>
         </td>

      </tr>
<% end_control %>

Go to Top