Forum asdg Strona Główna


asdg
asdgf
Odpowiedz do tematu
Kalendarz
blicks
Gość



Czy wie ktoś jak na własnej stronie zrobić kalendarz?
erwin15
Administrator
Administrator


Dołączył: 29 Sty 2008
Posty: 25
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

blicks zarejestruj się i dopiero pytaj Evil or Very Mad

Kalendarz.
Skrypt ten umożliwia nam umieszczenie kalendarza na stronie (lub kilku), możemy definiować święta, które będą w nim zaznaczane oraz inne ważne dla nas wydarzenia. eCalendar może także wyswietlać imieniny (jeśli pobrana została tekstowa baza imion), można nim "sterować" z poziomu przeglądarki.

Kod PHP kalendarza (do umieszczenia na początku strony):
Kod:
<?php

//========eCalendar v1.0.3=========

// Autor: Emdek <emdek@epf.pl>

// Licencja: GPL

// W skrypcie wykorzystano bazę danych z imionami z: "Imieniny - skrypt pochodzi ze strony [link widoczny dla zalogowanych]

// Skrypt bazuje na rozwiązaniach zastosowanych w skrypcie calendar.php 1.4 autorstwa Bena Frame <ben@networkscompany.com>

function namedays ($Day, $Month, $Path, $Small) {

         if (file_exists ($Path.'1.inc')) {

            $NameDays = file ($Path.$Month.'.inc');

            return (($Small?', i':'I').'mieniny: '.trim ($NameDays[$Day]));

            }

         }

