Änderungen gegenüber der Version 3.x

Die, die immer behauptet hatten, dass REDAXO 3.3 nie fertig würde, behielten Recht. Das neue REDAXO hat nun die Versionsnummer 4.0 bekommen. Der Grund: Der Systemkern wurde grundlegend entschlackt und zahlreiche neue Schnittstellen geschaffen, um das Content Management System noch flexibler erweitern zu können. Durch die stärkere Modularisierung und die zahlreichen neuen Variablen bietet REDAXO 4.0 nun wirklich völlig neue Möglichkeiten.

Barrierearmes CSS-Backend
Das Backend verzichtet auf Layout-Tabellen und wurde auf modernen XHTML/CSS-Quellcode umgestellt. Das ermöglicht es nicht nur, dem Administrationsbereich ein komplett anderes Aussehen zu geben und damit eigene Skins zu entwickeln. Viel wichtiger noch: Das Backend ist barrierearm gestaltet; sogar Accesskeys zum Aufruf der wichtigsten Befehle sind nun vorhanden.

Weitere Schnittstellen für mehr Flexibilität
Um in REDAXO mehr Schnittstellen zum Eingriff in Backend zu schaffen, wurde der REDAXO-Kern stark modularisiert. Mit zahlreichen weiteren Extension-Points kann man das Backend noch individueller konfigurieren. Außerdem wurde die Zahl der REX_VALUES auf 20 erhöht, und es stehen nun weitere Variablen wie u.a. REX_SLICE_ID, REX_MODULE_ID oder REX_CTYPE_ID zur Verfügung.

Meta-Infos
Aus dem Kern ausgelagert wurden nicht nur die PHP-Mailer-Funktionalität und der WYSIWYG-Editor TinyMCE sowie der Textile-Editor, sondern auch die stark erweiterte Steuerung der Meta-Infos. Mit REDAXO 4.0 kann man nun sowohl Artikel und Kategorien als auch die Dateien im Medienpool um Meta-Info-Felder beliebig erweitern.

Spalten
Spalten (oder allgemeiner: Inhaltsbereiche, die individuell voneinander befüllt werden sollen) können nun für jedes Template individuell definiert werden. Je nach zugewiesenem Template erhält dann der Redakteur bei der Arbeit an einer Seite Zugriff auf eine oder eben mehrere Spalten.

Medienpool
Auch der Medienpool wurde stark überarbeitet. Per FTP hochgeladene Dateien können synchronisiert und in dadurch in die Datenbank aufgenommen werden. Die Image-Resize-Funktion kann nun auch u.a. das Bild beschneiden, Farb- und Scharfzeichnungsfilter anwenden oder Logos für Brandingzwecke in das Bild einrechnen.

Wichtige Änderungen:

  • Templateaufrufe nur noch über REX_TEMPLATE1, nicht mehr include(…'2.template') [jan]
  • Min. PHPVersion auf PHP4.3.2 angehoben, aus Sicherheitsgründen! [kills]
  • Tabelle rex_modultyp in rex_module umbenannt! [kills]
  • TinyMCE entfernt und als Addon wieder eingebaut [kills]
  • PHPMailer entfernt und als Addon wieder eingebaut [kills]
  • Metafelder entfernt und als Addon wieder eingebaut [kills]
  • $ REX['INCLUDE_PATH'], $ REX['MEDIAFOLDER'] sind jetzt absolute Pfade! [kills, jan]

