• Автор:

    Flesha
  • Добавлено:

    май 05, 2014
  • Комментариев:

    1
  • Просмотров:

    1381

Хак Загрузка файлов в папку шаблона

Хак Загрузка файлов в папку шаблона

Иногда приходится быстро отредактировать шаблон, в том числе залить новую картинку в шаблон или новый 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>


Версия DLE: 9.x-10.x
Вернуться

Комментарии:


  1. vaniya92 → 23 мая 2014 13:29
    Он грузит в корень шаблона или можно любую папку выбрать, например images?
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.