Forum

Forum feed

Zikula Nachrichten

RSS Feed

Zikula 1.2.0 Core - Usability und Features

Die neue Zikula Version 1.2.0 ist fertig und steht als reines Core-Release zum Download bereit. Wie man dem Meilenstein 1.2.0 und der folgenden Liste entnehmen kann, wurden etliche Fehler behoben und viele Features integriert:

  • Gettext-Unterstützung: Module und Themes können nun weiterhin das alte "Define" basierte Sprachsystem nutzen oder die neue Gettext-Methode. Beide Varianten können nicht gleichzeitig genutzt werden. Wenn vom Core das Verzeichnis /locale gefunden werden, so wird die Gettext-Funktionalität genutzt und es wird nicht weiter nach "Defines" gesucht. Das bisherige Übersetzungverfahren kann somit ad acta gelegt werden. Zwar ist es jetzt anders, aber definitiv einfacher, zentraler und schneller. (Siehe dazu auch int. Wiki)

  • Gute Beispiele für Gettext-Module sind 'legal' oder 'Ephemerids'. Eines der Systemmodule sollte nicht aus Ausgansbasis genutzt werden, da diese anders arbeiten und die Sprachdomäne des Cores nutzen.
    Sprachen für den Core müssen im Verzeichnis /locale/$lang installiert sein und müssen die Datei locale.ini beinhalten. Ältere Sprachpakete werden geladen, wenn keine entsprechende Datei vorhanden ist.
  • Neue Sprachcodes: Zikula nutzt nun kurze Sprachcodes ("DE" anstatt "DEU") und unterstützt nun auch Sprachvarianten, wie beispielsweise "en_GB" und "en_US".
  • UTF8 Codierung: Ein weiterer Schwerpunkt des Releases ist die Umstellung auf den UTF8-Zeichensatz. Beim Upgrade werden sämtliche Datenbankinhalte in UTF8 konvertiert, so dass man sich hierüber keine Gedanken machen muss. Ein kleiner Nachteil für uns Deutsche: Die Umlaute aus deutschen Sprachpaketen älterer Module können fehlerhaft angezeigt werden. Dies kann man entweder dadurch umgehen, dass man a) die Sprachdateien manuell konvertiert, b) sich ein evtl. aktualisiertes Sprachpaket besorgt (siehe SVN Community-German) oder vorzugsweise direkt auf eine Gettext-Version umsteigt. Die bekannten ehemaligen ValueAddon-Module News, Pages, Reviews, Quotes, Feeds usw. stehen schon als eingedeutschte Gettext-Version zur Verfügung. Dizkus, Intercom, etc. folgen in Kürze.
  • Neue deutsche Übersetzung: Vor- und Nachteil des neuen Sprachsystems war die erneute Übersetzung des Cores inkl. der Zusatzmodule. Dieser Vorgang wurde im Laufe der Entwicklung bereits mehrfach wiederholt und mittlerweile hat sich ein recht stabiles deutsches Sprachpaket entwickelt. Es hat einige grundlegende Änderungen gegeben. Besonders bei den Anzeigenamen der Modul dürfte es zuerst auffallen.
  • Vollständige Überarbeitung der Oberfläche: Hierbei wurde großer Wert auf die Benutzerfreundlichkeit und Bedienbarkeit gelegt.
  • Überarbeitung des Admin-Panels: Der Adminbereich wurde umgestaltet und um die Anzeige der Modulbeschreibung, sowie ein Kontextmenü zu den Adminfunktionen eines Moduls ergänzt. In den Moduleinstellungen kann auch auf ein Alternativlayout zurückgeschwenkt werden.
  • Bereinigung und Erweiterung der globalen CSS-Klassen: Die CSS Klassen wurden umbenannt und nutzen nun das Präfix "z-". Die alten "pn-" Klassen funktionieren jedoch weiterhin. Außerdem wurde für Formulare ein neuer Satz an Definitionen vorgegeben names "z-form". Entwickler sollten einfach einen Blick in die Datei javascript\style.css werfen.
  • CSS/JS Echtzeitoptimierungen:
  • Zusammfassung aller CSS-Dateien in eine Datei
  • Zusammfassung aller Javascript-Dateien in eine Datei
  • Minify JS und CSS
  • Erzwingen der GZ-Komprimierung für JS- und CSS Dateien
  • Header-Cache Steuerung
  • Verbesserter Workflow bei Modulinstallationen: Der neue Prozess sieht wie folgt aus:
  • Nicht initialisiert->Aktiv->Inativ->Entfernen
  • Inaktiv->Aktiv
  • Upgrade->Aktiv->Inaktiv->Entfernen
  • Neues Layout beim Installations- und Upgradeskript
  • Neues vereinfachtes Upgradeskript: Es werden alle Aktionen für ein Upgrade durchgeführt. Es müssen kaum noch Schritte manuell durchgeführt werden. Das Skript konvertiert alle MySQL-Installationen automatisch ins UTF8-Format.
  • Multilingualität:
  • Die Mehrsprachigkeit kann aktiviert und deaktiviert werden
  • Der lang-Parameter kann nun bei Bedarf oder immer an eine URL angehangen werden
  • Sprachvarianten, wie "en_GB" und "en_US", können aktiviert und deaktiviert werden
  • Standardsprache der Webseite ist auswählbar
  • Die automatische Erkennung der Browsersprache wurde optimiert
  • Der Anzeigename eines Moduls wird zukünftig nicht mehr für die URLs genutzt: Die Variable $modversion['displayname'] wird um $modversion['url'] erweitert. Somit besteht ein Modul nun quasi aus dem internen Modulnamen (Blocks), den Anzeigenamen (Blockverwaltung) und der Modul-URL (blocks). Dies hat den Vorteil, dass nun ausführlichere Namen für die Administration angezeigt werden können, die vorher in einer URL nicht oder nur schlecht genutzt werden können (z.B. bei Umlauten oder Leerzeichen).
  • Wiedereinfügen der Modulinformationen: Wer kennt das nicht? Die Modulverwaltung listet Anzeigenamen und Beschreibungen auf, die aus den Zeiten der Erstinstallation eines Moduls kommen. Oft tauchen dort noch Inhalte auf, die gar nicht mehr zutreffen oder sogar in einer anderen Sprache sind, weil das passende Sprachpaket bei der Installation nicht greifbar war. Da diese Text in der Datenbank und nicht im Sprachpaket gespeichert sind, wurden diese auch nicht automatisch aktualisiert. Mit Zikula 1.2.0 wurden nun Funktionen integriert, die für ein einzelnes Modul oder für alle Module (in der Konfiguration der Modulverwaltung) den vorhandenen Bestand mit dem aktuellen Sprachpaket überschreiben.
  • Neue Icons im Benutzerkonto: Die individuelle Sprachauswahl für einen Benutzer wurde bisher über einen Block umgeschaltet. Nun wurde der Sprachwechsel auch ins Benutzerkonto integriert, wo man diese Funktion auch erwarten würde. Außerdem wurden das Benutzerkonto um die Punkte "Kennwort ändern" und "Mailadresse ändern" erweitert.
  • Erlauben von HTML-Tags: Die Konfiguration der erlaubten HTML-Tags befindet sich jetzt im Sicherheitscenter und nicht mehr in den globalen Einstellungen.
  • Reines Core-Release: Zikula 1.2.0 ist die erste Version, die komplett ohne ValueAddons ausgeliefert wird. So wurden diesmal noch mehr Zusatzmodule in das "Parked"-Projekt ausgelagert: AuthLDAP, blank, FAQ, Feeds, MultiSites (legacy), Pages, PendingContent, Ratings, Recommend_Us, Reviews, Sniffer und Thumbnail.
  • Das Upgradeskript migriert die Daten aus den Blöcken und der Kategorieverwaltung in neuen zweistelligen Sprachcodes. Beispielcode kann aus den Datei pninit.php der entsprechenden Module entnommen werden.
  • Überarbeitung und Fehlerbehebung im SeaBreeze Theme: Im Theme wurde ein Javaskript verwendet, dass gleich hohe Spalten erzeugen soll. Jedoch gab es hier einige Inkompatibilitäten mit diversen Ajax-Anwendungen. Das Theme wurde umstrukturiert und nutzt nun reines CSS (Technik: Liquid Faux Column).
  • Automatische Updatebenachrichtigung im Admin-Panel, wenn eine neue Core-Version vorliegt.
  • Im Benutzermodul wurde eine API eingeführt, um mit den dynamischen Benutzerattribute aus den Profilmodulen umzugehen (siehe system/Users/pndocs).
  • Das Profilmodul wurde entsprechend angepasst, so dass es mit der neuen Schnittstelle des Benutzermoduls zusammenarbeiten kann.
  • Das Modul 'legal' (Rechtliches) wurde ins Modulverzeichnis verschoben. Das Modul sollte nicht gelöscht werden. Dieser Wechsel hat nur technische Gründe, die mit der Erweiterungsdatenbank und der Übersetzungsmöglichkeit zusammenhängen.
  • Sämtliche Abhängigkeiten zum Profilmodul wurden vollständig entfernt. Das Modul wird diesmal letztmalig zusammen mit dem Core ausgeliefert, um die Migration der Daten erfolgreich durchführen zu können. So wird vom Upgradeprozess z.B. die notwendige Mailadresse ins das Core-Benutzermodul übertragen.
  • Der Pfad zu den Avatar-Bildern ist nun im Core und nicht über Drittmodule konfigurierbar. Dadurch können zukünftige Module auch mit anderen Verzeichnissen als images/avatar/ umgehen.
  • Der Installationsskript bietet keine - nicht benutzbaren - Module als Startmodul an. Weiterhin kann nun auch "kein Startmodul" ausgewählt werden.
  • Verbesserte Fehlerüberprüfung im Installationsskript (DB-Fehler, mbstring, etc.)
  • Die Nutzung von dynamischen Meta Keywords wurde entfernt. Die Ergebnisse der automatischen Schlüsselwortgenerierung war selten zutreffend auch aus Gründen der Suchmaschinenoptimierung nicht sinnvoll. Außerdem benötigte dieses Feature viel Speicher.
  • Das Modul advMailer wird automatisch als zusätzlicher Mailer eingebunden, wenn es im System vorgefunden wird.
  • Der Core wurde so vorbereitet, dass die neue Version von MultiSites genutzt werden kann.
  • Im 'extmenu' Block werden die Module "Error", "Header_Footer" und "Blöcke" nicht mehr automatisch in der Modulliste angezeigt, da auf diese sowieso nicht direkt zugegriffen werden kann.
  • Neue Klasse ("ZI18n") für die Internationalisierung hinzugefügt, um Zahlen und Währung entsprechend der Ländereinstellungen zu formatieren (siehe auch Blog: "Zikula and i18n").
  • Die Internationalisierungs (i18n)- und Gettextunterstützung ist unabängig vom verwendeten Betriebssystem und der Systemumgebung.
  • Unterstützung für alle Schreibrichtungen: Im Theme sollte über das Plugin <!--[langdirection]--> die Schreibrichtung der ausgewählten Sprache festgelegt werden. So können Inhalte auch von rechts nach links gelesen werden. In der Datei locale/$lang/locale.ini sind die Information zum Sprachsystem vorkonfiguriert.
  • Übersetzungsfunktionen hinzugefügt:
  • ZLanguage::getModuleDomain() übergibt die Translation-Domain für das angegebene Modul.
  • ZLanguage::getThemeDomain() übergibt die Translation-Domain für das angegebene Theme.
  • __() übersetzt eine Zeichenkette.
  • _n() übersetzt eine Plural-Zeichenkette.
  • __f() übersetzt eine Zeichenkette mit sprintf().
  • _fn() übersetzt eine Plural-Zeichenkette mit sprintf().
  • Das Plugin <!--[pndate_format]--> benötigt nicht länger die Angabe von "Defines" (was jedoch aus Gründen der Abwärtskompatibilität weiterhin möglich ist). Bitte nun die folgenden Parameter nutzen: datelong, datebrief, datestring, datestring2, datetimebrief, datetimelong, timebrief, timelong
  • Neue Plugins:
  • <!--[homepage]--> übergibt die aktuelle Startseite des Webseite
  • <!--[langdirection]--> übergibt die Schreibrichtung 'ltr' oder 'rtl'
  • formatcurrency Modifier formatiert eine Zahl anhand der aktiven Währungseinstellung
  • formatnumber Modifier formatiert eine Zahl anhand der aktiven Spracheinstellungen (z.B. Tausendertrennzeichen, etc.)
  • <!--[array_field_pop]-->
  • dataformat modifier
  • <!--[pngetbaseuri]-->
  • <!--[gt]--> übersetzt eine Zeichenkette direkt im Template.
  • <!--[charset]--> übergibt den aktuellen Zeichensatz mittels ZLanguage::getEncoding()
  • <!--[case]-->
  • <!--[checkgroup]-->
  • <!--[switch]-->
  • Folgende "Defines" werden nicht mehr unterstützt:
  • _CHARSET
  • _LOCALE
  • _LOCALEWIN
  • _DATEBRIEF
  • _DATELONG
  • _DATESTRING
  • _DATESTRING2
  • _DATETIMEBRIEF
  • _DATETIMELONG
  • _DATEINPUT
  • _DATETIMEINPUT
  • _TIMEBRIEF
  • _TIMELONG
  • _DATEFIRSTWEEKDAY
  • _TIMEFORMAT
  • ShortURLs können nun auch mit Sprachparametern arbeiten
  • "Zikula.itemlist.js" und "Texpand.js" unter javascript/helpers/ hinzugefügt. Texpand kann für die autom. Größenanpassung von "Textareas" eingesetzt werden.
  • Fehlerbereinigung bei der pninit-Upgradelogik
  • Überarbeitung der Klassen FileUtil, HTMLUtil, ZLanguage, LogUtil, DataUtil, etc.
  • Ein ausführlicheres Changelog ist unter \pndocs\CHANGELOG.txt zu finden

