/** * onIndex * * @param string $type * @param integer $id * @param boolean $run * @access public * @return void */ public function onIndex($type, $id, $run = false) { if ($type == 'wiki') { if ($run === true) { // Establish a db connection $db = App::get('db'); // Sanitize the string $id = \Hubzero\Utility\Sanitize::paranoid($id); // Get the record $sql = "SELECT * FROM #__wiki_pages\n\t\t\t\t\tJOIN #__wiki_versions\n\t\t\t\t\tON #__wiki_pages.version_id = #__wiki_versions.id\n\t\t\t\t\tWHERE #__wiki_pages.id = {$id} AND #__wiki_pages.state = 1;"; $row = $db->setQuery($sql)->query()->loadObject(); // Get the name of the author $sql1 = "SELECT name FROM #__users WHERE id={$row->created_by};"; $author = $db->setQuery($sql1)->query()->loadResult(); // Get any tags $sql2 = "SELECT tag \n\t\t\t\t\tFROM #__tags\n\t\t\t\t\tLEFT JOIN #__tags_object\n\t\t\t\t\tON #__tags.id=#__tags_object.tagid\n\t\t\t\t\tWHERE #__tags_object.objectid = {$id} AND #__tags_object.tbl = 'wiki';"; $tags = $db->setQuery($sql2)->query()->loadColumn(); // Determine the path if ($row->scope == 'site') { $path = '/wiki/' . $row->path; } elseif ($row->scope == 'group') { $group = \Hubzero\User\Group::getInstance($row->scope_id); // Make sure group is valid. if (is_object($group)) { $cn = $group->get('cn'); $path = '/groups/' . $cn . '/wiki/' . $row->path; } } else { // Only group and site wiki is supported right now // @TODO: Project Notes return; } // Public condition if ($row->state == 1 && ($row->access == 0 || ($row->access = 1))) { $access_level = 'public'; } elseif ($row->state == 1 && $row->access == 2) { $access_level = 'registered'; } else { $access_level = 'private'; } if ($row->scope != 'group') { $owner_type = 'user'; $owner = $row->created_by; } else { $owner_type = 'group'; $owner = $row->scope_id; } // Get the title $title = $row->title; // Build the description, clean up text $content = $row->pagehtml; $content = preg_replace('/<[^>]*>/', ' ', $content); $content = preg_replace('/ {2,}/', ' ', $content); $description = \Hubzero\Utility\Sanitize::stripAll($content); // Create a record object $record = new \stdClass(); $record->id = $type . '-' . $id; $record->hubtype = $type; $record->title = $title; $record->description = $description; $record->author = array($author); $record->tags = $tags; $record->path = $path; $record->access_level = $access_level; $record->owner = $owner; $record->owner_type = $owner_type; // Return the formatted record return $record; } else { $db = App::get('db'); $sql = "SELECT #__wiki_pages.id FROM #__wiki_pages\n\t\t\t\t\tJOIN #__wiki_versions\n\t\t\t\t\tON #__wiki_pages.version_id = #__wiki_versions.id\n\t\t\t\t\tWHERE #__wiki_pages.state = 1;"; $ids = $db->setQuery($sql)->query()->loadColumn(); return $ids; } } }
/** * onIndex * * @param string $type * @param integer $id * @param boolean $run * @access public * @return void */ public function onIndex($type, $id, $run = false) { if ($type == 'event') { if ($run === true) { // Establish a db connection $db = App::get('db'); // Sanitize the string $id = \Hubzero\Utility\Sanitize::paranoid($id); // Get the record $sql = "SELECT * FROM #__events WHERE id={$id};"; $row = $db->setQuery($sql)->query()->loadObject(); // Get the (start) date of the event // Format the date for SOLR $date = Date::of($row->publish_up)->format('Y-m-d'); $date .= 'T'; $date .= Date::of($row->publish_up)->format('h:m:s') . 'Z'; // Get the name of the author $sql1 = "SELECT name FROM #__users WHERE id={$row->created_by};"; $author = $db->setQuery($sql1)->query()->loadResult(); // Get any tags $sql2 = "SELECT tag \n\t\t\t\t\tFROM #__tags\n\t\t\t\t\tLEFT JOIN #__tags_object\n\t\t\t\t\tON #__tags.id=#__tags_object.tagid\n\t\t\t\t\tWHERE #__tags_object.objectid = {$id} AND #__tags_object.tbl = 'events';"; $tags = $db->setQuery($sql2)->query()->loadColumn(); if ($row->scope == 'event' || $row->scope == '') { $path = '/events/details/' . $row->id; } elseif ($row->scope == 'group') { $group = \Hubzero\User\Group::getInstance($row->scope_id); // Make sure group is valid. if (is_object($group)) { $cn = $group->get('cn'); $path = '/groups/' . $cn . '/calendar/details/' . $row->id; } else { $path = ''; } } // Public condition if ($row->state == 1 && $row->approved == 1 && $row->scope != 'group') { $access_level = 'public'; } else { // Default private $access_level = 'private'; } if ($row->scope != 'group') { $owner_type = 'user'; $owner = $row->created_by; } else { $owner_type = 'group'; $owner = $row->scope_id; } // Get the title $title = $row->title; // Build the description, clean up text $content = preg_replace('/<[^>]*>/', ' ', $row->content); $content = preg_replace('/ {2,}/', ' ', $content); $description = \Hubzero\Utility\Sanitize::stripAll($content); // Format the date for SOLR $date = Date::of($row->publish_up)->format('Y-m-d'); $date .= 'T'; $date .= Date::of($row->publish_up)->format('h:m:s') . 'Z'; // Create a record object $record = new \stdClass(); $record->id = $type . '-' . $id; $record->hubtype = $type; $record->title = $title; $record->description = $description; $record->author = array($author); $record->tags = $tags; $record->path = $path; $record->access_level = $access_level; $record->date = $date; $record->owner = $owner; $record->owner_type = $owner_type; // Return the formatted record return $record; } else { $db = App::get('db'); $sql = "SELECT id FROM #__events;"; $ids = $db->setQuery($sql)->query()->loadColumn(); return $ids; } } }
/** * onIndex * * @param string $type * @param integer $id * @param boolean $run * @access public * @return void */ public function onIndex($type, $id, $run = false) { if ($type == 'publication') { if ($run === true) { // Establish a db connection $db = App::get('db'); // Sanitize the string $id = \Hubzero\Utility\Sanitize::paranoid($id); // Get the record $sql = "SELECT\n\t\t\t\t\t#__publications.id,\n\t\t\t\t\talias,\n\t\t\t\t\t#__publications.access,\n\t\t\t\t\tmaster_doi,\n\t\t\t\t\tpublished_up,\n\t\t\t\t\t#__publications.created_by,\n\t\t\t\t\tabstract,\n\t\t\t\t\tdescription,\n\t\t\t\t\ttitle,\n\t\t\t\t\tdoi,\n\t\t\t\t\tstate,\n\t\t\t\t\trelease_notes,\n\t\t\t\t\tMAX(#__publication_versions.id) as latestVersion\n\t\t\t\t\tFROM #__publications \n\t\t\t\tLEFT JOIN #__publication_versions\n\t\t\t\tON #__publications.id = #__publication_versions.publication_id\n\t\t\t\tWHERE #__publications.id = {$id};"; $row = $db->setQuery($sql)->query()->loadObject(); // Get the name of the author if (isset($row->latestVersion)) { $sql1 = "SELECT user_id, name FROM #__publication_authors WHERE publication_version_id={$row->latestVersion} AND role != 'submitter';"; $authors = $db->setQuery($sql1)->query()->loadAssocList(); // Get any tags $sql2 = "SELECT tag\n\t\t\t\t\t\tFROM #__tags\n\t\t\t\t\t\tLEFT JOIN #__tags_object\n\t\t\t\t\t\tON #__tags.id=#__tags_object.tagid\n\t\t\t\t\t\tWHERE #__tags_object.objectid = {$row->latestVersion} AND #__tags_object.tbl = 'publications';"; $tags = $db->setQuery($sql2)->query()->loadColumn(); } else { $authors = array(); $tags = array(); } // @TODO: PHP 5.5 includes array_column() $owners = array(); $authorNames = array(); if (isset($authors) && !empty($authors)) { foreach ($authors as $author) { array_push($owners, $author['user_id']); } foreach ($authors as $author) { array_push($authorNames, $author['name']); } } // Determine the path if ($row->alias != '') { $path = '/publications/' . $row->alias; } else { $path = '/publications/' . $id; } // Public condition if ($row->state == 1 && $row->access == 0) { $access_level = 'public'; } elseif ($row->state == 1 && $row->access == 1) { $access_level = 'registered'; } else { $access_level = 'private'; } // Authors have access $owner_type = 'user'; // So does submitter; array_push($owners, $row->created_by); // Get the title $title = $row->title; // Build the description, clean up text $content = $row->abstract . ' ' . $row->description . ' ' . $row->release_notes; $content = preg_replace('/<[^>]*>/', ' ', $content); $content = preg_replace('/ {2,}/', ' ', $content); $description = \Hubzero\Utility\Sanitize::stripAll($content); if (isset($row->doi)) { $doi = $row->doi; } else { $doi = ''; } // Create a record object $record = new \stdClass(); $record->id = $type . '-' . $id; $record->hubtype = $type; $record->title = $title; $record->description = $description; $record->author = $authorNames; $row->doi = $doi; $record->tags = $tags; $record->path = $path; $record->access_level = $access_level; $record->owner = $owners; $record->owner_type = $owner_type; // Return the formatted record return $record; } else { $db = App::get('db'); $sql = "SELECT id FROM #__publications;"; $ids = $db->setQuery($sql)->query()->loadColumn(); return $ids; } } }
/** * List all group files * * @return array */ public function listfilesTask() { // set the neeced layout $this->view->setLayout('filelist'); //get request vars $this->view->folders = array(); $this->view->files = array(); $this->view->type = \Hubzero\Utility\Sanitize::paranoid(Request::getWord('type', '')); $this->view->relpath = Request::getVar('path', '/'); // make sure we default to uploads folder for non-super groups if ($this->group->get('type') != 3 && (!$this->view->relpath || $this->view->relpath == '/')) { $this->view->relpath = '/uploads'; } $this->view->relpath = \Hubzero\Filesystem\Util::normalizePath($this->view->relpath); $this->view->relpath = explode('/', $this->view->relpath); foreach ($this->view->relpath as $i => $p) { $this->view->relpath[$i] = preg_replace('/[^a-zA-Z0-9_\\-]/', '', $p); } $this->view->relpath = implode(DS, $this->view->relpath); //build path to the group folder $this->path = rtrim($this->path, DS) . $this->view->relpath; // if we have a directory if (is_dir($this->path)) { //get list of files $folders = Filesystem::directories($this->path, '.', false); $files = Filesystem::files($this->path, '.', false); // filter by type if (isset($this->view->type) && $this->view->type != '') { foreach ($files as $k => $file) { $fileInfo = pathinfo($file); $ext = strtolower($fileInfo['extension']); if ($this->view->type == 'images' && !in_array($ext, array('jpg', 'jpeg', 'png', 'gif', 'bmp', 'tiff'))) { unset($files[$k]); } else { if ($this->view->type == 'files' && in_array($ext, array('jpg', 'jpeg', 'png', 'gif', 'bmp', 'tiff'))) { unset($files[$k]); } } } } //reset array keys $this->view->folders = array_values($folders); $this->view->files = array_values($files); } // pass vars to view //$this->view->config = $this->config; $this->view->group = $this->group; $this->view->path = $this->path; // get view notifications $this->view->notifications = $this->getNotifications() ? $this->getNotifications() : array(); //display view $this->view->display(); }
/** * Save param * * @param string $param * @param string $value * * @return void */ public function saveParam($param = '', $value = '') { // Clean up incoming $param = \Hubzero\Utility\Sanitize::paranoid($param, array('-', '_')); $value = \Hubzero\Utility\Sanitize::clean($value); if (!$this->exists()) { return false; } if (!$param || !$value) { return false; } $this->version->saveParam($this->get('version_id'), trim($param), htmlentities($value)); return $value; }
/** * onIndex * * @param string $type * @param integer $id * @param boolean $run * @access public * @return void */ public function onIndex($type, $id, $run = false) { if ($type == 'citation') { if ($run === true) { // Establish a db connection $db = App::get('db'); // Sanitize the string $id = \Hubzero\Utility\Sanitize::paranoid($id); // Get the record $sql = "SELECT * FROM #__citations WHERE id={$id};"; $row = $db->setQuery($sql)->query()->loadObject(); // Obtain list of related authors $sql1 = "SELECT author FROM #__citations_authors WHERE cid={$id};"; $authors = $db->setQuery($sql1)->query()->loadColumn(); // Get any tags $sql2 = "SELECT tag \n\t\t\t\t\tFROM #__tags\n\t\t\t\t\tLEFT JOIN #__tags_object\n\t\t\t\t\tON #__tags.id=#__tags_object.tagid\n\t\t\t\t\tWHERE #__tags_object.objectid = {$id} AND #__tags_object.tbl = 'citations';"; $tags = $db->setQuery($sql2)->query()->loadColumn(); // Determine the path if ($row->scope == 'member') { $path = '/members/' . $row->scope_id . '/citations'; } elseif ($row->scope == 'group') { $group = \Hubzero\User\Group::getInstance($row->scope_id); // Make sure group is valid. if (is_object($group)) { $cn = $group->get('cn'); $path = '/groups/' . $cn . '/citations'; } else { $path = ''; } } else { $path = '/citations/view/' . $id; } $access_level = 'public'; if ($row->scope != 'group') { $owner_type = 'user'; $owner = $row->uid; } else { $owner_type = 'group'; $owner = $row->scope_id; } // Get the title $title = $row->title; // Build the description, clean up text $content = $row->address . ' ' . $row->author . ' ' . $row->booktitle . ' ' . $row->chapter . ' ' . $row->cite . ' ' . $row->edition . ' ' . $row->eprint . ' ' . $row->howpublished . ' ' . $row->institution . ' ' . $row->isbn . ' ' . $row->journal . ' ' . $row->month . ' ' . $row->note . ' ' . $row->number . ' ' . $row->organization . ' ' . $row->pages . ' ' . $row->publisher . ' ' . $row->series . ' ' . $row->school . ' ' . $row->title . ' ' . $row->url . ' ' . $row->volume . ' ' . $row->year . ' ' . $row->doi . ' ' . $row->ref_type . ' ' . $row->date_submit . ' ' . $row->date_accept . ' ' . $row->date_publish . ' ' . $row->software_use . ' ' . $row->notes . ' ' . $row->language . ' ' . $row->label . ' '; $content = preg_replace('/<[^>]*>/', ' ', $content); $content = preg_replace('/ {2,}/', ' ', $content); $description = \Hubzero\Utility\Sanitize::stripAll($content); // Create a record object $record = new \stdClass(); $record->id = $type . '-' . $id; $record->hubtype = $type; $record->title = $title; $record->description = $description; $record->author = $authors; $record->tags = $tags; $record->path = $path; $record->access_level = $access_level; $record->owner = $owner; $record->owner_type = $owner_type; // Return the formatted record return $record; } else { $db = App::get('db'); $sql = "SELECT id FROM #__citations;"; $ids = $db->setQuery($sql)->query()->loadColumn(); return $ids; } } }
/** * onIndex * * @param string $type * @param integer $id * @param boolean $run * @access public * @return void */ public function onIndex($type, $id, $run = false) { if ($type == 'blog-entry') { if ($run === true) { // Establish a db connection $db = App::get('db'); // Sanitize the string $id = \Hubzero\Utility\Sanitize::paranoid($id); // Get the record $sql = "SELECT * FROM #__blog_entries WHERE id={$id} AND state != 2;"; $row = $db->setQuery($sql)->query()->loadObject(); // Get the name of the author $sql1 = "SELECT name FROM #__users WHERE id={$row->created_by};"; $author = $db->setQuery($sql1)->query()->loadResult(); // Get any tags $sql2 = "SELECT tag \n\t\t\t\t\tFROM #__tags\n\t\t\t\t\tLEFT JOIN #__tags_object\n\t\t\t\t\tON #__tags.id=#__tags_object.tagid\n\t\t\t\t\tWHERE #__tags_object.objectid = {$id} AND #__tags_object.tbl = 'blog';"; $tags = $db->setQuery($sql2)->query()->loadColumn(); // Determine the path $year = Date::of(strtotime($row->publish_up))->toLocal('Y'); $month = Date::of(strtotime($row->publish_up))->toLocal('m'); $alias = $row->alias; if ($row->scope == 'site') { $path = '/blog/' . $year . '/' . $month . '/' . $alias; } elseif ($row->scope == 'member') { $path = '/members/' . $row->scope_id . '/blog/' . $year . '/' . $month . '/' . $alias; } elseif ($row->scope == 'group') { $group = Group::getInstance($row->scope_id); // Make sure group is valid. if (is_object($group)) { $cn = $group->get('cn'); $path = '/groups/' . $cn . '/blog/' . $year . '/' . $month . '/' . $alias; } else { $path = ''; } } // Public condition if ($row->state == 1 && $row->access == 1) { $access_level = 'public'; } elseif ($row->state == 1 && $row->access == 2) { $access_level = 'registered'; } else { $access_level = 'private'; } if ($row->scope != 'group') { $owner_type = 'user'; $owner = $row->created_by; } else { $owner_type = 'group'; $owner = $row->scope_id; } // Get the title $title = $row->title; // Build the description, clean up text $content = preg_replace('/<[^>]*>/', ' ', $row->content); $content = preg_replace('/ {2,}/', ' ', $content); $description = \Hubzero\Utility\Sanitize::stripAll($content); // Create a record object $record = new \stdClass(); $record->id = $type . '-' . $id; $record->hubtype = $type; $record->title = $title; $record->description = $description; $record->author = array($author); $record->tags = $tags; $record->path = $path; $record->access_level = $access_level; $record->owner = $owner; $record->owner_type = $owner_type; // Return the formatted record return $record; } else { $db = App::get('db'); $sql = "SELECT id FROM #__blog_entries WHERE state != 2"; $ids = $db->setQuery($sql)->query()->loadColumn(); return $ids; } } }
/** * onIndex * * @param string $type * @param integer $id * @param boolean $run * @access public * @return void */ public function onIndex($type, $id, $run = false) { if ($type == 'forum') { if ($run === true) { // Establish a db connection $db = App::get('db'); // Sanitize the string $id = \Hubzero\Utility\Sanitize::paranoid($id); // Get the record $sql = "SELECT #__forum_posts.title, \n\t\t\t\t#__forum_posts.id,\n\t\t\t\t#__forum_posts.comment,\n\t\t\t\t#__forum_posts.created,\n\t\t\t\t#__forum_posts.created_by,\n\t\t\t\t#__forum_posts.scope,\n\t\t\t\t#__forum_posts.scope_id,\n\t\t\t\t#__forum_posts.anonymous,\n\t\t\t\t#__forum_posts.thread,\n\t\t\t\t#__forum_posts.parent,\n\t\t\t\t#__forum_posts.category_id,\n\t\t\t\t#__forum_categories.alias as category,\n\t\t\t\t#__forum_categories.state,\n\t\t\t\t#__forum_categories.access,\n\t\t\t\t#__forum_sections.alias as section\n\t\t\t\tFROM #__forum_posts\n\t\t\t\tLEFT JOIN #__forum_categories\n\t\t\t\tON #__forum_posts.category_id = #__forum_categories.id\n\t\t\t\tLEFT JOIN #__forum_sections\n\t\t\t\tON #__forum_categories.section_id = #__forum_sections.id\n\t\t\t\tWHERE thread={$id}\n\t\t\t\tAND parent=0;"; $rows = $db->setQuery($sql)->query()->loadObjectList(); $titles = array(); $authors = array(); $tags = array(); $content = ''; foreach ($rows as $row) { array_push($titles, $row->title); if ($row->anonymous == 0) { // Get the name of the author $sql1 = "SELECT name FROM #__users WHERE id={$row->created_by};"; $author = $db->setQuery($sql1)->query()->loadResult(); array_push($authors, $author); // Get any tags $sql2 = "SELECT tag \n\t\t\t\t\t\t\tFROM #__tags\n\t\t\t\t\t\t\tLEFT JOIN #__tags_object\n\t\t\t\t\t\t\tON #__tags.id=#__tags_object.tagid\n\t\t\t\t\t\t\tWHERE #__tags_object.objectid = {$row->id} AND #__tags_object.tbl = 'forum';"; $taglist = $db->setQuery($sql2)->query()->loadColumn(); foreach ($taglist as $t) { array_push($tags, $t); } // Concatenate the comments. $content = $content . ' ' . $row->comment; } else { $author = 'anonymous'; } // Get the scope if ($row->parent == 0) { $scope = $row->scope; $scope_id = $row->scope_id; $access = $row->access; $state = $row->state; $category = $row->category; $section = $row->section; $owner = $row->created_by; } } // Remove duplicates $tags = array_unique($tags); if ($scope == 'site' || $scope == '') { $path = '/forum/' . $section . '/' . $category . '/' . $id; } elseif ($scope == 'group') { $group = \Hubzero\User\Group::getInstance($scope_id); // Make sure group is valid. if (is_object($group)) { $cn = $group->get('cn'); $path = '/groups/' . $cn . '/forum/' . $section . '/' . $category . '/' . $id; } else { $path = ''; } } elseif ($scope == 'course') { $sql = "SELECT #__courses_offerings.alias AS offering, #__courses.alias AS course FROM #__courses_offerings\n\t\t\t\t\tLEFT JOIN #__courses\n\t\t\t\t\tON #__courses_offerings.course_id = #__courses.id\n\t\t\t\t\tWHERE #__courses_offerings.id = {$scope_id};"; $course = $db->setQuery($sql)->query()->loadAssoc(); $path = '/courses/' . $course['course'] . '/' . $course['offering'] . '/discussions/' . $row->category . '/' . $row->category_id . '?thread=' . $id; } else { $path = ''; } // Public condition if ($state == 1 && $access == 1 && $scope == 'site') { $access_level = 'public'; } elseif ($state == 1 && $access == 2 && $scope == 'site') { $access_level = 'registered'; } else { $access_level = 'private'; } if ($scope == 'group') { $owner_type = 'group'; $owner = $scope_id; } else { $owner_type = 'user'; // Owner set above } // Build the description, clean up text $content = preg_replace('/<[^>]*>/', ' ', $content); $content = preg_replace('/ {2,}/', ' ', $content); $description = \Hubzero\Utility\Sanitize::stripAll($content); // Create a record object $record = new \stdClass(); $record->id = $type . '-' . $id; $record->hubtype = $type; $record->title = $titles; $record->description = $description; $record->author = array($author); $record->tags = $tags; $record->path = $path; $record->access_level = $access_level; $record->owner = $owner; $record->owner_type = $owner_type; // Return the formatted record return $record; } else { $db = App::get('db'); $sql = "SELECT DISTINCT thread FROM #__forum_posts WHERE parent = 0;"; $ids = $db->setQuery($sql)->query()->loadColumn(); return $ids; } } }
/** * onIndex * * @param string $type * @param integer $id * @param boolean $run * @access public * @return void */ public function onIndex($type, $id, $run = false) { if ($type == 'question') { if ($run === true) { // Establish a db connection $db = App::get('db'); // Sanitize the string $id = \Hubzero\Utility\Sanitize::paranoid($id); // Get the record $sql = "SELECT * FROM #__answers_questions WHERE id={$id};"; $row = $db->setQuery($sql)->query()->loadObject(); // Get the name of the author if ($row->anonymous == 0) { $sql1 = "SELECT name FROM #__users WHERE id={$row->created_by};"; $author = $db->setQuery($sql1)->query()->loadResult(); } else { $author = 'anonymous'; } // Get any tags $sql2 = "SELECT tag \n\t\t\t\t\tFROM #__tags\n\t\t\t\t\tLEFT JOIN #__tags_object\n\t\t\t\t\tON #__tags.id=#__tags_object.tagid\n\t\t\t\t\tWHERE #__tags_object.objectid = {$id} AND #__tags_object.tbl = 'answers';"; $tags = $db->setQuery($sql2)->query()->loadColumn(); // Get the associated responses $sql3 = "SELECT * FROM #__answers_responses WHERE question_id={$id};"; $responses = $db->setQuery($sql3)->query()->loadObjectList(); // Concatenate responses $responseString = ''; foreach ($responses as $response) { if ($response->state == 0) { $responseString .= $response->answer . ' '; } } // Determine the path $path = '/answers/qustion/' . $id; // Always public condition $access_level = 'public'; $owner_type = 'user'; $owner = $row->created_by; // Get the title $title = $row->subject; // Build the description, clean up text $content = $row->question . ' ' . $responseString; $content = preg_replace('/<[^>]*>/', ' ', $content); $content = preg_replace('/ {2,}/', ' ', $content); $description = \Hubzero\Utility\Sanitize::stripAll($content); // Create a record object $record = new \stdClass(); $record->id = $type . '-' . $id; $record->hubtype = $type; $record->title = $title; $record->description = $description; $record->author = array($author); $record->tags = $tags; $record->path = $path; $record->access_level = $access_level; $record->owner = $owner; $record->owner_type = $owner_type; // Return the formatted record return $record; } else { $db = App::get('db'); $sql = "SELECT id FROM #__answers_questions;"; $ids = $db->setQuery($sql)->query()->loadColumn(); return $ids; } } }
/** * onIndex * * @param string $type * @param integer $id * @param boolean $run * @access public * @return void */ public function onIndex($type, $id, $run = false) { if ($type == 'group') { if ($run === true) { // Establish a db connection $db = App::get('db'); // Sanitize the string $id = \Hubzero\Utility\Sanitize::paranoid($id); // Get the record $sql = "SELECT * FROM #__xgroups WHERE gidNumber={$id} AND type = 1 OR type = 3;"; $row = $db->setQuery($sql)->query()->loadObject(); // Get any tags $sql2 = "SELECT tag \n\t\t\t\t\tFROM #__tags\n\t\t\t\t\tLEFT JOIN #__tags_object\n\t\t\t\t\tON #__tags.id=#__tags_object.tagid\n\t\t\t\t\tWHERE #__tags_object.objectid = {$id} AND #__tags_object.tbl = 'groups';"; $tags = $db->setQuery($sql2)->query()->loadColumn(); // Public condition if ($row->discoverability == 0) { $access_level = 'public'; } else { $access_level = 'private'; } // Members 'own' the group $group = \Hubzero\User\Group::getInstance($id); $members = $group->get('members'); $owner_type = 'user'; $owner = $members; $path = '/groups/' . $row->cn; // Get the title $title = $row->description; // Build the description, clean up text $content = preg_replace('/<[^>]*>/', ' ', $row->public_desc); $content = preg_replace('/ {2,}/', ' ', $content); $description = \Hubzero\Utility\Sanitize::stripAll($content); // Create a record object $record = new \stdClass(); $record->id = $type . '-' . $id; $record->hubtype = $type; $record->title = $title; $record->description = $description; $record->tags = $tags; $record->path = $path; $record->access_level = $access_level; $record->owner = $owner; $record->owner_type = $owner_type; // Return the formatted record return $record; } else { $db = App::get('db'); $sql = "SELECT gidNumber FROM #__xgroups WHERE type=1 OR type=3;"; $ids = $db->setQuery($sql)->query()->loadColumn(); return $ids; } } }
/** * onIndex * * @param string $type * @param integer $id * @param boolean $run * @access public * @return void */ public function onIndex($type, $id, $run = false) { if ($type == 'resource') { if ($run === true) { // Establish a db connection $db = App::get('db'); // Sanitize the string $id = \Hubzero\Utility\Sanitize::paranoid($id); // Get the record $sql = "SELECT #__resources.*, #__resource_types.type as typeName FROM #__resources\n\t\t\t\t\tLEFT JOIN #__resource_types\n\t\t\t\t\tON #__resource_types.id = #__resources.type\n\t\t\t\t\tWHERE #__resources.id = {$id};"; $sql = "SELECT * FROM #__resources WHERE id={$id};"; $row = $db->setQuery($sql)->query()->loadObject(); // Get the name of the author $sql1 = "SELECT name, authorid FROM #__author_assoc WHERE subid={$id} AND subtable='resources';"; $authorList = $db->setQuery($sql1)->query()->loadAssocList(); $owners = array(); $authors = array(); foreach ($authorList as $author) { if ($author['authorid'] > 0) { array_push($owners, $author['authorid']); } array_push($authors, $author['name']); } // Get any tags $sql2 = "SELECT tag \n\t\t\t\t\tFROM #__tags\n\t\t\t\t\tLEFT JOIN #__tags_object\n\t\t\t\t\tON #__tags.id=#__tags_object.tagid\n\t\t\t\t\tWHERE #__tags_object.objectid = {$id} AND #__tags_object.tbl = 'resources';"; $tags = $db->setQuery($sql2)->query()->loadColumn(); // Determine the path if ($row->alias != '' && strtolower($row->type) != 'tool') { $path = '/resources/' . $row->alias; } elseif ($row->alias != '' && strtolower($row->type) == 'tool') { $path = '/tool/' . $row->alias; } else { $path = '/resources/' . $row->id; } // Public condition if ($row->published == 1 && $row->access == 0 && $row->standalone == 1) { $access_level = 'public'; } elseif ($row->published == 1 && $row->access == 1 && $row->standalone == 1) { $access_level = 'registered'; } else { $access_level = 'private'; } // Who is the owner if (isset($row->group_owner) && $row->group_owner != '') { $owner_type = 'group'; $owner = $row->group_owner; } else { $owner_type = 'user'; $owner = $owners; } // Get children $sql3 = "SELECT title AS childTitle, path FROM jos_resources\n\t\t\t\tJOIN jos_resource_assoc\n\t\t\t\tON jos_resource_assoc.child_id = jos_resources.id\n\t\t\t\tWHERE jos_resource_assoc.parent_id = {$id} AND standalone = 0 AND published = 1;"; $children = $db->setQuery($sql3)->query()->loadAssocList(); $fileData = ''; $content = ''; foreach ($children as $child) { if (isset($fileScan) && $fileScan == true) { // Call the helper to read the file //$fileData .= /Helper/FileScan::scan($child['path']) . ' '; } $content .= $child['childTitle'] . ' '; } // Get the title $title = $row->title; // Build the description, clean up text $content .= $row->introtext . ' ' . $row->fulltxt . ' ' . $fileData; $content = preg_replace('/<[^>]*>/', ' ', $content); $content = preg_replace('/ {2,}/', ' ', $content); $description = \Hubzero\Utility\Sanitize::stripAll($content); // Create a record object $record = new \stdClass(); $record->id = $type . '-' . $id; $record->hubtype = $type; $record->title = $title; $record->description = $description; $record->author = $authors; $record->tags = $tags; $record->path = $path; $record->access_level = $access_level; $record->owner = $owner; $record->owner_type = $owner_type; // Return the formatted record return $record; } else { $db = App::get('db'); $sql = "SELECT id FROM #__resources WHERE standalone=1;"; $ids = $db->setQuery($sql)->query()->loadColumn(); return $ids; } } }
/** * onIndex * * @param string $type * @param integer $id * @param boolean $run * @access public * @return void */ public function onIndex($type, $id, $run = false) { if ($type == 'project') { if ($run === true) { // Establish a db connection $db = App::get('db'); // Sanitize the string $id = \Hubzero\Utility\Sanitize::paranoid($id); // Get the record $sql = "SELECT * FROM #__projects WHERE id={$id} AND type=1;"; $row = $db->setQuery($sql)->query()->loadObject(); // Determine the path $path = '/projects/' . $row->alias; // Public condition if ($row->state == 1 && $row->private == 0) { $access_level = 'public'; } else { $access_level = 'private'; } if ($row->owned_by_group == 0) { $owner_type = 'user'; $owner = $row->owned_by_user; } else { $owner_type = 'group'; $owner = $row->owned_by_group; } // Get the title $title = $row->title; // Build the description, clean up text $content = preg_replace('/<[^>]*>/', ' ', $row->about); $content = preg_replace('/ {2,}/', ' ', $content); $description = \Hubzero\Utility\Sanitize::stripAll($content); // Create a record object $record = new \stdClass(); $record->id = $type . '-' . $id; $record->hubtype = $type; $record->title = $title; $record->description = $description; $record->path = $path; $record->access_level = $access_level; $record->owner = $owner; $record->owner_type = $owner_type; // Return the formatted record return $record; } else { $db = App::get('db'); $sql = "SELECT id FROM #__projects WHERE type=1;"; $ids = $db->setQuery($sql)->query()->loadColumn(); return $ids; } } }
/** * onIndex * * @param string $type * @param integer $id * @param boolean $run * @access public * @return void */ public function onIndex($type, $id, $run = false) { if ($type == 'course') { if ($run === true) { // Establish a db connection $db = App::get('db'); // Sanitize the string $id = \Hubzero\Utility\Sanitize::paranoid($id); // Get the record $sql = "SELECT * FROM #__courses WHERE id={$id};"; $row = $db->setQuery($sql)->query()->loadObject(); // Get the name of the author $sql1 = "SELECT user_id, name, title, alias, student FROM #__courses_members\n\t\t\t\tLEFT JOIN #__courses_roles\n\t\t\t\tON #__courses_members.role_id = #__courses_roles.id\n\t\t\t\tLEFT JOIN #__users\n\t\t\t\tON #__courses_members.user_id = #__users.id;"; $members = $db->setQuery($sql1)->query()->loadObjectList(); $authors = array(); $author_ids = array(); $students = array(); foreach ($members as $member) { if ($member->student == 0) { array_push($authors, $member->name); array_push($author_ids, $member->user_id); } else { array_push($students, $member->user_id); } } // Get any tags $sql2 = "SELECT tag \n\t\t\t\t\tFROM #__tags\n\t\t\t\t\tLEFT JOIN #__tags_object\n\t\t\t\t\tON #__tags.id=#__tags_object.tagid\n\t\t\t\t\tWHERE #__tags_object.objectid = {$id} AND #__tags_object.tbl = 'courses';"; $tags = $db->setQuery($sql2)->query()->loadColumn(); // Determine the path $path = '/courses/' . $row->alias; // Public condition if ($row->state == 1 && $row->access == 1) { $access_level = 'public'; } elseif ($row->state == 1 && $row->access == 2) { $access_level = 'registered'; } else { $access_level = 'private'; } $owner_type = 'user'; $owner = array_merge($students, $author_ids); // Get the title $title = $row->title; // Build the description, clean up text $content = $row->blurb . ' ' . $row->description; $content = preg_replace('/<[^>]*>/', ' ', $content); $content = preg_replace('/ {2,}/', ' ', $content); $description = \Hubzero\Utility\Sanitize::stripAll($content); // Create a record object $record = new \stdClass(); $record->id = $type . '-' . $id; $record->hubtype = $type; $record->title = $title; $record->description = $description; $record->author = $authors; $record->tags = $tags; $record->path = $path; $record->access_level = $access_level; $record->owner = $owner; $record->owner_type = $owner_type; // Return the formatted record return $record; } else { $db = App::get('db'); $sql = "SELECT id FROM #__courses;"; $ids = $db->setQuery($sql)->query()->loadColumn(); return $ids; } } }
/** * onIndex * * @param string $type * @param integer $id * @param boolean $run * @access public * @return void */ public function onIndex($type, $id, $run = false) { if ($type == 'member') { if ($run === true) { // Establish a db connection $db = App::get('db'); // Sanitize the string $id = \Hubzero\Utility\Sanitize::paranoid($id); // Get the record $sql = "SELECT * FROM #__users WHERE id={$id};"; $row = $db->setQuery($sql)->query()->loadObject(); // Determine the path $path = '/members/' . $id; // Public condition if ($row->approved != 0 && $row->access == 1) { $access_level = 'public'; } else { $access_level = 'private'; } // Owner is self $owner_type = 'user'; $owner = $row->id; // Get the title $title = $row->name; // Get any tags $sql2 = "SELECT tag \n\t\t\t\t\tFROM #__tags\n\t\t\t\t\tLEFT JOIN #__tags_object\n\t\t\t\t\tON #__tags.id=#__tags_object.tagid\n\t\t\t\t\tWHERE #__tags_object.objectid = {$id} AND #__tags_object.tbl = 'xprofiles';"; $tags = $db->setQuery($sql2)->query()->loadColumn(); // Get any profile fields that are public $sql3 = "SELECT profile_key, profile_value FROM #__user_profiles WHERE user_id={$id} AND access=1;"; $profileFields = $db->setQuery($sql3)->query()->loadAssocList(); $profile = ''; foreach ($profileFields as $field) { $profile .= $field['profile_value'] . ' '; } // Build the description, clean up text $content = $row->email . ' ' . $profile; $content = preg_replace('/<[^>]*>/', ' ', $content); $content = preg_replace('/ {2,}/', ' ', $content); $description = \Hubzero\Utility\Sanitize::stripAll($content); // Create a record object $record = new \stdClass(); $record->id = $type . '-' . $id; $record->hubtype = $type; $record->title = $title; $record->description = $description; $record->tags = $tags; $record->path = $path; $record->access_level = $access_level; $record->owner = $owner; $record->owner_type = $owner_type; // Return the formatted record return $record; } else { $db = App::get('db'); $sql = "SELECT id FROM #__users;"; $ids = $db->setQuery($sql)->query()->loadColumn(); return $ids; } } }
/** * onIndex * * @param string $type * @param integer $id * @param boolean $run * @access public * @return void */ public function onIndex($type, $id, $run = false) { if ($type == 'content') { if ($run === true) { // Establish a db connection $db = App::get('db'); // Sanitize the string $id = \Hubzero\Utility\Sanitize::paranoid($id); // Get the record $sql = "SELECT * FROM #__content WHERE id={$id};"; $row = $db->setQuery($sql)->query()->loadObject(); // Build the path $sql1 = "SELECT path FROM #__categories WHERE id={$row->catid};"; $path = $db->setQuery($sql1)->query()->loadResult(); if ($path != 'uncategorised') { $path = '/' . $path . '/' . $row->alias; } else { $path = $row->alias; } if ($row->state == 1 && $row->access == 1) { $access_level = 'public'; } elseif ($row->state == 1 && $row->access == 2) { $access_level = 'registered'; } else { $access_level = 'private'; } $owner_type = 'user'; $owner = $row->created_by; // Get the title $title = $row->title; // Build the description, clean up text $content = $row->fulltext . ' ' . $row->introtext; $content = preg_replace('/<[^>]*>/', ' ', $content); $content = preg_replace('/ {2,}/', ' ', $content); $description = \Hubzero\Utility\Sanitize::stripAll($content); // Create a record object $record = new \stdClass(); $record->id = $type . '-' . $id; $record->hubtype = $type; $record->title = $title; $record->description = $description; //$record->author = array($author); //$record->tags = $tags; $record->path = $path; $record->access_level = $access_level; $record->owner = $owner; $record->owner_type = $owner_type; // Return the formatted record return $record; } else { $db = App::get('db'); $sql = "SELECT id FROM #__content;"; $ids = $db->setQuery($sql)->query()->loadColumn(); return $ids; } } }
/** * onIndex * * @param string $type * @param integer $id * @param boolean $run * @access public * @return void */ public function onIndex($type, $id, $run = false) { if ($type == 'kb-article') { if ($run === true) { // Establish a db connection $db = App::get('db'); // Sanitize the string $id = \Hubzero\Utility\Sanitize::paranoid($id); // Get the record $sql = "SELECT *, \n\t\t\t\t(SELECT GROUP_CONCAT(content SEPARATOR ' ') FROM #__kb_comments\n\t\t\t\tWHERE entry_id = {$id}) AS comments\n\t\t\t\tFROM #__kb_articles WHERE id = {$id};"; $row = $db->setQuery($sql)->query()->loadObject(); // Get the name of the author $sql1 = "SELECT name FROM #__users WHERE id={$row->created_by};"; $author = $db->setQuery($sql1)->query()->loadResult(); // Get any tags $sql2 = "SELECT tag \n\t\t\t\t\tFROM #__tags\n\t\t\t\t\tLEFT JOIN #__tags_object\n\t\t\t\t\tON #__tags.id=#__tags_object.tagid\n\t\t\t\t\tWHERE #__tags_object.objectid = {$id} AND #__tags_object.tbl = 'kb';"; $tags = $db->setQuery($sql2)->query()->loadColumn(); // Determine the path $sql3 = "SELECT id, path, alias, level FROM #__categories WHERE extension = 'com_kb';"; $categories = $db->setQuery($sql3)->query()->loadObjectList(); $path = '/kb/'; foreach ($categories as $category) { // Get the article's category if ($category->id == $row->category) { $path .= $category->path . '/' . $row->alias; } } // Public condition if ($row->state == 1 && $row->access == 1) { $access_level = 'public'; } elseif ($row->state == 1 && $row->access == 2) { $access_level = 'registered'; } else { $access_level = 'private'; } $owner_type = 'user'; $owner = $row->created_by; // Get the title $title = $row->title; // Build the description, clean up text $content = $row->fulltxt . ' ' . $row->comments; $content = preg_replace('/<[^>]*>/', ' ', $content); $content = preg_replace('/ {2,}/', ' ', $content); $description = \Hubzero\Utility\Sanitize::stripAll($content); // Create a record object $record = new \stdClass(); $record->id = $type . '-' . $id; $record->hubtype = $type; $record->title = $title; $record->description = $description; $record->author = array($author); $record->tags = $tags; $record->path = $path; $record->access_level = $access_level; $record->owner = $owner; $record->owner_type = $owner_type; // Return the formatted record return $record; } else { $db = App::get('db'); $sql = "SELECT id FROM #__kb_articles WHERE state != 2;"; $ids = $db->setQuery($sql)->query()->loadColumn(); return $ids; } } }