» » » Загрузка файлов в папку шаблона из админпанели [DLE 10.x]

Ошибка добавление новости
Вы зашли на сайт как незарегистрированный пользователь.
Для добавления новости Вам требуется зарегистрироваться либо войти на сайт под своим именем.
Ошибка добавление вопроса
Вы зашли на сайт как незарегистрированный пользователь.
Для добавления вопроса Вам требуется зарегистрироваться либо войти на сайт под своим именем.

Загрузка файлов в папку шаблона из админпанели [DLE 10.x]

 Robot    2014.06.05    DLE хаки     2113 
Загрузка файлов в папку шаблона из админпанели [DLE 10.x]


Название: Upload files admin panel
Автор: ravchik
CMS: DLE

Описание:
Иногда приходится быстро отредактировать шаблон, в том числе залить новую картинку в шаблон или новый css/js файл. Для этого приходится запускать FTP-клиент и подключаться к нужному серверу. Бывают случаи, когда находишься не на рабочем месте и нет доступа по FTP. Для таких случаев создан маленький хак, который добавляет возможность загрузить файлы в папку с шаблоном (и под папки) непосредственно из раздела редактирования шаблонов в админпанели.

Открыть файл /engine/inc/templates.php и найти:
<table width="100%">
    <tr>
        <td bgcolor="#EFEFEF" height="29" style="padding-left:10px;"><div class="navigation">{$lang['opt_edteil']} <b>{$do_template}</b> {$lang['templates_help']} <a class="main" href="http://dle-news.ru/extras/online/all2.html" target="_blank">http://dle-news.ru/extras/online/all2.html</a></div></td>
    </tr>
</table>
<div class="unterline"></div>


Ниже вставить:
HTML;
// Загрузка файлов в папку с шаблоном
echo "<table width='100%' style='table-layout:fixed;'><tr><td style='padding-left:10px;'><div class='navigation'><b>Загрузка файлов в папку шаблона</b></div><form method='post' enctype='multipart/form-data'>Выберите папку для загрузки  <select name='dirname'>";
$tplpath = "/templates/".$do_template;
showTree("./".$tplpath, "");
function showTree($folder, $space) {
    $files = scandir($folder);
    foreach($files as $file) {
        if (($file == '.') || ($file == '..')) continue;
        $f0 = $folder.'/'.$file;
        if (is_dir($f0)) { echo "<option value=\"".$space.$file."\">".$space.$file."</value>\n"; }
    }
}
echo "</select> <input name=\"file\" size=\"18\" type=\"file\" value=\"\" > <input name=\"submit\" type=\"submit\" value=\"Загрузить\" class=\"btn btn-primary\"></form>";
$dirname = htmlspecialchars(stripslashes($_POST['dirname']));
$file = $_FILES['file']['tmp_name'];
$filename = $_FILES['file']['name'];
if(!empty($file)) {
    ini_set('memory_limit', '32M');
    $maxsize = "20000000";
    $extentions = array("gif","jpg","jpeg","png","swf","js","css","tpl");
    $size = filesize ($_FILES['file']['tmp_name']);
    $type = strtolower(substr($filename, 1 + strrpos($filename, ".")));
    if($size > $maxsize) {
        echo 'Вы загружаете слишком большой по объёму файл.';
    } elseif(!in_array($type,$extentions)) {
        echo '<b>  Данный файл запрещен к загрузке.</b>';
    } else {
        if (copy($file, ROOT_DIR.$tplpath."/".$dirname."/".$filename))
        echo " Файл <b>".$filename."</b> загружен в папку ".$tplpath."/".$dirname."/<script>setTimeout('location.replace(\"{$PHP_SELF}?mod=templates\")', 3000);</script>";
    }
}
echo "</td></tr></table>";
// конец загрузки
echo <<<HTML
<div class="unterline"></div>
Другие новости по теме:
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.