Beispiel #1
0
 /**
  * Return the title of a Resource
  *
  * @param ResourceLocator $locator The locator of the resource.
  * @return string The title of the resource (false if there is no resourceId or is not in a course)
  */
 public function getResourceName(ResourceLocator $locator)
 {
     if ($locator->hasResourceId() && $locator->inCourse()) {
         return $this->_getTitle($locator->getCourseId(), $locator->getResourceId());
     }
     return false;
 }
Beispiel #2
0
 public function getResourceName(ResourceLocator $locator)
 {
     if ($locator->hasResourceId()) {
         $assignementId = $locator->getResourceId();
         $tbl = get_module_course_tbl(array('wrk_assignment'), $locator->getCourseId());
         $sql = "SELECT `title`\n" . "FROM `" . $tbl['wrk_assignment'] . "`\n" . "WHERE `id` = " . (int) $assignementId;
         $res = Claroline::getDatabase()->query($sql);
         $res->setFetchMode(Database_ResultSet::FETCH_VALUE);
         return $res->fetch();
     } else {
         $moduleName = get_module_data('CLWRK', 'moduleName');
         return get_lang($moduleName);
     }
 }
Beispiel #3
0
 public function getResourceName(ResourceLocator $locator)
 {
     if (!$locator->hasResourceId()) {
         return false;
     }
     $tbl = get_module_course_tbl(array('calendar_event'), $locator->getCourseId());
     $sql = "SELECT `titre`,`day`\n" . "FROM `{$tbl['calendar_event']}`\n" . "WHERE `id`=" . Claroline::getDatabase()->escape($locator->getResourceId());
     $res = Claroline::getDatabase()->query($sql);
     $res->setFetchMode(Database_ResultSet::FETCH_OBJECT);
     $event = $res->fetch();
     if ($event) {
         $titre = trim($event->titre);
         if (empty($titre)) {
             $titre = $event->day;
         }
         return $titre;
     } else {
         Console::debug("Cannot load ressource " . var_export($locator, true) . " in " . __CLASS__ . " : query returned " . var_export($event, true));
         return null;
     }
 }
Beispiel #4
0
 public function getResourceName(ResourceLocator $locator)
 {
     if (!$locator->hasResourceId()) {
         return false;
     }
     $tbl = get_module_course_tbl(array('announcement'), $locator->getCourseId());
     $sql = "SELECT `title`\n" . "FROM `{$tbl['announcement']}`\n" . "WHERE `id`=" . Claroline::getDatabase()->escape($locator->getResourceId());
     $res = Claroline::getDatabase()->query($sql);
     $res->setFetchMode(Database_ResultSet::FETCH_VALUE);
     $title = $res->fetch();
     if ($title) {
         $title = trim($title);
         if (empty($title)) {
             $title = get_lang('Untitled');
         }
         return $title;
     } else {
         Console::debug("Cannot load ressource " . var_export($locator, true) . " in " . __CLASS__ . " : query returned " . var_export($title, true));
         return null;
     }
 }
Beispiel #5
0
 public function getParentResourceId(ResourceLocator $locator)
 {
     if ($locator->hasResourceId()) {
         $resourceId = '/' . ltrim($locator->getResourceId(), '/');
         $parentResourceId = ltrim(str_replace('\\', '/', dirname($resourceId)), '/');
         if ($parentResourceId == '' || $parentResourceId == '/' || $parentResourceId == '.' || $parentResourceId == '..') {
             return false;
         } else {
             return $parentResourceId;
         }
     } else {
         return false;
     }
 }
Beispiel #6
0
 public function getResourceList(ResourceLocator $locator)
 {
     $tbl = get_module_course_tbl(array('wiki_properties', 'wiki_pages'), $locator->getCourseId());
     if ($locator->inGroup()) {
         $groupSql = "WHERE group_id = " . Claroline::getDatabase()->escape($locator->getGroupId());
     } else {
         $groupSql = "WHERE group_id = 0";
     }
     $resourceList = new LinkerResourceIterator();
     if ($locator->hasResourceId()) {
         $parts = explode('/', ltrim($locator->getResourceId(), '/'));
         if (count($parts) == 1) {
             $sql = "SELECT `title`\n" . "FROM `{$tbl['wiki_pages']}`\n" . "WHERE wiki_id = " . Claroline::getDatabase()->escape($parts[0]);
             $res = Claroline::getDatabase()->query($sql);
             foreach ($res as $page) {
                 $pageLoc = new ClarolineResourceLocator($locator->getCourseId(), 'CLWIKI', (int) $parts[0] . '/' . rawurlencode($page['title']));
                 $pageResource = new LinkerResource($page['title'] == '__MainPage__' ? get_lang('Main page') : $page['title'], $pageLoc, true, true, false);
                 $resourceList->addResource($pageResource);
             }
         }
     } else {
         $sql = "SELECT `id`, `title`\n" . "FROM `{$tbl['wiki_properties']}`\n" . $groupSql;
         $res = Claroline::getDatabase()->query($sql);
         foreach ($res as $wiki) {
             $wikiLoc = new ClarolineResourceLocator($locator->getCourseId(), 'CLWIKI', (int) $wiki['id']);
             $wikiResource = new LinkerResource($wiki['title'], $wikiLoc, true, true, true);
             $resourceList->addResource($wikiResource);
         }
     }
     return $resourceList;
 }
