Erstmals OPP: Kalender Klasse

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Erstmals OPP: Kalender Klasse

    Ich habe vor nicht alzu langer Zeit mit OPP angefangen. Ich bin daher eher nen Beginner als fortgeschrittener und möchte euch eine meiner ersten Klassen vorstellen: Eine Klasse für einen Kalender.

    Ich wollte euch einfach mal fragen, was ich verbessern kann oder wo ich noch - für einige von euch - offensichtliche Fehler gemacht habe.

    Würd mich freuen, wenn ihr mich nicht zerreißt

    PHP-Code:
    <?php
    <?php
      
    class kalender{
        
        
    // Attribute
        
    var $currentDay;    // Aktueller Tag
        
    var $currentYear;   // Aktuelles Jahr
        
    var $currentMonth;  // Aktueller Monat
        
        
    function kalender() {
          
    // Aktuelles Datum errechnen
          
    $curDate $this->getCurDate();
          
    // Aktuelles Datum in den Attribute speichern
          
    $this->currentDay $curDate[day];
          
    $this->currentMonth $curDate[month];
          
    $this->currentYear $curDate[year];
        }
        
        function 
    createKalBlock($monthScroll 0) {
          
    /* Monat ermitteln, der angezeigt werden soll */
          
    $showDate $this->getShowDate($monthScroll);
          
          
    /* Wochentag des ersten Tages des Monats ermitteln */
          
    $wochentag $this->getWochentag($showDate[month],$showDate[year], 1); // 1-7
          
    $i 2-$wochentag;                                                     // -1 bis -5

          
    $return.= "<b><center><span style=\"font: bold 17pt Arial; color: #000000;\">
          " 
    $this->getGermanMonth($showDate[month]) . " ' " .      $showDate[year] . "</center></span></b><br />";
          
          
    /* Anzahl der Tage im Monat ermitteln */
          
    $dateStr $showDate[year] . "-" $showDate[month] . "-1";       // Datumsstring
          
    $timestamp strtotime($dateStr);             // Timestamp ermitteln 
          
    $numberOfDays date('t'$timestamp);        // Anzahl der Tage in $numberOfDays
          
          // $return = String zur Ausgabe
          
    $return.= "    
            <table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">
              <tr>
                <td width=\"50\" align=\"center\"><b>M</b></td>
                <td width=\"50\" align=\"center\"><b>D</b></td>
                <td width=\"50\" align=\"center\"><b>M</b></td>
                <td width=\"50\" align=\"center\"><b>D</b></td>
                <td width=\"50\" align=\"center\"><b>F</b></td>
                <td width=\"50\" align=\"center\"><b>Sa</b></td>
                <td width=\"50\" align=\"center\"><b>So</b></td>
              </tr>
          "
    ;
            
          
    // Die Schleife wird 42 mal durchlaufen, damit zum schluss auf alle fälle die letzte Tabellenzeile geschlossen wird
          
    for($x=1;$x<=42;$x++) {
            
    // Falls der naechste Tag ein Montag ist, vorher eine neue Zeile beginnen
            
    if($x == || $x == || $x == 15 || $x == 22 || $x == 29 || $x == 36) {
              
    $return.="<tr>\n";
            }
            
    // 
            
    if($i && $i<=$numberOfDays) {
              
    $return.="<td height=\"35\" align=\"center\" valign=\"middle\">\n";
              if(
    $i == $this->currentDay && $this->currentMonth == $this->showMonth && $this->currentYear == $this->showYear) {
                
    $return.="<b><font color=\"black\">$i</font></b>\n";
              }
              else {
                
    $return.=$i "\n";
              }
              
    $return.="</td>\n";
            }
            else {
              
    $return.="<td>\n </td>\n";
            }
            if(
    $x == || $x == 14 || $x == 21 || $x == 28  || $x == 35  || $x == 42) {
              
    $return.="</tr>\n";
            }
            
    $i++;
          }
          
    $return.="
          <tr>
          <td colspan=\"3\">
          <a href=\"?content=kal_overview&monthScroll=" 
    . ($monthScroll-1) . "\" alt=\"Zurueck\">Zurueck</a>
          </td>
          <td colspan=\"4\" align=\"right\">
          <a href=\"?content=kal_overview&monthScroll=" 
    . ($monthScroll+1) . "\" alt=\"Zurueck\">Naechster</a>
          </td>
          </tr>
          </table>"
    ;
          
          return 
    $return;
        }
        
        
    // Gibt das aktuelle Datum in einem Array zurueck 
        
    function getCurDate() {
          
    $this->currentYear date(Y);     // Aktuelle Jahr
          
    $this->currentMonth date(m);    // Aktuelle Monat
          
    $this->currentDay date(d);      // Aktuelle Tag
          
          
    return array ("month" => $this->currentMonth"year" => $this->currentYear"day" => $this->currentDay); // Rueckgabe des Arrays
        
    }
        
        
    // Verschieben des Datums um $monthScroll und gibt den anzuzeigenden Monat und Jahr in einem array zurueck
        
    function getShowDate($monthScroll) {
          
    $showDateTimestamp mktime(000date("m")+$monthScroll10date("Y")); // Timestamp mit dem anzuzeigendem Monat erstellen
          
    $this->showMonth date(m$showDateTimestamp);
          
    $this->showYear date(Y$showDateTimestamp);
          
          return array (
    month => date("m"$showDateTimestamp), year => date("Y"$showDateTimestamp)); // Rueckgabe des Arrays
        
    }
        
        
    // Ermitteln eines Wochentages
        
    function getWochentag($month$year$day) {
          
    $str "$year-$month-01";
          
    $timestamp strtotime($str);
          
    $wochentag date('l'$timestamp);
          switch(
    $wochentag) {
            case 
    'Monday':  $return 1;
                            break;
            case 
    'Tuesday':  $return 2;
                            break;
            case 
    'Wednesday':  $return 3;
                            break;
            case 
    'Thursday':  $return 4;
                            break;
            case 
    'Friday':  $return 5;
                            break;
            case 
    'Saturday':  $return 6;
                            break;
            case 
    'Sunday':  $return 7;
                            break;
          }
          return(
    $return);
        }
        
        
    // Namen des deutschen Monats ermitteln
        
    function getGermanMonth($monthNumber) {
          switch(
    $monthNumber) {
            case 
    1: return "Januar";
                    break;
            case 
    2: return "Februar";
                    break;
            case 
    3: return "M&auml;rz";
                    break;
            case 
    4: return "April";
                    break;
            case 
    5: return "Mai";
                    break;
            case 
    6: return "Juni";
                    break;
            case 
    7: return "Juli";
                    break;
            case 
    8: return "August";
                    break;
            case 
    9: return "September";
                    break;
            case 
    10: return "Oktober";
                    break;
            case 
    11: return "November";
                    break;
            case 
    12: return "Dezember";
                    break;
          }
        }
      }
    ?>
    PHP-Code:
    <?php
    include("kal_class.php");
    $kalender = new kalender;
    $block_inhalt $kalender->createKalBlock($_GET[monthScroll]);
    echo 
    $block_inhalt;
    Herzlichen Dank für eure Ratschläge und Tipps im Voraus!

    MfG
    Stefan
    Zuletzt geändert von inno_vativ; 30.06.2007, 20:58.

  • #2
    Re: Erstmals OPP: Kalender Klasse

    Original geschrieben von inno_vativ
    ... oder wo ich noch - für einige von euch - offensichtliche Fehler gemacht habe.
    z.b. dass der juni in deinem kalender 31 tage hat

    und mach mal error_reporting(E_ALL);
    und wieso php4?

    Kommentar


    • #3
      öhm. okay

      Nun hat er wieder 30 Tage - die hatte er vor 1-2 stunden allerdings schonmal ...

      Notice: Use of undefined constant Y - assumed 'Y' in C:\Programme\xampp\htdocs\raaaben\include\kal_class.php on line 89
      Was will er mir damit sagen ...

      PHP4 ... hm ... keine Ahnung - hab es halt irgendwann mal so gelernt und ich weiß auch nicht, was nun anders gemacht wird :/

      Kommentar


      • #4
        Es heißt OOP!

        Kommentar


        • #5
          peinlich. Hab ich aber doch so geschrieben

          edit: mist, den titel kann man nicht ändern ... aber war echt nur nen tippfehler ...
          Zuletzt geändert von inno_vativ; 30.06.2007, 21:01.

          Kommentar


          • #6
            Re: öhm. okay

            Original geschrieben von inno_vativ
            Notice: Use of undefined constant Y - assumed 'Y' in C:\Programme\xampp\htdocs\raaaben\include\kal_class.php on line 89
            Was will er mir damit sagen ...
            "er" meint, dass die konstante Y nicht definiert ist. aber "er" geht freundlicherweise davon aus, dass du einen string 'Y' gemeint hast.

            PHP4 ... hm ... keine Ahnung - hab es halt irgendwann mal so gelernt und ich weiß auch nicht, was nun anders gemacht wird :/
            http://de2.php.net/manual/de/language.oop5.php

            Kommentar

            Lädt...
            X