redaxo/source
REDAXO is an easy-to-learn, multilingual website framework/CMS with custom modules for full control over input and output. Simple yet flexible since 2004, highly extendable and adaptable to your workflow, backed by an active community and solid docs.
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?