Example #1
0
 /**
  * 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;
     }
 }
Example #2
0
 /**
  * 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;
     }
 }