I am manually building up an array for events and spitting them out, but I am having a hard time sorting it by month (I know Kirby can do this with its built in features but it has to be manual because i’m combining Kirby data with external data).
My array looks like this…
array(7) {
["May"]=>
array(1) {
[0]=>
array(13) {
["ETitle"]=>
string(17) "Test Future Event"
["EStart"]=>
string(19) "2018-05-31T09:00:00"
["EHstart"]=>
string(6) "31 May"
["EHstartTime"]=>
string(5) "09:00"
["EEnd"]=>
string(19) "2018-05-31T17:00:00"
["ELink"]=>
string(42) "http://local.salt/events/event-one"
["EStartMonth"]=>
string(3) "May"
["EStartYear"]=>
string(4) "2018"
["EID"]=>
string(9) "event-one"
["ESrc"]=>
string(6) "kcalev"
["EImg"]=>
string(74) "http://local.salt/thumbs/events/event-one/slide-events-400x300.jpg"
["EDesc"]=>
object(Field)#182 (3) {
["page"]=>
string(16) "events/event-one"
["key"]=>
string(7) "summary"
["value"]=>
string(205) "<p>In et sapien nec felis euismod dictum. Duis nulla tortor, fringilla in augue non, ultricies euismod orci. Praesent nunc lacus, lobortis in urna ut, ultricies lacinia massa. Aenean ac faucibus purus.</p>"
}
["EStartHuman"]=>
string(24) "Thursday, May 31: 9:00am"
}
}
["June"]=>
array(2) {
[1]=>
array(13) {
["ETitle"]=>
string(14) "Another Future"
["EStart"]=>
string(19) "2018-06-01T15:00:00"
["EHstart"]=>
string(7) "01 June"
["EHstartTime"]=>
string(5) "15:00"
["EEnd"]=>
string(19) "2018-06-01T20:00:00"
["ELink"]=>
string(42) "http://local.salt/events/event-two"
["EStartMonth"]=>
string(4) "June"
["EStartYear"]=>
string(4) "2018"
["EID"]=>
string(9) "event-two"
["ESrc"]=>
string(6) "kcalev"
["EImg"]=>
string(74) "http://local.salt/thumbs/events/event-two/slide-events-400x300.jpg"
["EDesc"]=>
object(Field)#203 (3) {
["page"]=>
string(16) "events/event-two"
["key"]=>
string(7) "summary"
["value"]=>
string(209) "<p>Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nullam tempus elit in elit pulvinar ornare. Quisque scelerisque tellus vel arcu luctus, in lacinia turpis blandit.</p>"
}
["EStartHuman"]=>
string(22) "Friday, June 1: 3:00pm"
}
[2]=>
array(13) {
["ETitle"]=>
string(17) "Test Future Event"
["EStart"]=>
string(19) "2018-06-08T09:00:00"
["EHstart"]=>
string(7) "08 June"
["EHstartTime"]=>
string(5) "09:00"
["EEnd"]=>
string(19) "2018-05-11T17:00:00"
["ELink"]=>
string(44) "http://local.salt/events/event-three"
["EStartMonth"]=>
string(4) "June"
["EStartYear"]=>
string(4) "2018"
["EID"]=>
string(11) "event-three"
["ESrc"]=>
string(6) "kcalev"
["EImg"]=>
string(76) "http://local.salt/thumbs/events/event-three/slide-events-400x300.jpg"
["EDesc"]=>
object(Field)#222 (3) {
["page"]=>
string(18) "events/event-three"
["key"]=>
string(7) "summary"
["value"]=>
string(205) "<p>In et sapien nec felis euismod dictum. Duis nulla tortor, fringilla in augue non, ultricies euismod orci. Praesent nunc lacus, lobortis in urna ut, ultricies lacinia massa. Aenean ac faucibus purus.</p>"
}
["EStartHuman"]=>
string(22) "Friday, June 8: 9:00am"
}
}
["October"]=>
array(2) {
[3]=>
array(13) {
["ETitle"]=>
string(14) "Another Future"
["EStart"]=>
string(19) "2018-10-26T15:00:00"
["EHstart"]=>
string(10) "26 October"
["EHstartTime"]=>
string(5) "15:00"
["EEnd"]=>
string(19) "2018-10-26T20:00:00"
["ELink"]=>
string(43) "http://local.salt/events/event-four"
["EStartMonth"]=>
string(7) "October"
["EStartYear"]=>
string(4) "2018"
["EID"]=>
string(10) "event-four"
["ESrc"]=>
string(6) "kcalev"
["EImg"]=>
string(75) "http://local.salt/thumbs/events/event-four/slide-events-400x300.jpg"
["EDesc"]=>
object(Field)#241 (3) {
["page"]=>
string(17) "events/event-four"
["key"]=>
string(7) "summary"
["value"]=>
string(209) "<p>Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nullam tempus elit in elit pulvinar ornare. Quisque scelerisque tellus vel arcu luctus, in lacinia turpis blandit.</p>"
}
["EStartHuman"]=>
string(26) "Friday, October 26: 3:00pm"
}
[8]=>
array(13) {
["ETitle"]=>
string(17) "Test Future Event"
["EStart"]=>
string(19) "2018-10-06T09:00:00"
["EHstart"]=>
string(10) "06 October"
["EHstartTime"]=>
string(5) "09:00"
["EEnd"]=>
string(19) "2018-10-06T17:00:00"
["ELink"]=>
string(43) "http://local.salt/events/event-nine"
["EStartMonth"]=>
string(7) "October"
["EStartYear"]=>
string(4) "2018"
["EID"]=>
string(10) "event-nine"
["ESrc"]=>
string(6) "kcalev"
["EImg"]=>
string(75) "http://local.salt/thumbs/events/event-nine/slide-events-400x300.jpg"
["EDesc"]=>
object(Field)#336 (3) {
["page"]=>
string(17) "events/event-nine"
["key"]=>
string(7) "summary"
["value"]=>
string(205) "<p>In et sapien nec felis euismod dictum. Duis nulla tortor, fringilla in augue non, ultricies euismod orci. Praesent nunc lacus, lobortis in urna ut, ultricies lacinia massa. Aenean ac faucibus purus.</p>"
}
["EStartHuman"]=>
string(27) "Saturday, October 6: 9:00am"
}
}
I need to sort the on the array by month ie [“May”] and then sort the events by date within each month (earliest first). How can i do it? Google hasn’t helped much.
My Code looks like this:
<div class="all-events">
<?php
// Rearrange the array by months
$fullmonty = array();
// get all the month keys
foreach($eventroot as $key => $item)
{
$fullmonty[$item['EStartMonth']][$key] = $item;
}
var_dump($fullmonty);
// Spit the list out
foreach ($fullmonty as $monthName => $month) {
echo '<header class="month-header"><h2>' . $monthName . '</h2></header>';
echo '<div class="events--list">';
foreach ($month as $event) {
echo '<div class="event--item"> <a href="' . $event['ELink'] . '">' . '<img class="event-thumb" src="' . $event['EImg'] . '">' . '</a> ' . '<h3>' . $event['ETitle'] . '</h3>' . '<h4>' . $event['EStartHuman'] . '</h4>' . $event['EDesc'] . ' </div>' ;
}
echo '</div>';
}
?>
</div>