Anpassungen des Editors

Fragen zur Implementierung und/oder Anpassung von ConPresso 4 werden in diesem Forum diskutiert.
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Anpassungen des Editors

Beitrag von MarkusR »

Ich möchte hier eine Sammlung von Anpassungen für den 4.0.x Editor anstoßen.

Der 3.4.x Editor ließ sich ja wunderbar den Bedürfnissen der User anpassen, mod_editor liefert diesen sowie zwei hochwertige in-place-Editoren zur Auswahl, nur der Original-Editor sorgt für Unverständnis bei den Usern...

Vielleicht erwächst aus diesem Thread ein etwas besser angepasster Editor, ohne daß man auf Fremdwerkzeuge zurückgreifen muß.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Auwahl von "FormatBlock"

Leider sagt das keinem User etwas und es wird meist entweder nicht oder falsch benutzt.

Wenn man diesen Abschnitt anpassen will, dann passt man editor.php wie folgt an:

ca. Zeile 210

Code: Alles auswählen

    <select id="formatblock" onChange="doExecCommand('formatblock', this.value);">
        <option value="" selected>FormatBlock</option>
        <option value="<p>">p</option>
        <option value="<h1>">h1</option>
        <option value="<h2>">h2</option>
        <option value="<h3>">h3</option>
        <option value="<h4>">h4</option>
        <option value="<h5>">h5</option>
        <option value="<h6>">h6</option>
        <option value="<pre>">pre</option>
        <option value="<address>">address</option>
        <option value="div">div</option>
    </select>
passt man nach Belieben an, z.B.

Code: Alles auswählen

    <select id="formatblock" onChange="doExecCommand('formatblock', this.value);">
        <option value="" selected>Absatz-Art</option>
        <option value="<p>">p (Absatz)</option>
        <option value="<h1>">h1</option>
        <option value="<h2>">h2 (Hauptüberschrift)</option>
        <option value="<h3>">h3 (Unterüberschrift)</option>
        <option value="<h4>">h4</option>
        <option value="<h5>">h5</option>
        <option value="<h6>">h6</option>
        <option value="<pre>">pre</option>
        <option value="<address>">address</option>
        <option value="div">div</option>
    </select>
Natürlich kann man auch einzelne Einträge weglassen, um Chaos zu vermeiden.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Schön wäre es übrigens, wenn der "?"-Button als Hilfe-Button seine Funktion bekäme...

ab Zeile 55

Code: Alles auswählen

        case '_help':
            <?php if ($cpoSystem['help']) { ?>
            document.write('<span href="#" target="_blank" title="<?php echo ___('Sorry, this help is not available.'); ?>">');
            document.write('<img src="images/btn_'+bCommand+'.gif" class="buttonRaised help" />');
            document.write('</a></span>');
            <?php } ?>
            break;
könnte so aussehen

Code: Alles auswählen

        case '_help':
            <?php if ($cpoSystem['help']) { ?>
            document.write('<a href="#" onClick="openDialog(\'../_manual/deutsch/articles-createarticle.html#articles-createarticle-wysiwygeditor\', \'\', 600, 600, \'scrollbars=yes, resizable=yes\');">');
            document.write('<img src="images/btn_'+bCommand+'.gif" class="buttonRaised help" title="'+title+'" />');
            document.write('</a>');
            <?php } ?>
            break;
Zuletzt geändert von MarkusR am 27.01.2010 11:46, insgesamt 1-mal geändert.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Für mich gehört deine Colorpicker-Verbesserung aus http://community.conpresso.de/viewtopic.php?t=3971 auf jeden Fall auch hierher.
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Die bessere Nutzung der CSS Klassen fände ich auch erstrebenswert
http://community.conpresso.de/viewtopic.php?t=4138

Vielleicht lasse ich das wieder aufleben, wenn es entsprechende Resonanz gibt...
damit meine ich speziell die bessere Wiedererkennung der Klassen durch den Internet Explorer.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

MarkusR hat geschrieben:Die bessere Nutzung der CSS Klassen fände ich auch erstrebenswert
http://community.conpresso.de/viewtopic.php?t=4138

Vielleicht lasse ich das wieder aufleben, wenn es entsprechende Resonanz gibt...
damit meine ich speziell die bessere Wiedererkennung der Klassen durch den Internet Explorer.
Den Link dazu hatte ich mir vor Sekunden herausgesucht - du warst schneller :)
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Will man von den CSS-Klassen, die man auswählen kann, auch etwas haben, muß man ggf. dem Inhalt des iframe etwas auf die Spünge helfen:

Szenario:

