protected function getItems($a_content_obj, $a_group_obj)
 {
     global $ilUser, $tree;
     $counter = 0;
     $items = ilUtil::_getObjectsByOperations($this->type, 'write', $ilUser->getId(), -1);
     $items_obj_id = array();
     $items_ids = array();
     foreach ($items as $ref_id) {
         $obj_id = ilObject::_lookupObjId($ref_id);
         $items_ids[$obj_id] = $ref_id;
         $items_obj_id[] = $obj_id;
     }
     $items_obj_id = ilUtil::_sortIds($items_obj_id, 'object_data', 'title', 'obj_id');
     $assigned_ids = array();
     $assigned = $a_group_obj->getAssignedItems();
     if ($assigned) {
         foreach ($assigned as $item) {
             $assigned_ids[] = $item['target_ref_id'];
         }
     }
     $data = array();
     foreach ($items_obj_id as $obj_id) {
         $item_id = $items_ids[$obj_id];
         if ($tree->checkForParentType($item_id, 'adm')) {
             continue;
         }
         $obj_id = ilObject::_lookupObjId($item_id);
         $data[] = array('id' => $item_id, 'title' => ilObject::_lookupTitle($obj_id), 'description' => ilObject::_lookupDescription($obj_id), 'path' => $this->__formatPath($tree->getPathFull($item_id)), 'assigned' => in_array($item_id, $assigned_ids));
     }
     $this->setData($data);
 }
