А так же о всякой фигне
Много раз возникала задача к какой-либо текстовой странице прикрепить ссылку на .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 ограничения на размер файла убраны по умолчанию, но появилась проблема с вставкой кода ссылки, т.к. в текстовом редакторе нельзя выбрать для ссылки загруженный файл, а можно только вручную его указать. Выхода из этой ситуации два: первый- указывать файл через диалог вставки изображения, а затем через редактор исходного кода копировать ссылку на файл; второй- подключить другой текстовый редактор, но как это сделать- читайте в скором времени.
Если возникла необходимость создать галерею на opencart, то в стандартной сборке присутствует плагин magnific-popup. По умолчанию он автоматически подключается к карточке товара, а чтобы был подключен всегда сделаем следующее:
Изображения подкатегорий opencart 2
В стандартном opencart категории выводятся только списком, в то время как в админке к каждой категории можно присвоить изображение, которое будет показываться в описании категории товаров. Намного красивее можно вывести категории товаров в виде плитки с картинками.