Loading:


Kalendarz PHP z możliwością dodawania wydarzeń do bazy danych MySQL

Skrypt tworzy profesjonalny kalendarz w oparciu o tabele jest spójny w przeciwieństwie do większości kalendarzy opartych na <ul><li>.

Jest bardzo konfigurowalny i prosty  w zrozumieniu mimo dużej ilości kodu.

Dodatkowo jest wyposarzony w odczyt danych z bazy MySQL i wyświetlaniu aktualnych wydarzeń dla zaznaczonej daty.




Oto SQL do utworzenia tabli dla tego kalendarza z przykłądowymi danymi:

CREATE TABLE IF NOT EXISTS `event` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `data` varchar(10) NOT NULL,
  `title` varchar(255) NOT NULL,
  `opis` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;


INSERT INTO `event` (`id`, `data`, `title`, `opis`) VALUES
(1, '4/5/2009', 'Impreza', 'Super bajer'),
(1, '24/12/2009', 'Nowy rok', 'Super impreza to i tam');


A poniżej dość długi lecz naprawde prosty kod kalendarza.



Napisz Artyku³

Listing


<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
<style type="text/css">
body{
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:11px;
font-weight:normal;
}
th.a{
font-weight:normal;
font-size:11px;
}
td.a{
font-size:11px;
font-weight:bold;
}
td.wyd{
padding-top:10px;
font-weight:bold;
font-size:11px;
}
td.tit{
padding-top:5px;
font-weight:bold;
font-size:11px;
color:#A60000;
}
td.opi{
padding-top:5px;
font-size:11px;
}
td.b{
font-size:11px;
font-weight:bold;
}
td.t{
font-size:11px;
}
td.mon{
font-size:12px;
text-align:center;
padding-top:10px;
padding-bottom:10px;
font-weight:bold;
}
.kom{
border:#CCCCCC solid 1px;
text-align:center;
width:30px;
height:20px;
font-size:11px;
padding-top:3px;
background:#FFD9D9;
}
.komN{
border:#CCCCCC solid 1px;
text-align:center;
width:30px;
height:20px;
font-size:11px;
padding-top:3px;
}
.komA{
font-size:11px;
border:#CCCCCC solid 1px;
text-align:center;
width:30px;
height:20px;
background:#DAE9F3;
padding-top:3px;
}

</style>
<body>
<?php
// funkcja do połącznia z bazą danych
function lacz_bd()
{
   $db = new mysqli('localhost', 'login', 'haslo', 'nazwa_bazy');  
 
   if (! $db)
      return false;
   $db->autocommit(TRUE);
   return $db;
}


$totalHtml = ''; // ta zmienna bedzie zawierać cały nasz kod kalendarza

$NumMonthsToDisplay = 1; // Ile kalendarzy ma zostac wyswietlonych na stronie
$DayWeekStarts = 2;       // od ktrego dnia zaczac 1=Nd,2=PN,3=Wt,4=Sr,5=Cz,6=Pt,7=So
$NumMonthsPerRow = 3;     // ile kalendarzy ma byc w jednej lini
/*===== Laczymy sie z baza i pobiueramy do tablicy $daty wszystkie daty w bazie =========================*/
$db = lacz_bd();
$zapytanie = "select data from event";
$wynik = $db->query($zapytanie);
$ile_znalezionych = $wynik->num_rows;
        for ($i=0; $i <$ile_znalezionych; $i++)
                {
                        $wiersz = $wynik->fetch_assoc();
                        $daty[] = $wiersz['data'];
                }



//populate MonthNames & DayNames tablica nazw
$MonthNames = array(1=>'Styczen','Luty','Marzec','Kwiecien','Maj','Czerwiec','Lipiec','Sierpien','Wrzesien','Pazdziernik','Listopad','Grudzien');
$DayNames = array(1=>'ND','PN','TW','SR','CZ','PT','SO');
$CurDate = getdate();

//Inicjalizujemy zmienne
if($_GET['data']){
$q = explode("/", $_GET['data']);
$CurrentMonth = $q[1];
$CurrentYear  = $q[2]; 
}else{
$CurrentYear = $CurDate['year'];
$CurrentMonth = $CurDate['mon'];
}
$MonthLoop = $CurrentMonth;
$YearLoop = $CurrentYear;
$MonthsPerRowCounter = 1;
$NumRowsInMainTable = $NumMonthsToDisplay/3;


