Вход Регистрация
Файл: root/modules/cats.admin.php
Строк: 381
<?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;
}

function 
main() 
{
global 
$adminTpl, $config, $core, $admin_conf, $db;
    
$adminTpl->admin_head(_CAT_PATH);
    echo 
'<div class="row">
            <div class="col-lg-12">
                <section class="panel">
                    <div class="panel-heading">
                        <b>' 
. _LIST . '</b>
                    </div>'
;    
    
$query = $db->query("SELECT * FROM ".DB_PREFIX."_categories ORDER BY id ASC, parent_id 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}/cats/action">
                        <table class="table no-margin">
                            <thead>
                                <tr>
                                    <th><span class="pd-l-sm"></span>ID</th>
                                    <th class="col-md-3">' 
. _TITLE . '</th>
                                    <th class="col-md-1">' 
. _MODULE . '</th>
                                    <th class="col-md-3">' 
. _DESCRIPTION .'</th>
                                    <th class="col-md-1">' 
. _TRANSLIT . '</th>
                                    <th class="col-md-1">' 
. _POSITION . '</th>
                                    <th class="col-md-2">' 
. _ICON . '</th>
                                    <th class="col-md-2">' 
. _ACTIONS . '</th>
                                    <th class="col-md-1"><input type="checkbox" name="all" onclick="setCheckboxes('
tablesForm', true); return false;"></th>
                                </tr>
                            </thead>
                            <tbody>'
;
        while(
$cat = $db->getRow($query)) 
        {
            echo 
'
            <tr>
                <td><span class="pd-l-sm"></span>' 
. $cat['id'] . '</td>
                <td>' 
. $core->getCat($cat['module'], $cat['id'], 'full', 1) . '</td>
                <td>' 
. _mName($cat['module']) . '</td>
                <td>' 
. (empty($cat['description']) ? _NO : str($cat['description'], 17)) . '</td>
                <td>' 
. $cat['altname'] . '</td>
                <td>' 
. $cat['position'] . '</td>
                <td>' 
. (empty($cat['icon']) ? _NO : _THERE_IS) . '</td>
                <td>
                <a href="{ADMIN}/cats/edit/' 
. $cat['id'] . '">
                <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}/cats/delete/' 
. $cat['id'] . '" onClick="return getConfirm('' . str_replace('[cat]', $cat['name'], _CAT_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> <input type="checkbox" name="checks[]" value="' 
. $cat['id'] . '"><span class="pd-l-sm"></span></td>
            </tr>'
;    
            
        }
    echo 
'<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></tbody></table>        
    <div align="right">
    <table>
    <tr>        
    <td valign="top">
    <input name="submit" type="submit" class="btn btn btn-danger" id="sub" value="' 
. _DELETE . '" /><span class="pd-l-sm"></span>
    </td>
    </tr>
    </table>
    <br>    
    </div>
    </form></div>'
;    
    }     
    else 
    {
    echo 
'<div class="panel-heading">'  . _CAT_NO_CATS . '</div>';        
    }
    echo
'</section></div></div>';
    
$adminTpl->admin_foot();
}

