17488 Posts in 4473 Topics by 1978 members
|
Page:
1
|
Go to End | |
| Author | Topic: | 1448 Views |
-
Multiple articles under one date

2 October 2008 at 7:47am Last edited: 2 October 2008 8:41am
I'm trying to get multiple articles to show up under one date. Right now my DataObject is retrieving all the right info, but I'm not sure how to manipulate the data once I have it. I'm printing something like using the code found in tutorial 2:
10-01-08
Article Name - Read More
10-01-08
Article Name - Read More
09-28-08
Article Name - Read More
09-28-08
Article Name - Read Moreand so on. I only need to see the date once for each day however.
10-01-08
Article Name - Read More
Article Name - Read More
09-28-08
Article Name - Read More
Article Name - Read More -
Re: Multiple articles under one date

2 October 2008 at 5:50pm
perhaps trying sorting the dataobject by date and then getting it to return a variable based on peaking back to the object which was returned previous in the data array and testing that against the current items date field.
then i the in the template build your page based on a if statement which can test for the variable.
If no date was present it is obviously the the start of the list
If the date is the same as the current date is belongs under the same list
If the date is different then it is a new date, start a new list. -
Re: Multiple articles under one date

10 October 2008 at 6:10am Last edited: 11 October 2008 4:48am
Thanks Blackdog.
I've got my DataObject ($articles) full of all of the data I need. I'm not sure how to iterate through it with the if statements. Do I need to do something like
foreach($articles as $article) {
$curDate = $article->Date;
if($curDate != $prevDate) {
$prevDate = $curDate;
} else {
$prevDate = $prevDate}
}
return $prevDate;How can I reference this variable from the .ss page? Do I need to declare it in .php first? I guess I'm also not clear on how to run an if statement on the .ss page. I appreciate any and all help is this is the last problem I'm facing before launching my new site.
Thanks
-
Re: Multiple articles under one date

14 October 2008 at 1:26am
<% if yourVariable = someValue %>
do this
<% else_if %>
else do this
<% end_if %> -
Re: Multiple articles under one date

17 October 2008 at 8:28am
Blackdog,
I'm still having trouble referencing my variables from the .ss page. Here is what I have. Maybe you can see what I'm doing wrong.Schedule.php:
<?php
class Schedule extends Page {
static $db = array();
static $has_one = array();
static $allowed_children = array('ArtistPage');
}
class Schedule_Controller extends Page_Controller {
function SortArtists($limit, $sort="Date ASC") {
$artists = DataObject::get("ArtistPage", "", $sort, "", $limit);
$prevDate = "1";
foreach($artists as $artist) {
$curDate = $artist->Date;
if($curDate != $prevDate) {
$prevDate = $curDate;
$showDate = 1;
} else if($curDate == $prevDate) {
$showDate = 0;
}
}
return($artists) ? $artists : false;
}
}
?>and then Schedule.ss:
<div id="Content" class="typography">
<h2>$Title</h2>
$Content
<% control SortArtists(10) %>
<% if showDate == 1 %>
<h3>$Date</h3>
<h4><a href="$Link" title="Read more on "{$Title}"">$Title</a></h4>
<br />
<% end_if %>
<% if showDate != 0 %>
<h4><a href="$Link" title="Read more on "{$Title}"">$Title</a></h4>
<br />
<% end_if %>
<% end_control %>
</div> -
Re: Multiple articles under one date

22 October 2008 at 10:09am Last edited: 22 October 2008 10:09am
Hey dude, it's me.
I don't have time at the moment to look at the API in detail, but one simple way to do this would be to make a holder page type for the dates. You'll be creating an extra layer of depth in the content tree, but you'll be able to organize your pages easily by 'date' simply using the Children methods already defined in the controller. Very roughly, without code, something like:
Site
-> News (ArticleDateHolder)
->-> October 1, 2008 (ArticleHolder)
->->-> Article 1 (Article)
->->-> Article 2 (Article)
->->-> Article 3 (Article)
->-> October 2, 2008 (ArticleHolder)
->->-> Article 1 (Article)
->->-> Article 2 (Article)
->->-> Article 3 (Article)If you prefer to just add articles without the extra layer, let me know and I'll take a closer look at the API so that I can figure out the best way to query for results. Off the top of my head, I think you'll want to nest two controller methods in the .ss file, one that pulls unique records based on date (one record for each unique date), then another that pulls records based on each date. Obviously these methods need to be defined in the .php file. The .ss template might look something like this (again, very roughly):
<% control GetUniqueDates %>
<span class="newsDateTitle">$Date.Format(m.d.Y)</span><br/><% control GetArticlesByDate(Date) %>
<div class="newsItem">
<h5><a href="$Link" title="Read more on "{$Title}"">$Title</a></h5>
<span class="newsSummary">$Content.FirstParagraph <a href="$Link" title="Read more on "{$Title}"">Read more >></a></span>
</div>
<% end_control %><% end_control %>
Hope this helps. Again, I can try to take a closer look at the API in order to help you with the controller methods, if you decide to continue with the second (and perhaps more reasonable) option. Also, I just bought a guitar, and am going to start taking some lessons here.
-
Re: Multiple articles under one date

23 October 2008 at 6:22am
Yes, I have been thinking about just adding another level of depth by making the date's have their own page but it seems a little unnecessary. Also I'm not sure I could get the artists to show up under their respective parent date on the schedule page. Really I just need to know how to reference a variable i created on the .php page. It seems like it should be easy but I have had no luck so far.
| 1448 Views | ||
|
Page:
1
|
Go to Top |


