Файл: 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') ? 1 : 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') ? 1 : 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;
}
}