Приднестровская поддержка XOOPS
К этому моменту мы располагаем настроенной базой данных, сохраненными тестовыми событиями и методами, позволяющими загрузить даты событий и организовать их в виде легкодоступного массива. Теперь можно свести все воедино и закончить построение календаря.
Присвоим используемому для этих целей методу имя buildCalendar(). Метод будет генерировать календарь, имеющий следующие атрибуты:
■ заголовок, который будет отображать используемый месяц и год;
■ сокращенные обозначения дней недели, необходимые для придания календарю присущего ему вида;
■ пронумерованные ячейки, содержащие события, если они существуют для данной даты.
Прежде всего объявим метод buildCalendar() в классе Calendar и создадим заголовок в элементе H2. Кроме того, создадим массив сокращенных обозначений дней недели и организуем по ним цикл, генерирующий неупорядоченный список. Для этого используем дополнительный код, выделенный в приведенном ниже листинге желтым фоном.
<?php
class Calendar extends DB_Connect
{
private $_useDate;
private $_m;
private $_y;
private $_daysInMonth;
private $_startDay;
public function __construct($dbo=NULL, $useDate=NULL) {...}
private function _loadEventData($id=NULL) {...}
private function _createEventObj() {...}
/**
* Возвращает HTML-разметку для отображения календаря и событии
*
* На основании информации, хранящейся в свойствах класса,
* загружаются события для данного месяца, генерируется
* календарь и возвращается актуальная разметка.
*
* @return string: HTML-разметка календаря
*/
public function buildCalendar()
{
/*
* Определить месяц календаря и создать массив сокращенных обозначений
* дней недели, которые будут использованы в заголовках столбцов
*/
$cal_month = date('F Y', strtotime($this->_useDate));
$weekdays = array('Sun', 'Mon', 'Tue',
'Wed', 'Thu', 'Fri', 'Sat');
/*
* Добавить заголовок в HTML-разметку календаря
*/
$html = "\n\t<h2>$cal_month</h2>";
for ( $d=0, $labels=NULL; $d<7; ++$d )
{
$labels .= "\n\t\t<li>" . $weekdays[$d] . "</li>";
}
$html .= "\n\t<ul class="weekdays">"
. $labels . "\n\t</ul>";
/*
* Возвратить HTML-разметку для вывода
*/
return $html;
}
}
?>
Отправитель | Нити |
---|
4 пользователь(ей) активно (2 пользователь(ей) просматривают Инструкции)
Участников: 0 Гостей: 4 далее... |