ilch Forum » Ilch Clan 1.1 » Module und Modifikationen » Kalender Geburtstagseintrag

Geschlossen
  1. #1
    User Pic
    blackcoder Entwickler
    Registriert seit
    22.05.2014
    Beiträge
    2.277
    Beitragswertungen
    356 Beitragspunkte
    Mir ist heute aufgefallen, dass für ein Benutzer im Kalender ein Eintrag wie "2014. Geburtstag von Müller" angezeigt wurde.

    Dies kam daher, da der Benutzer im Profil für sein Geburtsdatum das Jahr nicht mit eingetragen hat ("0000-12-13"). Ich finde es legitim nur Monat und Tag angeben zu wollen und daher habe ich es jetzt bei mir dahingehend geändert, dass in dem Fall nur "Geburtstag von Müller" angezeigt wird.

    Hier mal ein Weg das Problem zu beheben:
    Index: include/contents/kalender.php
    ===================================================================
    --- include/contents/kalender.php	(revision 25)
    +++ include/contents/kalender.php	(revision 27)
    @@ -79,13 +79,22 @@
     while ($r = db_fetch_assoc($result)) {
     	list($y,$m,$d) = explode('-',$r['gebdatum']);
     	$date  = mktime(0,0,0,$m,$d);
    -	$alter = date('Y') - $y;
    -	$row = array(
    -    'title' => $alter.'. Geburtstag von '.$r['name'],
    -    'text'  => 'Der '.$alter.'. Geburtstag von [url=http://'.($_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"]).'?user-details-'.$r['id'].'][b]'.$r['name'].'[/b][/url]',
    -    'time'  => $date + 99,
    -    'id'    => '999'.$r['id'],
    -  );
    +	if ($y == '0000') {
    +		$row = array(
    +		'title' => 'Geburtstag von '.$r['name'],
    +		'text'  => 'Geburtstag von [url=http://'.($_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"]).'?user-details-'.$r['id'].'][b]'.$r['name'].'[/b][/url]',
    +		'time'  => $date + 99,
    +		'id'    => '999'.$r['id'],
    +		);
    +	} else {
    +		$alter = date('Y') - $y;
    +		$row = array(
    +		'title' => $alter.'. Geburtstag von '.$r['name'],
    +		'text'  => 'Der '.$alter.'. Geburtstag von [url=http://'.($_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"]).'?user-details-'.$r['id'].'][b]'.$r['name'].'[/b][/url]',
    +		'time'  => $date + 99,
    +		'id'    => '999'.$r['id'],
    +		);
    +	}
     	$data_id['999'.$r['id']] = $row;
     	$data[$date][] = $row;
     }



    verwendete ilch Version: 1.1 P
    2 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Klatschi262 Mitglied
    Registriert seit
    26.12.2014
    Beiträge
    4
    Beitragswertungen
    0 Beitragspunkte
    Funktioniert wunderbar, Danke.
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Jan68 Mitglied
    Registriert seit
    06.03.2015
    Beiträge
    114
    Beitragswertungen
    0 Beitragspunkte
    Hallo ,

    wo muß ich den Eintrag genau machen?

    Gruß Jan
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.622
    Beitragswertungen
    1192 Beitragspunkte
    include/contents/kalender.php
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Jan68 Mitglied
    Registriert seit
    06.03.2015
    Beiträge
    114
    Beitragswertungen
    0 Beitragspunkte
    Das ist meine jetzige: include/contents/kalender.php

    helf mir doch mal ein wenig auf die Sprünge wo das notwendigerweise mit rein muß um den Kalender zu optimieren.

    Gruß Jan

    <?php
    # Kalender Script © by Nickel
    
    defined ('main') or die ( 'no direct access' );
    
    //-----------------------------------------------------------|
    
    $title = $allgAr['title'].' :: Kalender';
    $hmenu = 'Kalender';
    $design = new design ( $title , $hmenu );
    $design->header();
    
    $tpl = new tpl ( 'kalender.htm' );
    
    //-----------------------------------------------------------|
    
    //Daten
    $month = date('n');
    $year  = date('Y');
    $gday   = 0;
    $view  = 0;
    $eid   = 0;
    if ($menu->getA(1) == 'v' AND is_numeric($menu->getE(1))) {
      $view = $menu->getE(1);
    }
    if ($menu->getA(2) == 'm' AND is_numeric($menu->getE(2)) AND $menu->getE(2) > 0 AND $menu->getE(2) < 13) {
      $month = $menu->getE(2);
    }
    if ($menu->getA(4) == 'd' AND is_numeric($menu->getE(4)) AND $menu->getE(4) > 0 AND $menu->getE(4) < 32) {
      $gday = $menu->getE(4);
    }
    if ($menu->getA(3) == 'y' AND is_numeric($menu->getE(3)) AND $menu->getE(3) > 2000 AND $menu->getE(3) < date('Y', (time()+pow(8,9)))) {
      $year = $menu->getE(3);
    }
    if ($menu->getA(2) == 'e' AND is_numeric($menu->getE(1))) {
      $eid = $menu->getE(2);
    }
    
    
    $arr_month = array('1'=>'Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');
    $arr_day = array('So','Mo','Di','Mi','Do','Fr','Sa');
    
    $days = date('t',mktime(0,0,0,$month,1,$year));
    $start_col = date('w',mktime(0,0,0,$month,1,$year))-1;
    $rows = ceil($days/7);
    $day=1;
    $data = array ();
    $data_id = array ();
    $aus = array();
    
    //Daten aus der MySQL
    $where1 = mktime(0 ,0,0,$month,1,$year);
    $where2 = mktime(24,0,0,$month,date('t',$where1),$year);
    
    $result = db_query("SELECT *
    	FROM prefix_kalender
    	WHERE ((time >= ".$where1." AND time < ".$where2.") OR id = ".$eid.")
    		AND ".$_SESSION['authright']." <= recht
    	ORDER BY time LIMIT 200");
    while ($row = db_fetch_assoc($result)) {
    	$t_id = $row['id'];
    	$t_d = date('j', $row['time']);
    	$t_m = date('n', $row['time']);
    	$t_y = date('Y', $row['time']);
    	$date = mktime(0,0,0,$t_m,$t_d,$t_y);
    	$data_id[$t_id] = $row;
    	$data[$date][] = $row;
    }
    $ueid = 0;
    if (substr($eid, 0, 3) == 999) {
    $ueid = substr ($eid, 3);
    }
    $result = db_query("SELECT
      name, gebdatum, id
      FROM prefix_user
      WHERE MONTH(gebdatum) = ".$month."
    	  OR id = ".$ueid."
    	ORDER BY MONTH(gebdatum), DAYOFMONTH(gebdatum) LIMIT 200");
    while ($r = db_fetch_assoc($result)) {
    	list($y,$m,$d) = explode('-',$r['gebdatum']);
    	$date  = mktime(0,0,0,$m,$d);
    	$alter = date('Y') - $y;
    	$row = array(
        'title' => $alter.'. Geburtstag von '.$r['name'],
        'text'  => 'Der '.$alter.'. Geburtstag von [url=http://'.($_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"]).'?user-details-'.$r['id'].'][b]'.$r['name'].'[/b][/url]',
        'time'  => $date + 99,
        'id'    => '999'.$r['id'],
      );
    	$data_id['999'.$r['id']] = $row;
    	$data[$date][] = $row;
    }
    
    if ($view == 0) {
    	$title_liste = $arr_month[$month].' '.$year;
    } elseif ($view == 1 && !empty($gday)) {
    	$title_liste = 'Nur am '.$gday.' '.$arr_month[$month].' '.$year;
    } elseif ($view == 1) {
    	$title_liste = 'Liste ab '.$arr_month[$month].' '.$year;
    }
    
    //Template Ausgabe
    $aus['MONTH'] = $arr_month[$month];
    $aus['YEAR'] = $year;
    $aus['TITLE'] = ($eid) ? $data_id[$eid]['title'] : $title_liste;
    $aus['TITLE_ALIGN'] = ($eid) ? '' : ' align="center"';
    $tpl->set_ar_out($aus,0);
    unset($aus);
    
    //Deatilansicht
    if ($eid) {
    	$aus['DEATIL_DATE'] = date('d.m.Y',$data_id[$eid]['time']);
    	$aus['DEATIL_TIME'] = date('H:i',$data_id[$eid]['time']);
    	$aus['DEATIL_TEXT'] = BBcode($data_id[$eid]['text']);
    	$tpl->set_ar_out($aus,2);
    	unset($aus);
    }
    //Liste der Tage (Monats-Ansicht)
    elseif ($view == 0) {
    	for($i=0;$i<$days;$i++) {
    		$date = mktime(0,0,0,$month,$i+1,$year);
        $text = '';
    		if (isset($data[$date])) {
    			foreach($data[$date] as $info) {
    				$text .= '<a href="?kalender-v'.$view.'-e'.$info['id'].'">'.$info['title'].'</a>;&nbsp;';
    			}
    		}
    
    		$aus['LIST_I'] = $i+1;
    		$aus['LIST_D'] = $arr_day[date('w',mktime(0,0,0,$month,$i+1,$year))];
    		$aus['LIST_T'] = $text;
    		$class = ($i % 2) ? 'Cnorm' : 'Cmite' ;
    		$aus['LIST_CLASS'] = ($i+1 == date('j') && $month == date('n') && $year == date('Y')) ? 'Cdark' : $class;
    		$tpl->set_ar_out($aus,1);
    		unset($aus);
    	}
    }
    //Liste der Tage (Listenansicht)
    elseif ($view == 1) {
    	//Nur ein Tag
    	if (isset($data) && !empty($gday)) {
    		$date = mktime(0,0,0,$month,$gday,$year);
    		$i = 1;
        if (isset($data[$date])) {
    		foreach($data[$date] as $info) {
    			$text  = '';
    			$text .= '<a href="?kalender-v'.$view.'-e'.$info['id'].'">'.$info['title'].'</a>;&nbsp;';
    			$aus['LIST_I'] = $arr_day[date('w',$date)];
    			$aus['LIST_D'] = date('H:i',$info['time']);;
    			$aus['LIST_T'] = $text;
    			$class = ($i % 2) ? 'Cnorm' : 'Cmite' ;
    			$aus['LIST_CLASS'] = ($i+1 == date('j') && $month == date('n') && $year == date('Y')) ? 'Cdark' : $class;
    			$tpl->set_ar_out($aus,1);
    			unset($aus);
    			$i++;
    		}
        }
    	//Ganze Liste
    	} elseif (isset($data)) {
    		$i = 1;
    		foreach($data as $date => $data1) {
    			$text = '';
    			foreach($data1 as $info) {
    				$text .= '<a href="?kalender-v'.$view.'-e'.$info['id'].'">'.$info['title'].'</a>;&nbsp;';
    			}
    			$aus['LIST_I'] = date('d.m.Y',$date);
    			$aus['LIST_D'] = $arr_day[date('w',$date)];
    			$aus['LIST_T'] = $text;
    			$class = ($i % 2) ? 'Cnorm' : 'Cmite' ;
    			$aus['LIST_CLASS'] = ($i+1 == date('j') && $month == date('n') && $year == date('Y')) ? 'Cdark' : $class;
    			$tpl->set_ar_out($aus,1);
    			unset($aus);
    			$i++;
    		}
    	} else {
    		$aus['LIST_I'] = '-';
    		$aus['LIST_D'] = '-';
    		$aus['LIST_T'] = '-';
    		$aus['LIST_CLASS'] = 'Cnorm';
    		$tpl->set_ar_out($aus,1);
    		unset($aus);
    	}
    }
    
    # kalender
    $tpl->set('calender', getCalendar($month,$year, 'index.php?kalender-v1-m{mon}-y{jahr}-d{tag}', 'index.php?kalender-v'.$view.'-m{mon}-y{jahr}', $data));
    $tpl->out(3);
    
    $design->footer();
    ?>
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    blackcoder Entwickler
    Registriert seit
    22.05.2014
    Beiträge
    2.277
    Beitragswertungen
    356 Beitragspunkte
    Vorher eine Sicherheitskopie der Datei anlegen und dann die Zeilen 82 bis 88:
        $alter = date('Y') - $y;
        $row = array(
        'title' => $alter.'. Geburtstag von '.$r['name'],
        'text'  => 'Der '.$alter.'. Geburtstag von [url=http://'.($_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"]).'?user-details-'.$r['id'].'][b]'.$r['name'].'[/b][/url]',
        'time'  => $date + 99,
        'id'    => '999'.$r['id'],
      );


    durch folgende ersetzen
    	if ($y == '0000') {
    		$row = array(
    		'title' => 'Geburtstag von '.$r['name'],
    		'text'  => 'Geburtstag von [url=http://'.($_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"]).'?user-details-'.$r['id'].'][b]'.$r['name'].'[/b][/url]',
    		'time'  => $date + 99,
    		'id'    => '999'.$r['id'],
    		);
    	} else {
    		$alter = date('Y') - $y;
    		$row = array(
    		'title' => $alter.'. Geburtstag von '.$r['name'],
    		'text'  => 'Der '.$alter.'. Geburtstag von [url=http://'.($_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"]).'?user-details-'.$r['id'].'][b]'.$r['name'].'[/b][/url]',
    		'time'  => $date + 99,
    		'id'    => '999'.$r['id'],
    		);
    	}


    Anschließend testen ob es funktioniert hat und wenn nicht dann die Sicherheitskopie wieder einspielen.
    2 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Jan68 Mitglied
    Registriert seit
    06.03.2015
    Beiträge
    114
    Beitragswertungen
    0 Beitragspunkte
    Hallo und Danke erst mal Blackcoder,

    kannst du noch mal drüberschauen. Ich erhalte eine Fehlermeldung : Parse error: syntax error, unexpected ')' in /www/Ilch/include/contents/kalender1.php on line 97

    Ich kenne mich mit PHP Code nicht aus

    Gruß Jan

    <?php
    # Kalender Script © by Nickel
     
    defined ('main') or die ( 'no direct access' );
     
    //-----------------------------------------------------------|
     
    $title = $allgAr['title'].' :: Kalender';
    $hmenu = 'Kalender';
    $design = new design ( $title , $hmenu );
    $design->header();
     
    $tpl = new tpl ( 'kalender.htm' );
     
    //-----------------------------------------------------------|
     
    //Daten
    $month = date('n');
    $year  = date('Y');
    $gday   = 0;
    $view  = 0;
    $eid   = 0;
    if ($menu->getA(1) == 'v' AND is_numeric($menu->getE(1))) {
      $view = $menu->getE(1);
    }
    if ($menu->getA(2) == 'm' AND is_numeric($menu->getE(2)) AND $menu->getE(2) > 0 AND $menu->getE(2) < 13) {
      $month = $menu->getE(2);
    }
    if ($menu->getA(4) == 'd' AND is_numeric($menu->getE(4)) AND $menu->getE(4) > 0 AND $menu->getE(4) < 32) {
      $gday = $menu->getE(4);
    }
    if ($menu->getA(3) == 'y' AND is_numeric($menu->getE(3)) AND $menu->getE(3) > 2000 AND $menu->getE(3) < date('Y', (time()+pow(8,9)))) {
      $year = $menu->getE(3);
    }
    if ($menu->getA(2) == 'e' AND is_numeric($menu->getE(1))) {
      $eid = $menu->getE(2);
    }
     
     
    $arr_month = array('1'=>'Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');
    $arr_day = array('So','Mo','Di','Mi','Do','Fr','Sa');
     
    $days = date('t',mktime(0,0,0,$month,1,$year));
    $start_col = date('w',mktime(0,0,0,$month,1,$year))-1;
    $rows = ceil($days/7);
    $day=1;
    $data = array ();
    $data_id = array ();
    $aus = array();
     
    //Daten aus der MySQL
    $where1 = mktime(0 ,0,0,$month,1,$year);
    $where2 = mktime(24,0,0,$month,date('t',$where1),$year);
     
    $result = db_query("SELECT *
        FROM prefix_kalender
        WHERE ((time >= ".$where1." AND time < ".$where2.") OR id = ".$eid.")
            AND ".$_SESSION['authright']." <= recht
        ORDER BY time LIMIT 200");
    while ($row = db_fetch_assoc($result)) {
        $t_id = $row['id'];
        $t_d = date('j', $row['time']);
        $t_m = date('n', $row['time']);
        $t_y = date('Y', $row['time']);
        $date = mktime(0,0,0,$t_m,$t_d,$t_y);
        $data_id[$t_id] = $row;
        $data[$date][] = $row;
    }
    $ueid = 0;
    if (substr($eid, 0, 3) == 999) {
    $ueid = substr ($eid, 3);
    }
    $result = db_query("SELECT
      name, gebdatum, id
      FROM prefix_user
      WHERE MONTH(gebdatum) = ".$month."
          OR id = ".$ueid."
        ORDER BY MONTH(gebdatum), DAYOFMONTH(gebdatum) LIMIT 200");
    while ($r = db_fetch_assoc($result)) {
        list($y,$m,$d) = explode('-',$r['gebdatum']);
    if ($y == '0000') {
        $row = array(
        'title' => 'Geburtstag von '.$r['name'],
        'text'  => 'Geburtstag von [url=http://'.($_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"]).'?user-details-'.$r['id'].'][b]'.$r['name'].'[/b][/url]',
        'time'  => $date + 99,
        'id'    => '999'.$r['id'],
        );
    } else {
        $alter = date('Y') - $y;
        $row = array(
        'title' => $alter.'. Geburtstag von '.$r['name'],
        'text'  => 'Der '.$alter.'. Geburtstag von [url=http://'.($_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"]).'?user-details-'.$r['id'].'][b]'.$r['name'].'[/b][/url]',
        'time'  => $date + 99,
        'id'    => '999'.$r['id'],
        );
    }
      );
        $data_id['999'.$r['id']] = $row;
        $data[$date][] = $row;
    }
     
    if ($view == 0) {
        $title_liste = $arr_month[$month].' '.$year;
    } elseif ($view == 1 && !empty($gday)) {
        $title_liste = 'Nur am '.$gday.' '.$arr_month[$month].' '.$year;
    } elseif ($view == 1) {
        $title_liste = 'Liste ab '.$arr_month[$month].' '.$year;
    }
     
    //Template Ausgabe
    $aus['MONTH'] = $arr_month[$month];
    $aus['YEAR'] = $year;
    $aus['TITLE'] = ($eid) ? $data_id[$eid]['title'] : $title_liste;
    $aus['TITLE_ALIGN'] = ($eid) ? '' : ' align="center"';
    $tpl->set_ar_out($aus,0);
    unset($aus);
     
    //Deatilansicht
    if ($eid) {
        $aus['DEATIL_DATE'] = date('d.m.Y',$data_id[$eid]['time']);
        $aus['DEATIL_TIME'] = date('H:i',$data_id[$eid]['time']);
        $aus['DEATIL_TEXT'] = BBcode($data_id[$eid]['text']);
        $tpl->set_ar_out($aus,2);
        unset($aus);
    }
    //Liste der Tage (Monats-Ansicht)
    elseif ($view == 0) {
        for($i=0;$i<$days;$i++) {
            $date = mktime(0,0,0,$month,$i+1,$year);
        $text = '';
            if (isset($data[$date])) {
                foreach($data[$date] as $info) {
                    $text .= '<a href="?kalender-v'.$view.'-e'.$info['id'].'">'.$info['title'].'</a>;&nbsp;';
                }
            }
     
            $aus['LIST_I'] = $i+1;
            $aus['LIST_D'] = $arr_day[date('w',mktime(0,0,0,$month,$i+1,$year))];
            $aus['LIST_T'] = $text;
            $class = ($i % 2) ? 'Cnorm' : 'Cmite' ;
            $aus['LIST_CLASS'] = ($i+1 == date('j') && $month == date('n') && $year == date('Y')) ? 'Cdark' : $class;
            $tpl->set_ar_out($aus,1);
            unset($aus);
        }
    }
    //Liste der Tage (Listenansicht)
    elseif ($view == 1) {
        //Nur ein Tag
        if (isset($data) && !empty($gday)) {
            $date = mktime(0,0,0,$month,$gday,$year);
            $i = 1;
        if (isset($data[$date])) {
            foreach($data[$date] as $info) {
                $text  = '';
                $text .= '<a href="?kalender-v'.$view.'-e'.$info['id'].'">'.$info['title'].'</a>;&nbsp;';
                $aus['LIST_I'] = $arr_day[date('w',$date)];
                $aus['LIST_D'] = date('H:i',$info['time']);;
                $aus['LIST_T'] = $text;
                $class = ($i % 2) ? 'Cnorm' : 'Cmite' ;
                $aus['LIST_CLASS'] = ($i+1 == date('j') && $month == date('n') && $year == date('Y')) ? 'Cdark' : $class;
                $tpl->set_ar_out($aus,1);
                unset($aus);
                $i++;
            }
        }
        //Ganze Liste
        } elseif (isset($data)) {
            $i = 1;
            foreach($data as $date => $data1) {
                $text = '';
                foreach($data1 as $info) {
                    $text .= '<a href="?kalender-v'.$view.'-e'.$info['id'].'">'.$info['title'].'</a>;&nbsp;';
                }
                $aus['LIST_I'] = date('d.m.Y',$date);
                $aus['LIST_D'] = $arr_day[date('w',$date)];
                $aus['LIST_T'] = $text;
                $class = ($i % 2) ? 'Cnorm' : 'Cmite' ;
                $aus['LIST_CLASS'] = ($i+1 == date('j') && $month == date('n') && $year == date('Y')) ? 'Cdark' : $class;
                $tpl->set_ar_out($aus,1);
                unset($aus);
                $i++;
            }
        } else {
            $aus['LIST_I'] = '-';
            $aus['LIST_D'] = '-';
            $aus['LIST_T'] = '-';
            $aus['LIST_CLASS'] = 'Cnorm';
            $tpl->set_ar_out($aus,1);
            unset($aus);
        }
    }
     
    # kalender
    $tpl->set('calender', getCalendar($month,$year, 'index.php?kalender-v1-m{mon}-y{jahr}-d{tag}', 'index.php?kalender-v'.$view.'-m{mon}-y{jahr}', $data));
    $tpl->out(3);
     
    $design->footer();
    ?>
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Du hast in Zeile 97 halt das ); drin gelassen, was du mit ersetzen solltest. Also einfach die Zeile 97 entfernen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Jan68 Mitglied
    Registriert seit
    06.03.2015
    Beiträge
    114
    Beitragswertungen
    0 Beitragspunkte
    Hallo und Danke für deine Mühe Mairu,

    wenn ich das wegnehme kommt: Parse error: syntax error, unexpected ')' in /www/Ilch/include/contents/kalender1.php on line 96

    Gruß Jan
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    blackcoder Entwickler
    Registriert seit
    22.05.2014
    Beiträge
    2.277
    Beitragswertungen
    356 Beitragspunkte
    Ich denke du kannst den Inhalt meiner Datei auch einfach übernehmen. Wie immer Sicherheitskopie der Originaldatei anlegen.

    <?php
    # Kalender Script © by Nickel
    
    defined ('main') or die ( 'no direct access' );
    
    //-----------------------------------------------------------|
    
    $title = $allgAr['title'].' :: Kalender';
    $hmenu = 'Kalender';
    $design = new design ( $title , $hmenu );
    $design->header();
    
    $tpl = new tpl ( 'kalender.htm' );
    
    //-----------------------------------------------------------|
    
    //Daten
    $month = date('n');
    $year  = date('Y');
    $gday   = 0;
    $view  = 0;
    $eid   = 0;
    if ($menu->getA(1) == 'v' AND is_numeric($menu->getE(1))) {
      $view = $menu->getE(1);
    }
    if ($menu->getA(2) == 'm' AND is_numeric($menu->getE(2)) AND $menu->getE(2) > 0 AND $menu->getE(2) < 13) {
      $month = $menu->getE(2);
    }
    if ($menu->getA(4) == 'd' AND is_numeric($menu->getE(4)) AND $menu->getE(4) > 0 AND $menu->getE(4) < 32) {
      $gday = $menu->getE(4);
    }
    if ($menu->getA(3) == 'y' AND is_numeric($menu->getE(3)) AND $menu->getE(3) > 2000 AND $menu->getE(3) < date('Y', (time()+pow(8,9)))) {
      $year = $menu->getE(3);
    }
    if ($menu->getA(2) == 'e' AND is_numeric($menu->getE(1))) {
      $eid = $menu->getE(2);
    }
    
    
    $arr_month = array('1'=>'Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');
    $arr_day = array('So','Mo','Di','Mi','Do','Fr','Sa');
    
    $days = date('t',mktime(0,0,0,$month,1,$year));
    $start_col = date('w',mktime(0,0,0,$month,1,$year))-1;
    $rows = ceil($days/7);
    $day=1;
    $data = array ();
    $data_id = array ();
    $aus = array();
    
    //Daten aus der MySQL
    $where1 = mktime(0 ,0,0,$month,1,$year);
    $where2 = mktime(24,0,0,$month,date('t',$where1),$year);
    
    $result = db_query("SELECT *
    	FROM prefix_kalender
    	WHERE ((time >= ".$where1." AND time < ".$where2.") OR id = ".$eid.")
    		AND ".$_SESSION['authright']." <= recht
    	ORDER BY time LIMIT 200");
    while ($row = db_fetch_assoc($result)) {
    	$t_id = $row['id'];
    	$t_d = date('j', $row['time']);
    	$t_m = date('n', $row['time']);
    	$t_y = date('Y', $row['time']);
    	$date = mktime(0,0,0,$t_m,$t_d,$t_y);
    	$data_id[$t_id] = $row;
    	$data[$date][] = $row;
    }
    $ueid = 0;
    if (substr($eid, 0, 3) == 999) {
    $ueid = substr ($eid, 3);
    }
    $result = db_query("SELECT
      name, gebdatum, id
      FROM prefix_user
      WHERE MONTH(gebdatum) = ".$month."
    	  OR id = ".$ueid."
    	ORDER BY MONTH(gebdatum), DAYOFMONTH(gebdatum) LIMIT 200");
    while ($r = db_fetch_assoc($result)) {
    	list($y,$m,$d) = explode('-',$r['gebdatum']);
    	$date  = mktime(0,0,0,$m,$d);
    	if ($y == '0000') {
    		$row = array(
    		'title' => 'Geburtstag von '.$r['name'],
    		'text'  => 'Geburtstag von [url=http://'.($_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"]).'?user-details-'.$r['id'].'][b]'.$r['name'].'[/b][/url]',
    		'time'  => $date + 99,
    		'id'    => '999'.$r['id'],
    		);
    	} else {
    		$alter = date('Y') - $y;
    		$row = array(
    		'title' => $alter.'. Geburtstag von '.$r['name'],
    		'text'  => 'Der '.$alter.'. Geburtstag von [url=http://'.($_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"]).'?user-details-'.$r['id'].'][b]'.$r['name'].'[/b][/url]',
    		'time'  => $date + 99,
    		'id'    => '999'.$r['id'],
    		);
    	}
    	$data_id['999'.$r['id']] = $row;
    	$data[$date][] = $row;
    }
    
    if ($view == 0) {
    	$title_liste = $arr_month[$month].' '.$year;
    } elseif ($view == 1 && !empty($gday)) {
    	$title_liste = 'Nur am '.$gday.' '.$arr_month[$month].' '.$year;
    } elseif ($view == 1) {
    	$title_liste = 'Liste ab '.$arr_month[$month].' '.$year;
    }
    
    //Template Ausgabe
    $aus['MONTH'] = $arr_month[$month];
    $aus['YEAR'] = $year;
    $aus['TITLE'] = ($eid) ? $data_id[$eid]['title'] : $title_liste;
    $aus['TITLE_ALIGN'] = ($eid) ? '' : ' align="center"';
    $tpl->set_ar_out($aus,0);
    unset($aus);
    
    //Deatilansicht
    if ($eid) {
    	$aus['DEATIL_DATE'] = date('d.m.Y',$data_id[$eid]['time']);
    	$aus['DEATIL_TIME'] = date('H:i',$data_id[$eid]['time']);
    	$aus['DEATIL_TEXT'] = BBcode($data_id[$eid]['text']);
    	$tpl->set_ar_out($aus,2);
    	unset($aus);
    }
    //Liste der Tage (Monats-Ansicht)
    elseif ($view == 0) {
    	for($i=0;$i<$days;$i++) {
    		$date = mktime(0,0,0,$month,$i+1,$year);
        $text = '';
    		if (isset($data[$date])) {
    			foreach($data[$date] as $info) {
    				$text .= '<a href="?kalender-v'.$view.'-e'.$info['id'].'">'.$info['title'].'</a>;&nbsp;';
    			}
    		}
    
    		$aus['LIST_I'] = $i+1;
    		$aus['LIST_D'] = $arr_day[date('w',mktime(0,0,0,$month,$i+1,$year))];
    		$aus['LIST_T'] = $text;
    		$class = ($i % 2) ? 'Cnorm' : 'Cmite' ;
    		$aus['LIST_CLASS'] = ($i+1 == date('j') && $month == date('n') && $year == date('Y')) ? 'Cdark' : $class;
    		$tpl->set_ar_out($aus,1);
    		unset($aus);
    	}
    }
    //Liste der Tage (Listenansicht)
    elseif ($view == 1) {
    	//Nur ein Tag
    	if (isset($data) && !empty($gday)) {
    		$date = mktime(0,0,0,$month,$gday,$year);
    		$i = 1;
        if (isset($data[$date])) {
    		foreach($data[$date] as $info) {
    			$text  = '';
    			$text .= '<a href="?kalender-v'.$view.'-e'.$info['id'].'">'.$info['title'].'</a>;&nbsp;';
    			$aus['LIST_I'] = $arr_day[date('w',$date)];
    			$aus['LIST_D'] = date('H:i',$info['time']);;
    			$aus['LIST_T'] = $text;
    			$class = ($i % 2) ? 'Cnorm' : 'Cmite' ;
    			$aus['LIST_CLASS'] = ($i+1 == date('j') && $month == date('n') && $year == date('Y')) ? 'Cdark' : $class;
    			$tpl->set_ar_out($aus,1);
    			unset($aus);
    			$i++;
    		}
        }
    	//Ganze Liste
    	} elseif (isset($data)) {
    		$i = 1;
    		foreach($data as $date => $data1) {
    			$text = '';
    			foreach($data1 as $info) {
    				$text .= '<a href="?kalender-v'.$view.'-e'.$info['id'].'">'.$info['title'].'</a>;&nbsp;';
    			}
    			$aus['LIST_I'] = date('d.m.Y',$date);
    			$aus['LIST_D'] = $arr_day[date('w',$date)];
    			$aus['LIST_T'] = $text;
    			$class = ($i % 2) ? 'Cnorm' : 'Cmite' ;
    			$aus['LIST_CLASS'] = ($i+1 == date('j') && $month == date('n') && $year == date('Y')) ? 'Cdark' : $class;
    			$tpl->set_ar_out($aus,1);
    			unset($aus);
    			$i++;
    		}
    	} else {
    		$aus['LIST_I'] = '-';
    		$aus['LIST_D'] = '-';
    		$aus['LIST_T'] = '-';
    		$aus['LIST_CLASS'] = 'Cnorm';
    		$tpl->set_ar_out($aus,1);
    		unset($aus);
    	}
    }
    
    # kalender
    $tpl->set('calender', getCalendar($month,$year, 'index.php?kalender-v1-m{mon}-y{jahr}-d{tag}', 'index.php?kalender-v'.$view.'-m{mon}-y{jahr}', $data));
    $tpl->out(3);
    
    $design->footer();
    ?>
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Jan68 Mitglied
    Registriert seit
    06.03.2015
    Beiträge
    114
    Beitragswertungen
    0 Beitragspunkte
    Hallo und Danke ihr Lieben,

    habe die kalender.php von blackcoder übernommen und läuft(alte gesichert). Bin erstmal zufrieden.

    Ein herzliches Gott befohlen zwinker
    Der Herr Jesus starb für uns! zum Ärgenisses des Satans! zunge

    Gruß Jan
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    pimpi Mitglied
    Registriert seit
    20.09.2014
    Beiträge
    12
    Beitragswertungen
    0 Beitragspunkte
    vielen Dank an blackcoder für den Tipp mit dem Kalender. Funktioniert super lachen

    Pimpi
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Module und Modifikationen

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten