2010-08-06 2 views
1

Использование CKEditor 3, я создал функции обработки изображений:
приемник загрузки (filebrowserUploadUrl) и диалог изображения браузер (filebrowserBrowseUrl)
- Оба работают отличноОдин диалог загрузки - две цели?

но, конечно, мои пользователи хотят больше ... У нас есть две базы данных изображений: общие и частные
- Образный браузер позволяет пользователю выбирать изображения из любого.

My upload-reciever (php) может легко поместить новое изображение в любой из этих контейнеров.
- но как я могу выбрать пользователя?

Три идеи - все связанные с модификацией-диалоговые вкладку загрузки (тип = файл + закачивать кнопки)
Добавление целевого выбора по:

 
Using two different upload-buttons: (Upload to Common) and (Upload to Private) 
both pointing to the same filebrowserUploadUrl but adding a parameter: 
&target=C or &target=P 

или

 
A couple of "radio switches": Common or Private 
- essentially doing the same: Adding &target=(P or C) 
with one of them selected by default, so the user can't break it by negligence... 

или

 
Just a single checkbox: Private (or not) ~ adding &target=P (or not) 

Я действительно пробовал (мои пальцы кровоточат, а я v omited с яростью, дважды!), но как разработчик javascript, не являющийся jQuery, я просто не могу понять все это. Когда я добавляю текстовое поле, оно отображается просто отлично:)
- но не на фактической форме загрузки (в iframe), что все еще только содержит поле type = file?!?

Итак, я хотел бы оценить пример того, как изменить вкладку-диалог-вкладку, чтобы выполнить ее?

У меня есть моя стартовая платформа готова (я думаю):

 
CKEDITOR.on('dialogDefinition', 
function(ev) 
{ 
var dialogName = ev.data.name; 
var dialogDefinition = ev.data.definition; 

if (dialogName == 'image') 
    { 
    var infoTab = dialogDefinition.getContents('Upload'); 
    infoTab.add({ 

    what ? 

ответ

0

решаемые это сам, но должен идти немного румян на нем:)

Я думаю, что есть может быть ошибка в CKeditor здесь (или, может быть, это дизайн.)
Добавление новых полей (будь то в image.js или через CKEDITOR.on ('dialogDefinition' ..) они просто не переводят новые поля в фактическую форму загрузки в iframe (ошибка или функция?)

SO, я добавил один флажок (Private? Not) в /plugins/image/dialogs/image.js
в разделе (id: 'Upload',) между файловым полем и кнопкой с событием onClick, которое делает бизнес, трудным путем:

{ 
    type : 'checkbox', 
    id : 'PrivateFlag', 
    label: 'Private', 
    checked : false, 
    onClick: function() 
     { 
     var theFrame = document.getElementById("125_fileInput"); 
     var theDoc = theFrame.contentDocument || theFrame.contentWindow.document; 
     var theForm = theDoc.forms[0]; 
     var action = theForm.getAttribute("action"); // alert("pre:"+theForm.getAttribute("action")); 

     if (action.indexOf("&target=P") == -1) 
      action += "&target=P"; 
     else 
      action = action.replace("&target=P",""); 

     theForm.setAttribute("action",action); // alert("post: "+theForm.getAttribute("action")); 
     } 
}, 

он работает (по крайней мере до тех пор, как И.Д. IFrame является "125_fileInput")

IE-модификации (конечно):

if (navigator.appName == 'Microsoft Internet Explorer') // aka BrokenTurd 
    { 
    var theFrame = document.frames[1]; // may be inaccurate in your case.. 
    var theDoc = theFrame.document; 
    } 
else 
    { 
    var theFrame = document.getElementById("125_fileInput"); 
    var theDoc = theFrame.contentDocument || theFrame.contentWindow.document; 
    } 
+0

Если кто-то видит проблему с делать это это Кстати, пришло время высказаться! – T4NK3R

Смежные вопросы