/** * createEvaluationHeader: generate the head of an evaluation (title and base text) * @param the evaluation * @returns a table row */ function createEvaluationHeader($eval, $votedNow, $votedEarlier) { $br = new HTMpty("br"); $tr = new HTM("tr"); $td = new HTM("td"); $td->attr("class", "table_row_even"); $table2 = new HTM("table"); $table2->attr("width", "100%"); $tr2 = new HTM("tr"); $td2 = new HTM("td"); $td2->attr("width", "90%"); $td2->attr("valign", "top"); if ($eval->isError()) { $td2->html(EvalCommon::createErrorReport($eval, _("Fehler"))); $td2->html($br); } $span = new HTM("span"); $span->attr("class", "eval_title"); $span->html(htmlReady($eval->getTitle())); $td2->cont($span); $td2->cont($br); $td2->cont($br); if ($votedNow) { $message = new HTML('div'); $message->_content = array((string) MessageBox::success(_("Vielen Dank für Ihre Teilnahme."))); $td2->cont($message); } elseif ($votedEarlier) { $message = new HTML('div'); $message->_content = array((string) MessageBox::info(_("Sie haben an dieser Evaluation bereits teilgenommen."))); $td2->cont($message); } else { $td2->html(formatReady($eval->getText())); $td2->cont($br); } $tr2->cont($td2); $td2 = new HTM("td"); $td2->attr("width", "250"); $td2->attr("valign", "top"); $td2->html(EvalShow::createInfoBox($eval, $votedNow || $votedEarlier)); $tr2->cont($td2); $table2->cont($tr2); $td->cont($table2); $tr->cont($td); return $tr; }
$no_permisson = 0; if (is_array($eval->getRangeIDs())) { foreach ($eval->getRangeIDs() as $rangeID) { $user_perm = $db->getRangePerm($rangeID, $user->id, YES); // every range with a lower perm than Tutor if ($user_perm < 7) { $no_permisson++; } } if ($no_permisson > 0) { if ($no_permisson == 1) { $no_permisson_msg = _("Sie haben in einem Bereich, in welchem diese Evaluation hängt, nicht aussreichene Rechte, um diese Eval zu bearbeiten."); } else { $no_permisson_msg = sprintf(_("Sie haben in %s Bereichen, in denen diese Evaluation hängt, nicht aussreichene Rechte, um diese Eval zu bearbeiten."), $no_permisson); } $error = EvalCommon::createReportMessage($no_permisson_msg, EVAL_PIC_ERROR, EVAL_CSS_ERROR); $error_msgs[] = $error->createContent(); } } } # ============================================ end: Collection post/get-vars # # Print Error MSG and end Site ============================================= # if ($error_msgs) { $back_button = " " . "<a href=\"" . URLHelper::getLink('admin_evaluation.php?page=overview&rangeID=' . Request::option('rangeID')) . "\">" . _("Zur Evaluations-Verwaltung") . "</a>"; if (is_array($error_msgs)) { foreach ($error_msgs as $error_msg) { $errors .= $error_msg . "<br>"; } } echo EvalEdit::createSite($errors . $back_button, " "); include_once 'lib/include/html_end.inc.php';
/** * swaps positions of two objects * * @access private * @param string $parentID the parentID * @param string $objectID the object to swap * @param string $oldposition the old position * @param string $direction the direction to swap */ function swapPosition($parentID, $objectID, $oldposition, $direction) { if ($parentID == ROOT_BLOCK) { $group = $this->tree->eval; } else { $group =& $this->tree->getGroupObject($parentID); } $numberchildren = $group->getNumberChildren(); $instance = $group->x_instanceof(); if ($direction == "up") { if ($oldposition == 0) { $newposition = $numberchildren - 1; } else { $newposition = $oldposition - 1; } } else { if ($oldposition == $numberchildren - 1) { $newposition = 0; } else { $newposition = $oldposition + 1; } } while ($swapitem = $group->getNextChild()) { if ($swapitem->getPosition() == $newposition) { $swapitem->setPosition($oldposition); $swapitem->save(); } } if ($parentID != ROOT_BLOCK && $group->getChildType() == "EvaluationQuestion") { $object = new EvaluationQuestion($objectID); } else { $object =& $this->tree->getGroupObject($objectID); } $object->setPosition($newposition); $object->save(); if ($swapitem->isError) { return EvalCommon::showErrorReport($swapitem, _("Fehler beim verschieben.")); } if ($object->isError) { return EvalCommon::showErrorReport($object, _("Fehler beim verschieben.")); } }
function save1($myuserid) { $mineexists = 0; /*Existiert Question/Template schon?*/ $qdb = new EvaluationQuestionDB(); if (!$template_id) { $template_id = Request::option("template_id"); } if ($qdb->exists($template_id)) { $question = new EvaluationQuestion($template_id, NULL, EVAL_LOAD_ALL_CHILDREN); if ($question->getParentID() != $myuserid) { $foreign = TRUE; $question = new EvaluationQuestion(); $question->setParentID($myuserid); } else { $overwrite = 1; //$question->delete(); //$question = new EvaluationQuestion(); //$template_id=$question->getObjectID(); } } else { $question = new EvaluationQuestion(); } /*Get Vars ----------------------------------------------------*/ $template_name = Request::get("template_name"); $template_type = Request::get("template_type"); $template_multiple = Request::get("template_multiple"); $template_add_num_answers = Request::option("template_add_num_answers"); $template_residual = Request::get("template_residual"); $template_residual_text = Request::get("template_residual_text"); $template_answers = Request::getArray("template_answers"); /*end: Get Vars -----------------------------------------------*/ $question->setParentID($myuserid); $question->setMultiplechoice($template_multiple); $question->setText(trim($template_name), YES); $question->setType($template_type); while ($answerrem = $question->getChild()) { $id = $answerrem->getObjectID(); $answerrem->delete(); $question->removeChildID($id); } $controlnumber = count($template_answers); $ausgleich = 0; for ($i = 0; $i < $controlnumber; $i++) { $text = $template_answers[$i]['text']; $answerID = $template_answers[$i]['answer_id']; $answer = new EvaluationAnswer(); if (!$foreign) { $answer->setObjectID($answerID); } $answer->setText(trim($text), YES); $question->addChild($answer); /*Anzahl der Antworten bei Polskalen anpassen ------------------------*/ if ($template_type == EVALQUESTION_TYPE_POL && $i == 0) { $answerdiff = $controlnumber - $template_add_num_answers; if ($template_residual) { //echo "Hust<br>"; //$answerdiff; } if ($answerdiff > 0) { /*differenz abziehen => answers überspringen*/ $i = $i + $answerdiff; $ausgleich = $ausgleich - $answerdiff; } while ($answerdiff < 0) { $ausgleich = $ausgleich + 1; $answer = new EvaluationAnswer(); $answer->setText(""); $answer->setParentID($question->getObjectID()); $answer->setPosition($i + $ausgleich); $answer->setValue($i + 1 + $ausgleich); $question->addChild($answer); $answerdiff++; } } /*end: Polskala antworten angleichen ----------------------------------*/ } /*create residual category-----------------------------------------------*/ if ($template_residual) { $answer = new EvaluationAnswer(); $answer->setResidual($template_residual); $answer->setText(trim($template_residual_text), QUOTED); $answer->setParentID($question->getObjectID()); $answer->setPosition($i + $ausgleich + 1); $answer->setValue(-1); $question->addChild($answer); } /*object HIER NOCH NICHT in db speichern! */ // $question->save(); if (!$overwrite) { $db = new EvaluationQuestionDB(); $lib = new EvalTemplateGUI(); $lib->setUniqueName($question, $db, $myuserid, YES); } if ($question->isError()) { EvalCommon::showErrorReport($question, _("Fehler beim Speichern.")); } return $question; }
/** * creates the infobox * */ function createInfoBox($command) { global $evalID, $rangeID; $id = Request::option("itemID"); $level = EvaluationObjectDB::getType($id); # echo $level; switch ($level) { case "0": case "Evaluation": $infoMain = array("icon" => Icon::create('test', 'info')->asImagePath(16), "text" => _("Links können Sie die Grundattribute der Evaluation definieren und neue Gruppierungsblöcke anlegen.")); break; case "EvaluationGroup": $group = new EvaluationGroup($id); switch ($group->getChildType()) { case "": case "EvaluationGroup": $infoMain = array("icon" => EVAL_PIC_TREE_GROUP, "text" => _("Links können Sie den ausgewählten Gruppierungsblock bearbeiten und darin Fragenblöcke oder weitere Gruppierungsblöcke anlegen.")); break; case "EvaluationQuestion": $infoMain = array("icon" => EVAL_PIC_TREE_QUESTIONGROUP, "text" => _("Links können Sie den ausgewählten Fragenblock bearbeiten und darin Fragen des zugeordneten Vorlagentyps anlegen.<br>Sie können auch den Vorlagentyp ändern. Dies wirkt sich auf alle Fragen aus.")); break; } } $previewLink = EvalCommon::createEvalShowLink($evalID, _("Vorschau"), YES, NO); $previewLink .= " " . _("der Evaluation"); $infoTemplates = array("icon" => Icon::create('info', 'info')->asImagePath(16), "text" => _("Der rechte Bereich dient der Bearbeitung von Antwortenvorlagen.")); $infoPreview = array("icon" => Icon::create('question-circle', 'info')->asImagePath(16), "text" => $previewLink); if (get_Username($rangeID)) { $rangeID = get_Username($rangeID); } if (empty($rangeID)) { $rangeID = get_Username($user->id); } $infoOverviewText = sprintf(_("Zurück zur %s Evaluations-Verwaltung %s"), "<a href=\"" . URLHelper::getLink('admin_evaluation.php?page=overview' . "&check_abort_creation_button=1&evalID={$evalID}&rangeID={$rangeID}") . "\">", "</a>"); $infoOverview = array("icon" => Icon::create('link-intern', 'info')->asImagePath(16), "text" => $infoOverviewText); if ($command) { $infobox = array(array("kategorie" => _("Aktionen:"), "eintrag" => array($infoPreview, $infoOverview))); } else { $infobox = array(array("kategorie" => _("Information:"), "eintrag" => array($infoMain, $infoTemplates, $infoPreview, $infoOverview))); } # ob_start(); return print_infobox($infobox, false, YES); # $html = ob_get_contents(); # ob_end_clean(); # return $html; }
$userID = StudipObject::createNewID(); } else { $userID = $auth->auth["uid"]; } /* ---------------------------------------------------------- end: variables */ $br = new HTMpty("br"); /* Surrounding Form -------------------------------------------------------- */ $form = new HTM("form"); $form->attr("action", URLHelper::getLink(Request::url())); $form->attr("method", "post"); $form->html(CSRFProtection::tokenTag()); if (Request::isXHR()) { header('X-Title:' . _("Stud.IP Online-Evaluation")); } else { // TODO: This should use Assets::img() but on the other hand it should also use templates $titlebar = EvalCommon::createTitle(_("Stud.IP Online-Evaluation"), Icon::create('test', 'info_alt')->asImagePath()); $form->cont($titlebar); } /* Surrounding Table ------------------------------------------------------- */ $table = new HTM("table"); $table->attr("border", "0"); $table->attr("align", "center"); $table->attr("cellspacing", "0"); $table->attr("cellpadding", "3"); $table->attr("width", "100%"); $table->attr("class", "table_row_even"); /* count mandatory items */ $mandatories = checkMandatoryItems($eval); $answers = Request::quotedArray('answers'); /* ------------------------------------------------------------------------- */ if ($votedNow) {
static function createErrorReport(&$object, $errortitle = "") { ob_start(); EvalCommon::showErrorReport($object, $errortitle); $html = ob_get_contents(); ob_end_clean(); return $html; }
/** * the current eval-ranges and the options to copy and link ranges * * @access private * @param $eval the eval object * @param $state the eval's state (EVAL_STATE_NEW, EVAL_STATE_ACTIVE, ...) * @param $style the background style * @return string the domain settings (html) */ function createDomainSettings($eval, $state, $style) { global $user; $db = new EvaluationObjectDB(); $evalDB = new EvaluationDB(); $evalID = $eval->getObjectID(); $globalperm = $db->getGlobalPerm(); // linked ranges $rangeIDs = $eval->getRangeIDs(); // search results if (Request::get("search")) { $results = $evalDB->search_range(Request::get("search")); } else { $results = $evalDB->search_range(""); } if ($globalperm == "root") { $results["studip"] = array("type" => "system", "name" => _("Systemweite Evaluationen")); } elseif ($globalperm == "dozent" || $globalperm == "autor" || $globalperm == "admin") { $results[$user->id] = array("type" => "user", "name" => _("Profil")); } if ($globalperm == "dozent" || $globalperm == "autor" || Request::get("search")) { $showsearchresults = 1; } if ($globalperm == "autor") { $range_types = array("user" => _("Benutzer"), "sem" => _("Veranstaltung")); } elseif ($globalperm == "dozent") { $range_types = array("user" => _("Benutzer"), "sem" => _("Veranstaltung"), "inst" => _("Einrichtung")); } elseif ($globalperm == "admin") { $range_types = array("user" => _("Benutzer"), "sem" => _("Veranstaltung"), "inst" => _("Einrichtung"), "fak" => _("Fakultät")); } elseif ($globalperm == "root") { $range_types = array("user" => _("Benutzer"), "sem" => _("Veranstaltung"), "inst" => _("Einrichtung"), "fak" => _("Fakultät"), "system" => _("System")); } // zugewiesene Bereiche $table_r = new HTML("table"); # $table_r->addAttr ("class","white"); $table_r->addAttr("border", "0"); $table_r->addAttr("align", "center"); $table_r->addAttr("cellspacing", "0"); $table_r->addAttr("cellpadding", "0"); $table_r->addAttr("width", "100%"); $table_r->addAttr('class', 'default'); // Überschriften $tr_r = new HTML("tr"); $td_r = new HTML("td"); $td_r->addAttr("class", "{$style}"); $td_r->addAttr("style", "vertical-align:bottom;"); $td_r->addAttr("height", "22"); $b_r = new HTML("b"); $b_r->addHTMLContent(" "); $b_r->addContent(_("Bereich")); $td_r->addContent($b_r); $tr_r->addContent($td_r); $td_r = new HTML("td"); $td_r->addAttr("class", "{$style}"); $td_r->addAttr("height", "22"); $td_r->addAttr("align", "center"); $td_r->addAttr("style", "vertical-align:bottom;"); $b_r = new HTML("b"); $b_r->addContent(_("aushängen")); $td_r->addContent($b_r); $tr_r->addContent($td_r); $table_r->addContent($tr_r); if ($rangeIDs) { // die verknüpften bereiche foreach ($rangeIDs as $k => $assigned_rangeID) { $tr_r = new HTML("tr"); // title $td_r = new HTML("td"); $td_r->addHTMLContent(" "); $td_r->addHTMLContent($db->getRangename($assigned_rangeID, NO)); # $td_r->addContent ($db->getRangename($assigned_rangeID)); $tr_r->addContent($td_r); if ($this->perm->have_studip_perm("tutor", $assigned_rangeID) || $assigned_rangeID == $user->id) { // link $td_r = new HTML("td"); $td_r->addAttr("align", "center"); $input = new HTMLempty("input"); $input->addAttr("type", "checkbox"); $input->addAttr("name", "remove_range[{$assigned_rangeID}]"); $input->addAttr("value", "1"); $td_r->addContent($input); } else { // no permission $td_r = new HTML("td"); $td_r->addAttr("align", "center"); $td_r->addContent(_("Sie haben keine Berechtigung die Evaluation aus diesem Bereich auszuhängen.")); } $tr_r->addContent($td_r); $table_r->addContent($tr_r); } } else { $td_r = new HTML("td"); $td_r->addAttr("class", "content_body"); $td_r->addAttr("width", "40"); $td_r->addAttr("align", "center"); $td_r->addAttr("style", "vertical-align:bottom;"); $td_r->addAttr("colspan", "2"); $b_r = new HTML("b"); $b_r->addHTMLContent(" "); $b_r->addContent(_("Diese Evaluation wurde keinem Bereich zugeordnet.")); $td_r->addContent($b_r); $tr_r->addContent($td_r); $table_r->addContent($tr_r); } $table = new HTML("table"); $table->addAttr("border", "0"); $table->addAttr("align", "center"); $table->addAttr("cellspacing", "0"); $table->addAttr("cellpadding", "4"); $table->addAttr("width", "100%"); $tr = new HTML("tr"); $td = new HTML("td"); $td->addAttr("colspan", "2"); $td->addAttr("style", "padding-bottom:0; border-top:1px solid black;"); $b = new HTML("b"); $b->addContent(_("Diese Evaluation ist folgenden Bereichen zugeordnet:")); $td->addContent($b); $td->addContent(EvalCommon::createImage(EVAL_PIC_HELP, "", tooltip(_(" können Sie Ihre Evaluation aus den verknüpften Bereichen entfernen."), TRUE, TRUE))); $tr->addContent($td); if (!$eval->isTemplate()) { $table->addContent($tr); } $tr = new HTML("tr"); $td = new HTML("td"); $td->addAttr("colspan", "2"); $td->addContent($table_r); $tr->addContent($td); if (!$eval->isTemplate()) { $table->addContent($tr); } // display search_results if ($results) { foreach ($results as $k => $v) { while (list($type_key, $type_value) = each($range_types)) { if ($v["type"] == $type_key) { $ranges["{$type_key}"][] = array("id" => $k, "name" => $v["name"]); } } reset($range_types); } $table_s = new HTML("table"); $table_s->addAttr("border", "0"); $table_s->addAttr("align", "center"); $table_s->addAttr("cellspacing", "0"); $table_s->addAttr("cellpadding", "0"); $table_s->addAttr("width", "100%"); while (list($type_key, $type_value) = each($range_types)) { // Überschriften $tr_s = new HTML("tr"); // Typ $td_s = new HTML("td"); $td_s->addAttr("colspan", "1"); $td_s->addAttr("class", "{$style}"); $td_s->addAttr("height", "22"); $td_s->addAttr("style", "vertical-align:bottom;"); $b_s = new HTML("b"); $b_s->addHTMLContent(" "); $b_s->addContent($type_value . ":"); $td_s->addContent($b_s); $tr_s->addContent($td_s); // link $td_s = new HTML("td"); $td_s->addAttr("class", "{$style}"); $td_s->addAttr("height", "22"); $td_s->addAttr("align", "center"); $td_s->addAttr("style", "vertical-align:bottom;"); $b_s = new HTML("b"); $b_s->addContent(_("einhängen")); $td_s->addContent($b_s); $tr_s->addContent($td_s); // kopie $td_s = new HTML("td"); $td_s->addAttr("class", "{$style}"); $td_s->addAttr("height", "22"); $td_s->addAttr("align", "center"); $td_s->addAttr("style", "vertical-align:bottom;"); $b_s = new HTML("b"); $b_s->addContent(_("kopieren")); $td_s->addContent($b_s); $tr_s->addContent($td_s); $table_s->addContent($tr_s); $counter = 0; if ($ranges["{$type_key}"]) { foreach ($ranges["{$type_key}"] as $range) { if ($counter == 0) { $displayclass = "content_body"; } elseif ($counter % 2 == 0) { $displayclass = "table_row_even"; } else { $displayclass = "table_row_odd"; } $tr_s = new HTML("tr"); // name $td_s = new HTML("td"); $td_s->addHTMLContent(" "); $td_s->addHTMLContent(htmlready($range["name"])); $tr_s->addContent($td_s); // if the rangeID is a username, convert it to the userID $new_rangeID = get_userid($range['id']) ? get_userid($range['id']) : $range['id']; if (!in_array($new_rangeID, $rangeIDs)) { // link $td_s = new HTML("td"); $td_s->addAttr("align", "center"); $input = new HTMLempty("input"); $input->addAttr("type", "checkbox"); $input->addAttr("name", "link_range[{$range['id']}]"); $input->addAttr("value", "1"); $td_s->addContent($input); $tr_s->addContent($td_s); } else { // no link $td_s = new HTML("td"); $td_s->addAttr("align", "center"); $td_s->addAttr("colspan", "1"); $input = new HTMLempty("input"); $td_s->addContent(_("Die Evaluation ist bereits diesem Bereich zugeordnet.")); $tr_s->addContent($td_s); } // copy $td_s = new HTML("td"); $td_s->addAttr("align", "center"); $input = new HTMLempty("input"); $input->addAttr("type", "checkbox"); $input->addAttr("name", "copy_range[{$range['id']}]"); $input->addAttr("value", "1"); $td_s->addContent($input); $tr_s->addContent($td_s); $table_s->addContent($tr_s); $counter++; } } elseif ($globalperm == "root" || $globalperm == "admin") { $tr_s = new HTML("tr"); $td_s = new HTML("td"); $td_s->addAttr("class", "content_body"); $td_s->addAttr("colspan", "4"); $td_s->addHTMLContent(" "); $td_s->addContent(_("Es wurden keine Ergebnisse aus diesem Bereich gefunden.")); $tr_s->addContent($td_s); $table_s->addContent($tr_s); } reset($ranges); } } if ($showsearchresults) { $tr = new HTML("tr"); $td = new HTML("td"); $td->addAttr("colspan", "2"); // $td->addContent(new HTMLempty("hr")); $b = new HTML("b"); # $b->addContent (_("Suchergebnisse:")); if (Request::get("search")) { $b->addContent(_("Sie können die Evaluation folgenden Bereichen zuordnen (Suchergebnisse):")); } else { $b->addContent(_("Sie können die Evaluation folgenden Bereichen zuordnen:")); } $td->addContent($b); $td->addContent(EvalCommon::createImage(EVAL_PIC_HELP, "", tooltip(_("Hängen Sie die Evaluation in die gewünschten Bereiche ein (abhängige Kopie mit gemeinsamer Auswertung) oder kopieren Sie sie in Bereiche (unabhängige Kopie mit getrennter Auswertung)."), TRUE, TRUE))); $td->addContent($results ? $table_s : _("Die Suche ergab keine Treffer.")); $tr->addContent($td); $table->addContent($tr); } // the seach-button if ($globalperm == "root" || $globalperm == "admin") { $tr = new HTML("tr"); $td = new HTML("td"); $td->addAttr("colspan", "2"); $td->addAttr("style", "padding-bottom:0; border-top:1px solid black;"); $td->addContent(_("Nach Bereichen suchen:")); $td->addContent(" "); $input = new HTMLempty("input"); $input->addAttr("type", "text"); $input->addAttr("name", "search"); $input->addAttr("style", "vertical-align:middle;"); $input->addAttr("value", "" . Request::get("search") . ""); $td->addContent($input); $td->addContent(Button::create(_('Suchen'), 'search_range_button', array('title' => _('Bereiche suchen')))); $tr->addContent($td); $table->addContent($tr); } return $table->createContent(); }
foreach ($evalIDArray as $number => $evalID) { $eval = new Evaluation($evalID); $open = $openID == $evalID; $td->addContent($lib->createEvalRow($eval, $number, EVAL_STATE_STOPPED, $open)); if ($open) { $td->addContent($lib->createEvalContent($eval, $number, EVAL_STATE_STOPPED, $safeguard)); } } } else { $td->addContent($lib->createInfoCol(_("Keine gestoppten Evaluationen vorhanden."))); } $tr->addContent($td); $table->addContent($tr); $table->addContent($lib->createClosingRow()); /* ------------------------------------------------------------ end: stopped */ echo $table->createContent(); if ($debug) { echo "<pre>"; echo "rangeid = {$rangeID}\n"; echo "<font color=red>Nach Evaluationen suchen...</font><br>"; $evalArray = $db->getEvaluationIDs($rangeID); echo "ed(n) " . count($evalArray) . " Evaluation(en) gefunden...</font><br>"; $evalArray = $db->getEvaluationIDs($rangeID, EVAL_STATE_NEW); echo "Es wurde(n) " . count($evalArray) . " neue Evaluation(en) gefunden...</font><br>"; $evalArray = $db->getEvaluationIDs($rangeID, EVAL_STATE_ACTIVE); echo "Es wurde(n) " . count($evalArray) . " laufende Evaluation(en) gefunden...</font><br>"; $evalArray = $db->getEvaluationIDs($rangeID, EVAL_STATE_STOPPED); echo "Es wurde(n) " . count($evalArray) . " gestoppte Evaluation(en) gefunden...</font><br>"; echo EvalCommon::createErrorReport($db); print_r($_POST); }