redaxo/source
REDAXO is a PHP-based CMS/website framework focused on flexible, module-driven content creation with full control over input/output. Multilingual, highly extendable, and workflow-friendly, with strong community resources, docs, and addons.
rex_file: getMimeType liefert spezifische Mime-Types für csv, html, json, md, xml, ics, vcf (@gharlan)rex_sql_table: Default-Wert bei TEXT-Spalten wird normalisiert für bessere Kompatibilität zwischen MariaDB und MySQL (@gharlan)rex_dir: Methode create ist robuster bzgl. gleichzeitiger Prozesse (@gharlan)rex_media_service: getList hat sie Sortierung nicht angewandt, wenn kein Pager übergeben wurde (@gharlan)MEDIA_LIST_QUERY wird bei Paginierung auch für die Count-Query getriggert (@aeberhard, @gharlan)SLICE_BE_PREVIEW: Slice-Revision wird mit als Param übergeben (@ynamite)$this->getCurrentSlice() liefert korrektes (weitgehend leeres) Slice-Objekt (@gharlan)rex_file: getMimeType liefert spezifische Mime-Types für csv, html, json, md, xml, ics, vcf (@gharlan)rex_sql_table: Default-Wert bei TEXT-Spalten wird normalisiert für bessere Kompatibilität zwischen MariaDB und MySQL (@gharlan)rex_dir: Methode create ist robuster bzgl. gleichzeitiger Prozesse (@gharlan)rex_media_service: getList hat sie Sortierung nicht angewandt, wenn kein Pager übergeben wurde (@gharlan)MEDIA_LIST_QUERY wird bei Paginierung auch für die Count-Query getriggert (@aeberhard, @gharlan)SLICE_BE_PREVIEW: Slice-Revision wird mit als Param übergeben (@ynamite)rex_editor: in PHP 8.5 kam es teils zu Deprecated-Meldungen (@gharlan)config.yml: Env-Variablen können genutzt werden über einen YAML-Tag !env (Beispiel: password: !env DB_PASSWORD) (@gharlan)rex_string: YAML-Decoding/Encoding untersützt YAML-Tags (@gharlan)rex_sql:
user:list und user:delete (@crydotsnake, @gharlan)rex_form: Vorhanden data-confirm-Attribute bei Control-Elementen werden nicht mehr überschrieben (@gharlan)user:create wurden fälschlich auch im Setup-Modus angeboten, obwohl er erst danach funktioniert (@gharlan)rows_per_page konfigurierbar) (@Hasan-Alherek)text/csv wird erlaubt (@skerbis)rex_article_slice angepasst (@dergel)setRequiresReboot(true) war über den Result-Parameter in der URL Cross-Site-Scripting möglich (gemeldet von @0xadik) (@gharlan)symfony/console-Versionen (@crydotsnake)allowed_mime_types in der package.yml) kann z.B. im Project-Addon mittels rex_mediapool::setAllowedMimeTypes() ergänzt/überschrieben werden.allowed_mime_types nicht beachtet (@gharlan)rex_sql_could_not_connect_exception: Es war nicht ersichtlich, für welche DB-Verbindung die Exception geworfen wurde (@danspringer).json wird nicht mehr gesperrt aufgrund der .js-Sperre) (@omphteliba)dump: Unterstützung für Labels (dump(foo: $foo)) (@gharlan)rex_package: Neue Methode getLicense und ausgabe der Lizenz im Command package:list (@dergel)rex_var-Klassen können über register-Methode explizit registriert werden (@gharlan)RESPONSE_SHUTDOWN (Code nach dem Senden der Response) (@gharlan)rex_string::highlight und Highlighting in rex_markdown für PHP 8.3 korrigiert (@gharlan)E_STRICT-Konstante nicht mehr nutzen (Vorbereitung für PHP 8.4) (@gharlan).html) werden geblockt, um XSS über diese Dateien zu verhindern (gemeldet von Valerii Voronin) (@skerbis)MEDIA_MANAGER_INIT, der für jeden Aufruf getriggert wird (noch vor der Cache-Prüfung) (@gharlan)X-Mailer-Header für Identifizierung) (@skerbis)Return-Path (@tyrant88)rex_sql: In der Debug-Ausgabe wurden in der fullquery Integerwerte als Strings eingesetzt (@gharlan)manifest.json (@gharlan)rex_get/rex_post etc.: Es kann ein Array mit möglichen Werten als Typ übergeben werden (@gharlan)rex_http_exception:
rex_log_file: Neue ::factory()-Methode, Nutzung von new rex_log_file ist deprecated (@dergel)rex_api_function: Neue Methode register um API-Functions explizit registrieren zu können (relevant bei Namespaces) (@gharlan)rex_form:
<search> wird an geeigneten Stellen verwendet (@gharlan)rex_file: put und move funktionierten teilweise nicht, wenn mehrere Filesysteme/Mounts involviert sind (@dergel)rex_list: Der Page-Parameter wurde den Links nicht immer mitgegeben, sodass man nach Löschung z.B. auf der ersten Seite landete (@gharlan)rex_sql: In checkDbConnection wurde ein relevanter Fehlercode nicht berücksichtigt (@gharlan)config.yml aktivierbar), der problematische Bereiche im Backend für Produktivumgebungen sperrt (@gharlan)config.yml (@gharlan)ssl_verify_server_cert (@gharlan)rex_list:
rex_sql: getArrayValue liefert bei null ein leeres Array und behandelt ungültiges JSON besser (@staabm)rex_file: Neue Methode append (@skerbis)rex_response: sendFile abbrechen, wenn die Verbindung zum Client abgebrochen wurde (@staabm)rex_version: gitHash beschleunigt (@staabm)Permissions-Policy-Header wird nicht mehr gesetzt, da Google FLoC beerdigt hat (@eznix86)rex_loader-API ausgelagert (@staabm)package.yml optimiert (@staabm, @gharlan)success-Meldungen korrigiert (@danspringer)rex_sql: Bei zusätzlichen Datenbanken wurde die Verbindung nicht korrekt initialisiert bzgl. SQL-Mode und Charset (@alxndr-w)rex_markdown: PHP-Highlighting mit PHP 8.3 korrigiert (@bloep)rex_file: delete-Methode stabilisiert (@staabm)rex_autoload: Kompatibilität zu symfony/cache hergestellt (@staabm)dump(): Layout in Kombination mit UiKit korrigiert (@skerbis)package.yml: Deprecated-Meldunge vermeiden, wenn supportpage gleich null ist (@tbaddade)rex_logger: Kompatibilität zu neueren PSR-Log-Versionen hergestellt (@michael-kreatif)nexttime nicht mehr beachtet (da überflüssig und problematisch) (@gharlan)convert2image: Unterstützung für Videos (erfordert ffmpeg) (@skerbis)resize: Fehler vermeiden, wenn ein Werte (Breite/Höhe) leer gelassen wurden (@gharlan)header: Fehler vermeiden bei Updates von älteren Versionen (@gharlan)PAGE_STRUCTURE_ARTICLE_ORDER_BY um die Artikelsortierung zu ändern (@ynamite)SLICE_BE_PREVIEW um die Slice-Vorschau im Backend ändern zu können (@michael-kreatif)rex_template::forKey() korrigiert (@dgrothaus-mc)"REX_VALUE[1] $myvar") (@gharlan)config:get/set und db:connection-options konnten nicht verwenden werden, wenn die DB nocht nicht existiert (@gharlan)rex_fragment::parse (@staabm)#[SensitiveParameter] fehlte noch an manchen Parametern (@gharlan)package.yml teils nicht geladen und die alte blieb im Cache (@gharlan)session_max_overall_duration in config.yml (@staabm)session.use_strict_mode wird immer aktiviert (@gharlan)session.save_path/sid_length/sid_bits_per_character können über config.yml gesetzt werden (@gharlan)SESSION_REGENERATED (@gharlan)dump: Suchfunktion innerhalb der Dumpausgabe aktiviert (@tbaddade, @gharlan)rex_form: Label kann optional über Felder gesetzt werden (setLabelOnTop) (@christophboecker)rex_formatter: Methode truncate nutzt richtiges Ellipsis-Zeichen (@skerbis)rex_response: Neue Methode getNonce (wird an vielen Stellen im Backend bereits verwendet) (@dergel, @gharlan)rex_backend_login: "Headers already sent"-Fehler vermeiden (@gharlan)rex::getServer() (@christophboecker)install:download: Version-Constraints werden unterstützt (@staabm)workspace:
header: noindex kann aktiviert werden (@bitshiftersgmbh)MEDIA_LIST_THUMBNAIL (@danspringer)PHPMAILER_PRE_SEND und PHPMAILER_POST_SEND (@skerbis)rex_template: Neue Methode exists (@staabm)rex_sql:
rex_sql_foreign_key: Es fehlte NO ACTION als Variante für ON UPDATE/DELETE (@tyrant88)rex_escape: stdClass-Objekte wurden direkt geändert, statt ein Clone zu erzeugen (@gharlan)rex_string::buildQuery: Deprecated-Meldung entfernt (@tyrant88)rex_markdown: Deprecated-Meldungen entfernt (@gharlan)user:set-password: Login-Versuche wurden nicht zurückgesetzt (@dergel)resize: Werte mit px-Suffix wurden nicht akzeptiert (@gharlan)rex_media_manager::create teils zur Auslieferung der Bilder in Originalgröße (@gharlan)note="...") wurde der translate:-Präfix nicht berücksichtigt (@gharlan)translate:-Präfixes (@gharlan)instname nicht gesetzt (@gharlan)rex_sql: Bei escapeLikeWildcards wurde der Backslash nicht escaped (@gharlan)error_log nur aufrufen, wenn vorhanden (ist bei manchen Hostern deaktiviert) (@gharlan)media_path nicht korrekt gesetzt (relevant für EPs etc.) (@dergel)ART_CONTENT_UPDATED kann nun bei work_to_live-Action gesteuert werden, in welcher Version man nach der Aktion im Backend landet (@gharlan)rex_sql: Fehlercode stand teils nicht mehr korrekt zur Verfügung, dadurch Fehler im Setup (@gharlan)rex_backend_login: Cookie-Einstellungen aus config.yml wurden für Eingeloggt-bleiben-Cookie nicht berücksichtigt (@dergel)rex_backend_login:
rex_password_policy: Neue Methode getHtmlAttributes, die passend zur Policy die Attribute minlength, maxlength und passwordrules liefert (wird im Backend an passenden Stellen auch verwendet) (@gharlan)rex_form_base:
setFormAttribute (@pherzberger)addFieldset können Attribute als zweiten Parameter übergeben werden (@gharlan)rex_select: Optgroups können per endOptgroup beendet werden (@gharlan)rex_context: Neue Methoden getParams, hasParam, removeParam (@tbaddade)rex_be_page: Neuer Setter setTitle (@DanielWeitenauer)rex_socket:
acceptCompression() (@pherzberger)rex_path: Neue Methode findBinaryPath (@staabm)rex_type: Neue Type-Assertion-Methoden wie int, nullOrInt etc. (@gharlan)rex_sql: Bei factory wird noch nicht die DB-Verbindung geöffnet, sondern erst wenn wirklich notwendig (@Sysix)PACKAGE_CACHE_DELETED (@gharlan)type="email" etc.) und required/autocomplete-Attributen (@gharlan)SensitiveParameter-Attribut wird an geeigneten Stellen verwendet (@staabm)rex_request: Vermeidung von Exceptions in der cli (@staabm)rex_socket_proxy: Der Host-Header wurde fälschlich inkl. Port gesetzt (@gharlan)rex_htaccess_check hat nicht die Cookie-Einstellungen aus der config.yml verwendet (@staabm)rex:theme.change) (@christophboecker)dracula)rex_media_manager::setCacheDirectory geändert werden (@gharlan)rex_managed_media::getMediaFilename lieferte uneinheitliche Ergebnisse, nun einheitlich den neuen Dateinamen (@gharlan)image_format: Bei .jpg-Dateien (nicht .jpeg) war die neue Extension im Header nicht korrekt (@gharlan)rex_template: Neue Methode getCtypes die ein Array von neuen rex_ctype-Objekten liefert (@staabm)cache/addons/templates statt im structure-Cacheordner (@gharlan)rex_list: Über addLinkAttribute konnten keine eigenen Classes gesetzt werden (@tbaddade)rex_form: Bei Fieldsets mit eckigen Klammern im Namen wurden die Werte nicht gespeichert (@gharlan)rex_formatter: Behandlung von 0000-00-00 korrigiert (@tbaddade)rex_get/rex_post etc. warfen Notice, wenn nach String gecastet wurde, und ein Array gesendet wurde (@gharlan)null-Werten kam es mit PHP 8.1 zu Deprecation-Notices (@gharlan)assets:sync: Core-Assets wurden nicht korrekt synchronisiert (@gharlan)exec nicht verfügbar ist (@gharlan)image_format: Bei .jpeg-Dateien (nicht .jpg) war die neue Extension im Header nicht korrekt (@gharlan)MEDIA_LIST_QUERY wieder hinzugefügt, der zwischenzeitlich entfallen war (@eaCe)width-Attribut mit Wert 0 gesetzt (@skerbis)rex_mediapool_saveMedia an das frühere Verhalten wieder angeglichen (@gharlan).php8 in die Liste der blockierten Extensions aufgenommen (@staabm)rex_sql: Die Query-Parameter werden entsprechend ihrer PHP-Typen gebunden, dadurch z.B. Parameter auch in LIMIT-Ausdrücken möglich (@gharlan)boostrap-select: Statt "Bitte wählen" wird "—" angezeigt (weniger Verwirrung bei optionalen Feldern und bei leeren Selectboxen) (@gharlan)rex_mediapool_saveMedia und rex_mediapool_updateMedia an das frühere Verhalten wieder angeglichen (@gharlan)catname und catpriority wurden nicht korrekt aktualisiert (@gharlan)rex_config gespeichert (@gharlan)rex_sql_table: Defaultwert 0 wurde nicht gesetzt (@TobiasKrais)rex_markdown: Korrekturen beim PHP-Syntaxthighlighting (@gharlan)ctype, mbstring und intl erfordert (@gharlan)config.yml kann ein Theme für alle User fest vorgegeben werdenrex_list:
getColumnPosition/setColumnPosition (@christophboecker)SQL_CALC_FOUND_ROWS abgefragt (@gharlan)rex_formatter:
rex_select: Bei addSqlOptions kann als zweiter Parameter die DB-ID gesetzt werden (@christophboecker)rex_markdown: Optional kann Highlighting für PHP-Codeblöcke aktiviert werden (wird in den Readme-Ausgaben im Backend verwendet) (@gharlan)rex_pager:
rex: Neue Methode requireUser (nicht nullable) (@gharlan)rex_socket: Context-Options können gesetzt werden (z.B. verify_peer für SSL) (@dergel)rex_socket_proxy: Bei https wird TLS v1.2 und SNI verwendet (@develerik)rex_response: Neue Konstante HTTP_BAD_REQUEST für den entsprechenden HTTP-Status (@christophboecker)rex_factory_trait Neue Methode getExplicitFactoryClass, dafür callFactoryClass deprecated (@gharlan)dump()-Ausgaben enthalten einen Link (entsprechend der Editor-Einstellung in REDAXO) zu der Codestelle, wo die Ausgabe ausgelöst wurde (@gharlan)package:run-update-script, der das Update-Skript eines Addons manuell anstößt (@gharlan)use_gzip wird in der config.yml default nicht mehr aktiviert (@gharlan)page-Parameter erfordert (@gharlan)rex:///-Pfade wurden nicht mit den Editor-URLs verlinkt (@gharlan)theme-color-Metatag wird nicht mehr gesetzt (@gharlan)rex_media_small, rex_media_medium, rex_media_large (@schuer)rex_mediapool und rex_media_service (entsprechend alte Funktionen als deprecated gesetzt) (@dergel, @gharlan)rex_media: Neue Methode forId, um ein Medium über die ID zu erhalten (@dergel)onchange-Event des MediaButton-Inputs getriggert (@BenJ1337)*_UPDATED EPs (@gharlan)PHPMAILER_CONFIG, über den die Einstellungen dynamisch angepasst werden können (@skerbis).eml-Datei abgelegt, statt in einem eigenen Format (@skerbis)rex_article_slice-Objekt zur Verfügung gestellt über $this->getCurrentSlice(), so kann über PHP ohne REX_VARs auf die Values zugegriffen werden (@gharlan)rex_article_slice:
getValueArray, getLinkListArray, getMediaListArray, die den Feldinhalt direkt als Array liefern (@gharlan)data-status="x"-Attribut, so können die Zeilen je nach Status gestylet werden (@danspringer, @schuer)rex_article_slice: bei getLinkUrl bekam man die aktuelle URL statt null, wenn das Feld nicht gesetzt ist (getMediaUrl entsprechend) (@gharlan)REX_LINK[id=X output=url] hat teilweise die URL in falscher Sprache geliefert (@gharlan)rex_version:
structure/version: Die Leiste für den Wechsel zwischen Arbeits-/Liveversion wurde mobil nicht korrekt dargestellt (@schuer)mediapool: Seit Chrome 91 stimmten die Spaltenbreiten teilweise nicht mehr (@schuer)rex_socket-Einträge in Timeline enthielten doppelten Slash in URL (@gharlan)resize: Warning vermeiden, wenn nur Höhe oder nur Breite gesetzt wurde (@Hirbod)rex_var_media(list)::getWidget: ID-Parameter mit zusätzlichem Namespace-Anteil (nicht nur integer) wurden nur teilweise unterstützt (@gharlan)SMTPDebug-Schalter wird von PHPMailer inzwischen auch bei anderen Versandmethoden verwendet, deswegen ist die Einstellung dazu nun immer sichtbar (@skerbis)for-Attribut für Label korrigiert (@aeberhard)rex_var_link(list)::getWidget: ID-Parameter mit zusätzlichem Namespace-Anteil (nicht nur integer) wurden nur teilweise unterstützt (@gharlan)symfony/http-foundation neu aufgenommen; das Request-Objekt kann über rex::getRequest() abgefragt werden (@gharlan)utf8mb4_unicode_ci genutzt (@ixtension)successmsg-Property eine eigene Erfolgsmeldung setzen (@BlackScorp, @staabm)CHANGELOG.md der AddOns einsehbar (@staabm, @gharlan)install-AddOn geladen und ist nutzbar (@alxndr-w, @gharlan)package.yml optimiert (@staabm)core/form/search.php für Suchfelder wie in der AddOn-Verwaltung, mit zugehöriger JS-Funktion rex_searchfield_init (@skerbis)rex: Neue Methode getDbConfig liefert die DB-Config als Objekt der neuen Klasse rex_config_db (@staabm)rex_markdown:
<br/> (kein Markdown-Standard) kann deaktiviert werden und ist bei der Darstellung von Markdown-Dateien im Backend deaktiviert (@christophboecker)rex_validator: Rules werden über neue Klasse rex_validation_rule abgebildet; Objekte der Klasse können über addRule hinzugefügt und über getRules abgefragt werden (@staabm)rex_form: Pflichtfelder (gesetzt über notEmpty-Validator) werden im Label markiert und erhalten das required-Attribut (@staabm)rex_list: Es können Attribute für die Table-Rows (<tr>) gesetzten werden (@christophboecker)rex_user: Neue Methode forLogin um User über den Benutzernamen abzufragen (@jelleschutter)rex_file: Neue Methode require, wie get, aber wirft Exception, wenn die Datei nicht gelesen werden kann (@staabm)rex_response:
rex_package: Neue Methode splitId um eine Package-ID in AddOn- und PlugIn-Part zu trennen (@gharlan)rex_sql:
rex_sql_util: Methode importDump prüft, ob es eine *.sql-Datei ist (@staabm)rex_var: Variablen können auch Ziffern im Namen enthalten (@gharlan)rex_api_function: Exception bei ungültigem JSON (@staabm)rex_editor: Die Editoren haben Konstanten erhalten, und die Klasse validiert den gesetzen Editor (@staabm)config:get/set: Über neue Option --package können die Packages-Properties (statt Core-Properties) verwaltet werden (@staabm)config:get/set: --type-Option unterstützt den octal-Typ für fileperm/dirperm (@staabm)assets:sync: Dateivergleich optimiert und Beschreibung/Hilfe verbessert (@staabm)setup:run: Die Ordner/Dateien mit fehlenden Schreibrechten werden im Listen-Style aufgelistet (@staabm)Server-Timing-Header im Debug-Modus werden nicht mehr gesendet, da inzwischen das Debug-AddOn existiert und die Header sich als problematisch herausgestellt haben (@gharlan)boot.php (@dtpop)help.php entfernt (@skerbis)filter wurde nicht geprüft (@gharlan)rex_autoload: Cache-Handling korrigiert (@gharlan)rex_markdown: In Code-Snippets wurde die Zeichenkette window.location pauschal entfernt (@gharlan)rex_form: Bei aktiviertem Debug-Parameter wurde die Redirect-URL nicht escaped (@gharlan)rex_extension: Wenn der Runlevel als String übergeben wurde („EARLY“, „LATE“), wurde stillschweigend immer LATE verwendet; neu wird auf die korrekte Nutzung über die Integer-Konstanten rex_extension::EARLY/LATE per Warning hingewiesen (@gharlan)setup:run: Wenn die Systemvoraussetzungen nicht erfüllt werden, wurde nach der Fehlermeldung trotzdem das Setup fortgesetzt (@gharlan)rex_backup::exportFiles sollte dafür der neue zweite Parameter mit einem Zielpfad gesetzt werden) (@staabm)article_status: Neu können die Artikel-Datumsfelder nach Statusänderung automatisch geleert werden (optional) (@tyrant88)image_format, über den das Bildformat geändert werden kann (JPG, PNG, GIF, WEBP) (@aeberhard)image_properties: Der Effekt wirkte sich nur aus, wenn noch weitere Bildeffekte aktiv waren (@gharlan)smtp statt mail (@gharlan)mail steht nur noch zur Auswahl, wenn die PHP-Funktion auch verfügbar ist (@skerbis)phpmailer[]-Recht mit Textbeschreibung „PHPMailer-Einstellungen“ (@skerbis)rows_per_page angepasst werden; der Default-Wert wurde auf 50 erhöht (@tyrant88)SLICE_MENU (mit eigener Klasse rex_extension_point_slice_menu), als Weiterentwicklung von STRUCTURE_CONTENT_SLICE_MENU mit mehr Möglickeiten, die vorhandenen Buttons zu ändern/entfernen (@staabm)rex_article_not_found_exception geworfen werden, wodurch auf den Fehlerartikel gewechselt wird (@gharlan)rex_form-Prio-Feld verhindert (@gharlan)rex_form verhindert (@staabm, @gharlan)rex_escape: Neue Escape-Strategie html_simplified, bei der HTML escaped wird mit Ausnahme weniger einfacher Tags (<b>, <code> etc.) (@staabm)rex_logger: Bei rex_-Exceptions wurde im Log der erste Buchstabe großgeschrieben (Rex_exception etc.) (@gharlan)Server-Timing-Header) (@gharlan)download-Attribut wurden trotzdem über PJAX geladen (@gharlan)media-Ordner grundsätzlich geleert, auch wenn das Backup den media-Ordner gar nicht enthält (@gharlan)rex_media_category_select:
rex_module::forKey() korrigiert (@DanielWeitenauer)session.auto_start wäre aktiv (@gharlan)rex_sql:
getLastId lieferte im Frontend 0, wenn der Debugmodus des SQL-Objekts aktiviert war (@gharlan)getQueryType unterstützt Klammern um die Query (@BlackScorp, @staabm)rex_sql_table: Abfrage der Fremdschlüssel funktionierte nicht mit MySQL >= 8.0.21 (@gharlan)rex_markdown: Generierung der Sprungnavi geht korrekt um mit HTML/Markdown/SpecialChars innerhalb der Überschriften (@jelleschutter, @gharlan)rex_dir: delete führte zu Warnings, wenn während des rekursiven Löschens bereits von anderen Prozessen wieder neue Dateien in dem Ordner angelegt wurden (@gharlan)rex_var: toArray ging teils nicht korrekt mit Anführungszeichen im Inhalt um (@portux)insert_image: Bei right und bottom hatte der Abstand zum Rand das falsche Vorzeichen (@gharlan)rex_article_slice: getPreviousSlice/getNextSlice lieferten mit $ignoreOfflines teilweise fälschlich null (@gharlan)config.yml und package.yml (für Validierung/Autovervollständigung) (@gharlan)rex_sql_table: Spaltenkommentare können ausgelesen/gesetzt werden (werden auch beim Schema-Dump berücksichtigt) (@staabm)rex_sql_util: Neue Methoden copyTable und copyTableWithData (@tbaddade, @gharlan)rex_user: Neue statische Methoden get, require und fromSql für die Abfrage der Benutzer (@gharlan)rex_fragment: Neue Methode getSubfragment für Abfrage Subfragment, ohne dieses direkt auszugeben (@gharlan)PAGE_NAVIGATION geändert werden (@gharlan)success (grün) werden unterstützt (@danspringer).gitignore erweitert/optimiert (@alexplusde, @schuer)rex_form: Der Language-Support konnte nur genutzt werden, wenn die Tabelle die globalen Felder (updatedate etc.) enthielt (@Sysix)dump()-Ausgabe bei Nutzung von UIKit korrigiert (@skerbis)config.yml war teils falsch (und nicht dynamisch bei eigenen Path-Providern) in den Meldungen (@staabm)rex_install mit PHP-Api zum Herunterladen/Aktualisieren von Addons (@bloep)mirror: Opazität der Spiegelung kann gesetzt werden (@lexplatt)rex_media_manager::create() funktionierte nicht korrekt, wenn der Mediatype den Effekt mediapath beinhaltete (@gharlan)MEDIA_ADD, über den neue Medien vor dem Speichern weiter validiert werden können (@portux)media[sync] um den Zugriff auf die Sync-Page explizit steuern zu können (@skerbis)publishSlice[] für den Slice-Status (@tbaddade)rex_category/rex_article: Neue Methoden getClosest und getClosestValue für Abfragen vom Element ausgehend den ParentTree aufwärts, sowie isOnlineIncludingParents (@gharlan)rex_article_slice: neue isOnline-Methode, und $ignoreOfflines-Parameter bei einigen Methoden (@DanielWeitenauer)rex_template/rex_module: Abfrage der Keys wird gecacht (@gharlan)module_select.php: Module-Key wird mit übergeben (@skerbis)package.yml oder darin keine version enthielt (@gharlan)rex_sql_table:
rex_sql: Bei einer Exception in setDBQuery wurde die DB-ID nicht auf die Ursprungs-ID zurückgesetzt (@staabm)rex_file: bei copy kam es zu einer Warnung, wenn man nicht der Fileowner der Datei ist (@gharlan)user:create: Die angelegten User konnten sich nicht einloggen (@staabm, @bloep)convert2img: Wenn die PHP-Extension imagick installiert ist, dann wurde die Density nicht berücksichtigt und CMYK-PDFs wurden nicht korrekt in RGB umgewandelt (@lexplatt, @gharlan)data-foo) wurden teils ignoriert (@gharlan)USER_UPDATED: Parameter id war immer 0 (@gharlan)package.yml unter default_config die Default-Werte für rex_config hinterlegen (@gharlan)rex_version:
isUnstable zum Prüfen, ob eine Version eine Entwicklungsversion ("beta" etc.) ist (@staabm)rex_string::versionSplit -> rex_version::splitrex_string::versionCompare -> rex_version::comparerex::getVersionHash -> rex_version::gitHashrex_string: Neue Methode sanitizeHtml, um HTML aus unsicherer Quelle gegen XSS zu schützen (@gharlan)rex_response: Neue Methode sendJson (@staabm)rex_file:
rex_package/addon/plugin: Neue Methode require, die wie get das Package-Objekt liefert, aber eine Exception wirft, wenn das Package nicht vorhanden ist (@gharlan)title-Attribut mit Erläuterungstext (@staabm)php.ini-Einstellung html_errors wird immer deaktiviert, um HTML-Markup in Whoops und im Log zu vermeiden (@gharlan)rex_sql: In der Debug-Ausgabe wurden in fullquery nicht immer die Parameter ersetzt (@gharlan)package:*-Commands waren Addons, die gerade erst in den Addonordner gelegt wurden, nicht direkt verfügbar (@bloep)rex_config hat seit einigen Versionen keine id-Spalte mehr, bei manchen war diese aber trotzdem noch vorhanden und führte zu Problemen beim Update (@gharlan)NULL-Werte wurden nicht als solche exportiert, was zu Problemen bei den neuen Template-Keys führte (@gharlan)bootstrap-select.min.js.map fehlte (@gharlan)convert2img:
rex_media_manager::getUrl hat im Backend eine URL mit der Backend-index.php geliefert, was teils zu langsamen Backend-Seitenaufrufen führte (Session-Locks) (@gharlan)MEDIA_CATEGORY_ADDED, MEDIA_CATEGORY_UPDATED und MEDIA_CATEGORY_DELETED (@staabm)MEDIA_ADDED/MEDIA_UPDATED: Parameter category_id wird übergeben (@staabm)rex_file::mimeType() (@gharlan)REX_TEMPLATE_KEY-Platzhalter für Templates/Module hinzugefügt (@staabm)REX_MODULE_KEY-Platzhalter) (@alexplusde, @staabm)rex_article_slice-Tabelle umsortiert (article_id und module_id weiter nach vorne) (@gharlan)REX_MODULE_ID/REX_SLICE_ID wurden erst nach den richtigen Rex-Vars wie REX_VALUE[X] ersetzt, dadurch konnten sie nicht nicht als Argumente innerhalb der Vars genutzt werden und wurden auch im eigentlichen Inhalt der Values ersetzt (@gharlan)rex_category/rex_article: Methoden wie getId, getParentId etc. lieferten die Zahl als String statt als Integer (@gharlan)redaxo/data/log (rex_path::log(); Pfad kann über Pathprovider geändert werden) (@gharlan)setup:run auch in der Console durchgeführt werden (@bloep)rex_sql_table verwendet für bessere Teilkorrekturen der DB (@tbaddade)editor_basepath der Basispfad für die Editor-URLs geändert werden (nützlich für Docker) (@bloep)var und class übergeben (@gharlan)rex_sql:
rex_sql_table:
rex_sql_schema_dumper: Bei entsprechener Spalten-Kombi wird Shortcut ensureGlobalColumns genutzt (@gharlan)core/page/section: Attribute können übergeben werden (@tbaddade)rex_htaccess_check statt htaccess_check (@alexplusde)rex_sql: Bei ->setWhere(['name' => 'a'])->setValue('name', 'b') wurde fälschlich der Wert aus WHERE auch für SET verwendet (@gharlan)rex_sql_table: Beim Setzen von Primary Keys für Tabellen, die bisher keinen hatten, kam es zu einem Fehler (@gharlan)rex_list warf mit PHP 7.4 Notices "Trying to access array offset on value of type null" (@gharlan)rex_socket: Es kam teilweise zur Warnung "Undefined variable: errno" (@staabm)rex_config: Wenn während eines Requests removeNamespace() und danach set() für den selben Namespace aufgerufen wurde, kam es zu einem Fehler (@bloep)rex_api_function: Statische Methode hasMessage warf einen Fehler, wenn keine Api-Func aufgerufen wurde (@gharlan)rex_log_file: Pipe-Zeichen "|" konnte nicht in der Log-Message verwendet werden (@gharlan)user:create warf einen Fehler (@bloep)db:set-connection konnte nur verwendet werden, wenn schon eine gültige DB-Verbindung hinterlegt war (@bloep)db:set-connection hat fälschlich für nicht gesetzte Optionen deren Wert mit null gesetzt (@bloep)package:install: Installation von Plugins von nicht aktivierten Addons wurde nicht unterbunden (@bloep)rex_sql_table verwendet (@tbaddade)optimize_tables:
convert2img: Funktioniert nun auch ohne exec()-Rechte, wenn die PHP-Extension imagick installiert ist (@iceman-fx, @gharlan)rotate: Transparenz wurde nicht erhalten (@gharlan)rex_sql_table verwendet (@tbaddade)mime_content_type() bestimmte Typ genommen (@bloep)rex_media: Bei hasValue konnte im Gegensatz zu getValue nicht der med_-Präfix für die Metainfos weggelassen werden (@bloep)rex_media_category: Wenn bei getChildren/getMedia ein leere Liste herauskam, wurde unnötig der Cache erneuert (@gharlan)rex_sql_table verwendet (@tbaddade)addCategory[], editCategory[], deleteCategory[], addArticle[], editArticle[], deleteArticle[] (@gharlan)REX_TEMPLATE[key=my_key]) (@tbaddade)rex_navigation:
rex_template_select für die Template-Auswahl (@DanielWeitenauer)rex_content_service::addSlice (@omphteliba, @gharlan)ART_CONTENT_UPDATED bei jeglichen Content-Änderungen (@gharlan)data-article-id="X" für Artikelspezifische Anpassungen (@skerbis)module_select.php für einfachere Anpassung (@tbaddade)rex_structure_context (@DanielWeitenauer)rex_category_select unsortiert ausgegeben (@gharlan)rex_category: Wenn bei getChildren/getArticles ein leere Liste herauskam, wurde unnötig der Cache erneuert (@gharlan)rex_article_content: Bei hasValue konnte im Gegensatz zu getValue nicht der art_-Präfix für die Metainfos weggelassen werden (@bloep)rex_sql_table verwendet (@tbaddade)How can I help you explore Laravel packages today?