Esempio n. 2
0
 /**
  * test rbac_ua 
  */
 public function testRbacUA()
 {
     global $rbacreview, $rbacadmin;
     $obj = ilUtil::_getObjectsByOperations('crs', 'join');
     $rbacreview->assignedUsers(4);
     $rbacreview->assignedRoles(6);
 }
 function check()
 {
     global $ilObjDataCache, $ilUser;
     include_once './Services/LinkChecker/classes/class.ilLinkChecker.php';
     foreach (ilUtil::_getObjectsByOperations('webr', 'write', $ilUser->getId(), -1) as $node) {
         if (!is_object($tmp_webr =& ilObjectFactory::getInstanceByRefId($node, false))) {
             continue;
         }
         $tmp_webr->initLinkResourceItemsObject();
         // Set all link to valid. After check invalid links will be set to invalid
         $link_checker =& new ilLinkChecker($this->db);
         $link_checker->setMailStatus(true);
         $link_checker->setCheckPeriod($this->__getCheckPeriod());
         $link_checker->setObjId($tmp_webr->getId());
         $tmp_webr->items_obj->updateValidByCheck($this->__getCheckPeriod());
         foreach ($link_checker->checkWebResourceLinks() as $invalid) {
             $tmp_webr->items_obj->readItem($invalid['page_id']);
             $tmp_webr->items_obj->setActiveStatus(false);
             $tmp_webr->items_obj->setValidStatus(false);
             $tmp_webr->items_obj->setDisableCheckStatus(true);
             $tmp_webr->items_obj->setLastCheckDate(time());
             $tmp_webr->items_obj->update(false);
         }
         $tmp_webr->items_obj->updateLastCheck($this->__getCheckPeriod());
         foreach ($link_checker->getLogMessages() as $message) {
             $this->log->write($message);
         }
     }
     return true;
 }
 public function run()
 {
     global $ilLog, $ilUser, $ilDB;
     $status = ilCronJobResult::STATUS_NO_ACTION;
     include_once './Services/LinkChecker/classes/class.ilLinkChecker.php';
     $counter = 0;
     foreach (ilUtil::_getObjectsByOperations('webr', 'write', $ilUser->getId(), -1) as $node) {
         if (!is_object($tmp_webr = ilObjectFactory::getInstanceByRefId($node, false))) {
             continue;
         }
         $tmp_webr->initLinkResourceItemsObject();
         // Set all link to valid. After check invalid links will be set to invalid
         $link_checker =& new ilLinkChecker($ilDB);
         $link_checker->setMailStatus(true);
         $link_checker->setCheckPeriod($this->__getCheckPeriod());
         $link_checker->setObjId($tmp_webr->getId());
         $tmp_webr->items_obj->updateValidByCheck($this->__getCheckPeriod());
         foreach ($link_checker->checkWebResourceLinks() as $invalid) {
             $tmp_webr->items_obj->readItem($invalid['page_id']);
             $tmp_webr->items_obj->setActiveStatus(false);
             $tmp_webr->items_obj->setValidStatus(false);
             $tmp_webr->items_obj->setDisableCheckStatus(true);
             $tmp_webr->items_obj->setLastCheckDate(time());
             $tmp_webr->items_obj->update(false);
         }
         $tmp_webr->items_obj->updateLastCheck($this->__getCheckPeriod());
         foreach ($link_checker->getLogMessages() as $message) {
             $ilLog->write($message);
             $counter++;
         }
     }
     if ($counter) {
         $status = ilCronJobResult::STATUS_OK;
     }
     $result = new ilCronJobResult();
     $result->setStatus($status);
     return $result;
 }
 /**
  * Returns the available question pools for the active user
  *
  * @return array The available question pools
  * @access public
  */
 function _getAvailableQuestionpools($use_object_id = FALSE, $could_be_offline = FALSE, $showPath = FALSE, $permission = "read")
 {
     global $ilUser;
     global $ilDB;
     $result_array = array();
     $qpls = ilUtil::_getObjectsByOperations("spl", $permission, $ilUser->getId(), -1);
     $titles = ilObject::_prepareCloneSelection($qpls, "spl", $showPath);
     $allqpls = array();
     $result = $ilDB->query("SELECT obj_fi, isonline FROM svy_qpl");
     while ($row = $ilDB->fetchAssoc($result)) {
         $allqpls[$row['obj_fi']] = $row['isonline'];
     }
     foreach ($qpls as $ref_id) {
         $obj_id = ilObject::_lookupObjectId($ref_id);
         if ($could_be_offline || $allqpls[$obj_id] == 1) {
             if ($use_object_id) {
                 $result_array[$obj_id] = $titles[$ref_id];
             } else {
                 $result_array[$ref_id] = $titles[$ref_id];
             }
         }
     }
     return $result_array;
 }
 /**
 * Returns the available question pools for the active user
 *
 * @return array The available question pools
 * @access public
 */
 function &_getAvailableQuestionpools($use_object_id = FALSE, $equal_points = FALSE, $could_be_offline = FALSE, $showPath = FALSE, $with_questioncount = FALSE, $permission = "read", $usr_id = "")
 {
     global $ilUser;
     global $ilDB;
     $result_array = array();
     $permission = strlen($permission) == 0 ? "read" : $permission;
     $qpls = ilUtil::_getObjectsByOperations("qpl", $permission, strlen($usr_id) ? $usr_id : $ilUser->getId(), -1);
     $obj_ids = array();
     foreach ($qpls as $ref_id) {
         $obj_id = ilObject::_lookupObjId($ref_id);
         $obj_ids[$ref_id] = $obj_id;
     }
     $titles = ilObject::_prepareCloneSelection($qpls, "qpl");
     if (count($obj_ids)) {
         $in = $ilDB->in('object_data.obj_id', $obj_ids, false, 'integer');
         if ($could_be_offline) {
             $result = $ilDB->query("SELECT qpl_questionpool.*, object_data.title FROM qpl_questionpool, object_data WHERE " . "qpl_questionpool.obj_fi = object_data.obj_id AND {$in} ORDER BY object_data.title");
         } else {
             $result = $ilDB->queryF("SELECT qpl_questionpool.*, object_data.title FROM qpl_questionpool, object_data WHERE " . "qpl_questionpool.obj_fi = object_data.obj_id AND {$in} AND qpl_questionpool.isonline = %s " . "ORDER BY object_data.title", array('text'), array(1));
         }
         while ($row = $ilDB->fetchAssoc($result)) {
             $add = TRUE;
             if ($equal_points) {
                 if (!ilObjQuestionPool::_hasEqualPoints($row["obj_fi"])) {
                     $add = FALSE;
                 }
             }
             if ($add) {
                 $ref_id = array_search($row["obj_fi"], $obj_ids);
                 $title = $showPath ? $titles[$ref_id] : $row["title"];
                 if ($with_questioncount) {
                     $title .= " [" . $row["questioncount"] . " " . ($row["questioncount"] == 1 ? $this->lng->txt("ass_question") : $this->lng->txt("assQuestions")) . "]";
                 }
                 if ($use_object_id) {
                     $result_array[$row["obj_fi"]] = array('qpl_id' => $row['obj_fi'], 'qpl_title' => $row['title'], "title" => $title, "count" => $row["questioncount"]);
                 } else {
                     $result_array[$ref_id] = array('qpl_id' => $row['obj_fi'], 'qpl_title' => $row['title'], "title" => $title, "count" => $row["questioncount"]);
                 }
             }
         }
     }
     return $result_array;
 }
