public function execute(\FrameResponseObject $frameResponseObject) { $steam = $GLOBALS["STEAM"]; $id = $this->id; if ($this->params[1] == "group" || $this->params[1] == "user") { $category = $this->params[1]; } else { throw new \Exception("category isn't set"); } if ($category == "user" && $id != 0) { $user = \steam_factory::get_object($steam->get_id(), $id); $user_data = $user->get_attributes(array(OBJ_NAME, OBJ_DESC, USER_FIRSTNAME, USER_FULLNAME, USER_EMAIL, USER_ADRESS, OBJ_ICON, "bid:user_callto", "bid:user_im_adress", "bid:user_im_protocol")); // $user_email_forwarding = $user->get_email_forwarding(); } elseif ($category == "group" && $id != 0) { $group = \steam_factory::get_object($steam->get_id(), $id); $group_data = $group->get_attributes(array(OBJ_NAME, OBJ_DESC)); } $user_favourites = $steam->get_current_steam_user()->get_buddies(); if (count($user_favourites) == 0) { $user_favourites = array(); } if ($category == "user") { array_push($user_favourites, $user); } else { if ($category == "group") { array_push($user_favourites, $group); } } $steam->get_current_steam_user()->set_attribute("USER_FAVOURITES", $user_favourites); //$frameResponseObject->setConfirmText(gettext("Favorite added successfully")); $frameResponseObject->setConfirmText("Favorit erfolgreich hinzugefügt!"); $widget = new \Widgets\JSWrapper(); $url = 'self.location.href="' . PATH_URL . 'favorite/index' . '"'; $widget->setJs($url); $frameResponseObject->addWidget($widget); return $frameResponseObject; }
public function frameResponse(\FrameResponseObject $frameResponseObject) { $user = $GLOBALS["STEAM"]->get_current_steam_user(); $pyramidRoom = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $this->id); $pyramiddiscussionExtension = \Pyramiddiscussion::getInstance(); $pyramiddiscussionExtension->addCSS(); // mail form got submitted if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["send_mail"])) { $basegroup = $pyramidRoom->get_attribute("PYRAMIDDISCUSSION_BASEGROUP"); $admingroup = $pyramidRoom->get_attribute("PYRAMIDDISCUSSION_ADMINGROUP"); if ($admingroup->is_member($user)) { $title = "Rundmail zur Pyramidendiskussion: " . $pyramidRoom->get_name(); $content = nl2br($_POST["content"]); if ($basegroup->get_id() != $admingroup->get_id()) { $basegroup->mail($title, $content); $admingroup->mail($title, $content); } else { $basegroup->mail($title, $content); } $frameResponseObject->setConfirmText("Rundmail erfolgreich gesendet."); } } $content = $pyramiddiscussionExtension->loadTemplate("pyramiddiscussion_mail.template.html"); $content->setCurrentBlock("BLOCK_PYRAMID_MAIL"); $content->setVariable("PYRAMID_MAIL", "Rundmail erstellen"); $content->setVariable("CONTENT_LABEL", "Inhalt:"); $content->setVariable("SEND_MAIL", "Rundmail senden"); $content->setVariable("BACK_LABEL", "Zurück"); $content->setVariable("BACK_URL", $pyramiddiscussionExtension->getExtensionUrl() . "Index/" . $this->id); $content->parse("BLOCK_PYRAMID_MAIL"); $rawWidget = new \Widgets\RawHtml(); $rawWidget->setHtml($content->get()); $frameResponseObject->addWidget($rawWidget); $frameResponseObject->setHeadline(array(array("name" => "Pyramidendiskussion", "link" => $pyramiddiscussionExtension->getExtensionUrl() . "Index/" . $this->id), array("name" => "Rundmail erstellen"))); return $frameResponseObject; }
public function execute(\FrameResponseObject $frameResponseObject) { //echo SEMESTER_URL;die; //$portal = \lms_portal::get_instance(); //$portal->initialize( GUEST_NOT_ALLOWED ); $user = \lms_steam::get_current_user(); $all_users = \steam_factory::groupname_to_object($GLOBALS["STEAM"]->get_id(), STEAM_ALL_USER); $scg = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), STEAM_COURSES_GROUP, CLASS_GROUP); $current_semester = \steam_factory::groupname_to_object($GLOBALS["STEAM"]->get_id(), $scg->get_groupname() . "." . STEAM_CURRENT_SEMESTER); if (!\lms_steam::is_steam_admin($user) && !lms_steam::is_semester_admin($current_semester, $user)) { include "bad_link.php"; exit; } if ($_SERVER["REQUEST_METHOD"] == "POST") { $values = $_POST["values"]; $problems = ""; $hints = ""; if (empty($values["semester"])) { throw new Exception("Semester is not given."); } if (empty($values["id"])) { $problems .= gettext("The course ID is missing.") . " "; $hints .= gettext("The ID is necessary for unique identification, ordering and finding the course. Please fill this out.") . " "; } if (!empty($values["access"]) && $values["access"] == PERMISSION_COURSE_PASSWORD && empty($values["password"])) { $problems .= gettext("The course password is missing.") . " "; $hints .= gettext("You chose to password protect your course. Please provide a password.") . " "; } if (empty($problems) && !empty($values["get_lsf_infos"])) { // INFOS UEBER LSF HOLEN $lsf_client = new \hislsf_soap(); unset($_SESSION["LSF_COURSE_INFO"]); // TODO: SEMESTER DYNAMISCH SETZEN $result = $lsf_client->get_available_courses(SYNC_HISLSF_SEMESTER, $values["id"]); if (isset($result->veranstaltung)) { if (count($result->veranstaltung) == 1) { header("Location: " . PATH_URL . "course/create" . "/" . $current_semester->get_name() . "/?lsf_course_id=" . $result->veranstaltung->Veranstaltungsschluessel); exit; } else { header("Location: " . PATH_URL . "course" . "/" . $current_semester->get_name() . "/hislsf/" . $values["id"] . "/"); exit; } } else { $problems = "Keine Veranstaltungen im LSF unter dieser Nummer gefunden."; } } if (empty($problems)) { if (empty($values["name"])) { $problems .= gettext("The course name is missing.") . " "; $hints .= gettext("A name is necessary for identification.") . " "; } if (strpos($values['id'], '.')) { $problems .= gettext("Please don't use the \".\"-char in the course ID.") . ' '; } if (empty($values["tutors"])) { $values["tutors"] = "NN"; } if (empty($problems)) { if (!isset($values["hislsf"]) || !$values["hislsf"]) { $values["lsf_id"] = ""; } $max_members = -1; if ($values["lsf_id"] === "") { if (!empty($values["maxsize"]) && trim($values["maxsize"]) != "" && preg_match('/[^-.0-9]/', trim($values["maxsize"]))) { $problems .= gettext("Invalid max number of participants.") . " "; $hints .= gettext("Please enter a valid number for the max number of participants.") . " " . gettext("Please note that the input of a '0' or to leave the field blank means no limitation.") . " "; } else { if (!empty($values["maxsize"]) && trim($values["maxsize"]) != "" && trim($values["maxsize"]) < 0) { $problems .= gettext("Invalid max number of participants.") . " "; $hints .= gettext("Please enter a number equal or greater than '0' for the max number of participants.") . " " . gettext("Please note that the input of a '0' or to leave the field blank means no limitation.") . " "; } else { if (isset($values["maxsize"])) { if (trim($values["maxsize"]) === "") { $max_members = 0; } else { $max_members = (int) trim($values["maxsize"]); } } } } } if (empty($problems)) { try { $new_course = \steam_factory::create_group($GLOBALS["STEAM"]->get_id(), $values["id"], $current_semester, FALSE, $values["name"]); } catch (Exception $e) { $problems .= gettext("The course ID already exists.") . " "; $hints .= gettext("The ID is necessary for unique identification, ordering and finding the course. This ID already exists.") . " "; } if (empty($problems)) { $new_course->set_attributes(array("OBJ_TYPE" => "course", "COURSE_PARTICIPANT_MNGMNT" => $obj_type, "COURSE_SEMESTER" => $values["semester"], "COURSE_TUTORS" => $values["tutors"], "COURSE_SHORT_DSC" => $values["short_dsc"], "COURSE_LONG_DSC" => $values["long_dsc"], "COURSE_HISLSF_ID" => $values["lsf_id"])); $learners = \steam_factory::create_group($GLOBALS["STEAM"]->get_id(), "learners", $new_course, FALSE, "Participants of course '" . $values["name"] . "'"); $learners->set_attribute("OBJ_TYPE", "course_learners"); $staff = \steam_factory::create_group($GLOBALS["STEAM"]->get_id(), "staff", $new_course, FALSE, "Tutors of course '" . $values["name"] . "'"); $staff->set_attribute("OBJ_TYPE", "course_staff"); $staff->add_member($user); $admins = \steam_factory::create_group($GLOBALS["STEAM"]->get_id(), "admins", $new_course, FALSE, "Admins of course '" . $values["name"] . "'"); $admins->set_attribute("OBJ_TYPE", "course_admins"); // uncomment below if koala can handle admins vs tutors //$admins->add_member( $user ); // RIGHTS MANAGEMENT ======================================= $course_calendar = $new_course->get_calendar(); $learners_workroom = $learners->get_workroom(); $course_workroom = $new_course->get_workroom(); $staff->set_sanction_all($staff); $staff->sanction_meta(SANCTION_ALL, $staff); $learners->set_sanction_all($staff); $learners->sanction_meta(SANCTION_ALL, $staff); $new_course->set_sanction_all($staff); $new_course->sanction_meta(SANCTION_ALL, $staff); $admins->set_sanction_all($admins); $admins->sanction_meta(SANCTION_ALL, $admins); $staff->set_sanction_all($admins); $staff->sanction_meta(SANCTION_ALL, $admins); $learners->set_sanction_all($admins); $learners->sanction_meta(SANCTION_ALL, $admins); $new_course->set_sanction_all($admins); $new_course->sanction_meta(SANCTION_ALL, $admins); $course_calendar->set_acquire(FALSE); $course_calendar->set_sanction_all($staff); $course_calendar->sanction_meta(SANCTION_ALL, $staff); $course_calendar->set_sanction_all($admins); $course_calendar->sanction_meta(SANCTION_ALL, $admins); $course_calendar->set_read_access($learners, TRUE); $course_calendar->set_write_access($new_course, FALSE); $course_calendar->set_insert_access($new_course, FALSE); $course_calendar->set_insert_access($all_users, FALSE); // Course workroom $course_workroom->set_sanction($new_course, SANCTION_READ | SANCTION_EXECUTE | SANCTION_ANNOTATE); $course_workroom->set_sanction_all($staff); $course_workroom->set_sanction_all($admins); $course_workroom->sanction_meta(SANCTION_ALL, $staff); $course_workroom->sanction_meta(SANCTION_ALL, $admins); // Learners workroom $learners_workroom->set_read_access($all_users, TRUE); $learners_workroom->set_sanction($learners, SANCTION_READ | SANCTION_EXECUTE | SANCTION_ANNOTATE); $learners_workroom->set_sanction_all($staff); $learners_workroom->set_sanction_all($admins); $learners_workroom->sanction_meta(SANCTION_ALL, $staff); $learners_workroom->sanction_meta(SANCTION_ALL, $admins); $koala_course = new \koala_group_course($new_course); if (!isset($values["hislsf"]) || !$values["hislsf"]) { $access = $values["access"]; $koala_course->set_access($access, $learners, $staff, $admins, KOALA_GROUP_ACCESS); if (isset($values["password"]) && $access == PERMISSION_COURSE_PASSWORD) { $koala_course->get_group_learners()->set_password($values["password"]); } else { $koala_course->get_group_learners()->set_password(""); } } else { $koala_course->set_access(PERMISSION_COURSE_HISLSF, $learners, $staff, $admins, KOALA_GROUP_ACCESS); } if ($max_members > -1) { $learners->set_attribute(GROUP_MAXSIZE, $max_members); } // RIGHTS MANAGEMENT ======================================= // extensions: if (isset($_POST["extensions_available"]) && !empty($_POST["extensions_available"])) { $extensions_available = explode("/", $_POST["extensions_available"]); if (isset($_POST["extensions_enabled"])) { $extensions_enabled = $_POST["extensions_enabled"]; } else { $extensions_enabled = array(); } if (isset($_POST["extensions_enabled_add"])) { $extensions_enabled = array_merge($extensions_enabled, explode("/", $_POST["extensions_enabled_add"])); } if (is_array($extensions_available)) { foreach ($extensions_available as $extension_name) { $extension = \lms_steam::get_extensionmanager()->get_extension($extension_name); if (!is_object($extension)) { continue; } if (array_search($extension_name, $extensions_enabled) === FALSE) { $extension->disable_for($koala_course); } else { $extension->enable_for($koala_course); } } } } $cache = get_cache_function("ORGANIZATION"); $cache->drop("lms_steam::semester_get_courses", $current_semester->get_id()); header("Location: " . PATH_URL . "semester/index" . "/" . $current_semester->get_name() . "/" . $new_course->get_name() . "/"); exit; } } } } if (!empty($problems)) { $frameResponseObject->setConfirmText($problems, $hints); //$portal->set_problem_description( $problems, $hints ); } } if (!empty($_GET["lsf_course_id"])) { $lsf_client = new hislsf_soap(); $course_infos = $lsf_client->get_course_information(SYNC_HISLSF_SEMESTER, $_GET["lsf_course_id"]); if (empty($course_infos) && empty($problems)) { $frameResponseObject->setConfirmText(gettext("Error getting course data from HIS/LSF.")); //$portal->set_problem_description(gettext("Error getting course data from HIS/LSF.") ); } else { if (empty($course_infos["course_dsc"])) { $course_infos["course_dsc"] = "keine Beschreibung vorhanden."; } else { $course_infos["course_dsc"] = unhtmlentities($course_infos["course_dsc"]); } $values = array("lsf_id" => $course_infos["course_lsf_id"], "id" => $course_infos["course_id"], "name" => $course_infos["course_name"], "tutors" => $course_infos["course_tutors"], "short_dsc" => $course_infos["course_type"], "long_dsc" => $course_infos["course_dsc"]); } $_SESSION["LSF_COURSE_INFO"] = ""; } $content = \Course::getInstance()->loadTemplate("courses_create.template.html"); //$content = new HTML_TEMPLATE_IT(); //$content->loadTemplateFile( PATH_TEMPLATES . "courses_create.template.html" ); $content->setVariable("FORM_ACTION", PATH_URL . "course/create" . "/" . $current_semester->get_name() . "/"); $content->setVariable("VALUE_SEMESTER", h($current_semester->get_name())); //$content->setVariable( "INFO_TEXT", gettext( "Creating a course means..." ) ); $content->setVariable("CONFIRMATION_TEXT", str_replace("%SEMESTER", h($current_semester->get_attribute("OBJ_DESC")), gettext("You are going to create a new course in <b>%SEMESTER</b>.")) . " " . gettext("Please fill out the requested meta data at first.") . " " . gettext("At the bottom, you can determine the manner of participant management.") . " " . gettext("Also you can add further course admins later on.")); $content->setVariable("LABEL_GENERAL_INFORMATION", gettext("General Information")); $content->setVariable("LABEL_COURSE_ID", gettext("Course ID")); $content->setVariable("VALUE_COURSE_ID", isset($values) ? h($values["id"]) : ''); $content->setVariable("LABEL_COURSE_NAME", gettext("Name")); $content->setVariable("VALUE_COURSE_NAME", isset($values) ? h($values["name"]) : ''); $content->setVariable("LABEL_COURSE_SHORT_INFORMATION", gettext("Short Info")); $content->setVariable("VALUE_SHORT_DSC", isset($values) ? h($values["short_dsc"]) : ''); $content->setVariable("SHORT_DSC_SHOW_UP", gettext("This value will show up in the semester's courses list beside id, name and staff members.")); $content->setVariable("LABEL_COURSE_TUTORS", gettext("Staff members")); $content->setVariable("VALUE_TUTORS", isset($values) ? h($values["tutors"]) : ''); $content->setVariable("LABEL_LONG_DSC", gettext("Long description")); $content->setVariable("LONG_DSC_SHOW_UP", gettext("This is for your course page. Please add information about schedule and locations at least.")); $content->setVariable("VALUE_LONG_DSC", isset($values) ? h($values["long_dsc"]) : ''); $content->setVariable("LABEL_BB_BOLD", gettext("B")); $content->setVariable("HINT_BB_BOLD", gettext("boldface")); $content->setVariable("LABEL_BB_ITALIC", gettext("I")); $content->setVariable("HINT_BB_ITALIC", gettext("italic")); $content->setVariable("LABEL_BB_UNDERLINE", gettext("U")); $content->setVariable("HINT_BB_UNDERLINE", gettext("underline")); $content->setVariable("LABEL_BB_STRIKETHROUGH", gettext("S")); $content->setVariable("HINT_BB_STRIKETHROUGH", gettext("strikethrough")); $content->setVariable("LABEL_BB_IMAGE", gettext("IMG")); $content->setVariable("HINT_BB_IMAGE", gettext("image")); $content->setVariable("LABEL_BB_URL", gettext("URL")); $content->setVariable("HINT_BB_URL", gettext("web link")); $content->setVariable("LABEL_BB_MAIL", gettext("MAIL")); $content->setVariable("HINT_BB_MAIL", gettext("email link")); $content->setVariable("PARTICIPANT_MANAGEMENT", gettext("Participant Management")); if (isset($values) && $values["lsf_id"] > 1) { $content->setCurrentBlock("HIS_LSF_PM"); $content->setVariable("LSF_COURSE_ID", isset($values) ? h($values["lsf_id"]) : ''); $content->setVariable("LSF_COURSE", isset($values) ? h($values["id"]) : '' . " " . isset($values) ? h($values["name"]) : '' . " (" . isset($values) ? h($values["short_dsc"]) : '' . ")"); if ($values["hislsf"]) { $content->setVariable("HISLSF_CHECKED", "CHECKED"); } $content->setVariable("LABEL_HISLSF", "Ja, es soll die Teilnehmerverwaltung des HIS LSF verwendet werden."); $content->setVariable("HISLSF_INFO", "Wenn gesetzt, können sich Studenten für diesen Kurs nur über das HIS LSF anmelden."); $content->parse("HIS_LSF_PM"); } if (!isset($values) || !isset($values["hislsf"])) { $content->setCurrentBlock("BLOCK_MAXSIZE"); $content->setVariable("LABEL_MAXSIZE", gettext("Max number of participants")); $content->setVariable("LABEL_MAXSIZE_DSC", gettext("To limit the max number of participants for your course enter a number greater than 0. Leave this field blank or enter a '0' for no limitation.")); if (isset($values["maxsize"])) { $content->setVariable("VALUE_MAXSIZE", h($values["maxsize"])); } $content->parse("BLOCK_MAXSIZE"); $content->setCurrentBlock("BLOCK_ACCESS"); $content->setVariable("PARTICIPANT_MANAGEMENT", gettext("Participant Management")); } $access = \koala_group_course::get_access_descriptions(); $access_default = PERMISSION_COURSE_PUBLIC; if (is_array($access) && (!isset($values) || !isset($values["hislsf"]))) { $content->setCurrentBlock("BLOCK_ACCESS"); foreach ($access as $key => $array) { if ($key != PERMISSION_COURSE_PAUL_SYNC && $key != PERMISSION_UNDEFINED || isset($values) && (int) $values["access"] == PERMISSION_UNDEFINED) { $content->setCurrentBlock("ACCESS"); $content->setVariable("LABEL", $array["summary_short"] . ": " . $array["label"]); $content->setVariable("VALUE", $key); if (isset($values) && $key == (int) $values["access"] || empty($values) && $key == $access_default) { $content->setVariable("CHECK", "checked=\"checked\""); } if ($key == PERMISSION_COURSE_PASSWORD) { $content->setVariable("ONCHANGE", "onchange=\"document.getElementById('passworddiv').style.display='block'\""); $content->setCurrentBlock("ACCESS_PASSWORD"); $content->setVariable("LABEL_PASSWORD", gettext("Password")); if (!empty($values["password"])) { $content->setVariable("VALUE_PASSWORD", $values["password"]); } if (isset($values["access"]) && $values["access"] == PERMISSION_COURSE_PASSWORD) { $content->setVariable("PASSWORDDIV_DISPLAY", "block"); } elseif (!isset($values["access"]) && $access_default == PERMISSION_COURSE_PASSWORD) { $content->setVariable("PASSWORDDIV_DISPLAY", "block"); } else { $content->setVariable("PASSWORDDIV_DISPLAY", "none"); } $content->parse("ACCESS_PASSWORD"); } else { $content->setVariable("ONCHANGE", "onchange=\"document.getElementById('passworddiv').style.display='none'\""); } $content->parse("ACCESS"); } } $content->parse("BLOCK_ACCESS"); } // extensions: //$extensions = \lms_steam::get_extensionmanager()->get_extensions_by_class( 'koala_group_course' ); $extensions = 0; /*if ( count( $extensions ) > 0 ) { $content->setCurrentBlock( "BLOCK_EXTENSIONS" ); $content->setVariable( "LABEL_EXTENSIONS", gettext( "Extensions" ) ); $extension_list = array(); foreach ( $extensions as $extension ) { if( $extension->get_requirements() === array() ) { $extension_name = $extension->get_name(); $content->setCurrentBlock( "BLOCK_EXTENSION" ); $content->setVariable( "EXTENSION_ID", $extension_name ); $content->setVariable( "EXTENSION_NAME", $extension->get_display_name() ); $content->setVariable( "EXTENSION_DESC", $extension->get_display_description() ); $subextensions = \lms_steam::get_extensionmanager()->get_dependent_extensions($extension); if( count( $subextensions ) > 0 ) { $content->setCurrentBlock( "BLOCK_SUBEXTENSIONS" ); $content->setVariable( "LABEL_SUBEXTENSIONS", str_replace( "%EXTENSION", h($extension->get_display_name()), gettext( "The following sub-extensions are available for %EXTENSION" ) )); foreach($subextensions as $subextension) { $subextension_name = $subextension->get_name(); $content->setCurrentBlock( "BLOCK_SUBEXTENSION" ); $content->setVariable( "PARENT_EXTENSION_ID", $extension_name ); $content->setVariable( "SUBEXTENSION_ID", $subextension_name ); $content->setVariable( "SUBEXTENSION_NAME", $subextension->get_display_name() ); $content->setVariable( "SUBEXTENSION_DESC", $subextension->get_display_description() ); $content->setVariable( "SUBEXTENSION_DISABLED", "disabled=\"disabled\"" ); $content->parse( "BLOCK_SUBEXTENSION" ); $extension_list[] = $subextension_name; } $content->parse( "BLOCK_SUBEXTENSIONS" ); } $content->parse( "BLOCK_EXTENSION" ); $extension_list[] = $extension_name; } } $content->setVariable( "VALUE_EXTENSIONS", implode( "/", $extension_list ) ); $content->parse( "BLOCK_EXTENSIONS" ); }*/ $content->setVariable("LABEL_CREATE_COURSE", gettext("Create and finish")); $content->setVariable("LABEL_CREATE_ADD_ADMIN", gettext("Create and add further admins")); //$portal->set_page_main( //array( array( "link" => PATH_URL . SEMESTER_URL . "/" . $current_semester->get_name(). "/", "name" => h($current_semester->get_attribute( "OBJ_DESC" )) ), array( "link" => "", "name" => gettext( "Create new course" ) ) ), //$content->get() //); $frameResponseObject->setHeadline(array(array("link" => PATH_URL . "semester/index" . "/" . $current_semester->get_name() . "/", "name" => h($current_semester->get_attribute("OBJ_DESC"))), array("link" => "", "name" => gettext("Create new course")))); $widget = new \Widgets\RawHtml(); $widget->setHtml($content->get()); $frameResponseObject->addWidget($widget); return $frameResponseObject; }
public function execute(\FrameResponseObject $frameResponseObject) { //$portal = \lms_portal::get_instance(); //$portal->initialize( GUEST_NOT_ALLOWED ); //$portal->set_guest_allowed( GUEST_NOT_ALLOWED ); $user = \lms_steam::get_current_user(); //$portal_user = $portal->get_user(); //$path = $request->getPath(); $current_semester = $this->params[1]; $group_course = \steam_factory::groupname_to_object($GLOBALS["STEAM"]->get_id(), "Courses." . $this->params[0] . "." . $this->params[1]); $group = new \koala_group_course($group_course); //$html_handler_course = new \koala_html_course($course); if (!$group instanceof \koala_group) { throw new \Exception("Variable group not set."); } if ($_SERVER["REQUEST_METHOD"] == "POST") { if (isset($_POST["remove"]) && is_array($_POST["remove"])) { $id = key($_POST["remove"]); $member_to_kick = \steam_factory::username_to_object($GLOBALS["STEAM"]->get_id(), $id); $group->remove_member($member_to_kick); $frameResponseObject->setConfirmText(str_replace("%NAME", h($member_to_kick->get_attribute("USER_FIRSTNAME")) . " " . h($member_to_kick->get_attribute("USER_FULLNAME")), gettext("User %NAME successfully removed from group members."))); //$portal->set_confirmation( str_replace( "%NAME", h($member_to_kick->get_attribute( "USER_FIRSTNAME" ))." " . h($member_to_kick->get_attribute( "USER_FULLNAME" )), gettext( "User %NAME successfully removed from group members." ) ) ); // clear caches: $cache = get_cache_function($member_to_kick->get_name()); $cache->drop("lms_steam::user_get_groups", $member_to_kick->get_name(), TRUE); $cache->drop("lms_steam::user_get_groups", $member_to_kick->get_name(), FALSE); $cache->drop("lms_steam::user_get_profile", $member_to_kick->get_name()); $cache->drop("lms_portal::get_menu_html", $member_to_kick->get_name(), TRUE); $cache = get_cache_function($group->get_id()); $cache->drop("lms_steam::group_get_members", $group->get_id()); } else { if (isset($_POST["hide"]) && is_array($_POST["hide"])) { $hidden_members = $group->get_steam_group()->get_attribute("COURSE_HIDDEN_STAFF"); if (!is_array($hidden_members)) { $hidden_members = array(); } $users_to_hide = array_keys($_POST["hide"]); $displayed_staff_members = array(); $displayed_staff_members = array_keys($_POST["displayed_staff_member"]); $tmp1_users_to_hide = array_unique(array_merge($hidden_members, $users_to_hide)); $tmp2_users_to_hide = array_diff($tmp1_users_to_hide, $displayed_staff_members); $final_users_to_hide = array_unique(array_merge($tmp2_users_to_hide, $users_to_hide)); $group->get_steam_group()->set_attribute("COURSE_HIDDEN_STAFF", $final_users_to_hide); } else { $hidden_members = $group->get_steam_group()->get_attribute("COURSE_HIDDEN_STAFF"); if (!is_array($hidden_members)) { $hidden_members = array(); } $displayed_staff_members = array(); $displayed_staff_members = array_keys($_POST["displayed_staff_member"]); $users_to_hide = array(); $users_to_hide = array_diff($hidden_members, $displayed_staff_members); $group->get_steam_group()->set_attribute("COURSE_HIDDEN_STAFF", $users_to_hide); } $frameResponseObject->setConfirmText("Sucessfully updated the visibility of course staff"); //$portal->set_confirmation( "Sucessfully updated the visibility of course staff" ); } } $cache = get_cache_function($group->get_id(), CACHE_LIFETIME_STATIC); switch (get_class($group)) { case "koala_group_course": $html_handler_group = new \koala_html_course($group); $html_handler_group->set_context("staff"); //$members = $cache->call( "lms_steam::group_get_members", $group->steam_group_staff->get_id() ); $members = \lms_steam::group_get_members($group->steam_group_staff->get_id()); break; default: $html_handler_group = new \koala_html_group($group); $html_handler_group->set_context("staff"); //$members = $cache->call( "lms_steam::group_get_members", $group->get_id() ); $members = \lms_steam::group_get_members($group->get_id()); break; } $is_admin = $group->is_admin($user); $content = \Course::getInstance()->loadTemplate("list_staff.template.html"); //$content = new HTML_TEMPLATE_IT(); //$content->loadTemplateFile( PATH_TEMPLATES . "list_staff.template.html" ); $no_members = count($members); //DONE if ($no_members > 0) { $pageIterator = \lms_portal::get_paginator(10, $no_members, "(" . str_replace("%NAME", h($group->get_name()), gettext("%TOTAL members in %NAME")) . ")"); $content->setVariable("PAGEITERATOR", $pageIterator["html"]); $start = $pageIterator["startIndex"]; //$start = $portal->set_paginator( $content, 10, $no_members, "(" . str_replace( "%NAME", h($group->get_name()), gettext( "%TOTAL members in %NAME" ) ) . ")" ); $end = $start + 10 > $no_members ? $no_members : $start + 10; $content->setVariable("LABEL_CONTACTS", gettext("staff member") . " (" . str_replace(array("%a", "%z", "%s"), array($start + 1, $end, $no_members), gettext("%a-%z out of %s")) . ")"); $content->setCurrentBlock("BLOCK_CONTACT_LIST"); $content->setVariable("LABEL_NAME_POSITION", gettext("Name, position")); !COURSE_STAFF_FACULTY_AND_FOCUS or $content->setVariable("LABEL_SUBJECT_AREA", gettext("Origin/Focus")); $content->setVariable("LABEL_COMMUNICATION", gettext("Communication")); if (\lms_steam::is_koala_admin($user) || !COURSE_KOALAADMIN_ONLY && $is_admin) { !COURSE_STAFFLIST_MANAGE or $content->setVariable("TH_MANAGE_CONTACT", gettext("Action")); !COURSE_STAFFLIST_HIDE or $content->setVariable("TH_STAFF_MEMBER_VISIBILITY", gettext("hidden")); !COURSE_STAFFLIST_HIDE or $content->setVariable("STAFF_MEMBER_VISIBILITY_TITLE", gettext("Selected staff members will not be visible on the course start page.")); } !COURSE_STAFF_EXTENSIONS or $content->setVariable("TH_MANAGE_EXTENSIONS", "Status"); $content->setVariable("BEGIN_HTML_FORM", "<form method=\"POST\" action=\"\">"); $content->setVariable("END_HTML_FORM", "</form>"); $hidden_members = $group->get_steam_group()->get_attribute("COURSE_HIDDEN_STAFF"); if (!is_array($hidden_members)) { $hidden_members = array(); } for ($i = $start; $i < $end; $i++) { $member = $members[$i]; if ($member["USER_TRASHED"] === 1) { continue; } $content->setCurrentBlock("BLOCK_CONTACT"); $content->setVariable("CONTACT_LINK", PATH_URL . "user/" . h($member["OBJ_NAME"]) . "/"); $icon_link = $member["OBJ_ICON"] == 0 ? PATH_STYLE . "images/anonymous.jpg" : PATH_URL . "download/image/" . h($member["OBJ_ICON"]) . "/26/35"; $content->setVariable("CONTACT_IMAGE", $icon_link); $title = !empty($member["USER_ACADEMIC_TITLE"]) ? h($member["USER_ACADEMIC_TITLE"]) . " " : ""; $content->setVariable("CONTACT_NAME", $title . h($member["USER_FIRSTNAME"]) . " " . h($member["USER_FULLNAME"])); if (!COURSE_SHOW_ONLY_EXTERN_MAIL || COURSE_SHOW_ONLY_EXTERN_MAIL && is_string(\steam_factory::get_user($GLOBALS['STEAM']->get_id(), $member["OBJ_NAME"])->get_attribute("USER_EMAIL")) && steam_factory::get_user($GLOBALS['STEAM']->get_id(), $member["OBJ_NAME"])->get_attribute("USER_EMAIL") != "" && steam_factory::get_user($GLOBALS['STEAM']->get_id(), $member["OBJ_NAME"])->get_attribute("USER_FORWARD_MSG") === 1) { $content->setVariable("LINK_SEND_MESSAGE", PATH_URL . "messages_write.php?to=" . h($member["OBJ_NAME"])); $content->setVariable("LABEL_MESSAGE", gettext("Message")); $content->setVariable("LABEL_SEND", gettext("Send")); } !COURSE_STAFF_FACULTY_AND_FOCUS or $content->setVariable("FACULTY_AND_FOCUS", h($member["USER_PROFILE_FACULTY"])); if (\lms_steam::is_koala_admin($user) || !COURSE_KOALAADMIN_ONLY && $is_admin) { !COURSE_STAFFLIST_MANAGE or $content->setVariable("TD_MANAGE_CONTACT", "<td align=\"center\"><input type=\"submit\" name=\"remove[" . h($member["OBJ_NAME"]) . "]\" value=\"" . gettext("Remove") . "\"/></td>"); if (in_array($member["OBJ_ID"], $hidden_members)) { !COURSE_STAFFLIST_HIDE or $content->setVariable("TD_STAFF_MEMBER_VISIBILITY", "<td align=\"center\"><input type=\"checkbox\" name=\"hide[" . $member["OBJ_ID"] . "]\" checked=\"checked\"/>" . "\n\t\t\t<input type=\"hidden\" name=\"displayed_staff_member[" . $member["OBJ_ID"] . "]\" />" . "</td>"); } else { !COURSE_STAFFLIST_HIDE or $content->setVariable("TD_STAFF_MEMBER_VISIBILITY", "<td align=\"center\"><input type=\"checkbox\" name=\"hide[" . $member["OBJ_ID"] . "]\" />" . "\n\t\t\t<input type=\"hidden\" name=\"displayed_staff_member[" . $member["OBJ_ID"] . "]\" />" . "</td>"); } } $member_desc = empty($member["OBJ_DESC"]) ? "student" : $member["OBJ_DESC"]; $status = secure_gettext($member_desc); $content->setVariable("OBJ_DESC", h($status)); if (COURSE_STAFF_EXTENSIONS) { $extensions = $group->get_extensions(); $result = ""; foreach ($extensions as $extension) { $result .= $extension->get_member_info(\steam_factory::get_user($GLOBALS["STEAM"]->get_id(), $member["OBJ_NAME"]), $group); } $content->setVariable("EXTENSIONS_DATA", $result); } $content->parse("BLOCK_CONTACT"); } if (\lms_steam::is_koala_admin($user) || !COURSE_KOALAADMIN_ONLY && $is_admin) { !COURSE_STAFFLIST_HIDE or $content->setVariable("LABEL_SUBMIT_BUTTON", gettext("Save")); } $content->parse("BLOCK_CONTACT_LIST"); } else { $content->setVariable("LABEL_NO_MEMBERS", gettext("No staff found.")); } $html_handler_group->set_html_left($content->get()); //$portal->set_page_main( $html_handler_group->get_headline(), $html_handler_group->get_html() , "" ); $frameResponseObject->setHeadline($html_handler_group->get_headline()); $widget = new \Widgets\RawHtml(); $widget->setHtml($html_handler_group->get_html()); $frameResponseObject->addWidget($widget); return $frameResponseObject; }
public function frameResponse(\FrameResponseObject $frameResponseObject) { $user = $GLOBALS["STEAM"]->get_current_steam_user(); $pyramidRoom = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $this->id); $pyramiddiscussionExtension = \Pyramiddiscussion::getInstance(); $pyramiddiscussionExtension->addCSS(); $pyramiddiscussionExtension->addJS(); $basegroup = $pyramidRoom->get_attribute("PYRAMIDDISCUSSION_BASEGROUP"); $admingroup = $pyramidRoom->get_attribute("PYRAMIDDISCUSSION_ADMINGROUP"); $content = $pyramiddiscussionExtension->loadTemplate("pyramiddiscussion_configuration.template.html"); // if user is no admin display error msg if (!$admingroup->is_member($user)) { $rawWidget = new \Widgets\RawHtml(); $rawWidget->setHtml("Error: Kein Administrator"); $frameResponseObject->addWidget($rawWidget); return $frameResponseObject; } // change configuration if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["change_options"])) { $pyramidRoom->set_name($_POST["title"]); $pyramidRoom->set_attribute("OBJ_DESC", $_POST["info"]); $pyramidRoom->set_attribute("PYRAMIDDISCUSSION_ACTCOL", $_POST["phase"]); if (isset($_POST["use_deadlines"]) && $_POST["use_deadlines"] == "on") { $pyramidRoom->set_attribute("PYRAMIDDISCUSSION_USEDEADLINES", "yes"); $deadlines = $_POST["deadline"]; $deadlineArray = $pyramidRoom->get_attribute("PYRAMIDDISCUSSION_DEADLINES"); for ($count = 1; $count <= count($deadlines); $count++) { $deadline = $deadlines[$count]; $time = substr($deadline, 11); $deadline = substr($deadline, 0, 10); $deadline = mktime(substr($time, 0, 2), substr($time, 3, 2), 0, substr($deadline, 3, 2), substr($deadline, 0, 2), substr($deadline, 6, 4)); $deadlineArray[$count] = $deadline; } $pyramidRoom->set_attribute("PYRAMIDDISCUSSION_DEADLINES", $deadlineArray); $pyramidRoom->set_attribute("PYRAMIDDISCUSSION_OVERRIDE_DEADLINES", 0); } else { $pyramidRoom->set_attribute("PYRAMIDDISCUSSION_USEDEADLINES", "no"); $pyramidRoom->set_attribute("PYRAMIDDISCUSSION_OVERRIDE_DEADLINES", 0); } $frameResponseObject->setConfirmText("Änderungen erfolgreich gespeichert."); } $phase = $pyramidRoom->get_attribute("PYRAMIDDISCUSSION_ACTCOL"); $maxcol = $pyramidRoom->get_attribute("PYRAMIDDISCUSSION_MAXCOL"); $deadlines = $pyramidRoom->get_attribute("PYRAMIDDISCUSSION_DEADLINES"); // display configuration table $content->setCurrentBlock("BLOCK_PYRAMID_OPTIONS"); $content->setVariable("PYRAMID_OPTIONS", "Konfiguration der Pyramidendiskussion"); $content->setVariable("TITLE_LABEL", "Diskussionsthema:"); $content->setVariable("TITLE_VALUE", $pyramidRoom->get_name()); $content->setVariable("INFO_LABEL", "Infotext:"); $content->setVariable("INFO_VALUE", $pyramidRoom->get_attribute("OBJ_DESC")); $content->setVariable("START_LABEL", "Anzahl der Startfelder:"); $content->setVariable("START_VALUE", $pyramidRoom->get_attribute("PYRAMIDDISCUSSION_MAX")); $content->setVariable("BASEGROUP_LABEL", "Basisgruppe:"); $content->setVariable("BASEGROUP_VALUE", $basegroup->get_name()); $content->setVariable("ADMINGROUP_LABEL", "Admingruppe:"); $content->setVariable("ADMINGROUP_VALUE", $admingroup->get_name()); $content->setVariable("EDITOR_LABEL", "Editor-Typ:"); $editortype = $pyramidRoom->get_attribute("PYRAMIDDISCUSSION_EDITOR"); if ($editortype == "text/plain") { $content->setVariable("EDITOR_VALUE", "Einfacher Text"); } else { if ($editortype == "text/html") { $content->setVariable("EDITOR_VALUE", "HTML Notation"); } else { $content->setVariable("EDITOR_VALUE", "Wiki Notation"); } } $content->setVariable("PHASE_LABEL", "Aktuelle Phase:"); for ($count = 0; $count <= $maxcol + 2; $count++) { $content->setCurrentBlock("BLOCK_PHASE_OPTION"); $content->setVariable("PHASE_ID", $count); if ($count == 0) { $content->setVariable("PHASE_VALUE", "Gruppeneinteilungsphase"); } else { if ($count <= $maxcol) { $content->setVariable("PHASE_VALUE", $count . ". Diskussionsphase"); } else { if ($count == $maxcol + 1) { $content->setVariable("PHASE_VALUE", "Endphase"); } else { $content->setVariable("PHASE_VALUE", "Pyramide einfrieren"); } } } if ($count == $phase) { $content->setVariable("PHASE_SELECTED", "selected"); } $content->parse("BLOCK_PHASE_OPTION"); } $content->setVariable("DEADLINES_LABEL", "Benutze Deadlines:"); if (count($deadlines) > 0 && $pyramidRoom->get_attribute("PYRAMIDDISCUSSION_USEDEADLINES") == "yes") { $content->setVariable("DEADLINES_SELECTED", "checked"); } $content->setVariable("MAX_PHASE", $maxcol); $content->setVariable("DEADLINE_PHASE_LABEL", "Diskussionsphase"); $content->setVariable("DEADLINE_LABEL", "Deadline"); for ($count = 1; $count <= $maxcol; $count++) { $hours = 0; $minutes = 0; $content->setCurrentBlock("BLOCK_DEADLINE_ENTRY"); $content->setVariable("DEADLINE_PHASE", $count); if (array_key_exists($count, $deadlines)) { $content->setVariable("DEADLINE_PHASE_VALUE", date("d.m.Y H:i", (int) $deadlines[$count])); } else { $content->setVariable("DEADLINE_PHASE_VALUE", date("d.m.Y H:i", time() + 172800 * ($count - 1))); } $content->parse("BLOCK_DEADLINE_ENTRY"); } $content->setVariable("SAVE_CHANGES", "Änderungen speichern"); $content->setVariable("BACK_LABEL", "Zurück"); $content->setVariable("BACK_LINK", $pyramiddiscussionExtension->getExtensionUrl() . "Index/" . $this->id); $content->parse("BLOCK_PYRAMID_OPTIONS"); $rawWidget = new \Widgets\RawHtml(); $rawWidget->setHtml($content->get()); $frameResponseObject->addWidget($rawWidget); $frameResponseObject->setHeadline(array(array("name" => "Pyramidendiskussion", "link" => $pyramiddiscussionExtension->getExtensionUrl() . "Index/" . $this->id), array("name" => "Konfiguration"))); return $frameResponseObject; }
public function execute(\FrameResponseObject $frameResponseObject) { //$portal = \lms_portal::get_instance(); //$portal->initialize( GUEST_NOT_ALLOWED ); //$portal->set_page_title( gettext( "Buddy Icon" ) ); $user = \lms_steam::get_current_user(); $confirmText = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") { $problem = ""; $hint = ""; if (isset($_POST["action"]) && $_POST["action"] == "deleteicon") { // need to set OBJ_ICON to "0" and then to icons module to avoid weird // effects in icon handling (server side fix done but not testedyet) $old_icon = $user->get_attribute("OBJ_ICON"); $user->set_acquire_attribute("OBJ_ICON", 0); $user->set_attribute("OBJ_ICON", 0); // set the default user icon by acquiring OBJ_ICON from icons module $user->set_acquire_attribute("OBJ_ICON", $GLOBALS["STEAM"]->get_module("icons")); // delete previous user icon object if ($old_icon instanceof steam_document) { if ($old_icon->get_path() != "/images/doctypes/user_unknown.jpg" && $old_icon->check_access_write($user)) { $this->clean_iconcache($old_icon); $old_icon->delete(); } } $confirmText = gettext("Your profile icon has been deleted."); $this->clean_usericoncache($user); } else { // upload new icon if (count($_FILES) == 0) { $problem = gettext("No image specified.") . " "; $hint = gettext("Please choose an image on your local disk to upload.") . " "; } if (strpos($_FILES["icon"]["type"], "image") === FALSE) { $problem .= gettext("File is not an image.") . " "; $hint .= gettext("The icon has to be an image file (JPG, GIF or PNG)."); } if ((int) $_FILES["icon"]["size"] > 256000) { $problem .= gettext("File is larger than 250 KByte."); $hint .= gettext("It is only allowed to upload profile icons with file size smaller than 250 KByte."); } if (empty($problem)) { $user->set_acquire_attribute("OBJ_ICON", 0); $user->delete_value("OBJ_ICON"); $old_icon = $user->get_attribute("OBJ_ICON"); ob_start(); readfile($_FILES["icon"]["tmp_name"]); $content = ob_get_contents(); ob_end_clean(); $filename = str_replace(array("\\", "'"), array("", ""), $_FILES["icon"]["name"]); if ($old_icon instanceof steam_document && $old_icon->check_access_write($user)) { $new_icon = $old_icon; $new_icon->set_attribute("OBJ_NAME", $filename); $new_icon->set_content($content); $new_icon->set_attribute("DOC_MIME_TYPE", $_FILES["icon"]["type"]); } else { $new_icon = \steam_factory::create_document($GLOBALS["STEAM"]->get_id(), $filename, $content, $_FILES["icon"]["type"], FALSE); $new_icon->set_attribute("OBJ_TYPE", "document_icon_usericon"); } $user->set_attribute("OBJ_ICON", $new_icon); $all_user = \steam_factory::groupname_to_object($GLOBALS["STEAM"]->get_id(), "sTeam"); $new_icon->set_read_access($all_user); $GLOBALS["STEAM"]->buffer_flush(); // clean cache-related data $this->clean_usericoncache($user); $confirmText = gettext("Your profile icon has been changed."); } else { $frameResponseObject->setProblemDescription($problem); } } } $content = \Profile::getInstance()->loadTemplate("profile_icon.template.html"); //$content = new \HTML_TEMPLATE_IT(); //$content->loadTemplateFile( PATH_TEMPLATES . "profile_icon.template.html" ); //$content->setVariable( "INFO_TEXT", gettext( "Your buddy icon is what we use to represent you when you're in koaLA." ) ); if (PLATFORM_ID == "bid") { $content->setVariable("INFO_TEXT", "Hier können Sie ein Benutzerbild hinterlegen. Dieses wird beispielsweise an Ihren Dokumenten und Forenbeiträgen zusammen mit Ihrem Namen angezeigt."); } else { $content->setVariable("INFO_TEXT", "Das Benutzerbild wird Sie in " . PLATFORM_NAME . " repräsentieren"); } $content->setVariable("WINDOW_CONFIRM_TEXT", gettext("Are you sure you want to delete your current buddy icon?")); $content->setVariable("LABEL_DELETE", gettext("DELETE")); $user->delete_value("OBJ_ICON"); $icon = $user->get_attribute("OBJ_ICON"); if ($icon instanceof \steam_object) { $icon_id = $icon->get_id(); // if user icon is acquired (= default icon) hide the delete button if (is_object($user->get_acquire_attribute("OBJ_ICON"))) { $content->setVariable("HIDE_BUTTON", "style='display:none;'"); } } else { $icon_id = 0; $content->setVariable("HIDE_BUTTON", "style='display:none;'"); } // use it in 140x185 standard thumb size to optimize sharing of icon cache data $icon_link = $icon_id == 0 ? PATH_URL . "styles/standard/images/anonymous.jpg" : PATH_URL . "download/image/" . $icon_id . "/140/185"; $content->setVariable("USER_IMAGE", $icon_link); $content->setVariable("LABEL_YOUR_BUDDY_ICON", gettext("This is your buddy icon at the moment.")); $content->setVariable("LABEL_REPLACE", gettext("Replace with an image")); $content->setVariable("LABEL_UPLOAD_INFO", gettext("The uploaded file has to be an image file (JPG, GIF or PNG), should have the dimensions of 140 x 185 pixels and <b>may not be larger than 250 KByte</b>. ")); $content->setVariable("LABEL_UPLOAD", gettext("Upload")); if (PLATFORM_ID == "bid") { $breadcrumb = array(array("name" => $user->get_attribute("USER_FIRSTNAME") . " " . $user->get_attribute("USER_FULLNAME"), "link" => PATH_URL . "home"), array("name" => gettext("Profile"), "link" => PATH_URL . "profile/"), array("name" => gettext("Your buddy icon"))); } else { $breadcrumb = array(array("name" => $user->get_attribute("USER_FIRSTNAME") . " " . $user->get_attribute("USER_FULLNAME"), "link" => PATH_URL . "profile/" . "index/" . $user->get_name() . "/"), array("name" => gettext("Profile"), "link" => PATH_URL . "profile/index/" . $user->get_name() . "/"), array("name" => gettext("Your buddy icon"))); } $frameResponseObject->setHeadline($breadcrumb); $frameResponseObject->setConfirmText($confirmText); $rawHtml = new \Widgets\RawHtml(); $rawHtml->setHtml($content->get()); $frameResponseObject->addWidget($rawHtml); return $frameResponseObject; //$portal->set_page_main($breadcrumb, $content->get(), ""); //return $portal->get_html(); }
public function frameResponse(\FrameResponseObject $frameResponseObject) { $user = $GLOBALS["STEAM"]->get_current_steam_user(); $pyramidRoom = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $this->id); $pyramiddiscussionExtension = \Pyramiddiscussion::getInstance(); $pyramiddiscussionExtension->addCSS(); $basegroup = $pyramidRoom->get_attribute("PYRAMIDDISCUSSION_BASEGROUP"); $admingroup = $pyramidRoom->get_attribute("PYRAMIDDISCUSSION_ADMINGROUP"); $content = $pyramiddiscussionExtension->loadTemplate("pyramiddiscussion_users.template.html"); // if user is no admin display error msg if (!$admingroup->is_member($user)) { $rawWidget = new \Widgets\RawHtml(); $rawWidget->setHtml("Error: Kein Administrator"); $frameResponseObject->addWidget($rawWidget); return $frameResponseObject; } $members = $basegroup->get_members(); $admins = $admingroup->get_members(); foreach ($admins as $admin) { if (!$basegroup->is_member($admin)) { array_push($members, $admin); } } $maxcol = $pyramidRoom->get_attribute("PYRAMIDDISCUSSION_MAXCOL"); $maxstart = $pyramidRoom->get_attribute("PYRAMIDDISCUSSION_MAX"); $participants = $pyramidRoom->get_attribute("PYRAMIDDISCUSSION_PARTICIPANT_MANAGEMENT"); foreach ($members as $member) { if (!isset($participants[$member->get_id()])) { $participants[$member->get_id()] = 0; } } // save changes if form got submitted if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["change_users"])) { $previousstartpositions_post = $_POST["previousstartposition"]; $startpositions_post = $_POST["startposition"]; $deactivate_post = $_POST["deactivate"]; if (isset($_POST["admin"])) { $admin_post = $_POST["admin"]; } else { $admin_post = array(); } $formeradmin_post = $_POST["formeradmin"]; for ($count = 0; $count < count($members); $count++) { if ($members[$count] instanceof \steam_user && $members[$count]->get_name() != "root") { // change startposition $currentUserID = $members[$count]->get_id(); if ($previousstartpositions_post[$currentUserID] == "") { $previousstartpositions_post[$currentUserID] = 0; } if ($previousstartpositions_post[$currentUserID] != $startpositions_post[$currentUserID]) { if ($previousstartpositions_post[$currentUserID] != 0) { $oldPosition = \steam_factory::get_object_by_name($GLOBALS["STEAM"]->get_id(), $pyramidRoom->get_path() . "/Position_1_" . $previousstartpositions_post[$currentUserID]); $oldPositionGroup = $oldPosition->get_attribute("PYRAMIDDISCUSSION_RELGROUP"); $oldPositionGroup->remove_member($members[$count]); $userGroupID = 0; } if ($startpositions_post[$currentUserID] != 0) { $newPosition = \steam_factory::get_object_by_name($GLOBALS["STEAM"]->get_id(), $pyramidRoom->get_path() . "/Position_1_" . $startpositions_post[$currentUserID]); $newPositionGroup = $newPosition->get_attribute("PYRAMIDDISCUSSION_RELGROUP"); $newPositionGroup->add_member($members[$count]); $userGroupID = $newPositionGroup->get_id(); } } else { if ($previousstartpositions_post[$currentUserID] != 0) { $userPosition = \steam_factory::get_object_by_name($GLOBALS["STEAM"]->get_id(), $pyramidRoom->get_path() . "/Position_1_" . $previousstartpositions_post[$currentUserID]); $helpGroup = $userPosition->get_attribute("PYRAMIDDISCUSSION_RELGROUP"); $userGroupID = $helpGroup->get_id(); } else { $userGroupID = 0; } } $participants[$currentUserID] = $deactivate_post[$currentUserID]; if (!isset($admin_post[$currentUserID])) { if ($formeradmin_post[$currentUserID] == "on" && $admingroup->is_admin($user)) { // take adminrights (and remove user from the discussion if basegroup = admingroup) if ($admingroup == $basegroup) { if ($userGroupID != 0) { $userGroup = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $userGroupID); $userGroup->remove_member($members[$count]); } $admingroup->remove_member($members[$count]); } else { $admingroup->remove_member($members[$count]); } if (!$basegroup->is_member($members[$count])) { unset($members[$count]); $members = array_values($members); } } } else { if ($formeradmin_post[$currentUserID] == "off") { // give adminrights $admingroup->add_member($members[$count]); } } } } $pyramidRoom->set_attribute("PYRAMIDDISCUSSION_PARTICIPANT_MANAGEMENT", $participants); $frameResponseObject->setConfirmText("Änderungen erfolgreich gespeichert."); } // save users of the startpositions to arrays $startpositions = array(); for ($count = 1; $count <= $maxstart; $count++) { $startpositions[$count] = array(); $position = \steam_factory::get_object_by_name($GLOBALS["STEAM"]->get_id(), $pyramidRoom->get_path() . "/Position_1_" . $count); $positionGroup = $position->get_attribute("PYRAMIDDISCUSSION_RELGROUP"); $positionMembers = $positionGroup->get_members(); for ($count2 = 0; $count2 < count($positionMembers); $count2++) { array_push($startpositions[$count], $positionMembers[$count2]->get_id()); } } // display users $content->setCurrentBlock("BLOCK_PYRAMID_USERS"); $content->setVariable("LOGIN_LABEL", "Login"); $content->setVariable("NAME_LABEL", "Name"); $content->setVariable("START_LABEL", "Startposition"); $content->setVariable("DEACTIVATE_LABEL", "Hat mitgemacht bis"); $content->setVariable("ADMIN_LABEL", "Admin"); for ($count = 0; $count < count($members); $count++) { if ($members[$count] instanceof \steam_user && $members[$count]->get_name() != "root") { $content->setCurrentBlock("BLOCK_PYRAMID_USERS_ELEMENT"); $content->setVariable("USER_LOGIN", $members[$count]->get_name()); $content->setVariable("USER_NAME", $members[$count]->get_full_name()); $content->setVariable("USER_ID", $members[$count]->get_id()); for ($count2 = 0; $count2 <= $maxstart; $count2++) { $content->setCurrentBlock("BLOCK_POSITION_OPTION"); $content->setVariable("POSITION_ID", $count2); if ($count2 == 0) { if ($maxstart >= 10) { $content->setVariable("POSITION_VALUE", "--"); } else { $content->setVariable("POSITION_VALUE", "-"); } } else { $content->setVariable("POSITION_VALUE", $count2); if (in_array($members[$count]->get_id(), $startpositions[$count2])) { $content->setVariable("POSITION_SELECTED", "selected"); $content->setVariable("PREVIOUSSTART_VALUE", $count2); } } $content->parse("BLOCK_POSITION_OPTION"); } for ($count2 = 0; $count2 <= $maxcol - 1; $count2++) { $content->setCurrentBlock("BLOCK_PHASE_OPTION"); $content->setVariable("PHASE_ID", $count2); if ($count2 == 0) { $content->setVariable("PHASE_VALUE", "Komplette Diskussion"); } else { $content->setVariable("PHASE_VALUE", $count2 . ". Diskussionsphase"); } if ($count2 == $participants[$members[$count]->get_id()]) { $content->setVariable("PHASE_SELECTED", "selected"); } $content->parse("BLOCK_PHASE_OPTION"); } if ($admingroup->is_member($members[$count])) { $content->setVariable("ADMIN_SELECTED", "checked"); $content->setVariable("FORMER_ADMIN", "on"); } else { $content->setVariable("FORMER_ADMIN", "off"); } if (!$admingroup->is_admin($user)) { $content->setVariable("ADMIN_DISABLED", "disabled"); } $content->parse("BLOCK_PYRAMID_USERS_ELEMENT"); } } $content->setVariable("SAVE_CHANGES", "Änderungen speichern"); $content->setVariable("BACK_LINK", $pyramiddiscussionExtension->getExtensionUrl() . "Index/" . $this->id); $content->setVariable("BACK_LABEL", "Zurück"); $content->parse("BLOCK_PYRAMID_USERS"); $rawWidget = new \Widgets\RawHtml(); $rawWidget->setHtml($content->get()); $frameResponseObject->addWidget($rawWidget); $frameResponseObject->setHeadline(array(array("name" => "Pyramidendiskussion", "link" => $pyramiddiscussionExtension->getExtensionUrl() . "Index/" . $this->id), array("name" => "Teilnehmerverwaltung"))); return $frameResponseObject; }
public function execute(\FrameResponseObject $frameResponseObject) { //if (!defined("OBJ_ID")) define( "OBJ_ID", $weblog->get_id() ); $weblogId = $this->id; $weblog = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $weblogId); if (!defined("OBJ_ID")) { define("OBJ_ID", $weblog->get_id()); } $env = $weblog->get_environment(); $grp = $env->get_creator(); if ($grp->get_name() == "learners" && $grp->get_attribute(OBJ_TYPE) == "course_learners") { $grp = $grp->get_parent_group(); } $accessmergel = FALSE; if (isset($weblog) && is_object($weblog)) { $creator = $weblog->get_creator(); if ($weblog->get_attribute(KOALA_ACCESS) == PERMISSION_UNDEFINED && \lms_steam::get_current_user()->get_id() != $creator->get_id() && !\lms_steam::is_koala_admin(lms_steam::get_current_user())) { $accessmergel = TRUE; } } $backlink = empty($_POST["values"]["backlink"]) ? $_SERVER["HTTP_REFERER"] : $_POST["values"]["backlink"]; if ($_SERVER["REQUEST_METHOD"] == "POST") { $values = $_POST["values"]; if (get_magic_quotes_gpc()) { if (!empty($values['name'])) { $values['name'] = stripslashes($values['name']); } if (!empty($values['dsc'])) { $values['dsc'] = stripslashes($values['dsc']); } } if (empty($values["name"])) { $problems = gettext("The name of the weblog is missing."); $hints = gettext("Please type in a name."); } if (strpos($values["name"], "/")) { if (!isset($problems)) { $problems = ""; } $problems .= gettext("Please don't use the \"/\"-char in the name of the weblog."); } if (empty($problems)) { $group_members = $grp; $group_admins = 0; $group_staff = 0; // check if group is a course $grouptype = (string) $grp->get_attribute("OBJ_TYPE"); if ($grouptype == "course") { $group_staff = \steam_factory::groupname_to_object($GLOBALS["STEAM"]->get_id(), $grp->get_groupname() . ".staff"); $group_admins = \steam_factory::groupname_to_object($GLOBALS["STEAM"]->get_id(), $grp->get_groupname() . ".admins"); $group_members = \steam_factory::groupname_to_object($GLOBALS["STEAM"]->get_id(), $grp->get_groupname() . ".learners"); $workroom = $group_members->get_workroom(); } else { $workroom = $grp->get_workroom(); } if (!isset($weblog) || !is_object($weblog)) { $weblog_new = \steam_weblog::create_steam_structure($GLOBALS["STEAM"], $values["name"], $values["dsc"], $env); $_SESSION["confirmation"] = str_replace("%NAME", h($values["name"]), gettext("New weblog '%NAME' created.")); } else { $weblog->set_attribute(OBJ_NAME, $values["name"]); $weblog->set_attribute(OBJ_DESC, $values["dsc"]); $frameResponseObject->setConfirmText(gettext("The changes have been saved.")); //$portal->set_confirmation( gettext( "The changes have been saved." )); $weblog_new = $weblog; } //var_dump($weblog_new);die; $koala_weblog = new \lms_weblog($weblog_new); $access = (int) $values["access"]; //var_dump($access); $access_descriptions = \lms_weblog::get_access_descriptions($grp); //var_dump(!$accessmergel);die; //if (!$accessmergel) $koala_weblog->set_access( $access, $access_descriptions[$access]["members"] , $access_descriptions[$access]["steam"], $group_members, $group_staff, $group_admins ); // HIER DER NEUE CODE::ENDE $GLOBALS["STEAM"]->buffer_flush(); $cache = get_cache_function(\lms_steam::get_current_user()->get_name(), 600); $cache->drop("lms_steam::get_inventory_recursive", $workroom->get_id(), CLASS_CALENDAR, array("WEBLOG_LANGUAGE")); $cache->drop("lms_steam::get_group_communication_objects", $workroom->get_id(), CLASS_MESSAGEBOARD | CLASS_CALENDAR | CLASS_CONTAINER | CLASS_ROOM); if (!isset($weblog) || !is_object($weblog)) { header("Location: " . $backlink); exit; } } else { //TODO:PROBLEMDESCRIPTION //$portal->set_problem_description( $problems, isset($hints)?$hints:"" ); } } $content = \Weblog::getInstance()->loadTemplate("object_new.template.html"); //$content = new HTML_TEMPLATE_IT( PATH_TEMPLATES ); //$content->loadTemplateFile( "object_new.template.html" ); if (isset($weblog) && is_object($weblog)) { $content->setVariable("INFO_TEXT", str_replace("%NAME", h($weblog->get_name()), gettext("You are going to edit the weblog '<b>%NAME</b>'."))); $content->setVariable("LABEL_CREATE", gettext("Save changes")); $pagetitle = gettext("Preferences"); if (empty($values)) { $values = array(); $values["name"] = $weblog->get_name(); $values["dsc"] = $weblog->get_attribute(OBJ_DESC); $values["access"] = $weblog->get_attribute(KOALA_ACCESS); } $breadcrumbheader = gettext("Preferences"); } else { $grpname = $grp->get_attribute(OBJ_NAME); if ($grp->get_attribute(OBJ_TYPE) == "course") { $grpname = $grp->get_attribute(OBJ_DESC); } $content->setVariable("INFO_TEXT", str_replace("%ENV", h($grpname), gettext("You are going to create a new weblog in '<b>%ENV</b>'."))); $content->setVariable("LABEL_CREATE", gettext("Create weblog")); $pagetitle = gettext("Create weblog"); $breadcrumbheader = gettext("Add new weblog"); } if (!empty($values)) { if (!empty($values["name"])) { $content->setVariable("VALUE_NAME", h($values["name"])); } if (!empty($values["dsc"])) { $content->setVariable("VALUE_DSC", h($values["dsc"])); } } $content->setVariable("VALUE_BACKLINK", $backlink); $content->setVariable("LABEL_NAME", gettext("Name")); $content->setVariable("LABEL_DSC", gettext("Description")); $content->setVariable("LABEL_ACCESS", gettext("Access")); $content->setVariable("LABEL_BB_BOLD", gettext("B")); $content->setVariable("HINT_BB_BOLD", gettext("boldface")); $content->setVariable("LABEL_BB_ITALIC", gettext("I")); $content->setVariable("HINT_BB_ITALIC", gettext("italic")); $content->setVariable("LABEL_BB_UNDERLINE", gettext("U")); $content->setVariable("HINT_BB_UNDERLINE", gettext("underline")); $content->setVariable("LABEL_BB_STRIKETHROUGH", gettext("S")); $content->setVariable("HINT_BB_STRIKETHROUGH", gettext("strikethrough")); $content->setVariable("LABEL_BB_IMAGE", gettext("IMG")); $content->setVariable("HINT_BB_IMAGE", gettext("image")); $content->setVariable("LABEL_BB_URL", gettext("URL")); $content->setVariable("HINT_BB_URL", gettext("web link")); $content->setVariable("LABEL_BB_MAIL", gettext("MAIL")); $content->setVariable("HINT_BB_MAIL", gettext("email link")); if ($accessmergel) { $mailto = "mailto:'.SUPPORT_EMAIL.'?subject=KoaLA:%20Invalid%20Access%20Rights&body=" . rawurlencode("\nLink: " . get_current_URL() . "\nCreator: " . $creator->get_identifier() . "\n"); $content->setCurrentBlock("BLOCK_ACCESSMERGEL"); $content->setVariable("LABEL_ACCESSMERGEL", str_replace("%MAILTO", $mailto, gettext("There is a problem with the access settings. Please <a href=\"%MAILTO\">contact the support team</a> to fix it by setting the access rights again."))); $content->parse("BLOCK_ACCESSMERGEL"); } else { $access = \lms_weblog::get_access_descriptions($grp); if ((string) $grp->get_attribute("OBJ_TYPE") == "course") { $access_default = PERMISSION_PUBLIC; } else { $access_default = PERMISSION_PUBLIC_READONLY; if (is_object($weblog) && $creator->get_id() != \lms_steam::get_current_user()->get_id()) { $access[PERMISSION_PRIVATE_READONLY]["label"] = str_replace("%NAME", $creator->get_name(), $access[PERMISSION_PRIVATE_READONLY]["label"]); } else { $access[PERMISSION_PRIVATE_READONLY]["label"] = gettext("Only members can read and comment. Only you can post."); } } if (is_array($access)) { $content->setCurrentBlock("BLOCK_ACCESS"); foreach ($access as $key => $array) { if ($key != PERMISSION_UNDEFINED || isset($values) && (int) $values["access"] == PERMISSION_UNDEFINED) { $content->setCurrentBlock("ACCESS"); $content->setVariable("LABEL", $array["summary_short"] . ": " . $array["label"]); $content->setVariable("VALUE", $key); if (isset($values) && $key == (int) $values["access"] || empty($values) && $key == $access_default) { $content->setVariable("CHECK", "checked=\"checked\""); } $content->parse("ACCESS"); } } $content->parse("BLOCK_ACCESS"); } } $content->setVariable("BACKLINK", "<a href=\"{$backlink}\">" . gettext("back") . "</a>"); $rootlink = \lms_steam::get_link_to_root($grp); //var_dump($rootlink);die; $headline = array($rootlink[0], $rootlink[1], array("link" => $rootlink[1]["link"] . "communication/", "name" => gettext("Communication"))); if (isset($weblog) && is_object($weblog)) { $headline[] = array("link" => PATH_URL . "weblog/index/" . $weblog->get_id() . "/", "name" => $weblog->get_name()); } $headline[] = array("link" => "", "name" => $breadcrumbheader); //$portal->set_page_main( $headline, $content->get() ); //$portal->set_page_title( $pagetitle ); //return $portal->get_html(); $frameResponseObject->setHeadline($headline); $frameResponseObject->setTitle($pagetitle); $widget = new \Widgets\RawHtml(); $widget->setHtml($content->get()); $frameResponseObject->addWidget($widget); return $frameResponseObject; }
public function execute(\FrameResponseObject $frameResponseObject) { //$portal = \lms_portal::get_instance(); //$portal->initialize( GUEST_NOT_ALLOWED ); //$portal->set_guest_allowed( GUEST_NOT_ALLOWED ); $user = \lms_steam::get_current_user(); //$portal_user = $portal->get_user(); //$path = $request->getPath(); $current_semester = $this->params[1]; $group_course = \steam_factory::groupname_to_object($GLOBALS["STEAM"]->get_id(), "Courses." . $this->params[0] . "." . $this->params[1]); $course = new \koala_group_course($group_course); //$html_handler_course = new \koala_html_course($course); $group = $course; /*if ( ! $group instanceof koala_group ) throw new Exception( "Variable group not set." ); */ if (COURSE_PARTICIPANTS_STAFF_ONLY && !$group->is_admin($user)) { header("location:../"); exit; } if ($_SERVER["REQUEST_METHOD"] == "POST") { if (is_array($_POST["remove"])) { $id = key($_POST["remove"]); $member_to_kick = \steam_factory::username_to_object($GLOBALS["STEAM"]->get_id(), $id); $group->remove_member($member_to_kick); $frameResponseObject->setConfirmText(str_replace("%NAME", h($member_to_kick->get_attribute("USER_FIRSTNAME")) . " " . h($member_to_kick->get_attribute("USER_FULLNAME")), gettext("User %NAME successfully removed from group members."))); //$portal->set_confirmation( str_replace( "%NAME", h($member_to_kick->get_attribute( "USER_FIRSTNAME" ))." " . h($member_to_kick->get_attribute( "USER_FULLNAME" )), gettext( "User %NAME successfully removed from group members." ) ) ); // clear caches: $cache = get_cache_function($member_to_kick->get_name()); $cache->drop("lms_steam::user_get_groups", $member_to_kick->get_name(), TRUE); $cache->drop("lms_steam::user_get_groups", $member_to_kick->get_name(), FALSE); $cache->drop("lms_steam::user_get_profile", $member_to_kick->get_name()); $cache->drop("lms_portal::get_menu_html", $member_to_kick->get_name(), TRUE); $cache = get_cache_function($group->get_id()); $cache->drop("lms_steam::group_get_members", $group->get_id()); } } $cache = get_cache_function($group->get_id(), CACHE_LIFETIME_STATIC); switch (get_class($group)) { case "koala_group_course": $html_handler_group = new \koala_html_course($group); $html_handler_group->set_context("members"); $members = $cache->call("lms_steam::group_get_members", $group->steam_group_learners->get_id()); break; default: $html_handler_group = new \koala_html_group($group); $html_handler_group->set_context("members"); $members = $cache->call("lms_steam::group_get_members", $group->get_id()); break; } $is_admin = $group->is_admin($user); $content = \Course::getInstance()->loadTemplate("list_users.template.html"); //$content = new HTML_TEMPLATE_IT(); //$content->loadTemplateFile( PATH_TEMPLATES . "list_users.template.html" ); $is_member = $group->is_member($user); //echo "is_member? " . $is_member; $privacy_deny_participants = $group->get_attribute("GROUP_PRIVACY"); //echo "attribute: ''" . $privacy_deny_participants . "''"; if ($privacy_deny_participants == PERMISSION_GROUP_PRIVACY_DENY_PARTICIPANTS && !$is_member) { //echo "*** deny ***"; $content->setVariable("LABEL_PRIVACY_DENY_PARTICIPANTS", gettext("Participants are hidden.")); } else { //echo "*** permit ***"; $no_members = count($members); if ($no_members > 0) { switch (get_class($group)) { case "koala_group_course": $groupname = $group->get_course_id(); break; default: $groupname = $group->get_name(); break; } if (!USER_LIST_NO_PAGEING) { $pageIterator = \lms_portal::get_paginator(10, $no_members, "(" . str_replace("%NAME", h($groupname), gettext("%TOTAL members in %NAME")) . ")"); $content->setVariable("PAGEITERATOR", $pageIterator["html"]); $start = $pageIterator["startIndex"]; //$start = $portal->set_paginator( $content, 10, $no_members, "(" . str_replace( "%NAME", h($groupname), gettext( "%TOTAL members in %NAME" ) ) . ")" ); $end = $start + 10 > $no_members ? $no_members : $start + 10; $content->setVariable("LABEL_CONTACTS", gettext("Members") . " (" . str_replace(array("%a", "%z", "%s"), array($start + 1, $end, $no_members), gettext("%a-%z out of %s")) . ")"); } else { //if (count($members) > 10) { $content->setVariable("LABEL_CONTACTS", gettext("Members") . " (Anzahl " . count($members) . ")"); $content->setCurrentBlock("BLOCK_FILTER"); $content->setVariable("HELP_TEXT", "Benutzer lassen sich einfacher finden, indem Sie den Filter verwenden. Tippen Sie einfach einen Teil des Benutzernamen oder der Benutzerkennung in das Textfeld."); $content->setVariable('LABEL_FILTER', "<b>" . gettext('Filter') . "</b>"); $start = 0; $end = count($members); //TODO: identify get_filter_html if (COURSE_PARTICIPANTS_EXTENSIONS) { /* $extensions = $group->get_extensions(); $html = ""; foreach($extensions as $extension) { $html .= $extension->get_filter_html($portal, "filter_user", "extension_data"); } $content->setCurrentBlock("BLOCK_EXTENSION_FILTER"); $content->setVariable("EXTENSION_FILTER", $html); $content->parse("BLOCK_EXTENSION_FILTER"); }*/ $content->parse("BLOCK_FILTER"); //} } } $content->setCurrentBlock("BLOCK_CONTACT_LIST"); $content->setVariable("LABEL_NAME_POSITION", gettext("Name, position")); !COURSE_PARTICIPANTS_FACULTY_AND_FOCUS or $content->setVariable("LABEL_SUBJECT_AREA", gettext("Origin/Focus")); !COURSE_PARTICIPANTS_COMMUNICATION or $content->setVariable("LABEL_COMMUNICATION", gettext("Communication")); if (\lms_steam::is_koala_admin($user) || !COURSE_KOALAADMIN_ONLY && $is_admin) { !COURSE_PARTICIPANTSLIST_MANAGE or $content->setVariable("TH_MANAGE_CONTACT", gettext("Action")); } !COURSE_PARTICIPANTS_EXTENSIONS or $content->setVariable("TH_MANAGE_EXTENSIONS", "Status"); $content->setVariable("BEGIN_HTML_FORM", "<form method=\"POST\" action=\"\">"); $content->setVariable("END_HTML_FORM", "</form>"); for ($i = $start; $i < $end; $i++) { $member = $members[$i]; if ($member["USER_TRASHED"] === 1) { continue; } $content->setCurrentBlock("BLOCK_CONTACT"); $content->setVariable("CONTACT_LINK", PATH_URL . "user/" . h($member["OBJ_NAME"]) . "/"); $icon_link = $member["OBJ_ICON"] == 0 ? PATH_STYLE . "images/anonymous.jpg" : PATH_URL . "download/image/" . h($member["OBJ_ICON"]) . "/30/40"; $content->setVariable("CONTACT_IMAGE", $icon_link); $title = !empty($member["USER_ACADEMIC_TITLE"]) ? h($member["USER_ACADEMIC_TITLE"]) . " " : ""; $content->setVariable("CONTACT_NAME", $title . h($member["USER_FIRSTNAME"]) . " " . h($member["USER_FULLNAME"])); !COURSE_PARTICIPANTS_COMMUNICATION or $content->setVariable("LINK_SEND_MESSAGE", PATH_URL . "messages_write.php?to=" . h($member["OBJ_NAME"])); !COURSE_PARTICIPANTS_COMMUNICATION or $content->setVariable("LABEL_MESSAGE", gettext("Message")); !COURSE_PARTICIPANTS_COMMUNICATION or $content->setVariable("LABEL_SEND", gettext("Send")); !COURSE_PARTICIPANTS_FACULTY_AND_FOCUS or $content->setVariable("FACULTY_AND_FOCUS", h($member["USER_PROFILE_FACULTY"])); if (\lms_steam::is_koala_admin($user) || !COURSE_KOALAADMIN_ONLY && $is_admin) { !COURSE_PARTICIPANTSLIST_MANAGE or $content->setVariable("TD_MANAGE_CONTACT", "<td align=\"center\"><input type=\"submit\" name=\"remove[" . h($member["OBJ_NAME"]) . "]\" value=\"" . gettext("Remove") . "\"/></td>"); } if (COURSE_PARTICIPANTS_EXTENSIONS) { $extensions = $group->get_extensions(); $result = ""; foreach ($extensions as $extension) { $result .= $extension->get_member_info(steam_factory::get_user($GLOBALS["STEAM"]->get_id(), $member["OBJ_NAME"]), $group); } $content->setVariable("EXTENSIONS_DATA", $result); } $member_desc = empty($member["OBJ_DESC"]) ? "student" : $member["OBJ_DESC"]; $status = secure_gettext($member_desc); $content->setVariable("OBJ_DESC", h($status) . " " . ($i + 1)); $content->parse("BLOCK_CONTACT"); } $content->parse("BLOCK_CONTACT_LIST"); } else { $content->setVariable("LABEL_NO_MEMBERS", gettext("No members found.")); } $html_handler_group->set_html_left($content->get()); $frameResponseObject->setHeadline($html_handler_group->get_headline()); $widget = new \Widgets\RawHtml(); $widget->setHtml($html_handler_group->get_html()); $frameResponseObject->addWidget($widget); //$portal->set_page_main( $html_handler_group->get_headline(), $html_handler_group->get_html() , "" ); return $frameResponseObject; } }