Wichtige Links:


 

Themen


Kommentare

  • Geschrieben am
  • 05. Nov 2009 - 18:51
Super

Den Laufzeiten der internationalen Community-Seite nach zu urteilen, ist die Performance merklich besser geworden. Das liegt nicht nur an den Optimierungen von JS und CSS (die sind dort noch gar nicht aktiviert), sondern an dem Umstieg auf Gettext. So müssen nun viele Dateien mit Language-Defines nicht mehr geladen werden.

Ein klasse Release clap

  • Geschrieben am
  • 05. Nov 2009 - 19:08
Wow!

Ich bin beeindruckt! So viele Neuerungen. clap Nun stehe ich vor der schweren Entscheidung, ob ich die Seite, die ich seit einigen Wochen lokal von .746 auf 1.1.2 gebracht habe, und am Wochenende online schalten wollte, vorher noch auf 1.2.0 umstelle. icon_confused

  • Geschrieben am
  • 05. Nov 2009 - 19:26

Ich würde sagen, dass es ganz auf die verwendeten Module ankommt. Ein Großteil der Module ist zwar läuffähig, wären aber besser im neuen Sprachsystem aufgehoben.

Ganz unabhängig davon wird sich der Ablauf von der Modulkonvertierung, Translation-Portal und extDB noch etwas ändern. Daher ist die extDB gerade im Umbau.

