Uncle Cheese - I'm still hoping you will give a proper answer for that :)
For now -for all those NON-USA people who are desperately looking for solution a Wild and Crazy hotfix :
in CalendarUI.class.php
in getWeeks function :
First generated week would have 8 days instead of 7
so in the first FOR cycle (where we iterate $i for weeks do something like :
$limit=7;
if($i==0){$limit=8;}
in second FOR cycle , which loop $j for week days chachge number 7 to $limit
for($j=0; $j < $limit; $j++)
So the only problem now - you've got 8 days in the first week so we have to skip it when it comes to
$days->push(new ArrayData(array(...
So we only push the day if its not the first day of the first week with ($i+$j>0)
And the job is done !
Now the only thing is to change LiveCalendarWidget.SS and replace $Sun with $Mon and $Mon with $Sun .
Works fine :) If UC will provide another solution, I would be more than happy to use it :)
Just so everyone could just copy-paste - here the whole getWeeks function from CalendarUI.class.php (around 184 line)
protected function getWeeks()
{
$weeks = new DataObjectSet();
$today = new sfDate();
$today->clearTime();
$this->date_counter->firstDayOfMonth()->firstDayOfWeek();
$view_start = new sfDate($this->date_counter->get());
$view_end = new sfDate($view_start->addDay($this->rows*7)->subtractDay()->get());
$view_start->reset();
$this->start_date->reset();
$event_map = $this->getEventsFor($view_start, $view_end);
for($i=0; $i < $this->rows; $i++)
{
$days = new DataObjectSet();
$week_range_start = $this->date_counter->format('Ymd');
$limit=7;
if($i==0){$limit=8;}
for($j=0; $j < $limit; $j++)
{
$current_day = "";
if(!$this->default_view) {
if( ($this->date_counter->get() >= $this->anchor_start->get()) && ($this->date_counter->get() <= $this->anchor_end->get()) )
$current_day = "currentDay";
}
if($i+$j>0)
{
$days->push(new ArrayData(array(
'Today' => $this->date_counter->get() == $today->get() ? "calendarToday" : "",
'OutOfMonth' => $this->date_counter->format('m') != $this->start_date->format('m') ? "calendarOutOfMonth" : "",
'CurrentDay' => $current_day,
'HasEvent' => in_array($this->date_counter->date(), $event_map) ? "hasEvent" : "",
'Events' => $this->calendar->Events(null, $this->date_counter->date(), $this->date_counter->date()),
'ShowDayLink' => $this->calendar->Link('view')."/".$this->date_counter->format('Ymd'),
'Number' => $this->date_counter->format('d')
)));
}
$this->date_counter->addDay();
}
$week_range_end = $this->date_counter->subtractDay()->format('Ymd');
$this->date_counter->addDay();
$weeks->push(new ArrayData(array(
'Days' => $days,
'ShowWeekLink' => $this->calendar->Link('view')."/".$week_range_start."/".$week_range_end
)));
}
return $weeks;
}