/** * */ protected function uninstallCustom() { /** * @var $ilDB ilDB */ global $ilDB; if ($ilDB->tableExists('rep_robj_xavc_data')) { $ilDB->dropTable('rep_robj_xavc_data'); } if ($ilDB->tableExists('rep_robj_xavc_settings')) { $ilDB->dropTable('rep_robj_xavc_settings'); } if ($ilDB->tableExists('rep_robj_xavc_users')) { $ilDB->dropTable('rep_robj_xavc_users'); } if ($ilDB->tableExists('rep_robj_xavc_members')) { $ilDB->dropTable('rep_robj_xavc_members'); } if ($ilDB->tableExists('rep_robj_xavc_gloperm')) { $ilDB->dropTable('rep_robj_xavc_gloperm'); } if ($ilDB->sequenceExists('rep_robj_xavc_gloperm')) { $ilDB->dropSequence('rep_robj_xavc_gloperm'); } foreach (array('cb_extended', 'cb_simple') as $settings_tpl) { $ilDB->manipulateF('DELETE FROM adm_settings_template WHERE type = %s AND title = %s', array('text', 'text'), array('xavc', $settings_tpl)); } foreach (array('il_xavc_admin', 'il_xavc_member') as $tpl) { $obj_ids = ilObject::_getIdsForTitle($tpl, 'rolt'); foreach ($obj_ids as $obj_id) { $obj = ilObjectFactory::getInstanceByObjId($obj_id, false); if (!$obj instanceof ilObjRoleTemplate) { continue; } $obj->delete(); } } }
static final function _getIdsForTitle($title, $type = '', $partialmatch = false) { return parent::_getIdsForTitle($title, $type, $partialmatch); }
function mailToRoleObject() { global $rbacreview; $obj_ids = ilObject::_getIdsForTitle($this->object->getTitle(), $this->object->getType()); if (count($obj_ids) > 1) { $_SESSION['mail_roles'][] = '#il_role_' . $this->object->getId(); } else { $_SESSION['mail_roles'][] = $rbacreview->getRoleMailboxAddress($this->object->getId()); } require_once 'Services/Mail/classes/class.ilMailFormCall.php'; $script = ilMailFormCall::getRedirectTarget($this, 'userassignment', array(), array('type' => 'role')); ilUtil::redirect($script); }
function mailMembersObject() { global $rbacreview, $ilErr, $ilAccess, $ilObjDataCache, $ilias; include_once './Services/AccessControl/classes/class.ilObjRole.php'; $this->lng->loadLanguageModule('mail'); if (!isset($_GET['returned_from_mail'])) { ilUtil::sendInfo($this->lng->txt('mail_select_recipients')); } $is_admin = (bool) $ilAccess->checkAccess("write", "", $this->object->getRefId()); if (!$is_admin && $this->object->getMailToMembersType() != ilCourseConstants::MAIL_ALLOWED_ALL) { $ilErr->raiseError($this->lng->txt("msg_no_perm_read"), $ilErr->MESSAGE); } $this->setSubTabs('members'); $this->tabs_gui->setTabActive('members'); $this->tabs_gui->setSubTabActive('mail_members'); $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.mail_members.html', 'Services/Contact'); require_once 'Services/Mail/classes/class.ilMailFormCall.php'; $this->tpl->setVariable("MAILACTION", ilMailFormCall::getLinkTarget($this, 'membersGallery', array(), array('type' => 'role', 'sig' => $this->createMailSignature()))); $this->tpl->setVariable("SELECT_ACTION", 'ilias.php?baseClass=ilmailgui&view=my_courses&search_crs=' . $this->object->getId()); $this->tpl->setVariable("MAIL_SELECTED", $this->lng->txt('send_mail_selected')); $this->tpl->setVariable("MAIL_MEMBERS", $this->lng->txt('send_mail_members')); $this->tpl->setVariable("MAIL_TUTOR", $this->lng->txt('send_mail_tutors')); $this->tpl->setVariable("MAIL_ADMIN", $this->lng->txt('send_mail_admins')); $this->tpl->setVariable("IMG_ARROW", ilUtil::getImagePath('arrow_downright.svg')); $this->tpl->setVariable("OK", $this->lng->txt('next')); // Display roles with user friendly mailbox addresses $role_ids = $rbacreview->getRolesOfRoleFolder($this->object->getRefId(), false); // Sort by relevance $sorted_role_ids = array(); $counter = 3; foreach ($role_ids as $role_id) { switch (substr(ilObject::_lookupTitle($role_id), 0, 8)) { case 'il_crs_a': $sorted_role_ids[2] = $role_id; break; case 'il_crs_t': $sorted_role_ids[1] = $role_id; break; case 'il_crs_m': $sorted_role_ids[0] = $role_id; break; default: $sorted_role_ids[$counter++] = $role_id; break; } } ksort($sorted_role_ids, SORT_NUMERIC); foreach ((array) $sorted_role_ids as $role_id) { $this->tpl->setCurrentBlock("mailbox_row"); $role_addr = $rbacreview->getRoleMailboxAddress($role_id); // check if role title is unique. if not force use pear mail for roles $ids_for_role_title = ilObject::_getIdsForTitle(ilObject::_lookupTitle($role_id), 'role'); if (count($ids_for_role_title) >= 2) { $ilias->setSetting('pear_mail_enable', 1); } $this->tpl->setVariable("CHECK_MAILBOX", ilUtil::formCheckbox(1, 'roles[]', htmlspecialchars($role_addr))); if (ilMail::_usePearMail() && substr($role_addr, 0, 4) != '#il_') { // if pear mail is enabled, mailbox addresses are already localized in the language of the user $this->tpl->setVariable("MAILBOX", $role_addr); } else { // if pear mail is not enabled, we need to localize mailbox addresses in the language of the user $this->tpl->setVariable("MAILBOX", ilObjRole::_getTranslation($ilObjDataCache->lookupTitle($role_id)) . " (" . $role_addr . ")"); } $this->tpl->parseCurrentBlock(); } }
/** * Form for mail to group members */ function mailMembersObject() { global $rbacreview, $ilObjDataCache, $ilias; include_once './Services/AccessControl/classes/class.ilObjRole.php'; $this->lng->loadLanguageModule('mail'); if (!isset($_GET['returned_from_mail'])) { ilUtil::sendInfo($this->lng->txt('mail_select_recipients')); } $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.mail_members.html', 'Services/Contact'); $this->setSubTabs('members'); $this->tabs_gui->setTabActive('members'); require_once 'Services/Mail/classes/class.ilMailFormCall.php'; $this->tpl->setVariable("MAILACTION", ilMailFormCall::getLinkTarget($this, 'mailMembers', array(), array('type' => 'role', 'sig' => $this->createMailSignature()))); $this->tpl->setVariable("IMG_ARROW", ilUtil::getImagePath('arrow_downright.png')); $this->tpl->setVariable("TXT_MARKED_ENTRIES", $this->lng->txt('marked_entries')); $this->tpl->setVariable("OK", $this->lng->txt('next')); // Get role mailbox addresses $role_folder = $rbacreview->getRoleFolderOfObject($this->object->getRefId()); $role_ids = $rbacreview->getRolesOfRoleFolder($role_folder['ref_id'], false); $role_addrs = array(); // Sort by relevance $sorted_role_ids = array(); $counter = 2; foreach ($role_ids as $role_id) { switch (substr(ilObject::_lookupTitle($role_id), 0, 8)) { case 'il_grp_a': $sorted_role_ids[1] = $role_id; break; case 'il_grp_m': $sorted_role_ids[0] = $role_id; break; default: $sorted_role_ids[$counter++] = $role_id; break; } } ksort($sorted_role_ids, SORT_NUMERIC); foreach ((array) $sorted_role_ids as $role_id) { $this->tpl->setCurrentBlock("mailbox_row"); $role_addr = $rbacreview->getRoleMailboxAddress($role_id); // check if role title is unique. if not force use pear mail for roles $ids_for_role_title = ilObject::_getIdsForTitle(ilObject::_lookupTitle($role_id), 'role'); if (count($ids_for_role_title) >= 2) { $ilias->setSetting('pear_mail_enable', 1); } $this->tpl->setVariable("CHECK_MAILBOX", ilUtil::formCheckbox(1, 'roles[]', htmlspecialchars($role_addr))); if (ilMail::_usePearMail()) { // if pear mail is enabled, mailbox addresses are already localized in the language of the user $this->tpl->setVariable("MAILBOX", $role_addr); } else { // if pear mail is not enabled, we need to localize mailbox addresses in the language of the user $this->tpl->setVariable("MAILBOX", ilObjRole::_getTranslation($ilObjDataCache->lookupTitle($role_id)) . " (" . $role_addr . ")"); } $this->tpl->parseCurrentBlock(); } }
public function testSetGetLookup() { global $ilUser; $obj = new ilObject(); $obj->setType(""); // otherwise type check will fail $obj->setTitle("TestObject"); $obj->setDescription("TestDescription"); $obj->setImportId("imp_44"); $obj->create(); $obj->createReference(); $id = $obj->getId(); $ref_id = $obj->getRefId(); $obj = new ilObject($id, false); if ($obj->getType() == "") { $value .= "sg1-"; } if ($obj->getTitle() == "TestObject") { $value .= "sg2-"; } if ($obj->getDescription() == "TestDescription") { $value .= "sg3-"; } if ($obj->getImportId() == "imp_44") { $value .= "sg4-"; } if ($obj->getOwner() == $ilUser->getId()) { $value .= "sg5-"; } $obj = new ilObject($ref_id); if ($obj->getTitle() == "TestObject") { $value .= "sg6-"; } if ($obj->getCreateDate() == ($lu = $obj->getLastUpdateDate())) { $value .= "sg7-"; } $obj->setTitle("TestObject2"); sleep(2); // we want a different date here... $obj->update(); $obj = new ilObject($ref_id); if ($lu != ($lu2 = $obj->getLastUpdateDate())) { $value .= "up1-"; } if ($obj->getTitle() == "TestObject2") { $value .= "up2-"; } if ($id == ilObject::_lookupObjIdByImportId("imp_44")) { $value .= "lu1-"; } if ($ilUser->getFullname() == ilObject::_lookupOwnerName(ilObject::_lookupOwner($id))) { $value .= "lu2-"; } if (ilObject::_lookupTitle($id) == "TestObject2") { $value .= "lu3-"; } if (ilObject::_lookupDescription($id) == "TestDescription") { $value .= "lu4-"; } if (ilObject::_lookupLastUpdate($id) == $lu2) { $value .= "lu5-"; } if (ilObject::_lookupObjId($ref_id) == $id) { $value .= "lu6-"; } if (ilObject::_lookupType($id) == "") { $value .= "lu7-"; } if (ilObject::_lookupObjectId($ref_id) == $id) { $value .= "lu8-"; } $ar = ilObject::_getAllReferences($id); if (is_array($ar) && count($ar) == 1 && $ar[$ref_id] == $ref_id) { $value .= "lu9-"; } $ids = ilObject::_getIdsForTitle("TestObject2"); foreach ($ids as $i) { if ($i == $id) { $value .= "lu10-"; } } $obs = ilObject::_getObjectsByType("usr"); foreach ($obs as $ob) { if ($ob["obj_id"] == $ilUser->getId()) { $value .= "lu11-"; } } $d1 = ilObject::_lookupDeletedDate($ref_id); ilObject::_setDeletedDate($ref_id); $d2 = ilObject::_lookupDeletedDate($ref_id); ilObject::_resetDeletedDate($ref_id); $d3 = ilObject::_lookupDeletedDate($ref_id); if ($d1 != $d2 && $d1 == $d3 && $d3 == null) { $value .= "dd1-"; } $obj->delete(); $this->assertEquals("sg1-sg2-sg3-sg4-sg5-sg6-sg7-up1-up2-" . "lu1-lu2-lu3-lu4-lu5-lu6-lu7-lu8-lu9-lu10-lu11-dd1-", $value); }
function getParticipants() { if (count($this->arrFilter)) { $filteredParticipants = array(); $courseids = array(); $groupids = array(); global $ilDB; if (array_key_exists('group', $this->arrFilter)) { $ids = ilObject::_getIdsForTitle($this->arrFilter['group'], 'grp', true); $groupids = array_merge($groupids, $ids); } if (array_key_exists('course', $this->arrFilter)) { $ids = ilObject::_getIdsForTitle($this->arrFilter['course'], 'crs', true); $courseids = array_merge($courseids, $ids); } foreach ($this->participants as $active_id => $participant) { $remove = FALSE; if (array_key_exists('name', $this->arrFilter)) { if (!(strpos(strtolower($participant->getName()), strtolower($this->arrFilter['name'])) !== FALSE)) { $remove = TRUE; } } if (!$remove) { if (array_key_exists('group', $this->arrFilter)) { include_once "./Services/Membership/classes/class.ilParticipants.php"; $groups = ilParticipants::_getMembershipByType($participant->getUserID(), "grp"); $foundfilter = FALSE; if (count(array_intersect($groupids, $groups))) { $foundfilter = TRUE; } if (!$foundfilter) { $remove = TRUE; } } } if (!$remove) { if (array_key_exists('course', $this->arrFilter)) { include_once "./Services/Membership/classes/class.ilParticipants.php"; $courses = ilParticipants::_getMembershipByType($participant->getUserID(), "crs"); $foundfilter = FALSE; if (count(array_intersect($courseids, $courses))) { $foundfilter = TRUE; } if (!$foundfilter) { $remove = TRUE; } } } if (!$remove) { if (array_key_exists('active_id', $this->arrFilter)) { if ($active_id != $this->arrFilter['active_id']) { $remove = TRUE; } } } if (!$remove) { $filteredParticipants[$active_id] = $participant; } } return $filteredParticipants; } else { return $this->participants; } }