Version 6.3.9.0

Veröffentlichungsdatum 21.10.2014
Sicherheitsupdate nein
Behobene Fehler 122
Optimierungen 87
Übersicht Versionshistorie

Hinweis

Mit webEdition 6.3.9 wird ein offizielles Release veröffentlicht, das neben den üblichen Bugfixes eine ungewöhnlich hohe Zahl an Optimierungen, einen vollständig neuen File Uploader sowie umfassende neue Sicherheitselemente mitbringt.

Verbesserungen

Mehrere Maßnahmen zur Erhöhung der Sicherheit

Um der Gefahr einer SQL-Injection noch besser vorzugreifen, soll systemweit nicht mehr direkt auf die Variable $_REQUEST zugegriffen werden, sondern nur noch über die global erreichbare Funktion we_base_request::_(). In der Funktion findet eine Typprüfung und -konvertierung statt (mit Tests auf Standard- wie auch WE-eigene Datentypen): Wird z.B. mit $table=we_base_request::_(we_base_request::TABLE, 'table', ''); auf $_REQUEST['table'] zugegriffen, ist garantiert, dass $table auch wirklich eine WE-Tabellenkonstante ist. Wir bitten hierbei zu beachten, dass Request-Parameter schon in früheren webEdition-Versionen vor ihrer Benutzung innerhalb von SQL-Queries auf ihre Integrität geprüft wurden: Mit we_base_request wird die bisher dezentral durchgeführte Typprüfung und -konvertierung jedoch systematisiert und (sobald es keine direkten Zugriffe auf $_REQUEST mehr gibt) garantiert. Bis jetzt sind rund 3000 von 5000 Zugriffen auf die neue Methode umgestellt.

Ebenfalls zum Schutz vor SQL-Injections wurden die Methoden zur Konstruktion und anschließenden Prüfung von SQL-Queries nochmals deutlich optimiert.


