/** * Pull a list of records that were created within the time frame ($period) * * @param object $period Time period to pull results for * @param mixed $limit Number of records to pull * @param integer $limitstart Start of records to pull * @param array $areas Active area(s) * @param array $tagids Array of tag IDs * @return array */ public function onWhatsnew($period, $limit = 0, $limitstart = 0, $areas = null, $tagids = array()) { if (is_array($areas) && $limit) { if (!isset($areas[$this->_name]) && !in_array($this->_name, $areas)) { return array(); } } // Do we have a time period? if (!is_object($period)) { return array(); } $database = App::get('db'); include_once PATH_CORE . DS . 'components' . DS . 'com_wiki' . DS . 'tables' . DS . 'page.php'; // Instantiate some needed objects $wp = new \Components\Wiki\Tables\Page($database); // Build query $filters = array(); $filters['startdate'] = $period->cStartDate; $filters['enddate'] = $period->cEndDate; $filters['sortby'] = 'date'; $filters['authorized'] = false; if (!User::isGuest()) { $filters['authorized'] = true; } if (count($tagids) > 0) { $filters['tags'] = $tagids; } if (!$limit) { // Get a count $filters['select'] = 'count'; $database->setQuery($wp->buildPluginQuery($filters)); return $database->loadResult(); } else { // Get results $filters['select'] = 'records'; $filters['limit'] = $limit; $filters['limitstart'] = $limitstart; $database->setQuery($wp->buildPluginQuery($filters)); $rows = $database->loadObjectList(); if ($rows) { foreach ($rows as $key => $row) { if ($row->area != '' && $row->category != '') { $rows[$key]->href = Route::url('index.php?option=com_groups&scope=' . $row->category . '&pagename=' . $row->alias); } else { $rows[$key]->href = Route::url('index.php?option=com_wiki&scope=' . $row->category . '&pagename=' . $row->alias); } $rows[$key]->text = strip_tags($rows[$key]->itext); if ($row->title == '') { $rows[$key]->title = $rows[$key]->alias; } } } return $rows; } }
/** * Return either a count or an array of the member's contributions * * @param object $member Current member * @param string $option Component name * @param string $authorized Authorization level * @param integer $limit Number of record to return * @param integer $limitstart Record return start * @param string $sort Field to sort records on * @param array $areas Areas to return data for * @return array */ public function onMembersContributions($member, $option, $limit = 0, $limitstart = 0, $sort, $areas = null) { $database = App::get('db'); if (is_array($areas) && $limit) { if (!isset($areas[$this->_name]) && !in_array($this->_name, $areas) && !array_intersect($areas, array_keys($this->onMembersContributionsAreas()))) { return array(); } } // Do we have a member ID? if ($member instanceof \Hubzero\User\Profile) { if (!$member->get('uidNumber')) { return array(); } else { $uidNumber = $member->get('uidNumber'); $username = $member->get('username'); } } else { if (!$member->uidNumber) { return array(); } else { $uidNumber = $member->uidNumber; $username = $member->username; } } include_once PATH_CORE . DS . 'components' . DS . 'com_wiki' . DS . 'tables' . DS . 'page.php'; // Instantiate some needed objects $wp = new \Components\Wiki\Tables\Page($database); // Build query $filters = array(); $filters['author'] = $uidNumber; $filters['username'] = $username; $filters['sortby'] = $sort; //if ($authorized) { // $filters['authorized'] = 'admin'; //} if (!$limit) { $filters['select'] = 'count'; $database->setQuery($wp->buildPluginQuery($filters)); return $database->loadResult(); } else { $filters['select'] = 'records'; $filters['limit'] = $limit; $filters['limitstart'] = $limitstart; $database->setQuery($wp->buildPluginQuery($filters)); $rows = $database->loadObjectList(); if ($rows) { foreach ($rows as $key => $row) { if ($row->area != '' && $row->category != '') { $rows[$key]->href = Route::url('index.php?option=com_groups&scope=' . $row->category . '&pagename=' . $row->alias); } else { $rows[$key]->href = Route::url('index.php?option=com_wiki&scope=' . $row->category . '&pagename=' . $row->alias); } $rows[$key]->text = $rows[$key]->itext; } } return $rows; } }