IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Kalendář - výpis

Metoda pro výpis kalendáře

php

public function renderCalendar($month = null, $year = null)
{
	// kontrola platnosti data
	if (!checkdate($month, 1, $year))
	{
		$month = null;
		$year = null;
		echo('Neexistující datum. Vypisuji současný měsíc.');
	}

	// pokud datum není zadané
	if (empty($year))
		$year = idate("Y");

	if (empty($month))
		$month = idate('m');

	// hlavička kalendáře
	echo('
		<table id="calendar">
			<tr>
				<th colspan="7">' .
					// měsíc slovně -> první písmeno velké - bere i s diakritikou
					mb_convert_case($this->monthNames[$month], MB_CASE_TITLE, 'UTF-8') . ' ' . $year
			. '</th>
			</tr>
			<tr id="calendar-dayrow">
				<td>Po</td><td>Út</td><td>St</td><td>Čt</td><td>Pá</td><td>So</td><td>Ne</td>
			</tr>
			<tr>');

	$date = date_create_from_format('Y-n-j', $year . '-' . $month . '-1');
	// předchozí měsíc
	$dateSub = date_create_from_format('Y-n-j', $year . '-' . $month . '-1')->sub(new DateInterval('P1M'));

	// zjištění začátku týdne
	$weekDay = $date->format('w');
	if ($weekDay == 0) // začíná nedělí, ta je u nás však 7., 0. pozici vynecháme
		$weekDay = 7;

	// vynecháme místo
	for ($i = $weekDay; $i > 1; $i--)
		echo('<td>&nbsp;</td>');
	// vypsání jednotlivých dnů
	while ($date->format('n') == $month)
	{
		echo('<td');
		// pokud je aktuální měsíc a rok, označí se den -> lze pak zvýraznit pomocí css
		if (date('Ymd', $date->getTimestamp()) == date('Ymd'))
			echo(' id="calendar-today" ');
		echo('>');

		echo('<a href="?show=' . $date->format('Y-n-j') . '">' . $date->format('j') . '</a>');

		// řádkování podle týdnů
		if (($weekDay % 7) == 0)
			echo('</tr><tr>');

		$weekDay++;
		if ($weekDay > 7)
			$weekDay = 1;
		$date->add(new DateInterval('P1D'));
	}

	$previousMonth = $dateSub->format('n');
	$nextMonth = $date->format('n');

	$previousYear = $dateSub->format('Y');
	$nextYear = $date->format('Y');

	// navigace
	echo('
			</tr>
			<tr>
				<td colspan="4">
					<a href="?date=' . $previousYear . '-' . $previousMonth . '">
						' . $this->monthNames[$previousMonth] . '
					</a>
				</td>
				<td colspan="4" align="right">
					<a href="?date=' . $nextYear . '-' . $nextMonth . '">
						' . $this->monthNames[$nextMonth] . '
					</a>
				</td>
			</tr>
		</table>
	');
}

Neformátovaný

Přidáno: 3.12.2012
Expirace: Neuvedeno

Aktivity