Page 10 of 15

Re: Highlight plugin calls

Posted: Wed Sep 26, 2018 11:51 am
by cmb
frase wrote:
Wed Sep 26, 2018 10:08 am
JS-Help wanted!
Probier mal folgende plugin.min.js:

Code: Select all

(function () {
    var lang = document.getElementsByTagName("html")[0].getAttribute("lang"); if (lang !== 'en')
        tinymce.PluginManager.requireLangPack('xhplugincall', lang); tinymce.PluginManager.add('xhplugincall', function (editor, url) {
            editor.settings.content_css += ', ' + url + '/style.css'; editor.addButton('xhplugincall', {
                text: false, icon: false, image: url + '/xhplugincall.svg', tooltip: 'Insert a XH plugin call', onclick: function () {
                    var initial = editor.selection.getContent().match(/\{{3}(.*)\}{3}/); 
                    var inline = /^<span/.test(editor.selection.getContent());
                    editor.windowManager.open({
                        title: 'Insert/edit a XH plugin call', body: [{ type: 'container', minWidth: 450, layout: 'flow', items: [
                            { type: 'label', text: 'Insert/edit the XH plugin call here - without {{{}}}', style: 'display:block;margin-bottom:1em;' }, 
                            { type: 'textbox', name: 'title', style: 'width:97%', value: initial ? initial[1] : "" }] },
                            { type: 'checkbox', name: 'inline', label: 'Insert as <span> (default = <div>)', checked: inline}
                        ], onsubmit: function (e) {
                            var tagname = e.data.inline ? 'span' : 'div';
                            if (e.data.title.length) {
                                editor.insertContent('<' + tagname + ' class="xhplugincall mceNonEditable">{{{' + e.data.title + '}}}</' + tagname + '>'); 
                            } else
                                editor.insertContent('');
                        }
                    });
                }
            });
        });
})();

Re: Highlight plugin calls

Posted: Wed Sep 26, 2018 12:07 pm
by frase
Ich dachte schon, wir werden erst "Am ersten Sonntag nach dem Weltuntergang" mit diesem Plugin fertig ;-)

Funktioniert perfekt.
Danke Christoph!

Das Plugin (fast fertig) mit deutscher Übersetzung.
(sk und cs müssen noch ergänzt werden)
xhplugincall.zip

Re: Highlight plugin calls

Posted: Wed Sep 26, 2018 12:22 pm
by Tata
Fertig :-)

Re: Highlight plugin calls

Posted: Wed Sep 26, 2018 12:30 pm
by Holger
Ich kam jetzt aus Zeitgründen nicht dazu alles noch einmal zu testen. Aber, verstehe ich das richtig, das div bzw. span mit den entsprechenden Klassen xhplugincall und mceNonEditable wird dann so im Content abgespeichert???
Und ob div oder span: so, wie es die Editoren bisher automatisch erledigt haben, war es doch ok für jeden User (ich kann mich jedenfalls nicht an die Meldung irgendwelcher unlösbarer Probleme deswegen erinnern).

Re: Highlight plugin calls

Posted: Wed Sep 26, 2018 12:37 pm
by cmb
Holger wrote:
Wed Sep 26, 2018 12:30 pm
Ich kam jetzt aus Zeitgründen nicht dazu alles noch einmal zu testen. Aber, verstehe ich das richtig, das div bzw. span mit den entsprechenden Klassen xhplugincall und mceNonEditable wird dann so im Content abgespeichert???
Ja.
Holger wrote:
Wed Sep 26, 2018 12:30 pm
Und ob div oder span: so, wie es die Editoren bisher automatisch erledigt haben, war es doch ok für jeden User (ich kann mich jedenfalls nicht an die Meldung irgendwelcher unlösbarer Probleme deswegen erinnern).
Beim manuellen Einfügen gibt es auch keine Probleme. Aber da nun eben die beiden Klassen ergänzt werden müssen, muss (zumindest bedingt) auch ein neues Element ergänzt werden, für das die Klassen gesetzt werden. Und da gibt es zumindest invalides HTML, wenn man immer ein <span> verwendet, und wenn man immer ein <div> verwendet, sind eben keine “inline” Pluginaufrufe mehr möglich. Die jetzige Lösung ist für Anfänger vermutlich nicht ganz leicht zu begreifen, aber eben das beste, was wir bislang zustande bekommen haben.

