Файл: root/modules/blocks.admin.php
Строк: 417
<?php
/**
* @name        JMY CMS
* @link        http://jmy.su/
* @copyright   Copyright (C) 2012-2015 JMY LTD
* @license     LICENSE.txt (see attached file)
* @version     VERSION.txt (see attached file)
* @author      Komarov Ivan
* @revision       27.02.2015
*/
 
if (!defined('ADMIN_ACCESS')) {
    header('Location: /');
    exit;
}
global $config;
include(ROOT . 'usr/langs/'. $config[lang] . '.blocks.php');
switch(isset($url[2]) ? $url[2] : null) {
    default:
        $adminTpl->admin_head(_AP_BLOCKS);
        echo '
        <div class="row">
            <div class="col-lg-12">
                <section class="panel">
                    <div class="panel-heading">
                        <b>' . _AP_BLOCKS . '</b>                        
                    </div>';
    $queryTypes = $db->query("SELECT * FROM ".DB_PREFIX."_blocks_types ORDER BY title ASC");
    while ($_type = $db->getRow($queryTypes)) $_types[$_type['type']] = $_type['title']; 
    $query = $db->query("SELECT * FROM ".DB_PREFIX."_plugins WHERE service='blocks' ORDER BY type ASC, priority ASC");
    if($db->numRows($query) > 0) 
    {
        echo '<div class="panel-body no-padding">
                    <form id="tablesForm" style="margin:0; padding:0" method="POST" action="{ADMIN}/blocks/action">
                        <table class="table no-margin"  id="blockBox">';        
        blockList();    
        echo '</table>
        <div align="right">
        <table>
        <tr>
        <td valign="top">
        <select name="act">
            <option value="activate">' . _ACTIVATE . '</option>
            <option value="deActivate">' . _DEACTIVATE . '</option>
            <option value="reActivate">' . _REACTIVATE . '</option>
            <option value="delete">' . _DELETE . '</option>
        </select>
        </td>
        <td>  </td>    
        <td valign="top">
        <input name="submit" type="submit" class="btn btn-success" id="sub" value="' . _EDIT . '" /><span class="pd-l-sm"></span>
        </td>
        </tr>
        </table>        
    </div>
    </form></div>';
    }
    else
        {
            echo '<div class="panel-heading">'._BLOCK_EMPTY.'</div>';                    
        }
        echo'</section></div></div>';    
        $adminTpl->admin_foot();
        break;
    case 'add':
        if(isset($url[3]))
        {
            $bid = intval($url[3]);
            $bquery = $db->query("SELECT * FROM ".DB_PREFIX."_plugins WHERE id = '" . $bid . "'");
            $bl = $db->getRow($bquery);
            if(!$bl)
            {
                location('/' . ADMIN . '/blocks');
            }
            $bb = new bb;
            $title = prepareTitle($bl['title']);
            $bfile = $bl['file'];
            $type = $bl['type'];
            $content = $bb->htmltobb($bl['content']);
            $active = $bl['active'];
            $posit = $bl['priority'];
            $free = $bl['free'];
            $unshow = $bl['unshow'];
            $tit = _BLOCK_EDIT;
        
            if($unshow)
            {
                $modArrDb = explode(',', $bl['unshow']);
            }
            else
            {
                $modArrDb = explode(',', $bl['showin']);
            }
            
            $grroups = explode(',', $bl['groups']);
        }
        else
        {
            $title = '';
            $bfile = '';
            $type = '';
            $content = '';
            $modArrDb = array('_all');
            $active = true;
            $free = 0;
            $unshow = '';
            $posit = '';
            $grroups = array();
            $tit = _BLOCK_ADD;
        }
        $adminTpl->admin_head(_AP_BLOCKS . ' | ' . (isset($bid) ? _EDIT : _ADD) . ' '._BBLOCK);    
        echo '<div class="row">
            <div class="col-lg-12">
                <section class="panel">
                    <div class="panel-heading">
                        <b>' . $tit . '</b>                        
                    </div>
                    <div class="panel-body">
                        <form class="form-horizontal name="blocks" parsley-form" role="form" action="{ADMIN}/blocks/save" method="post">
                                                <div class="form-group">
                                                    <label class="col-sm-3 control-label">' . _TITLE . '</label>
                                                    <div class="col-sm-4">
                                                        <input value="' . $title . '" id="title" type="text" name="name" class="form-control" data-parsley-required="true" data-parsley-trigger="change" >
                                                    </div>
                                                </div>
                                                <div class="form-group">
                                                    <label class="col-sm-3 control-label">' . _BLOCK_FILE . '</label>
                                                    <div class="col-sm-4">
                                                        <select name="file" id="file">
                                                        <option value="" ' . ($bfile == '' ? 'selected' : '') . ">" . _BLOCK_FILE_WITHOUT . '</option>';
                                                        $path = ROOT.'usr/blocks/';
                                                        $dh = opendir($path);
                                                        $c=0;
                                                        while ($file = readdir($dh)) 
                                                        {
                                                            if(is_file($path.$file) && $file != '.' && $file != '..' && $file != '.htaccess') 
                                                            {
                                                                $select = ($bfile == $file) ? 'selected' : '';
                                                                echo '<option value="'.$file.'" '.$select.'>'.$file.'</option>';
                                                            }
                                                        }
                                                        closedir($dh);
                                                        echo '</select>
                                                    </div>
                                                </div>
                                                <div class="form-group">
                                                    <label class="col-sm-3 control-label">' . _BLOCK_DESTANATION . '</label>
                                                    <div class="col-sm-4">
                                                        <select name="type" id="type">';
                                                        $query = $db->query("SELECT * FROM ".DB_PREFIX."_blocks_types ORDER BY type");
                                                        while($rows = $db->getRow($query)) 
                                                        {
                                                            $select = ($type == $rows['type']) ? 'selected' : '';
                                                            echo '<option value="' . $rows['type'] . '" ' . $select . '>' . $rows['title'] . ' [' . $rows['type'] . ']</option>';
                                                        }
                                                        echo '</select>
                                                    </div>
                                                </div>
                                                <div class="form-group">
                                                    <label class="col-sm-3 control-label">' . _BLOCK_GROUPS . '</label>
                                                    <div class="col-sm-4">
                                                        <select name="groups[]" id="group" multiple ><option value="" ' . (empty($grroups) ? 'selected' : '') . '>Все группы</option>';
                                                        $query = $db->query("SELECT * FROM `" . USER_DB . "`.`" . USER_PREFIX . "_groups` ORDER BY admin DESC,moderator DESC,user DESC,guest DESC,banned DESC");
                                                        while($rows = $db->getRow($query)) 
                                                        {
                                                            $selected = in_array($rows['id'], $grroups) ? "selected" : "";
                                                            echo '<option value="' . $rows['id'] . '" ' . $selected . '>' . $rows['name'] . '</option>';
                                                        }
                                                        echo '</select>
                                                    </div>
                                                </div>
                                                <div class="form-group">
                                                    <label class="col-sm-3 control-label">'._MODULES.'</label>
                                                    <div class="col-sm-8">';                                                    
                                                    foreach(glob(ROOT.'usr/modules/*/index.php') as $dir)
                                                    {
                                                        $dir_a = explode('/', $dir);
                                                        $fileArr[] = $dir_a[count($dir_a)-2];
                                                    }
                                                    $limitCheck = ceil(count($fileArr)/3);        
                                                    $i = 0;
                                                    echo '<div style="float:left; width:150px;">';
                                                    foreach($fileArr as $file)
                                                    {
                                                        $i++;
                                                        $check = in_array($file, $modArrDb) ? 'checked' : '';
                                                        echo '
                                                        <label class="checkbox checkbox-custom"><input name="mod[]" value="' . $file . '" type="checkbox" ' . $check . '><i class="checkbox ' . $check . '"></i> ' . _mName($file) . '</label><br />';
                                                        if($i == $limitCheck)
                                                        {
                                                            $i = 0;
                                                            echo '</div>';
                                                            echo '<div style="float:left; width:150px;">';
                                                        }
                                                    }
                                                    echo '</div><br style="clear:both" /><hr />';
                                                    echo '<table width=100%>
                                                    <tr>
                                                    <td>';
                                                    echo '<label class="checkbox checkbox-custom"><input type="checkbox" name="mod[]" value="_free" class="checkbox" ' . ($free == 1 ? 'checked' : '') . ' /><i class="checkbox ' . $check . '"></i> ' . _BLOCK_FREE . '</label></td><td> ';
                                                    echo '<label class="checkbox checkbox-custom"><input type="checkbox" name="mod[]" value="_index" class="checkbox" ' . (in_array('_index', $modArrDb) ? 'checked' : '') . ' /><i class="checkbox ' . $check . '"></i> ' . _BLOCK_INDEX . ' </label></td><td>';
                                                    echo '<label class="checkbox checkbox-custom"><input type="checkbox" name="mod[]" value="_noChecked" class="checkbox" ' . ($unshow != '' ? 'checked' : '') . ' /><i class="checkbox ' . $check . '"></i> ' . _BLOCK_UNSHOW . '</label></div></td></tr></table>';
                                                    if(isset($bid)) echo '<input name="bid" value="' . $bid . '" type="hidden" />';
                                                    echo '
                                                    </div>
                                                </div>
                                                <div class="form-group">
                                                    <label class="col-sm-3 control-label">' . _BLOCK_POS . '</label>
                                                    <div class="col-sm-4">
                                                        <input value="' . $posit . '" id="posit" type="text" name="posit" class="form-control" data-parsley-required="true" data-parsley-trigger="change" >
                                                    </div>
                                                </div>
                                                <div class="form-group">
                                                    <label class="col-sm-3 control-label">' . _BLOCK_ACTIVE  . '</label>
                                                    <div class="col-sm-4">
                                                        '.checkbox('active', $active).'
                                                    </div>
                                                </div>
                                            </div>
                                        </section></div></div>';
                                        echo '<div class="row">
                <div class="col-lg-12">
                    <section class="panel">
                        <div class="panel-heading no-border"><b>'._TEXT.'</b></div>
                            <div class="panel-body">
                                <div class="switcher-content">
                                '.adminArea('contents', $content, 10, 'textarea', '', true).'
                                    <input name="submit" type="submit" class="btn btn-primary btn-parsley" id="sub" value="'.(isset($bid) ? _EDIT : _ADD).'">
                                    </form>
                                </div>
                            </div>
                        </div>
                    </section>
                </div>
            </div>';    
        
        $adminTpl->admin_foot();
        break;
    
    case 'save':
        $allowArray = array('_all', '_index');
        $title = isset($_POST['name']) ? filter(htmlspecialchars_decode($_POST['name']), 'title') : '';
        $file = isset($_POST['file']) ? filter($_POST['file'], 'a') : '';
        $type = isset($_POST['type']) ? filter($_POST['type'], 'a') : '';
        $content = isset($_POST['contents']) ? filter($_POST['contents'], 'html') : '';
        $posit = isset($_POST['posit']) ? intval($_POST['posit']) : '';
        $mod = isset($_POST['mod']) ? $_POST['mod'] : '';
        $active = isset($_POST['active']) ? 1 : false;
        $groups = isset($_POST['groups']) ? $_POST['groups'] : false;
        $bid = isset($_POST['bid']) ? intval($_POST['bid']) : false;
        $unList = '';
        $modList = '';
        $free = 0;
        if(!empty($title) && (!empty($file) OR !empty($content)))
        {
            
            if(!empty($mod))
            {
                $i = 0;
                
                if(array_search('_noChecked', $mod)) $unSearch = true;
                if(is_numeric(array_search('_free', $mod))) $free = 1;
                if(isset($unSearch))
                {
                    foreach($mod as $module)
                    {
                        if(trim($module) !== '' && in_array($module, $allowArray))
                        {
                            $i++;
                            if($i == 1)
                            {
                                $modList = $module;
                            }
                            else
                            {
                                $modList .= ',' . $module;
                            }
                        }
                    }
                    
                    $u = 0;
                    foreach($mod as $module)
                    {
                        if(trim($module) !== '' && !in_array($module, $allowArray) && $module != '_noChecked')
                        {
                            $u++;
                            if($u == 1)
                            {
                                $unList = $module;
                            }
                            else
                            {
                                $unList .= ',' . $module;
                            }
                        }
                    }
                }
                else
                {
                    foreach($mod as $module)
                    {
                        if(trim($module) !== '')
                        {
                            $i++;
                            if($i == 1)
                            {
                                $modList = $module;
                            }
                            else
                            {
                                $modList .= ',' . $module;
                            }
                        }
                    }
                }
            }
            else
            {
                $modList = '_all';
            }
            
            $g = 0;
            $groupList = '';
            if(!empty($groups))
            {
                foreach($groups as $group)
                {
                    if(trim($group) !== '')
                    {
                        $g++;
                        if($g == 1)
                        {
                            $groupList = $group;
                        }
                        else
                        {
                            $groupList .= ',' . $group;
                        }
                    }
                }
            }
            
            if(!$posit)
            {
                $query = $db->query("SELECT priority FROM `" . DB_PREFIX . "_plugins` WHERE `type`='" . $db->safesql($type) . "' ORDER BY `priority` DESC LIMIT 1");
                $rows = $db->getRow($query);
                if(isset($rows['priority']))
                {
                    $posit = $rows['priority']+1;
                }
                else
                {
                    $posit = 0;
                }
            }
            
            $bb = new bb;
            if($bid)
            {
                $db->query("UPDATE `" . DB_PREFIX . "_plugins` SET `title` = '" . $db->safesql(processText($title)) . "', `content` = '" . $db->safesql($bb->parse(processText($content), false, true)) . "', `file` = '" . $file . "', `priority` = '" . $posit . "', `type` = '" . $type . "', `showin` = '" . $modList . "', `unshow` = '" . $unList . "', `groups` = '" . $groupList . "', `free` = '" . $free . "', `template` = '', `active` = '" . $active . "' WHERE `id` =" . $bid . " LIMIT 1 ;");
            }
            else
            {
                $db->query("INSERT INTO `" . DB_PREFIX . "_plugins` ( `id` , `title` , `content` , `file` , `priority` , `type` , `service` , `showin` , `unshow` , `groups` , `free` , `template` , `active` ) VALUES ('', '" . $db->safesql(processText($title)) . "', '" . $db->safesql($bb->parse(processText($content), false, true)) . "', '" . $file . "', '" . $posit . "', '" . $type . "', 'blocks', '" . $modList . "', '" . $unList . "', '" . $groupList . "', '" . $free . "', '', '" . $active . "');");
            }
            delcache('plugins');
            location('/'.ADMIN.'/blocks/ok');
        }
        else
        {
            location('/'.ADMIN.'/blocks/error');
        }
        break;
        
    case "action":
        $type = $_POST['act'];
        if(is_array($_POST['checks'])) {
            switch($type) {
                case "activate":
                    foreach($_POST['checks'] as $id) 
                    {
                        $db->query("UPDATE `" . DB_PREFIX . "_plugins` SET `active` = '1' WHERE `id` =" . $id . " LIMIT 1 ;");
                    }
                    break;            
                
                case "deActivate":
                    foreach($_POST['checks'] as $id) 
                    {
                        $db->query("UPDATE `" . DB_PREFIX . "_plugins` SET `active` = '0' WHERE `id` =" . $id . " LIMIT 1 ;");
                    }
                    break;            
                    
                case "reActivate":
                    foreach($_POST['checks'] as $id) 
                    {
                        $db->query("UPDATE `" . DB_PREFIX . "_plugins` SET `active` = NOT `active` WHERE `id` =" . $id . " LIMIT 1 ;");
                    }
                    break;
                case "delete":
                    foreach($_POST['checks'] as $id) 
                    {
                        $db->query("DELETE FROM `" . DB_PREFIX . "_plugins` WHERE `id` = " . $id . " LIMIT 1");
                    }
                    break;                
                    
                case "deleteType":
                    foreach($_POST['checks'] as $id) 
                    {
                        $db->query("DELETE FROM `" . DB_PREFIX . "_blocks_types` WHERE `type` = '" . $id . "' LIMIT 1");
                    }
                    break;                
                
                case "deleteBlockType":
                    foreach($_POST['checks'] as $id) 
                    {
                        $db->query("DELETE FROM `" . DB_PREFIX . "_plugins` WHERE `type` = '" . $id . "'");
                    }
                    break;
            }
        }
        delcache('plugins');
        location(ADMIN . '/blocks');
        break;
        
    case 'resort':
        $query = $db->query("SELECT id, type FROM ".DB_PREFIX."_plugins ORDER BY type ASC, priority ASC");
        if($db->numRows($query) > 0) 
        {
            while ($result = $db->getRow($query)) 
            {
                $blocks[$result['type']][] = $result;
            }
            foreach($blocks as $type => $inf)
            {
                $count[$type] = count($blocks[$type]);
                foreach($inf as $number => $result)
                {
                    $db->query("UPDATE `" . DB_PREFIX . "_plugins` SET `priority` = '" . $number . "' WHERE `id` =" . $result['id'] . " LIMIT 1 ;");
                }
            }
        }
        delcache('plugins');
        location(ADMIN . '/blocks');
        break;
        
        
    case 'standard':
        $adminTpl->admin_head(_AP_BLOCKS.' | '._BLOCK_STANDART);
        echo '
        <div class="row">
            <div class="col-lg-12">
                <section class="panel">
                    <div class="panel-heading">
                        <b>' . _BLOCK_STANDART . '</b>                        
                    </div>
                    <div class="panel-body">
                <div class="switcher-content">
';        
        
         foreach(glob(ROOT.'usr/blocks/config/*.config.php') as $inFile)
        {
            $name = explode('usr/blocks/config/', $inFile);
            $name = $name[1];
            $subDir = explode('/', $name);
            $inDirs[$subDir[0]][] = $inFile;
        }
        $zeroDirs = glob(ROOT.'usr/blocks/config/*.config.php');        
        $_names['cats.config.php'] = _BLOCK_CATS;    
        $_names['online.config.php'] = _BLOCK_ONLINE;    
        $_names['poll.config.php'] = _BLOCK_POLL;
        if(!empty($zeroDirs))
        {            
            foreach($zeroDirs as $file) 
            {
                $name = explode('usr/blocks/config/', $file);
                $name = end($name);
                $_a = explode('usr/blocks/config/', $file);
                $absolute = str_replace(array('/', '.config.php'), array('=', ''), end($_a));
                echo '<div style="cursor:pointer" onclick="document.location.href = '{ADMIN}/blocks/standard_edit/' . $absolute . '';">
                    <label style="cursor:pointer" class="control-label">' . (isset($_names[$name]) ? $_names[$name] : $name) . '</label><br>
                    Настройки блока: ' . (isset($_names[$name]) ? $_names[$name] : $name) . '
                <br>                
                </div><br>';
            }
            
        }
        echo'</div></div></section></div></div>';    
        
        delcache('plugins');
        $adminTpl->admin_foot();
        break;
        
    case 'standard_edit':
        $adminTpl->admin_head(_AP_BLOCKS.' | '._BLOCK_STANDART);
        require (ROOT.'etc/blocks/'.$url[3].'.config.php');        
        require (ROOT.'usr/blocks/config/'.$url[3].'.config.php');
        $ok = false;        
        if(isset($_POST['conf_file']))
        {
            $ok = true;
        }
        generateConfigBLOCK($configBox, $url[3], '{ADMIN}/blocks/standard_edit/'.$url[3], $ok);        
        $adminTpl->admin_foot();
        break;
        
        
    case 'types':
        $adminTpl->admin_head(_AP_BLOCKS.' | '._AP_BLOCKS_TYPE);
        echo '
        <div class="row">
            <div class="col-lg-12">
                <section class="panel">
                    <div class="panel-heading">
                        <b>' . _AP_BLOCKS_TYPE . '</b>                        
                    </div>';        
        
        $query = $db->query("SELECT * FROM ".DB_PREFIX."_blocks_types ORDER BY title ASC");
        if($db->numRows($query) > 0) 
        {
            echo '<div class="panel-body no-padding">
                    <form id="tablesForm" style="margin:0; padding:0" method="POST" action="{ADMIN}/blocks/action">
                        <table class="table no-margin">
                            <thead>
                                <tr>                                    
                                    <th class="col-md-4"><span class="pd-l-sm"></span>' . _TITLE . '</th>
                                    <th class="col-md-3">'._TYPE.'</th>    
                                    <th class="col-md-3">' . _BLOCK_FOR_TPL . '</th>                                    
                                    <th class="col-md-3">' . _ACTIONS . '</th>    
                                    <th class="col-md-1"> 
                                        <input type="checkbox" name="all" onclick="setCheckboxes('tablesForm', true); return false;" />
                                    </th>                                
                                </tr>
                            </thead>
                            <tbody>';    
            while ($result = $db->getRow($query)) 
            {
                echo '<tr>                
                <td><span class="pd-l-sm"></span>' . $result['title'] . '</td>
                <td>' . $result['type'] . '</td>
                <td>{%BLOCKS:TYPE:' . $result['type'] . '%}</td>
                <td>
                        <a href="{ADMIN}/blocks/typeAdd/' . $result['type'] .  '">
                        <button type="button" class="btn btn-info btn-sm" data-toggle="tooltip" data-placement="top" title="" data-original-title="' . _EDIT .'">E</button>
                        </a>
                        <a href="{ADMIN}/blocks/delType/' . $result['type'] .  '" onClick="return getConfirm(''._BLOCK_DEL.' - ' . $result['title'] . '?')" title="' . _DELETE . '" class="delete">
                        <button type="button" class="btn btn-danger btn-sm" data-toggle="tooltip" data-placement="top" title="" data-original-title="' . _DELETE .'">X</button>
                        </a>            
                </td>
                <td align="center"> <input type="checkbox" name="checks[]" value="' . $result['type'] . '"></td>
                </tr>';
            }
        
        echo '<tr><td></td><td></td><td></td><td></td><td></td></tr></tbody></table>
        <div align="right">
    <table>
    <tr>
    <td valign="top">
    <select name="act">
        <option value="deleteType">' . _DELETE . '</option>
        <option value="deleteBlockType">' . _BLOCK_DELETEFROM_TYPE . '</option>
    </select>
    </td>
    <td>  </td>    
    <td valign="top">
    <input name="submit" type="submit" class="btn btn-success" id="sub" value="' . _EDIT . '" /><span class="pd-l-sm"></span>
    </td>
    </tr>
    </table>        
    </div>
    </form></div>';
    }
else
{
echo '<div class="panel-heading">'._BLOCK_TYPE_EMPTY.'</div>';
}
echo'</section></div></div>';    
        
        delcache('plugins');
        $adminTpl->admin_foot();
        break;
        
    case 'typeAdd':
        if(isset($url[3]))
        {
            $id = filter($url[3]);
            $tquery = $db->query("SELECT * FROM ".DB_PREFIX."_blocks_types WHERE type = '" . $id . "'");
            $t = $db->getRow($tquery);
            if(!$t)
            {
                location('/' . ADMIN . '/blocks');
            }
            $tit = _BLOCK_TYPE_EDIT;
            $type = $t['type'];
            $title = $t['title'];
        }
        else
        {
            $tit = _BLOCK_TYPE_ADD;
            $type = '';
            $title = '';
        }        
        $adminTpl->admin_head(_AP_BLOCKS.' | ' . $tit);        
        $adminTpl->open();
            echo '<div class="row">
            <div class="col-lg-12">
                <section class="panel">
                    <div class="panel-heading">
                        <b>' . $tit . '</b>                        
                    </div>
                    <div class="panel-body">
                        <form class="form-horizontal parsley-form" action="{ADMIN}/blocks/saveType" method="post">
                                                <div class="form-group">
                                                    <label class="col-sm-3 control-label">' . _TITLE . '</label>
                                                    <div class="col-sm-4">
                                                        <input value="' . $title . '" id="name" type="text" name="name" class="form-control" data-parsley-required="true" data-parsley-trigger="change">
                                                    </div>
                                                </div>
                                                <div class="form-group">
                                                    <label class="col-sm-3 control-label">' .  _TYPE . '</label>
                                                    <div class="col-sm-4">
                                                        <input value="' . $type . '" id="type" type="text" name="type" class="form-control" data-parsley-required="true" data-parsley-trigger="change">
                                                    </div>
                                                </div>';
                                                if(isset($id)) echo '<input name="tid" value="' . $id . '" type="hidden" />';
                                                echo'<div class="form-group">
                                                        <label class="col-sm-3 control-label"></label>
                                                        <div class="col-sm-4">
                                                            <input name="submit" type="submit" class="btn btn-primary btn-parsley" id="sub" value="'.(isset($id) ? _EDIT : _ADD).'">                        
                                                        </div>
                                                    </div>
                                                </form>
                                            </div>
                                        </section>
                                    </div>
                                </div>';    
        $adminTpl->close();
        delcache('plugins');
        $adminTpl->admin_foot();
        break;
        
    case 'saveType':
        $name = isset($_POST['name']) ? filter($_POST['name'], 'a') : '';
        $type = isset($_POST['type']) ? filter(translit($_POST['type']), 'a') : '';
        $tid = isset($_POST['tid']) ? filter($_POST['tid'], 'a') : '';
        if($name && $type)
        {
            if(!$tid)
            {
                $db->query("INSERT INTO `" . DB_PREFIX . "_blocks_types` ( `title` , `type` ) VALUES ('" . $name . "', '" . $type . "');");    
            }
            else
            {
                $db->query("UPDATE `" . DB_PREFIX . "_blocks_types` SET `title` = '" . $name . "', `type` = '" . $type . "' WHERE `type` = '" . $tid . "' LIMIT 1 ;");
            }
            delcache('plugins');
            location('/' . ADMIN . '/blocks/types');
        }
        else
        {
            adminError(_NOT_FILLED, 'blocks/types');
        }
        break;
        
    case 'delType':
        $id = filter($url[3]);
        $db->query("DELETE FROM `" . DB_PREFIX . "_blocks_types` WHERE `type` = '" . $id . "' LIMIT 1");
        delcache('plugins');
        location('/' . ADMIN . '/blocks/types');
        break;
}