So wird das dt. Sprachpaket zukünftig auch mit Templates (für Module: legal, Tour) & Co. in der extDB vorhanden sein.

Bis dahin halte ich die dt. Fassung noch in unserem eigenen CoZi-Projekt.

Weitere Infos dazu folgen in Kürze.

  • Geschrieben am
  • 05. Nov 2009 - 19:31

Ich glaube ich warte noch ein wenig. Das Update auf 1.1.2 ist schon längst überfällig und ich hab versprochen es am WE online zu laden. Sicher ist sicher icon_wink Trotzdem mal an der Stelle vielen Dank für die viele Zeit, die Ihr in den Core steckt.

  • Geschrieben am
  • 05. Nov 2009 - 20:46

Herzliches Dankschön an alle Core Devs und Tester, die sich um den Release gekümmert haben. Bin gerade an der ersten Testinstalltion und habe herzklopfen icon_smile Gibts eigentlich irgendwo (Wiki de/international) eine Liste mit schon kompatiblen Modulen oder wann mit welchen Modulen zu rechnen ist? Oder kann man bei der Übersetzung helfen? Würde mich da anbieten. Gruß

  • Geschrieben am
  • 05. Nov 2009 - 21:04
Super Arbeit!

Bei mir hat der Test mit RC5 schon gut hingehauen, auch wenn meine eingesetzten Module noch nicht gegetextet wurden.

