Blog

Cloudrexx 5.1 Release Notes

Cloudrexx 5.1 Release Notes

Das Release 5.1 von Cloudrexx für den Betrieb auf PHP 7.3/7.4 steht ab sofort zum Download bereit.

Cloudrexx 5.1 Release Notes
Veröffentlicht am 20.01.2021, 12:00:00 Uhr
von  Thomas
thomas.daeppen@cloudrexx.com
Veröffentlicht am 20.01.2021, 12:00:00 Uhr
Das Release 5.1 ist ab sofort verfügbar und enthält viele Verbesserungen der Version 5, sowie einige kleinere neue Funktionen. Zudem beinhaltet das Release Unterstützung für PHP 7.3 & 7.4, schliesst kritische Sicherheitslücken und stärkt die Sicherheit des Systems. Das Upgrade auf das Release wird daher dringend empfohlen. Das Release kann ab sofort im Download-Bereich heruntergeladen werden.

Inhaltsverzeichnis

Neue Funktionen

 

Allgemein

  • Kompatibilität mit PHP 7.3/7.4

Benutzer und Rechte

  • In der Bearbeitungsmaske wird das ausgewählte Profilbild direkt als Vorschau angezeigt.
    Herzlichen Dank dem Partner Comvation AG für die Beisteuerung der neuen Funktion via GitHub
  • Die Auflistung der angepassten Profildaten der E-Mail Vorlage Benutzerprofil-Mutation, welche nach der Modifikation eines Benutzerprofils (im Frontend) versendet wird, kann nun individualisiert werden.
  • Bei der Aktivierungsmethode Aktivierung durch den Benutzer gibt es neu die Möglichkeit eine E-Mail-Benachrichtigung (Vorlage Benutzer-Aktivierung) nach erfolgter Benutzer-Aktivierung an ausgewählte Empfänger zu versenden.

Bildergalerie

  • Mit dem Platzhalter [[GALLERY_CATEGORY_ID]] kann die ID einer Kategorie bei der Auflistung der Kategorien (innerhalb des Template-Blocks <!-- BEGIN/END galleryCategoryList -->) ausgegeben werden.

Digital Asset Management

  • Mit dem folgenden funktionalen Platzhalter kann die standardmässige Anzahl anzuzeigender Downloads übersteuert werden (Doku): [[DOWNLOADS_CONFIG_LIMIT_<LIMIT>]]
  • Mit dem Platzhalter [[DOWNLOADS_FILE_MIME_TYPE]] kann der Typ (image / document / pdf / media / archive / application / link) eines Downloads ausgegeben werden.
  • Bei der Suche können bei den gefundenen Downloads nun die dazugehörenden Kategorien aufgelistet werden. Dazu steht neu der Template Block <!-- BEGIN/END downloads_search_file_category_list --> zur Verfügung (Doku).
  • Die Meta-Keywords von Downloads werden bei der Suche nun auch beachtet.
  • Bei der Erfassungsmaske von Downloads werden die Felder zur Auswahl der verknüpften Kategorien und Downloads bei Bedarf automatisch vergrössert, damit diese besser identifiziert werden können.

E-Commerce Shop

  • Der Gesamtpreis aller Artikel im Warenkorb (vor Abzug Rabatte) inkl MwSt. kann im interaktiven Warenkorb mit dem Platzhalter [[SHOP_JS_TOTAL_PRICE_CART]] ausgegeben werden.
  • Der Einzelpreis von Produkten kann im interaktiven Warenkorb mit dem Platzhalter [[SHOP_JS_PRODUCT_ITEM_PRICE]] ausgegeben werden.
  • Mit dem funktionalen Platzhalter [[SHOP_FORCE_JS_CART]] kann die mehrfache Platzierung/Integration des interaktiven Warenkorbes im Webdesign Template ermöglicht werden.
  • Der Gesamtpreis aller Artikel im Warenkorb (nach Abzug Rabatte) ohne MwSt. kann im interaktiven Warenkorb mit dem Platzhalter [[SHOP_JS_TOTAL_PRICE_WITHOUT_VAT]] ausgegeben werden.
  • Gesamtpreis aller Artikel im Warenkorb (vor Abzug Rabatte) ohne MwSt. kann im interaktiven Warenkorb mit dem Platzhalter [[SHOP_JS_TOTAL_PRICE_CART_WITHOUT_VAT]] ausgegeben werden.
  • Der Mengenpreis pro Artikel ohne MwSt. kann im interaktiven Warenkorb mit dem Platzhalter [[SHOP_JS_PRODUCT_SALE_PRICE]] ausgegeben werden.
  • Zu den Bildern von Rubriken und Produkten stehen alle grössen der Vorschaubilder als Platzhalter zur Verfügung:
    • Aktuelle Rubrik (Doku):
      [[SHOP_CATEGORY_CURRENT_THUMBNAIL_FORMAT_THUMBNAIL]]
      [[
      SHOP_CATEGORY_CURRENT_THUMBNAIL_FORMAT_MEDIUM]]
      [[
      SHOP_CATEGORY_CURRENT_THUMBNAIL_FORMAT_LARGE]]
    • Unterrubrik (Doku):
      [[SHOP_CATEGORY_THUMBNAIL_FORMAT_THUMBNAIL]]
      [[
      SHOP_CATEGORY_THUMBNAIL_FORMAT_MEDIUM]]
      [[
      SHOP_CATEGORY_THUMBNAIL_FORMAT_LARGE]]
    • Produkte (Doku):
      [[SHOP_PRODUCT_THUMBNAIL_FORMAT_THUMBNAIL_1]]
      [[
      SHOP_PRODUCT_THUMBNAIL_FORMAT_MEDIUM_1]]
      [[
      SHOP_PRODUCT_THUMBNAIL_FORMAT_LARGE_1]]
  • In der E-Mail-Bestellbestätigung kann die Auflistung der Produktmerkmale mit dem Template-Block [PRODUCT_OPTION_LIST] individuell gestaltet werden.
  • In der E-Mail-Bestellbestätigung kann der Titel des Kunden über den Platzhalter [CUSTOMER_TITLE] verwendet werden.
  • Mit dem Platzhalter [PRODUCT_GROUP_NAME] kann der Name der zugewiesenen Produktegruppe eines Produkts in der E-Mail Benachrichtigung ausgegeben werden.
  • Erweiterte Gestaltungsmöglichkeiten zum Lagerbestand von Produkten.
  • Die Gebühr einer Zahlungsart kann neu als prozentualer Wert hinterlegt werden. Für Online-Zahlungen (z.B. Kreditkarten) kann so die Kommission des Zahlungsanbieters erhoben werden.
  • Die Beschreibung einer Rubrik kann mit Rich Text (HTML) formatiert werden.
  • Mit den zusätzlichen Platzhaltern [[SHOP_PRODUCT_OPTIONS_ID]] und [[SHOP_PRODUCT_OPTIONS_TYPE_ID]] kann die ID eines zugewiesenen Produktmerkmals, resp. die ID dessen Typs (siehe Doku) ausgegeben werden.
  • Mit dem Template-Block <!-- BEGIN/END shop_product_categories --> können die IDs einem Produkt zugewiesenen Rubriken ausgegeben werden.
  • Mit den Platzhaltern [[SHOP_TAX_PRICE_NO_SYMBOL]] und [[SHOP_TOTAL_TAX_AMOUNT_NO_SYMBOL]] kann der Gesamtbetrag der MwSt., resp. das MwSt. Total aller Produkte (nach Abzug allfälliger Rabatte) jeweils ohne Währungsangabe ausgegeben werden.
  • Mit dem Platzahlter [[SHOP_COUPON_UNIT]] kann die Währungseinheit für den Wert des Gutscheincodes ausgegeben werden.
  • Mit dem Platzhalter [[SHOP_PRODUCT_GROUP_ID]] kann der Name der zugewiesenen Produktegruppe eines Produktes ausgegeben werden.
  • Mit dem Platzhalter [[SHOP_PRODUCT_IMAGE_NAME_<N>]] (<N> ist mit der Nummer des Bildes (1-3) zu ersetzen) kann der Dateiname (ohne Pfad) eines Produktbildes ausgegeben werden.

E-Mail-Marketing

  • Mit den neuen Konfigurationsoptionen im Bereich E-Mail-Marketing > Einstellungen > Allgemein > E-Mail-Kampagnen > Verteilerlisten kann definiert werden, ob der Versand von E-Mail-Kampagnen an Benutzergruppen und CRM Kundengruppen möglich sein soll. Standardmässig ist der die Versandmöglichkeit deaktiviert.

Formulare 

  • Die Anzeige der angehängten Dateien ist mit dem Platzhalter [[CONTACT_UPLOADER_FOLDER_WIDGET]] nun auch in der PDF- und Druck-Ansicht möglich.

Grundeinstellungen

  • Bei einsprachigen Websites kann die Verwendung von virtuellen Sprachverzeichnissen (z.B /de) deaktiviert werden. Dazu muss die Option Virtuelle Sprachverzeichnisse verwenden unter Administration > Grundeinstellungen > System > Website deaktiviert werden.
  • Bei den Grundeinstellungen kann die maximal erlaubte Datei-Upload-Grösse definiert werden. Bisher betrug diese fix 500 MB.

