Вход Регистрация
Файл: root/modules/modules.admin.php
Строк: 211
<?php

/**
* @name        JMY CMS
* @link        http://jmy.su/
* @copyright   Copyright (C) 2012-2014 JMY LTD
* @license     LICENSE.txt (see attached file)
* @version     VERSION.txt (see attached file)
* @author      Komarov Ivan
*/
 
if (!defined('ADMIN_ACCESS')) {
    
header('Location: /');
    exit;
}

$modArr[] = '';

$query $db->query("SELECT * FROM ".DB_PREFIX."_plugins WHERE service='modules'");
while(
$_mod $db->getRow($query)) 
{
    
$modArr[] = $_mod['title'];
    
    if(!
file_exists(ROOT.'usr/modules/'.$_mod['title'].'/index.php'))
    {
        
delete($_mod['id']);
    }
}

$path ROOT.'usr/modules/';
$dh opendir($path);
while (
$file readdir($dh)) 
{
    if(!
in_array($file$modArr) && file_exists($path.$file.'/index.php')) 
    {
        
$db->query("INSERT INTO `" DB_PREFIX "_plugins` (`title` , `content` , `service`  , `active` ) VALUES ('" $file "', '" ucfirst($file) . "', 'modules', '1');");
    }
    
delcache('plugins');
}
closedir($dh);

