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'); } }
public function __construct() { $this->courseCode = claro_get_current_course_id(); $this->courseId = ClaroCourse::getIdFromCode($this->courseCode); $this->userId = claro_get_current_user_id(); $this->profileId = claro_get_current_user_profile_id_in_course(); $this->viewMode = claro_get_tool_view_mode(); $this->courseObject = new ClaroCourse(); $this->courseObject->load($this->courseCode); $this->currentCourseContext = Claro_Context::getUrlContext(array(CLARO_CONTEXT_COURSE => $this->courseCode)); $this->template = new CoreTemplate('coursetoollist.tpl.php'); }
/** * Relay Claroline current Url context in urls * @return $this */ public function relayCurrentContext() { /* $context = Claro_Context::getCurrentUrlContext(); if ( array_key_exists( 'cid', $context ) && ! array_key_exists( 'cidReq', $context ) ) { $context['cidReq'] = $context['cid']; unset( $context['cid'] ); } if ( array_key_exists( 'gid', $context ) && ! array_key_exists( 'gidReq', $context ) ) { $context['gidReq'] = $context['gid']; unset( $context['gid'] ); } */ $this->addParamList(Claro_Context::getCurrentUrlContext()); return $this; }
******************/ 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();
/** * Get the url to download the file at the given file path * @param string $file path to the file * @param array $context * @param string $moduleLabel * @since Claroline 1.10.5 * @return string url to the file */ function claro_get_file_download_url($file, $context = null, $moduleLabel = null) { $file = download_url_encode($file); if ($GLOBALS['is_Apache'] && get_conf('usePrettyUrl', false)) { // slash argument method - only compatible with Apache $url = get_path('url') . '/claroline/backends/download.php' . str_replace('%2F', '/', $file); } else { // question mark argument method, for IIS ... $url = get_path('url') . '/claroline/backends/download.php?url=' . $file; } $urlObj = new Url($url); if (!empty($context)) { $urlObj->relayContext(Claro_Context::getUrlContext($context)); } else { $urlObj->relayCurrentContext(); } if ($moduleLabel) { $urlObj->addParam('moduleLabel', $moduleLabel); } return $urlObj->toUrl(); }
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(); } }
/** * Get the string needed to relay the current context in urls * @param string $prepend string to prepend to the relayed context * @param array $context * @return string * @deprecated since 1.9 use Url::Contextualize instead */ function claro_url_relay_context($prepend = '', $context = null) { if (is_null($context)) { $context = Claro_Context::getCurrentUrlContext(); } if (array_key_exists('cid', $context) && !array_key_exists('cidReq', $context)) { $context['cidReq'] = $context['cid']; unset($context['cid']); } if (array_key_exists('gid', $context) && !array_key_exists('gidReq', $context)) { $context['gidReq'] = $context['gid']; unset($context['gid']); } if (count($context) > 0) { return $prepend . http_build_query($context); } else { return ''; } }