Medienverzeichnis

  • Bei der Anzeige von Einträgen können nun alle Vorschaubilder (von Formularfelder des Typs Bilddatei) angezeigt werden. Dazu stehen folgende neue Platzhalter zur Verfügung:
    <!-- URL -->
    [[
    MEDIADIR_INPUTFIELD_VALUE_SRC_THUMBNAIL_FORMAT_THUMBNAIL]]
    [[
    MEDIADIR_INPUTFIELD_VALUE_SRC_THUMBNAIL_FORMAT_MEDIUM]]
    [[
    MEDIADIR_INPUTFIELD_VALUE_SRC_THUMBNAIL_FORMAT_LARGE]]
    <!-- HTML-img-Tag -->
    [[
    MEDIADIR_INPUTFIELD_VALUE_THUMBNAIL_FORMAT_THUMBNAIL]]
    [[
    MEDIADIR_INPUTFIELD_VALUE_THUMBNAIL_FORMAT_MEDIUM]]
    [[
    MEDIADIR_INPUTFIELD_VALUE_THUMBNAIL_FORMAT_LARGE]]
  • Bei der Anzeige eines Eintrags kann die Beschreibung zugewiesener Kategorien und Ebenen ausgegeben werden. Dazu stehen die neuen Platzhalter [[MEDIADIR_ENTRY_CATEGORY_DESCRIPTION]] und [[MEDIADIR_ENTRY_LEVEL_DESCRIPTION]] zur Verfügung (Doku).
  • Die standard Sortierung der Einträge kann im Template Block <!-- BEGIN/END mediadirEntryList --> und im Widget <!-- BEGIN/END mediadirList --> mit den funktionalen Platzhaltern [[MEDIADIR_CONFIG_SORT_POPULAR]] und [[MEDIADIR_CONFIG_SORT_ALPHABETICAL]] übersteuert werden.
  • Mit der Option Unterkategorien anzeigen kann pro Kategorie definiert werden, ob deren Unterkategorien angezeigt werden sollen.
  • Bei Verwendung des funktionalen Platzhalters [[MEDIADIR_CONFIG_FILTER_AUTO]] im Widget <!-- BEGIN/END mediadirList -->, werden die dynamisch gesetzten Filter-Argumente (via URL-Modifikatoren) der ausgewählten Kategorie oder Ebene für die Auflistung der Einträge einbezogen.
  • Mit dem Template Block <!-- BEGIN/END mediadirAlphabeticalList --> können zusammengehörende Einträge gruppiert werden (Doku).
  • Die alphabetische Auflistung der Einträge kann bei Bedarf nach Formular-Typ, Kategorie und Ebene gefiltert werden. Dazu kann der folgende funktionale Platzhalter eingesetzt werden (Doku): [[MEDIADIR_CONFIG_FILTER_(FORM|CATEGORY|LEVEL)_<ID>]]
  • Suche nach Postleitzahl möglich. Dazu muss einem Formularfeld der Kontext PLZ zugewiesen werden.

News Artikel

  • Rubriken können auf unsichtbar gestellt werden, damit diese auf der Website (Frontend) nicht mehr angezeigt werden. Artikel von unsichtbaren Rubriken werden dabei aber trotzdem aufgeführt. Die unsichtbaren Rubriken werden bei der Auflistung einfach nicht mehr angezeigt. Ausnahme davon ist, wenn eine unsichtbare Rubrik direkt (via URL-Argument) aufgerufen wird, so wird diese bei der Auflistung trotzdem aufgeführt.
  • Die Ausgabe der Eigenschaften Externe Quellen, Link #1 und Link #2 kann neu individuell gestaltet werden (Dank entsprechend neuen Template Blöcken. Siehe Doku).
  • Mit dem funktionalen Platzhalter [[NEWS_CATEGORY_<id>]] kann die Auflistung der Rubriken (Widget <!-- BEGIN/END news_category_widget -->) auf eine Rubrik eingeschränkt werden, um nur deren Unterrubriken anzeigen zu lassen.

Stellenangebote

  • Stellenangebote können neu mit Kennzeichnungen (Aktivierung durch neue Konfigurationsoption Kennzeichnungen für Angebote verwenden) gekennzeichnet werden. Bei der Auflistung auf der Website können die entsprechend zugewiesenen Kennzeichnungen dann bei den Stellenangebote ausgewiesen werden (z.B. als Icon oder CSS-Klasse). (Doku)

Veranstaltungskalender

  • Einladungen können nun an zusätzliche Gäste gesendet werden.
  • Das Layout des Anmeldeformulars zu Veranstaltungen kann über das Webdesign Template individualisiert werden.
  • Mit dem Platzhalter [[CALENDAR_EVENT_DETAIL_LINK]] kann vom Anmeldeformular zurück zur Detailansicht der Veranstaltung navigiert werden.
  • Mit dem funktionalen Platzhalter [[CALENDAR_LIST_ARCHIVE]] kann im Headlines-Widget (events.html) bewirkt werden, dass anstelle der zukünftigen Veranstaltungen, die Vergangenen aufgeführt werden.
  • Zusätzliche (manuell erfasste) Wiederholungen einer Veranstaltung können nun eine separate Startzeit haben. Generell wird in der Adminkonsole (inkl. Export) bei ganztägigen Veranstaltungen keine Uhrzeit mehr angezeigt.

Verbesserungen

Adminkonsole

  • Bei der User-Live-Suche werden die gefundenen Benutzer wieder korrekt aufgeführt.
  • Bugfix: Der Titel eines Benutzers wird nicht konsequent korrekt dargestellt.

Adressverwaltung

  • Bugfix: Die Darstellung des Pagings ist defekt.

Allgemein

  • Die Italienischen Oberflächentexte wurden verbessert.

Anwendungsverwaltung

  • Nach der Installation einer Anwendung (unter Administration > Anwendungen) wird die Anwendung direkt in der Hauptnavigation der Adminkonsole angezeigt.
  • Der Bereich Administration > Anwendungen führt nur noch Anwendungen auf, welche installiert werden können.
  • Die Beschreibungen der Anwendungen wurden verbessert.

Benutzer und Rechte

  • Der korrekt verwendete Algorithmus (Blowfish) zum Hashing der Kennwörter wird in der Eingabemaske für Benutzerkonten angezeigt.
  • Beim Einfügen von Passwörtern via Copy&Paste mit der Maus wird der Typ der Passwort-Felder beim Hinzufügen und Bearbeiten von Benutzern nun korrekt gesetzt.
  • Die Prüfung der Kennwortkomplexität funktioniert wieder.
  • Die Bearbeitungsmaske des Benutzerprofils funktioniert im Frontend korrekt, auch wenn auf der gleichen Seite Widget-Funktionen genutzt werden, wie z.B. das Widget <!-- BEGIN/END access_logged_in -->
  • Sonderzeichen im eigenen Profil werden in der Adminkonsole korrekt angezeigt.
  • Für Profil-Eigenschaften vom Typ Bild stehen folgende neue Platzhalter zur Anzeige des Vorschaubildes zur Verfügung:
    • [[ACCESS_PROFILE_ATTRIBUTE_<ATTRIBUTE-ID>_THUMBNAIL_THUMBNAIL_SRC]]
    • [[ACCESS_PROFILE_ATTRIBUTE_<ATTRIBUTE-ID>_THUMBNAIL_MEDIUM_SRC]]
    • [[ACCESS_PROFILE_ATTRIBUTE_<ATTRIBUTE-ID>_THUMBNAIL_LARGE_SRC]]
  • Bugfix: Nach der Änderung der Berechtigungen einer Benutzergruppe, werden diese nicht sofort wirksam.
  • Bugfix: Nach der Änderung einer Gruppenmitgliedschaft, werden die zusätzlichen (oder entzogenen) Berechtigungen eines Benutzers nicht sofort wirksam.
  • Bugfix: Der Export von Benutzern funktioniert auch mit einer hohen Anzahl von Benutzern.
  • Die Sicherheit des Reset-Kennwort-Link wurde verbessert.

Bildergalerie

  • Bugfix: Sonderzeichen bei den Meta-Informationen (Titel/Beschreibung) der angezeigten Kategorie werden korrekt ausgegeben.
  • Bugfix: Bei der Anzeige der Kategorien wird der Breadcrumb doppelt angezeigt, resp. das erzeugte Layout enthälte falsche HTML-Elemente.
  • Bugfix: Kategorien und Bilder können nicht in neu hinzugefügte Sprachversionen übersetzt werden.

Caching

  • Bugfix: Die Cache Statistiken zum Zend OPCache werden als kB ausgegeben, obwohl dies MB wären.
  • Die Caching-Systeme xCache, memcache und APC wurden als "experimental" markiert.
  • Ungültige Anfragen (404 HTTP Status Code) werden gecached und damit im Schnitt schneller beantwortet.
  • Die Anwendungsseiten der Medien Archive und Datei-Sharing werden gecached.
    → Hinweis: Werden Dateien direkt via FTP in ein Medien Archiv hochgeladen, so muss der Cache manuell geleert werden.
  • Bugfix: Interne URL-Weiterleitungen werden nicht gecached.
  • Bugfix: Der Cache von URL-Weiterleitungen wird teils nicht geladen.
  • Bugfix: Teils wird das Webdesign Template des Mobile-Ausgabekanals beim Desktop-Ausgabekanal angezeigt oder umgekehrt.
  • Bugfix: Antworten aus dem Cache haben immer den Content-Type text/html.

Content Manager

  • Bei Platzierung von Block-Widgets in einer Inhaltsseite vom Typ "Anwendung", die den Platzhalter [[APPLICATION_DATA]] nicht enthält, führt nun nicht mehr zu einer weissen Seite mit der Meldung Variable placeholder 'APPLICATION_DATA' not found
  • Der Kopiervorgang von Entwürfen funktioniert korrekt.
  • Beim Verschieben einer Inhaltsseite in eine andere Hi­e­r­ar­chie­ebe­ne, wird sichergestellt, dass der verwendete URI-Slug der Inhaltsseite nicht mit einer anderen Inhaltsseite kollidiert (aufgrund gleichem URI-Slug).
  • Der Platzhalter [[GOOGLE_ANALYTICS]] wird in der Vorschaufunktion (Content Manager und Template Editor) nicht mehr verarbeitet, damit Vorschauseiten nicht von der Statistik erfasst werden.
    Tipp: Für die Einbindung eines Kontaktformulares via iFrame empfiehlt sich von der Anwendungsseite des Kontaktformulars eine Inhaltsseite vom Typ “Verknüpfung” anzulegen und dieser dann das gewünschte Webdesign Template zuzuweisen, über welches es im iFrame angezeigt werden soll. Diese Variante ist der Einbindung via Vorschaufunktion (?preview=<id>) vorzuziehen.
  • Bugfix: Beim Aktualisieren einer Inhaltsseite, wird nicht geprüft, ob die gesetzten Werte gültig sind (Prüfung erfolgt nur beim Anlegen einer Inhaltsseite).
  • Bugfix: Seiten vom Typ Andere Sprachversion verwenden werden im Content Manager immer als Sichtbar angezeigt, auch wenn diese eigentlich als unsichtbar eingestellt sind.
  • Bugfix: Wird eine endlose Weiterleitung erfasst (z.B. Weiterleitung auf eigene Inhaltsseite), so führt diese zu einem Server-Fehler.
    → Neu antwortet das System mit dem HTTP Status Code 502 Bad Gateway
  • Bugfix: Die Zuweisung der Anwendung Home funktioniert nicht erwartungsgemäss, wenn bereits eine Inhaltsseite als Fallback zur Anwendung Home definiert ist oder einer normalen Inhaltsseite in einer früheren Version die Anwendung Home zugewiesen war.

