Вход Регистрация
Файл: adultscript-2.0.3-pro/files/admin/modules/rss/components/manage.php
Строк: 79
<?php
defined
('_VALID') or die('Restricted Access!');
class 
VComponent_Admin_rss_manage
{
    private 
$db;
    private 
$options;
    public function 
__construct()
    {
        
$this->db        VF::factory('database');
        
$this->options    = array(
            
'sort'        => 'f.feed_id',
            
'order'        => 'DESC',
            
'display'    => 20
        
);
    }
    
    public function 
render()
    {
        
$errors        = array();
        
$messages    = array();
        
        if (isset(
$_POST['action']) && isset($_POST['feed_id'])) {
            
$action trim($_POST['action']);
            
$feed_id = (int) trim($_POST['feed_id']);
            if (
$feed_id) {
                switch (
$action) {
                    case 
'activate':
                    case 
'suspend':
                        
$status = ($action == 'activate') ? 0;
                        
$msg    = ($action == 'activate') ? 'activated' 'suspended';
                        
$this->db->query("UPDATE #__video_feeds SET status = '".$status."' WHERE feed_id = ".$feed_id." LIMIT 1");
                        
$messages[] = 'Feed '.$msg.'!';
                        break;
                    case 
'delete':
                        
$this->db->query("DELETE FROM #__video_feeds WHERE feed_id = ".$feed_id." LIMIT 1");
                        
$messages[] = 'Feed deleted!';
                        break;
                    default:
                        
$errors[] = 'Invalid action! What exactly did you click!?';
                        break;
                }
            } else {
                
$errors[] = 'Invalid feed! Are you sure this feed exists!?';
            }
        }
        
       if (isset(
$_POST['submit_actions'])) {
            
$action trim($_POST['action']);
            
$ids    $this->get_checkbox_ids();
            if (
$ids) {
                switch (
$action) {
                    case 
'suspend':
                    case 
'activate':
                        
$status = ($action == 'activate') ? 0;
                        
$msg    = ($action == 'activate') ? 'activated' 'suspended';
                        
$this->db->query("UPDATE #__video_feeds SET status = '".$status."' WHERE feed_id IN (".implode(','$ids).")");
                        
$messages[] = "Selected feeds ".$msg."!";
                        break;
                    case 
'delete':
                        
$this->db->query("DELETE FROM #__video_feeds WHERE feed_id IN (".implode(','$ids).")");
                        
$messages[] = "Selected feeds deleted!";
                        break;
                    default:
                        
$errors[] = 'Invalid action! What exactly did you select!?';
                        break;
                }
            } else {
                
$errors[] = 'Please select at least one feed!';
            }
        }        
        
        
$page                = (isset($_GET['page'])) ? (int) trim($_GET['page']) : 1;
        
$search                $this->search_feeds();
        
$total_feeds        $this->db->get_field($search['sql_count'], 'total_feeds');
        
$pagination            VPagination::get($page$total_feeds$search['display']);
        
$feeds                $this->db->get_rows($search['sql'].' LIMIT '.$pagination['limit']);
    
        
$tpl                VF::factory('template');
        
$tpl->menu            'video';
        
$tpl->submenu        'video_add';
        
$tpl->extramenu        'video_rss';
        
$tpl->meta_title    'Admin::Video::Feed';
        
$tpl->errors        $errors;
        
$tpl->messages        $messages;
        
$tpl->feeds            $feeds;
        
$tpl->pagination    $pagination;
        
$tpl->load(array('header''rss_manage''footer'));
        
$tpl->display();
    }
    
    private function 
search_feeds()
    {
        
$sql        "SELECT f.feed_id, f.name, f.total_videos, f.last_updated, f.status,
                              f.channel_id, c.name AS channel
                       FROM #__video_feeds AS f
                       LEFT JOIN #__channel AS c ON (c.channel_id = f.channel_id)"
;
        
$sql_count    "SELECT COUNT(*) AS total_feeds
                       FROM #__video_feeds"
;
        
$sql_delim    " WHERE";
        
        return array(
            
'sql'        => $sql.' ORDER BY '.$this->options['sort'].' '.$this->options['order'],
            
'sql_count'    => $sql_count,
            
'display'    => $this->options['display']
        );
    }
    
    private function 
get_checkbox_ids()
    {
        
$ids = array();
        foreach (
$_POST as $key => $value) {
            if (
strpos($key'checkbox_feed_') !== FALSE) {
                
$ids[] = (int) str_replace('checkbox_feed_'''$key);
            }
        }

        return 
$ids;
    }
}
Онлайн: 0
Реклама