function 
delete($id$path '') {
global 
$adminTpl$db;
    
$db->query("DELETE FROM `" DB_PREFIX "_plugins` WHERE `id` = " $id " LIMIT 1");
    if(
$path != ''full_rmdir(ROOT 'usr/modules/'.$path.'/');
}

function 
retivate($id) {
global 
$adminTpl$db;
    
$db->query("UPDATE `" DB_PREFIX "_plugins` SET `active` = NOT `active` WHERE `id` = " $id " LIMIT 1 ;");
}


$server_domain 'http://cms.jmy.su/';
switch(isset(
$url[2]) ? $url[2] : null) {
    default:
        
$adminTpl->admin_head('Модули системы');
        if(isset(
$url[2]) && $url[2] == 'ok')
        {
            
$adminTpl->info('Действия успешно выполнены!');
        }
        echo 
'
        <div class="row">
            <div class="col-lg-12">
                <section class="panel">
                    <div class="panel-heading">
                        <b>Список модулей:</b>                        
                    </div>
                    <div class="panel-body no-padding">
                    <form id="tablesForm" style="margin:0; padding:0" method="POST" action="{ADMIN}/modules/action">
                        <table class="table no-margin">
                            <thead>
                                <tr>
                                    <th class="col-md-1"><span class="pd-l-sm"></span>ID</th>
                                    <th class="col-md-3">Название</th>
                                    <th class="col-md-1">Описание</th>
                                    <th class="col-md-3">Админка</th>
                                    <th class="col-md-2">Группы</th>
                                    <th class="col-md-2">Действия</th>                                
                                    <th class="col-md-1"><input type="checkbox" name="all" onclick="setCheckboxes('
tablesForm', true); return false;"></th>
                                </tr>
                            </thead>
                            <tbody>'
;
        
$query $db->query("SELECT * FROM ".DB_PREFIX."_plugins WHERE service='modules' ORDER BY title ASC");
        if(
$db->numRows($query) > 0
        {
            while(
$mod $db->getRow($query)) 
            {
                
$status_icon = ($mod['active'] == 0) ? '<a href="{ADMIN}/modules/retivate/' $mod['id'] . '" onClick="return getConfirm('' . _ACTIVATE . ' ' . $mod['title'] . '?')" title="' _ACTIVATE '" class="activate"><button type="button" class="btn btn btn-primary btn-sm" data-toggle="tooltip" data-placement="top" title="" data-original-title="Активировать">A</button></a>' '<a href="{ADMIN}/modules/retivate/' $mod['id'] . '" onClick="return getConfirm('' . _DEACTIVATE . ' ' . $mod['title'] . '?')" title="' _DEACTIVATE '" class="deactivate"><button type="button" class="btn btn btn-primary btn-sm" data-toggle="tooltip" data-placement="top" title="" data-original-title="Деактивировать">D</button></a></a>';
                echo 
"
                <tr>
                    <td><span class="
pd-l-sm"></span>" $mod['id'] . "</td>
                    <td>" 
$mod['title'] . "</td>
                    <td>" 
$mod['content'] . "</td>
                    <td>" 
. (file_exists(ROOT.'usr/modules/'.$mod['title'].'/admin/index.php') ? '<font color="green">Да</font>' '<font color="red">Нет</font>') . "</td>
                    <td>" 
. ($mod['groups'] == '' '<i>Все</i>' $mod['groups']) . "</td>
                    <td>"
;
                echo 
$status_icon .'
                <a href="{ADMIN}/modules/edit/'
$mod['id'] .'">
                <button type="button" class="btn btn-info btn-sm" data-toggle="tooltip" data-placement="top" title="" data-original-title="Редактировать">E</button>
                </a>
                <a href="{ADMIN}/modules/delete/'
$mod['id'] .'" onclick="return getConfirm('Удалить модуль '. $mod['title'] .'?')">
                <button type="button" class="btn btn-danger btn-sm" data-toggle="tooltip" data-placement="top" title="" data-original-title="Удалить">X</button>
                </a>'
;
                echo 
"</td>
                    <td> <input type="
checkbox" name="checks[]" value="" . $mod['id'] . ""></td>
                </tr>"
;    
            }
        } 
        else 
        {
            echo 
'<tr><td colspan="8" align="center">Модулей нет.. это явный сбой в системе.</td></tr>';
        }
    
        echo 
'<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></tbody></table>
        
        <div align="right">
    <table>
    <tbody><tr>
    <td valign="top">
    <input name="submit" type="submit" class="btn btn-success" id="sub" value="Де/Активировать"><span class="pd-l-sm"></span>
    </td>
    </tr>
    </tbody></table>
    <br>    
    </div>
</form></div>
</section></div></div>'
;
        
$adminTpl->admin_foot();
    break;    
        
    case 
'ajax':
        
$versions[1] = 'RC3';
        switch(isset(
$url[3]) ? $url[3] : '')
        {                            
            case 
'delete':
                if(isset(
$url[4]) && isset($url[5]))
                {
                    
delete(intval($url[5]), $url[4]);
                    echo 
'<div class="_module_cat">Удаление модуля</div>';
                    echo 
'<div class="_inff" style="margin:0;"><span style="font-size:14px; font-weight:bold;">Действие выполнено</span><br />Модуль успешно удалён с сайта.</div>';
                }
                break;
        }
        break;
    
    case 
'edit':
        if(isset(
$url[3])) 
        {
            
$modId $url[3];
            
$query $db->query("SELECT * FROM ".DB_PREFIX."_plugins WHERE id = '" $modId "'");
            
$module $db->getRow($query);
            
$title $module['content'];
            
$groups explode(','$module['groups']);
            
$unshow explode(','$module['unshow']);
        } 
        else
        {
            
location();
        }

        
$adminTpl->admin_head('Модули | Редактировать модуль');
        echo 
'<div class="row"><div class="col-lg-12"><section class="panel"><div class="panel-heading no-border"><b>Редактирование модуля: '.$title.'</b></div><div class="panel-body"><div class="switcher-content"><form action="{ADMIN}/modules/save" method="post" name="news" role="form" class="form-horizontal parsley-form" data-parsley-validate="" novalidate="">
        
        <div class="form-group">
                    <label class="col-sm-3 control-label">Описание модуля:</label>
                    <div class="col-sm-4">
                    <input type="text" size="20" name="title" class="textinput" value="'
.$title.'" maxlength="100" maxsize="100" />
                    </div>
        </div>    
        <div class="form-group">
            <label class="col-sm-3 control-label">'
._GROUP_ACCESS.'</label>
            <div class="col-sm-4">
            <select name="groups[]" class="cat_select" multiple ><option value="" ' 
. (empty($groups) ? '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'], $groups) ? "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"><b>НЕ</b>отображать блоки:</label>
            <div class="col-sm-4">
            <select name="type[]" class="cat_select" multiple>'
;
            
$query $db->query("SELECT * FROM ".DB_PREFIX."_blocks_types ORDER BY type");
            while(
$rows $db->getRow($query)) 
            {
                
$selected in_array($rows['type'], $unshow) ? "selected" "";
                echo 
'<option value="' $rows['type'] . '" ' $selected '>' $rows['title'] . ' [' $rows['type'] . ']</option>';
            }
        echo 
'</select>
            </div>
        </div>'
;
        if(isset(
$modId)) 
        {
            echo 
'<input type="hidden" name="id" value="' $modId '">';
        }
        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="'
_UPDATE .'">                        
                    </div>
        </div></form></div></div></section></div></div>'
;        
        
        
$adminTpl->admin_foot();
        break;
        
        
    case 
'save':
        
$id = isset($_POST['id']) ? intval($_POST['id']) : '';
        
$title = isset($_POST['title']) ? filter($_POST['title'], 'title') : '';
        
$type = isset($_POST['type']) ? $_POST['type'] : '';
        
$groups = isset($_POST['groups']) ? $_POST['groups'] : false;
        
        
$g 0;
        
$groupList '';
        if(!empty(
$groups))
        {
            foreach(
$groups as $group)
            {
                if(
trim($group) !== '')
                {
                    
$g++;
                    if(
$g == 1)
                    {
                        
$groupList $group;
                    }
                    else
                    {
                        
$groupList .= ',' $group;
                    }
                }
            }        
        }
        
        
$d 0;
        
$deList '';
        if(!empty(
$type))
        {
            foreach(
$type as $typ)
            {
                if(
trim($typ) !== '')
                {
                    
$d++;
                    if(
$d == 1)
                    {
                        
$deList $typ;
                    }
                    else
                    {
                        
$deList .= ',' $typ;
                    }
                }
            }
        }
        
        
$adminTpl->admin_head('Модули системы | Редактирование');
        if(!empty(
$title))
        {
            
$db->query("UPDATE `" DB_PREFIX "_plugins` SET `content` = '" $title "' , `unshow` = '" $deList "', `groups` = '" $groupList "' WHERE `id` =" $id " LIMIT 1 ;");
            
delcache('plugins');
            
$adminTpl->info('Модуль успешно обновлён. <a href="{ADMIN}/modules">Просмотреть список модулей</a>');
        }
        else
        {

        }
        
        
$adminTpl->admin_foot();
            
        break;
    
    
    case 
"delete":
        
$id intval($url[3]);
        
$path filter($url[4]);
        
delete($id$path);
        
delcache('plugins');
        
location(ADMIN.'/modules/ok');
    break;
    
    case 
"retivate":
        
$id intval($url[3]);
        
retivate($id);
        
delcache('plugins');
        
location(ADMIN.'/modules/ok');
    break;    
    
    case 
'action':
        foreach(
$_POST['checks'] as $id
        {
            
retivate(intval($id));
        }
        
delcache('plugins');
        
location(ADMIN.'/modules/ok');
        break;
    
}
Онлайн: 2
Реклама