$totalHtml .= '<table border="0" align="left" cellpadding="0" cellspacing="0">';


for ($j=1; $j<=$NumMonthsToDisplay; $j++) {     // Glowna petla , 1 iteracja na kazdy miesiac
//====================================================================================

//sprawdzamy, kiedy rozpoczyna sie nowy wiersz
if($MonthsPerRowCounter == 0){$beginnewline=1;} else {$beginnewline=0;}
if($MonthsPerRowCounter == $NumMonthsPerRow){$endline=1;} else {$endline=0;}
if ($beginnewline == 1){print "<tr>";}

//obliczamy liczbe dni w tym miesiacu/roku
$NumberOfDays = date(t,mktime(0,0,0,$MonthLoop+1,0,$YearLoop,-1));

//obliczamy pierwszy dzien tygodnia
$FirstDayOfWeek = date(l,mktime(0,0,0,$MonthLoop,1,$YearLoop));

//obliczamy liczbe dni ile jest pustych przed pierwszym
switch ($FirstDayOfWeek) {
        case 'Monday':
                $DayOfWeekNum = 2;
                switch ($DayWeekStarts) {
                        case '1': $offset=1; break;
                        case '2': $offset=0; break;
                        case '3': $offset=6; break;
                        case '4': $offset=5; break;
                        case '5': $offset=4; break;
                        case '6': $offset=3; break;
                        case '7': $offset=2; break;
                }
        break;
        case 'Tuesday':
                $DayOfWeekNum = 3;  
                switch ($DayWeekStarts) {
                        case '1': $offset=2; break;
                        case '2': $offset=1; break;
                        case '3': $offset=0; break;
                        case '4': $offset=6; break;
                        case '5': $offset=5; break;
                        case '6': $offset=4; break;
                        case '7': $offset=3; break;
                }
        break;
        case 'Wednesday':
                $DayOfWeekNum = 4;  
                switch ($DayWeekStarts) {
                        case '1': $offset=3; break;
                        case '2': $offset=2; break;
                        case '3': $offset=1; break;
                        case '4': $offset=0; break;
                        case '5': $offset=6; break;
                        case '6': $offset=5; break;
                        case '7': $offset=4; break;
                }
        break;
        case 'Thursday':
                $DayOfWeekNum = 5;
                switch ($DayWeekStarts) {
                        case '1': $offset=4; break;
                        case '2': $offset=3; break;
                        case '3': $offset=2; break;
                        case '4': $offset=1; break;
                        case '5': $offset=0; break;
                        case '6': $offset=6; break;
                        case '7': $offset=5; break;
                }
        break;
        case 'Friday':  
                $DayOfWeekNum = 6;
                switch ($DayWeekStarts) {
                        case '1': $offset=5; break;
                        case '2': $offset=4; break;
                        case '3': $offset=3; break;
                        case '4': $offset=2; break;
                        case '5': $offset=1; break;
                        case '6': $offset=0; break;
                        case '7': $offset=6; break;
                }
        break;
        case 'Saturday':
                $DayOfWeekNum = 7;  
                switch ($DayWeekStarts) {
                        case '1': $offset=6; break;
                        case '2': $offset=5; break;
                        case '3': $offset=4; break;
                        case '4': $offset=3; break;
                        case '5': $offset=2; break;
                        case '6': $offset=1; break;
                        case '7': $offset=0; break;
                }
        break;
                default:
                $DayOfWeekNum = 1;
                switch ($DayWeekStarts) {
                        case '1': $offset=0; break;
                        case '2': $offset=6; break;
                        case '3': $offset=5; break;
                        case '4': $offset=4; break;
                        case '5': $offset=3; break;
                        case '6': $offset=2; break;
                        case '7': $offset=1; break;
                }
}

//$temp = fmod($MonthLoop,3);

//rozpczynamy wyswietlanie kalendarza

$totalHtml .= '<td>';
$totalHtml .= '<table border="0" cellpadding="1" cellspacing="0" width="190" >';
$totalHtml .= '<tr><td class="mon" colspan="7">'.$MonthNames[$MonthLoop].' '.$YearLoop.'</td></tr>';
$totalHtml .= '<tr>';


//Wyswietlamy dni tygodnia, uzyjemy $DayWeekStarts jako pierwszy dzien
$i=0;
for ($i=1; $i<=7; $i++){
        $thisDay = $i-1 + $DayWeekStarts;
        if ($thisDay>7){$thisDay=$thisDay-7;}
        $totalHtml .= '<th class="a">'.$DayNames[$thisDay].'</th>';
}
$totalHtml .= '</tr>';
$totalHtml .= '<tr>';

//wyswietlamy puste pola tabeli
if ($offset > 0) {
        $totalHtml .= str_repeat('<td class="n">&nbsp;</td>',$offset);
}
$D = date("j");
$M = date("n");
$Y = date("Y");
//wyswietlamy dni tygodnia, Day1-$NumberOfDays
$i=0;
for ($i=1; $i <= $NumberOfDays; $i++) {
        $aktual = $i.'/'.$MonthLoop.'/'.$YearLoop;
        $now = $D.'/'.$M.'/'.$Y;
        $DayOfWeek = date(l,mktime(0,0,0,$MonthLoop,$i,$YearLoop));
        if($DayOfWeekNum == $DayWeekStarts) {
                $totalHtml .= '<tr>';
        }
        if ($aktual==$now){
                if(in_array($aktual,$daty)){
                $totalHtml .= '<td class="b"><div class="kom"><a href="5_3.php?data='.$aktual.'">'.$i.'</a></div></td>';
                }else{
                $totalHtml .= '<td class="b"><div class="kom">'.$i.'</div></td>';
                }
        }else if(in_array($aktual,$daty)) { //jesli data jest w tablicy kolorujemy i linkujemy dany dzien
                $totalHtml .= '<td class="a"><div class="komA"><a href="5_3.php?data='.$aktual.'">'.$i.'</a></div></td>';
        } else {
                $totalHtml .= '<td class="t" style="color:#000000;"><div class="komN">'.$i.'</div></td>';
        }
        if($DayOfWeekNum == ($DayWeekStarts-1)) {
                $totalHtml .= '</tr>';
        }
        if($DayOfWeekNum == 7){$DayOfWeekNum=1;} else{$DayOfWeekNum++;}
}

//wyswietlamy puste kolumny ka koncu miesiaca
if ( ( ($offset == 5) && ($NumberOfDays > 30) ) || ( ($offset == 6) && ($NumberOfDays > 29) ) ) {
        if (42-$NumberOfDays-$offset > 0) {
                $totalHtml .= str_repeat('<td class="n">&nbsp;</td>',42-$NumberOfDays-$offset);
        }
        $totalHtml .= '</tr>';
} elseif ( ($NumberOfDays != 28) || ($offset > 0) ) {
        if (35-$NumberOfDays-$offset > 0) {
                $totalHtml .= str_repeat('<td class="n">&nbsp;</td>',35-$NumberOfDays-$offset);
        $totalHtml .= '</tr>';
        }
}

//koniec wyswiatlania kalendarza

$totalHtml .= '</table></td>';


//increase Month count each time through the loop, reset to Jan if this iteration is Dec
if ($MonthLoop == 12){$MonthLoop = 1; $YearLoop++;} else{$MonthLoop++;}
if ($MonthsPerRowCounter == $NumMonthsPerRow) {$MonthsPerRowCounter = 1;} else{$MonthsPerRowCounter++;}

if ($endline == 1){
$totalHtml .= '</tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>';
}
//====================================================================================
}