Esempio n. 7
0
 /**
 * Returns the available tests for the active user
 *
 * @return array The available tests
 * @access public
 */
 function &_getAvailableTests($use_object_id = FALSE)
 {
     global $ilUser;
     global $ilDB;
     $result_array = array();
     $tests = ilUtil::_getObjectsByOperations("tst", "write", $ilUser->getId(), -1);
     if (count($tests)) {
         $titles = ilObject::_prepareCloneSelection($tests, "tst");
         foreach ($tests as $ref_id) {
             if ($use_object_id) {
                 $obj_id = ilObject::_lookupObjId($ref_id);
                 $result_array[$obj_id] = $titles[$ref_id];
             } else {
                 $result_array[$ref_id] = $titles[$ref_id];
             }
         }
     }
     return $result_array;
 }
 /**
  * csv export of imported remote courses
  *
  * @access protected
  * @return
  */
 protected function exportImported()
 {
     global $ilObjDataCache, $ilUser;
     // :TODO: mind resource type and move to ilRemoteObjectBase...
     $rcourses = ilUtil::_getObjectsByOperations('rcrs', 'visible', $ilUser->getId(), -1);
     // Read participants
     include_once './Modules/RemoteCourse/classes/class.ilObjRemoteCourse.php';
     include_once './Services/WebServices/ECS/classes/class.ilECSCommunityReader.php';
     try {
         $reader = ilECSCommunityReader::_getInstance();
     } catch (ilECSConnectorException $e) {
         $reader = null;
     }
     // read obj_ids
     $ilObjDataCache->preloadReferenceCache($rcourses);
     $obj_ids = array();
     foreach ($rcourses as $rcrs_ref_id) {
         $obj_id = $ilObjDataCache->lookupObjId($rcrs_ref_id);
         $obj_ids[$obj_id] = $obj_id;
     }
     include_once 'Services/Utilities/classes/class.ilCSVWriter.php';
     $writer = new ilCSVWriter();
     $writer->addColumn($this->lng->txt('title'));
     $writer->addColumn($this->lng->txt('description'));
     $writer->addColumn($this->lng->txt('ecs_imported_from'));
     $writer->addColumn($this->lng->txt('ecs_field_courseID'));
     $writer->addColumn($this->lng->txt('ecs_field_term'));
     $writer->addColumn($this->lng->txt('ecs_field_lecturer'));
     $writer->addColumn($this->lng->txt('ecs_field_courseType'));
     $writer->addColumn($this->lng->txt('ecs_field_semester_hours'));
     $writer->addColumn($this->lng->txt('ecs_field_credits'));
     $writer->addColumn($this->lng->txt('ecs_field_room'));
     $writer->addColumn($this->lng->txt('ecs_field_cycle'));
     $writer->addColumn($this->lng->txt('ecs_field_begin'));
     $writer->addColumn($this->lng->txt('ecs_field_end'));
     $writer->addColumn($this->lng->txt('last_update'));
     include_once './Services/WebServices/ECS/classes/class.ilECSDataMappingSettings.php';
     $settings = ilECSDataMappingSettings::_getInstance();
     foreach ($obj_ids as $obj_id) {
         include_once './Services/AdvancedMetaData/classes/class.ilAdvancedMDValues.php';
         $values = ilAdvancedMDValues::_getValuesByObjId($obj_id);
         $writer->addRow();
         $writer->addColumn(ilObject::_lookupTitle($obj_id));
         $writer->addColumn(ilObject::_lookupDescription($obj_id));
         $mid = ilObjRemoteCourse::_lookupMID($obj_id);
         if ($reader and $participant = $reader->getParticipantByMID($mid)) {
             $writer->addColumn($participant->getParticipantName());
         }
         $field = $settings->getMappingByECSName(ilECSDataMappingSetting::MAPPING_IMPORT_RCRS, 'courseID');
         $writer->addColumn(isset($values[$field]) ? $values[$field] : '');
         $field = $settings->getMappingByECSName(ilECSDataMappingSetting::MAPPING_IMPORT_RCRS, 'term');
         $writer->addColumn(isset($values[$field]) ? $values[$field] : '');
         $field = $settings->getMappingByECSName(ilECSDataMappingSetting::MAPPING_IMPORT_RCRS, 'lecturer');
         $writer->addColumn(isset($values[$field]) ? $values[$field] : '');
         $field = $settings->getMappingByECSName(ilECSDataMappingSetting::MAPPING_IMPORT_RCRS, 'courseType');
         $writer->addColumn(isset($values[$field]) ? $values[$field] : '');
         $field = $settings->getMappingByECSName(ilECSDataMappingSetting::MAPPING_IMPORT_RCRS, 'semester_hours');
         $writer->addColumn(isset($values[$field]) ? $values[$field] : '');
         $field = $settings->getMappingByECSName(ilECSDataMappingSetting::MAPPING_IMPORT_RCRS, 'credits');
         $writer->addColumn(isset($values[$field]) ? $values[$field] : '');
         $field = $settings->getMappingByECSName(ilECSDataMappingSetting::MAPPING_IMPORT_RCRS, 'room');
         $writer->addColumn(isset($values[$field]) ? $values[$field] : '');
         $field = $settings->getMappingByECSName(ilECSDataMappingSetting::MAPPING_IMPORT_RCRS, 'cycle');
         $writer->addColumn(isset($values[$field]) ? $values[$field] : '');
         $field = $settings->getMappingByECSName(ilECSDataMappingSetting::MAPPING_IMPORT_RCRS, 'begin');
         $writer->addColumn(isset($values[$field]) ? ilFormat::formatUnixTime($values[$field], true) : '');
         $field = $settings->getMappingByECSName(ilECSDataMappingSetting::MAPPING_IMPORT_RCRS, 'end');
         $writer->addColumn(isset($values[$field]) ? ilFormat::formatUnixTime($values[$field], true) : '');
         $writer->addColumn($ilObjDataCache->lookupLastUpdate($obj_id));
     }
     ilUtil::deliverData($writer->getCSVString(), date("Y_m_d") . "_ecs_import.csv", "text/csv");
 }
