public function isNavigable(ResourceLocator $locator) { if ($locator->hasResourceId()) { return false; } else { return $locator->inModule() && $locator->getModuleLabel() == 'CLCAL'; } }
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'; } }
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'; } }
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(); } }