Files
cm-app-adm-content/application/models/YoutubeModel.php

70 lines
2.1 KiB
PHP

<?php
class YoutubeModel extends MY_Model
{
private $currentPage = 1;
private $perPage = 100;
private $table = 'cm_curation_raw_yt';
public function __construct()
{
parent::__construct();
}
private function getParam($key) {
return isset($this->config[$key]) ? $this->config[$key] : '';
}
public function getTable($config)
{
$this->config = $config;
// $this->dateRange = [strtotime($this->getParam('dateRange')[0]), strtotime($this->getParam('dateRange')[1])];
$this->perPage = $this->getParam('limit');
if ($this->getParam('offset')) {
$this->currentPage = $this->getParam('offset') / $this->perPage + 1;
}
$preBookingResult = $this->getTableResult();
$preBookingResultsCount = $this->getTableResultsCount();
return array('total' => $preBookingResultsCount, 'rows' => ($preBookingResultsCount ? $preBookingResult : []));
}
private function getTableResult()
{
$this->getTableClause();
$this->db->offset(($this->currentPage - 1) * $this->perPage);
$this->db->limit($this->perPage);
$this->db->order_by('updatedAt', 'desc');
return $this->db->get($this->table)->result();
}
private function getTableClause()
{
if ($this->getParam('keyword')) {
$this->db->like('Title', $this->getParam('keyword'), 'both')->or_like('VideoId', $this->getParam('keyword'), 'both');
}
if ($this->getParam('category') !== "") {
$this->db->where('Category', $this->getParam('category'));
}
$this->db->group_start();
$this->db->where('Category < ', 127);
$this->db->or_where('Category', 0);
$this->db->group_end();
}
private function getTableResultsCount()
{
$this->getTableClause();
$this->db->from($this->table);
return $this->db->count_all_results();
}
public function updateCategory($id, $category) {
$this->db->where('Id', $id)->update($this->table, array(
'Category' => $category
));
}
}