function 
add($cat = null) 
{
global 
$adminTpl, $config, $core, $admin_conf, $db;
    if(isset(
$cat)) 
    {
        
$query = $db->query("SELECT * FROM ".DB_PREFIX."_categories WHERE id = '" . $cat . "'");
        
$ccid = $cat;
        
$cat = $db->getRow($query);
        
$name = prepareTitle($cat['name']);
        
$altname = $cat['altname'];
        
$description = $cat['description'];
        
$keywords = $cat['keywords'];    
        
$icon = !isset($cat['icon']) ? $cat['icon'] : 'no.png';
        
$pid = $cat['parent_id'];
        
$mod = $cat['module'];
        
$lang = _CAT_UPDATE;
    } 
    else 
    {
        
$name = isset($_POST['name']) ? filter(trim($_POST['name'])) : '';
        
$altname = isset($_POST['altname']) ? ($_POST['altname'] == '') ? translit($name) : translit($_POST['altname']) : '';
        
$description = isset($_POST['description']) ? filter($_POST['description']) : '';
        
$keywords = isset($_POST['keywords']) ? filter($_POST['keywords'], 'a') : '';    
        
$icon = isset($_POST['icon']) ? filter($_POST['icon'], 'a') : 'no.png';        
        
$pid = false;
        
$mod = 'news';
        
$lang = _CAT_ADD;
    }
    
$adminTpl->admin_head(_CAT_PATH.' | '.$lang);
    echo 
'<div class="row"><div class="col-lg-12"><section class="panel"><div class="panel-heading no-border"><b>'. $lang .'</b></div><div class="panel-body"><div class="switcher-content">';
    echo 
'<script language="javascript">
    var errsConf = new Array();
    errsConf[0] = new Array('
name','nameErr',''. _CAT_ERROR_1 .'');
    </script>'
;
    echo 
'<div id="currentErrors"></div>';
    echo 
'<form action="{ADMIN}/cats/save" onsubmit="return caa(false);" method="post" name="cats" role="form" class="form-horizontal parsley-form" data-parsley-validate>
        <div class="form-group">
                    <label class="col-sm-3 control-label">'
. _CAT_NAME .'</label>
                    <div class="col-sm-4">
                        <input type="text" name="name"  value="'
. $name .'" class="form-control" id="name"  data-parsley-required="true" data-parsley-trigger="change" '. (!isset($cat) ? "onchange="getTranslit(gid('name').value, 'altname'); caa(this);"" : "" ) .'">
                    </div>
         </div>
         <div class="form-group">
                    <label class="col-sm-3 control-label">'
. _CAT_URL .'</label>
                    <div class="col-sm-4">
                        <input type="text" name="altname"  value="'
. $altname .'" class="form-control" id="altname"  data-parsley-required="true" data-parsley-trigger="change" ">
                    </div>
         </div>
         <div class="form-group">
                    <label class="col-sm-3 control-label">'
. _CAT_DESCR .'</label>
                    <div class="col-sm-4">
                        <input type="text" name="description"  value="'
. $description .'" class="form-control" id="description"  data-parsley-required="true" data-parsley-trigger="change" ">
                    </div>
         </div>
         <div class="form-group">
                    <label class="col-sm-3 control-label">'
. _CAT_KEYS .'</label>
                    <div class="col-sm-4">
                        <input type="text" name="keywords"  value="'
. $keywords .'" class="form-control" id="keywords"  data-parsley-required="true" data-parsley-trigger="change" ">
                    </div>
         </div>
         <div class="form-group">
                    <label class="col-sm-3 control-label">'
. _CAT_ICON .'</label>
                    <div class="col-sm-4">'
;        
    
$path = 'media/cats/';
    
$dh = opendir(ROOT . $path);
    echo 
'<table width=100%><tr><td  width="190"><select name="icon" id="icon" onchange="changeIcon('' . $path . '' + this.value, 'iconImg')" ><option value="">' . _CAT_ICON_NO . '</option>';
    while (
$file = readdir($dh)) 
    {
        if(
is_file(ROOT . $path.$file) && $file != '.' && $file != '..' && $file != 'no.png') 
        {
            
$selected = ($icon == $file) ? "selected" : "";
            echo 
'<option value="' . $file . '" ' . $selected . '>' . $file . '</option>';
        }
    }
    echo 
'</select></td><td valign="top"><span class="pd-l-sm"></span><img width="32" height="32" src="' . $path . $icon . '" border="0" id="iconImg" /></tr>
    </table></div>
         </div>
         <div class="form-group">
                    <label class="col-sm-3 control-label">'
. _CAT_INCAT .'</label>
                    <div class="col-sm-4">
                        <select name="category" id="category" ><option value="">' 
. _CAT_INCAT_NO . '</option>';
    
$cats_arr = $core->aCatList();
    foreach (
$cats_arr as $cid => $name) {
        
$selected = ($pid == $cid) ? "selected" : "";
        echo 
'<option value="' . $cid . '" ' . $selected . '>' . $name . '</option>';
    }        
    echo
'</select></div>
         </div>'
;
    echo 
'<div class="form-group">
                    <label class="col-sm-3 control-label">'
. _CAT_MODULE .'</label>
                    <div class="col-sm-4">
                        <select name="module" id="module" onchange="updateCatList(this.value, '
category');" >';
    
$exceMods = array('blog', 'board', 'feed', 'sitemap', 'feedback', 'gallery', 'pm', 'profile', 'search', 'poll','mainpage','guestbook');
    foreach (
$core->getModList() as $module) 
    {
        if(!
in_array($module, $exceMods))
        {
            
$selected = ($module == $mod) ? "selected" : "";
            echo 
'<option value="' . $module . '" ' . $selected . '>' . _mName($module) . '</option>';
        }
    }
    echo
'</select></div>
         </div>
         <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($cat) ? _UPDATE : _ADD) .'" />                        
                    </div>
        </div>'
;
    if(isset(
$ccid)) {
    echo 
'<input type="hidden" name="edit" value="1">';
    echo 
'<input type="hidden" name="cid" value="' . $ccid . '">';
    }
    echo 
'</form></div></div>';  
    echo
'</section></div></div>';
    
$adminTpl->admin_foot();
}