im CSS hat man einen content-Bereich (#content) definiert und für diesen content-Bereich spezielle Klassen für dort vorkommende Objekte (#content image, #content p, #content h1 etc.), eben genau das, wofür CSS, also verschachtelte Formatanweisungen entwicklet wurden.

Jetzt kann man zwar problemlos einen erlaubten CSS-Stil wählen, nur merkt man nichts davon (und der IE unterschlägt ohne Anpassung, daß man etwas gewählt hat), also probiert man es mehrfach und gibt dann entnervt auf...

Um das zu vermeiden, muß man nur die Funktion initializeEditor() in editor.js entsprechend anpassen.

Aus

Code: Alles auswählen

	bse_conWin.document.write('</head><body>'+storage.document.body.innerHTML+'</body></html>');
macht man z.B.

Code: Alles auswählen

	bse_conWin.document.write('</head><body id="content" >'+storage.document.body.innerHTML+'</body></html>');
Natürlich lassen sich noch weitere Einstellungen vornehmen, wie z.B.

Code: Alles auswählen

	bse_conWin.document.write('</head><body id="content" class="haupt" style="background-image:none; border:0; padding:10px; margin:10px;">' + storage.document.body.innerHTML + '</body></html>');
bis man im Editor das gleiche Look&Feel hat wie im Frontend.

Das wirkt Wunder!
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Und was ich auch immer bei Kundenprojekten mache, ist das Ausschalten dieser unsäglichen Schriftgrößen- und Schriftartenwahl, die sonst jegliche CSS-Bemühungen ad absurdum führt.
Dazu kommentiere ich stets die beiden Select-Blöcke nach Zeile 220 von ../_editor/editor.php komplett aus:

<!--
<select id="fontsize" sCmd="fontsize" onChange="doExecCommand('fontsize', this.value);">
<option value="" selected>FontSize</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
</select>
-->
<!--

<select id="fontname" sCmd="fontname" onChange="doExecCommand('fontname', this.value);";>
<option value="" selected>FontName</option>
<option value="Times New Roman, Georgia, Times, serif">Times New Roman, Georgia, Times, serif</option>
<option value="Arial, Helvetica, Geneva, Swiss, SunSans-Regular, sans-serif">Arial, Helvetica, Geneva, Swiss, SunSans-Regular, sans-serif</option>
<option value="Courier New, Courier, Monaco, monospace">Courier New, Courier, Monaco, monospace</option>
<option value="Verdana, Arial, Helvetica, Geneva, Swiss">Verdana, Arial, Helvetica, Geneva, Swiss</option>
</select>
-->
Günther Ludwig
Benutzeravatar
baluo
ConPresso-Experte
Beiträge: 607
Registriert: 14.11.2005 12:17
Hat sich bedankt: 216 Mal
Danksagung erhalten: 11 Mal

Beitrag von baluo »

MarkusR hat geschrieben:Die bessere Nutzung der CSS Klassen fände ich auch erstrebenswert
http://community.conpresso.de/viewtopic.php?t=4138

Vielleicht lasse ich das wieder aufleben, wenn es entsprechende Resonanz gibt...
damit meine ich speziell die bessere Wiedererkennung der Klassen durch den Internet Explorer.
faende ich sehr hilfreich!
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Relative statt absolute Links auf Rubriken

Beitrag von Mr. Magpie »

Relative statt absolute Links auf Rubriken

Wer weiß, was er da tut, der kann dafür sorgen, dass Links auf Rubriken über den Editor relativ statt absolut gesetzt werden.

Das kann von Wert sein, wenn sich die (Sub-)Domain nach einer gewissen Testphase noch einmal ändern sollte.
Oder man arbeitet zunächst auf einem lokalen Webserver und überträgt das Projekt erst später ins Internet.

In beiden Fällen bleiben die einmal gesetzten Links auch später noch konsistent.

in ../_editor/editor.php sucht man nach

Code: Alles auswählen

Link to rubric:
und ersetzt 12 Zeilen darunter die Zeile

Code: Alles auswählen

htmlspecialchars(BASE_ABS.$db->v('directory')
.'/index.php?rubric='.urlencode($db->v('name'))),
durch

Code: Alles auswählen

htmlspecialchars('../'.$db->v('directory')
.'/index.php?rubric='.urlencode($db->v('name'))),
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Wieviel später?

Die Links werden irgendwann vorm/beim Speichern leider wieder in absolute Links umgewandelt, landen also bereits als absolute Links in der Datenbank... zumindest wenn man den Internet Explorer benutzt...
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Aaaaaaarrrrgh!!!!


Wer benutzt schon noch den IE?

Nein, im Ernst: Das ist ja saublöd! :twisted: Ich kam gar nicht auf die Idee, dass es da zwischen FF und IE einen Unterschied machen würde. Und offenbar arbeiten meine Kunden auch nicht mit dem Internet Explorer.
Günther Ludwig
Benutzeravatar
baluo
ConPresso-Experte
Beiträge: 607
Registriert: 14.11.2005 12:17
Hat sich bedankt: 216 Mal
Danksagung erhalten: 11 Mal

Beitrag von baluo »

MarkusR hat geschrieben:Die Links werden irgendwann vorm/beim Speichern leider wieder in absolute Links umgewandelt, landen also bereits als absolute Links in der Datenbank... zumindest wenn man den Internet Explorer benutzt...
laesst sich das denn nicht irgendwie ConPresso-seitig abfangen? Mir ist das auch schon in einem anderen Zusammenhang aufgestossen -- z.B. wenn ich per CSS einem externen Link eine kleine Verweisgrafik voransetzen wollte ... ich habe aber noch nicht versucht, es umzusetzen -- deswegen.
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Langsam verstehe ich, was Balu hier meinte:
Balu hat geschrieben:Überhaupt sind Änderungen am Editor nicht unbedingt trivial. Das Javascript dort ist aufgrund der ganzen IE/FF Unterschiede relativ komplex.
Dieser Thread "Bildupload im Editor" passt übrigens ebenfalls außerordentlich gut in das Thema hier.
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Noch was, was ich immer wieder einbaue:

Um Layout-Tabellen mit ausgeblendeten Kanten vernünftig bearbeiten zu können, helfen die aus 3.4.x bekannten Hilfslinien.

Dazu schnappt man sich nochmal die bereits oben bearbeitete Zeile aus editor.js und ergänzt

Code: Alles auswählen

bse_conWin.document.write('</head>...
zu

Code: Alles auswählen

bse_conWin.document.write('<style type="text/css" id="editorCSS">table, td { border: 1px dotted #000000 !important; } </style></head>...
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Antworten