$totalHtml .= '</td></tr>';


/*===== Jeśli przekazany został parametr data wyświetlamy wydarzenia w danym dniu =========================*/
if($_GET['data']){
$dataSelect = $_GET['data'];
$zapytanie = "select data, title, opis from event where data='$dataSelect'";
$wynik = $db->query($zapytanie);
$ile_znalezionych = $wynik->num_rows;
if($ile_znalezionych>0){
$totalHtml .='<tr><td class="wyd" colspan="7">Wydarzenia z '.$dataSelect.'</td></tr>';
        for ($i=0; $i <$ile_znalezionych; $i++)
                {
                        $wiersz = $wynik->fetch_assoc();
                        $totalHtml .='<tr><td class="tit" colspan="7">'.$wiersz['title'].'</td></tr>';
                        $totalHtml .='<tr><td class="opi" colspan="7">'.$wiersz['opis'].'</td></tr>';
                }
}
}
$totalHtml .= '</table>';
$totalHtml .= '</body>';
$totalHtml .= '</html>';

echo $totalHtml;
?>

</body>
</html>




Dodano przez: igor
Ranga: Administrator serwisu Punktów: 28716
Komentarze użytkowników
Kalendarz super ale troszkę się wysypał w tym miejscu: else if(in_array($aktual,$daty)) { //jesli data jest w tablicy kolorujemy i linkujemy dany dzien Warning: in_array() [function.in-array]: Wrong datatype for second argument in c:\usr\apache\httpd\html\administrator\index.php on line 505
autor: Tomaszek | 172 | 2009-04-28 13:02:47


Zobacz tą linii co podałem niżej pewnie nie łączy coś z bazą bo brak argumentu $data który jest tam tworzoy
  • Zobacz kod dodany do tego wpisu
    • $db = lacz_bd();
      $zapytanie = "select data from event";
      $wynik = $db->query($zapytanie);
      $ile_znalezionych = $wynik->num_rows;
              for ($i=0; $i <$ile_znalezionych; $i++)
                      {
                              $wiersz = $wynik->fetch_assoc();
                              $daty[] = $wiersz['data'];
                      }
autor: igor | 174 | 2009-04-28 14:58:28


Daty zapisują się do bazy danych w formacie np: 4/5/2010,co zmienić w kodzie żeby była możliwość ich odczytu w formacie 04/05/2010?Potrzebne mi to jest pilnie
autor: slayerz | 5502 | 2010-03-24 09:45:19


Super kalendarz
autor: shczepan | 12440 | 2011-05-15 12:23:19


Notice: Use of undefined constant t - assumed 't' in C:\xampp\htdocs\5_3.php on line 140 Notice: Use of undefined constant l - assumed 'l' in C:\xampp\htdocs\5_3.php on line 143 Jakieś pomysły?
autor: darkmarshall | 12505 | 2011-06-29 15:18:25


Notice: Use of undefined constant t - assumed 't' in C:\xampp\htdocs\5_3.php on line 140 Notice: Use of undefined constant l - assumed 'l' in C:\xampp\htdocs\5_3.php on line 143 Jakieś pomysły?
autor: darkmarshall | 12506 | 2011-06-29 15:37:47


mam jedno pytanie - co z tym linkowaniem? po kliknięciu na oznaczony dzień przenosi na stronę która nie istnieje. nie wyświetlają się informacje "title" i "opis".. help..
autor: t_holy | 12569 | 2011-09-01 15:38:58


nie linkuje mi dni
autor: michmora | 12590 | 2011-09-25 12:10:33


Bardzo dobry skrypt ale wymaga kilku ulepszeń. Ogólnie tego szukałem :)
autor: shoferus | 12774 | 2012-03-03 13:20:11


