echo "</td>"; } echo '</tr>'; } echo '<tr><th style="text-align:left;font-weight:900;border-right:solid 1px #bbb;cursor:pointer;" onclick="switchVisibility(\'all\')"><img src="img/closed.gif" alt="' . getTranslation(528, $_GET['lang']) . '" title="' . getTranslation(528, $_GET['lang']) . '" id="icon_all" /> ' . getTranslation(517, $_GET['lang']) . '</th><td colspan="' . $cnt_times . '" style="background:#eee;"> </td></tr>'; $rs = mysql_query("SELECT room_id,room_nr,room_name FROM room WHERE " . (!$SHOW_ROOMS_MULTIPLE ? "room_id NOT IN ('" . implode("','", $usedrooms) . "') AND " : "") . " " . ($_GET['curriculum_ID'] ? "room_seat>=(SELECT class_count FROM class WHERE class_id=(SELECT class_id FROM curriculum WHERE cur_id='" . $_GET['curriculumID'] . "'))" : "1") . " ORDER BY room_nr"); while ($data = mysql_fetch_assoc($rs)) { echo '<tr style="display:none;" class="all"><td style="background:#DEF;color:#019;border-right:solid 1px #bbb;padding-left:23px;">' . $data['room_name'] . ' (' . $data['room_nr'] . ')</td>'; $usedrooms[] = $data['room_id']; for ($i = 0; $i < $cnt_times; $i++) { $zeit = explode("_", $starttimes[$i]); $zeit = mktime($zeit[0], (int) $zeit[1], 0, date('n', $_GET['date']), date('j', $_GET['date']), date('Y', $_GET['date'])); $lessonIndex = getLessonAtRoomAndTime($zeit, $data['room_nr'], $bookings); echo "<td style=\"border-right:solid 1px #bbb;text-align:center;\">"; if ($lessonIndex !== false) { echo "<div class=\"dropables draggable\" style=\"background:rgb(" . $bookings[$lessonIndex][5] * 33 % 256 . "," . $bookings[$lessonIndex][5] * 66 % 256 . "," . $bookings[$lessonIndex][5] * 99 % 256 . ");\" id=\"roomall_" . $data['room_nr'] . "_" . $starttimes[$i] . "\"><span id=\"book_" . $bookings[$lessonIndex][0] . "\" style=\"color:rgb(" . getContrastColor($bookings[$lessonIndex][5] * 33 % 256, $bookings[$lessonIndex][5] * 66 % 256, $bookings[$lessonIndex][5] * 99 % 256) . ")\">" . $bookings[$lessonIndex][3] . " (" . $bookings[$lessonIndex][4] . ")</span></div>"; } else { echo "<div class=\"dropables\" id=\"roomall_" . $data['room_nr'] . "_" . $starttimes[$i] . "\"> </div>"; } echo "</td>"; } echo '</tr>'; } echo '</table>'; ?> <script type="text/javascript" src="lib/prototype.js"></script> <script type="text/javascript" src="lib/scriptaculous.js"></script> <script type="text/javascript" src="lib/funcs.js"></script> <script type="text/javascript"> var dragables = document.getElementsByClassName('draggable');
/** * Print object conenctions. * @param $data (array) Conenction data array. */ function printObjectConnections($data) { require_once '../../shared/code/tce_functions_general.php'; $bgcolor = $data['cab_color']; $txtcolor = getContrastColor($data['cab_color']); $ret = ''; $ret = '<span style="background-color:#' . $bgcolor . ';color:#' . $txtcolor . ';"> ' . $data['cab_cbt_name'] . ' </span> ' . str_replace('→', '>', $data['cab_path']); if (isset($data['cab_sub']) and !empty($data['cab_sub'])) { $ret .= ' => ' . $this->printObjectConnections($data['cab_sub']); } return $ret; }
/** * Get a form selector for connections between objects. * @param $cab_a_obj_id (int) ID of first object. * @param $cab_b_obj_id (int) ID of second object. * @param $cab_cbt_id (int) ID of cable type. * @return string HTML select form field code. */ function F_connection_selector($cab_a_obj_id = 0, $cab_b_obj_id = 0, $cab_cbt_id = 0) { global $l, $db; require_once '../config/tce_config.php'; require_once '../../shared/code/tce_functions_form.php'; $cab_a_obj_id = intval($cab_a_obj_id); $cab_b_obj_id = intval($cab_b_obj_id); $cab_cbt_id = intval($cab_cbt_id); $out = ''; $out .= '<div class="row">' . K_NEWLINE; $out .= '<span class="label">' . K_NEWLINE; $out .= '<label for="cab_ids">' . $l['w_connection'] . '</label>' . K_NEWLINE; $out .= '</span>' . K_NEWLINE; $out .= '<span class="formw">' . K_NEWLINE; $out .= '<select name="cab_ids" id="cab_ids" size="0"'; $out .= ' onchange="document.getElementById(\'form_editor\').submit()"'; $out .= '>' . K_NEWLINE; $out .= '<option value="0" style="background-color:#009900;color:white;"'; if ($cab_a_obj_id == 0 or $cab_b_obj_id == 0) { $out .= ' selected="selected"'; } $out .= '>+</option>' . K_NEWLINE; $sql = 'SELECT * FROM ' . K_TABLE_CABLES . ', ' . K_TABLE_CABLE_TYPES . ' WHERE cab_cbt_id=cbt_id ORDER BY cab_cbt_id ASC, cab_color ASC'; if ($r = F_db_query($sql, $db)) { while ($m = F_db_fetch_array($r)) { $out .= '<option value="' . $m['cab_a_obj_id'] . '|' . $m['cab_b_obj_id'] . '|' . $m['cab_cbt_id'] . '"'; if ($m['cab_a_obj_id'] == $cab_a_obj_id and $m['cab_b_obj_id'] == $cab_b_obj_id and $m['cab_cbt_id'] == $cab_cbt_id) { $out .= ' selected="selected"'; } $out .= ' style="background-color:#' . $m['cab_color'] . ';color:#' . getContrastColor($m['cab_color']) . '"'; $out .= '>' . htmlspecialchars('' . $m['cbt_name'] . ': [' . $m['cab_a_obj_id'] . '] ↔ [' . $m['cab_b_obj_id'] . ']', ENT_NOQUOTES, $l['a_meta_charset']) . '</option>' . K_NEWLINE; } } else { $out .= '</select></span></div>' . K_NEWLINE; F_display_db_error(); } $out .= '</select>' . K_NEWLINE; $out .= '</span>' . K_NEWLINE; $out .= '</div>' . K_NEWLINE; return $out; }
echo "<td style=\""; $dateArr = explode("_", $days[$i]); $zeit = mktime(floor($data['TU_START'] / 60), $data['TU_START'] % 60, 0, $dateArr[1], $dateArr[0], $dateArr[2]); $lessonIndex = getLessonAtTime($zeit, $bookings); if ($i == $spalteheute) { echo "background:#FFC;"; } elseif ($i <= $spalteheute || $spalteheute == -1 && $timestamp < time()) { echo "background:#f4f4f4;"; } echo "\"><div class=\"dropables"; if ($lessonIndex !== false && $colors[$bookings[$lessonIndex][0]]) { echo " loadedSubjects"; } echo "\" id=\"date_" . $days[$i] . "_" . floor($data['TU_START'] / 60) . "_" . str_pad($data['TU_START'] % 60, 2, "0", STR_PAD_LEFT) . "\""; if ($lessonIndex !== false) { echo " style=\"background:rgb(" . (isset($colors[$bookings[$lessonIndex][0]][0]) ? $colors[$bookings[$lessonIndex][0]][0] : 200) . "," . (isset($colors[$bookings[$lessonIndex][0]][1]) ? $colors[$bookings[$lessonIndex][0]][1] : 200) . "," . (isset($colors[$bookings[$lessonIndex][0]][2]) ? $colors[$bookings[$lessonIndex][0]][2] : 200) . ");color:rgb(" . getContrastColor($colors[$bookings[$lessonIndex][0]][0], $colors[$bookings[$lessonIndex][0]][1], $colors[$bookings[$lessonIndex][0]][2]) . ");\""; } echo ">"; if ($lessonIndex !== false && isset($colors[$bookings[$lessonIndex][0]][0])) { if (!empty($_GET['class']) && !empty($_GET['semester'])) { echo "<div id=\"plan_" . $bookings[$lessonIndex][0] . "\" style=\"float:right;cursor:pointer;margin:0;padding:0;color:red;\" onclick=\"deleteLessonById('" . $days[$i] . "_" . floor($data['TU_START'] / 60) . "_" . str_pad($data['TU_START'] % 60, 2, "0", STR_PAD_LEFT) . "')\">x</div>"; } echo $bookings[$lessonIndex][2]; } else { echo " "; } echo "</div></td>"; } echo "</tr>"; } echo '</table>';
/** * Get an object description in dot format for graphviz. * @param $obj_id (int) ID of parent object. * @param $obj_level (int) Nesting level. * @return string dot map. */ function F_get_object_dot_map($obj_id, $obj_level) { global $l, $db; require_once '../config/tce_config.php'; include '../../shared/code/htmlcolors.php'; $dot = ''; $spacer = str_repeat(K_TAB, $obj_level); $spacerb = $spacer . K_TAB; // get object data $sqlobj = 'SELECT * FROM ' . K_TABLE_OBJECTS . ', ' . K_TABLE_OBJECT_TYPES . ' WHERE obj_obt_id=obt_id AND obj_id=' . $obj_id . ' ORDER BY obj_name ASC'; if ($robj = F_db_query($sqlobj, $db)) { $mobj = F_db_fetch_array($robj); } else { F_display_db_error(); } $color = array_keys(TCPDF_COLORS::$webcolor, $mobj['obt_color']); if (!empty($color) and isset($color[0])) { $color = $color[0]; } else { $color = 'white'; } if (F_count_rows(K_TABLE_OBJECTS . ', ' . K_TABLE_OBJECTS_MAP, 'WHERE omp_child_obj_id=obj_id AND omp_parent_obj_id=' . $obj_id) > 0) { // CLUSTER $dot .= $spacer . 'subgraph clusterOBJ' . $mobj['obj_id'] . ' {' . K_NEWLINE; $dot .= $spacerb . 'color=' . (getContrastColor(TCPDF_COLORS::$webcolor[$color]) == '000000' ? 'black' : 'white') . ';' . K_NEWLINE; $dot .= $spacerb . 'bgcolor=' . $color . ';' . K_NEWLINE; $dot .= $spacerb . 'label="' . F_compact_string($mobj['obj_name'], true) . '";' . K_NEWLINE; $dot .= $spacerb . 'URL="tce_view_object?obj_id=' . $mobj['obj_id'] . '";' . K_NEWLINE; $dot .= $spacerb . 'tooltip="' . F_compact_string($mobj['obj_description'] . ' - ' . $mobj['obj_label'] . ' - ' . $mobj['obj_tag'], true) . '";' . K_NEWLINE; $dot .= $spacerb . 'node [shape=circle,style=filled,color=black,fontname=Helvetica,fontsize=12,fontcolor=black];' . K_NEWLINE; // for each child $sql = 'SELECT obj_id, obj_name, obj_label, obj_tag FROM ' . K_TABLE_OBJECTS . ', ' . K_TABLE_OBJECTS_MAP . ' WHERE omp_child_obj_id=obj_id AND omp_parent_obj_id=' . $obj_id . ' ORDER BY obj_name ASC'; if ($r = F_db_query($sql, $db)) { while ($m = F_db_fetch_array($r)) { $dot .= F_get_object_dot_map($m['obj_id'], $obj_level + 1); } } else { F_display_db_error(); } $dot .= $spacer . '}' . K_NEWLINE; } else { // NODE $dot .= $spacer . 'OBJ' . $mobj['obj_id'] . ' [fillcolor=' . $color . ',label="' . F_compact_string($mobj['obj_name'], true) . '",URL="tce_edit_objects.php?obj_id=' . $mobj['obj_id'] . '",tooltip="' . F_compact_string($mobj['obj_description'] . ' - ' . $mobj['obj_label'] . ' - ' . $mobj['obj_tag'], true) . '"];' . K_NEWLINE; } return $dot; }
} echo '<div class="row"><hr /></div>' . K_NEWLINE; // object type $virtual = false; echo '<div class="row">' . K_NEWLINE; echo '<span class="label">' . K_NEWLINE; echo '<label for="obj_obt_id">' . $l['w_object_type'] . '</label>' . K_NEWLINE; echo '</span>' . K_NEWLINE; echo '<span class="formw">' . K_NEWLINE; echo '<select name="obj_obt_id" id="obj_obt_id" size="0" onchange="document.getElementById(\'form_editor\').submit()">' . K_NEWLINE; $sql = 'SELECT * FROM ' . K_TABLE_OBJECT_TYPES . ' WHERE 1 ORDER BY obt_name ASC'; if ($r = F_db_query($sql, $db)) { while ($m = F_db_fetch_array($r)) { echo '<option value="' . $m['obt_id'] . '"'; if (strlen($m['obt_color']) == 6) { echo ' style="background-color:#' . $m['obt_color'] . ';color:#' . getContrastColor($m['obt_color']) . '"'; } if ($m['obt_id'] == $obj_obt_id) { echo ' selected="selected"'; if (F_getBoolean($m['obt_virtual'])) { $virtual = true; } } echo '>'; if (F_getBoolean($m['obt_virtual'])) { echo '⊗ '; } echo htmlspecialchars($m['obt_name'], ENT_NOQUOTES, $l['a_meta_charset']) . '</option>' . K_NEWLINE; } } else { echo '</select></span></div>' . K_NEWLINE;