Zielframe-Werte (target) im Editor

Dieses Forum enthält Diskussionen zu Bugs in ConPresso 4 und deren Lösungen.
Antworten
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

Zielframe-Werte (target) im Editor

Beitrag von Mr. Magpie »

Zugegeben, es ist nicht wirklich ein Bug, aber unschön ist es dennoch.

Schon lange fiel mir auf, aber ich hatte immer wieder vergessen nachzuhaken, dass die in den ConPresso-Systemeinstellungen angegebenen Zielframe-Werte - default-mäßig sind dies _self, _blank und _top - nur bei URL-Feldern bei der Artikelbearbeitung Anwendung finden, nicht aber im ConPresso-Editor.

Die Beschreibung in der ConPresso-Online-Hilfe ist auch etwas unklar: "Zielframes: Geben Sie hier die Namen der Zielframes an, in denen Inhalte aus ConPresso ausgegeben werden können sollen. Der Name wird dem Redakteur, sofern er über die entsprechenden Rechte verfügt, automatisch als mögliches Link-Ziel im Rahmen der Artikelerstellung und -bearbeitung angezeigt."
Danach könnten die Targets genauso gut auch im ConPresso-Editor zugänglich sein, was natürlich wünschenswert wäre.

Übrigens lautet die entsprechende Codestelle im Editor (_editor/editor.php) folgendermaßen:

Code: Alles auswählen

    <select id="edit_a_target" onChange="updateAttribute('target', this.value);">
        <option value=""> </option>
        <option value="_blank">_blank</optiion>
        <option value="_top">_top</option>
    </select>
Hierbei ist die erste option-Zeile mindestens im aktuellen IE völlig nutzlos, da sich mit dieser Option (im Ggs. zum FF) der target-Wert nicht zurücksetzen lässt, sobald einmal etwas ausgewählt war. Da wäre es fast besser, man würde sie ganz streichen - oder eben die target-Werte aus den Systemeinstellungen zur Auswahl bringen.
Günther Ludwig
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 »

So, ich habe mir den Editor ein bisschen zurecht gebogen. Jetzt ist sicher gestellt, dass der target-Parameter stets mit einem definierten Wert belegt wird - defaultmäßig ist das nun "_blank". Die leere, erste Option der Select-Box habe ich kassiert, so erhält auch bei IE-Benutzern target einen definierten Zustand.
Desweiteren habe ich noch "_self" als target-Wert ergänzt. Wer möchte, ist natürlich völlig frei, einen anderen Wert als "_blank" voreinzustellen, die Reihenfolge der Optionen zu ändern oder eigene Werte je nach Bedarf zu ergänzen.

Hier das "Rezept", wenn ihr die gleichen Codeänderungen an _editor/editor.php (ConPresso 4.0.9) vornehmen wollt:

Suchen (ca. Zeile 400):

Code: Alles auswählen

            <td>href:</td>
            <td colspan="7"><input type="text" class="text inputwidth" id="edit_a_href" onChange="updateAttribute('href', this.value);" /></td>
            <td>&nbsp;</td>
Und ersetzen durch:

Code: Alles auswählen

<!-- ********** Verbesserte target-Auswahl im ConPresso-Editor ********** Teil 1/3 ***** Anfang *****
     Originalzeilen:
            <td>href:</td>
            <td colspan="7"><input type="text" class="text inputwidth" id="edit_a_href" onChange="updateAttribute('href', this.value);" /></td>
            <td>&nbsp;</td>
     geändert zu: -->
            <td>href:</td>
            <td colspan="7"><input type="text" class="text inputwidth" id="edit_a_href" onChange="updateAttribute('href', this.value); updateAttribute('target',edit_a_target.value);" /></td>
            <td>&nbsp;</td>
<!-- ********** Verbesserte target-Auswahl im ConPresso-Editor ********** Teil 1/3 *****  Ende  ***** -->
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

Wenige Zeilen darunter findet man die Zeile

Code: Alles auswählen

            <select id="edit_a_rubric" onChange="edit_a_href.value = this.value; updateAttribute('href', this.value); this.selectedIndex=0;">
diese wird ersetzt durch:

Code: Alles auswählen

<!-- ********** Verbesserte target-Auswahl im ConPresso-Editor ********** Teil 2/3 ***** Anfang *****
     Originalzeile:
                <select id="edit_a_rubric" onChange="edit_a_href.value = this.value; updateAttribute('href', this.value); this.selectedIndex=0;">
     geändert zu: -->
                <select id="edit_a_rubric" onChange="edit_a_href.value = this.value; updateAttribute('href', this.value); this.selectedIndex=0; updateAttribute('target',edit_a_target.value);">
