ZipArchive Comment [DLE 9.x — 10.2]

ZipArchive Comment [DLE 9.x — 10.2]

Название: 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

Причина: Обновлена версия