function 
cat_save() {
global 
$adminTpl, $db, $core;
    
$adminTpl->admin_head(_CAT_PATH.' | '._CAT_ADD);
    
$cid = isset($_POST['cid']) ? intval($_POST['cid']) : 0;
    
$name = filter($_POST['name'], 'a');
    
$altname = ($_POST['altname'] == '') ? translit($name) : str_replace(array('-', ' '), array('_', '_'), $_POST['altname']);
    
$description = filter($_POST['description']);
    
$keywords = filter($_POST['keywords'], 'a');
    
$icon = filter($_POST['icon'], 'a');
    
$module = filter($_POST['module'], 'module');
    
$pid = intval($_POST['category']);
    if(!empty(
$name) && !empty($altname)) 
    {
        if(isset(
$_POST['edit'])) 
        {
            
$db->query("UPDATE `" . DB_PREFIX . "_categories` SET `name` = '" . $db->safesql(processText($name)) . "', `altname` = '" . $altname . "', `description` = '" . $db->safesql(processText($description)) . "', `keywords` = '" . $db->safesql(processText($keywords)) . "', `module` = '" . $module . "', `icon` = '" . $icon . "', `parent_id` = '" . $pid . "' WHERE `id` =".$cid."  LIMIT 1");
            
$adminTpl->info(_CAT_UPDATESUCCESS);
        } 
        else 
        {
        if(
$db->query("INSERT INTO `" . DB_PREFIX . "_categories` ( `id` , `name` , `altname` , `description` , `keywords` , `module` , `icon` , `position` , `parent_id` ) 
    VALUES (
    NULL, '" 
. $db->safesql(processText($name)) . "', '" . $altname . "', '" . $db->safesql(processText($description)) . "', '" . $keywords . "', '" . $module . "', '" . $icon . "', '0', '" . $pid . "'
    );"
)) $adminTpl->info(_CAT_ADDSUCCESS);
        }
        @
unlink(ROOT . 'tmp/cache/categories.cache');
    } 
    else 
    {
        
$adminTpl->info(_GLOBAL_ERROR_0, 'error');
    }
    
$adminTpl->admin_foot();
}

