* displayed in the catalog.
*
* TODO: filter, limit, ordering parameters
+ * @param int $category_id DB category ID
+ * @param int $offset
+ * @param int $count
* @return array a list of videos, each one being an assoc array with:
* * id, name, title, duration, thumbs_count, default_thumb, views => from DB
* * shorted_title => ellipsized title
* * TODO: user_id, user_name
* * thumbs => thumbnail images' URLs
*/
- public function get_videos_summary($category_id)
+ public function get_videos_summary($category_id, $offset, $count)
{
$this->load->helper('text');
default_thumb
FROM `videos`
WHERE category_id = ?
- ORDER BY name', // TODO summary order
- $category_id);
- $videos = $query->result_array();
+ ORDER BY name
+ LIMIT ?, ?', // TODO summary order
+ array(intval($category_id), $offset, $count));
+
+ if ($query->num_rows() > 0)
+ $videos = $query->result_array();
+ else
+ return NULL;
foreach ($videos as & $video)
{
// Ellipsized title
//$video['shorted_title'] = ellipsize($video['title'], 45, 0.75);
- $video['shorted_title'] = character_limiter($video['title'], 45);
+ $video['shorted_title'] = character_limiter($video['title'], 50);
}
return $videos;
}
+ public function get_videos_count($category_id)
+ {
+ $query = $this->db->query(
+ 'SELECT COUNT(*) count
+ FROM `videos`
+ WHERE category_id = ?',
+ $category_id);
+
+ if ($query->num_rows() > 0)
+ return $row = $query->row()->count;
+
+ // Error
+ return NULL;
+ }
+
/**
* Retrieves information about a video.
*
* @return array an associative list with information about a video
* with the following keys:
* * all columns form DB with some exceptions that are overwritten or new
- * * torrents => list of torrent file names formated as
+ * * url => list of URLs for the video torrents formated as
* {name}_{format}.{default_video_ext}.{default_torrent_ext}
* * user_name => TODO: user name from `users` table
* * formats => list of formats like 1080p
- * * category_name => TODO: human-friendly category name
+ * * category_title => a human-friendly category name
* * tags => associative list of "tag => score"
* * date => date and time when the video was created
* * thumbs => thumbnail images' URLs
$video['tags'] = array_reverse($video['tags'], true);
// Torrents
- $video['torrents'] = array();
+ $video['url'] = array();
foreach ($video['formats'] as $format)
{
$ext = isset($format['ext']) ?
$format['ext'] : $this->config->item('default_video_ext');
- $video['torrents'][] = site_url('data/torrents/'. $video['name'] . '_'
+ $video['url'][] = site_url('data/torrents/'. $video['name'] . '_'
. $format['def'] . '.'. $ext
. '.'. $this->config->item('default_torrent_ext'));
}
+ // Category title
+ $categories = $this->config->item('categories');
+ $category_name = $categories[ intval($video['category_id']) ];
+ $video['category_title'] = $category_name ?
+ $this->lang->line("ui_categ_$category_name") : $category_name;
+
// Thumbnails
$video['thumbs'] = $this->get_thumbs($video['name'], $video['thumbs_count']);