Ошибочно полагать виджет alian формой для загрузки картинок, на самом деле виджет используется только для отображения уже загруженных картинок и вставки их в текст топика (заметки).
Находим в common/plugins/alian/templates/skin/default/actions/ActionContent/add.tpl
<fieldset class="topic-fieldset alian">
-----
</fieldset>
и вырезаем в common/templates/skin/start-kit/tpls/fields/field.alian.tpl, добавляем в
common/templates/skin/start-kit/tpls/topics/topic.type_default-edit.tpl по вкусу (я вставил под загрузкой картинок в фотосет).
2. Фиксим JS
В первой строке common/plugins/alian/templates/skin/default/js/aln_uploader.js автор плагина честно врёт за копирайт, на самом деле пошукав в сети можно убедиться что код этот он не сочинил а честно
Всю конструкцию от
self.xhr.open("POST", params.url);
и ниже следует заменить на var boundary = SESSION_ID;
var topic_id = $("#topic_id").val();
if (self.xhr.sendAsBinary)
{
//Firefox
self.xhr.setRequestHeader("Content-Type", "multipart/form-data, boundary="+boundary);
self.xhr.setRequestHeader("Cache-Control", "no-cache");
self.xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
self.xhr.setRequestHeader("topic_id", topic_id);
var body = "--" + boundary + "\r\n";
body += "Content-Disposition: form-data; name='security_key'\r\n\r\n";
body += ALTO_SECURITY_KEY + "\r\n";
body += "--" + boundary + "\r\n";
body += "Content-Disposition: form-data; name='"+(params.fieldName || 'file')+"'; filename='" + params.file.name + "'\r\n";
body += "Content-Type: application/octet-stream\r\n\r\n";
body += self.reader.result + "\r\n";
body += "--" + boundary + "--";
self.xhr.sendAsBinary(body);
} else {
// chrome (W3C spec.)
var formData = new FormData();
self.xhr.setRequestHeader("Cache-Control", "no-cache");
self.xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
formData.append((params.fieldName || 'files'), params.file);
formData.append('security_key', ALTO_SECURITY_KEY);
formData.append('topic_id', topic_id);
self.xhr.send(formData);
}
Для FF ввиду того, что он в головоной Content-Type вместо multipart-data/form пишет text/plain — приходится собирать запрос руками. Для Chrome и Opera достаточно сделать append security ключа.
—
Не забыть скопировать jevix.local.php согласно «инструкции» автора, конфиг в apps/ и правильно настроить параметры виджета.
P.S. Это только первичный запуск плагина. На самом деле ещё куча работы по верификации кода, исправлению отображения кнопки delete в виджете, правильной генерации версий с различными размерами (щас тупо генерит все размеры не глядя на исходник), более корректной вставки в код статьи (не тупой a href+img src, а превью с/без полной версией под JS), возможно доработке кода групповой загрузки изображений (форма мультипарт, а файлы грузятся строго по одному) и вынос в конфиг параметра «пачка/по одному» для быстрых каналов, и т.д. и т.п.
Вот что 300 рублей животворящие делают —), так бы выкинул это говно и забыл бы...
0 комментариев