Название: ZipArchive Comment
Автор: Qnut
CMS: DLE 9.x — 10.2
Версия: 0.1.1
Описание:
Данный хак позволяет добавлять вам комментарий к загружаемому на сервер ZIP архиву.
Возможности:
Выбор типа комментария архива:
— Добавление обычного комментария в архив;
— Добавление файла в архив, который лежит в корне сайта;
— Создание файла с комментарием;
— Возможность указать максимальный вес файла, который будем править, в Кб, чтобы ограничить нагрузку на сервер;
Требования:
PHP 5: 5.2.0+
PECL zip: 1.1.0+
Установка:
Открыть engine/classess/uploads/upload.class.php, найти ~471 строка:
$uploaded_filename = $this->file->saveFile(ROOT_DIR . "/uploads/files/".FOLDER_PREFIX, $filename, $this->use_prefix);
Ниже вставить:
//Найстройка хака
$ZipArchiveOpt = array (
'type' => "1", // Тип (1 - Добавление обычного комментария в архив; 2 - Добавление файла в архив, который лежит в корне сайта; 3 - Создание файла с комментарием)
'size' => "10240", // Максимальный вес файла в Кб, чтобы ограничить нагрузку на сервер
'name' => "ReadMe.txt", // ReadMe.txt - имя файла, который будет создан
'file' => "ReadMe.txt", // ReadMe.txt - имя файла, который будет взят с папки uploads, в котором будет ваш комментарий
'comment' => "Архив скачан с сайта coderlab.ru", // Комментарий архива
);
if($ZipArchiveOpt['type'] == 1) {
if(stripos ( $filename, ".zip" ) AND ($size <= $ZipArchiveOpt['size']) AND (PHP 5 >= 5.2.0, PECL zip >= 1.1.0)) {
$data_url = ROOT_DIR . "/uploads/files/" . FOLDER_PREFIX .$uploaded_filename;
$zip = new ZipArchive;
if ($zip->open($data_url) === TRUE){
$zip->setArchiveComment($ZipArchiveOpt['comment']);
$zip->close();
}
}
} elseif ($ZipArchiveOpt['type'] == 2) {
if(stripos ( $filename, ".zip" ) AND ($size <= $ZipArchiveOpt['size']) AND (PHP 5 >= 5.2.0, PECL zip >= 1.1.0)) {
$data_url = ROOT_DIR . "/uploads/files/" . FOLDER_PREFIX .$uploaded_filename;
$data_urls = ROOT_DIR . "/uploads/" .$ZipArchiveOpt['file'];
$zip = new ZipArchive;
if ($zip->open($data_url, ZipArchive::CREATE) === TRUE){
$zip->addFile("{$data_urls}", "{$ZipArchiveOpt['file']}");
$zip->close();
}
}
} else {
if(stripos ( $filename, ".zip" ) AND ($size <= $ZipArchiveOpt['size']) AND (PHP 5 >= 5.2.0, PECL zip >= 1.1.0)) {
$data_url = ROOT_DIR . "/uploads/files/" . FOLDER_PREFIX .$uploaded_filename;
$zip = new ZipArchive;
if ($zip->open($data_url, ZipArchive::CREATE) === TRUE){
$zip->addFromString("{$ZipArchiveOpt['name']}","{$ZipArchiveOpt['comment']}");
$zip->close();
}
}
}
У кого возникнут проблемы с кодировкойНаходим:
if($ZipArchiveOpt['type'] == 1 ) {
Вставялем выше:
$ZipArchiveOpt['comment'] = iconv("WINDOWS-1251", "UTF-8", $ZipArchiveOpt['comment']);
или
$ZipArchiveOpt['comment'] = iconv("UTF-8", "WINDOWS-1251", $ZipArchiveOpt['comment']);
Скриншоты
Новость отредактировал: Qnut
Причина: Обновлена версия