Übrigens, die utf8-Übersetzung geht ganz prima mit uni2me

  • Geschrieben am
  • 05. Nov 2009 - 23:33
Wow!

Mann, bin ich froh, dass endlich utf-8 als Zeichensatz benutzt wird. Dies ist echt ein großer Schritt gewesen.

Meine erste Testinstallation lief super durch. Jetzt bin ich mal gespannt, wie ich meine ganzen utf-8-Sachen updaten kann ... muss wohl wieder erst zu iso zurück, wie ich befürchte. Ich werde berichten ;)

  • Geschrieben am
  • 06. Nov 2009 - 01:14
Super!!

Mein Dank gilt zunächst allen Entwicklern und dann den Testern.

Ein weiterer Schritt von Zikula, der beweist, dass es voran geht - weiter so!!!

icon_smile

  • Geschrieben am
  • 06. Nov 2009 - 10:35
Kompatibilität

@Mr.Montesa Alle Module, die unter 1.1.2 laufen, sollten auch unter 1.2 laufen. Aber Module, die Gettext oder die anderen neuen Features nutzen, laufen natürlich nicht unter 1.1.2 - Ich habe schon in einer Reihe SVNs gettext-Versionen von Modulen gesehen. Nur veröffentlicht ist bislang soweit ich weiß nur zWebstore.

  • Geschrieben am
  • 06. Nov 2009 - 10:44

