FileAttach (modx2) - возможность выбора файла из медиа-библиотеки (вкладка слева вверху Файлы)
Здравствуйте.
Есть вопрос по данному компоненту — есть ли возможность выбора уже ранее загруженного файла для нескольких ресурсов?
Например — есть 2 ресурса. У одного я загрузил документ пдф. Хочу этот же документ выбрать, когда редактирую другой ресурс, на его вкладке «Файлы». Сейчас у меня (по умолчанию) открывается попап, где я могу загрузить файлы только из внешних источников. Как использовать уже ранее загруженные файлы у нескольких ресурсов?
Есть ли такие настройки в админке?
с уважением,
Виталий
Есть вопрос по данному компоненту — есть ли возможность выбора уже ранее загруженного файла для нескольких ресурсов?
Например — есть 2 ресурса. У одного я загрузил документ пдф. Хочу этот же документ выбрать, когда редактирую другой ресурс, на его вкладке «Файлы». Сейчас у меня (по умолчанию) открывается попап, где я могу загрузить файлы только из внешних источников. Как использовать уже ранее загруженные файлы у нескольких ресурсов?
Есть ли такие настройки в админке?
с уважением,
Виталий
Комментарии: 2
из коробки такого функционала нет, но можно дописать. Надо внести изменения в файл
assets/components/fileattach/js/mgr/widgets/items.grid.js
1) добавить кнопку для открытия файлового менеджера
в районе строки 540, добавить кнопку вызова менеджера файлов, в блок
getTopBar: function (config) {
2) Добавить handler
Тут вызывается this.selectFiles
этот handler надо прописать ниже, после метода uploadFiles
Этот код из рабочего проекта и решал мои задачи, изменяйте под ваши задачи
assets/components/fileattach/js/mgr/widgets/items.grid.js
1) добавить кнопку для открытия файлового менеджера
в районе строки 540, добавить кнопку вызова менеджера файлов, в блок
getTopBar: function (config) {
fields.push({
xtype: 'button',
cls: 'primary-button',
text: _('upload'),
handler: this.uploadFiles,
scope: this
},{ // это вторая кнопка
xtype: 'button',
cls: 'primary-button',
text: 'Из уже загруженных',
handler: this.selectFiles,
scope: this
});
2) Добавить handler
Тут вызывается this.selectFiles
этот handler надо прописать ниже, после метода uploadFiles
selectFiles: function(btn,e) {
var win = Ext.getCmp('fileattach-file');
if(!win){
var win = MODx.load({
xtype: 'modx-browser'
,openTo: 'files/'
,id: 'fileattach-file'
,listeners: {
'select':{fn:this.onBrowserSelect,scope:this}
}
});
}
win.show();
},
onBrowserSelect: function(data,field){
var value = data.url;
//console.log(data);
MODx.Ajax.request({
url: FileAttach.config.connectorUrl,
params: {
action: 'mgr/browser',
url: data.url,
size: data.size,
ext: data.ext,
shortname: data.shortName,
name: data.name,
docid: FileAttach.config.docid
},
listeners: {
success: {
fn: function() {
var store = Ext.getCmp('fileattach-grid-items').getStore();
store.load({ params: { start: 0, limit: 20} });
Ext.getCmp('fileattach-grid-items').getView().refresh();
}, scope: this
}
}
});
},
Этот код из рабочего проекта и решал мои задачи, изменяйте под ваши задачи
Спасибо, Евгений, за помощь.
Завтра попробую адаптировать ваш код под себя.
Завтра попробую адаптировать ваш код под себя.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.