Im bin die Entwicklung eines Platzhalter-Plugin zu CKEDITOR und es ist im Grunde abgeschlossen. Das Problem, das ich habe, ist, dass ich versuche, den Wert und Beschreibung von innerhalb des Dialogs zu bekommen, und ich bekomme nur den Wert. Das Array, das die Beschreibung und Wert wie folgt aussiehtckeditor plugin dialog wählen Sie die Beschreibung aus der ausgewählten
enthält -> items: [['description1', 'value1'], ['description2', 'value2']]
<-
In die Rückkehr -> Inhalt -> Elemente mit ID
dropdown
Ich habe setup
und commit
Funktion. In diesen Funktionen muss ich die Beschreibung erhalten, genauso wie ich den Namen aus der Option auswählen kann.
müssen wirklich mit diesem helfen, danke im voraus
Beispiel ->
<select>
<option value="value1">description1</option>
<option value="value2">description2</option>
</select>
Beispiel < -
(function() {
function placeholderDialog(editor, isEdit) {
var lang = editor.lang.phlink,
generalLabel = editor.lang.common.generalTab;
return {
title: lang.title,
minWidth: 300,
minHeight: 80,
contents: [
{
id: 'info',
label: generalLabel,
title: generalLabel,
elements: [
{
id: 'dropdown'
, type: 'select'
, label: lang.chooseVal
, 'default': 'Detta är default'
, items: [['description1', 'value1'], ['description2', 'value2']]
, setup: function (data) {
// need the description
this.setValue(data.title);
}
, commit: function (data) {
// need the description
data.title = this.getValue();
}
},
{
id: 'text',
type: 'text',
style: 'width: 100%;',
label: lang.text,
'default': '',
required: true,
validate: CKEDITOR.dialog.validate.notEmpty(lang.textMissing),
setup: function (data) {
this.setValue(data.text);
},
commit: function (data) {
data.text = this.getValue();
}
}
]
}
],
onShow: function() {
var data = { tag: 'link', content: "detta är innehåll", title: "Länk till svar", text: "detta är text" };
if (isEdit) {
this._element = CKEDITOR.plugins.phlink.getSelectedPlaceHolder(editor);
data.title = this._element.getAttribute('title');
data.text = this._element.getText();
data.tag = this._element.getAttribute('data-jztag');
}
this.setupContent(data);
},
onOk: function() {
var data = { tag: 'link', content: null, title: null, text: null };
this.commitContent(data);
CKEDITOR.plugins.phlink.createPlaceholder(editor, this._element, data);
delete this._element;
}
};
}
CKEDITOR.dialog.add('createplaceholder', function (editor) {
return placeholderDialog(editor);
});
CKEDITOR.dialog.add('editplaceholder', function (editor) {
return placeholderDialog(editor, 1);
});
})();
Das funktionierte so, wie ich wollte, vielen Dank – Ziinloader