CRM

  • Datei-Uploads werde nicht mehrfach hochgeladen.
  • Bei der Übersicht der Kontakt werden die individuell hinterlegten Profilbildern angezeigt.
  • Der Importvorgang wurde optimiert, was die Ausführung paralleler Arbeiten während des Vorgangs ermöglicht.
  • Wird die E-Mail Adresse, die Adresse oder die Telefonnummer eines mit einer CRM-Person verbundenen Benutzerkonto geändert, so werden die geänderten Daten auf die mit der CRM-Person verbundenen CRM-Unternehmung übernommen, sofern die alten Daten (der CRM-Unternehmung, CRM-Person und Benutzerkonto) identisch waren.
  • Bugfix: Wird die E-Mail-Adresse eines mit einer CRM-Person verknüpften Benutzerkontos geändert, so wird die geänderte E-Mail-Adresse nicht neu als primäre E-Mail-Adresse der CRM-Person übernommen.
  • Bugfix: In der Bearbeitungsmaske einer Kontaktperson wird im Reiter Konto teils eine alte E-Mail-Adresse angezeigt.
  • Bugfix: Der Export bei der Übersicht enthält immer nur entweder die Unternehmen oder Personen, nie aber beide.
  • Der CSV-Export enthält nun die IDs der Personen und Unternehmen.

Dateiverwaltung

  • Bugfix: Vorschaubilder (Thumbnails) von Bildern, bei welchen die Dateiendung in Grossbuchstaben geschrieben ist (z.B. Bild.PNG), werden nicht mehr bei jedem Aufruf neu generiert.

Datei-Upload

  • Bildern, welche nicht den sRGB Farbraum verwenden oder nicht das Farbraum-Profil IEC 61966-2-1 gemäss W3C Spezifikation verwenden, werden beim Datei-Upload entsprechend transformiert, damit deren farbliche Darstellung auf allen Endgeräten identisch/korrekt erfolgt.
  • Bugfix: Die Vorschaubilder haben eine andere Farbdarstellung als das original Bild.
  • Bugfix: Umlaute werden bei Datei-Uploads aus den Dateinamen entfernt.
    → Neu werden Umlaute beim Dateiupload transkribiert (z.B. äae).

Datei-Sharing

  • Beim Speichervorgang der Einstellungen in der Adminkonsole werden Sonderzeichen nicht mehr fälschlicherweise mit Backslashes ergänzt.
  • Werden mehrere Bilder auf einmal im Frontend zum Teilen hochgeladen, so werden die angezeigten Vorschaubilder der zu teilenden Bilder korrekt mit der Share-URL verlinkt.
  • Bei Verwendung eines Bereichs (URL-Modifikator cmd) wird die Standard-Anwendungsvorlage (Default.html) verwendet, sofern keine für den Bereich spezifische Anwendungsvorlage (<Cmd>.html) vorhanden ist.
  • Im Frontend funktioniert der Link "mehr" bei der Standardanwendungsvorlage und öffnet zusätzliche Konfigurationsoptionen.
  • Bugfix: Beim Herunterladen einer geteilten Datei wird der Content-Type nicht korrekt gesetzt.
  • Bugfix: Beim Herunterladen einer geteilten Datei enthält der Dateiname den Ablagepfad der Datei.
  • Bugfix: Der Download einer geteilten Datei funktioniert nicht, wenn der Benutzer am System angemeldet ist.

Digital Asset Management

  • Der Download-Link bei aufgeführten Downloads eines Download-Widgets funktioniert korrekt.
  • Die Erstellung von neuen Kategorien im Frontend funktioniert.
  • In der standard Anwendungsvorlage des Digital Asset Management wurde der nicht mehr benötigter Template Block <!-- BEGIN/END downloads_advanced_file_upload --> entfernt.
  • Bugfix: Sonderzeichen werden bei der Suche in der Adminkonsole nicht HTML-escaped.
  • Bugfix: Die Erfassungsmaske von Downloads funktioniert nun auch korrekt, wenn die Verwendung der Eigenschaft Meta-Keywords von Downloads nicht genutzt wird.
  • Bugfix: Änderungen werden nicht sofort in die globale Volltextsuche übernommen.
  • In der Adminkonsole wird nun ein  Breadcrumb zur ausgewählten Kategorie angezeigt.
    → Herzlichen Dank an den Partner Comvation AG für den Feature-Beitrag
  • Der Template-Block (und dazugehörige Platzhalter) zur Auflistung der Downloads einer Kategorie lautet fälschlicherweise <!-- BEGIN/END downloads_subcategory_file_list -->, resp. [[DOWNLOADS_SUBCATEGORY_FILE_...]]. Dies wurde korrigiert auf: <!-- BEGIN/END downloads_overview_category_file_list -->, resp. [[DOWNLOADS_OVERVIEW_CATEGORY_FILE_...]].

Domains

  • Bugfix: Wenn der Hostname des Servers manuell als Domain erfasst wurde (unter Administration > Domains) führt dies zu einem Systemfehler (z.B. bei der Online-Schaltung von einer Staging-Domain auf eine Production-Domain).

E-Card

  • Bugfix: Die Auflistung der Motivauswahl auf der Website hat ungleichmässige Abstände.