Esempio n. 9
0
 /**
 * Calculates the data for the output of the questionblock browser
 *
 * @access public
 */
 function getQuestionblocksTable($arrFilter)
 {
     global $ilUser, $ilDB;
     $where = "";
     if (is_array($arrFilter)) {
         if (array_key_exists('title', $arrFilter) && strlen($arrFilter['title'])) {
             $where .= " AND " . $ilDB->like('svy_qblk.title', 'text', "%%" . $arrFilter['title'] . "%%");
         }
     }
     $query_result = $ilDB->query("SELECT svy_qblk.*, svy_svy.obj_fi FROM svy_qblk , svy_qblk_qst, svy_svy WHERE " . "svy_qblk.questionblock_id = svy_qblk_qst.questionblock_fi AND svy_svy.survey_id = svy_qblk_qst.survey_fi " . "{$where} GROUP BY svy_qblk.questionblock_id, svy_qblk.title, svy_qblk.show_questiontext,  svy_qblk.show_blocktitle, " . "svy_qblk.owner_fi, svy_qblk.tstamp, svy_svy.obj_fi");
     $rows = array();
     if ($query_result->numRows()) {
         $survey_ref_ids = ilUtil::_getObjectsByOperations("svy", "write");
         $surveytitles = array();
         foreach ($survey_ref_ids as $survey_ref_id) {
             $survey_id = ilObject::_lookupObjId($survey_ref_id);
             $surveytitles[$survey_id] = ilObject::_lookupTitle($survey_id);
         }
         while ($row = $ilDB->fetchAssoc($query_result)) {
             $questions_array =& $this->getQuestionblockQuestions($row["questionblock_id"]);
             $counter = 1;
             foreach ($questions_array as $key => $value) {
                 $questions_array[$key] = "{$counter}. {$value}";
                 $counter++;
             }
             if (strlen($surveytitles[$row["obj_fi"]])) {
                 $rows[$row["questionblock_id"]] = array("questionblock_id" => $row["questionblock_id"], "title" => $row["title"], "svy" => $surveytitles[$row["obj_fi"]], "contains" => join($questions_array, ", "), "owner" => $row["owner_fi"]);
             }
         }
     }
     return $rows;
 }
