Вход Регистрация
Файл: Space race/admin/classes/edit_level.class.php
Строк: 106
<?php

/**
 * Modify an existing level.
 *
 
 */

include_once('../classes/generic.class.php');

class 
Edit_level extends Generic {

    public 
$error;
    public 
$results;

    public 
$search_q;
    public 
$options = array();

    public 
$isAdmin false;

    function 
__construct() {

        
// Save level and auth
        
if(!empty($_GET['lid']))
            
$this->retrieveInfo();

        if(isset(
$_POST['do_edit'])) :

            foreach (
$_POST as $key => $value)
                
$this->options[$key] = parent::secure($value);

            
$this->options['level_disabled'] = !empty($_POST['disable']) ? 'checked' '';
            
$this->options['welcome_email'] =  !empty($_POST['welcome_email']) ? 'checked' '';

            
// Validate fields
            
$this->validate();

        endif;

        if(!empty(
$this->error))
            
parent::displayMessage("<div class='alert alert-warning'>$this->error</div>"false);

        if(!empty(
$this->result))
            
parent::displayMessage("<div class='alert alert-success'>$this->result</div>"false);

    }

    public function 
getValue($name) {

        if(!empty(
$this->options[$name]))
            return 
$this->options[$name];

    }

    private function 
retrieveInfo() {

        
$this->options['level_id'] = (int) $_GET['lid'];

        
$params = array( ':level_id' => $this->options['level_id'] );
        
$stmt   parent::query("SELECT * FROM `login_levels` WHERE `id` = :level_id;"$params);

        if (
$stmt->rowCount() < 1) :
            
$this->error _("Level doesn't exist!");
            return 
false;
        endif;

        while(
$row $stmt->fetch(PDO::FETCH_ASSOC)) :

            foreach (
$row as $key => $value)
                
$this->options[$key] = $value;

        endwhile;


        
$this->options['level_level2'] = $this->options['level_level'];
        
$this->options['level_disabled'] = !empty($this->options['level_disabled']) ? 'checked' '';
        
$this->options['welcome_email'] =  !empty($this->options['welcome_email'])  ? 'checked' '';

        if (
$this->options['level_level'] == || $this->options['level_level2'] == || $this->options['level_id'] == 1) {
            
$this->isAdmin true;
        }

    }

    private function 
validate() {

        if(!empty(
$this->options['delete'])) {
            
$this->process(true);
            return 
false;
        }

        if(empty(
$this->options['level_name'])) {
            
$this->error _('Нужно указать название.');
            return 
false;
        }

        if (empty(
$this->options['level_level'])) {
            
$this->error _('Нужно указать уровень доступа.');
            return 
false;
        }

        
$params = array( ':level' => $this->options['level_level'] );
        
$stmt   parent::query("SELECT * FROM `login_levels` WHERE `level_level` = :level;"$params);

        if( 
$stmt->rowCount() > && $this->options['level_level'] != $this->options['level_level2'] )
            
$this->error sprintf(_('Auth level %s already exists'), $this->options['level_level']);

        
// Process form
        
if(empty($this->error))
            
$this->process();

    }

    private function 
process($delete false) {

        if ( !empty(
$this->error) )
            return 
false;

        if (
$delete) :

            
$params = array( ':level' => '%:"' $this->options['level_id'] . '";%' );
            
$stmt   parent::query("SELECT COUNT(user_level) FROM login_users WHERE user_level LIKE :level;"$params);

            
$result $stmt->fetch();

            if (
$result[0] > 0) :
                
$this->error _("В данной группе есть пользователи! Может сначала перенесете их в другую группу?");
                return 
false;
            endif;

            
$params = array( ':level' => $this->options['level_id'] );
            
$stmt parent::query("DELETE FROM `login_levels` WHERE `id` = :level;"$params);
            
$this->result sprintf(_('Группа <b>%s</b> была успешно удалена.'), $this->options['level_name']);

        else :

            
$params = array(
                
':name'     => $this->options['level_name'],
                
':level'    => !$this->isAdmin $this->options['level_level'] : 1,
                
':welcome' =>  !empty($this->options['welcome_email']) ? 0,
                
':disabled' => (!empty($this->options['level_disabled']) && !$this->isAdmin) ? 0,
                
':redirect' => $this->options['redirect'],
                
':id'       => $this->options['level_id']
            );

            
$stmt parent::query("UPDATE login_levels SET level_name = :name, level_level = :level, level_disabled = :disabled, redirect = :redirect, `welcome_email` = :welcome WHERE id = :id;"$params);
            
$this->result sprintf(_('Информация изменена для группы <b>%s</b>.'), $this->options['level_name']);

        endif;

    }

}

$Edit_level = new Edit_level;
Онлайн: 0
Реклама