Вход Регистрация
Файл: adultscript-2.0.3-pro/files/admin/modules/channel/models/channel.php
Строк: 281
<?php
class VModel_Admin_channel extends VModel
{
    public function 
__construct()
    {
        
parent::__construct();
    }
    
    public function 
add($channel)
    {
        
$this->db->query("
            INSERT INTO #__channel
            SET user_id = "
.(int) $channel['user_id'].",
                network_id = "
.(int) $channel['network_id'].",
                name = '"
.$this->db->escape($channel['name'])."',
                slug = '"
.$this->db->escape($channel['slug'])."',
                description = '"
.$this->db->escape($channel['description'])."',
                url = '"
.$this->db->escape($channel['url'])."',
                thumb = '"
.$this->db->escape($channel['thumb'])."',
                logo = '"
.$this->db->escape($channel['logo'])."',
                adv_bottom_id = "
.$channel['adv_bottom_id'].",
                adv_right_id = "
.$channel['adv_right_id'].",
                adv_player_id = "
.$channel['adv_player_id'].",
                add_time = "
.time()
        );
        
        if (
$this->db->affected_rows()) {
            
$channel_id    $this->db->get_last_insert_id('#__channel');
            
            
$this->db->query("
                UPDATE #__channel_networks
                SET total_channels = total_channels+1
                WHERE network_id = "
.(int) $channel['network_id']."
                LIMIT 1"
);
        
            return 
$channel_id;
        }
        
        return 
false;
    }
    
    public function 
update($channel_id$channel)
    {
        
$this->db->query("
            UPDATE #__channel
            SET user_id = "
.(int) $channel['user_id'].",
                network_id = "
.(int) $channel['network_id'].",
                name = '"
.$this->db->escape($channel['name'])."',
                slug = '"
.$this->db->escape($channel['slug'])."',
                description = '"
.$this->db->escape($channel['description'])."',
                url = '"
.$this->db->escape($channel['url'])."',
                thumb = '"
.$this->db->escape($channel['thumb'])."',
                logo = '"
.$this->db->escape($channel['logo'])."',
                total_videos = "
.$channel['total_videos'].",
                total_views = "
.$channel['total_videos'].",
                total_duration = "
.$channel['total_duration'].",
                total_likes = "
.$channel['total_likes'].",
                total_votes = "
.$channel['total_votes'].",
                total_subscribers = "
.$channel['total_subscribers'].",
                total_size = "
.$channel['total_size'].",
                adv_bottom_id = "
.$channel['adv_bottom_id'].",
                adv_right_id = "
.$channel['adv_right_id'].",
                adv_player_id = "
.$channel['adv_player_id'].",
                add_time = "
.$channel['add_time'].",
                last_add_time = "
.$channel['last_add_time'].",
                update_time = "
.time()."
            WHERE channel_id = "
.$channel_id."
            LIMIT 1
        "
);
        
        return 
true;
    }
    
    public function 
get($channel_id$fields = array())
    {
        
$fields    = ($fields) ? $fields : array(
            
'c.channel_id''c.user_id''c.network_id''c.name''c.slug''c.description''c.url''c.thumb''c.logo',
            
'c.total_videos''c.total_views''c.total_duration''c.total_likes''c.total_votes''c.total_subscribers',
            
'c.total_size''c.last_add_time''c.adv_bottom_id''c.adv_right_id''c.adv_player_id',
            
'c.add_time''c.update_time''n.name AS network''u.username'
        
);
        
        
$this->db->query("SELECT ".implode(', '$fields)."
                          FROM #__channel AS c
                          LEFT JOIN #__channel_networks AS n ON (n.network_id = c.network_id)
                          LEFT JOIN #__user AS u ON (u.user_id = c.user_id)
                          WHERE channel_id = "
.$channel_id."
                          LIMIT 1"
);
        
        if (
$this->db->affected_rows()) {
            return 
$this->db->fetch_assoc();
        } 
        
        return 
false;
    }

    public function 
exists($column$value$channel_id 0)
    {
          
$this->db->query("
              SELECT channel_id
              FROM #__channel
              WHERE "
.$column." = '".$this->db->escape($value)."'
              AND channel_id != "
.(int) $channel_id."
              LIMIT 1"
          
);
          
          return 
$this->db->affected_rows();
      }
      
    public function 
delete($channel_id)
    {
          
$channels = (is_array($channel_id)) ? $channel_id : array($channel_id);
        
        foreach (
$channels as $channel_id) {
              
$this->db->query("SELECT network_id, total_videos
                                FROM #__channel
                                WHERE channel_id = "
.$channel_id."
                                LIMIT 1"
);
              if (
$this->db->affected_rows()) {
                  
$network_id        = (int) $this->db->fetch_field('network_id');
                  
$total_videos    = (int) $this->db->fetch_field('total_videos');
                  
$this->db->query("
                      UPDATE #__channel_networks
                    SET total_channels = CASE WHEN total_channels > 0 THEN total_channels-1 ELSE 0 END,
                          total_videos = CASE WHEN total_videos > 0 THEN total_videos-1 ELSE 0 END
                      WHERE network_id = "
.$network_id."
                      LIMIT 1
                  "
);
              }
              
              
$this->db->query("DELETE FROM #__channel WHERE channel_id = ".$channel_id." LIMIT 1");
        }    
        
        return 
true;
    }      
    
    public function 
count($params)
    {
        
$where    = ($params['where']) ? ' WHERE '.$params['where'] : '';
        
$this->db->query("
            SELECT COUNT(*) AS total_channels
            FROM #__channel AS c"
.$where
        
);
        
        return 
$this->db->fetch_field('total_channels');
    }
    
    public function 
channels($fields = array(), $params = array(), $limit 0)
    {
        
$fields = ($fields) ? $fields : array(
            
'c.channel_id''c.network_id''c.user_id''c.name''c.slug''c.description',
            
'c.thumb''c.total_videos''c.total_views''c.total_duration',
            
'c.total_likes''c.total_votes''c.total_subscribers''c.add_time''c.update_time',
            
'c.last_add_time''n.name AS network''u.username'
        
);
        
$where    = (isset($params['where']) && $params['where']) ? ' WHERE '.$params['where'] : '';
        
$sort    = (isset($params['sort'])) ? $params['sort'] : 'c.channel_id';
        
$order    = (isset($params['order'])) ? $params['order'] : 'DESC';
        
$limit    = ($limit != '0') ? " LIMIT ".$limit '';
        
        
$this->db->query("
            SELECT "
.implode(', '$fields)."
            FROM #__channel AS c
            LEFT JOIN #__channel_networks AS n ON (n.network_id = c.network_id)
            LEFT JOIN #__user AS u ON (u.user_id = c.user_id)"
.$where."
            ORDER BY "
.$sort.' '.$order.$limit
        
);
        
        return (
$this->db->affected_rows()) 
            ? 
$this->db->fetch_rows()
            : array();
    }
    
    public function 
add_video($channel_id$video_id)
    {
        
$this->db->query("
            SELECT network_id
            FROM #__channel
            WHERE channel_id = "
.$channel_id."
            LIMIT 1
        "
);
        
        if (
$this->db->affected_rows()) {
            
$network_id    = (int) $this->db->fetch_field('network_id');
            
$this->db->query("
                UPDATE #__channel
                SET total_videos = total_videos+1
                WHERE channel_id = "
.$channel_id."
                LIMIT 1
            "
);
            
$this->db->query("
                UPDATE #__channel_networkds
                SET total_videos = total_videos+1
                WHERE network_id = "
.$network_id."
                LIMIT 1
            "
);
        }
    }
}
Онлайн: 0
Реклама