function calendar ($ID, $Date = 'NOW', $Path = './imieniny/') { // KONFIGURACJA

         $DayWeekStarts = 2; // Numer dnia od którego wyświetlane są dni w kalendarzu (2 - poniedziałek)

         $Months = array ('', 'Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj', 'Czerwiec', 'Lipiec', 'Sierpień', 'Wrzesień', 'Październik', 'Listopad', 'Grudzień');

         $Months2 = array ('', 'stycznia', 'lutego', 'marca', 'kwietnia', 'maja', 'czerwca', 'lipca', 'sierpnia', 'września', 'października', 'listopada', 'grudnia');

         $Days = array ('', 'Niedziela', 'Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota');

         $ImportantDays = array (1 => array (14 => 'Jakaś data'), 10 => array (1 => 'Urodziny Zenka')); // "ważne dni"

         $Holidays = array (1 => array (1 => 'Nowy Rok'), 5 => array (1 => 'Święto pracy', 3 => 'Święto konstytucji'), 8 => array (15 => 'Wniebowzięcie NMP'), 11 => array (1 => 'Święto Zmarłych', 11 => 'Święto Niepodległości'), 12 => array (25 => 'Boże Narodzenie', 26 => 'Boże Narodzenie')); // święta

         if (!empty($_POST['d']) && $_POST['id'] == $ID) $Date = $_POST['year'].'-'.$_POST['month'].'-'.$_POST['d'];

         else if(!empty($_POST['y']) && $_POST['id'] == $ID) {

              if ($_POST['y'] == '»') $_POST['y'] = $_POST['year'] + 1;

              else if ($_POST['y'] == '«') $_POST['y'] = $_POST['year'] - 1;

              if ($_POST['year'] < 1971 || $_POST['year'] > 2036) $_POST['y'] = 2000;

              if ($_POST['day'] < 10) $_POST['day'] = '0'.$_POST['day'];

              $Date = $_POST['y'].'-'.$_POST['month'].'-'.$_POST['day'];

              }

         else if (!empty($_POST['m']) && $_POST['id'] == $ID) {

                 if ($_POST['m'] == '»') $_POST['m'] = $_POST['month'] + 1;

                 else if ($_POST['m'] == '«') $_POST['m'] = $_POST['month'] - 1;

                 if ($_POST['m'] == 13) {

                     $_POST['m'] = 1;

                     $_POST['year']++;

                     }

                 else if ($_POST['m'] == 0) {

                         $_POST['m'] = 12;

                         $_POST['year'] = $_POST['year'] - 1;

                         }

                 if ($_POST['m'] < 10) $_POST['m'] = '0'.$_POST['m'];

                 if ($_POST['day'] < 10) $_POST['day'] = '0'.$_POST['day'];

                 if ($_POST['year'] < 1971 || $_POST['year'] > 2036) $_POST['year'] = 2000;

                 $Date = $_POST['year'].'-'.$_POST['m'].'-'.$_POST['day'];

                 }

         $Date = getdate (strtotime ($Date));

         $Holidays[date ('n', easter_date ($Date['year']))][date ('j', easter_date ($Date['year']))] = 'Wielkanoc'; // data Wielkanocy

         if (date ('t', easter_date ($Date['year'])) == 31) $Holidays[4][1] = 'Poniedziałek Wielkanocny'; // Ponioedziałek Wielkanocy

         else $Holidays[date ('n', easter_date ($Date['year']))][date ('j', easter_date ($Date['year'])) + 1] = 'Poniedziałek Wielkanocny'; // Ponioedziałek Wielkanocy

         $NumberOfDays = date (t, mktime (0, 0, 0, $Date['mon'] + 1, 0, $Date['year'], -1));

         $FirstDayOfWeek = date (w, mktime (0, 0, 0, $Date['mon'], 1, $Date['year']));

         $CalendarData = array (array (1, 0, 6, 5, 4, 3, 2, 1), array (2, 1, 0, 6, 5, 4, 3, 2), array (3, 2, 1, 0, 6, 5, 4, 3), array (4, 3, 2, 1, 0, 6, 5, 4), array (5, 4, 3, 2, 1, 0, 6, 5), array (6, 5, 4, 3, 2, 1, 0, 6), array (7, 6, 5, 4, 3, 2, 1, 0));

         $Offset = $CalendarData[$FirstDayOfWeek][$DayWeekStarts];

         $DayOfWeekNum = $CalendarData[$FirstDayOfWeek][0];

         $Calendar = '<form action="'.$_SERVER['PHP_SELF'].($_SERVER['QUERY_STRING']?'?'.$_SERVER['QUERY_STRING']:'').'" method="post" id="calendar_'.$ID.'">

<table cellspacing="0" cellpadding="0" class="calendar"><thead>

<tr>'."n".'<th class="b">

<input type="submit" name="m" value="«" class="p" />



<input type="submit" name="y" value="«" class="p" />

</th>'."n".'<th colspan="5" class="b">

'.$Months[$Date['mon']].'

'.$Date['year'].'

<input type="hidden" name="year" value="'.$Date['year'].'" />

<input type="hidden" name="month" value="'.$Date['mon'].'" />

<input type="hidden" name="day" value="'.$Date['mday'].'" />

<input type="hidden" name="id" value="'.$ID.'" />

</th>'."n".'<th class="b">

<input type="submit" name="m" value="»" class="p" />



<input type="submit" name="y" value="»" class="p" />

</th>'."n".'</tr>'."n".'<tr>'."n";

         for ($i = 0; $i <= 6; $i++) $Calendar.= '<th title="'.$Days[($i + $DayWeekStarts - (($i + $DayWeekStarts > 7)?7:0))].'">'.substr ($Days[($i + $DayWeekStarts - (($i + $DayWeekStarts > 7)?7:0))], 0, 1).'</th>'."n";

         $Calendar.= '</tr>'."n".'</thead>'."n".'<tbody>'."n".'<tr>'."n".(($Offset > 0)?'<td colspan="'.$Offset.'" class="c">&nbsp;</td>'."n":'');

         for ($i = 1; $i <= $NumberOfDays; $i++) {

             $DayOfWeek = date (l, mktime (0, 0, 0, $Date['mon'], $i, $Date['year']));

             $Calendar.= (($DayOfWeekNum == $DayWeekStarts)?'<tr>'."n":'').'<td><input type="submit" name="d" class="'.((!empty ($Holidays[$Date['mon']][$i]))?(($i == $Date['mday'])?'t':'h'):(($i == $Date['mday'])?'t':((in_array (($i + $Offset) / 7, array (1,2,3,4,5,6)))?'h':((!empty ($ImportantDays[$Date['mon']][$i]))?'i':((in_array (($i + $Offset + 1) / 7, array (1,2,3,4,5,6)))?'s':'n'))))).'" title="'.((!empty ($Holidays[$Date['mon']][$i]))?$Holidays[$Date['mon']][$i].namedays ($i, $Date['mon'], $Path, 1):((!empty ($ImportantDays[$Date['mon']][$i]))?$ImportantDays[$Date['mon']][$i].namedays ($i, $Date['mon'], $Path, 1):namedays ($i, $Date['mon'], $Path, 0))).'" value="'.$i.'" /></td>'."n".(($DayOfWeekNum == ($DayWeekStarts - 1))?'</tr>'."n":'');

             if ($DayOfWeekNum == 7) $DayOfWeekNum = 1;

             else $DayOfWeekNum++;

             }

         if (!in_array (($Offset + $NumberOfDays) / 7, array (1, 2, 3, 4, 5, 6))) $Calendar.= ((((($Offset == 5) && ($NumberOfDays > 30)) || (($Offset == 6) && ($NumberOfDays > 29)) && (42 - $NumberOfDays - $Offset > 0)) || (($NumberOfDays != 28) || ($Offset > 0) && (35 - $NumberOfDays - $Offset > 0)))?('<td colspan="'.((($NumberOfDays != 28) || ($Offset > 0) && (35 - $NumberOfDays - $Offset > 0))?(42 - $NumberOfDays - $Offset):(35 - $NumberOfDays - $Offset)).'" class="c">&nbsp;</td>'."n".'</tr>'."n"):'</tr>'."n");

         return ($Calendar.'<tr>'."n".'<td colspan="7" class="b" style="font-size:12px;">'.$Days[$Date['wday'] + 1].', '.$Date['mday'].' '.$Months2[$Date['mon']].' '.$Date['year'].' r.

'.($Holidays[$Date['mon']][$Date['mday']]?'<b style="color:#F3333F;">'.$Holidays[$Date['mon']][$Date['mday']].'</b>

':'').($ImportantDays[$Date['mon']][$Date['mday']]?'<b style="color:#333FF3;">'.$ImportantDays[$Date['mon']][$Date['mday']].'</b>

':'').((file_exists ($Path.'1.inc'))?namedays ($Date['mday'], $Date['mon'], $Path, 0):'').'</td>'."n".'</tr>'."n".'</tbody></table></form>'."n");

         }

?>


Kod CSS (należy go umieścić pomiędzy znacznikami STYLE):
Kod:
.calendar {border-top:1px solid black;border-right:1px solid black;text-align:center;width:144px;font-family:Arial, sans-serif;}

.calendar td {font-size:1px;}

.calendar td input {width:25px;border:0;border-bottom:1px solid black;border-left:1px solid black;color:black;font-size:12px;}

th {background:#DEDEDE;text-align:center;border-bottom:1px solid black;border-left:1px solid black;}

.n {background:#F0F0F0;}

.t {background:#CFFFFC;font-weight:bold;}

.h {color:#F3333F;font-weight:bold;background:#FFC00F;}

.i {color:#333FF3;font-weight:bold;}

.s {color:#399003;font-weight:bold;background:#F7E00F;}

.b {background:#E8E8E8;border-bottom:1px solid black;border-left:1px solid black;font-size:12px;}

.c {border-bottom:1px solid black;border-left:1px solid black;font-size:1px;}

.p {background:transparent;border:0;width:20px;font-weight:bold;}


Wywołanie funkcji kalendarza (pierwszy parametr: ID kalendarza (można umieszczać kilka kalendarzy o różnych ID i datach), drugi: data, która ma być wyświetlona w kalendarzu (opcja), trzeci: ścieżka do katalogu z bazą danych imion (opcja)):
Kod:
<?= calendar ('pierwszy'); ?>


P.S: Kalendarz pochodzi z CBA.pl


Post został pochwalony 0 razy
Zobacz profil autora
blicks
Gość



Łooo, minęło troszkę czasu zanim tu wszedłem, znalazłem "kalendarz" i wkleiłem go na strone i chodzi...

Mimo wszystko dziekuje za ten co wstawiłeś.

---------------------------------------------------
Osoby używające więcej niż 3 wykrzykników lub pytajników to osoby z zaburzeniami własnej osobowości - Terry Pratchett
Kalendarz
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Wszystkie czasy w strefie EET (Europa)  
Strona 1 z 1  

  
  
 Odpowiedz do tematu