?

Log in

No account? Create an account
привязка ajaxplorer'а к обычным полям в форме
annykey
Ajaxplorer хороший файловый менеджер. Его удобно использовать с визуальным редактором ckeditor (если не хочется платить за родной ckfinder). 

Я захотел этот менеджер привязать также к обычной форме, то есть все загрузки файлов организовать через него. Но загружать файлы не проблема. Проблема при даблклике по требуемому файлу подставлять его адрес в нужное поле.

На сайте разработчика я так ничего и не нашел по этому вопросу, поэтому полез в код и стал копать.

Короче вот как можно все реализовать:

1. Вешаем обработчик для вызова менеджера:
onClick="window.open('/ajaxplorer/?external_selector_type=input_file&input_id=file_name&relative_path=/files','','width=800,height=600');"
external_selector_type -- добавляем свой тип
input_id -- айди поля, куда надо подставить путь
relative_path -- путь до директории, которая является корневой для менеджера

2. В директории ajaxplorer/plugins/gui.ajax находим ajxpclient_actions.xml
в нем есть кусок кода, который отвечает за подстановку требуемых путей, но в ckeditor
=================================
if(selectorData.get('type') == "ckeditor"){
......
=================================
Остается только дописать код для подстановки пути в требуемое поле
=================================
if(selectorData.get('type') == "input_file"){
var ckData = selectorData.get('data');
var filePath = fileName;
if(ckData['relative_path']){
filePath = ckData['relative_path'] + fileName;
}
window.opener.document.getElementById(ckData['input_id']).value = filePath;
window.opener.document.getElementById(ckData['input_id']).focus();
window.close();
}
=================================

всё