E-Commerce Shop

  • Beim Versenden des "Verarbeitung abgeschlossen"-Mails wird nun der Bestand nicht mehr unnötig aktualisiert.
  • Der Shop zeigt bei der Eingabe der Adresse(n) nun an, welche Felder falsch ausgefüllt wurden.
  • Umstellung auf TLS 1.2 bei der Schnittstelle mit dem Payment Service Provider Saferpay.
  • Bugfix: Zahlungsanbieter wie z.B. TWINT, die nicht PSD-2-pflichtig sind, funktionieren nicht mit der Saferpay-Schnittstelle.
  • Umstellung auf die Gateway-Schnittstelle beim Payment Service Provider Payrexx.
  • Die Konfigurationsmaske zum Zahlungsanbieter Payrexx wurde optimiert.
  • Bugfix: Wird bei einem Einkauf via Zahlungsanbieter Payrexx zuerst mit einem ungültigen Zahlungsmittel (z.B. abgelaufener Kreditkarte) versucht zu bezahlen und danach aber noch mit einem gültigen Zahlungsmittel die Zahlung abgeschlossen, so wird die Bestellung weder erfolgreich im Cloudrexx Shop abgewickelt, noch wird eine E-Mail-Bestätigung ausgelöst.
  • In der Detailansicht eines Kunden wurde der überflüssige Bereich Zahlungsinformationen entfernt.
  • Englische und Französische Oberflächentexte verbessert.
  • Bei der Suche werden Produkte, welche das Suchwort im Namen enthalten, an erster Stelle aufgeführt.
  • Mit dem Template-Block <!-- BEGIN/END shopProductManufacturer --> kann bei der Produktanzeige die Darstellung der Hersteller-Informationen gesteuert werden. Ist bei einem Produkt ein Hersteller zugewiesen, so wird der Block angezeigt. Ansonsten wird der Block ausgeblendet.
  • Mit dem Template-Block <!-- BEGIN/END shopProductExternalLink --> kann bei der Produktanzeige die Anzeige der Produktspezifischen-Hersteller-Informationen gesteuert werden. Ist bei einem Produkt ein Produktspezifischer-Hersteller-Link hinterlegt, so wird der Block angezeigt. Ansonsten wird der Block ausgeblendet.
  • Die Zuweisung eines Herstellers ist bei Produkten nun optional.
  • Bugfix: Das Kundenkonto des angemeldeten Administrators kann nicht deaktiviert werden.
  • Bugfix: Wenn eine Rubrik kein Bild zugewiesen hat, dann zeigen die Platzhalter [[SHOP_CATEGORY_IMAGE]],[[SHOP_CATEGORY_THUMBNAIL_FORMAT_THUMBNAIL]], [[SHOP_CATEGORY_THUMBNAIL_FORMAT_MEDIUM]] und [[SHOP_CATEGORY_THUMBNAIL_FORMAT_LARGE]] nicht das Platzhalter-Vorschaubild (no_picture.gif) an.
  • Werden Bilder von Rubriken direkt in der Dateiverwaltung (oder via FTP) gelöscht, so werden die Bild-Platzhalter mit einer ungültigen Quelle ausgegeben.
  • Bugfix: Wenn einem Produkt kein Bild zugewiesen ist, dann zeigen die Platzhalter [[SHOP_PRODUCT_THUMBNAIL_FORMAT_THUMBNAIL_1]], [[SHOP_PRODUCT_THUMBNAIL_FORMAT_MEDIUM_1]] und [[SHOP_PRODUCT_THUMBNAIL_FORMAT_LARGE_1]] das Platzhalter-Vorschaubild (no_picture.gif) nicht an.
  • Bugfix: Der Template-Block <!-- BEGIN/END orderQuantity --> wird nicht angezeigt, wenn der Platzhalter [[SHOP_PRODUCT_MINIMUM_ORDER_QUANTITY]] nicht genutzt wird.
  • Wenn zu einem Produkt keine Beschreibung erfasst ist, gibt der Platzhalter [[SHOP_PRODUCT_DETAILDESCRIPTION]] nur noch die Kurzbeschreibung aus, sofern der Platzhalter zur Anzeige der Kurzbeschreibung ([[SHOP_PRODUCT_DESCRIPTION]]) nicht auch in der Anwendungsvorlage vorhanden ist.
  • Bugfix: Umlaute werden in PDF-Preislisten falsch dargestellt.
  • Der Template-Block <!-- BEGIN/END products --> wird ausgeblendet, sofern eine Rubrik oder die aktuelle Suchanfrage keine Ergebnisse liefert.
  • Bugfix: Enthält die CSV-Datei beim importieren von Produkten keine Spalte für die Produktbilder, so wird fälschlicherweise eine Fehlermeldung ausgegeben, dass keine Produktbilder importiert werden konnten.
  • Bugfix: Der Block [[CUSTOMER_LOGIN]] wird in der E-Mail-Vorlage Bestellungsbestätigung bei bereits registrierten Kunden angezeigt. Dieser sollte nur bei Neukunden angezeigt werden.
  • Bugfix: Bei einer Bestellung als bestehender Kunde wird das Land der Rechnungsadresse (welche aus dem Kundenprofil geladen wird) mit dem Lieferland überschrieben.
  • Bugfix: Die Option Die Lieferadresse ist identisch mit der Rechnungsadresse. kann nicht abgewählt werden, nachdem diese einmal aktiviert wurde.
  • Bugfix: Beim Speichervorgang der Zonen wird die Konfiguration doppelt an den Server gesendet.
  • Bugfix: Nach dem Speichervorgang der Zonen wird wieder die ursprüngliche Konfiguration angezeigt. Erst nach einem erneuten Laden des Bereichs, wird die neue Konfiguration angezeigt.
  • Bugfix: Die Suche nach Produkten mit Umlauten (oder Sonderzeichen) in der Beschreibung (inkl. Kurzbeschreibung) funktioniert nicht.
  • Bugfix: Wird bei einem Produkt kein spezifischer Reseller-Preis definiert, so funktioniert das konfigurierte MwSt.-Verhalten nicht korrekt. Wenn die Endkunden-Preise inkl. MwSt. konfiguriert sind, die Reseller-Preise aber exkl. MwSt., so erfolgt die basis Preiskalkulation der Reseller-Preise fälschlicherweise auch inkl. MwSt. Als Folge werden falsche Rabatte und doppelte MwSt. berechnet.
  • Bei der Initialisierung des Zahlungsvorgangs (mit externem Payment Service Provider) kann das dargestellte Logo über die HTML-`id` shopPspLogo angesprochen werden.
  • Für die Auswahl des Geburtsdatum eines Kunden steht in der Adminkonsole nun eine Kalenderauswahl zur Verfügung.
  • Bugfix: In der Adminkonsole wird bei Kunden, welche kein Geburtsdatum gesetzt haben, das Geburtsdatum 01.01.1970 angezeigt.
  • Bugfix: Der Platzhalter [CUSTOMER_BIRTHDAY] wird in den E-Mail-Benachrichtigung fälschlicherweise mit dem Datum 01.01.1970 ersetzt, falls beim Kunde kein Geburtsdatum gesetzt ist.
  • Bugfix: Beim Bestellvorgang kann das ausgewählte/hinterlegte Geburtsdatum nicht mehr zurückgesetzt werden.
  • Mit dem Template-Block <!-- BEGIN/END shop_account_birthday --> kann die Eingabemaske zur Erfassung des Geburtstags beim Bestellvorgang individuell gestaltet werden.
  • Bugfix: Beim Bestellvorgang wird nicht überprüft, ob zwingend ein Geburtsdatum gesetzt werden muss. Sofern nun bei den Profil-Konfiguration (unter Administration > Benutzer und Rechte > Einstellungen > Profil Eigenschaften) die Eigenschaft Geburtstag als Pflichtfeld definiert ist und in der Anwendungsvorlage Account.html entweder der Platzhalter [[SHOP_ACCOUNT_BIRTHDAY]] oder der Template-Block <!-- BEGIN/END shop_account_birthday --> vorhanden ist, dann kann der Bestellvorgang nur abgeschlossen werden, sofern der Kunde ein Geburtsdatum hinterlegt.
  • Bugfix: Der Platzhalter [[SHOP_BIRTHDAY]] wird auf der Bestätigungsseite des Bestellvorgangs (cmd=confirm) fälschlicherweise mit dem Datum 01.01.1970 ersetzt, falls beim Kunde kein Geburtsdatum gesetzt ist.
  • Bugfix: Beim Bestellvorgang ist das Eingabefeld fürs Geburtsdatum standardmässig auf das aktuelle Datum gesetzt. Neu ist kein Datum gesetzt. Bei bereits registrierten Kunden wird das Geburtsdatum aus dem Profil geladen (sofern dies gesetzt ist).
  • Bugfix: Wird das Lieferland geändert, so werden die Versandkosten nicht sofort, sondern erst im letzten Schritt der Bestellung aktualisiert.
  • Bugfix: Wenn der SQL-Mode NO_AUTO_VALUE_ON_ZERO gesetzt ist, funktioniert das Hinzufügen von Produktgruppen, Kundengruppen und Mengenrabattgruppen nicht.
  • Bei der Löschung von Rubriken kann neu ausgewählt werden, ob die zugewiesenen Produkte auch gelöscht werden sollen.
  • Deaktivierte Produkte werden nicht mehr bei der verfügbaren Anzahl Produkte mit einbezogen.
  • Bugfix: Die Verlinkung der Status-Icon bei der Auflistung der Produkte (in der Adminkonsole) verweist nicht auf den Reiter Produktestatus der Bearbeitungsmaske.
  • Die Ansicht der Bestellinformationen wurde optimiert.
  • Die Erfassungsmaske von Produkten wurde um ein Tooltip zu den Produkttypen ergänzt.
  • Bugfix: Die zusätzlichen Kosten von Produktmerkmalen vom Typ Textfeld, Dateifeld, Mehrzeiliges Textfeld, E-Mail Adresse, URL, Datum, Ganzzahl und Fliesskommazahl werden der Bestellsumme nicht hinzugefügt.
  • Bugfix: Bei Wertgutscheinen, welche nach der Einlösung noch über Guthaben verfügen, wird eine ungültige Mehrwertsteuer berechnet. Konkret wird die Mehrwertsteuer des ganzen Wertgutscheins abgerechnet, obwohl nur ein Teil des Wertgutscheins eingelöst wurde.
  • Die Benutzeroberfläche zum Resellerpreise wurde mit Hilfetexten ergänzt.
  • Bugfix: Trotz deaktivierter Option Registrierung von Neukunden ist es möglich ein Benutzerkonto anzulegen.
  • Die Kennwort-Rücksetzungs-Funktion (Anwendungsbereich sendpass der Anwendung Shop) wurde eingestellt. Anstelle dessen soll die Kennwort-Rücksetzungs-Funktion des Logins (Anwendungsbereich lostpw der Anwendung Login) verwendet werden.
  • Bugfix: In der Bearbeitungsmakse einer Bestellung wird fälschlicherweise die Firma der Lieferadresse als Rechnungsadresse geladen.
  • Nicht mehr unterstützte Zahlungsanbieter sind als Experimental gekennzeichnet.
  • Bugfix: Beim Bearbeiten eines Produktes aus dem Warenkorb sind die gesetzten Produktmerkmale zurückgesetzt.
  • Bugfix: Bei einigen Optionen der Stammdaten werden keine Bezeichnungen bei englischer Oberflächesprache angezeigt.

E-Mail-Marketing

  • Die Anmeldung an den Newsletter funktioniert nun auch, wenn mit derselben E-Mail-Adresse bereits einmal erfolglos (= nicht innerhalb der Vorgegebenen Zeit bestätigt) eine Registration versucht wurde.
  • Wenn die DSGVO-Bestätigungsmail bei der Anmeldung an den Newsletter nicht versendet werden kann, so erscheint nun nicht mehr der Wartungsmodus.
  • Bugfix: Die Anzahl Teilnehmer bei der Auflistung der Verteilerlisten ist falsch. Die Anzahl beinhaltet fälschlicherweise auch nicht verifizierte Teilnehmer, bei welchen der Double-Opt-In-Prozess noch am laufen ist.
  • Die Konfigurationsoption Anzahl Einträge in der Übersicht hat keine Funktion mehr und wurde daher entfernt.
  • Bugfix: Der Profil- und Abmeldelink funktionieren bei E-Mail-Adresse mit Sonderzeichen (z.B. "+") nicht.
  • Bugfix: Die E-Mail-Benachrichtigungen an den Administrator wurden teils doppelt versendet.
  • Die Konfigurationsoptionen im Bereich E-Mail-Marketing > Einstellungen wurden zur einfacheren Auffindbarkeit neu organisiert.
  • Bugfix: Teilnehmer werden direkt nach dem Versand einer E-Mail-Kampagne abgemeldet. Ursache sind Mail-Programme, welche die in E-Mails enthaltenen Links vorgängig aufrufen zur Vorbeugung von Scam-Traps. Die damit aufgerufenen Abmeldung-Links melden die Teilnehmer als Folge automatisch ab. Neu werden die Teilnehmer nicht mehr direkt abgemeldet, sondern erst nach einer Bestätigung (automatisch oder manuell je nach Konfiguration der neuen Option Abmeldung).

E-Mail-Vorlagen

  • Zum Versand von Test-Mails wurde ein Tooltip hinzugefügt. Ausserdem wird das Feld "from" im Testversand nun gesetzt, sofern es keine Platzhalter enthält.
  • Bugfix: Der Versand von Test-Mails wird immer 2x direkt hintereinander ausgeführt.

