Вход Регистрация
Файл: app/models/admin/AdminTemplatesModel.php
Строк: 158
<?php

class AdminTemplatesModel {

    function 
index() {

        if (
$_POST['ok']) {

            
$do_file = false;
            
// Проверка загрузки с обычного браузера
            
if ($_FILES['file']['size'] > 0) {
                
$do_file = true;
                
$ifname = strtolower($_FILES['file']['name']);
                
//Определяем тип файла
                
$type = pathinfo($ifname, PATHINFO_EXTENSION);
                
//Конечное имя файла для сохранения с расширением
                
$fname = Functions::name_replace(Functions::truncate($ifname, 500)) . '.' . $type;
            }
            
//обработка файла
            
if ($do_file) {
                
// Список допустимых расширений файлов.
                
$al_ext = array(
                    
'zip'
                
);
                
$ext = explode(".", $fname);
                
// Проверка файла на наличие только одного расширения
                
if (count($ext) != 2) {
                    
$error .= 'Запрещенный формат файла!<br/>';
                }
                
// Проверка допустимых расширений файлов
                
if (!in_array($ext[1], $al_ext)) {
                    
$error .= 'Не допустимый формат файла!<br/>';
                }
            }

            if (!isset(
$error)) {
                
//если нет ошибок - пишем в базу  
                
if ((move_uploaded_file($_FILES['file']['tmp_name'], HOME . '/style/' . $fname)) == true) {

                    
$archive = new PclZip(HOME . '/style/' . $fname);
                    
$v_list = $archive->extract(PCLZIP_OPT_PATH, HOME . '/style/');
                    if (
$v_list == 0) {
                        
$error .= $archive->errorInfo(true);
                    }
                    
unlink(HOME . '/style/' . $fname);
                }

                if (
Cms::setup('adminlogs') == 1) {
                    
Cms::adminlogs('Редактор шаблонов', 'Загружен шаблон ' . $fname);
                } 
//пишем лог админа, если включено
                
Functions::redirect(Cms::setup('adminpanel') . '/templates');
            }
        }

        
$dir = opendir(HOME . '/style/');
        while (
$skin = readdir($dir)) {
            if ((
$skin != '.') && ($skin != '..') && ($skin != '.svn') && ($skin != 'admin')) {
                
$arrayrowskin[] = $skin;
            }
        }
        
closedir($dir);

        
SmartySingleton::instance()->assign(array(
            
'error' => $error,
            
'arrayrowskin' => $arrayrowskin
        
));
        
SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD . '/templates/admin/templates/index.tpl');
    }

    function 
del($temp) {
        if (
$_POST['ok']) {
            
Cms::DelDir(HOME . '/style/' . $temp);
            if (
Cms::setup('adminlogs') == 1) {
                
Cms::adminlogs('Редактор шаблонов', 'Удален шаблон ' . $temp);
            } 
//пишем лог админа, если включено
            
Functions::redirect(Cms::setup('adminpanel') . '/templates');
        }

        if (
$_POST['close']) {
            
redirect(Cms::setup('adminpanel') . '/templates');
        }

        
SmartySingleton::instance()->assign(array(
            
'temp' => $temp
        
));
        
SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD . '/templates/admin/templates/del.tpl');
    }

    function 
view($temp) {

        
//стили сайта    
        
if ($handle = opendir(HOME . '/style/' . $temp . '/css')) {
            while (
false !== ($file = readdir($handle))) {
                if (
$file != "." && $file != "..") {
                    if (
substr($file, strlen($file) - 4) == ".css") {
                        
$arrayrowcss[] = $file;
                    }
                }
            }
            
closedir($handle);
        }

        
SmartySingleton::instance()->assign(array(
            
'dirview' => $temp,
            
'arrayrowcss' => $arrayrowcss
        
));
        
SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD . '/templates/admin/templates/view.tpl');
    }

    function 
edit($temp) {
        
$f = $_REQUEST['template'];

        if (
file_get_contents(Cms::Input(HOME . '/style/' . $f))) {
            if (isset(
$_POST['ok'])) {
                
chmod(HOME . '/style/' . $f, 0666);
                
$fps = fopen(HOME . '/style/' . $f, 'w+'); // Открываем файл в режиме записи 
                
$fp = gzwrite($fps, $_POST['text']); // Запись в файл
                
fclose($fp); //Закрытие файла
                
chmod(HOME . '/style/' . $f, 0644);

                if (
Cms::setup('adminlogs') == 1) {
                    
Cms::adminlogs('Редактор шаблонов', 'Отредактирован шаблон ' . $f);
                } 
//пишем лог админа, если включено

                
Functions::redirect(Cms::setup('adminpanel') . '/templates/edit?template=' . $f);
            }
        } else {
            
$error = 'Шаблона не обнаружено!';
        }

        
SmartySingleton::instance()->assign(array(
            
'error' => $error,
            
'skin' => explode('/', $f),
            
'css_style' => count(explode('css', $f)),
            
'dirview' => $f,
            
'dir' => explode('/', Cms::Input($_SERVER['REQUEST_URI'])),
            
'template' => file_get_contents(HOME . '/style/' . $f),
        ));
        
SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD . '/templates/admin/templates/edit.tpl');
    }

    function 
email($temp) {

        if (
$temp) {

            
$f = explode('edit', Cms::Input($_SERVER['REQUEST_URI']));

            if (isset(
$_POST['ok'])) {
                
chmod(HOME . '/style/' . $f[1], 0666);
                
$fps = fopen(HOME . '/style/' . $f[1], 'w+'); // Открываем файл в режиме записи 
                
$fp = gzwrite($fps, $_POST['text']); // Запись в файл
                
fclose($fp); //Закрытие файла
                
chmod(HOME . '/style/' . $f[1], 0644);
                if (
Cms::setup('adminlogs') == 1) {
                    
Cms::adminlogs('Редактор шаблонов', 'Отредактирован шаблон письма ' . $f[1]);
                } 
//пишем лог админа, если включено
                
Functions::redirect($_SERVER['REQUEST_URI']);
            }

            
SmartySingleton::instance()->assign(array(
                
'template' => file_get_contents(HOME . '/style/' . $f[1]),
                
'email' => $f[1]
            ));
            
SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD . '/templates/admin/templates/email_edit.tpl');
        } else {
            if (
$handle = opendir(HOME . '/style/' . Cms::setup('skin') . '/templates/mail')) {
                while (
false !== ($file = readdir($handle))) {
                    if (
$file != "." && $file != "..") {
                        if (
substr($file, strlen($file) - 4) == ".tpl") {
                            
$arrayrowtemplate[] = $file;
                        }
                    }
                }
                
closedir($handle);
            }

            
SmartySingleton::instance()->assign(array(
                
'arrayrowtemplate' => $arrayrowtemplate
            
));
            
SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD . '/templates/admin/templates/email.tpl');
        }
    }

}
Онлайн: 2
Реклама