Вход Регистрация
Файл: mc-2.6.3/modules/ads_manager/controllers/ads_manager_admin.php
Строк: 293
<?php
/**
     * MobileCMS
     *
     * Open source content management system for mobile sites
     *
     * @author MobileCMS Team <support@mobilecms.ru>
     * @copyright Copyright (c) 2011, MobileCMS Team
     * @link http://mobilecms.ru Official site
     * @license http://opensource.org/licenses/gpl-license.php GNU Public License
     */

defined('IN_SYSTEM') or die('<b>403<br />Запрет доступа!</b>');


/**
 * Админская часть управления рекламой
 */
class Ads_Manager_Admin_Controller extends Controller {
     
/**
      * Уровень пользовательского доступа
      */
    
public $access_level 10;
    
/**
     * Тема
     */
    
public $template_theme 'admin';

    
/**
     * Метод по умолчанию
     */
    
public function action_index() {
        
$this->action_list_links();
    }

    
/**
     * Конфигурация модуля
     */
    
public function action_config() {
        
$_config $this->config['ads_manager'];

        if (isset(
$_POST['submit'])) {
            
main::is_demo();
            
$_config $_POST;

            
main::config($_config'ads_manager'$this->db);

            
a_notice('Данные успешно изменены!'a_url('ads_manager/admin/config'));
        }

        if (!isset(
$_POST['submit']) || $this->error) {
            
$this->tpl->assign(array(
                
'_config' => $_config
            
));

            
$this->tpl->display('config');
        }
    }

    
/**
     * Добавление / редактирование площадки
     */
    
public function action_area_edit() {
        if (
is_numeric($_GET['area_id'])) {
            if (!
$area $this->db->get_row("SELECT * FROM #__ads_manager_areas WHERE area_id = '".intval($_GET['area_id'])."'"))
                
a_error('Редактируемая площадка не найдена!');
            
$action 'edit';
        }
        else {
            
$area = array();
            
$action 'add';
        }

        if (isset(
$_POST['submit'])) {
            if (empty(
$_POST['title'])) {
                
$this->error .= 'Укажите название площадки<br />';
            }
            if (!
main::check_input($_POST['ident'], 'WORD')) {
                
$this->error .= 'Неверный формат идентификатора площадки (только латинские буквы и цифры)<br />';
            }
            if (
$action == 'add') {
                if (empty(
$_POST['ident'])) {
                    
$this->error .= 'Укажите идентификатор площадки<br />';
                }
                if (
$this->db->get_one("SELECT area_id FROM #__ads_manager_areas WHERE title = '".a_safe($_POST['title'])."'")) {
                    
$this->error .= 'Площадка с таким названием уже имеется, введите другое!<br />';
                }
                if (
$this->db->get_one("SELECT area_id FROM #__ads_manager_areas WHERE ident = '".a_safe($_POST['ident'])."'")) {
                    
$this->error .= 'Площадка с таким идентификатором уже имеется, введите другой!<br />';
                }
            }
    
            if (!
$this->error) {
                if (
$action == 'add') {
                    
$this->db->query("INSERT INTO #__ads_manager_areas SET
                        title = '"
a_safe($_POST['title'])."',
                        ident = '"
a_safe($_POST['ident'])."'
                    "
);
                    
$message 'Площадка успешно добавлена!';
                }
                if (
$action == 'edit') {
                    
$this->db->query("UPDATE #__ads_manager_areas SET
                        title = '"
a_safe($_POST['title'])."'
                        WHERE area_id = '"
$area['area_id']."'"
                    
);
                    
$message 'Площадка успешно изменена!';
                }
        
                
a_notice($messagea_url('ads_manager/admin'));
            }
        }
        if (!isset(
$_POST['submit']) || $this->error) {
            
$this->tpl->assign(array(
            
'error' => $this->error,
            
'area' => $area,
            
'action' => $action
            
));
    
            
$this->tpl->display('area_edit');
        }
    }

    
/**
     * Добавление / редактирование ссылки
     */
    
public function action_link_edit() {
        if (
is_numeric($_GET['link_id'])) {
            if (!
$link $this->db->get_row("SELECT * FROM #__ads_manager_links WHERE link_id = '".intval($_GET['link_id'])."'"))
                
a_error('Редактируемая ссылка не найдена!');
            
$action 'edit';
        }
        else {
            
$link = array();
            
$action 'add';
        }

        if (isset(
$_POST['submit'])) {
            if (empty(
$_POST['title'])) {
                
$this->error .= 'Укажите заголовок ссылки<br />';
            }
            if (empty(
$_POST['url'])) {
                
$this->error .= 'Укажите URL ссылки<br />';
            }
            if (empty(
$_POST['names'])) {
                
$this->error .= 'Укажите текст ссылки<br />';
            }
            if (!
$area $this->db->get_row("SELECT * FROM #__ads_manager_areas WHERE area_id = '".a_safe($_POST['area_id'])."'")) {
                
$this->error .= 'Площадка с данным идентификатором не найдена!<br />';
            }

            if (!
$this->error) {
                if (
$action == 'add') {
                    
$position $this->db->get_one("SELECT MAX(position) FROM #__ads_manager_links WHERE area_id = '".$area['area_id']."'") + 1;
    
                    
$this->db->query("INSERT INTO #__ads_manager_links SET
                        title = '"
a_safe($_POST['title'])."',
                        url = '"
a_safe($_POST['url'])."',
                        names = '"
mysqli_real_escape_string($this->db_link$_POST['names'])."',
                        area_id = '"
$area['area_id']."',
                        area_ident = '"
$area['ident']."',
                        position = '"
$position."'
                    "
);
                    
$message 'Ссылка успешно добавлена!';
                }
                if (
$action == 'edit') {
                    
$this->db->query("UPDATE #__ads_manager_links SET
                        title = '"
a_safe($_POST['title'])."',
                        url = '"
a_safe($_POST['url'])."',
                        names = '"
mysqli_real_escape_string($this->db_link$_POST['names'])."',
                        area_id = '"
$area['area_id']."',
                        area_ident = '"
$area['ident']."'
                        WHERE link_id = '"
$link['link_id']."'"
                    
);
                    
$message 'Ссылка успешно изменена!';
                }
    
                
a_notice($messagea_url('ads_manager/admin'));
            }
        }
        if (!isset(
$_POST['submit']) || $this->error) {
            
$areas $this->db->get_array("SELECT * FROM #__ads_manager_areas");
    
            
$this->tpl->assign(array(
            
'error' => $this->error,
            
'link' => $link,
            
'action' => $action,
            
'areas' => $areas
            
));
    
            
$this->tpl->display('link_edit');
        }
    }

    
/**
     * Удаление площадки
     */
    
public function action_area_delete() {
        if (!
$area $this->db->query("DELETE FROM #__ads_manager_areas WHERE area_id = '".intval($_GET['area_id'])."'"))
            
a_error('Площадка не найдена!');

        
$this->db->query("DELETE FROM #__ads_manager_areas WHERE area_id = '".intval($_GET['area_id'])."'");
        
$this->db->query("DELETE FROM #__ads_manager_links WHERE area_id = '".intval($_GET['area_id'])."'");

        
a_notice('Площадка успешно удалена!'a_url('ads_manager/admin'));
    }

    
/**
     * Удаление ссылки
     */
    
public function action_link_delete() {
        if (!
$link $this->db->query("DELETE FROM #__ads_manager_links WHERE link_id = '".intval($_GET['link_id'])."'"))
            
a_error('Рекламная ссылка не найдена!');

        
$this->db->query("DELETE FROM #__ads_manager_links WHERE link_id = '".intval($_GET['link_id'])."'");

        
# Меняем позиции
        
$this->db->query("UPDATE #__ads_manager_links SET position = position - 1 WHERE area_id = '".$link['area_id']."' AND position > '".$link['position']."'");

        
a_notice('Ссылка успешно удалена!'a_url('ads_manager/admin'));
    }

     
/**
      * Листинг площадок и ссылок
      */
    
public function action_list_links() {
        
$areas = array();
        
$result $this->db->query("SELECT * FROM #__ads_manager_areas");
        while (
$area $this->db->fetch_array($result)) {
            
$area['links'] = array();

            
$min_p $this->db->get_one("SELECT MIN(position) FROM #__ads_manager_links WHERE area_id = '".$area['area_id']."'");
             
$max_p $this->db->get_one("SELECT MAX(position) FROM #__ads_manager_links WHERE area_id = '".$area['area_id']."'");

            
$result1 $this->db->query("SELECT * FROM #__ads_manager_links WHERE area_id = '".$area['area_id']."' ORDER BY position ASC");
            while (
$link $this->db->fetch_array($result1)) {
                if (
$link['position'] != $min_p$link['up'] = '<a href="'.a_url('ads_manager/admin/link_up''link_id='.$link['link_id']).'">up</a>';
                else 
$link['up'] = 'up';

                if (
$link['position'] != $max_p$link['down'] = '<a href="'.a_url('ads_manager/admin/link_down''link_id='.$link['link_id']).'">down</a>';
                else 
$link['down'] = 'down';

                
$ex explode(PHP_EOL$link['names']);
                
$names '';
                foreach (
$ex as $name$names .= stripslashes(main::bbcode($name)).PHP_EOL;
                
$link['names'] = $names;

                
$area['links'][] = $link;
            }

            
$areas[] = $area;
        }

        
$this->tpl->assign(array(
            
'areas' => $areas
        
));

        
$this->tpl->display('list_links');
    }

    
/**
     * Поднятие ссылки
     */
    
public function action_link_up() {
        if(!
$link $this->db->get_row("SELECT * FROM #__ads_manager_links WHERE link_id = "intval($_GET['link_id'])))
            
a_error('Ссылка не найдена!');

        
// Меняем позиции
        
$this->db->query("UPDATE #__ads_manager_links SET position = "$link['position'] ." WHERE area_id = '"$link['area_id'] ."' AND position = ". ($link['position'] - 1));
        
$this->db->query("UPDATE #__ads_manager_links SET position = ". ($link['position'] - 1) ." WHERE area_id = '"$link['area_id'] ."' AND link_id = "intval($_GET['link_id']));
    
        
header("Location: "a_url('ads_manager/admin'));
        exit;
    }

    
/**
     * Опускание ссылки
     */
    
public function action_link_down() {
        if (!
$link $this->db->get_row("SELECT * FROM #__ads_manager_links WHERE link_id = ".intval($_GET['link_id'])))
            
a_error('Ссылка не найдена!');
    
        
// Меняем позиции
        
$this->db->query("UPDATE #__ads_manager_links SET position = ".$link['position']." WHERE area_id = '".$link['area_id']."' AND position = ".($link['position'] + 1));
        
$this->db->query("UPDATE #__ads_manager_links SET position = ".($link['position'] + 1)." WHERE area_id = '".$link['area_id']."' AND link_id = ".intval($_GET['link_id']));
    
        
header("Location: ".a_url('ads_manager/admin'));
        exit;
    }
}
?>
Онлайн: 1
Реклама