Formulare

  • Die Antwortzeit der Adminkonsole und des CSV-Exports ist wesentlich schneller.
  • Bugfix: Bei vielen gespeicherten Kontaktanfragen ist die Adminkonsole langsam.
  • Bugfix: Sonderzeichen werden bei der Ansicht einer gespeicherten Kontaktanfrage in der Adminkonsole nicht korrekt dargestellt.
  • Bugfix: Die Bezeichnungen der Formular-Schaltflächen sind nicht in Russisch oder schlecht übersetzt.
  • Bugfix: Bei der Ansicht einer gespeicherten Kontaktanfrage werden übermittelte Werte zu gelöschten Formularfeldern ohne Bezeichnung aufgeführt.
  • Bugfix: Beim Aufruf der Quellcode-Generierung in der Adminkonsole erscheint der Wartungsmodus.
  • Bugfix: Die Beschreibungstexte der Konfigurationsoption, um Datei-Uploads bei der E-Mail-Benachrichtigung als Anhänge mit zu senden sind nicht in verständlicher Sprache geschrieben.
  • Bugfix: Wenn die Anwendung individualisiert wurde (Verzeichnis /customizing/core_modules/Contact/ ist vorhanden), dann werden die Formulare auf der Website ohne Inhalt angezeigt.
  • Pro Empfängerlisten-Eintrag können neu mehrere E-Mail-Adressen als Empfänger hinterlegt werden.
  • Die Option E-Mail-Adresse des Empfängers wird nun entsprechend gekennzeichnet, wenn diese durch den Einsatz einer Empfängerliste überflüssig ist.
  • Die Oberflächentexte der Erfassungsmaske von Formularen wurden optimiert.
  • Bugfix: Das Tooltip zu den Formular-Feld-Typen Auswahlfelder und Auswahlmenü werden nicht angezeigt.
  • Bugfix: Die Anzeige der Option E-Mail Betreff ist in der Erfassungsmaske von Formularen leicht versetzt.
  • Bugfix: Die mehrsprachige Erfassung der Empfängerliste funktioniert nicht.
  • Mit dem Platzhalter [[CONTACT_FORM_FIELD_VALUE_RAW]] kann der Text eines Formularfeld des Typs Text in seiner Rohform ausgegeben werden. Dies erlaubt die Hinterlegung von HTML-Code innerhalb des Formulars.
  • Bugfix: Tritt beim Absenden einer Anfrage ein Fehler auf, so fehlen bei der erneuten Anzeige des Formulars die bereits hochgeladenen Dateien. Letztere müssen dann erneut hochgeladen werden.
  • Bugfix: Die Vorauswahl von Kontrollkästchen Gruppen und Auswahlfeldern funktioniert nicht (Doku).

Frontend

  • Die Performance bei einem Webdesign Template mit vielen Dateien wurde optimiert.

Frontend Editing

  • Formatierungen bei Inhaltscontainer werden korrekt gespeichert und können nach der Speicherung wieder erfolgreich bearbeitet werden.
  • Bei Inhaltscontainern werden Platzhalter von Node-URLs oder anderen Inhaltscontainer nicht fälschlicherweise durch deren Inhalt ersetzt.
  • Bei mehrsprachigen Websites wird immer die korrekte Sprachversion eines Inhaltscontainer geladen.
  • Nach der Bearbeitung eines Inhaltscontainers funktioniert die Bearbeitung weiterhin, ohne dass die Seite neu geladen werden muss.

Gästebuch

  • Die E-Mail-Benachrichtigungen zu neuen Einträgen im Gästebuch werden neu von der hinterlegten E-Mail Adresse des Administrators gesendet.
  • Bugfix: Der Platzhalter [[GUESTBOOK_GENDER]] zeigt nichts an.

Grundeinstellungen

  • Die Umstellung der Hauptdomain funktioniert nicht, wenn für die Website ein anderes Protokol (HTTP/HTTPS) erzwungen wird, als für die Adminkonsole.
  • Der Warnhinweis, dass keine gültige FTP-Konfiguration vorhanden ist, nur noch angezeigt, wenn PHP kein Schreibzugriff hat.

Inhaltscontainer

  • Bugfix: Platzhalter auf nicht existierende Inhaltscontainer werden auf der Website nicht ausgeblendet.
  • Bugfix: Zeitgesteuerte Inhaltscontainer werden nicht zum gewählten Zeitpunkt angezeigt oder ausgeblendet.
  • Bugfix: Das Aktivieren und Deaktivieren von Inhaltscontainern hat keine Auswirkung auf deren Anzeige in den zugewiesenen Zufallsgeneratoren.

Layout Manager / Template Editor

  • Bugfix: Die Bearbeitung von Anwendungsvorlagen funktioniert von Anwendungen (Component) nicht, welche sich im /customizing Verzeichnis befinden.
  • Bugfix: Bei JavaScript-Dateien wird das Sprachkonstrukt () nach [[]] konvertiert.
  • Bugfix: Teils werden neu hinzugefügte Bilder bei Optionen vom Typ ImageSeriesOption nicht am Ende der Liste angefügt, sondern irgendwo dazwischen.
  • Bugfix: Teils können bei Optionen vom Typ ImageSeriesOption keine zusätzlichen Bilder mehr hinzugefügt werden.

Medien Archive

  • Das individuelle Ausgabeformat für Verzeichnisse wird beim Breadcrumb nun auch angewandt.

Medien Browser

  • Unterstützung für transparente Bilder wurde verbessert.
  • Die Sortierung nach Dateigrösse funktioniert korrekt.
  • Verzeichnisse werden vor Dateien aufgeführt.
  • Die Adminkonsolen der Anwendungen Adressverwaltung und Online-Desk verwenden nun auch den modernen Medien Browser zur Auswahl von Bildern, Dokumenten oder Verlinkungen.
  • Die Seitenstruktur wird in der gewünschten Sprachversion angezeigt.
  • Beim hochladen von Dateien werden gedrehte Bilder automatisch erkannt und entsprechend rotiert.
  • In der Dateiablage Designs werden nur Verzeichnisse von installierten Webdesign Templates aufgeführt.

Medienverzeichnis

  • XSS-Schutz bei der Suchfunktion.
  • Die automatische Verlinkung der Einträge (mit dem Platzhalter [[MEDIADIR_ENTRY_DETAIL_URL]]) beinhaltet die Information zur ausgewählten Kategorie/Ebene nun auch wenn die Verwendung der sprechenden URLs nicht aktiviert ist.
  • Die Filterung der Einträge auf eine Ebene ist nur möglich, wenn die Verwendung der Ebenen aktiviert wurde.
  • Bei der Auflistung von verwandten Einträgen aus der gleichen Kategorie/Ebene werden nur Einträge des gesetzten Formular-Typs angezeigt.
  • Beim Einsatz der GoogleMap-Funktion führt es im Frontend zu keinem JavaScript-Fehler mehr.
  • Beim Direktzugriff auf ein Formular (als Parameter im Bereich/CMD), werden keine deaktivierten Formulare mehr geladen. Falls mehrere Formulare mit gleichem Parameter (cmd) bestehen, führte dies bisher zu einer fehlerhaften Anzeige. Weiters führte dies zu falschen Suchergebnissen, sowie einer falschen Anzeige des Suchformulars.
  • Die Anzeige eines Eintrages, bei Verwendung von sprechenden URLs, funktioniert korrekt, auch wenn Formulare vorhanden sind, welche keinen Parameter (cmd) definiert haben.
  • Die alphabetische Auflistung erzeugt XHTML validen Quellcode. Zudem werden Einträge mit Umlaute bei deren transliteralen Buchstaben aufgeführt.
  • Die funktionalen Platzhalter [[MEDIADIR_CONFIG_FILTER_FORM_<ID>]], [[MEDIADIR_CONFIG_FILTER_CATEGORY_<ID>]] und [[MEDIADIR_CONFIG_FILTER_LEVEL_<ID>]] funktionieren nun auch bei der normalen Auflistung der Einträge auf einer Anwendungsseite des Medienverzeichnisses, sowie auf der Kartenansicht.
  • Mit dem Platzhalter [[MEDIADIR_INPUTFIELD_VALUE_PLAIN]] kann die Liste der ausgewählten Optionen (eines Kontrollkästchen) als komma-separierte Liste ausgegeben werden.
  • Der funktionale Platzhalter [[MEDIADIR_CONFIG_LIST_LATEST]] funktioniert nun auch bei der normalen Auflistung der Einträge auf einer Anwendungsseite des Medienverzeichnisses.
  • Bugfix: Bei der Auflistung der Ebenen/Kategorien innerhalb des Template Blocks <!-- BEGIN/END mediadirCategoriesLevelsList --> wird (bei Vorhandensein mehrerer Blöcke vom Typ <!-- BEGIN/END mediadirCategoriesLevels_row_N -->) nicht der Block <!-- BEGIN/END mediadirCategoriesLevels_row_1 --> als erstes ausgegeben, sondern der Block <!-- BEGIN/END mediadirCategoriesLevels_row_(N-1) -->
  • Bugfix: Sind zwei Formulare mit gleichem Parameter (cmd) erfasst, wobei eines davon deaktiviert ist, ist es möglich, dass bei der Suchfunktion auf der Website die Konfiguration des deaktivierten Formulars geladen wird und so zu unerwarteten Ergebnissen führt.
  • Bugfix: Die Bearbeitungsmaske eines Eintrages funktioniert nicht, wenn dessen Formular mehr als ein Feld vom Typ Google Map enthält.
    → Herzlichen Dank an den Partner Comvation AG für den Bugfix
  • Bei der Erfassungsmaske (in der Adminkonsole) von Einträgen werden die (bei der Formularkonfiguration hinterlegten) Infotexte nun als Tooltips angezeigt.
  • Bei der Frontend-Erfassung können die Infotexte über den neuen Template-Block <!-- BEGIN/END mediadirInputfieldTooltip --> und Platzhalter [[MEDIADIR_INPUTFIELD_FIELD_TOOLTIP]] integriert werden (Doku).

Mehrsprachigkeit / Lokalisierung

  • Bugfix: Die Sprachumschaltung auf Anwendungsseiten funktioniert nicht korrekt, wenn es mehrere Anwendungsseiten vom gleichen Bereich (CMD) gibt.