<!-- ********** Verbesserte target-Auswahl im ConPresso-Editor ********** Teil 2/3 *****  Ende  ***** -->
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

Wiederum ein paar Zeilen weiter folgt der Abschnitt

Code: Alles auswählen

            <td>target:</td>
            <td>
                <select id="edit_a_target" onChange="updateAttribute('target', this.value);">
                    <option value=""> </option>
                    <option value="_blank">_blank</option>
                    <option value="_top">_top</option>
                </select>
            </td>
            <td>&nbsp;</td>
            <td>title:</td>
            <td><input type="text" class="text" id="edit_a_title" onChange="updateAttribute('title', this.value);" /></td>
welcher ebenfalls ersetzt wird, und zwar durch:

Code: Alles auswählen

<!-- ********** Verbesserte target-Auswahl im ConPresso-Editor ********** Teil 3/3 ***** Anfang *****
     Originalzeilen:
            <td>target:</td>
            <td>
                <select id="edit_a_target" onChange="updateAttribute('target', this.value);">
                    <option value=""> </option>
                    <option value="_blank">_blank</option>
                    <option value="_top">_top</option>
                </select>
            </td>
            <td>&nbsp;</td>
            <td>title:</td>
            <td><input type="text" class="text" id="edit_a_title" onChange="updateAttribute('title', this.value);" /></td>
     geändert zu: -->
            <td>target:</td>
            <td>
                <select id="edit_a_target" onChange="updateAttribute('target', this.value);">
                    <option value="_blank">_blank</option>
                    <option value="_top">_top</option>
                    <option value="_self">_self</option>
                </select>
            </td>
            <td>&nbsp;</td>
            <td>title:</td>
            <td><input type="text" class="text" id="edit_a_title" onChange="updateAttribute('title',  this.value); updateAttribute('target', edit_a_target.value);" /></td>
<!-- ********** Verbesserte target-Auswahl im ConPresso-Editor ********** Teil 3/3 *****  Ende  ***** -->
Günther Ludwig
Benutzeravatar
balu
ConPresso-Entwickler
Beiträge: 1748
Registriert: 01.01.1970 01:00
Hat sich bedankt: 81 Mal
Danksagung erhalten: 133 Mal

Beitrag von balu »

Hi Günther,

ich bin mir noch nicht ganz sicher, wo das Problem ist.

Ich habe gerade mit einem IE8 geprüft, ob man durch Auswahl des leeren Feldes das Target zurücksetzen kann. Das hat ohne Probleme funktioniert.

_self haben wir ursprünglich wohl aus der Auswahl im Editor weggelassen, weil ein leeres target-Attribut dem entsprechen würde.

Womit Du Recht hast ist, dass die Auswahl natürlich dem Wert in den Systemeinstellungen entsprechen sollte. Da wir hier eigentlich nie mit Frames arbeiten, ist uns das bisher noch nicht aufgefallen. Aber das werde ich anpassen, so dass man dieselben Auswahlmöglichkeiten hat wie beim URL-Platzhalter.

Balu
Bartels.Schöne
ConPresso Support & Development
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 »

Hallo Balu,

ich hab's an zwei anderen Rechnern (Windows XP SP3, IE8) noch einmal ausprobiert. Ergebnis: Funktioniert bei unveränderter editor.php definitiv nicht.

Ich lasse mich aber gerne eines Besseren belehren. Bitte probiert es bei Euch aus und gebt Feedback.

Zwischenzeitlich fühle ich mich mit meiner Lösung jedenfalls auf der sichereren Seite.
Günther Ludwig
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 »

Hab's heraus gefunden!

Als ich im vorigen Post schrieb "bei unveränderter editor.php" kam mir die Idee, woran es liegen könnte. Meine editor.php war nämlich gar nicht unverändert, sondern enthielt ja die Änderungen für die verbesserte CSS-Klassen-Auswahl!
Flugs vorübergehend die wirklich native editor.php aus dem Download-Paket aufgespielt und schon ging's.

Aber da ich natürlich die verbesserte Klassen-Auswahl nicht mehr missen möchte, bleibe ich bei meiner Anpassung der editor.php aus diesem Thread.
Günther Ludwig
Antworten