Opencart файловый менеджер



Много раз возникала задача к какой-либо текстовой странице прикрепить ссылку на .pdf или .xlx файл. По умолчанию менеджер файлов opencart не поддерживает работу с этими типами файлов, а для их размещения предусмотрен отдельный механизм, файлы для скачивания становятся доступны на странице личного кабинета покупателя. Нашу задачу этот способ никак не решает, так что выход один- переделать файловый менеджер.

Открываем: /admin/controller/common/filemanager.php. В раойне 245 строчки находим код:

// Allowed file extension types
$allowed = array(
'jpg',
'jpeg',
'gif',
'png'
);

В который через запятую добавляем нужные расширения, например:

// Allowed file extension types
$allowed = array(
'jpg',
'jpeg',
'gif',
'png',
'xls',
'xlsx',
'doc',
'docx'
);

Немного ниже находим фильтр файлов по mime-type:

// Allowed file mime types
$allowed = array(
'image/jpeg',
'image/pjpeg',
'image/png',
'image/x-png',
'image/gif',
);

Добавляем в него нужные mime-type, самые распространённые типы которых можно посмотреть, например, в википедии.

// Allowed file mime types
$allowed = array(
'image/jpeg',
'image/pjpeg',
'image/png',
'image/x-png',
'image/gif',
'application/vnd.ms-excel',
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
'application/msword',
'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
);

Теперь менеджер файлов будет загружать не только картинки но и документы. Для того чтобы он их отображал и позволял выбрать, нужно подправить фильтр. В районе 36 строчки находим:

// Get files
$files = glob($directory . '/' . $filter_name . '*.{jpg,jpeg,png,gif,JPG,JPEG,PNG,GIF}', GLOB_BRACE);

И добавляем туда наши новые расширения. Обязательно в двух вариантах: заглавными и строчными буквами. Дублировать приходится потому что файловая система в linux like операционных системах жестко различает заглавные и строчные буквы, и только для windows они являются одинаковыми.

Далее. Если вы используете opencart версии 1.5.x, то Вам наверняка нужно увеличить размер загружаемого файла. Для этого найдите строчку:

if ($this->request->files['image']['size'] > 300000) {
$json['error'] = $this->language->get('error_file_size');
				}

Вместо 300000 подставьте нужное значение. Во второй версии opencart ограничения на размер файла убраны по умолчанию, но появилась проблема с вставкой кода ссылки, т.к. в текстовом редакторе нельзя выбрать для ссылки загруженный файл, а можно только вручную его указать. Выхода из этой ситуации два: первый- указывать файл через диалог вставки изображения, а затем через редактор исходного кода копировать ссылку на файл; второй- подключить другой текстовый редактор, но как это сделать- читайте в скором времени.


Сообщество: AWS

Комментариев(2)


ID: #310   Создан:
Автор: kwakin

как это сделать на ocstore 21021

ID: #311   Создан:
Автор: ololoev
>>310

Не знаю. Я уже 3-4 года, как не занимаюсь опенкартом, что сейчас с ним творится- хз.

Всего: 2 комментариев на 1 страницах

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



Сообщества