ZMI-Javascript-Extensions
Eigene Javascript-Extensions für das Redaktions-Interface einbinden
Eigene Javascript-Extensions für das Redaktions-Interface einbinden
Um das Redaktions-Interface funktional zu erweitern, kann man eigene Javascript-Extensions einbinden.
Zunächst mal muss man unter Konfiguration >> System >> System-Properties den Pfad für die eigene Extension hinterlegen, z.B.:
zmi.plugin.js=/myzmsx/common/js/zmi.plugin.js
Die Extension muss man anschließend in den bootstrap.libs registrieren:
bootstrap.libs=gen.zmi.js,zmi.plugin.js
Nun kann man in zmi.plugin.js beliebigen eigenen JS-Code implementieren, der im ZMI ausgeführt wird.
Beispiel zmi.plugin.js: Stopwörter in Eingabefeldern
$(function() { $('.controls.save .btn-primary').click(function() { var b = true; if($(this).val()==getZMILangStr("BTN_SAVE")) { var stopwords = getStopwords().split(","); $("input.form-control,textarea.form-control").each(function() { var labelText = ""; var $control = $(this); var v = $control.val().trim(); if (v.length>0) { var total = stopwords.length; for (var i=0; i < total; i++) { var exp = stopwords[i].trim(); exp = exp.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); var regexp = new RegExp('\\b'+exp+'\\b', "gi"); if (v.match(regexp)!=null) { labelText += '<div>Usage of stopword "'+exp+'" is forbidden!</div>'; } } } if (labelText.length>0) { var labelText = '<strong>ERRORS:</strong>'+labelText; var $controlGroup = $control.parents(".form-group"); if ($controlGroup.parents(".zmi-richtext").length > 0) { $controlGroup = $(".form-group",$controlGroup.parents(".zmi-richtext")); } var $label = $("label.control-label span",$controlGroup); $controlGroup.addClass("has-error"); $label.attr("title",labelText).tooltip({html:true,placement:'top'}); $control.attr("title",labelText).tooltip({html:true,placement:'top'}); b = false; } }); } return b; }); });