| Autor | Zpráva | ||
|---|---|---|---|
| BunnyBugs6 Profil * |
#1 · Zasláno: 23. 2. 2015, 00:05:33
Zdravím,
mám prosbičku. Mám vytvořený kalendář (viz kód níže), kde se mi vytvoří automaticky odkaz na událost daného dne. Vše funguje v pořádku jak má, ale ve chvíli, kdy mám událost den po sobě, tak se mi ty dva dny spojí v jeden den, resp. datum s odkazem zůstane, ale spojí se mi to do jednoho dne v týdnu, třeba středa, náhled zde: http://jmrtrio.cz/fans/vyjezdy/ (kalendář vpravo) Hledal jsem a zkoušel toho dost, ale nepovedlo se mi tu, pravděpodobně malou chybu, najít. Mohu poprosit zkušené o radu, kde ta chyba je? Děkuji mnohokrát. class Calendar
{
private $events;
private $monthNames = array(1 => 'leden', 'únor', 'březen', 'duben', 'květen', 'červen', 'červenec',
'srpen', 'září', 'říjen', 'listopad', 'prosinec');
public function __construct($events) {
$this->events = $events;
}
/**
* Vypíše kalendářní měsíc
* @param null $month - kalendářní měsíc, který se má vypsat
* @param null $year
*/
public function renderCalendar($month = null, $year = null)
{
// hlavička kalendáře
$previousMonth = ($month - 1) > 0 ? $month - 1 : 12;
$nextMonth = ($month % 12) + 1;
$previousYear = $previousMonth > $month ? $year - 1 : $year;
$nextYear = $nextMonth < $month ? $year + 1 : $year;
// navigace
echo('
<div id="kalendar">
<table>
<tr><th><a href="http://' . $_SERVER['SERVER_NAME'] . '/fans/vyjezdy/?date=' . $previousYear . '-' . $previousMonth . '"> << </a></th>
<th colspan="5">' .
// 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>
<th><a href="http://' . $_SERVER['SERVER_NAME'] . '/fans/vyjezdy/?date=' . $nextYear . '-' . $nextMonth . '"> >> </a></th>
</tr>
</table>
<table>
<tr>
<td>Po</td><td>Út</td><td>St</td><td>Čt</td><td>Pá</td><td>So</td><td>Ne</td>
</tr>
<tr>');
// počet dnů pro daný měsíc v roce
$daysInMonth = cal_days_in_month(CAL_GREGORIAN, $month, $year);
// zjištění začátku týdne
$weekDay = idate("w", mktime(0, 0, 0, $month, 1, $year));
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> </td>');
// vypsání jednotlivých dnů
for ($day = 1; $day <= $daysInMonth; $day++)
{
echo('<td');
// pokud je aktuální měsíc a rok, označí se den -> lze pak zvýraznit pomocí css
// if (($day == $today) && ($month == idate('m')) && ($year == idate('Y')))
// echo(' id="calendar-today" ');
$dateodk = $year . "-" . str_pad($month, 2, 0, STR_PAD_LEFT) . "-" . str_pad($day, 2, 0, STR_PAD_LEFT);
if (isset($this->events[$dateodk])) {
echo " class='kalendar-akce' ";
echo "><a href='http://" . $_SERVER['SERVER_NAME'] . "/fans/vyjezdy/detail/?vyjezd=" . $this->events[$dateodk] . "' title = '" . $this->events[$dateodk] . "'>";
} else {
echo('>');
}
echo ($day);
if (isset($this->events[$dateodk])) {
echo "</a>";
}
// řádkování podle týdnů
if (($weekDay % 7) == 0)
echo('</tr><tr>');
$weekDay++;
if ($weekDay > 7)
$weekDay = 1;
echo ('</td>');
}
echo('</tr>
</table></div>');
}
}
$c = new Calendar($events);
// přidání + vypsání událostí pro dané datum
if ((isset($_GET['showcal'])) && ($_GET['showcal']))
{
list($year, $month, $day) = explode('-', $_GET['showcal']);
}
// vypsání kalendáře pro daný měsíc
else
{
$month = idate('m');
$year = idate('Y');
if ((isset($_GET['date'])) && ($_GET['date']))
list($year, $month) = explode('-', $_GET['date']);
$c->renderCalendar($month, $year);
}
?> |
||
| mimochodec Profil |
#2 · Zasláno: 23. 2. 2015, 00:11:17
fans-layout.css, ř. 221:
kalendar-akce {
background-color: #FFED00;
color: #2B2A29;
display: block;Ten display: block; zruš. Kromě toho: to nezalomení není ta největší vada na kráse.
|
||
| BunnyBugs6 Profil * |
#3 · Zasláno: 23. 2. 2015, 00:38:38
Super, funguje, díky moc :)
A co dalšího je vadou na kráse?, jsem začátečník, rád si nechám poradit :) |
||
| mimochodec Profil |
#4 · Zasláno: 23. 2. 2015, 00:46:13
No, design mi urval oči. Je to brutálně kontrastní. Měl bych víc připomínek, ale jestli o ně stojíš, přesuň se s tím do "Názor na stránku". Já se vyjádřím až zítra, teď melu z posledního.
|
||
| BunnyBugs6 Profil * |
#5 · Zasláno: 23. 2. 2015, 00:55:19
Nevím, jak to mám přesunout do jiného téma a jak jsem psal, rád si nechám poradit :)
|
||
| mimochodec Profil |
#6 · Zasláno: 23. 2. 2015, 00:59:29
Udělej si nové vlákno v Názor na stránku
|
||
|
Časová prodleva: 11 let
|
|||
0