Kleine Korrektur: von zWebstore wurde gerade die letzte nicht-gettext basierte Version veroeffentlicht, die also nocht auf 1.1.x laeuft. Eine gettext version gibts in naher Zukunft ...

  • Geschrieben am
  • 06. Nov 2009 - 12:21
Ich bin sprachlos...

....und komplett begeistert icon_eek

  • Geschrieben am
  • 29. Nov 2009 - 08:50
Überfällig

Die nun "offizielle" UTF-8 Unterstützung war aus meiner Sicht längst überfällig. Die aktuelle Version 1.2 macht einem aber auch an vielen anderen Stellen wirklich Freude. Gute Arbeit und vielen Dank an die fleissigen Entwickler.

  • Geschrieben am
  • 29. Nov 2009 - 13:02
Noch mehr

Wenn ich ehrlich bin, hat sich in den letzten Wochen sehr sehr viel rund um Zikula verändert. Ich komme kaum dazu, Artikel über diese Dinge zu schreiben und unter community.zikula.rg fehlen die Inhalte auch noch. Es geht um viele viele Anleitungen, Dokus, Translation-Workflows, Tipps und Tools, die mittels Google Wave fleissig entwickelt werden. Das Problem ist nur, dass IMHO dort der falsche Lagerort für diese Inhalte ist.

Ich werde mal mit den Anderen sprechen, dass wir die Inhalte schnellsmöglichst raushauen. Da sind ganz nett Gimmicks für Entwickler dabei.

  • Geschrieben am
  • 29. Nov 2009 - 19:10
Ja!

Insbesondere Deine Verbesserungen der CSS Klassen in Formularen sind einen Artikel wert, Carsten. Die vereinfachen das Leben ungemein.

Man kann zum Beispiel mit der Zusatzklasse linear ruck zuck ein Formular, das eben noch alle Felder neben den Labels hatte, so verändern, dass die Felder unter den Labels sind.

Und wenn man mal eine Erklärung zu einem Feld einfügen muss, benutzt man einfach

Code

<div class="z-formnote"><!--[gt text='In this field you can...']--></div>

Einen schönen Advent xmas

  • Geschrieben am
  • 05. Dez 2009 - 00:23
Download über extDB

Ich weiß gar nicht, ob das schon bekannt ist: Der Core, die Sprachpakete und die Module können natürlich auch ohne manuellen Nacharbeiten direkt über die extDB heruntergeladen werden. Einfach Modul auswählen, in den "Warenkorb" hinzufügen, Core und Sprache auswählen und fertig. icon_smile

Morgen werden noch kleinere Verbesserungen eingearbeitet, da im Moment die (noch) eigentlichen Pflichtmodule "Profile" und "legal" nicht zwangsmitgeliefert werden. Das war mal, musste aber geändert werden und wird jetzt wieder nachgepflegt.

Hinweis: Auch wenn "legal" im Modulverzeichnis liegt, ist es notwendig und für den Registrierungsvorgang (noch) zwingend erforderlich.

Das nur am Rande icon_smile

Nur angemeldete Benutzer dürfen kommentieren. Registrierung oder Anmeldung.