Beispiel #7
0
 public function getResourceList(ResourceLocator $locator)
 {
     $resourceList = new LinkerResourceIterator();
     $tbl = get_module_course_tbl(array('bb_topics', 'bb_forums'), $locator->getCourseId());
     if (!$locator->hasResourceId()) {
         if (!$locator->inGroup()) {
             $sql = "SELECT `forum_id`, `forum_name`, `group_id`\n" . "FROM `{$tbl['bb_forums']}`\n";
             $forumList = Claroline::getDatabase()->query($sql);
             foreach ($forumList as $forum) {
                 $forumLoc = new ClarolineResourceLocator($locator->getCourseId(), 'CLFRM', empty($forum['group_id']) ? (int) $forum['forum_id'] : null, empty($forum['group_id']) ? null : $forum['group_id']);
                 $topicResource = new LinkerResource(empty($forum['forum_name']) ? get_lang('Untitled') : $forum['forum_name'], $forumLoc, true, true, true);
                 $resourceList->addResource($topicResource);
             }
         } else {
             $sql = "SELECT `forum_id` AS `id`, `forum_name` AS `name`\n" . "FROM `{$tbl['bb_forums']}`\n" . "WHERE `group_id` = " . Claroline::getDatabase()->escape($locator->getGroupId());
             $res = Claroline::getDatabase()->query($sql);
             if (count($res)) {
                 $groupForum = $res->fetch(Database_ResultSet::FETCH_OBJECT);
                 $sql = "SELECT `topic_id`, `topic_title`, `forum_id`\n" . "FROM `{$tbl['bb_topics']}`\n" . "WHERE `forum_id` = " . Claroline::getDatabase()->escape($groupForum->id);
                 $topicList = Claroline::getDatabase()->query($sql);
                 foreach ($topicList as $topic) {
                     $topicLoc = new ClarolineResourceLocator($locator->getCourseId(), 'CLFRM', (int) $topic['topic_id'], $locator->getGroupId());
                     $topicResource = new LinkerResource(empty($topic['topic_title']) ? get_lang('Untitled') : $topic['topic_title'], $topicLoc, true, true, false);
                     $resourceList->addResource($topicResource);
                 }
             }
         }
     } else {
         if ($locator->inGroup()) {
         } else {
             $elems = explode('/', ltrim($locator->getResourceId(), '/'));
             if (count($elems) == 1) {
                 $sql = "SELECT `topic_id`, `topic_title`, `forum_id`\n" . "FROM `{$tbl['bb_topics']}`\n" . "WHERE `forum_id` = " . Claroline::getDatabase()->escape($elems[0]);
                 $topicList = Claroline::getDatabase()->query($sql);
                 foreach ($topicList as $topic) {
                     $topicLoc = new ClarolineResourceLocator($locator->getCourseId(), 'CLFRM', (int) $topic['forum_id'] . '/' . (int) $topic['topic_id']);
                     $topicResource = new LinkerResource(empty($topic['topic_title']) ? get_lang('Untitled') : $topic['topic_title'], $topicLoc, true, true, false);
                     $resourceList->addResource($topicResource);
                 }
             } else {
                 // not navigable
             }
         }
     }
     return $resourceList;
 }
Beispiel #8
0
 public function getResourceName(ResourceLocator $locator)
 {
     $path = $locator->getResourceId();
     return str_replace('/', ' > ', $path);
 }
Beispiel #9
0
 public function getResourceName(ResourceLocator $locator)
 {
     if ($locator instanceof ExternalResourceLocator) {
         return $locator->__toString();
     } else {
         $url = $locator->getResourceId();
         $externalCourseToolList = claro_get_course_external_link_list($locator->getCourseId());
         foreach ($externalCourseToolList as $externalCourseTool) {
             if ($externalCourseTool['url'] == $url) {
                 return $externalCourseTool['name'];
             }
         }
         return $url;
     }
 }