News Artikel

  • Zeitgesteuerte Artikel werden zum gewünschten Zeitpunkt veröffentlicht.
  • Bugfix: Das Paging in der Adminkonsole beachtet die getätigte Rubrik-Auswahl nicht.
  • Bugfix: Das Archiv von mehreren Rubriken kann mittels dem folgenden Schema als Bereich (CMD) eingerichtet werden: archive<id>-<id>
  • Bugfix: Beim Auswahlmenü der Rubrik bei der Auflistung der Artikel in der Adminkonsole erfolgt die Anzeige teils irreführend, da nicht der ganze Rubrikbaum angezeigt wird, sondern nur jene Rubriken, zu welchen Artikel bestehen.
  • Bugfix: Das Widget [[HEADLINES1_FILE]] funktioniert nicht.
  • Bugfix: Der Cache wird nicht von allen [[HEADLINES_FILE]] Widgets geleert.

PDF

  • Bei vom System erzeugten PDF-Dokumenten wird neu der Name des Administrators (Option Name des Administrators unter Administration > Grundeinstellungen > System > Kontaktinformationen) als Dokument-Author gesetzt.
    Herzlichen Dank der Cloudrexx Partner Agentur Comvation AG für den Beitrag via GitHub.
  • Inhaltscontainer können nun auch in PDFs verwendet werden.

Performance

  • Die Optimierung der Datenbank erfolgt nun asynchron über einen CronJob. Dadurch ist die Antwortzeit in der Adminkonsole schneller, da die Optimierung nicht mehr direkt vor der Bearbeitung der Anfrage durchgeführt wird.
    Wichtig: Der CronJob muss eingerichtet sein (siehe Anleitung).

Plattform-Kompatibilität

  • Bugfix: Das Verhalten des Systems ist unstabil wenn einer der folgenden SQL-Modes aktiv ist: STRICT_ALL_TABLES / TRADITIONAL / NO_ZERO_DATE / NO_ZERO_IN_DATE

Routing

  • Ungültige Anfragen werden direkt mit einem 404 HTTP Status Code beantwortet und nicht mehr auf die Anwendungsseite Error (Seite nicht gefunden) weitergeleitet.
  • Bugfix: Wenn die Anwendungsseite Error nicht vorhanden ist, so erzeugt das System eine Endlos Ladeschleife.

RSS Feed Verzeichnis

  • Bugfix: Die RSS-Feed Einträge werden falsch eingelesen. Es wird nur ein Buchstabe anstelle der Newsmeldung angezeigt.

Seiten Aliase

  • Bei der Erfassung eines Aliases führt die Auswahl einer Anwendungsseite, welche als Bereich/CMD eine Zahl gesetzt hat, nicht zu einem Fehler.

Sicherheit

  • Der Sicherheitsmechanismus HTTP Strict Transport Security wird aktiviert (für ein Gemeinjahr), wenn HTTPS sowohl fürs Front- wie auch Backend erzwungen wird.
  • Das Session-Cookie wird nur noch über HTTPS übertragen (Cookie Flag: secure), sofern HTTPS sowohl fürs Front- wie auch Backend erzwungen wird.
  • Das Session-Cookie kann via JavaScript nicht mehr ausgelesen werden (siehe HttpOnly).
  • Eine XSS-Lücke wurde geschlossen, welche für eine manipulierte HTTP-Anfrage ausgenutzt werden konnte.
  • Bugfix: Die Initialisierung neuer Sessions mit einer ungültigen Session-ID wird nicht abgelehnt.
  • Über die Option Session-Bindung (unter Administration > Grundeinstellungen > System > Sicherheit) kann die Bindung der Session an den Browser zu Entwicklungszwecken deaktiviert werden.
    Zur Wahrung der Sicherheit im produktiven Betrieb einer Website wird dringend empfohlen diese Option nicht zu deaktivieren.

Stellenangebote

  • Bugfix: Die Übermittlung der Informationen des ausgewählten Stellenangebotes (über den Fussnoten Link-URL) ans Kontaktformular ist fehlerhaft.

Veranstaltungskalender

  • Tooltip für die Option Anzahl Termine auf der Einstiegsseite hinzugefügt.
  • Die Erfassungsmaske von Veranstaltungen unterstützt nun auch Zeiteingaben in der Form HH.MM, HHMM und HMM.
  • Der Versand von Einladungen zu einer Veranstaltung wird abgebrochen, falls bei der Aufbereitung der Empfänger ein Datenbank Problem identifiziert wird, um einem allfälligen Fehlversand vorzubeugen.
  • Die Benutzerfreundlichkeit der Eingabemaske zum Versand von Einladungen zu Veranstaltungen wurde verbessert. Unter anderem mit zusätzlichen Tooltips zur besseren Erläuterung der einzelnen Versandmöglichkeiten.
  • Die Anmeldung zu einer Veranstaltung (ohne Einladung via E-Mail) funktioniert korrekt.
  • Wird der Speichervorgang einer Anmeldung (zu einer Veranstaltung) in der Adminkonsole durch den Sicherheitshinweis (ungültiges CSRF-Token) abgefangen, so erfolgt die Speicherung anschliessend erfolgreich, wenn der Sicherheitshinweis bestätigt wird.
  • Die Einsendung (und deren Verarbeitung) einer Anmeldung (zu einer Veranstaltung) erfolgt wesentlich schneller.
  • Wird bei einem Formularfeld (eines Anmeldeformulars zu einer Veranstaltung) ein HTML-Link hinterlegt, so funktioniert die Administration des Formulars weiterhin.
  • Bugfix: Ist bei den Einstellungen ein Anderes als das Standard-Datumsformat gewählt, dann tritt beim Hinzufügen einer zusätzlichen Wiederholung (bei der Erfassung einer Veranstaltung) der Wartungsmodus auf.
  • Bugfix: Im Dialogfenster zur Auswahl von Ausnahmen bei der Konfiguration der Wiederholung einer Veranstaltung, wird auf der letzten Seite des Pagings keine falschen Daten mehr angezeigt.
  • Bugfix: Die Datumsauswahl beim Suchformular auf der Website, sowie bei der Erfassungsmaske einer Veranstaltung in der Adminkonsole ist erschwert, da die Autocomplete-Funktion des Browsers den Datumsauswahl-Dialog überdeckt.
  • Bugfix: Wenn viele Veranstaltungen vorhanden sind, dann ist der Verwaltungsbereich der Kategorien extrem langsam oder lädt gar nicht (weisse Seite). Problem ist, dass die Wiederholungen von Serienveranstaltungen bei der Anzahl zugehöriger Veranstaltungen zu den Kategorien mitgezählt werden.
  • Bugfix: Die Platzhalter [[CALENDAR_DATE_LIST]] und [[CALENDAR_DATE_DETAIL]] geben das Datum bei eintägigen Veranstaltungen (Start- und Enddatum am gleichen Tag) doppelt aus.
  • In der Adminkonsole wurden die Oberflächentexte im Reiter "Wiederholungen" der Erfassungsmaske von Veranstaltungen optimiert.
  • Bei den E-Mail-Benachrichtigungen Benachrichtigung An- / Abmeldung wird die E-Mail-Adresse des Teilnehmers als Antwort-Adresse (Reply-To) gesetzt.
  • Bugfix: Zusätzliche Wiederholungen können nur ab dem aktuellen Datum ausgewählt werden, unabhängig davon, ob der Beginn einer Veranstaltung in der Vergangenheit oder der Zukunft liegt.
  • Bugfix: Zusätzliche Wiederholungen, welche sich nach dem Enddatum der Wiederholung befinden, werden ignoriert. Mit der neuen Konfigurationsoption Einschränkung zusätzlicher Wiederholungen kann dieses Verhalten gesteuert werden.
  • Bugfix: Beim öffnen der Bearbeitungsmaske einer Veranstaltung wird die Meldung "Loading..." sehr lange angezeigt.
  • Bugfix: Bei der Box Ansicht wird die Konfigurationsoption Endlose Wiederholungen vorgängig auflisten nicht beachtet.
  • Bugfix: Bei der Erfassungsmaske von Veranstaltungen können zwar Daten nach dem 18. Januar 2038 erfasst werden, nach der Speicherung erscheinen diese aber als in einem ungültigen Format wie folgt: 30.11.-0001
    Ursache ist das Jahr-2038-Problem, weshalb beim Veranstaltungskalender aktuell keine Veranstaltungen mit Datum nach dem 18. Januar 2038 unterstützt werden.
  • Bugfix: Veranstaltungen, welche zwischen Mitternacht und 2 Uhr statt finden, werden bei der aktuellen Tagesansicht und der Quartalsübersicht, sowie der Kalender-Box, nicht angezeigt.
  • Bugfix: Bei der Tages- und Monatsansicht der Quartalsübersicht (Anwendungsseite mit Berich boxes) werden Veranstaltungen nicht oder teils von anderen Daten aufgelistet.
  • Bugfix: Wenn bei einer Veranstaltung die Option Nur autorisierte Benutzer gesetzt ist, können authentifizierte Benutzer auf die Veranstaltung zugreifen, auch wenn Sie nicht über die Berechtigung Community Events einsehen verfügen.
  • Bugfix: Die Bezeichnungen der Konfigurationsoptionen in Bezug auf Zugriffsrechte sind mehrdeutig und missverständlich.
  • Bugfix: Bei der Bearbeitungsmaske einer Veranstaltung zeigt der Dialog zur Auswahl einer Weiterleitung nichts an.
  • Bugfix: Bei der Auflistung der Kategorien (in der Adminkonsole) wird teils ein falscher Status (aktiv/inaktiv) und keine Bezeichnung angezeigt.
  • Mit den Platzhaltern [[CALENDAR_EVENT_PLACE_MAP_LINK]] und [[CALENDAR_EVENT_ATTACHMENT_LINK]] kann ein HTML-Link zur Karte, resp. dem hinterlegten Anhang in der Bearbeitungsmaske einer Veranstaltung erzeugt werden.

Verzeichnis

  • Bugfix: Der Status der Einstellung Verzeichnis auf Startseite anzeigen wird korrekt angezeigt.

