Event Calendar
10 posts by 3 authors in: Forums > CMS Builder
Last Post: August 21, 2009 (RSS)
By KCMedia - July 21, 2009
I have a need for this kind of calendar but i am having problems trying to get what i need.
The requirements in CMS are
Month "list" all the months of the year
Day "list" fri, sat, sun, mon only
Date "date"
Title "text"
I can get that working right but getting it to show is the problem.
I want to be able to group all the dates together and lsit them as per this example php file.
The problem is getting them to display right i need to group the months together and show all the dates that in the cms for that month and then so on for each month after that.
The starting month will always be Sept on though that but sometimes there will be missing months.
thanks
Craig
Craig
KC Media Solutions
www.kcmedia.biz
Re: [kcmedia] Event Calendar
By ross - July 21, 2009
Thanks for posting!
The first thing you'll want to do is just have that section sorted on the month field so all your dates are grouped by month. That can be done in either the section editor or right in the viewer code on your list page.
Once you have that setup, I assume you want to have your output look something like this:
September
- date 1
- date 2
- date 3
October
- date 1
- date 2
- date 3
So each month name only shows up once. To do that, you'll need to create a variable to keep track of which month you are currently displaying. The basic idea will look like this:
<?php $lastMonth = ""; ?>
<?php foreach($eventRecord as $record): ?>
<?php if ($record['month'] != $lastMonth): ?>
<?php echo $record['month']; ?>
<?php endif ?>
<?php echo $record['date']; ?>, <?php echo $record['date']; ?>
<?php endforeach ?>
You'll need to make sure the foreach part is the same as what you already have.
Does that all make sense? Let me know what you think :).
Cheers,
Ross Fairbairn - Consulting
consulting@interactivetools.com
Hire me! Save time by getting our experts to help with your project.
Template changes, advanced features, full integration, whatever you
need. Whether you need one hour or fifty, get it done fast with
Priority Consulting: http://www.interactivetools.com/consulting/
Re: [ross] Event Calendar
By KCMedia - July 22, 2009
thanks for that but i cant understand where the code will go here is ourput
<!-- STEP2: Display Records (Paste this where you want your records to be listed) -->
<h1>Fishing Calendar - List Page Viewer</h1>
<?php foreach ($fishing_calendarRecords as $record): ?>
Record Number: <?php echo $record['num'] ?><br/>
Month: <?php echo $record['month'] ?><br/>
Day: <?php echo $record['day'] ?><br/>
Date: <?php echo date("D, M jS, Y g:i:s a", strtotime($record['date'])) ?><br/>
<!-- For date formatting codes see: http://www.php.net/date -->
Text: <?php echo $record['text'] ?><br/>
_link : <a href="<?php echo $record['_link'] ?>"><?php echo $record['_link'] ?></a><br/>
<hr/>
<?php endforeach; ?>
<?php if (!$fishing_calendarRecords): ?>
No records were found!<br/><br/>
<?php endif ?>
<!-- /STEP2: Display Records -->
thanks
Craig
KC Media Solutions
www.kcmedia.biz
Re: [kcmedia] Event Calendar
By ross - July 22, 2009
Based on your code, I'll get you to try this:
<?php $lastMonth = ""; ?>
<?php foreach ($fishing_calendarRecords as $record): ?>
<?php if ($record['month'] != $lastMonth): ?>
<?php echo $record['month']; ?>
<?php endif ?>
<?php echo $record['day']; ?>, <?php echo date("D, M jS, Y g:i:s a", strtotime($record['date'])) ?>
<?php endforeach ?>
Just replace all the code you have in your post with everything in my post. Let me know how you make out :)
Cheers,
Ross Fairbairn - Consulting
consulting@interactivetools.com
Hire me! Save time by getting our experts to help with your project.
Template changes, advanced features, full integration, whatever you
need. Whether you need one hour or fifty, get it done fast with
Priority Consulting: http://www.interactivetools.com/consulting/
Re: [ross] Event Calendar
By KCMedia - July 22, 2009 - edited: August 17, 2014
Hi Ross
I have put that in there have a look what happens now
Hows do i get it into the tables and also get the other feilds to work also.
Craig
KC Media Solutions
www.kcmedia.biz
Re: [kcmedia] Event Calendar
By ross - July 24, 2009
That's odd. Could you post me a copy of that page so I can see how the code looks?
Thanks!
Cheers,
Ross Fairbairn - Consulting
consulting@interactivetools.com
Hire me! Save time by getting our experts to help with your project.
Template changes, advanced features, full integration, whatever you
need. Whether you need one hour or fifty, get it done fast with
Priority Consulting: http://www.interactivetools.com/consulting/
Re: [ross] Event Calendar
By KCMedia - July 26, 2009
Here is the code
<?php
require_once "cmsAdmin/lib/viewer_functions.php";
list($fishing_calendarRecords, $fishing_calendarMetaData) = getRecords(array(
'tableName' => 'fishing_calendar',
'loadUploads' => '0',
'allowSearch' => '0',
));
?>
<?php $lastMonth = ""; ?>
<?php foreach ($fishing_calendarRecords as $record): ?>
<?php if ($record['month'] != $lastMonth): ?>
<?php echo $record['month']; ?>
<?php endif ?>
<?php echo $record['day']; ?>, <?php echo date("jS", strtotime($record['date'])) ?>
<br />
<?php endforeach ?>
<table width="500" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td colspan="3" align="center">"Month"</td>
</tr>
<tr>
<td>"Day"</td>
<td>"Date"</td>
<td>"Text"</td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
Craig
KC Media Solutions
www.kcmedia.biz
Re: [kcmedia] Event Calendar
By Dave - July 27, 2009
If you like I could just have a look at the code directly. Just email CMS and FTP login details and a link to this post to dave@interactivetools.com. Note: email, don't post login details to the forum.
Hope that helps!
interactivetools.com
Re: [ross] Event Calendar
By KCMedia - August 20, 2009 - edited: August 17, 2014
Hi Ross
Sorry for the delay here is a copy of the code still cant get this to work here is the link to the page that is being displayed
<?php
require_once "/home/botany/domains/botanybaygamefishing.com.au/public_html/cmsAdmin/lib/viewer_functions.php";
list($fishing_calendarRecords, $fishing_calendarMetaData) = getRecords(array(
'tableName' => 'fishing_calendar',
'loadUploads' => '0',
'allowSearch' => '0',
));
?>
<br />
<table border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td colspan="3" align="center"><?php $lastMonth = ""; ?>
<?php foreach ($fishing_calendarRecords as $record): ?>
<?php if ($record['month'] != $lastMonth): ?>
<?php endif ?>
</td>
</tr>
<tr>
<td><strong><?php echo $record['month']; ?></strong> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td width="100"> <?php echo $record['day']; ?></td>
<td width="40"><?php echo date("jS", strtotime($record['date'])) ?></td>
<td width="400"><?php echo $record['text'] ?> <?php endforeach ?></td>
</tr>
</table>
Craig
KC Media Solutions
www.kcmedia.biz
Re: [kcmedia] Event Calendar
By ross - August 21, 2009 - edited: August 21, 2009
I think you've got most of the code you need, but it's gotten a little mixed up :).
The "if" block you have is what determines whether to display the month name. It basically checks to see if the month of the current record equals the month of the previous record. The problem in your table is that the part that displays the month isn't actually in the "if" block so it just gets displayed every time regardless.
What I'll get you to do first is take this piece of code out of your table:
<strong><?php echo $record['month']; ?></strong>
and move it up a couple lines so that you have this:
<?php if ($record['month'] != $lastMonth): ?>
<strong><?php echo $record['month']; ?></strong>
<?php endif ?>
Next, I just noticed that there is one bit of code missing from my original idea. You need to load the month of the current record into that $lastMonth variable. To do that, you use this:
<?php $lastMonth = $record['month']; ?>
That goes right before the end of the foreach loop like this:
<?php $lastMonth = $record['month']; ?>
<?php endforeach ?>
Try making those two adjustments and let me know how you make out :).
Cheers,
Ross Fairbairn - Consulting
consulting@interactivetools.com
Hire me! Save time by getting our experts to help with your project.
Template changes, advanced features, full integration, whatever you
need. Whether you need one hour or fifty, get it done fast with
Priority Consulting: http://www.interactivetools.com/consulting/