示例#1
0
 public function isNavigable(ResourceLocator $locator)
 {
     if ($locator->hasResourceId()) {
         return false;
     } else {
         return $locator->inModule() && $locator->getModuleLabel() == 'CLCAL';
     }
 }
示例#2
0
 public function isNavigable(ResourceLocator $locator)
 {
     if ($locator->inGroup()) {
         return !$locator->hasResourceId();
     } elseif ($locator->hasResourceId()) {
         $elems = explode('/', ltrim($locator->getResourceId(), '/'));
         return count($elems) == 1;
     } else {
         return $locator->inModule() && $locator->getModuleLabel() == 'CLFRM';
     }
 }
示例#3
0
 public function isNavigable(ResourceLocator $locator)
 {
     if ($locator->hasResourceId()) {
         $parts = explode('/', ltrim($locator->getResourceId(), '/'));
         if (count($parts) <= 1) {
             return true;
         } else {
             return false;
         }
     } else {
         return $locator->inModule() && $locator->getModuleLabel() == 'CLWIKI';
     }
 }
示例#4
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();
     }
 }