Esempio n. 10
0
 /**
  * Assign users as course members
  *
  */
 function assignUsersAsCourseMembers($a_user_login_base = "learner", $a_start = 1, $a_end = 100)
 {
     global $ilDB;
     $this->log("Assigning Course Members");
     $set = $ilDB->query("SELECT usr_id, login FROM usr_data WHERE " . " login LIKE " . $ilDB->quote($a_user_login_base . "%", "text"));
     $user_ids = array();
     while ($rec = $ilDB->fetchAssoc($set)) {
         $rest = substr($rec["login"], strlen($a_user_login_base));
         if (is_numeric($rest) && ((int) $rest >= $a_start && (int) $rest <= $a_end)) {
             $user_ids[] = $rec["usr_id"];
         }
     }
     $cnt = 1;
     $crs_ref_ids = ilUtil::_getObjectsByOperations("crs", "read", 0, $limit = 1000000);
     include_once "./Modules/Course/classes/class.ilCourseParticipants.php";
     foreach ($crs_ref_ids as $r) {
         $crs_id = ilObject::_lookupObjId($r);
         $mem_obj = ilCourseParticipants::_getInstanceByObjId($crs_id);
         foreach ($user_ids as $u) {
             $this->log("{$cnt}: add user {$u} as member to course " . $crs_id);
             $mem_obj->add($u, 1);
             $cnt++;
         }
     }
 }
Esempio n. 11
0
 public function testTreeTrash()
 {
     global $tree;
     $obj = new ilObject();
     $obj->setType("xxx");
     $obj->setTitle("TestObject");
     $obj->setDescription("TestDescription");
     $obj->setImportId("imp_44");
     $obj->create();
     $obj->createReference();
     $id = $obj->getId();
     $ref_id = $obj->getRefId();
     $obj = new ilObject($ref_id);
     $obj->putInTree(ROOT_FOLDER_ID);
     $obj->createRoleFolder();
     $obj->setPermissions(ROOT_FOLDER_ID);
     if ($tree->isInTree($ref_id)) {
         $value .= "tree1-";
     }
     if (ilObject::_hasUntrashedReference($id)) {
         $value .= "tree2-";
     }
     // isSaved() uses internal cache!
     $tree->useCache(false);
     $tree->saveSubTree($ref_id, true);
     if ($tree->isDeleted($ref_id)) {
         $value .= "tree3-";
     }
     if ($tree->isSaved($ref_id)) {
         $value .= "tree4-";
     }
     if (ilObject::_isInTrash($ref_id)) {
         $value .= "tree5-";
     }
     if (!ilObject::_hasUntrashedReference($id)) {
         $value .= "tree6-";
     }
     $saved_tree = new ilTree(-(int) $ref_id);
     $node_data = $saved_tree->getNodeData($ref_id);
     $saved_tree->deleteTree($node_data);
     if (!ilObject::_isInTrash($ref_id)) {
         $value .= "tree7-";
     }
     $obs = ilUtil::_getObjectsByOperations("cat", "read");
     foreach ($obs as $ob) {
         if (ilObject::_lookupType(ilObject::_lookupObjId($ob)) != "cat") {
             $value .= "nocat-";
         }
     }
     $obj->delete();
     $this->assertEquals("tree1-tree2-tree3-tree4-tree5-tree6-tree7-", $value);
 }
 /**
  * Check if there is any source object
  * @return bool
  */
 protected function sourceExists()
 {
     global $ilUser;
     return (bool) ilUtil::_getObjectsByOperations($this->getType(), 'copy', $ilUser->getId(), 1);
 }