Volltextsuche

  • Eine mögliche XSS Lücke wurde bei der Suche in der Adminkonsole geschlossen.

Weiterleitungen

  • Wird eine Weiterleitungsregel erfasst, welche eine ungültige URL erzeugt, so kann dies zu einer Endlos-Weiterleitungsschleife führen.
  • Bugfix: Wird eine endlose Weiterleitungsregeln erfasst, so führt diese zu einem Server-Fehler.
    → Neu antwortet das System mit dem HTTP Status Code 502 Bad Gateway

Wissensdatenbank

  • Bugfix: Die Live-Suche führt z.T. gleiche Resultate mehrfach auf.

Wysiwyg Editor

  • Die Auflistung der WYSIWYG-Vorlagen kann nun individuell sortiert werden. Alternativ kann die Sortierung auch alphabetisch erfolgen.

Installation

Das Release 5.1 steht nur als Update-Paket bereit. Für eine Neuinstallation muss wie folgt vorgegangen werden:
  1. Installation der Version 5.0 SP2
  2. Einspielung des Updates auf die Version 5.1

Update

Das Update-System zur Aktualisierung einer bestehenden Installation auf die Version 5.1 enthält folgende Verbeserungen:
  • Kompatibilität mit PHP 7.3/7.4
Direktlink zum Download des Update-Pakets: https://www.cloudrexx.com/latest_release_update
 

Migration von 1.2 - 5.0

Alte Installationen der Versionen 1.2 bis und mit 5.0 können mit dem Update-Paket auf die Version 5.1 aktualisiert werden.

Inkompatibilitäten zu älteren Versionen

Eingestellte Anwendungen
Die folgenden Anwendungen wurden eingestellt und sind in der Version 5.1 nicht mehr enthalten:
  • Database Manager
Individuelle Anwendungen
Eigens entwickelte Anwendungen müssen mithilfe des Migration-Guides auf die neuen Framework-Funktionalitäten migriert werden.

Neuigkeiten für Entwickler

Frontend-Entwicklung / Webdesign

  • Das standard Styling von jQuery UI kann durch Ablage einer individualisierten jquery-ui.css Datei im Webdesign Template (/themes/<theme>/jquery-ui.css) überschrieben werden.
  • Bugfix: Die individuelle Datumsanzeige des abgekürzten Names des Wochentages (Format %a) ist auf Deutsch falsch. Z.B. wird anstelle von Mo das folgende angezeigt: Mon
  • Mit den neuen ESI-Funktionen $html_encode() und $url_encode() kann die Ausgabe von Platzhaltern entsprechend codiert werden.
  • Mit dem URL-Modifikator disposition kann der HTTP Header Content-Disposition gesetzt werden. Dies erlaubt es Inhaltsseiten oder die PDF-Ansicht direkt als Download anzubieten. Bsp.: http://example.org/?pdfview=1&disposition=attachment
  • Die Live-Suche akzeptiert beim Argument nodeId neu auch das Node-Platzhalterformat. Bisher wurde nur die ID einer Node akzeptiert.
  • Bugfix: Die URLs der Paging-Navigation sind nicht korrekt kodiert.
  • Bugfix: PDF-Dokumente können nicht erzeugt werden, wenn ein HTML-Element eine Höhe oder Breite von 0 Pixel aufweist.
  • Der Dokument-Name der PDF-Ansicht entspricht nun dem Seitentitel der jeweiligen Inhaltsseite. Der Dateiname besteht nun aus dem Seitentitel und der Dateiendung .pdf.

Framework

Access
  • Die hinterlegten Informationen zu einer Callback können nun aus der Callback-Klasse ausgelesen werden:
    \Cx\Core_Modules\Access\Model\Entity\Callback::getCallbackInfo()
Autogenerated Views
  • Um den Wert eines Feldes in der Übersicht und Detailansicht zu überschreiben, kann die ViewGenerator Feld-Option valueCallback verwendet werden (Doku).
  • Ein Feld kann neu als Status-Option konfiguriert werden. Dies ermöglicht das Aktivieren/Deaktivieren des jeweiligen Feldes in der Übersicht (Doku).
  • Der ViewGenerator kann nun auch bei Relationen, die in einem modalen Fenster dargestellt werden, mit zusammengesetzten Schlüsseln umgehen.
  • Der ViewGenerator kann mit der Option show eine Nur-Lese-Ansicht erzeugen (Doku).
  • Mit dem ViewGenerator kann die Bearbeitungsansicht einer Entität in mehrere Masken (Tabs) aufgeteilt werden (Doku).
  • Bearbeiten von Entities ist nun auch in der Übersicht möglich (Doku).
  • Der Callback-Funktion für Aktionen (siehe actions in Doku) wird der Parameter $editId  (via URL) doppelt übermittelt. Dies ist zwar falsch, sollte aber nicht zu Problemen führen, da immer das letzte URL-Argument gültig ist. Der ViewGenerator konnte aber bisher mehrfach angegebene IDs nicht korrekt handhaben. Dies wurde korrigiert.
  • Die erweiterte Suche im ViewGenerator verwendet nun LIKE statt EQUALS.
  • Der ViewGenerator unterstützt nun eine alphabetische Suche.
  • Die erweiterte Suche wird nun korrekt angezeigt, wenn kein Resultat gefunden wurde (nur bei Doctrine Entitäten).
  • Die HtmlElement-Klasse schliesst nun nicht mehr alle Elemente ohne Kind-Elemente. Ausser für Elemente die gem. HTML5 keinen Content haben können werden Elemente stardardmässig nicht mehr direkt geschlossen.
  • Die Client-seitige Validierung im ViewGenerator funktioniert nun wieder.
  • Nicht-Doctrine-Entities werden vom ViewGenerator verarbeitet.
  • Um den korrekten Standardwert setzen zu können, werden numerische oder boolische Vergleichswerte vor der Prüfung in einen Integer umgewandelt. Dieser Vorgang ist nötig, da PHP alle Array-Schlüssel automatisch in einen Integer konvertiert. (Ref)
  • Im ViewGenerator konnten z.T. Entities nicht bearbeitet werden. Dies war der Fall, wenn das Paging aktiv war und die betreffende Entity nicht auf der ersten Seite dargestellt wurde. Aus Performancegründen wurde dieses Problem nur für Doctrine Entities gelöst.
  • Export-Funktion für Doctrine Models (Doku).
  • Der ViewGenerator unterscheidet bei Formularfeldern nun zwischen den Datentypen DATE und DATETIME. Bei DATE wird nur der Datepicker, bei DATETIME der Datetimepicker angezeigt.
  • Das umliegende DIV der Tabellen-Ansicht des ViewGenerators wurde um eine eindeutige ID ergänzt.
  • Neu können für Doctrine Models benutzerdefinierte Felder hinzugefügt werden und mit den Feld-Optionen konfiguriert werden (Doku).
  • Das onClick Event der automatisch generierten Lösch-Icons kann nun überschrieben werden (Doku).
  • Primärschlüssel können nun auch in der Bearbeitungsansicht angezeigt werden (Doku).
  • Werden ShinyExceptions in einem JsonAdpater geworfen, werden diese nun vom ViewGenerator abgefangen und ausgegeben.
  • Bugfix: Die erste Spalte bei der Auflistungsansicht hat die Länge der Tabellen-Überschrift.
  • Der FormGenerator unterstützt nun den ENUM-Datentyp
  • Unterstützung für den Feldtyp password hinzugefügt
  • DQL-Fehler werden nun mit einer passende Fehlermeldung abgefangen
  • Die HTML-Elemente werden mit folgenden zusätzlichen Klassen und IDs dekoriert:
    • Auf den Checkboxen zum Auswählen der Einträge: .multi-action-checkbox
    • Entityname als Klasse auf dem Form Element in der Detailansicht: form.<entity-name>
    • ID auf den groups-DIVs in der Detailansicht: .groups#group-<form-id>-<fieldname>
  • Listings basierend auf einer Callback sind nun "Experimental"
  • Mit der Option $options['parsing']['showNA'] kann bestimmt werden, ob leere oder nicht gesetzte Felder explizit als solche (Keine / <empty>) ausgegeben werden sollen.
  • Bugfix: Die Daten des Arguments data beim Aufruf der Exposed Method bei Verwendung der ViewGenerator Option rowAttributes sind um eine Datenzeile verschoben.
  • Der Abstand zwischen der normaler und der erweiterten Suche und zu den Einträgen wurde vergrössert.
  • Der ViewGenerator merkt sich nun die letzte Spaltensortierung pro view.
  • Der "Hinzufügen"-Button des ViewGenerators befindet sich neu oben rechts, bei den allgemeinen Funktionen (wie z.B. Export).
  • Der ViewGenerator zeigt nun wenn keine Einträge existieren die "Hinzufügen"-Ansicht an.
  • Manuelle- und Spaltensortierung können nun gleichzeitig verwendet werden.
Benutzer und Rechte
  • Vorschaufunktion beim Upload von Profilbildern (Doku).
Cache 
  • Components können nun über $this->getComponent('Cache')->addException() eine Ausnahmeregel für das Caching hinterlegen.
  • Jeglicher Benutzer spezifischer-Cache kann mit den folgenden zwei Methoden gelöscht werden:
    $this->cx->getComponent('Cache')->clearUserBasedPageCache();
    $this->cx->getComponent('Cache')->clearUserBasedEsiCache();
ClassLoader
  • Bugfix: Wenn der ClassLoader in einer rekursiven Endlosschleife landet, bricht das System zusammen.
    → Mit einem neuen Algorithmus werden rekursive Endlosschleifen beim ClassLoader erkannt und abgebrochen.
Component Entwicklung
  • Der BackendController unterstützt nun automatisch Entity-Views auf der zweiten Navigationsebene.
  • Der BackendController generiert standartmässig eine MailTemplate-Ansicht. Bisher wurde MailTemplate dabei für Links auf sich selbst ein falsches Linkziel mitgegeben. Dies wurde korrigiert.