A mi zupełnie to nie działa....same błędy. Czy komuś to działa poprawnie i może mi pomóc?
autor: aquarius1978 | 12802 | 2012-03-27 13:09:26


działający kod
  • Zobacz kod dodany do tego wpisu
    • <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
      <head>
      <style type="text/css">
      body{
      font-family:Verdana, Arial, Helvetica, sans-serif;
      font-size:11px;
      font-weight:normal;
      }
      th.a{
      font-weight:normal;
      font-size:11px;
      }
      td.a{
      font-size:11px;
      font-weight:bold;
      }
      td.wyd{
      padding-top:10px;
      font-weight:bold;
      font-size:11px;
      }
      td.tit{
      padding-top:5px;
      font-weight:bold;
      font-size:11px;
      color:#A60000;
      }
      td.opi{
      padding-top:5px;
      font-size:11px;
      }
      td.b{
      font-size:11px;
      font-weight:bold;
      }
      td.t{
      font-size:11px;
      }
      td.mon{
      font-size:12px;
      text-align:center;
      padding-top:10px;
      padding-bottom:10px;
      font-weight:bold;
      }
      .kom{
      border:#CCCCCC solid 1px;
      text-align:center;
      width:30px;
      height:20px;
      font-size:11px;
      padding-top:3px;
      background:#FFD9D9;
      }
      .komN{
      border:#CCCCCC solid 1px;
      text-align:center;
      width:30px;
      height:20px;
      font-size:11px;
      padding-top:3px;
      }
      .komA{
      font-size:11px;
      border:#CCCCCC solid 1px;
      text-align:center;
      width:30px;
      height:20px;
      background:#DAE9F3;
      padding-top:3px;
      }

      </style>
      <body>
      <?php
      // funkcja do połącznia z bazą danych
      function lacz_bd()
      {
         $db = new mysqli('localhost', 'root', 'supervisor', 'testowa_baza');  
       
         if (! $db)
            return false;
         $db->autocommit(TRUE);
         return $db;
      }


      $totalHtml = ''; // ta zmienna bedzie zawierać cały nasz kod kalendarza

      $NumMonthsToDisplay = 1; // Ile kalendarzy ma zostac wyswietlonych na stronie
      $DayWeekStarts = 2;       // od ktrego dnia zaczac 1=Nd,2=PN,3=Wt,4=Sr,5=Cz,6=Pt,7=So
      $NumMonthsPerRow = 3;     // ile kalendarzy ma byc w jednej lini
      /*===== Laczymy sie z baza i pobiueramy do tablicy $daty wszystkie daty w bazie =========================*/
      $db = lacz_bd();

      if (!$db)
      {
      echo "brak połączenia";
      return;
      }

      $zapytanie = "select data from event";
      $wynik = $db->query($zapytanie);
      $ile_znalezionych = $wynik->num_rows;


      echo $ile_znalezionych;
      echo "<br />";

              for ($i=0; $i <$ile_znalezionych; $i++)
                      {
                              $wiersz = $wynik->fetch_assoc();
                              $daty[] = $wiersz['data'];

                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
      echo $wiersz['data'];
      echo "<br />";


                                                      }



      //populate MonthNames & DayNames tablica nazw
      $MonthNames = array(1=>'Styczen','Luty','Marzec','Kwiecien','Maj','Czerwiec','Lipiec','Sierpien','Wrzesien','Pazdziernik','Listopad','Grudzien');
      $DayNames = array(1=>'ND','PN','TW','SR','CZ','PT','SO');


      $CurDate = getdate();






      echo '<pre>';
      echo print_r($CurDate);
      echo '</pre>';
      echo 'kkkk <br />';


      //Inicjalizujemy zmienne

      if( isset($_GET['data'])  and ($_GET['data']) )
      {
         $q = explode("/", $_GET['data']);
         $CurrentMonth = $q[1];
         $CurrentYear  = $q[2];  
      }
      else
      {
         $CurrentYear = $CurDate['year'];
         $CurrentMonth = $CurDate['mon'];
      }





      $MonthLoop = $CurrentMonth;
      $YearLoop = $CurrentYear;
      $MonthsPerRowCounter = 1;
      $NumRowsInMainTable = $NumMonthsToDisplay/3;


      $totalHtml .= '<table border="1" align="center" cellpadding="0" cellspacing="0">';


      for ($j=1; $j<=$NumMonthsToDisplay; $j++) {     // Glowna petla , 1 iteracja na kazdy miesiac
      //====================================================================================

      //sprawdzamy, kiedy rozpoczyna sie nowy wiersz
      if($MonthsPerRowCounter == 0){$beginnewline=1;} else {$beginnewline=0;}
      if($MonthsPerRowCounter == $NumMonthsPerRow){$endline=1;} else {$endline=0;}
      if ($beginnewline == 1){print "<tr>";}

      //obliczamy liczbe dni w tym miesiacu/roku
      $NumberOfDays = date("t",mktime(0,0,0,$MonthLoop+1,0,$YearLoop,-1));

      //obliczamy pierwszy dzien tygodnia
      $FirstDayOfWeek = date("l",mktime(0,0,0,$MonthLoop,1,$YearLoop));

      //obliczamy liczbe dni ile jest pustych przed pierwszym
      switch ($FirstDayOfWeek) {
              case 'Monday':
                      $DayOfWeekNum = 2;
                      switch ($DayWeekStarts) {
                              case '1': $offset=1; break;
                              case '2': $offset=0; break;
                              case '3': $offset=6; break;
                              case '4': $offset=5; break;
                              case '5': $offset=4; break;
                              case '6': $offset=3; break;
                              case '7': $offset=2; break;
                      }
              break;
              case 'Tuesday':
                      $DayOfWeekNum = 3;  
                      switch ($DayWeekStarts) {
                              case '1': $offset=2; break;
                              case '2': $offset=1; break;
                              case '3': $offset=0; break;
                              case '4': $offset=6; break;
                              case '5': $offset=5; break;
                              case '6': $offset=4; break;
                              case '7': $offset=3; break;
                      }
              break;
              case 'Wednesday':
                      $DayOfWeekNum = 4;  
                      switch ($DayWeekStarts) {
                              case '1': $offset=3; break;
                              case '2': $offset=2; break;
                              case '3': $offset=1; break;
                              case '4': $offset=0; break;
                              case '5': $offset=6; break;
                              case '6': $offset=5; break;
                              case '7': $offset=4; break;
                      }
              break;
              case 'Thursday':
                      $DayOfWeekNum = 5;
                      switch ($DayWeekStarts) {
                              case '1': $offset=4; break;
                              case '2': $offset=3; break;
                              case '3': $offset=2; break;
                              case '4': $offset=1; break;
                              case '5': $offset=0; break;
                              case '6': $offset=6; break;
                              case '7': $offset=5; break;
                      }
              break;
              case 'Friday':  
                      $DayOfWeekNum = 6;
                      switch ($DayWeekStarts) {
                              case '1': $offset=5; break;
                              case '2': $offset=4; break;
                              case '3': $offset=3; break;
                              case '4': $offset=2; break;
                              case '5': $offset=1; break;
                              case '6': $offset=0; break;
                              case '7': $offset=6; break;
                      }
              break;
              case 'Saturday':
                      $DayOfWeekNum = 7;  
                      switch ($DayWeekStarts) {
                              case '1': $offset=6; break;
                              case '2': $offset=5; break;
                              case '3': $offset=4; break;
                              case '4': $offset=3; break;
                              case '5': $offset=2; break;
                              case '6': $offset=1; break;
                              case '7': $offset=0; break;
                      }
              break;
                      default:
                      $DayOfWeekNum = 1;
                      switch ($DayWeekStarts) {
                              case '1': $offset=0; break;
                              case '2': $offset=6; break;
                              case '3': $offset=5; break;
                              case '4': $offset=4; break;
                              case '5': $offset=3; break;
                              case '6': $offset=2; break;
                              case '7': $offset=1; break;
                      }
      }

      //$temp = fmod($MonthLoop,3);

      //rozpczynamy wyswietlanie kalendarza

      $totalHtml .= '<td>';
      $totalHtml .= '<table border="0" cellpadding="1" cellspacing="0" width="190" >';
      $totalHtml .= '<tr><td class="mon" colspan="7">'.$MonthNames[$MonthLoop].' '.$YearLoop.'</td></tr>';
      $totalHtml .= '<tr>';


      //Wyswietlamy dni tygodnia, uzyjemy $DayWeekStarts jako pierwszy dzien
      $i=0;
      for ($i=1; $i<=7; $i++){
              $thisDay = $i-1 + $DayWeekStarts;
              if ($thisDay>7){$thisDay=$thisDay-7;}
              $totalHtml .= '<th class="a">'.$DayNames[$thisDay].'</th>';
      }
      $totalHtml .= '</tr>';
      $totalHtml .= '<tr>';

      //wyswietlamy puste pola tabeli
      if ($offset > 0) {
              $totalHtml .= str_repeat('<td class="n">&nbsp;</td>',$offset);
      }
      $D = date("j");
      $M = date("n");
      $Y = date("Y");
      //wyswietlamy dni tygodnia, Day1-$NumberOfDays
      $i=0;
      for ($i=1; $i <= $NumberOfDays; $i++) {
              $aktual = $i.'/'.$MonthLoop.'/'.$YearLoop;
              $now = $D.'/'.$M.'/'.$Y;
              $DayOfWeek = date("l",mktime(0,0,0,$MonthLoop,$i,$YearLoop));
              if($DayOfWeekNum == $DayWeekStarts) {
                      $totalHtml .= '<tr>';
              }
              if ($aktual==$now){
                      if(in_array($aktual,$daty)){
                      $totalHtml .= '<td class="b"><div class="kom"><a href="5_3.php?data='.$aktual.'">'.$i.'</a></div></td>';
                      }else{
                      $totalHtml .= '<td class="b"><div class="kom">'.$i.'</div></td>';
                      }
              }else if(in_array($aktual,$daty)) { //jesli data jest w tablicy kolorujemy i linkujemy dany dzien
                      $totalHtml .= '<td class="a"><div class="komA"><a href="5_3.php?data='.$aktual.'">'.$i.'</a></div></td>';
              } else {
                      $totalHtml .= '<td class="t" style="color:#000000;"><div class="komN">'.$i.'</div></td>';
              }
              if($DayOfWeekNum == ($DayWeekStarts-1)) {
                      $totalHtml .= '</tr>';
              }
              if($DayOfWeekNum == 7){$DayOfWeekNum=1;} else{$DayOfWeekNum++;}
      }

      //wyswietlamy puste kolumny ka koncu miesiaca
      if ( ( ($offset == 5) && ($NumberOfDays > 30) ) || ( ($offset == 6) && ($NumberOfDays > 29) ) ) {
              if (42-$NumberOfDays-$offset > 0) {
                      $totalHtml .= str_repeat('<td class="n">&nbsp;</td>',42-$NumberOfDays-$offset);
              }
              $totalHtml .= '</tr>';
      } elseif ( ($NumberOfDays != 28) || ($offset > 0) ) {
              if (35-$NumberOfDays-$offset > 0) {
                      $totalHtml .= str_repeat('<td class="n">&nbsp;</td>',35-$NumberOfDays-$offset);
              $totalHtml .= '</tr>';
              }
      }

      //koniec wyswiatlania kalendarza

      $totalHtml .= '</table></td>';


      //increase Month count each time through the loop, reset to Jan if this iteration is Dec
      if ($MonthLoop == 12){$MonthLoop = 1; $YearLoop++;} else{$MonthLoop++;}
      if ($MonthsPerRowCounter == $NumMonthsPerRow) {$MonthsPerRowCounter = 1;} else{$MonthsPerRowCounter++;}

      if ($endline == 1){
      $totalHtml .= '</tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>';
      }
      //====================================================================================
      }




      $totalHtml .= '</td></tr>';


      /*===== Jeśli przekazany został parametr data wyświetlamy wydarzenia w danym dniu =========================*/
      //if($_GET['data'])
      if( isset($_GET['data'])  and ($_GET['data']) )
      {
      $dataSelect = $_GET['data'];
      $zapytanie = "select data, title, opis from event where data='$dataSelect'";
      $wynik = $db->query($zapytanie);
      $ile_znalezionych = $wynik->num_rows;
      if($ile_znalezionych>0){
      $totalHtml .='<tr><td class="wyd" colspan="7">Wydarzenia z '.$dataSelect.'</td></tr>';
              for ($i=0; $i <$ile_znalezionych; $i++)
                      {
                              $wiersz = $wynik->fetch_assoc();
                              $totalHtml .='<tr><td class="tit" colspan="7">'.$wiersz['title'].'</td></tr>';
                              $totalHtml .='<tr><td class="opi" colspan="7">'.$wiersz['opis'].'</td></tr>';
                      }
      }
      }
      $totalHtml .= '</table>';
      $totalHtml .= '</body>';
      $totalHtml .= '</html>';

      echo $totalHtml;
      ?>

      </body>
      </html>
autor: fxpiotr | 12911 | 2013-05-08 21:00:05


brak linkowania do eventu wynika z tego, że autor przyjął za nazwę pliku zawierającego ten cały powyższy kod ten zagadkowy "5_3.php". Po zmianie w kodzie wszystkich 5_3.php np. na kalendarz.php (ja tak nazwałem ten plik w swojej witrynie) kalendarz działa i wyświetlają się eventy ;)
autor: Wojtek | 13006 | 2014-03-24 11:26:50


    • Tre¶æ komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2024 v.1.5 | design: diviXdesign & rainbowcolors