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: 10 let
|
0