ilch Forum » Ilch Clan 1.1 » Module und Modifikationen » HIife bei modifiziertem Kalender

Geschlossen
  1. #1
    User Pic
    MonkeyOnKeyboard Moderator
    Registriert seit
    10.02.2014
    Beiträge
    437
    Beitragswertungen
    20 Beitragspunkte
    Hi nabend Community,

    bei mir ist ein Problem aufgetauch. Und zwar wurde vor etlicher Zeit mit Hilfe das Kalender script und die nexttermin box so modifiziert, das die beiden eigentlich nur Termine für die Gruppen / Teams anzeigt, in die ein User ist.

    Leider funktioniert es nicht mehr.
    wir haben bei uns ca 31 Teams definiert mit unterschiedlichen Funktionen und Abteilungen.

    Neuerdings funktioniert die Differenzierung nicht mehr.
    Demzufolge werden plötzlich wieder alle Termine für alle Gruppen bei allen Usern angezeigt.

    Vielleicht kann jemand helfen, um den Fehler zu beheben.

    1. Angefangen vom veränderten Kalender im Adminbereich

    <?php
     
    # Kalender Script © by Nickel
    # ueberarbeitet von Manuel
     
    defined('main') or die('no direct access');
    defined('admin') or die('only admin access');
     
    # Funktionen
     
    function XAJAX_showCalendar($m, $j, $f) {
        if (empty($m)) {
            $m = date('n');
        }
        if (empty($j)) {
            $j = date('Y');
        }
     
        $objResponse = new xajaxResponse();
     
        $content = '<table border="0" cellpadding="1" cellspacing="1" class="border"><tr><td class="Cnorm"><a href="javascript:close' . $f . '();">schliessen</a></td></tr></table>';
        $content .= getCalendar($m, $j, 'javascript:void(0);" onclick="set' . $f . '(\'{jahr}-{mon}-{tag}\')', 'javascript:void(0);" onclick="xajax_XAJAX_showCalendar({mon},{jahr},\'' . $f . '\')', '');
     
        $objResponse->assign('skalender' . $f, 'style.display', 'block');
        $objResponse->assign('skalender' . $f, 'innerHTML', $content);
     
        # return object
        return $objResponse;
    }
     
    function checkzyklusins($x, $i0, $i1, $i2, $z, $sar) {
        $ts = mktime(0, 0, 0, $i1, $i2, $i0);
        $wt = date('w', $ts);
        if ($z == 'wer' AND ( $wt > 0 AND $wt < 6)) {
            return (true);
        } elseif ($z == 'wek' AND ( $wt == 0 OR $wt == 6)) {
            return (true);
        } elseif ($z == 'woc' AND ( ($x % 7) == 1)) {
            return (true);
        } elseif ($z == '14t' AND ( ($x % 14) == 1)) {
            return (true);
        } elseif ($z == 'mon' AND ( $i2 == $sar[2])) {
            return (true);
        } elseif ($z == 'jae' AND ( $i1 == $sar[1] AND $i2 == $sar[2])) {
            return (true);
        }
     
        return (false);
    }
     
    function zyklusinsert($sar, $ear, $z) {
        $x = 1;
        $first_id = 0;
        for ($i0 = $sar[0]; $i0 <= $ear[0]; $i0++) {
            $sm = 1;
            $em = 12;
            if ($sar[0] == $i0) {
                $sm = $sar[1];
            }
            if ($ear[0] == $i0) {
                $em = $ear[1];
            }
            for ($i1 = $sm; $i1 <= $em; $i1++) {
                $st = 1;
                $et = date('t', mktime(0, 0, 0, $i1, 1, $i0));
                if ($sar[0] == $i0 AND $sar[1] == $i1) {
                    $st = $sar[2];
                }
                if ($ear[0] == $i0 AND $ear[1] == $i1) {
                    $et = $ear[2];
                }
                for ($i2 = $st; $i2 <= $et; $i2++) {
                    if (checkzyklusins($x, $i0, $i1, $i2, $z, $sar)) {
                        $time = mktime($_POST['stunde'], $_POST['minute'], 0, $i1, $i2, $i0);
                        db_query("INSERT INTO `prefix_kalender` (time,gid,title,text,recht,team) VALUES (" . $time . "," . $first_id . ",'" . escape($_POST['title'], 'string') . "','" . escape($_POST['txt'], 'string') . "','" . escape($_POST['recht'], 'integer') . "','" . $team . "')");
                        if ($first_id == 0) {
                            $first_id = db_last_id();
                            db_query("UPDATE prefix_kalender SET gid = " . $first_id . " WHERE id = " . $first_id);
                        }
                    }
                    $x++;
                }
            }
        }
    }
     
    # AJAX Start
    $xajax = new xajax('http://' . $_SERVER["HTTP_HOST"] . $_SERVER["SCRIPT_NAME"] . '?kalender=0');
    $xajax->registerFunction("XAJAX_showCalendar");
    $xajax->processRequest();
     
    # DESIGN
    $design = new design('Admins Area', 'Admins Area', 2);
    $design->header();
     
    # AJAX ausgabe
    echo $xajax->printJavascript();
     
    if (!empty($_REQUEST['um'])) {
        $sar = explode('-', $_POST['begind']);
        if (!@checkdate($sar[1], $sar[2], $sar[0])) {
            echo 'Das eingegebene Datum ist nicht g&uuml;ltig ';
            echo '<a href="javascript:history.back()">zur&uuml;ck</a>';
            $design->footer(1);
        }
        if (!empty($_POST['zende'])) {
            $ear = explode('-', $_POST['zende']);
            if (!@checkdate($ear[1], $ear[2], $ear[0])) {
                echo 'Das eingegebene Datum f&uuml;r das Zyklusende ist nicht g&uuml;ltig ';
                echo '<a href="javascript:history.back()">zur&uuml;ck</a>';
                $design->footer(1);
            }
        }
        $z = '';
        if (isset($_POST['zyklus'])) {
            $z = $_POST['zyklus'];
        }
        $text = escape($_POST['txt'], 'string');
     
        $time = mktime($_POST['stunde'], $_POST['minute'], 0, $sar[1], $sar[2], $sar[0]);
     
        if (isset($_POST['check'])) {
            $team = $_POST['team'];
        } else {
            $team = 0;
        }
     
        // Einfuegen
        if ($_REQUEST['um'] == 'insert') {
            if (!empty($z)) {
                zyklusinsert($sar, $ear, $z, $_POST);
            } else {
                db_query("INSERT INTO `prefix_kalender` (time,title,text,recht,team) VALUES (" . $time . ",'" . escape($_POST['title'], 'string') . "','" . $text . "','" . escape($_POST['recht'], 'integer') . "','" . $team . "')");
            }
     
            // Aendern
        } elseif ($_REQUEST['um'] == 'change') {
     
            if (isset($_POST['gid']) AND $_POST['gid'] == 'yes') {
                $gid1 = db_result(db_query("SELECT gid FROM prefix_kalender WHERE id = " . escape($_POST['EID'], 'integer')), 0, 0);
            }
     
            if (isset($_POST['gid']) AND $_POST['gid'] == 'yes' AND $gid1 > 0) {
                $_POST['title'] = escape($_POST['title'], 'string');
                $_POST['recht'] = escape($_POST['recht'], 'integer');
                db_query("UPDATE `prefix_kalender` SET
                      title = '" . $_POST['title'] . "',
                      text  = '" . $text . "',
                      recht = '" . $_POST['recht'] . "',
                      team = '" . $team . "'
                  WHERE gid = " . $gid1);
            } else {
                db_query("UPDATE `prefix_kalender` SET
                    time    = '" . $time . "',
                      title = '" . $_POST['title'] . "',
                      text  = '" . $text . "',
                      recht = '" . $_POST['recht'] . "',
                      team = '" . $team . "'
                  WHERE id = " . $_POST['EID'] . " LIMIT 1");
            }
        }
    }
     
    //Loeschen
    if (!empty($_GET['del']) AND $_GET['del'] == intval($_GET['del'])) {
        db_query("DELETE FROM `prefix_kalender` WHERE id = " . escape($_GET['del'], 'integer') . " LIMIT 1");
    }
    if (!empty($_GET['del_gid']) AND $_GET['del_gid'] == intval($_GET['del_gid'])) {
        db_query("DELETE FROM prefix_kalender WHERE gid = " . escape($_GET['del_gid'], 'integer'));
    }
     
    //-----------------------------------------------------------|
     
     
     
    if (isset($_GET['edit'])) {
        $row = db_fetch_assoc(db_query("SELECT * FROM `prefix_kalender` WHERE id = " . escape($_GET['edit'], 'integer')));
        ($row['team'] != 0 ? $Fcheked = 'checked' : $Fcheked = '');
        $Faktion = 'change';
        $Fid = $row['id'];
        $Ftitle = $row['title'];
        $Ftext = unescape($row['text']);
        $Fbegind = date('Y-n-j', $row['time']);
        $Fzende = $Fbegind;
        $Fhours = date('G', $row['time']);
        $Fmins = date('i', $row['time']);
        $Frecht = $row['recht'];
        $Fteam = $row['team'];
        $Fsub = '&Auml;ndern';
    } else {
        $pubdate = getdate();
        $Fcheked = '';
        $Faktion = 'insert';
        $Fid = '';
        $Ftitle = '';
        $Ftext = '';
        $Fbegind = date('Y-n-j');
        $Fzende = $Fbegind;
        $Fhours = $pubdate['hours'];
        $Fmins = $pubdate['minutes'];
        $Fgrecht = '';
        $Frecht = '';
        $Fteam = '';
        $Fsub = 'Eintragen';
    }
     
    $arm = array();
    for ($i = 0; $i < 60; $i++) {
        $arm[$i] = $i;
    }
    $ars = array();
    for ($i = 0; $i < 24; $i++) {
        $ars[$i] = $i;
    }
     
    $tpl = new tpl('kalender.htm', 1);
     
    $limit = 30;  // Limit
    $page = ($menu->getA(1) == 'p' ? $menu->getE(1) : 1 );
    $MPL = db_make_sites($page, '', $limit, "?kalender", 'kalender');
    $anfang = ($page - 1) * $limit;
     
    $aus = array(
        'AKTION' => $Faktion,
        'MPL' => $MPL,
        'EID' => $Fid,
        'TITLE' => $Ftitle,
        'TEXT' => $Ftext,
        'stunden' => arliste($Fhours, $ars, $tpl, 'stunden'),
        'minuten' => arliste($Fmins, $arm, $tpl, 'minuten'),
        'zende' => $Fzende,
        'begind' => $Fbegind,
        'recht' => dbliste($Frecht, $tpl, 'recht', "SELECT id,name FROM prefix_grundrechte ORDER BY id DESC"),
        'team' => dbliste($Fteam, $tpl, 'team', "SELECT id,name FROM prefix_groups ORDER BY id ASC"),
        'checked' => $Fcheked,
        'FSUB' => $Fsub
    );
     
    $tpl->set_ar_out($aus, 0);
    if (!isset($_GET['edit'])) {
        $tpl->out(1);
    } else {
        $tpl->out(2);
    }
    $tpl->out(3);
    unset($aus);
     
    //Liste
     
     
    
    $result = db_query('SELECT gid,id,title,time FROM `prefix_kalender` ORDER BY time DESC LIMIT ' . $anfang . ',' . $limit);
    while ($row = db_fetch_assoc($result)) {
        $aus = array(
            'ID' => $row['id'],
            'DATE' => date('d.m.Y', $row['time']),
            'TIME' => date('H:i', $row['time']),
            'TITLE' => $row['title'],
            'GID' => $row['gid']
        );
        $tpl->set_ar_out($aus, 4);
    }
     
    $tpl->set_ar_out(array('MPL' => $MPL), 5);
     
     
    $design->footer();
    ?>


    <!-- Kalender Script © by Nickel -->
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
    <script language="JavaScript" type="text/javascript">
    <!--
        function delcheck (DELID, GID) {
        if (GID != 0) {
        var frage1 = confirm ("ALLE Zugehoerigen Termine mitloeschen?");
        if (frage1 == true) {
        document.location.href = "admin.php?kalender&del_gid=" + GID;
        return (true);
        }
        }
        var frage = confirm ("Willst du diesen Termin wirklich loeschen?");
        if (frage == true) {
        document.location.href = "admin.php?kalender&del=" + DELID;
        return (true);
        }
     
        return (false);
        }
        function setzende (s) {
        document.form.zende.value = s;
        document.getElementById('skalenderzende').style.display = "none";
        }
        function setbegind (s) {
        document.form.begind.value = s;
        document.form.begind.focus();
        document.getElementById('skalenderbegind').style.display = "none";
        }
        function closezende () {
        document.getElementById('skalenderzende').style.display = "none";
        }
        function closebegind () {
        document.getElementById('skalenderbegind').style.display = "none";
        }
    //-->
    </script>
     
    <table cellpadding="0" cellspacing="0" border="0"><tr><td><img src="include/images/icons/admin/calendar.png" /></td><td width="30"></td><td valign="bottom"><h1>Kalender</h1></td></tr></table>
    <hr style="width: 400px; margin: 0px;" >
    <br /><br />
     
    <table width="99%" border="0" cellspacing="1" cellpadding="5">
        <tr> 
            <td valign="top"> 
                <form action="admin.php?kalender" method="POST" name="form">
                    <input type="hidden" name="um" value="{AKTION}">
                    <input type="hidden" name="EID" value="{EID}">
     
                    <script type='text/javascript' src='include/includes/js/bbcode.js'></script>
     
                    <table cellpadding="2" cellspacing="1" border="0" class="border">
                        <tr> 
                            <td class="Cmite" align="right"><strong>Titel : &nbsp;</strong></td>
                            <td class="Cnorm"><input size="50" type="text" name="title" value="{TITLE}"></td>
                        </tr>
                        <tr> 
                            <td align="right" valign="top" rowspan="2" class="Cmite"><strong>Text : &nbsp;</strong></td>
                            <td class="Cnorm">
                                <!-- BB Code START -->
                                <a href="javascript:simple('b')"><img style="padding-left: 4%; float: left;" src="include/images/icons/button.bold.gif" alt="b" title="{_lang_bold}" border="0"></a>
                                <a href="javascript:simple('i')"><img style="padding-left: 4%; float: left;" src="include/images/icons/button.italic.gif" alt="i" title="{_lang_italic}" border="0"></a>
                                <a href="javascript:simple('u')"><img style="padding-left: 4%; float: left;" src="include/images/icons/button.underline.gif" alt="u" title="{_lang_underlined}" border="0"></a>
                                <a href="javascript:simple('code')"><img style="padding-left: 4%; float: left;" src="include/images/icons/button.code.gif" alt="Code" title="{_lang_code}" border="0"></a>
                                <a href="javascript:simple_liste()"><img style="padding-left: 4%; float: left;" src="include/images/icons/button.insertunorderedlist.gif" alt="{_lang_list}" title="{_lang_list}" border="0"></a>
                                <a href="javascript:simple('url')"><img style="padding-left: 4%; float: left;" src="include/images/icons/button.link.gif" alt="Url" title="{_lang_link}" border="0"></a>
                                <a href="javascript:simple('img')"><img style="padding-left: 4%; float: left;" src="include/images/icons/button.image.gif" alt="{_lang_picture}" title="{_lang_picture}" border="0"></a>
                                <!-- BB Code ENDE-->
                            </td></tr>
                        <td class="Cnorm"><textarea cols="60" rows="13" name="txt">{TEXT}</textarea></td>
                        </tr>
                        <tr> 
                            <td align="right" class="Cmite"><strong>Datum : &nbsp;</strong></td>
                            <td class="Cnorm">
                                <input value="{begind}" name="begind" size="12" maxlength="10" onClick="xajax_XAJAX_showCalendar('', '', 'begind')" /> 
                                um <select id="stunde" name="stunde">{_list_stunden@<option%1 value="%2">%3</option>}</select><b>:</b><select id="minute" name="minute">{_list_minuten@<option%1 value="%2">%3</option>}</select> Uhr
     
     
                            </td>
                        </tr>
     
                        {EXPLODE}
     
                        <tr> 
                            <td align="right" class="Cmite"><strong>Zyklus : &nbsp;</strong></td>
                            <td class="Cnorm"> 
     
                                <select name="zyklus">
                                    <option></option>
                                    <option value="wer">werktags</option>
                                    <option value="wek">wochenende</option>
                                    <option value="woc">wöchentlich</option>
                                    <option value="14t">14 täglich</option>
                                    <option value="mon">monatlich</option>
                                    <option value="jae">jährlich</option>
                                </select>
     
                                &nbsp; Ende: <input value="{zende}" name="zende" size="12" maxlength="10" onClick="xajax_XAJAX_showCalendar('', '', 'zende')" />
     
                            </td>
                        </tr>
     
                        {EXPLODE}
     
                        <tr>
                            <td nowrap align="right" class="Cmite"><strong>Im Verbund : &nbsp;</strong></td>
                            <td class="Cnorm"><input type="checkbox" id="gid" name="gid" value="yes" /> <label for="gid" style="cursor: pointer;" class="smalfont">Diesen Termin im Verbund aendern, daher alle Zugehoerigen Termine mitaendern.</label></td>
                        </tr>
     
                        {EXPLODE}
     
                        <tr> 
                            <td align="right" class="Cmite"><strong>Sichtbar ab : &nbsp;</strong></td>
                            <td class="Cnorm"> 
                                <select name="recht">
                                    {_list_recht@<option%1 value="%2">%3</option>}
                                </select>
                            </td>
                        </tr>
                        <tr> 
                            <td align="right" class="Cmite"><strong>Team : &nbsp;</strong></td>
                            <td class="Cnorm"> 
                                <input type="checkbox" name="check" {checked} />
                                <select name="team">
                                    {_list_team@<option%1 value="%2">%3</option>}
                                </select>
                            </td>
                        </tr>
                        <tr> 
                            <td class="Cmite"></td>
                            <td class="Cnorm"><input type="submit" value="{FSUB}" name="submit"></td>
                        </tr>
                    </table>
                </form>
            </td>
            <td class="Cmite" width="30%" valign="top">
                {MPL}
                <table width="100%" cellpadding="4" cellspacing="1" border="0" class="border">
                    {EXPLODE}
                    <tr class="Cnorm">
                        <td><a href="#" onClick="return delcheck({ID}, {GID})"><img src="include/images/icons/del.gif" alt="L&ouml;schen" title="L&ouml;schen" border="0"></a></td>
                        <td><a href="?kalender&edit={ID}"><img src="include/images/icons/edit.gif" alt="Ver&auml;ndern" title="Ver&auml;ndern" border="0"></a></td>
                        <td class="smalfont">{TITLE} # Am {DATE} um {TIME}</td>
                    </tr>
                    {EXPLODE}
                </table>
                {MPL}
            </td>
        </tr>
    </table>
     
    <div id="skalenderbegind" style="position:absolute; top:200px; left:170px; display:none; width:200px;"></div>
    <div id="skalenderzende" style="position:absolute; top:220px; left:330px; display:none; width:200px;"></div>
    <br /><center><font class="smalfont">[ Kalender Script &copy; by Nickel ]</font></center>
    <!-- Kalender Script © by Nickel -->


    >> Hier ist zubeachten, das das Team für das der Eintrag ist, definiert wird.


    2. Kalender unter contents

    <?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);
    }
    
     /* if( loggedin()){
           $team = db_result(db_query("SELECT gid FROM prefix_groupusers WHERE uid = ".$_SESSION['authid']));
      }
    */
    
     if( loggedin()){
          // $team = db_result(db_query("SELECT gid FROM prefix_groupusers WHERE uid = ".$_SESSION['authid']));
    	  $abfteam = db_query("SELECT gid FROM prefix_groupusers WHERE uid = {$_SESSION['authid']} ORDER BY gid LIMIT 20");
    	  while ($row = db_fetch_assoc($abfteam)){
    		  $team = $row[gid];
    		  //echo $row[gid];
    	  }
    	
      }
    
    $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)) {
     //   if($row['team'] == 0 OR $row['team'] == $team){
    	  if (has_right($row['team'])){
    	$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();
    ?>


    3. nexttermin Box

    <?php
    #   Copyright by Manuel
    #   Support www.ilch.de
       
       
    defined ('main') or die ( 'no direct access' );
       
      if( loggedin()){
          // $team = db_result(db_query("SELECT gid FROM prefix_groupusers WHERE uid = ".$_SESSION['authid']));
    	  $abfteam = db_query("SELECT gid FROM prefix_groupusers WHERE uid = {$_SESSION['authid']}");
    	  while ($row = db_fetch_assoc($abfteam)){
    		  $team = $row[gid];
    		  echo $row[gid];
    	  }
    	
      }
        
     $abf = "SELECT id, title, team, FROM_UNIXTIME(time,'%d.%m.%Y') as zeit FROM prefix_kalender WHERE time >= UNIX_TIMESTAMP() AND recht >= {$_SESSION['authright']} ORDER BY time LIMIT 5";
     $erg = db_query($abf);
     if ( @db_num_rows($erg) == 0 ) {
        echo '<center>Es sind keine Termine vorhanden</center>';
    }
      echo '<table>';
      while ($row = db_fetch_assoc($erg)) {
     //   if($row['team'] == 0 OR $row['team'] == $team){
    	  if (has_right($row['team'])){
        echo '<tr><td valign="top"><b> &raquo; </b></td><td><a class="box" href="index.php?kalender-v1-e'.$row['id'].'">'.$row['zeit'].' '.$row['title'].'</a></td></tr>';
        }
      }
      echo '</table>';
    ?>


    Bitte um Hilfe, weil ich den Fehler nicht finde.


    verwendete ilch Version: 1.1 P

    betroffene Homepage: caelum-et-infernum.eu


    Zuletzt modifiziert von magicmarkus am 08.06.2016 - 09:40:59
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Also eigentlich sieht es funcktional aus, ein Team mit id 0 wäre ein Problem, allerdings müsste das dann schon manuell (in der Datenbank) angelegt worden sein.

    Hier mal eine andere Variante:

    <?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);
    
    $teamIds = array_keys($_SESSION['authgrp']);
    $teamIds[] = 0; //Termine anzeigen, die für alle sind
    
    $result = db_query("SELECT *
        FROM prefix_kalender
        WHERE ((time >= ".$where1." AND time < ".$where2.") OR id = ".$eid.")
            AND ".$_SESSION['authright']." <= recht AND team IN (" . implode(',', $teamIds) . ")
        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();


    <?php
    #   Copyright by Manuel
    #   Support www.ilch.de
    
    defined ('main') or die ( 'no direct access' );
    
    $teamIds = array_keys($_SESSION['authgrp']);
    $teamIds[] = 0; //Termine anzeigen, die für alle sind
    
    $abf = "SELECT id, title, team, FROM_UNIXTIME(time,'%d.%m.%Y') as zeit FROM prefix_kalender
    WHERE time >= UNIX_TIMESTAMP() AND recht >= {$_SESSION['authright']}
     AND team in (" . implode(',', $teamIds) .  ") ORDER BY time LIMIT 5";
    debug($abf);
    $erg = db_query($abf);
    if ( @db_num_rows($erg) == 0 ) {
        echo '<center>Es sind keine Termine vorhanden</center>';
    }
    echo '<table>';
    while ($row = db_fetch_assoc($erg)) {
        echo '<tr><td valign="top"><b> &raquo; </b></td><td><a class="box" href="index.php?kalender-v1-e'.$row['id'].'">'.$row['zeit'].' '.$row['title'].'</a></td></tr>';
    }
    echo '</table>';



    Zuletzt modifiziert von Mairu am 11.06.2016 - 07:46:00
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    MonkeyOnKeyboard Moderator
    Registriert seit
    10.02.2014
    Beiträge
    437
    Beitragswertungen
    20 Beitragspunkte
    Danke dir werd es nachher mal versuchen. aber ich glaube, wenn kein hacken gesetzt ist, wird das team 0

    was mir noch aufgefallen ist, wenn man über das adminscript kalender, termin mit zyklus setzt, speichert er anfangs nicht das team, mann mus immer nochmal rein gehen um den verbund manuel zu ändern.

    EDIT:

    nexttermin.php box:

    wenn ich als gast bin, die nur id 0 beim team sehen können kommt der fehler

    Es sind keine Termine vorhanden

    Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in D:\xampp\htdocs\caelum_p\include\includes\func\db\mysql.php on line 72


    und als user kommt die angabe es sind kein termine vorhanden.


    Zuletzt modifiziert von magicmarkus am 09.06.2016 - 11:04:31
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Nex4T Moderator
    Registriert seit
    28.02.2007
    Beiträge
    3.414
    Beitragswertungen
    213 Beitragspunkte
    ZitatZitat geschrieben von Mairu
    Also eigentlich sieht es funcktional aus, ein Team mit id 0 wäre ein Problem, allerdings müsste das dann schon manuell (in der Datenbank) angelegt worden sein.


    Hast du ein Team Manuell in der Datenbank erstellt mit der ID 0 wie Mairu beschrieben hat ?
    while(!asleep()) sheep++;
    www.movely.biz
    www.webplant.eu
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    MonkeyOnKeyboard Moderator
    Registriert seit
    10.02.2014
    Beiträge
    437
    Beitragswertungen
    20 Beitragspunkte
    ZitatZitat geschrieben von Nex4T
    ZitatZitat geschrieben von Mairu
    Also eigentlich sieht es funcktional aus, ein Team mit id 0 wäre ein Problem, allerdings müsste das dann schon manuell (in der Datenbank) angelegt worden sein.


    Hast du ein Team Manuell in der Datenbank erstellt mit der ID 0 wie Mairu beschrieben hat ?



    ich dachte es darf kein team mit der id 0 existieren?
    weil die erste id in der datenbank bei teams / groups ist id 2
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Nex4T Moderator
    Registriert seit
    28.02.2007
    Beiträge
    3.414
    Beitragswertungen
    213 Beitragspunkte
    Oh ja du hast recht sorry bin wohl zu schnell drüber geflogen ^_^
    while(!asleep()) sheep++;
    www.movely.biz
    www.webplant.eu
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Hab beide Dateien nochmal angepasst.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    MonkeyOnKeyboard Moderator
    Registriert seit
    10.02.2014
    Beiträge
    437
    Beitragswertungen
    20 Beitragspunkte
    ZitatZitat geschrieben von Mairu
    Hab beide Dateien nochmal angepasst.


    Dank dir. nun zeigt er mir wenn ich, mir die mysql fehler ausgeben lasse das an

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1' at line 1

    Das Problem liegt daran, das Termine in der Datenbank sind, die als Team ne 0 haben.

    diese werden nicht angezeigt und prodizieren den fehler.

    --
    -- Tabellenstruktur für Tabelle `ic1_kalender`
    --
    
    CREATE TABLE IF NOT EXISTS `ic1_kalender` (
      `id` int(10) unsigned NOT NULL,
      `gid` int(11) NOT NULL DEFAULT '0',
      `time` int(11) NOT NULL DEFAULT '0',
      `title` varchar(100) NOT NULL DEFAULT '',
      `text` text,
      `recht` int(11) NOT NULL DEFAULT '0',
      `team` int(11) NOT NULL DEFAULT '0'
    ) ENGINE=MyISAM AUTO_INCREMENT=732 DEFAULT CHARSET=utf8 COMMENT='powered by ilch.de';
    
    --
    -- Daten für Tabelle `ic1_kalender`
    --
    
    INSERT INTO `ic1_kalender` (`id`, `gid`, `time`, `title`, `text`, `recht`, `team`) VALUES
    (301, 281, 1464028200, 'Communitytraining Montags um 20:30 Uhr', 'Communitytraining Montags um 20:30 Uhr', 0, 0);



    Zuletzt modifiziert von magicmarkus am 10.06.2016 - 06:41:20
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    So habs nochmal angepasst. Diesmal hab ich es sogar getestet zwinker
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    MonkeyOnKeyboard Moderator
    Registriert seit
    10.02.2014
    Beiträge
    437
    Beitragswertungen
    20 Beitragspunkte
    ZitatZitat geschrieben von Mairu
    So habs nochmal angepasst. Diesmal hab ich es sogar getestet zwinker


    danke, wirklich danke für deine Mühe. Läuft nun.
    Danke nochmal an die Community für die Hilfen hier.
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Module und Modifikationen

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten