示例#1
0
 public function resolve(ResourceLocator $locator)
 {
     if ($locator->hasResourceId()) {
         $context = Claro_Context::getCurrentContext();
         $context[CLARO_CONTEXT_COURSE] = $locator->getCourseId();
         if ($locator->inGroup()) {
             $context[CLARO_CONTEXT_GROUP] = $locator->getGroupId();
         }
         $path = get_path('coursesRepositorySys') . claro_get_course_path($locator->getCourseId());
         // in a group
         if ($locator->inGroup()) {
             $groupData = claro_get_group_data($context);
             $path .= '/group/' . $groupData['directory'];
             $groupId = $locator->getGroupId();
         } else {
             $path .= '/document';
         }
         $path .= '/' . $this->urlDecodePath(ltrim($locator->getResourceId(), '/'));
         $resourcePath = '/' . $this->urlDecodePath(ltrim($locator->getResourceId(), '/'));
         $path = secure_file_path($path);
         if (!file_exists($path)) {
             // throw new Exception("Resource not found {$path}");
             return false;
         } elseif (is_dir($path)) {
             $url = new Url(get_module_entry_url('CLDOC'));
             $url->addParam('cmd', 'exChDir');
             $url->addParam('file', base64_encode($resourcePath));
             return $url->toUrl();
         } else {
             return claro_get_file_download_url($resourcePath, Claro_Context::getUrlContext($context));
         }
     } else {
         return get_module_entry_url('CLDOC');
     }
 }
示例#2
0
 ******************/
Claroline::getDisplay()->body->appendContent(claro_html_tool_title(array('supraTitle' => get_lang("Groups"), 'mainTitle' => claro_get_current_group_data('name') . ' <img src="' . get_icon_url('group') . '" alt="" />')));
$groupSpaceTemplate = new CoreTemplate('group_space.tpl.php');
$groupSpaceTemplate->assign('dialogBox', $dialogBox);
$groupSpaceTemplate->assign('displayRegistrationLink', $is_allowedToSelfRegInGroup && !array_key_exists('registration', $_REQUEST));
$groupSpaceTemplate->assign('displayUnregistrationLink', $is_allowedToSelfUnregInGroup && !array_key_exists('unregistration', $_REQUEST));
$groupSpaceTemplate->assign('displayTutorRegistrationLink', $isTutorRegAllowed && !array_key_exists('tutorRegistration', $_REQUEST));
$groupSpaceTemplate->assign('displayTutorUnregistrationLink', $isTutorUnregAllowed && !array_key_exists('tutorUnregistration', $_REQUEST));
$groupSpaceTemplate->assign('toolLinkList', $toolLinkList);
/*----------------------------------------------------------------------------
DISPLAY GROUP DESCRIPTION
----------------------------------------------------------------------------*/
if (strlen(claro_get_current_group_data('description')) > 0) {
    $groupSpaceTemplate->assign('groupDescription', claro_get_current_group_data('description'));
} else {
    $groupSpaceTemplate->assign('groupDescription', get_lang("(none)"));
}
/*----------------------------------------------------------------------------
DISPLAY GROUP TUTOR INFORMATION
----------------------------------------------------------------------------*/
$groupSpaceTemplate->assign('tutorDataList', $tutorDataList);
/*----------------------------------------------------------------------------
DISPLAY GROUP MEMBER LIST
----------------------------------------------------------------------------*/
$context = Claro_Context::getCurrentContext();
$context[CLARO_CONTEXT_GROUP] = null;
$urlContext = Claro_Context::getUrlContext($context);
$groupSpaceTemplate->assign('urlContext', $urlContext);
$groupSpaceTemplate->assign('groupMemberList', $groupMemberList);
Claroline::getDisplay()->body->appendContent($groupSpaceTemplate->render());
echo Claroline::getDisplay()->render();
示例#3
0
 public function resolve(ResourceLocator $locator)
 {
     if ($locator instanceof ExternalResourceLocator) {
         return $locator->__toString();
     } else {
         // 1 . get most accurate resolver
         //  1.1 if Module
         if ($locator->inModule()) {
             $resolver = $this->loadModuleResolver($locator->getModuleLabel());
             if (!$resolver) {
                 $resolver = new ToolResolver();
             }
         } elseif ($locator->inGroup()) {
             $resolver = new GroupResolver();
         } elseif ($locator->inCourse()) {
             $resolver = new CourseResolver();
         }
         //  1.4 get base url
         if ($resolver) {
             $url = $resolver->resolve($locator);
         } else {
             $url = get_path('rootWeb');
         }
         $urlObj = new Url($url);
         // 2. add context information
         $context = Claro_Context::getCurrentContext();
         if ($locator->inGroup()) {
             $context[CLARO_CONTEXT_GROUP] = $locator->getGroupId();
         } else {
             if (isset($context[CLARO_CONTEXT_GROUP])) {
                 unset($context[CLARO_CONTEXT_GROUP]);
             }
         }
         if ($locator->inCourse()) {
             $context[CLARO_CONTEXT_COURSE] = $locator->getCourseId();
         } else {
             if (isset($context[CLARO_CONTEXT_COURSE])) {
                 unset($context[CLARO_CONTEXT_COURSE]);
             }
         }
         $urlObj->relayContext(Claro_Context::getUrlContext($context));
         return $urlObj->toUrl();
     }
 }
示例#4
0
/**
 * @param $contextKeys array or null
 *
 * array can contain course, group, user and/or toolInstance
 *
 * return array of context requested containing current id fors these context.
 */
function claro_get_current_context($contextKeys = null)
{
    return Claro_Context::getCurrentContext();
}