Example #1
0
 /**
  * Get published article list of a submitter
  * 
  * @param int|null  $submitter
  * @param int|null  $page
  * @param int|null  $limit
  * @return array 
  */
 public function getListBySubmitter($submitter = null, $page = null, $limit = null)
 {
     if (empty($submitter)) {
         //$user      = Pi::service('user')->getUser();
         $submitter = Pi::user()->getId();
     }
     if (!is_numeric($submitter)) {
         return array();
     }
     if (!empty($limit)) {
         $page = $page ?: 1;
     }
     $order = 'time_publish DESC';
     $where = array('uid' => $submitter);
     if (!empty($page) and empty($limit)) {
         $offset = ((int) $page - 1) * (int) $limit;
     }
     // Get article result set
     $module = $this->getModule();
     $resultSet = Pi::model('article', $module)->getSearchRows($where, $limit, isset($offset) ? $offset : null, Article::getDefaultColumns(), $order);
     if (empty($resultSet)) {
         return array();
     }
     // Get article ID
     $articleIds = array();
     foreach ($resultSet as $set) {
         $articleIds[] = $set['id'];
     }
     // Get stats data
     $staticSet = Pi::model('stats', $module)->getList(array('article' => $articleIds));
     foreach ($resultSet as &$row) {
         $stats = isset($staticSet[$row['id']]) ? $staticSet[$row['id']] : array();
         unset($stats['article']);
         unset($stats['id']);
         $row = array_merge($row, $stats);
     }
     return $resultSet;
 }