Файл: adultscript-2.0.3-pro/files/admin/modules/tools/components/cron_add.php
Строк: 80
<?php
defined('_VALID') or die('Restricted Access!');
class VComponent_Admin_tools_cron_add
{
private $db;
public function __construct()
{
$this->db = VF::factory('database');
}
public function render()
{
$errors = array();
$messages = array();
$script = array(
'module' => '',
'name' => '',
'slug' => '',
'period' => 0,
'status' => 1
);
if (isset($_POST['submit-add'])) {
$filter = VF::factory('filter');
$module = $filter->get('module');
$name = $filter->get('name');
$slug = $filter->get('slug');
$period = (int) trim($_POST['period']);
$status = (int) trim($_POST['status']);
if ($name == '') {
$errors[] = 'Script name cannot be left blank!';
} elseif (!VValid::length($name, 3, 100)) {
$errors[] = 'Script name must contain minimum 3 and no more than 100 characters!';
} else {
$script['name'] = $name;
}
if ($slug == '') {
$errors[] = 'Script SLUG cannot be left blank!';
} elseif (!VValid::alunderscore($slug)) {
$errors[] = 'Script SLUG can contain only alpha numeric characters and dashes!';
} elseif (!VValid::length($slug, 3, 100)) {
$errors[] = 'Script SLUG must contain minimum 3 and no more than 100 characters!';
} else {
$this->db->query("SELECT cron_id
FROM #__cron
WHERE slug = '".$this->db->escape($slug)."'
LIMIT 1");
if ($this->db->affected_rows()) {
$errors[] = 'SLUG is already used by another cron script entry!';
} else {
$script['slug'] = $slug;
}
}
if ($module == '') {
$errors[] = 'Please select a module for your script!';
} else {
$script['module'] = $module;
}
if ($period === 0) {
$errors[] = 'Script period cannot be left blank!';
} elseif ($period < 1) {
$errors[] = 'Script period cannot be lower than 1 minute!';
} else {
$script['period'] = $period;
}
$script['status'] = $status;
if (!$errors) {
$this->db->query("INSERT INTO #__cron
SET module = '".$this->db->escape($module)."',
name = '".$this->db->escape($name)."',
slug = '".$this->db->escape($slug)."',
period = ".$period.",
status = ".$status);
if ($this->db->affected_rows()) {
$messages[] = 'Cron script added!';
} else {
$errors[] = 'Failed to create database entry! Aborting...';
}
}
}
$tpl = VF::factory('template');
$tpl->menu = 'tools';
$tpl->submenu = 'tools_cron';
$tpl->meta_title = 'Admin::Tools::Cron::Add';
$tpl->errors = $errors;
$tpl->messages = $messages;
$tpl->script = $script;
$tpl->modules = $this->get_modules();
$tpl->load(array('header', 'tools_cron_add', 'footer'));
$tpl->display();
}
private function get_modules()
{
$this->db->query("SELECT name, description
FROM #__module
ORDER BY description ASC");
return $this->db->fetch_rows();
}
}