Content Manager
  • Mit der Methode \Cx\Core\ContentManager\Model\Entity\Node::isChildOf() kann geprüft werden, ob eine Node sich innerhalb des Zweiges (Branch) einer anderen Node befindet.
    if ($node->isChildOf($parentNode)) {
        \DBG::msg('Node is a child');
    }
    
  • Die Page-Entity wurde mittels \Gedmo\Loggable\Loggable Interface als "loggable" markiert.
Core
  • EntityBase-Validatoren können nun in der Methode initializeValidators() initialisiert werden. So wird sichergestellt, dass diese bei Bedarf immer initialisiert werden.
  • Neue Mindestanforderung an PHP ist Version 7.3
  • Der adjustResponse-Hook ist bis auf weiteres nur im Frontend verfügbar.
  • Im Backend-Modus sind nun die Eigenschaften module und cmd des Page-Objekts ($this->cx->getPage()) korrekt gesetzt.
  • Die __call() Methode von Entities fängt nun die Endlos-Rekursion ab, die entsteht, wenn eine nicht existente Methode aufgerufen wird.
  • DataSets lösen nun Felder, die Translatable sind, mit der Fallback-Logik auf, wenn nicht die Option suppressFallback übergeben wird.
  • Bei allen Entities stehen neu die Methoden getStringRepresentationFormat() und getStringRepresentationFields(), sowie die Eigenschaften $stringRepresentationFormat und $stringRepresentationFields zur Verfügung.
    Damit kann gesteuert werden, was __toString() zurückgeben soll. Das Überschreiben von __toString() sollte somit nicht mehr notwendig sein.
Datei-Handling
  • Der alte Datei-Browser (FileBrowser) und Uploader wurde entfernt.
Html
  • Überlange Feldbeschreibungen in der Bearbeitungsansicht des ViewGenerators werden nun korrekt dargestellt.
  • Vor dem JS-Validator von DataElement-Instanzen kann innerhalb des Events onkeyup nun weiterer JavaScript-Code ausgeführt werden.
JavaScript
  • Die JavaScript-Bibliothek cx wird nun bei der Verwendung von ContrexxJavascript (z.B. für setVariable()) automatisch aktiviert.
Json
  • JSON-Requests (mit \Cx\Core\Json\JsonData::getJson()) enthalten im User-Agent nun die Log-ID des aktuellen Requests.
Listing
  • DataSet->toArray() hat nun ein optionales Argument, das es erlaubt die Rohdaten zu erhalten.
  • DataSet verwendet zur Umwandlung von Datumsfeldern nun die Konstante ASCMS_DATE_FORMAT_DATETIME (d.m.Y H:i:s) anstelle des Formats d.M.Y H:i:s.
  • Bugfix: Jeder Request erzeugt div. PHP-Warnings betreffend nicht definierten DATETIME-Konstanten.
MailTemplate
  • Der Versand von E-Mails wird im Log mit dem Präfix MailTemplate protokolliert.
MediaBrowser
  • Dank einer neu verfügbaren Schnittstelle, können die Daten einer eigenen App in den MedienBrowser integriert werden (Doku).
    Herzlichen Dank an den Cloudrexx Solution Partner Comvation AG für diesen Beitrag via GitHub!
  • Mit der Option always kann die Anzeige eines Views in jedem Bereich erzwungen werden (unabhängig von der Option views).
  • Der MedienBrowser zeigt nun, falls die Option startview nicht gesetzt oder ungültig ist, immer ein View (der Erste) an.
  • Die Optionen modalopened und modalclosed funktionieren nun. Bisher haben diese nur funktioniert, wenn die falschen IDs JsModalopened, resp. modalClosed genutzt wurden.
MediaSource
  • Die Methode MediaSourceManager::getMediaTypePathsbyNameAndOffset() wirft nun eine MediaSourceManagerException im Falle einer ungültigen MediaSource oder eines ungültigen Pfades.
Model
  • Die Doctrine-Erweiterungen von beberlei/DoctrineExtensions sind nun verfügbar. Diese erlauben DQL-Abfragen wie z.B.:
    SELECT p
    FROM Cx\Core\ContentManager\Model\Entity\Page p
    WHERE REGEXP(p.id, '^[0-9]$') = true
  • Der LoggableListener ist nun über die Db-Klasse zugänglich:
    $listener = $cx->getDb()->getLoggableListener();
  • Die zu einer bestimmten Entity-Klasse gehörende Loggable Entity-Klasse kann nun wie folgt abgerufen werden:
    $cx->getDb()->getLoggableListener()->getLogEntryClassForEntityClass(
        $entityClass
    );
Net
  • Mit der Funktion $this->cx->getComponent('Net')->getHostname() kann der Hostname der Website abgefragt werden.
  • Das Repository der Domains kann wie folgt bezogen werden: $this->cx->getComponent('Net')->getDomainRepository()
Paging
  • Die Klasse \Paging ist nun auch im API mode verfügbar.
Routing
  • Bugfix: Die Methode \Cx\Core\Routing\Url::fromDocumentRoot() verarbeitet mehrdimensionale URL-Argumente (via Argument $arrParameters) falsch. Dadurch funktioniert auch die Verarbeitung von mehrdimensionale URL-Argumente bei \Cx\Core\Routing\Url::fromBackend() (via Argument $parameters) nicht korrekt.
  • Die URL-Klasse (\Cx\Core\Routing\Url) verfügt nun über einen Getter (getAnchor()) und Setter (setAnchor()) für den Anker einer URL.
  • Bugfix: In der Adminkonsole funktionieren Arrays als URL-Modifikatoren innerhalb von URLs nicht.
Session
  • Bugfix: Die Daten der Session werden nicht in der definierten Reihenfolge ausgelesen.
  • Mit dem folgenden Helper kann geprüft werden, ob eine Session initialisiert wurde:
    $this->cx->getComponent('Session')->isInitialized()
Setting
  • Einer Text-Option kann die spezielle Datenverarbeitung filesize zugewiesen werden, um den Wert der Option als Dateigrösse auszugeben. Z.B. wird der Wert 1024 dann beim Speichervorgang in 1 KB umgewandelt (Doku).
Test
  • In UnitTest-Klassen steht nun, wie in Entities und Controllern, die Methode getComponent(...) zur Verfügung.
Uploader
  • Eine offene Upload-Sitzung kann nun fortgesetzt werden, in dem die ID als Argument bei der Instantiierung übermittelt wird:
    $uploader = \Cx\Core_Modules\Uploader\Model\Entity\Uploader($id);
    Die ID einer Uploader Instanz kann über die Methode Uploader::getId() ausgelesen werden:
    $id = $uploader->getId();
  • Mit der Methode Uploader::destroy() kann eine Sitzung gelöscht werden, um die Session nicht mit toten Daten gefüllt zu lassen:
    \Cx\Core_Modules\Uploader\Model\Entity\Uploader::destroy($id)
View
  • Bugfix: Das manuelle aktivieren eines Tooltips (mittels cx.ui.tooltip(jQueryElementSelector)) funktioniert nicht, wenn auf der gleichen HTML-Seite bereits Tooltips zum Zeitpunkt des Ladevorgangs (identifiziert mittels CSS-Klasse tooltip-trigger) vorhanden sind.
  • Die Bibliothek "intro.js" ist nun viel einfach anzuwenden (Doku)
Widgets
  • Bei Alias-Seiten und Redirects funktioniert die ESI-Variable query (ESI_VAR_ID_QUERY) nun auch wie erwartet.

Development Environment

CLI-Skript
  • Das Kommandozeilen-Skript funktioniert nun auch mit der Bash-Version 5.
  • Bugfix: Auf Systemen ohne Bash-Version 4 funktionieren die ./cx env Befehle nicht.
  • Permissions die sich auf Argumente von CLI Befehlen beziehen funktionieren nun. Zudem wurde die Performance der Zugriffsprüfung verbessert.
  • Mit ./cx env exec --sql-file <file> kann nun direkt eine SQL-Datei in der Datenbank ausgeführt werden.
  • Wenn das cx ausserhalb eines ENV verwendet wird, so ist die Hilfe der verfügbaren Befehlen nun auch dort verfügbar (cx help ...)
  • PHPUnit wurde auf Version 8 aktualisiert. Die PHPUnit-Version von Cloudrexx ist damit nun kompatibel mit den PHP-Versionen 7.3.
  • cx env exec --sql gibt nun einen Statuscode zurück. Ausserdem gibt die globale cx Instanz den zurückgegebenen Statuscode weiter.
  • xDebug kann nun einfach mit dem Befehl ./cx debug --install-x-debug installiert werden
  • Der Befehl ./cx debug --stack zeigt den Stacktrace des letzten fehlgeschlagenen Requests an
  • Als Ersatz von sendmail können nun auch MTAs verwendet werden, die keine sendmail-kompatiblen Optionen unterstützen.
  • Bugfix: Der globale Befehl cx env init funktioniert unter OS X nicht.
  • Bugfix: Bei Verwendung des globalen cx erscheint unter OS X immer die Meldung cx could not be found in your path. Run the following command to add it
  • Bugfix: Auf OS X und Windows können cx-Befehle nicht parallel ausgeführt werden.
  • Bugfix: Bei Verwendung des globalen cx unter OS X erscheint die Fehlermeldung bash: ./cx: No such file or directory
  • Bugfix: Auf OS X wird bei jedem cx-Befehl der Fehler stat: illegal option -- c angezeigt.
  • Bugfix: Der Befehl cx env shell --wrapper öffnet nicht die Shell des Wrapper-Containers.
  • Bugfix: Der CLI-Modus (bei Ausführung von ./cx) wird nicht immer korrekt als solcher erkannt.
Um von den neuen Funktionen und Verbesserungen im globalen cx zu profitieren, muss die globale cx Instanz wie folgt aktualisiert werden:
$ which cx > /dev/null && sudo cp cx $(which cx)

Systemanforderungen

  • PHP 7.3/7.4
  • MariaDB 10.2/10.5 oder MySQL 5.6/8
  • Apache 2.x auf Linux