function 
scan($cat = null) {
    global 
$adminTpl, $config, $core, $admin_conf, $db;
    
$adminTpl->admin_head(_CAT_PATH.' | '._CAT_FAST_ADD);
    echo 
'<div class="row"><div class="col-lg-12"><section class="panel"><div class="panel-heading no-border"><b>'. _CAT_FAST_ADD .'</b></div><div class="panel-body"><div class="switcher-content">';
    
    echo 
'<form action="{ADMIN}/cats/save_scan" method="post" name="news" role="form" class="form-horizontal parsley-form" data-parsley-validate>';
    echo 
'<div class="form-group">
                    <label class="col-sm-3 control-label">'
. _CAT_MODULE .'</label>
                    <div class="col-sm-4">
                        <select name="module" id="module" onchange="updateCatList(this.value, '
category');" >';
    
$exceMods = array('blog', 'board', 'feed', 'sitemap', 'feedback', 'gallery', 'pm', 'profile', 'search', 'poll','mainpage', 'guestbook');
    foreach (
$core->getModList() as $module) 
    {
        if(!
in_array($module, $exceMods))
        {
            
$selected = ($module == $mod) ? "selected" : "";
            echo 
'<option value="' . $module . '" ' . $selected . '>' . _mName($module) . '</option>';
        }
    }
    echo
'</select></div>
        </div>    
        <div class="form-group">
            <label class="col-sm-3 control-label">'
. _CAT_LIST .'</label>
            <div class="col-sm-4">
                <textarea name="full" id="full" class="form-control" rows="10">' 
. $default . '</textarea>
            </div>
        </div>
        <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="'
. _ADD .'" />                        
                    </div>
        </div>'
;    
    echo 
'</form></div></div>';  
    echo
'</section></div></div>';
    
$adminTpl->admin_foot();
}

function 
save_scan() {

global 
$adminTpl, $db, $core;
    
$adminTpl->admin_head(_CAT_PATH . '|' . _CAT_ADDS);
    
$module = filter($_POST['module'], 'module');
    
$full = explode("n", $_POST['full']);    
    
$info = '';
    if (!empty(
$full)) {
    foreach(
$full as $cat) {
        if(
$cat !== '' && !is_array($cat)) {
        
$name = filter($cat);
        
$altname = translit($name);
        
$db->query("INSERT INTO `" . DB_PREFIX . "_categories` (`name` , `altname` ,  `module` ) VALUES ('" . $db->safesql($name) . "', '" . $altname . "', '" . $module . "');");
        
$info .= str_replace(array('[name]', '[altname]'), array($name, $altname), _CAT_LIST_SUCCESS);    
        }    
        }
        
$adminTpl->info($info);    
        }else {
            
$info .= _BASE_ERROR_0;
            
$adminTpl->info($info, 'error');
            }
        
    @
unlink(ROOT . 'tmp/cache/categories.cache');    
    
$adminTpl->admin_foot();
}

function 
delete($id) {
global 
$adminTpl, $db;
    
$db->query("DELETE FROM `" . DB_PREFIX . "_categories` WHERE `id` = " . $id . " LIMIT 1");
    
$db->query("DELETE FROM `" . DB_PREFIX . "_news` WHERE `cat` like '%," . $id . ",%'");
    
    if(
file_exists(ROOT . 'tmp/cache/categories.cache'))
    {
        @
unlink(ROOT . 'tmp/cache/categories.cache');
    }
}

switch(isset(
$url[2]) ? $url[2] : null) {
    default:
        
main();
    break;    
    
    case 
"add":
        
add();
    break;
    
    case 
"save":
        
cat_save();
    break;
    
    case 
"delete":
        
$id = intval($url[3]);
        
delete($id);
        
header('Location: /'.ADMIN.'/cats');
    break;
    
    case 
"edit":
        
$id = intval($url[3]);
        
add($id);
    break;
    
    case 
"action":
    
$type = $_POST['submit'];
    if(
is_array($_POST['checks'])) {
        switch(
$type) {
            case 
_DELETE:
                foreach(
$_POST['checks'] as $id) {
                    
delete(intval($id));
                }
            break;
        }
    }
        
header('Location: /'.ADMIN.'/cats');
    break;
    
    case 
"scan":
        
scan();
    break;
    
    case 
"save_scan":
        
save_scan();
    break;
}
Онлайн: 1
Реклама