Weitere neue Sicherheitsfeatures im webEdition Core:
  • Die PHP-Sessions von Front und Backend sind nun komplett getrennt! (#8197)
  • Der Zugriff auf das Verzeichnis webEdition/site wurde eingeschränkt. Ein direkter Zugriff ist jetzt auf APACHE Systemen nicht mehr möglich (#8260)
  • Ist eine Request-Anfrage an webEdition nicht vollständig, wird nun eine Fehlermeldung generiert und die Daten werden nicht gespeichert. Dies ist v.a. bei wackeligen Verbindungen hilfreich, um nicht Vorlagen/Seiten zu zerstören (#8163)
  • Eine gemeldete Sicherheitslücke bzgl. Path-Traversals wurde bereits vor der Meldung im Trunk behoben. Die Lücke konnte nur durch registrierte und eingeloggte Benutzer ausgenützt werden (#8861)
  • Sicherheit beim Sessionmanagment: Daten aus der Sitzung werden konsequenter gelöscht und effizienter gespeichert als bisher (#8843)
  • In Seo's werden die Cookies aus dem Request gefiltert, da sie hätten ausgelesen und für Exposures genutzt werden können (#8995)

Zwei neue Sicherheitselemente von größter Bedeutung findet sich zudem in der Kundenverwaltung:

  • Unter den "Einstellungen -> Sicherheit -> Verschlüsselung" gibt es neu eine Option zur Verschlüsselung von Kunden-Passwörtern. Es wird dringend empfohlen, die Einstellung auf "Hash-Funktion" zu setzen. Das Kundenpasswort kann zudem gezielt aus der Kundensitzung entfernt werden (#4572)
  • Unter "Einstellungen->Allgemein->Sicherheit: Kundenverwaltung" kann nun eingetragen werden, ob beim Logout des Kunden die Sitzung komplett gelöscht wird. Normalerweise werden zwar alle WE-eigenen Daten gelöscht, nicht jedoch eigens angelegte Daten (#8825)


we:Tags zum Zurücksetzen von Kundenpasswörtern

Ab sofort stehen Tags zur Verfügung, mit denen das Zurücksetzen von Passwörtern durch die Kunden ermöglicht wird. Eine Anleitung zum Bau solch einer Resetfunktion wird in Kürze hier oder in der Tag-Referenz veröffentlicht. (#8473)


Der neue Uploader

Der auf Basis von HTML5/JavaScript neu programmierte Uploader verfügt über eine Dateiauswahl per Drag&Drop und unterstützt die Mehrfachauswahl. Und vor allem: Er kann Dateien übertragen, die größer sind als das PHP-Upload Limit!
Falls erwünscht, kann unter "Einstellungen -> Allgemein -> System -> Datei Upload" dennoch eine maximale Dateigröße definiert werden (0 = unbegrenzt). Hier besteht auch die Möglichkeit, auf den alten HTML-Uploader bzw. JUpload zurückzuschalten.

Der neue Uploader wird auch bei Image- und anderen Binary-Dokumenten zum Laden von Bildern, Filmen etc. verwendet,  sowie an allen anderen Stellen, wo das Backend das Hochladen von Dateien anbietet: Beim XML- und CSV-Import, beim Einspielen von Backups, in diversen Selektoren (z.B. bei "Server durchsuchen") und in den Modulen Newsletter (CSV-Mailinglisten und Blacklist) und Kundenverwaltung (Import).

Hinweis: Der neue Uploader verwendet die JavaScript Objekte File, FileReader, FileList, Blob und XMLHttpRequest(2). Falls ein Browser diese nicht vollständig unterstützt (IE < 10), wird als Fallback der alte HTML-Uploader ausgespielt. Im IE 10 und Opera < 15 steht der neue Uploader nur ohne Drag n Drop zur Verfügung. (#3593, #8596)

 

Mehr Transparenz bei den Rechten in der Benutzerverwaltung

  • Die Rechte der Elterngruppe werden nun (in einer zusätzlichen Spalte neben den bisherigen Rechte-Checkboxen) angezeigt, sodass die Auswirkung der Rechteübernahme deutlich ersichtlich ist (#4118)
  • Die Standardberechtigungen wurden überarbeitet: Ein neuer Benutzer erhält initial KEINE Berechtigungen. Sie können über die Buttons "Standard", "Alle abwählen" und "Alle anwählen" oder manuell gesetzt werden (#8542)


Erhöhte Performance durch Optimierungen am webEdition Core

Folgende Änderungen wirken sich in dieser Version besonders auf die Performance von webEdition aus:

  • Die Anzahl der DB connections wurde deutlich reduziert, wodurch der Seitenaufruf erneut massiv beschleunigt werden konnte (#8248)
  • Tag we:include: Aufgrund von generellen Änderungen bei der Implementierung von we:include ist ein Rebuild der inkludierenden Vorlage nicht mehr nötig: Änderungen an den beteiligten Templates sind somit schneller und ohne Rebuild verfügbar (#8447).
    Zudem wurde die Behandlung von we:include type="template" komplett überarbeitet und dadurch die Performance weiter gesteigert. Bitte auch das neue Attribut "once" beachten! (#8143 und #8448)


Sessionverwaltung unabhängig vom Hoster

webEdition kann nun selbst (verschlüsselte) PHP-Sessions verwalten und ist damit unabhängig von den Hostereinstellungen. Auch dies erhöht die Sicherheit von WE massiv. (#8614)


Kundenverwaltung mit diversen verbesserten Filtern

  • In der Kundenverwaltung läßt sich unter "Sortierung" nun nach beliebigen (in der KV abgebildeten) Kriterien filtern (#8072)
  • Für Kunden können nun in der Benutzerverwaltung Arbeitsbereiche (Filter) angelegt werden. Es können dann (im Backend) nur noch Kunden bearbeitet werden, die diesen Kriterien entsprechen. Diese Neuerung ist ein weiterer Schritt in Richtung Mandantenfähigkeit von WE (#8075)
  • Kundenverwaltung: Die Kundenauswahldialoge verwenden nun die gleiche Ordnerstruktur/Sortierung wie die KV selbst (#5561)
  • Im Verzeichnisbaum der Kundenverwaltung werden gesperrte Kunden zudem neu rot dargestellt (#7599)
  • Das bei fehlender Autorisierung ausgegebene Fehlerdokument setzt nun auch automatisch den HTTP-Statuscode 401 (#4239)
  • Einige KV-Felder werden nicht mehr standardmäßig angelegt, und können so nun auch einfacher selbst modifiziert werden: Titel, Anrede, HTML_Newsletter (#8838)


Errorlog mit neuer Exportfunktion

  • Es ist nun möglich einzelne Einträge zu Exportieren bzw. zu Löschen. Hinweis: Der Export sollte unbedingt verwendet werden, wenn Fehler in der Bugbase gemeldet werden! Bitte als externe Datei anhängen! (#8241)
  • Neu wird der Quelltext rund um die den Fehler auslösende Kodestelle ausgegeben. Damit ist es einfacher den Fehler einzugrenzen (#8258)
  • Die Datensicherheit wurde dadurch erhöht, dass Request- und Session-Felder mit den Namen "user", "username", "pass", "password" nun herausgefiltert werden (#8363)
  • Ebenfalls neu im Error-Log: JavaScript_fehler werden per Ajax an den Server geschickt und ins zentrale Log geschrieben (#9016)


Endlich mal in der Installation aufräumen...

Das LiveUpdate löscht anhand einer versionsweise aktualisierbaren Liste obsolete Dateien (aus Vorgängerversionen). (#7958)


@import für .scss

SCSS Dateien können nun mittels @import "#WE:123#"; ebenfalls andere WE-(S)CSS Dateien verwenden. (#8106 und #8646)


WYSIWYG-Editor: Defaultwerte für die Commands und mehr...

  • Unter "Einstellungen -> Allgemein -> we:tag Standards" lassen sich nun zentral die Commands für we:textarea definieren, sodass dies nicht mehr bei jedem Textarea-Feld einzeln erfolgen muss (#8136)
  • Die Gruppierung von Commands zu Gruppen wurde überarbeitet und stimmiger gemacht: Neu ist jedes Command in einer Gruppe enthalten, wodurch die Auswahl der Commands stark erleichtert wird. (#8151)
  • Der Wyswyg Editor TinyMCE erzeugt bei Ankern neu ein "name"- und ein "id"-Attribut. Damit sind die Anker HTML5-konform (#8631)

Wichtiger Hinweis: Die derzeit implementierte TinyMCE-Version ist nicht vollständig kompatibel mit dem InternetExplorer 11. Wir bemühen uns, möglichst bald die entsprechenden Updates einzuspielen.


Weitere Neuerungen und Optimierungen:

  • webEdition GUI: Durch die Umstrukturierungen mehrerer Menüeinträge (v.a. unter "Datei -> Neu") wurde die Konsistenz des Hauptmenüs erhöht. Zudem werden aufgrund fehlender Rechte überflüssige Menupunkte konsequenter ausgeblendet (#4820, #7366 und #8013)
  • webEdition GUI: Beim Anlegen neuer Kategorien kann nun auch die Autovervollständigung verwendet werden (#4203)
  • webEdition GUI: Redakteure (= Benutzer ohne Administrator-Rechte), die über die Rechte zum Löschen von Verzeichnisse und Dateien verfügen, können nun auch Verzeichnisse löschen, die nicht leer sind. Die Einzelauswahl aller in dem Verzeichnis enthaltenen Dokumente ist nicht mehr nötig (#8159)
  • Image-Dokumente: Ein Rolloverbild (unter Reiter "Eigenschaft" -> "Hyperlink") hat bisher zwingend einen Link vorrausgesetzt. Diese Einschränkung ist nun aufgehoben (#8259)
  • Tag we:block: Blöcke lassen sich nun mittels des Auswählers um x Schritte nach oben/unten verschieben (#1541)
  • Tag we:category: Mit we:category name="derName" kann nun auch im Editmode ein Kategorieselektor ausgegeben werden (#7953)
  • Tag we:delete: hat neu ein optionales Attribut "id", das man mittels id="$id" mit PHP befüllen kann. Die Einbindung von we_delete.inc.php ist DEPRECATED (#8644)
  • Tag we:href: Mit dem neu hinzugefügten Attribut "startid" kann das Startverzeichnis beim ersten Öffnen des we:href festgelegt werden. Anders als "rootdir" sagt "startid" nichts darüber aus, welche Verzeichnisse durchsuchbar sind (#7934)
  • Tag we:ifClient: erkennt nun auch Android und iPhone (#8713)
  • Tag we:ifDoctype: In der Taghilfe können beim Attribut "doctypes" neu auch mehrere Doctypes per Dropdownmenu gesetzt werden (#123)
  • Tag we:include: kann nun auch folgendermaßen mit PHP-Variablen für die "id" verwendet werden: <we:include type="template" id="$x"/>, <we:include type="template" id="\$x"/> und <we:include type="template" id="\$x[x]"/> (#8443)
  • Tag we:include: prüft nun, ob eine includierte Datei auf sich selbst veweist. Vorher konnte das Dokument in solche einem Fall nicht mehr aufgerufen werden. (#8123)
  • Tag we:listdir: funktioniert wieder korrekt. Zusätzlich wurde das Attribut "searchable" hinzugefügt, mit dem (wie bei Listviews üblich) definiert werden kann, ob Dokumente "durchsuchbar" sein müssen, um mit we:listdir gefunden zu werden (#8627)
  • Tag we:listview, type="languagelink": Das neue Attribut recrusive="true|false" legt fest, ob auch Default-Sprachverknüpfungen von übergeordneten Verzeichnissen berücksichtigt werden sollen (#7023)
  • Tag we:path: besitzt nun ein Attribut "max" um die Anzahl Zeichen des ausgegebenen Pfades zu begrenzen (#2902)
  • Tag we:printversion: Bei Verwendung dieses Tags können nun keine (über Kundenfilter,.htaccess, etc.) geschützten Daten mehr ausgeliefert werden. Dadurch wurde eine weitere Sicherheitslücke geschlossen (#1651)
  • Tag we:select: kann nun mit dynamischen Inhalten und CSV-Daten umgehen: <we:select><we:if....</we:select> bzw. <we:select>a,b,c</we:select> (#8436)
  • Tag we:sessionfield: Bisher war es möglich in Sessionfields php-Kode einzugeben, der dann bei der Anzeige auch ausgeführt wurde. Solcher Kode wird nun vor dem Speichern ausgefiltert (#8428)
  • Tags we:sessionfield und we:block: Das Tag we:sessionfield kann nun auch innerhalb von we:block verwendet werden (#8770)
  • Tag we:userInput, type="date": Die Attribute "minyear" und "maxyear" erlauben neben der Eingabe konkreter Jahreszahlen nun auch minyear="-4" oder maxyear="+5", womit ein Zeitraum relativ zum jeweils aktuellen Jahr definiert wird (#7821)
  • Tag we:write: Das Attribut "admin" bei <we:write /> wird jetzt auch beim Anlegen (und nicht wie bisher nur beim Bearbeiten) von Dokumente und Objekten berücksichtigt (#8411)
  • Mehrere Tags: Das Attribut "nameto" ist neu optional, wenn "to" und "name" angegeben sind: So kann z.B. bei <we:field name="meinFeld" to="global"> mit $meinName auf die Variable zugrgriffen werden, ohne dass nameto="meinFeld" gesetzt werden muss (#8672)
  • Mehrere Tags, Attribut "num_format": Das Zahlenformat "swiss" wird nun bei allen Tags mit einm Attribut "num_format" mit angeboten (#8597)
  • Backup/Export/Import: Die Modul- und Spracheinstellungen fehlten bisher im Backup. Diese werden nun ebenfalls exportiert und in der importierenden Installation entsprechend gesetzt (#8580)
  • Backup/Export/Import: Beim CSV Import ist es nun möglich per Schalter den Veröffentlichungs-Status sowie den Wert für "durchsuchbar" auszuwählen (#7598)
  • Backup/Export/Import: Beim CSV Import ist es zudem neu möglich, auch ein Verzeichnis als Ziel anzugeben (#7557)
  • Backup/Export/Import: Beim webEdition-XML Import werden jetzt auch die Dokumenttypen erkannt und nach dem Schreiben der importierten Dokumente korrekt gesetzt (#6809)
  • Backup/Export/Import: WE-Backups enthalten nun auch die WE-Version mit der sie erstellt wurden im Dateinamen (#6380)
  • Backup/Export/Import: Für binäre Inhalte werden nun im site-Ordner nur noch Hardlinks gesetzt: Das spart Speicher und macht das Backup unter Einschluss externer Dateien effizienter (#8925)
  • Cockpit/Widgets: Um mit dem Widget "zuletzt Bearbeitet" auch die Änderungen anderer Benutzer anzuzeigen, wird nun ein neues Recht (Kontrollrecht) benötigt. Die "Überwachung" der Arbeit anderen Benutzer ist dadurch nicht mehr standardmäßig aktiviert (#8469)
  • Cockpit/Widgets: Das Widget "Schnellzugriff" wurde um den Eintrag "neue Grafik" ergänzt (#8921)
  • DB/Objekt-Modul: Sonderzeichen anderer Sprachen als Deutsch und Englisch werden bei der Generierung von Seo-URLs nicht mehr einfach entfernt, sondern neu in ein lateinisches Äquivalent umgewandelt: z.B. "ñ" zu "n" (#8590)
  • DB/Objekt-Modul: Tag we:object: Für die Verwendung ohne das Attribut "id" wurde neben dem Objektselektor die Autovervollständigung aktiviert. Mit einem neuen Button kann das verlinkte Objekt nun direkt geöffnet werden (#8028)
  • Fehler-Protokoll: Die Anzahl der Lognachrichten im Error-Log pro Aufruf wurde limitiert für die DB (500) und per Mail (15) (#8834)
  • Glossar-Modul: Bei der Glossarersetzung lassen sich jetzt neben ganzen Wörtern auch Wortteile ersetzen (#6587)
  • Kundenverwaltung: Tag we:sessionfield, type="print|hidden": unterstützt neu auch das Attribut "htmlspecialchars" (#8487)
  • Navigations-Tool - wichtige Änderung: Die Navigation auf der Eigenschaftenseite hat bis auf weiteres nur noch Informativen Charakter, da hier ungewollt die Navigation zerstört werden konnte (#8721)
  • Navigations-Tool: Navigationsregeln lassen sich korrekterweise nur noch von Benutzern mit entsprechenden Rechten bearbeiten (#5463)
  • Navigations-Tool: Bei der Definition dynamischer Inhalte von Navigationsverzeichnissen lässt sich das Titel-Feld nun auch manuell befüllen. Dies funktioniert neu auch, wenn kein Doctype gewählt ist (wobei hier auch weiterhin das Popup zur Feld-Auswahl entfällt) (#4162)
  • Navigations-Tool: Das bislang fehlende Recht "darf Navigationseinträge löschen" wurde ergänzt und zusammen mit anderen Navigations-Rechten unter "Navigation" zusammengefaßt (#8444)
  • Newsletter-Modul: Tag we:unsubscribe: Newsletter austragen war bisher case-sensitive. Diese Einschränkung wurde aufgehoben (#8245)
  • Shop-Modul: Auch nicht durchsuchbare Objekte können nun in den Warenkorb gelegt werden (#8327)
  • Shop-Modul: In der Umsatzübersicht werden jetzt die Anzahl und die Gesamtsumme jedes Artikels ausgegeben (#8412)
  • Shop-Modul: Tag we:field, type="href" steht neu auch innerhalb von <we:listview type="orderitem"> zur Verfügung (#7816)
  • Shop-Modul: Tag we:shopField: Der Tag wurde um die beiden Typen "language" und "country" erweitert. (#8275)
  • Vorlagen-Editor: In Codemirror wird nun auf den ID's von Dokumenten, Objekten und Templates als Tooltip der Pfad angezeigt. Bei we:include ist es nötig, daß das Attribut "type=template" vor der "id" steht (#8179)
  • Vorlagen-Editor: Suchen und Ersetzen im CodeMirror kann nun mittels Enter bestätigt werden (#8527)
  • Wysiwyg-Editor: Bisher führte die Verwendung des Tabulators innerhalb einer TinyMCE-Tabelle, zu einem Sprung ins nächste webEdition-Eingabefeld: Der Tab kann neu zur Navigation innerhalb der Tabelle verwendet werden. Auch Zeilenumbrüche mit "Enter" sind jetzt möglich. Ebenfalls: Der Editor setzt auch innerhalb von Tabellen-Zellen <p>-Tags als Absatz => löscht man aus einer Zelle soviel Text raus, dass nur noch ein Abschnitt übrig bleibt, werden die <p>-Tags um den Text entfernt (#8578 und #8816)
  • Wysiwyg-Editor: Das Plugin wordcount wurde in die WE-Implementirung von TinyMCE aufgenommen. Die Anzahl Wörter soll eigentlich kontinuierlich neu berechnet werden: Der aktuell gewählte Trigger wird dieser Anforderung noch nicht komplett gerecht (#8283)
  • Wysiwyg-Editor: Wegen fehlendem Browsersupport wurden die Buttons Kopieren, Ausschneiden und Einfügen aus dem Editor entfernt (#8235)

Behobene Fehler

  • webEdition Core: Ein zeitweise auftretendes Probelm mit zu hohem Speicherbedarf wurde behoben (#8390)
  • webEdition-GUI: Diverse PHP-Notices wurden behoben, Darstellungs- und Textfehler im Backend korrigiert ( #8624, #7519, #8676, #8287, #8335, #8359, #8293, #7929, und #8234)
  • webEdition GUI: Beim Umbenennen von Verzeichnissen blieb häufig das alte Verzeichnis übrig. Dieser Fehler wurde behoben (#8291)
  • webEdition GUI: Die Sortierung nach Änderungsdatum im File-Selektor hat in den Sicherheitspatches -s1 und -s2 nicht funktioniert. Diese Problem wurde behoben (#8800)
  • webEdition GUI: Das Kopieren von Verzeichnissen konnte zu Fehlern führen, wenn hierbei auch neue Vorlagen erzeugt wurden. Dies geschieht nun nicht mehr (#8284)
  • webEdition GUI: Dokumenten-Verzeichnisse, Tab "Inhalt": Ein Fehler beim Blättern in der Auflistung des Verzeichnis-Inhalts wurde gefixt (#8831)
  • webEdition GUI: Das Speichern von E-Mail-Adressen unter "Einstellungen -> Allgemein -> Formmail" funktioniert wieder normal (#8722)
  • webEdition GUI: Dateinamen dürfen auf ISO Systemen nur druckbare Ansi-Zeichen enthalten: Das Aufheben dieser Beschränkung in 6.3.8 hatte zu Problemen geführt und wurde deshalb zurückgenommen (#8479)
  • webEdition GUI: Die Anzeige von PDF-Dateien auf der Vorschauseite (eingebetter PDF-Betrachter) ist nun korrekt (#8650)
  • webEdition GUI: Im Dokumentenselektor funktionieren die Buttons "Hoch" und "/" (Site-Root) wieder normal (#8395)
  • webEdition GUI: Das Umbenennen von Verzeichnissen funktioniert nun auch dann wieder problemlos, wenn darin enthaltene Dokumente/Objekte geöffnet sind (#4223)
  • webEdition GUI: Das Ändern von Dokumenten-Besitzern hat zeitweilig nciht mehr funktioniert. Das Problem wurde behoben (#8954)
  • webEdition GUI, Bild-Dokumente: Die Vorschau-Bilder im Reiter "Bearbeiten" manchmal nicht angezeigt, bspw. ein "+" im Pfad war. Die Vorschau funktioniert wieder korrekt (#8901)
  • Aufgrund eines neuen Sicherheitsmodell von Java wurden die Applets wenn, dann nur noch nach mehrfacher Nachfrage ausgeführt. Die Java Plugins wurden um erforderliche neue Attribute im Manifest erweitert, sodass sie auch in den aktuellen Browsern wieder lauffähig sind (#8362 und #8278)
  • Ein Fehler bei der Ausgabe von Thumbnails, wenn "Verzeichnis ersetzen" benutzt wird, konnte behoben werden (#8651)
  • Tags we:block und we_listview type="document": Ein mit we_listview type="document" includierter we:block funktioniert nun auch, wenn er verschachtelt ist und die we:listview sich selbst wiederum in einem verschachtelten Block befindet. (#9064)
  • Tag we:captcha: Nach einer Neuimplementierung des Captchas auf Datenbank-Basis wird nun auch das Attribut "fontsize" korrekt ausgewertet (#5215)
  • Tag we:field, type="img": Das Ausspielen von Alttext und Titel mit only="alt" bzw. only="title" funktioniert jetzt problemlos. Auch die Ausgabe der <img>-Attribute "alt" und "title" mit <we:field type="img"> (ohne "only") wurde gefixt (#8018 und #8544)
  • Tag we:field: Das we:listview-Attribut "hidedirindex" wird nun in we:field korrekt verarbeitet (#9063)
  • Tag we:form, id="self": Fehler bei SEO-Urls in Verbindung mit id="self" wurden behoben (#8817)
  • Tag we:formmail: Beim Versenden von Formularfeldern per E-Mail werden nun die Zeichenumbrüche (Return/Enter in der normalen Textarea) korrekt in die für die MIME-Types "text/plain" und "text/html" passenden Umbrüche konvertiert (#7581)
  • Tag we:href: Der Button für die Auswahl externer Dokumente funktioniert wieder normal (#8420)
  • Tag we:ifCaptcha: Neu können in einem Template auch mehrere we:ifCaptcha verwendet werden (bisher war die Ausgabe ab dem zweiten Auftreten des Tags falsch) (#8763)
  • Tag we:ifFieldEmpty, type="href": Das Tag hat fälschlicherweise jedes Feld als befüllt erkannt (#8883)
  • Tags we:ifVar und we:setVar: Bei der Verwendung der booleschen Werte true|false kam es bei <we:ifVar> und <we:setVar/> zu Problemen. (#5453)
  • Tags we:ifVar(Not)Empty: funktioniert nun auch bei type="href" wieder korrekt (#8416)
  • Tag we:img: Die Attribute "alt" und "title" wurden beim Austausch des Bildes nicht vom Bild-Dokument übernommen. Dieser Fehler wurde gefixt (#8404)
  • Tags we:img und we:block: Bei Bildern, die in Blöcken platziert waren, wurden teilweise die Attribute "alt" und "title" nicht ausgegeben. Dieses Problem besteht nicht mehr (#8089)
  • Tag we:listview, type="languagelink": Da der Parameter für Objekte falsch übergeben wurde, ließen sich Objekte nicht sprachabhängig ausgeben. Dieser Fehler wurde behoben (#8551)
  • Tag we:listview, type="languagelink": Ein Fehler bei der Verarbeitung des Attributs "pagelanguage"wurde behoben (#8498)
  • Tag we:listview, type="object": Fehler bei der Ausgabe des Objekt-Edit-Buttons im SEE-Mode sind behoben worden (#6857)
  • Tag we:listview, type="search": Ein Fehler in der Suche, der dazu führte, das zeitweise gar keine Ergebnisse mehr gefunden wurden, ist gefixt (#8255)
  • Tag we:listview, type="document", mit objectseourls="true": In dieser Kombination wurde der Inhalt von Verzeichnisesn nicht gefunden, wenn "Verzeichnis durch Domain ersetzen" gesetzt war. Dieser Fehler ist gefixt (#8654)
  • Tag we:userinput: akzeptiert nun auch Text innerhalb von <we:userInput>TEXT</we:userInput> als Inhalt (das gilt für viele, jedoch nicht alle types) (#8208)
  • Tags we:ifEqual, we:ifVar: Die beim Prüfen auf den Wert "0" (<we:ifEqual name="derName" value="0">) auftretenden Fehler wurden behoben (#8261)
  • Tags we:ifUserInputEmpty und we:userinput, type="checkbox": Bei der Überprüfung von we:userInput type="checkbox" lieferte we:ifUserInputEmpty immer TRUE zurück. Dies wurde gefixt (#8492)
  • Backup/Export/Import: Die Checkbox "Backup komprimieren" wird wieder korrekt ausgewertet (#8297)
  • Backup/Export/Import: Die komprimierte Download-Version des Backups bekommt anstelle der falschen doppelten Endung ".gz.gz" wieder das korrekte ".gz" angehängt (#8346)
  • Backup/Export/Import: In speziellen Fällen hat das Einspielen eines Backups nicht funktioniert. Dies ist nun behoben (#8249)
  • Backup/Export/Import: Der Download von XML-Dateien funktioniert wieder normal. (#8137)
  • Backup/Export/Import: Beim generischen XML-Import wurde vor Tags das Leerzeichen entfernt. Dieser Fehler wurde behoben (#8203)
  • Backup/Export/Import: Bisher wurde die Kodierung der Import-Datei (ISO, UTF-8, etc.) ignoriert, sodass das Encoding des Imports nicht an die Einstellung von WE angepaßt werden konnte. Dies wurde geändert, die damit zusamenhängenden Fehler treten nicht mehr auf (#3193)
  • Backup/Export/Import: Der Schritt "Links aktualisieren" wurde beim Einspielen von Backups nicht immer vollständig ausgeführt. Dieses Problem wurde behoben: #WE:ID# wird nun auch beim Import korrekt ersetzt (#8715)
  • Backup/Export/Import: Der Import alter WE-XML-Dateien war nicht mehr möglich. Dieser gravierende Fehler wurde behoben (#8227)
  • Backup/Export/Import und Benutzerverwaltung: Beim Import war es möglich Dateien im Root-Verzeichnis "/" abzulegen, auch wenn der Arbeitsbereich des Benutzers dies verboten hat. Die Arbeitsbereiche werden nun auch beim Import korrekt beachtet (#8129)
  • Banner-Modul: Ein Fehler bei der Anzeige des Banners im Frontend wurde gefixt (#8907)
  • Benutzerverwaltung: Beim Upload von Dateien über den Dateiwähler, konnten Dateien außerhalb des Arbeitsbereichs importiert werden (#8238)
  • Benutzerverwaltung: Einige Module waren trotz Deaktivierung der entsprechenden Rechte im Module-Fenster sichtbar. Dies wurde korrigiert (#8477)
  • Benutzerverwaltung: Das Recht "Import von Server" war fälschlicherweise zur Ausführung eines Importes nicht alleine ausreichend. Der Fehler wurde behoben (#8133)
  • Benutzerverwaltung: Die Selektoren für die Arbeitsbereiche haben sich den zuletzt gewählten letzten Eintrag nicht mehr "gemerkt" (#8465)
  • Benutzerverwaltung: Ein Fehler hat dafür gesorgt, daß Rechte auf Verzeichnissen beim Live-Update zurückgetzt wurden. Dies geschieht nun nicht mehr (#8264)
  • Benutzerverwaltung: Unter den Einstellungen eines Benutzers kann die Startseite nun auch wieder auf "-" (= keine Startseite) gesetzt werden (#8891)
  • Cockpit/Widgets: Im Shop-Dashboard Widget wird jetzt auf externe JS-Quellen verzichtet (#8645)
  • Cockpit/Widgets: Shop Dashboard: Durch einen Fehler in der Datenbankabfrage wurden die Werte der beiden Kennzahlen "Bezahlt" und "Unbezahlt" vertauscht. Dieser Fehler ist nun korrigiert (#8330)
  • Cockpit/Widgets: Ein JavaScript-Fehler im Cockpit wurde behoben (#8281)
  • DB/Objekt-Modul: Bei geparkten Seo-Objekten wurde das 404er-Dokument nicht angezeigt (#8545)
  • DB/Objekt-Modul: Bei Änderngen der Klasse werden nun auch die Tabs der (zugehörigen) geöffneten Objekte neu geladen (#7051)
  • DB/Objekt-Modul: Beim (nachträglichen) Umstellen eines Feldes auf den Typ "Select" wurden im ersten key-Feld interne Daten ausgegeben. Dies geschieht nun nicht mehr (#4732)
  • DB/Objekt-Modul: Beim Erstellen einer Vorlage aus einer Klasse heraus (unter "Arbeitsbereich" -> "Vorlage" -> Button "Vorlage hinzufügen") war die Verzeichnisauswahl für die neue Vorlage ohne Funktion. Dies wurde korrigiert (#8537)
  • DB/Objekt-Modul: Ein Anzeigefehler in der Vorschau von Objekten ohne Arbeitsbereich wurde gefixt (#8237)
  • DB/Objekt-Modul: In Verbindung mit Variantenfeldern wurden teilweise Felder bei der Bearbeitung von Objekten nicht angezeigt (#8099)
  • DB/Objekt-Modul: In der Ausgabe der Verzeichnisansicht (von Objekten) werden Links nun deutlich als solche erkennbar dargestellt (#8591)
  • DB/Objekt-Modul: In der Beschreibung von Klassenfeldern unter Objekt -> "Bearbeiten" wurde der Zeilenumbruch nicht berücksichtigt. Dieser Fehler wurde gefixt, außerdem wird die Darstellung nun einheitlich in der Breite begrenzt (#8611)
  • DB/Objekt-Modul: In einer Klasse lassen sich nun die Eigenschaften Titel, Beschreibung etc. wieder von einem Feld entfernen (#6906)
  • DB/Objekt-Modul: Tag we:object: Bei der Anzeige von Objekten mittels we:object wurden einige Felder nicht vollständig aus der Dateitabelle ausgelesen und konnten deshalb nicht angezeigt werden (z.B. wedoc_ModDate). Dieses Problem wurde behoben (#7647)
  • DB/Objekt-Modul: Die Tags ifVarEmpty und ifVarNotEmpty: funktionieren nun auch bei Bildern (#6974)
  • DB/Objekt-Modul: Unter Klasse -> "Bearbeiten" werden Wysiwyg-Editoren nach dem Ändern des Feldtyps bzw. von Textarea-Attributen wieder auf Anhieb korrekt ausgespielt (#8176)
  • DB/Objekt-Modul: Wurden Textfelder bei Objekten als Pflichtfelder gesetzt, konnte Objekte nicht mehr gespeichert werden. Dieser fatale Fehler tritt nun nicht mehr auf (#8495)
  • DB/Objekt-Modul: Das Löschen von Objekten ist nun auch wieder aus der Übersichtsseite von Objekt-Verzeichnissen (#8990)
  • DB/Objekt-Modul: Beim Frontend-Editing mit we:write konnte es passieren, dass Einträge in den Objekttabellen doppelt angelegt wurden. Dies geschieht nun nicht mehr (#8846)
  • DB/Objekt-Modul: Nach dem Kopieren eines Objektes liess sich ein darauf befindliches Bild nicht mehr austauschen. Dieses Verhalten wurde korrigiert (#8917)
  • Glossar-Modul: Die Einstellung "Automatische Glossarersetzung" hatte keine Funktion und wurde immer ausgeführt. Die Einstellung wird nun korrekt verarbeitet (#8667)
  • Glossar-Modul: Glossareinträge hatten immer das Attribut "IsHot", auch wenn sie gerade erst gespeichert wurden. Dies ist nun behoben (#7387)
  • Glossar-Modul: Glossareinträge vom Typ "Hyperlink" wurden fehlerhaft umgesetzt. Dieser Fehler wurde gefixt (#8180)
  • Kundenverwaltung: Ein Problem bei der rekursiven Übernahme von Kundenfiltern wurde behoben. Der Filter wird nun zudem auch richtig gesetzt, wenn ein neuer Ordner bereits vor dem ersten Speichern in einen Ordner mit Kundenfilter gesetzt wird (#6304)
  • Navigations-Tool: Aufgrund einer fehlenden Überprüfung war es möglich Einträge auch dann im Root-Verzeichnis "/" zu speichern, wenn dieses gar nicht innerhalb der erlaubten Verzeichnisse lag. Dieser Fehler wurde behoben (#8168)
  • Kundenverwaltung: Das Speichern leerer Werte in der Kundenverwaltung schlug bisher fehl. Dieses Problem wurde behoben (#8809)
  • Kundenverwaltung: Tag we:listview: Fehler bei der Verwendung von we:listview in Verbindung mit cfilter="true" wurden entfernt (#8822)
  • Kundenverwaltung: Tag we:registerSwitch: wirkt sich jetzt nur noch auf das aktuelle Dokument aus (#8808)
  • Navigations-Tool: Bei Navigationseinträgen vom Typ "Eintrag/Entry" wurde der Verzeichnis-Index bei statischer Auswahl nicht korrekt verarbeitet (#8355)
  • Navigations-Tool: Die Navigation wurde in Version 6.3.8 zum Teil nicht angezeigt, wenn dem Root-Verzeichnis kein Dokument zugewiesen wurde. Dieses Verhalten wurde wieder korrigiert (#8482)
  • Navigations-Tool: Tag we:navigationEntry: Bei der Ausgabe der Navigation wurden bei der Berechnung der Position gefilterte wie auch geparkte Dokumente weiterhin berücksichtigt. Dadurch funktionierte das Attribut "position" fehlerhaft. Dieses Problem wurde behoben (#8270)
  • Navigations-Tool: Unter "Regeln für Highlighting -> Aktiver Navigationspunkt" wurden die Navigations-Arbeitsbereiche nicht beachtet. Das Problem ist behoben, sodass der Bearbeiter nur noch seinen Berechtigungen entsprechend auf Verzeichnisse zugreifen kann (#8014)
  • Newsletter-Modul: Bei bestimmten falschen Newsletter-Einstellungen konnten keine neuen Kunden mehr über die Newsletter-Anmeldung zur KV hinzugefügt werden. Dieses Problem wurde entschärft (#8716)
  • Newsletter-Modul, Tag we:newsletterConfirmLink: Die Einstellung "Verzeichnis durch Domain ersetzen" wird nun korrekt verarbeitet (#8999)
  • Newsletter-Modul: Beim Wechsel zwischen den Tabs gingen einige Einstellungen (bspw. die Kundenfilter) verloren. Dieses Fehlverhalten wurde korrigiert (#8396)
  • Newsletter-Modul: Ein Problem beim Newsletter-Versand wurde behoben. Ebenfalls: Die Kunden-Filter im Tab "Mailing-Liste" werden wieder korrekt gespeichert (#8756)
  • Newsletter-Modul: Tag we:addDelNewsletterEmail, type="customer": Bei Newsletteranmeldungen vom Type 'customer' wurde die Auswahl der Mailinglisten nicht korrekt ausgewertet. Dieses Verhalten wurde korrigiert (#9002)
  • Shop-Modul: Aufgrund eines Fehlers wurden im Tab "Varianten" auch Felder angezeigt, die gar nicht zur Variante gehörten (#8531)
  • Shop-Modul: Das Löschen von Variantenfeldern wurde teilweise nicht korrekt verarbeitet (#8522)
  • Shop-Modul: Ein weiterer Fehler bei den Varianten im Shop wurde korrigiert (#8314)
  • ToDo-/Messaging-Modul: Im IE waren die Buttons oben links für Message/Todo nicht funktional (#8299)
  • Versionierung: Die Suche innerhalb von Versionen hat die Komprimierung der Daten nicht beachtet und deshalb Fehler geworfen (#8833)
  • Versionierung: Die Versionierung von sehr großen we-Dokumenten war fehlerhaft, da das zugehörige DB-Feld zu klein war (#8947)
  • Vorlagen-Editor: Das Abschalten von "indent" funktionierte nicht immer korrekt. Dieser Fehler wurde behoben (#8266)
  • Vorlagen-Editor: Die Ersetzungsfunktion des CodeMirror hat sich bisher geweigert, gefundenen Text durch einen Leerstring zu ersetzen. Dieses Problem wurde gelöst (#8267)
  • Vorlagen-Editor: Die Funktion "Rückgängig" per Tastenkombination (cmd|strg + z) funktioniert im FF auch wieder unter MacOS (#8257)
  • Vorlagen-Editor: Hatte ein Tag keinen Eintrag in der Tag-Referenz, kam es zu einem Fehler bei der Kodevervollständigung. Dies wurde korrigiert (#8280)
  • Vorlagen-Editor: In Opera war es nicht immer möglich das Ende einer Zeile zu bearbeiten, wenn man vorher mit "del" gearbeitet hat. Dieses Problem wurde behoben (#7849)
  • Vorlagen-Editor: Das Plugin wurde um Fehler bei der Synchronisation binärer Dateien (Grafiken etc.) bereinigt (#8837)
  • Wysiwyg-Editor: Bei we:textarea gab es ein Problem, wenn der Name ein "-" enthielt. Dies ist nun zuläßig (#8603)
  • Wysiwyg-Editor: Beim Bild-Dialog konnten direkt nach dem Auswählen eines Bildes keine Attribute dauerhaft gesetzt werden. Auch die Anpassung von Höhe bzw. Breite beim Ändern derselben mit ratio=true hat nicht mehr funktioniert. Beide Probleme wurden behoben (#8247)
  • Wysiwyg-Editor: Der TinyMCE-Fehler bei "removeFirstParagraph" im IE 8 wurde behoben (#8254)
  • Wysiwyg-Editor: URL-Parameter wurden im Link-Dialog URL-kodiert dargestellt. Nun wird die URL wieder dekodiert angezeigt (#8409)
  • Wysiwyg-Editor: Die HTML-Ansicht von TinyMCE hat im IE11 nicht mehr funktioniert (weitere Probleme des Editors im IE11 werden spätestens in der nächsten WE-Version behoben) (#8295)
  • Wysiwyg-Editor: Die Liste der Commands und Command-Gruppen in der Taghilfe war nicht mehr deckungsgleich mit den Commands, die bei fehlendem oder leerem Attribut "commands" ausgegeben wurden. Diese auf die Einführung von TinyMCE zurückgehende Inkonsistenz wurde behoben (#8475)
  • Wysiwyg-Editor: Ein JavaScript-Problem bei der Eingabe von Ankern im Link-Dialog wurde behoben (#8632)
  • Wysiwyg-Editor: Enthielt eine we:textarea spezielle UTF-8 Zeichen (wie etwa das U+2028), konnte dieser Bereich nicht mehr bearbeitet werden. Das Problem wurde behoben (#8150)
  • Wysiwyg-Editor: Ein Fehler bei der Tabellenbearbeitung wurde behoben: Der Cursor lässt sich wieder normal positionieren (#8816)
  • Wysiwyg-Editor: Links auf Objekte innerhalb einer we:textarea wurde teilweise entfernt (#8858)
  • Zeitplaner/Scheduler: Im Zeitplanter konnten die Kategorien nicht mehr gespeichert werden (#8798)

Informationen für Entwickler

Änderungen an internen Funktionen/webEdition Tags/Datenstrukturen

  • Die Datenbank-Funktion getHash() hat als Default MYSQL_ASSOC, d.h. list($a,$b)=getHash('....') geht nur, wenn getHash('...',$db,MYSQL_NUM); aufgerufen wird. Die Variable $db darf entfallen oder null sein, wenn eine bestehende Datenbankverbindung aus  $GLOBALS['DB_WE'] genutzt werden soll.
  • Das Captcha Tag nutzt nun die Datenbank.
  • Beim direkten Zugriff auf die webEdition Datenbank sollte zukünftig nur noch DB_WE-Klasse und NICHT mehr die mysql[i]_*-Funktionen verwendet werden.

Deprecated: Funktionen/webEdition Tags/Datenstrukturen die ab dieser Version nicht mehr genutzt werden sollten

Tags:

we_delete_fn.inc.php

Zum manuellen Löschen von webEdition Dokumenten bzw. Objekten wurde in der Vergangenheit die Funktionen aus we_delete_fn.inc.php genutzt. Zukünftig sollte stattdessen der Zugriff auf die jeweiligen (nachfolgend beispielhaft aufgeführten) Objekte erfolgen:

  • weTree::deleteTreeEntries($dontDeleteClassFolders);
  • we_base_delete::checkDeleteEntry($id, $table);
  • we_thumbnail::deleteByImageID($id);
  • we_thumbnail::deleteByThumbID($id);
  • we_base_delete::deleteEntry($id, $table, $delR, $skipHook, $DB_WE);

we_global.inc.php

  • we_getModuleNameByContentType()
  • we_getIndexFileIDs()
  • we_getIndexObjectIDs()
  • getAllowedClasses()
  • we_hasPerm()
  • removePHP()
  • we_make_attribs()
  • filterXss()

Datenbanktabellen

Folgende Tabellen werden auf die neue Tabelle tblSettings

Funktionen/webEdition Tags/Datenstrukturen die in dieser Version nicht mehr zur Verfügung stehen

Entfernte Funktionen in "we_global.inc.php"

  • getMysqlVer()
  • weFileExists()
  • we_getCatsFromDoc()
  • we_getCatsFromIDs()
  • getCurlHttp()
  • deleteContentFromDB()
  • cleanTempFiles()
  • ObjectUsedByObjectFile()
  • filterIntVals()
  • weRequest()
  • we_userCanEditModule()
  • makeOwnersSql()
  • we_getAliases()
  • we_isOwner()
  • shortenPath()
  • shortenPathSpace()
  • userIsOwnerCreatorOfParentDir()
  • getArrayKey()
  • getHrefForObject()
  • getNextDynDoc()
  • parseInternalLinks()
  • removePHP()
  • we_make_attribs()
  • filterXss()

Änderungen bei den Datenbankstrukturen

  • tblIcons (entfernt)
  • tblMsgSettings (entfernt)
  • Bei allen Objekt-Tabellen wurde die Spalte ID entfernt. Das Objekt wird nun einheitlich über OF_ID (wie in tblObjectFiles) adressiert.
  • tblObjectFiles Spalten wurde die Spalte ObjectID und IsNotEditable entfernt
powered by webEdition CMS