sol_los
Мой дом здесь!
- Регистрация
- 17 Окт 2011
- Сообщения
- 424
- Реакции
- 278
- Автор темы
- #1
Задолбал этот опенкарт - на каждую банальную хрень приходится искать модуль.
Вот и в этот раз - клиенту понадобилось загружать на сайт файлы и добавлять в текст, ну неужели нельзя это было сделать из коробки? ведь не все умеют ковырять исходный код или загружать файлы через фтп и создавать ссылки.
ocmod не стал делать, ввиду постоянных изменений от версии к версии - потому просто инструкция, по которой можно будет в любой версии сварганить что-то подобное.
идем по пути admin/controller/common и правим filemanager.php
находим такие вот массивы с определением расширения файла
// Allowed file extension types
и добавляем сюда свои
далее опять смотрим уже mime файлов
// Allowed file mime types
и добавляем свои
в этом же файле, не обязательная часть, а так - для эстетики
находим
в этой конструкции есть такая позиция
заменяем ее на
сейчас покажу для чего это нужно
идем по пути admin/view/template/common и редактируем filemanager.tpl
в нем находим конструкцию
вот для чего мы сделали замену в предыдущем файле - здесь проверяется тип файла и если он image - показываем это самое изображение, если это file - просто показываем иконку файла
добавляем после вышенайденной конструкции
если у вас сайт без ssl - вместо HTTPS_CATALOG используем HTTP_CATALOG
также я в папку images положил свою иконку files.png - так что можете тоже найти свою.
при желании можно даже сделать на каждое расширение свою иконку, но мне это уже **х не нужно.
после этих манипуляций будет работать как загрузка файлов так и их отображение в файлменеджере.
теперь нам нужно вставить ссылку на этот файл в редакторе
идем по пути admin/view/javascript/summernote открываем opencart.js
добавляем в самом начале или в самом конце файла
теперь редактируем там же файл summernote.js
находим в нем
и заменяем на
сохраняем все эти дела и идем любоваться - в любом месте где работает summernote жмем кнопку "Ссылка" - и наблюдаем у поля ввода ссылки кнопку File - при нажатии на которую открывается файлменеджер - в котором мы жмякаем на нужный нам файл и ссылка на этот файл копируется в стандартное поле для ссылки
Вот и в этот раз - клиенту понадобилось загружать на сайт файлы и добавлять в текст, ну неужели нельзя это было сделать из коробки? ведь не все умеют ковырять исходный код или загружать файлы через фтп и создавать ссылки.
ocmod не стал делать, ввиду постоянных изменений от версии к версии - потому просто инструкция, по которой можно будет в любой версии сварганить что-то подобное.
идем по пути admin/controller/common и правим filemanager.php
находим такие вот массивы с определением расширения файла
// Allowed file extension types
PHP:
$allowed = array(
'jpg',
'jpeg',
'gif',
'png',
PHP:
'pdf',
'doc',
'docx',
'xls',
'xlsx'
далее опять смотрим уже mime файлов
// Allowed file mime types
PHP:
$allowed = array(
'image/jpeg',
'image/pjpeg',
'image/png',
'image/x-png',
'image/gif',
и добавляем свои
PHP:
'application/pdf',
'application/vnd.ms-excel',
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
'application/msword',
'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
в этом же файле, не обязательная часть, а так - для эстетики
находим
Код:
} elseif (is_file($image)) {
$data['images'][] = array(
PHP:
'type' => 'image',
PHP:
'type' => (mime_content_type($image) == "image/jpeg" || mime_content_type($image) == "image/gif" || mime_content_type($image) == "image/png") ? 'image' : 'doc',
идем по пути admin/view/template/common и редактируем filemanager.tpl
в нем находим конструкцию
PHP:
<?php if ($image['type'] == 'image') { ?>
<a href="<?php echo $image['href']; ?>" class="thumbnail">
<img src="<?php echo $image['thumb']; ?>" alt="<?php echo $image['name']; ?>" title="<?php echo $image['name']; ?>" /></a>
<label>
<input type="checkbox" name="path[]" value="<?php echo $image['path']; ?>" />
<?php echo $image['name']; ?></label>
<?php } ?>
добавляем после вышенайденной конструкции
PHP:
<?php if ($image['type'] == 'doc') { ?>
<a href="<?php echo $image['href']; ?>" class="thumbnail">
<img src="<?php echo HTTPS_CATALOG; ?>/image/files.png" alt="<?php echo $image['name']; ?>" title="<?php echo $image['name']; ?>" /></a>
<label>
<input type="checkbox" name="path[]" value="<?php echo $image['path']; ?>" />
<?php echo $image['name']; ?></label>
<?php } ?>
также я в папку images положил свою иконку files.png - так что можете тоже найти свою.
при желании можно даже сделать на каждое расширение свою иконку, но мне это уже **х не нужно.
после этих манипуляций будет работать как загрузка файлов так и их отображение в файлменеджере.
теперь нам нужно вставить ссылку на этот файл в редакторе
идем по пути admin/view/javascript/summernote открываем opencart.js
добавляем в самом начале или в самом конце файла
Код:
function getFileMan(){
$('#modal-image').remove();
$.ajax({
url: 'index.php?route=common/filemanager&token=' + getURLVar('token'),
dataType: 'html',
beforeSend: function() {
$('#button-image i').replaceWith('<i class="fa fa-circle-o-notch fa-spin"></i>');
$('#button-image').prop('disabled', true);
},
complete: function() {
$('#button-image i').replaceWith('<i class="fa fa-upload"></i>');
$('#button-image').prop('disabled', false);
},
success: function(html) {
$('body').append('<div id="modal-image" class="modal">' + html + '</div>');
$('#modal-image').modal('show');
$('#modal-image').delegate('a.thumbnail', 'click', function(e) {
e.preventDefault();
$('.note-link-url').val($(this).attr('href'));
$('#modal-image').modal('hide');
});
}
});
}
теперь редактируем там же файл summernote.js
находим в нем
Код:
'<input class="note-link-url form-control" type="text" value="http://" />' +
Код:
'<div class="input-group">'+
'<input class="note-link-url form-control" type="text" value="http://" />' +
'<span class="input-group-btn">'+
'<button class="fileman form-control" type="button" onclick="getFileMan(e);false;">File</button>' +
'</span>'+
'</div>'+
Последнее редактирование: