Ergebnis 1 bis 10 von 10

Thema: Kalender Klasse

  1. #1
    Großmeister(in)
    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard Kalender Klasse

    Ich habe eine kleine Kalenderklasse geschrieben, die ein Kalenderblatt zu einem Monat als HTML-Tabelle erzeugt.
    Wochenenden und Termin die man einfügen kann, können hervorgehoben werden, die entsprechenden Zellen haben eigene Id's für CSS-Definitionen.
    Ich habe es mir so geschrieben, dass es von den verschiedenen Id's jeweils noch zwei Varianten gibt, einmal mit vorangestelltem "thumb" im Id-Namen, einmal oben.
    In der thumb-Variante werden Bemerkungen zu eingetragenen Termin in ein title-Tag der Tabellenzelle für den entsprechenden Tag geschrieben.
    In der non-thumb-Variante werden diese Bemerkungen direkt in die Zelle unter den Tag geschrieben.

    Ganz glücklich bin ich mit der Sache noch nicht, für konstruktive Kritik, Anregungen, Verbesserungsvorschläge bin ich dankbar. Besonders bei der Methode getCalendar() bin ich mir noch absolut nicht sicher ob das so optimal umgesetzt ist.

    Benötigte CSS-Definitionen:
    table#Calendar
    table#thumbCalendar
    td#CalWe
    td#thumbCalWe
    td#CalEvent
    td#thumbCalEvent
    div#event (in der non-thumb-Version für die Ausgabe der Termindescriptions)

    Methoden:
    __construct($month=false,$year=false)
    $month und $year sind optional, defaultwerte sind der aktuelle Monat des aktuellen Jahres.

    setMonth($month)

    getMonth()

    setYear($year)

    getYear()

    setWe($we)
    Mögliche Parameter 1 oder 2. Legt fest Ob nur der Sonntag (=1) als Wochenendtag dargestetllt wird, oder Samstag und Sonntag (=2).

    getWe()

    addDate($timestamp,$descr)
    Erwartet den Unixtimestamp für den Tag (aus mktime(0,0,0,$monat,$tag,$jahr)) und eine Beschreibung des Termins.
    Mehrere Termine für einen Tag sind möglich.

    getCalendar($thumb=true)
    Gibt die HTML-Tabelle für das Kalenderblatt zurück. Default wird die thumbversion geliefert, die nonthumbversion gibts mit getCalendar(false).

    class.calendar.php :
    PHP-Code:
    class calendar {
        private 
    $month;
        private 
    $year;
        private 
    $we 2;
        private 
    $dates = array();
        
        public function 
    __construct($month=false,$year=false) {
            if(
    $month===false || !$this->setMonth($month)) {
                
    $this->month date("m");
            }
            if(
    $year===false || !$this->setYear($year)) {
                
    $this->year date("Y");
            }
        }
        public function 
    setMonth($month) {
            if(
    $this->checkMonth($month)) {
                
    $this->dates $this->month==$month $this->dates : array();
                
    $this->month $month<10 "0".(int)$month : (int)$month;
                return 
    true;
            }
            else return 
    false;
        }
        public function 
    getMonth() {
            return 
    $this->month;
        }
        public function 
    setYear($y) {
            if(
    $this->checkYear($y)) {
                
    $this->dates $this->year==$y $this->dates : array();
                
    $this->year $y>=1970 $y : (100==$y 2000 : ($y<10 "200".$y : ($y<=38 "20".$y "19".$y)));
                return 
    true;
            }
            else return 
    false;
        }
        public function 
    getYear() {
            return 
    $this->year;
        }
        public function 
    setWe($we) {
            if(
    1==$we || 2==$we) {
                
    $this->we $we;
                return 
    true;
            }
            else return 
    false;
        }
        public function 
    getWe() {
            return 
    $this->we;
        }
        public function 
    addDate($time,$descr) {
            if(
    date("Y",$time)==$this->year && ""!=trim($descr)) {
                
    $this->dates[$time][] = $descr;
                return 
    true;
            }
            else return 
    false;
        }
        public function 
    checkMonth($m) {
            
    $m = (int)$m;
            return 
    $m>=&& $m<=12 true false;
        }
        public function 
    checkYear($y) {
            
    $y = (int)$y;
            return (
    $y>=1970 && $y<=2038) || ($y>=&& $y<=38) || ($y>=70 && $y<=100) ? true false;
        }
        public function 
    getCalendar($thumb=true) {
            
    $class $thumb "thumb" "";
            
    $time  mktime(0,0,0,$this->month,1,$this->year);
            
    $count date("t",$time);
            
    $wday  date("w",$time);
            
    $w       0;
            
    $diff  $wday $wday-6;
            if(
    $diff) {
                
    $week[$w] = "<td colspan='{$diff}'></td>\n";
            }
            for(
    $i=1$i<=$count$i++) {
                
    $id    "";
                
    $title "";
                
    $event "";
                
    $t     mktime(0,0,0,$this->month,$i,$this->year);
                
    $wd    date("w",$t);
                if(
    array_key_exists($t,$this->dates)) {
                    
    $id    " id='{$class}CalEvent'";                
                    
    $title " title='".implode(" || ",$this->dates[$t])."'";
                    
    $event $thumb "" "<div id='event'>".implode("<br>",$this->dates[$t])."</div>";
                }
                elseif(!
    $wd || (2==$this->we && 6==$wd)) {
                    
    $id " id='{$class}CalWe'";
                }
                
    $week[$w].= "<td{$id}{$title}>{$i}{$event}</td>\n";
                if(!
    $wd) {
                    
    $w++;
                    
    $week[$w] = "";
                }
            }
            if(
    $wd) {
                
    $diff 7-$wd;
                
    $week[$w].= "<td colspan='{$diff}'></td>\n";
            }
            
    $calendar "<tr>".implode("</tr>\n<tr>\n",$week)."</tr>";
            
    $return  "
            <table border='0' cellpadding='0' cellspacing='0' id='
    {$class}Calendar'>
            <tr>
              <th>Mo</th><th>Di</th><th>Mi</th><th>Do</th><th>Fr</th><th>Sa</th><th>So</th>
            </tr>
            
    {$calendar}
            </table>"
    ;
            return 
    $return;
        }

    beispiel.php :
    PHP-Code:
    include("class.calendar.php");
    $termin1 mktime(0,0,0,5,22,2009);
    $descr1  "10:30 Zahnarzt";
    $termin2 mktime(0,0,0,5,27,2009);
    $descr2  "15:30 Friseur";

    $c = new calendar();
    $c->addDate($time1,$descr1);
    $c->addDate($time2,$descr2);
    $out $c->getCalendar();

    echo 
    $out
    beispiel.css :
    Code:
    table#thumbCalendar { background-color:#ffffff;margin:2px;border:1px solid #000000; }
    table#thumbCalendar th {
        padding:3px;
        font-weight:bold;font-family:arial;font-size:11px;color:#000000;
        border:1px solid #000000;
        text-align:center; 
    }
    table#thumbCalendar td {
        padding:3px;
        font-weight:normal;font-family:arial;font-size:11px;color:#000000;
        border:1px solid #000000;
        text-align:center; 
    }
    td#thumbCalWe {
        background-color:#bcbcbc;
        padding:3px;
        font-weight:normal;font-family:arial;font-size:11px;color:#000000;
        border:1px solid #000000;
        text-align:center; 
    }
    td#thumbCalEvent {
        background-color:#ffbcac;
        padding:3px;
        font-weight:normal;font-family:arial;font-size:11px;color:#000000;
        border:1px solid #000000;
        text-align:center; 
    }
    Wie gesagt, Erweiterungs- und/oder Verbesserungsvorschläge sind gern gesehen.
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Geändert von SinnlosS (20.05.2009 um 17:04 Uhr)
    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  2. #2
    Forum Guru Avatar von synaptic
    Registriert seit
    20.06.2007
    Ort
    Butzbach-Wiesental
    Beiträge
    10.901
    Danke
    45
    Bekam 48 mal "Danke" in 46 Postings
    Blog-Einträge
    1

    Standard AW: Kalender Klasse

    also wenn ich des richtig verstanden hab kann man termine einpflegen.. wo werden die gespeichert?
    das ganze wär cool mit optionaler db-nutzung
    KEIN support via pn, email, messenger oder falsch geposteten threads
    Futter für deine Schnuffelzwerge gibts bei den Schnuffelzwergen TOP Qualität, also klicken und kaufen

  3. #3
    Großmeister(in)
    Themenstarter

    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: Kalender Klasse

    Yo, ich wollte die Klasse halt möglichst abstrakt und universell nutzbar machen, die Einbindung einer db-nutzung ist ja dann abhängig von den tabellen aus denen die termine gezogen werden.
    Dafür werde ich aber auch noch eine Tochterklasse schreiben, als Terminkalender mit vorgefertigter Tabellenstruktur.
    Momentan werden da Termine noch gar nicht gespeichert, die können halt über addDate() aus beliebigen Quellen eingefügt werden.

    Das bisherige ist halt was was ich jetzt mehr oder weniger schnelle eben runtergeschrieben habe, daher auch die Frage nach weiteren Vorschlägen. Vernünftiges Error-Handling will ich da auch noch implementieren.
    Geändert von SinnlosS (20.05.2009 um 15:41 Uhr)
    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  4. #4
    Teeny
    Registriert seit
    14.05.2009
    Beiträge
    30
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Kalender Klasse

    Danke für dieses nützliche Script, ich freue mich schon auf dein Update mit der DB Anbindung.

  5. #5
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Kalender Klasse

    Warum nimmst du keinen Timestamp?
    Damit kann man viel einfacher rechnen und Computer wollen rechnen.

  6. #6
    Großmeister(in)
    Themenstarter

    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: Kalender Klasse

    Zitat Zitat von The User Beitrag anzeigen
    Warum nimmst du keinen Timestamp?
    Damit kann man viel einfacher rechnen und Computer wollen rechnen.
    Wo meinst du jetzt? Die Daten werden ja als timestamp übergeben.
    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  7. #7
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Kalender Klasse

    Ich weiß nicht, inwiefern das mit der Ausgabe richtig möglich ist, aber wenn du statt Jahr und Monat einfach Anfangs- und Endtimestamp speicherst, bist du flexibler und brauchst bei addDate nur per <-Operator zu prüfen.

  8. #8
    Großmeister(in)
    Themenstarter

    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: Kalender Klasse

    Ja bei diesen "Feinheiten" bin ich momentan noch am rumprobieren.
    Bei der Tochterklasse terminKalender, an der ich noch am feilen bin, gibt es funktionen zur Erstellung eines Kalenderblattes für einen Monat oder für ein Jahr.
    Ich bin noch am überlegen inwieweit es vllt. auch nötig/sinnvoll wäre, ein Start- und Enddatum für den Kalender anzugeben.
    Naja, und noch ein paar andere Kleinigkeiten.

    Ich werd vermutlich am WE erstmal eine lauffähige Version für einen Terminkalender posten und dann gegebenenfalls auf Anregungen hin noch anpassen. Die bisher gepostete calendar-Klasse wurde in Kleinigkeiten auch noch überarbeitet.

    Die terminKalender-Klasse wird vorerst nutzbar sein mit mysql oder mysqli.
    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  9. #9
    Forum Guru Avatar von synaptic
    Registriert seit
    20.06.2007
    Ort
    Butzbach-Wiesental
    Beiträge
    10.901
    Danke
    45
    Bekam 48 mal "Danke" in 46 Postings
    Blog-Einträge
    1

    Standard AW: Kalender Klasse

    was ich hier gut finde: dein erster teil ist bereits funktionsfähig und deine weiterentwicklungen haben von dir vorgegebene termine...
    sollten sich einige hier im scriptarchiv ne scheibe von abschneiden.. weiter so!
    KEIN support via pn, email, messenger oder falsch geposteten threads
    Futter für deine Schnuffelzwerge gibts bei den Schnuffelzwergen TOP Qualität, also klicken und kaufen

  10. #10
    Großmeister(in)
    Themenstarter

    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: Kalender Klasse

    Ist leider doch noch nicht fertig geworden, Schwesterchen war über Pfingsten zu Besuch und ich war die meiste Zeit unterwegs.
    Wird aber im Laufe dieser Woche auf jedenfall was.

    Ich poste grad mal den aktuellen Zwischenstand, vielleicht fallen jemandem beim rüberschauen Anregungen ein.
    Die Klasse eventCalendar ist noch nicht komplett durchgetestet, wenn die vorerst endgültige Version kommt werde ich das hier auch wieder rauseditieren. Beschreibung der Methoden kommt auch dann.

    class.calendar.php
    PHP-Code:
    class calendar {
        private 
    $month;
        private 
    $year;
        private 
    $we 2;
        private 
    $dates = array();
        
        public function 
    __construct($month=false,$year=false) {
            if(
    $month===false || !$this->setMonth($month)) {
                
    $this->month date("m");
            }
            if(
    $year===false || !$this->setYear($year)) {
                
    $this->year date("Y");
            }
        }
        public function 
    setMonth($month) {
            if(
    $this->checkMonth($month)) {
                
    $this->month $month<10 "0".(int)$month : (int)$month;
                return 
    true;
            }
            else return 
    false;
        }
        public function 
    getMonth() {
            return 
    $this->month;
        }
        public function 
    setYear($y) {
            if(
    $this->checkYear($y)) {
                
    $this->year $y>=1970 $y : (100==$y 2000 : ($y<10 "200".$y : ($y<=38 "20".$y "19".$y)));
                return 
    true;
            }
            else return 
    false;
        }
        public function 
    getYear() {
            return 
    $this->year;
        }
        public function 
    setWe($we) {
            if(
    1==$we || 2==$we) {
                
    $this->we $we;
                return 
    true;
            }
            else return 
    false;
        }
        public function 
    getWe() {
            return 
    $this->we;
        }
        public function 
    addDate($time,$descr) {
            if(
    date("Y",$time)==$this->year && ""!=trim($descr)) {
                
    $this->dates[$time][] = $descr;
                return 
    true;
            }
            else return 
    false;
        }
        public function 
    resetDates() {
            
    $this->dates = array();
        }
        public function 
    checkMonth($m) {
            
    $m = (int)$m;
            return 
    $m>=&& $m<=12 true false;
        }
        public function 
    checkYear($y) {
            
    $y = (int)$y;
            return (
    $y>=1970 && $y<=2038) || ($y>=&& $y<=38) || ($y>=70 && $y<=100) ? true false;
        }
        public function 
    getCalendar($thumb=true) {
            
    $class    $thumb "thumb" "";
            
    $time     mktime(0,0,0,$this->month,1,$this->year);
            
    $count    date("t",$time);
            
    $wday     date("w",$time);
            
    $w          = (int)date("W",$time);
            
    $week[$w] = "<td id='{$class}CalKw'>{$w}</td>";
            
    $diff  $wday $wday-6;
            if(
    $diff) {
                
    $week[$w].= "<td colspan='{$diff}'></td>\n";
            }
            for(
    $i=1$i<=$count$i++) {
                
    $week[$w].= ""==$week[$w] ? "<td id='{$class}CalKw'>{$w}</td>" "";
                
    $id    "";
                
    $title "";
                
    $event "";
                
    $t     mktime(0,0,0,$this->month,$i,$this->year);
                
    $wd    date("w",$t);
                if(
    array_key_exists($t,$this->dates)) {
                    
    $id    " id='{$class}CalEvent'";                
                    
    $title " title='".implode(" || ",$this->dates[$t])."'";
                    
    $event $thumb "" "<div id='event'>".implode("<br>",$this->dates[$t])."</div>";
                }
                elseif(!
    $wd || (2==$this->we && 6==$wd)) {
                    
    $id " id='{$class}CalWe'";
                }
                
    $week[$w].= "<td{$id}{$title}>{$i}{$event}</td>\n";
                if(!
    $wd) {
                    
    $w++;
                    
    $week[$w] = "";
                }
            }
            if(
    $wd) {
                
    $diff 7-$wd;
                
    $week[$w].= "<td colspan='{$diff}'></td>\n";
            }
            
    $calendar "<tr>".implode("</tr>\n<tr>\n",$week)."</tr>";
            
    $return  "
            <table border='0' cellpadding='0' cellspacing='0' id='
    {$class}Calendar'>
            <tr>
              <th>KW</th><th>Mo</th><th>Di</th><th>Mi</th><th>Do</th><th>Fr</th><th>Sa</th><th>So</th>
            </tr>
            
    {$calendar}
            </table>"
    ;
            return 
    $return;
        }

    class.eventCalendar.php
    PHP-Code:
    class eventCalendar extends calendar {
        private   
    $dbKeys   = array("table","pk","dateField","dateFieldType","descrField");
        protected 
    $dfTypes  = array("date","datetime","timestamp");
        protected 
    $dbValues = array();
        protected 
    $mysqli   false;
        protected 
    $db
        
    // *************************************************************
        // ******************   public functions   *******************
        // *************************************************************
        
    public function __construct(array $dbValues=array(),$month=false,$year=false) {
            if(!
    $this->setDbValues($dbValues)) {
                return 
    false;
            }
            
    parent::__construct($month,$year);
        }
        public function 
    setDbValues(array $dbValues=array()) {
            if(!
    count($dbValues)) {
                
    $this->dbValues = array(
                    
    "table"        =>"termine",
                    
    "pk"           =>"id",
                    
    "dateField"    =>"datum",
                    
    "dateFieldType"=>"timestamp",
                    
    "descrField"   =>"termin"
                
    );
                return 
    true;
            }
            elseif(
    $this->checkDbValues($dbValues)) {
                
    $this->dbValues $dbValues;
                return 
    true;
            }
            else return 
    false;
        }
        public function 
    setMysqli(mysqli $db) {
            
    $this->db     $db;
            
    $this->mysqli true;
        }
        public function 
    setTk() {
            switch(
    $this->dbValues['dateFieldType']) {
              case 
    "date":
                
    $start $this->getYear()."-".$this->getMonth()."-01";
                
    $stop  $this->getYear()."-".$this->getMonth()."-31";
                break;
              case 
    "datetime":
                
    $start $this->getYear()."-".$this->getMonth()."-01 00:00:00";
                
    $stop  $this->getYear()."-".$this->getMonth()."-31 23:59:59";
                break;
              case 
    "timestamp":
                
    $start $this->getYear()."-".$this->getMonth()."01000000";
                
    $stop  $this->getYear()."-".$this->getMonth()."31235959";
                break;
              default: return 
    false;
            }
            return 
    $this->mysqli $this->setCalendarMysqli($start,$stop) : $this->setCalendarMysql($start,$stop);
        }
        public function 
    setTkYear() {
            switch(
    $this->dbValues['dateFieldType']) {
              case 
    "date":
                
    $start $this->getYear()."-01-01";
                
    $stop  $this->getYear()."-12-31";
                break;
              case 
    "datetime":
                
    $start $this->getYear()."-01-01 00:00:00";
                
    $stop  $this->getYear()."-12-31 23:59:59";
                break;
              case 
    "timestamp":
                
    $start $this->getYear()."0101000000";
                
    $stop  $this->getYear()."1231235959";
                break;
              default: return 
    false;
            }
            return 
    $this->mysqli $this->setCalendarMysqli($start,$stop) : $this->setCalendarMysql($start,$stop);
        }
        public function 
    getTk($thumb=true) {
            return 
    $this->getCalendar($thumb);
        }
        public function 
    getTkYear($cols=3) {
            switch((int)
    $cols) {
              case 
    1:
              case 
    2:
              case 
    3:
              case 
    4:
              case 
    6:
              case 
    12:
                break;
              case 
    5:
                
    $cols 4;
                break;
              default:
                
    $cols $cols<12 12;
                break;
            }
            
    $col    1;
            
    $months = array();
            for(
    $i=1;$i<=12;$i++) {
                
    $this->setMonth($i);
                
    $months[$col][] = $this->getCalendar();
                
    $col += 0==$i%$cols 0;
            }
            
    $rows = array();
            foreach(
    $months as $v) {
                
    $rows[] = "<tr>\n<td id='calMonth'>\n".implode("</td>\n<td id='calMonth'>\n",$v)."\n</td>\n</tr>";
            }
            
    $yk "<table cellpadding='0' cellspacing='0' border='0' id='calYear'><tr><th colspan='{$cols}'>{$this->getYear()}</th></tr>\n".implode("\n",$rows)."</table>";
            return 
    $yk;
        }
        public function 
    insertDate($datum,$descr) {
            return 
    $this->mysqli insertMysqli($datum,$descr) : insertMysql($datum,$descr);
        }
        public function 
    updateDate($pk,$datum,$descr) {
            return 
    $this->mysqli updateMysqli($pk,$datum,$descr) : updateMysql($pk,$datum,$descr);
        }
        public function 
    deleteDate($pk) {
            return 
    $this->mysqli deleteMysqli($pk,$datum,$descr) : deleteMysql($pk,$datum,$descr);
        }
        
    // *************************************************************
        // *****************   private functions   *******************
        // *************************************************************
        
    private function setCalendarMysql($start,$stop) {
            
    $sql "
            SELECT
                
    {$this->dbValues['dateField']}  AS datum,
                
    {$this->dbValues['descrField']} AS descr
            FROM
                
    {$this->dbValues['table']}
            WHERE
                
    {$this->dbValues['dateField']} BETWEEN '{$start}' AND '{$stop}'
            ORDER BY 
                
    {$this->dbValues['dateField']} ASC";
            if(!
    $res mysql_query($sql)) { return false; }
            while(
    $row mysql_fetch_array($res)) {
                switch(
    $this->dbValues['dateFieldType']) {
                  case 
    "date":
                    
    $d    explode("-",$row['datum']);
                    
    $time mktime(0,0,0,$d[1],$d[2],$d[0]);
                    break;
                  case 
    "datetime":
                    
    $dt   explode(" ",$row['datum']);
                    
    $d    explode("-",$dt[0]);
                    
    $time mktime(0,0,0,$d[1],$d[2],$d[0]);
                    break;
                  case 
    "timestamp":
                    
    $y    substr($row['datum'],0,4);
                    
    $m    substr($row['datum'],4,2);
                    
    $d    substr($row['datum'],6,2);
                    
    $time mktime(0,0,0,$m,$d,$y);
                    break;
                  default: return 
    false;
                }
                
    $descr stripslashes(trim($row['descr']));
                
    $this->addDate($time,$descr);
            }
            return 
    true;
        }
        private function 
    setCalendarMysqli($start,$stop) {
            
    $sql "
            SELECT
                
    {$this->dbValues['dateField']},
                
    {$this->dbValues['descrField']}
            FROM
                
    {$this->dbValues['table']}
            WHERE
                
    {$this->dbValues['dateField']} BETWEEN ? AND ?
            ORDER BY 
                
    {$this->dbValues['dateField']} ASC";
            if(!
    $res $this->db->prepare($sql)) { return false; }
            
    $res->bind_param("ss",$start,$stop);
            
    $res->execute();
            
    $res->bind_result($datum,$descr);
            while(
    $res->fetch()) {
                switch(
    $this->dbValues['dateFieldType']) {
                  case 
    "date":
                    
    $d    explode("-",$datum);
                    
    $time mktime(0,0,0,$d[1],$d[2],$d[0]);
                    break;
                  case 
    "datetime":
                    
    $dt   explode(" ",$datum);
                    
    $d    explode("-",$dt[0]);
                    
    $time mktime(0,0,0,$d[1],$d[2],$d[0]);
                    break;
                  case 
    "timestamp":
                    
    $y    substr($datum,0,4);
                    
    $m    substr($datum,4,2);
                    
    $d    substr($datum,6,2);
                    
    $time mktime(0,0,0,$m,$d,$y);
                    break;
                  default: return 
    false;
                }
                
    $descr stripslashes(trim($descr));
                
    $this->addDate($time,$descr);
            }
            return 
    true;
        }
        private function 
    insertMysql($datum,$descr) {
            
    $datum mysql_real_escape_string($datum);
            
    $descr mysql_real_escape_string($descr);
            
    $sql "
            INSERT INTO
                
    {$dbValues['table']}
            SET
                
    {$dbValues['dateField']}='{$datum}',
                
    {$dbValues['descrField']}='{$descr}'";
            return 
    mysql_query($sql);
        }
        private function 
    insertMysqli($datum,$descr) {
            
    $sql "
            INSERT INTO
                
    {$dbValues['table']}
            SET
                
    {$dbValues['dateField']}=?,
                
    {$dbValues['descrField']}=?";
            
    $res $this->db->prepare($sql);
            
    $res->bind_param("ss",$datum,$descr);
            return 
    $res->execute();
        }
        private function 
    updateMysql($pk,$datum,$descr) {
            
    $pk = (int)$pk;
            
    $datum mysql_real_escape_string($datum);
            
    $descr mysql_real_escape_string($descr);
            
    $sql "
            UPDATE
                
    {$dbValues['table']}
            SET
                
    {$dbValues['dateField']}='{$datum}',
                
    {$dbValues['descrField']}='{$descr}'
            WHERE
                
    {$dbValues['pk']}={$pk}";
            return 
    mysql_query($sql);
        }
        private function 
    updateMysqli($pk,$datum,$descr) {
            
    $sql "
            UPDATE INTO
                
    {$dbValues['table']}
            SET
                
    {$dbValues['dateField']}=?,
                
    {$dbValues['descrField']}=?
            WHERE
                
    {$dbValues['pk']}=?";
            
    $res $this->db->prepare($sql);
            
    $res->bind_param("ssi",$datum,$descr,$pk);
            return 
    $res->execute();
        }
        private function 
    deleteMysql($pk) {
            
    $pk = (int)$pk;
            
    $sql "
            DELETE FROM
                
    {$dbValues['table']}
            WHERE
                
    {$dbValues['pk']}={$pk}";
            return 
    mysql_query($sql);
        }
        private function 
    deleteMysqli($pk) {
            
    $sql "
            DELETE FROM
                
    {$dbValues['table']}
            WHERE
                
    {$dbValues['pk']}=?";
            
    $res $this->db->prepare($sql);
            
    $res->bind_param("i",$pk);
            return 
    $res->execute();
        }
        private function 
    checkDbValues(array $dbValues) {
            if(
    count($this->dbKeys)!=count($dbValues)) {
                return 
    false;
            }
            foreach(
    $dbValues as $k=>$v) {
                if(!
    in_array($k,$this->dbKeys) || !is_string($v) || ("dateFieldType"==$k && !in_array($v,$this->dfTypes))) {
                    return 
    false;
                }
            }
            return 
    true;
        }   

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

Ähnliche Themen

  1. Kalender
    Von Hendy123 im Forum HTML & CSS Forum
    Antworten: 1
    Letzter Beitrag: 17.09.2007, 22:24
  2. Kalender ?
    Von ZoRo12 im Forum Forum für Grafiken und Bildbearbeitung
    Antworten: 7
    Letzter Beitrag: 24.08.2007, 18:59
  3. Kalender
    Von im Forum HTML & CSS Forum
    Antworten: 2
    Letzter Beitrag: 19.07.2006, 12:04
  4. Kalender
    Von Gast im Forum HTML & CSS Forum
    Antworten: 2
    Letzter Beitrag: 27.11.2005, 17:22
  5. JS: Kalender
    Von Kirtas im Forum HTML & CSS Forum
    Antworten: 2
    Letzter Beitrag: 26.08.2005, 16:16

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •