Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Instrukcja tworzenia kalendarza
Forum PHP.pl > Forum > PHP
Mardag
Witam,

Chciałbym stworzyć od podstaw własny kalendarz w PHP, który będzie umożliwiał dodawanie zadań i nie będzie wymagał łączenia z bazą MySQL. Czy wiecie może gdzie mogę znaleźć odpowiednie instrukcje?

Pozdrawiam
MILICJA
Poszukaj na google. tego jest cała masa smile.gif
google.pl -> calendar + php + event

np.
http://www.webdesigns1.com/php/tutorial.php
Mardag
Nie przyszło mi do głowy szukanie po angielsku. Dzięki winksmiley.jpg
netmare
Instukcji Ci żadnych nie udzielę, ale może przyda Ci się to:

  1. <?php
  2. function dzientyg($d,$m,$y)
  3. {
  4. $d+=$m<3?$y--:$y-2;
  5. return (floor(23*$m/9)+$d+4+floor($y/4)-floor($y/100)+floor($y/400))%7;
  6. }
  7.  
  8. function przestepny($y)
  9. {
  10. return $y%4!=0?0:(($y%100==0)&&($y%400!=0)?0:1);
  11. }
  12. ?>


dzientyg() zwraca dzień tygodnia cyfrą od 0 do 6 gdzie 0 to niedziela, a dalej po kolei. (Działa dla dat po nastaniu kalndarza gregoriańskiego czyli chyba od 1582 do 9999).
przetepny() zwraca 1 jeśli dany rok jest prestępny, a 0 jeśli nie.
Mardag
Dzięki, na pewno mi się przyda winksmiley.jpg

<a href="http://www.webdesigns1.com/php/tutorial.php" target="_blank">http://www.webdesigns1.com/php/tutorial.php</a>

Tam na dole jest kompletny kod. Ale do końca nie wiem co i jak, bo mi nie działa smile.gif Może to głupie, ale jestem zupełnym laikiem...

Ok, już rozumiem, działa. Ale spodziewałem się więcej po tym kalendarzu smile.gif
Virti
Cytat(netmare @ 13.02.2008, 09:40:48 ) *
Instukcji Ci żadnych nie udzielę, ale może przyda Ci się to:

  1. <?php
  2. function dzientyg($d,$m,$y)
  3. {
  4. $d+=$m<3?$y--:$y-2;
  5. return (floor(23*$m/9)+$d+4+floor($y/4)-floor($y/100)+floor($y/400))%7;
  6. }
  7.  
  8. function przestepny($y)
  9. {
  10. return $y%4!=0?0:(($y%100==0)&&($y%400!=0)?0:1);
  11. }
  12. ?>


dzientyg() zwraca dzień tygodnia cyfrą od 0 do 6 gdzie 0 to niedziela, a dalej po kolei. (Działa dla dat po nastaniu kalndarza gregoriańskiego czyli chyba od 1582 do 9999).
przetepny() zwraca 1 jeśli dany rok jest prestępny, a 0 jeśli nie.


a dlaczego utrudniać sobie tak życie?
pierwsza funkcja z powodzeniem może być zastąpiona:
Kod
<?php
date('w');
?>

natomiast druga:
Kod
<?php
date('L');
?>


Po więcej: date" title="Zobacz w manualu PHP" target="_manual.
Pozdrawiam smile.gif

Edit: w obu przypadkach można dodać timestamp z mktime" title="Zobacz w manualu PHP" target="_manual
Mardag
Ok, pierwsza wersja mojego cuda znajduje się pod adresem:

http://www.pseo.info/kalendarz

Zrobiłem go na podstawie instrukcji, do której link jest kilka postów wyżej.

Mam pytanie. W tym kalendarzu, jeśli dodam w events 100 plików, to on mi pokaże na raz wszystkie 100 wydarzeń. Czy da się zrobić tak, aby pokazywał tylko 5 najbliższych wydarzeń?
I drugie pytanie. Co będzie jeśli będę chciał dodać kilka wydarzeń jednego dnia? Da się zmienić jakoś tę zmienną $date i cały kod w tym kierunku?

Oto mój plik index.php:

Kod
<html>
<head>
<title>Kalendarz</title>
<link rel="Stylesheet" type="text/css" href="style.css">
</head>
<body>
<h1>Kalendarz</h1>
<table cellpadding="3">
<tr><th>Data</th><th>Wydarzenie</th><th>Miejsce</th></tr>
<?php
$date = date("Ymd");
$handle=opendir('events');
while (($file = readdir($handle))!==false) {

    if ($file >= $date) {
       include("events/$file");
    }
}
closedir($handle);
?>
</table>
</body>
</html>


Już tyle osób oglądało ten wątek i nikt nie zna rozwiązania? smile.gif Jeśli się nie da, powiedzcie, że nie winksmiley.jpg
nowotny
Generalnie takie wieloplikowe podejście nie jest dobrym pomysłem IMHO... Lepszym rozwiązaniem będzie jeden, dobrze skonstruowany plik... wtedy odpada ci problem z $date... jak zrobić to na jednym pliku znajdziesz multum przykładów...
Mardag
Mogę prosić o taki przykład? W internecie znalazłem jeszcze kilka kalendarzy, ale... nie działają smile.gif
nowotny
Nie chodziło mi konkretnie o przykład kalendarza tylko jak używać pliku do przechowywania danych...
Virti
Informacje o wydarzeniach możesz zamieszczać w jednym pliku, np. po jednym wydarzeniu na linię albo zastosuj jakieś separatory (np. |).
Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.