Re: Highlight plugin calls

Posted: Wed Sep 26, 2018 12:57 pm
by frase
Tata wrote:
Wed Sep 26, 2018 12:22 pm
Fertig
Glückwunsch.
Deine Beharrlichkeit hat nun - nach 4 Jahren - endlich zum Erfolg geführt.
Holger wrote:
Wed Sep 26, 2018 12:30 pm
Und ob div oder span: so, wie es die Editoren bisher automatisch erledigt haben, war es doch ok für jeden User ...
Na ja, eben nicht.
Die Aufrufe wurden manchmal nicht als solche erkannt oder gar (versehentlich) verstümmelt.
Jetzt sind sie optisch hervorgehoben und lassen sich nur noch löschen.
Dass ein Unwissender einen Aufruf anklickt, dann den Button klickt und dort verändert - ist kaum zu erwarten, aber auch nicht zu verhindern.
Solche Klassen wie "mceNonEditable" findet man ab und zu schon im Quelltext mancher Seiten. Da sind wir nicht die einzigen.

Re: Highlight plugin calls

Posted: Wed Sep 26, 2018 2:12 pm
by cmb
frase wrote:
Wed Sep 26, 2018 12:57 pm
Solche Klassen wie "mceNonEditable" findet man ab und zu schon im Quelltext mancher Seiten. Da sind wir nicht die einzigen.
Könnte man vor der Auslieferung allerdings auch noch entfernen (XH_finalCleanUp()).

Re: Highlight plugin calls

Posted: Wed Sep 26, 2018 2:41 pm
by cmb
Tata wrote:
Tue Sep 25, 2018 8:19 pm
Noch habe ich darauf gestossen, dass, falls benutzte WebseiteSprache unter TinyMCE4 gibt, sollte "en" default benutztbar sein.
Ich habe unbenutzte Sprachen gelöscht und wollte es mit z.B. "ru" versuchen. Statt "en" zu loaden, kamm die Warnung
Da sollte wohl das da angepasst sein

Code: Select all

	var lang = document.getElementsByTagName("html")[0].getAttribute("lang");
	if (lang !== 'en')
		tinymce.PluginManager.requireLangPack('xhplugincall', lang);
Etwas in der folgenden Art müsste gehen:

Code: Select all

	var lang = document.getElementsByTagName("html")[0].getAttribute("lang");
	if (lang !== 'en')
		tinymce.PluginManager.requireLangPack('xhplugincall', lang + ',de');
Als Fallbacksprache sollte aber wohl en verwendet werden, aber die Datei en.js gibt es nicht.

Re: Highlight plugin calls

Posted: Wed Sep 26, 2018 4:20 pm
by manu
Ok. Alles schön nachgetragen im Master. Wo soll dieses Plugin denn schlussendlich beheimatet sein?
Das nächste Mal führen wir diese Diskussion im GitHub, gell? Dann brauchen wir nicht das Forum so zuzutexten und haben viel bequemeren Zugriff auf den Code. Entweder via pull request oder ich mache Euch interessierten Codern einen Schreibzugang.

Re: Highlight plugin calls

Posted: Wed Sep 26, 2018 4:33 pm
by frase
manu wrote:
Wed Sep 26, 2018 4:20 pm
Ok. Alles schön nachgetragen im Master.
Die Sprachdateien (3x) sind nicht aktualisiert.
In "plugin.min.js" Zeile 11 hatte ich noch geändert ...

Code: Select all

tooltip: 'Insert/edit a XH plugin call',
... damit die alten Langs wieder stimmen.
manu wrote:
Wed Sep 26, 2018 4:20 pm
Das nächste Mal führen wir diese Diskussion im GitHub, gell?
Okay. Dann aber in Deutsch.
PRs sind mir zu kompliziert und Schreibzugang ist "gefährlich" ;-)