예제 #1
0
 /**
  * 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;
         }
     }
 }
예제 #2
0
 /**
  * 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;
         }
     }
 }
예제 #3
0
 /**
  * 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;
         }
     }
 }
예제 #4
0
 /**
  * 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();
 }
예제 #5
0
 /**
  * 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;
 }
예제 #6
0
 /**
  * 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;
         }
     }
 }
예제 #7
0
 /**
  * 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;
         }
     }
 }
예제 #8
0
 /**
  * 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;
         }
     }
 }
예제 #9
0
 /**
  * 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;
         }
     }
 }
예제 #10
0
 /**
  * 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;
         }
     }
 }
예제 #11
0
 /**
  * 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;
         }
     }
 }
예제 #12
0
 /**
  * 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;
         }
     }
 }
예제 #13
0
 /**
  * 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;
         }
     }
 }
예제 #14
0
 /**
  * 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;
         }
     }
 }
예제 #15
0
 /**
  * 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;
         }
     }
 }
예제 #16
0
 /**
  * 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;
         }
     }
 }