Änderungen im Detail:

  • CLANG/CTYPE/MetaInfo wird via I18N->msg aufgerufen, wenn “translate:” als prefix gesetzt ist (rex_translate) [kills]
  • Templates/Artikel on the fly. Werden beim Aufruf generiert [jan]
  • Neue Ordnerstruktur, Dateien entsprechend angepasst [tab]
  • Accesskeys via Rechte aktivierbar [kills]
  • Accesskey eingeführt [tab] – $REX['ACKEY']['SAVE'] = 's'; – $REX['ACKEY']['APPLY'] = 'x'; – $REX['ACKEY']['DELETE'] = 'd'; – $REX['ACKEY']['ADD'] = 'a'; – $REX['ACKEY']['ADD_2'] = 'y'; – $REX['ACKEY']['LOGOUT'] = 'l'; – sowie die Zahlen 1-7 für die Standardseiten
  • Creditseite eingeführt [jan]
  • MINI API – rex_medienpool_saveMedia($_FILES['file'], $cat_id, array(“title”=“Bild”), “system”) in function_rex_generate aufgenommen [jan]
  • Artikel muss nun ein Template haben um ausgegeben zu werden. [jan]
  • CTypes aufbereitet [kills,jan] – Ctypes in Templates verwaltbar. ctypes.inc.php entfernt. – Sind nun abhängig von einzelnen Templates
  • Metadaten – Teaser und Type (sowie Verwaltung) entfernt. Wird in der neuen Version als AddON abgedeckt OOArticle.searchArticlesByType entfernt [kills,jan] – Article sind nun zum Startarticle machbar
  • Umbenennungen – Alte Klassenbezeichnung ab nun NICHT mehr verwenden ! [kills,jan] – Umbenennung – function_rex_modrewrite.inc.php -> function_rex_url.inc.php [kills,jan] * neue Compatibilitäts Bibliothek [kills,jan] – Alte Klassenbezeichnung ab nun NICHT mehr verwenden ! Klassen: + login -> rex_login + sql -> rex_sql + article -> rex_article Methoden: + sql::query() -> sql::setQuery() + sql::get_array() -> sql::getArray() + sql::resetCounter() -> sql::reset() + sql::nextValue() -> sql::next() + sql::where() > sql::setWhere()
    Attribute:
    + sql
    >select > sql>query Funktionen: + title -> rex_title() + getUrlById -> rex_getUrl()
  • Rückwärtskompatibilität eingeschränkt durch: – Bugfix: OOCategory::getArticles() 1. Parameter $ignore_offlines default-Wert von True auf False geändert [kills] – Bugfix: OOMediaCategory::getRootCategories() 1. Parameter $ignore_offlines entfernt, da es kein status bei Medienkategorien gibt [kills]
  • UrlRewrite: – Backendlink bei rex_getUrl() eingebaut. Wird dann auf EditView verlinkt [kills,jan]
  • phpmailer, smtp, textile klassen rausgenommen – werden als addon gebaut [jan]
  • REX_ACTIONS wieder umgebaut [kills,jan]
  • Backend XHTML [tbaddade, kills]
  • class.rex_login.inc.php – Texte ins Sprachfile verschoben [kills]
  • class.ooarticle.inc.php – clang abfrage korrigiert. “No Name” Fehler korrigiert. [jan] – zusätzlich zu /de/download/changelog/redaxo-40/ ist jetzt auch /de/download/changelog/redaxo-40/- möglich [kills] – setCtype() entfernt -> ctypes werden bei getArticle() als Parameter übergeben
  • class.ooredaxo.inc.php – getParentTree – “normale” Artikel fehlten im zurück gelieferten Array
  • Struktur: – Beim angelegen haben Artikel das gleiche Template wie die Kategorie in der sie sich befinden [kills]
  • Metadaten: – Online von/Online bis entfernt, gibts für r33 als Addon [kills]
  • rexExtensionPoint API: – rex_call_func mit allgemeineren Fehlermeldungen [kills] – in rex_register_extension können jetzt auch optional Parameter übergeben werden [kills]
  • rexExtensionPoint erstellt: – ART_STATUS_TYPES [kills,jan] – CAT_STATUS_TYPES [kills,jan] – PAGE_TITLE_SHOWN [jan] – ARTICLE_GENERATED, CLANG_ARTICLE_GENERATED [jan] – ART_META_UPDATED,ART_META_FORM [kills] – ART_META_FORM_SECTION [kills] – ART_META_PARAMS [kills] – PAGE_HEADER [kills] – CAT_FORM_ADD, CAT_FORM_EDIT [jan,kills] – CAT_FORM_BUTTONS [kills] – ART_SLICE_MENU [kills]
  • rexVars API implementiert (Modularisiert) [jan,kills] – neue rexVars: + REX_MODULE_ID [jan,kills] + REX_SLICE_ID [jan,kills] + REX_CTYPE_ID [jan,kills] + 1 [jan,kills] + 1, admin [jan,kills] + REX_TEMPLATE[x] [kills] + REX_ARTICLE[x] [kills] + REX_ARTICLE_VAR[x] [kills] – jetzt mit Syntax-Highlighting im Backend mit PHP >= 4.2.0 [kills] – Neue Variablen Syntax jetzt möglich (alte funktioniert weiter), z.b: [kills] + REX_VALUE[id=3] +

    4“ value=”“ id=“REX_MEDIA_4” readonly=“readonly” />

    Medium auswählen Neues Medium hinzufügen Ausgewähltes Medium löschen

  • Sql-Klasse:
    - fallback auf mysql_connect, falls mysql_pconnect nicht verüfgbar ist [kills] – add_sql_options implementiert [kills] – link identifier eingebaut um auch mehrere DB-Verbindungen handeln zu können [kills] – sql::replace() implementiert für REPLACE INTO SQLs [kills] – Wenn $sql->debugsql = 2 steht, wird nur dann eine Debugmeldung ausgeben, wenn ein Fehler aufgetreten ist [kills] – Alle Funktionen verwenden jetzt intern die setQuery() funktion [kills] – getRows() liefert jetzt auch bei INSERTs/UPDATEs die betroffenen Zeilenzahl [kills] – getServerVersion() implementiert [kills] – insert(),update() => Spaltennamen werden nun von ` Umschlossen, damit dort auch Sonderzeichen vorkommen dürfen [kills]
  • Medienpool: – Synchronisation zwischen DB und /files implementiert [kills] – Synchronisation jetzt auch auf Selection möglich [kills]
  • Sprachen: – Übersetzungen aktualisiert [jurand,jan]
  • $REX['TEMP_PREFIX'] implementiert (Für Dateien und Tabellen) [kills] – Dateien mit diesem Prefix werden … + .. NICHT vom Import/Export-Addon exportiert + .. NICHT vom Medienpool Sync Tool als neue registriert – Tabellen mit diesem Prefix werden … (-> TABLE_PREFIX + TEMP_PREFIX!) + .. NICHT vom Import/Export-Addon exportiert
  • rexGlobales API implementiert [kills] – Ab sofort nur noch mit rex_get(), rex_post(), .. arbeiten!
  • OOF: – OOMedia::toImage -> title Attribut bekommt nun den MediaTitle zugewiesen und nicht mehr die Description [tab]
  • Internes Handling: – Default Systemvariablen werden alle in der master.inc.php gesetzt [kills] – Addon werden erst nach setzen aller Default-Werte eingebunden [kills] – generateTemplate() implementiert [kills] – Die Startpage ist jetzt via $REX['START_PAGE'] einstellbar [kills]
  • Neue Klassen: – rex_template [kills]
  • BUGFIXES: – ' Zeichen jetzt in Artikel/Kategorienamen möglich [kills] – Artikel anlegen: Kategoriename wird jetzt richtig upgedated [kills] – Kategorie bearbeiten: Kategoriename bei Artikeln wird jetzt richtig upgedated [kills] – Startartikel wurden immer online angezeigt [kills] – Slices verschieben – http://forum.redaxo.de/ftopic4560.html [jan]
  • Addons: [kills] – Installation: wenn eine install.sql im Addon verzeichnis liegt, wird diese beim Addon installieren importiert – De-Installation: wenn eine uninstall.sql im Addon verzeichnis liegt, wird diese beim Addon de-installieren importiert – Creditinformationen: $REX['ADDON']['supportpage'][$mypage], $REX['ADDON']['author'][$mypage], $REX['ADDON']['version'][$mypage]
  • REDAXO Standard-Pages können auf folgende Arten durch ein Addon ersetzt werden [kills] – Addon trägt den Namen der Page + install/aktiviert + Beispiel: include/addons/content/* => Aufruf: include/addons/content/pages/index.inc.php – Addon trägt beliebigen Namen und definiert $REX['ADDON']['page'][$mypage] = ''; der Page + install/aktiviert + Beispiel: $REX['ADDON']['page'][$mypage] = 'content'; => Aufruf: include/addons/$mypage/pages/content.inc.php
  • Image-Resize-Addon: – Resize Script jetzt auch über die Backend index.php aufrufbar [kills]
  • Import-Export-Addon: – rexExtensionPoint erstellt: [kills] A1_BEFORE_DB_IMPORT, A1_AFTER_DB_IMPORT A1_BEFORE_DB_EXPORT, A1_AFTER_DB_EXPORT A1_BEFORE_FILE_IMPORT, A1_AFTER_FILE_IMPORT A1_BEFORE_FILE_EXPORT, A1_AFTER_FILE_EXPORT