示例#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
 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');
 }
示例#3
0
文件: url.lib.php 项目: rhertzog/lcs
 /**
  * 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;
 }
示例#4
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();
示例#5
0
文件: file.lib.php 项目: rhertzog/lcs
/**
 * 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();
}
示例#6
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();
     }
 }
示例#7
0
/**
 * 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 '';
    }
}