function check_timerange($mcday, $mcbeg, $mcend, $nodeDN, $excepttimerange)
{
    global $ds, $suffix, $auDN, $ldapError;
    $brothers = get_machineconfigs($nodeDN, array("timerange"));
    # keine Überschneidungen pro Spez.Ebene zulassen
    #print_r($brothers); echo "<br><br>";
    if (count($brothers) != 0) {
        $intersect = 0;
        foreach ($brothers as $item) {
            # Fall, dass Brother mehrere TimeRanges hat
            if (count($item['timerange']) > 1) {
                foreach ($item['timerange'] as $tr) {
                    if ($tr != $excepttimerange) {
                        $exptime = explode('_', $tr);
                        $bmcday = $exptime[0];
                        $bmcbeg = $exptime[1];
                        $bmcend = $exptime[2];
                        #echo "mcday:"; print_r($mcday); echo "<br>";
                        #echo "bmcday:"; print_r($bmcday); echo "<br>";
                        #echo "mcbeg:"; print_r($mcbeg); echo "<br>";
                        #echo "bmcbeg:"; print_r($bmcbeg); echo "<br>";
                        #echo "mcend:"; print_r($mcend); echo "<br>";
                        #echo "bmcend:"; print_r($bmcend); echo "<br>";
                        if ($mcday == $bmcday) {
                            if ($mcbeg > $bmcend || $mcend < $bmcbeg) {
                                # keine Überschneidung in der Uhrzeit
                            } else {
                                # Uhrzeit Überschneidung
                                $intersect = 1;
                                $intersecttr = $bmcday . "_" . $bmcbeg . "_" . $bmcend;
                                break;
                            }
                        }
                    }
                }
            } elseif (count($item['timerange']) == 1) {
                if ($item['timerange'] != $excepttimerange) {
                    $exptime = explode('_', $item['timerange']);
                    $bmcday = $exptime[0];
                    $bmcbeg = $exptime[1];
                    $bmcend = $exptime[2];
                    #echo "mcday:"; print_r($mcday); echo "<br>";
                    #echo "bmcday:"; print_r($bmcday); echo "<br>";
                    #echo "mcbeg:"; print_r($mcbeg); echo "<br>";
                    #echo "bmcbeg:"; print_r($bmcbeg); echo "<br>";
                    #echo "mcend:"; print_r($mcend); echo "<br>";
                    #echo "bmcend:"; print_r($bmcend); echo "<br>";
                    if ($mcday == $bmcday) {
                        if ($mcbeg > $bmcend || $mcend < $bmcbeg) {
                            # keine Überschneidung in der Uhrzeit
                        } else {
                            # Uhrzeit Überschneidung
                            $intersect = 1;
                            $intersecttr = $bmcday . "_" . $bmcbeg . "_" . $bmcend;
                            break;
                        }
                    }
                }
            }
        }
        #echo "intersect: "; print_r($intersect); echo "<br>";
        if ($intersect == 1) {
            echo "<b>[" . $mcday . "_" . $mcbeg . "_" . $mcend . "]</b> &uuml;berschneidet sich mit der \n\t\t\t\t\tbereits existierende <b>Time Range [" . $intersecttr . "]</b> !";
            return 0;
        } else {
            return 1;
        }
    } else {
        return 1;
    }
}
Example #2
0
$sbmnr = -1;
$mcnr = -1;
###################################################################################
$sbmnr = $_GET['sbmnr'];
# Menuleisten erstellen
createMainMenu($rollen, $mainnr);
createComputersMenu($rollen, $mnr, $auDN, $sbmnr, $mcnr);
###################################################################################
$hostDN = "HostName=" . $_GET['host'] . ",cn=computers," . $auDN;
$attributes = array("hostname", "domainname", "ipaddress", "hwaddress", "description", "dhcphlpcont", "inventarnr", "hwinventarnr", "geolocation", "geoattribut");
$host = get_node_data($hostDN, $attributes);
$hostip = explode('_', $host['ipaddress']);
$template->assign(array("HOSTDN" => $hostDN, "HOSTNAME" => $host['hostname'], "DOMAINNAME" => $host['domainname'], "HWADDRESS" => $host['hwaddress'], "IPADDRESS" => $hostip[0], "DESCRIPTION" => $host['description'], "DHCPCONT" => $host['dhcphlpcont'], "GEOLOC" => $host['geolocation'], "GEOATT" => $host['geoattribut'], "INVNR" => $host['inventarnr'], "HWINVNR" => $host['hwinventarnr'], "DHCPLINK" => "<a href='host_dhcp.php?host=" . $host['hostname'] . "&sbmnr=" . $sbmnr . "' class='headerlink'>", "HOSTLINK" => "<a href='host.php?host=" . $host['hostname'] . "&sbmnr=" . $sbmnr . "' class='headerlink'>", "RBSLINK" => "", "AUDN" => $auDN, "SBMNR" => $sbmnr));
##########################################################
# MC Wochenübersicht
$mc_array = get_machineconfigs($hostDN, array("dn", "cn", "timerange", "description"));
# print_r($mc_array);
for ($i = 0; $i < count($mc_array); $i++) {
    # Timerange Komponenten
    if (count($mc_array[$i]['timerange']) > 1) {
        foreach ($mc_array[$i]['timerange'] as $tr) {
            $exptime = array_merge(explode('_', $tr), $mc_array[$i]['description']);
            $timeranges[$i][] = $exptime;
            # Für grafische Wo-Ansicht
        }
    } else {
        $exptime = array_merge(explode('_', $mc_array[$i]['timerange']), $mc_array[$i]['description']);
        $timeranges[$i] = $exptime;
        # Für grafische Wo-Ansicht
    }
}