Joomla 1.6, Beez und der Stand der Dinge

Geschrieben von: Angie Radtke in Ungetagged  am  

English Version

Schon länger wartet die Community auf das neue Release von Joomla 1.6.
Besonders die neu implementierte Userverwaltung als auch das neue Kategoriensystem wird mit Spannung erwartet. Neben diesen technischen Neuerungen wird sich aber auch noch einiges andere ändern. Das Backend wurde ein wenig redesigned, neue Module entwickelt und der HTML-Output auf den neuesten Stand der Technik gebracht.

Meine Aufgabe war und ist hier die Implementierung standardkonformen Html-Codes und die Gestaltung des Beez - Templates.

Von Layouttabellen haben wir uns entgültig verabschiedet - auch bei den Modulen. Der HTML-Output orientiert sich von der Struktur her an dem des alten Beez -Templates. Die CSS-Klassennamen wurden auf Grund der besseren Verständlichkeit umbenannt und vereinheitlicht.

Für Templatedesigner bietet dies einen gewaltigen Vorteil. Der Joomla Standard-HTML-Output an sich ist sauber und wohl geformt. Das Nutzen der sogenannten template-overrides ist nicht mehr zwingend erforderlich, um sauberen, standardkonformen Code zu generieren.

Auf dieser Basis ist das neue Beez- Template entstanden. Der folgende Text soll nur einen kurzen Überblick, über den aktuellen Entwicklungsstand gegen und ist definitiv keine vollständige Dokumentation.

Wer besonders neugierig ist kann sich den aktuellen Stand auf http://test5.run-digital.com ansehen.

Die wichtigsten Beez – Features im Überblick

  • konfigurierbarer Output XHTML und HTML5
  • Barrierefreiheit
  • wählbar zwischen 2 Gestaltungen: Natur oder Personal
  • Position der Navigationspalte konfigurierbar
  • automatische Darstellung der Module in barrierefreien Tabs
  • Ein- und ausblendbare Module
  • Ein- und ausblendbare Spalte

XHTML versus Html 5

Das Web bewegt sich in großen Schritten auf HTML5 zu. Die Gruppe um Ian Hickson hat in den letzen Monaten große Fortschritte gemacht und den Browserherstellern bleibt nichts anders übrig als sich ganz gewaltig zu beeilen, um nicht den Anschluss zu verpassen.
In meinem Blog habe ich ja schon öfters über dieses Thema berichtet  und erläutert was schon jetzt problemlos möglich ist.

Die Voreinstellung für den Output in der 1. 6 wird aber nach wie vor XHTML sein. Der Grund dafür ist, dass es sich dabei, um die aktuell am häufigsten verwendete und bestbekannteste Markup- Sprache handelt. Möchte man jedoch HTML 5 verwenden, lässt sich dies einfach durch die Beez- Template-Parametern einfach konfigurieren. Das Umstellen führt dazu, dass die sogenannten Tempalte-Overwrites in Kraft treten und der templateinterne Output, in diesen Fall der HTML 5 Code, ausgegeben wird.


HTML Version


Barrierefreiheit

Wie schon von der Beez in 1.5 bekannt sind auch in Beez 2.0 all die Dinge implementiert, die für die Gestaltung eines barrierefreien Templates notwendig sind

  • Farbkontraste
  • Sprungmarken
  • Semantik
  • Tastaurnavigierbarkeit
  • etc.

Gestaltung wählbar

Im Backend kann man zwischen zwei Gestaltungen wählen. Natur und Personal.


Konfiguration: Gestaltung


Gestaltungsvarianten


Diese Funktionalität wird durch eine entsprechende Strukturierung der CSS-Files ermöglicht:
Die position.css und die layout.css sind für die allgemeine Positionierung und die Abstände  verantwortlich, während je nach Style-Auswahl  die personal.css / natur.css  für die Gestaltung zuständig sind. Diese Style-Vorlagen sind weiterhin beliebig modifizierbar und können von Template-Entwicklern auch um zusätzliche Vorlagen ergänzt werden.

Position der Navigationspalte

Je nach Websitekonzept kann es notwendig werden die Navigation vor oder nach dem eigentlichen Inhalt zu positionieren. Die kann entweder aus Gründen der Gestaltung oder auch zur Verbesserung der Suchmaschinenfreundlichkeit und Zugänglichkeit erforderlich sein. Hier bietet Beez die Möglichkeit in beiden Styles zwischen beiden Varianten einfach im Backend zu wählen.


Position der Navigationsspalte


Navigationsspalte vor dem Content


Barrierefreie Tabs

Die Darstellung der Inhalte in sogenannten Tabs wird immer beliebter. Schon jetzt gibt es für Joomla die unterschiedlichsten  Module, die Joomla um diese Funktionalität erweitern.

Keines der angeboten Module erfüllt nur annähernd die Anforderungen der Barrierefreiheit.
Die in Beez integrierte Lösung greift auf die Wai-Aria-Techniken zurück, um die Zugänglichkeit zu gewährleisten. Wai-Aria ist eine Technik mit der sich Rollen, Zustände und Eigenschaften von Bereichen beschreiben lassen um sie zugänglich für Menschen mit assistiver Technologie zu machen. Auf den ersten Blick ist davon im Quellcode nichts zu sehen. Dies liegt daran, dass der notwendige Code zur Laufzeit in das Dom der Seite eingefügt wird. Wer den Firebug zur Hand hat kann sich ja einmal den Spaß machen zu schauen, was da genau in den Quellcode geschrieben wird. Wai-Aria wird unter anderem auch dazu genutzt  die Seitebereiche nach Funktionalität auszuzeichnen.

Implementierung  innerhalb des Templates

Um Joomla! - Module innerhalb von Beez in Tabs darstellen zu können, braucht man keine zusätzliche Erweiterung. Beez bringt diese Funktionalität von Hause aus mit.
Den meisten Joomla- Entwicklern dürfte die Template - Funktion

<jdoc include ....  > bekannt sein.

Mit dieser Funktion lassen sich dynamische Inhalte innerhalb des Templates einfügen. Dies können sowohl Module als auch Komponenten sein.
Der folgende Code führt innerhalb von Beez dazu, dass alle Module, die sich auf der Position position-5 befinden automatisch in Tabs dargestellt werden.

<jdoc:include type="modules" name="position-5" style="beezTabs" headerLevel="2"  id="3" />

Das Entscheidende ist die Angabe "BeezTabs" hinter dem sogenanntem style- Attribut,das für die Ausgabe der Inhalte verantwortlich ist und die entsprechende Funktion in beez/html/modules.php  ausführt. Die ID ist besonders wichtig. Sollte man mehr als einen Tabbereich pro Seite definieren wollen, ist für jeden dieser Bereiche eine eigene "id" zu vergeben. Dabei ist darauf zu achten, dass es sich hierbei nicht um einen string, sondern tatsächlich um eine Zahl handelt.

Ausblendbare Module und Seitenbereiche

Das Ein- und Ausblenden bestimmter Seitenbereiche kann für den Nutzer, gerade bei Seiten mit sehr viel Inhalt, durchaus hilfreich sein, um einen besseren Überblick zu bekommen. Beez bietet hier 2 verschiedene Möglichkeiten an. Zum einen lässt sich die Spalte mit den zusätzlichen Information zur Gänze ein- und ausblenden, zum anderen lassen sich die Module bis auf ihre Überschriften ein- und ausklappen. Auch hier setzte ich auf  Wai-Aria und die schon oben beschriebene Technik

Das Ein- und Ausblenden der Informationspalte erfolgt templategesteuert.

<div id="close">
<a href="#" onclick="auf('right')">
<span id="bild">
<?php echo JText::_('TEXTRIGHTOPEN'); ?>
</span>
</a>
</div>

Ausblendbare Module

<jdoc:include type="modules" name="position-8" style="beezHide" headerLevel="3" state="0" />

Der hier verwendete Style spricht eine Funktion an, die dem Nutzer ermöglicht den Inhalt der ausgewählten Module auzublenden.
Das Attribute "state" legt fest, wie das oder die Module beim Ersten Öffnen der Seite dargestellt werden.
Wählt man state=“1“ ist das Module beim ersten Laden geöffnet und kann durch den  Benutzer zugeklappt werden. ( und natürlich wieder eingeklappt)

Bei state="0" bleibt es zunächst, bis auf die Überschrift, unsichtbar und kann vom User geöffnet werden.

Das der aktuelle Status in einen Cookie geschrieben wird und seitenübergreifend funktioniert, versteht sich ganz von selbst .-)


Artikelinformationen

Kommentare

Bin nun gespannt

geschrieben von Roland , März 30, 2010

Ich habe nicht alles verstanden, aber soviel, dass es scheinbar ein Schritt in eine neue Dimension ist.
Seit geraumer Zeit hadere ich mit mir, ob ich, wenn es soweit ist, auf Joomla 1.6 updaten soll, oder ich anfange, mich nach anderen CMS umzusehen.
Doch liest man sowas, wird man hungrig auf das neue Joomla mit einem Template, das selbst einem Hobbyseitenersteller das Wasser im Munde zusammen laufen lässt.



h2 immer semantisch sinnvoll?

geschrieben von Informationsdesigner , März 31, 2010

Nice, well done. Dazu ein paar Gedanken, die mir in letzter Zeit immer öfter durch den Kopf gegangen sind: Macht es wirklich Sinn, versteckte Zwischenüberschriften, die überwiegend der Barrierefreiheit dienen, als h2 zu deklarieren (mainnavigation, content etc.)? Ich sehe in letzter Zeit immer häufiger den Aufbau h1>Seitenname+Logo, h2>Schnellnavigation+Suche, h2>Inhalt, h2>ZusätzlicheInfos - wobei sich unter h2>Inhalt dann entweder eine h3 oder schlimmer oft eine zweite h1 mit der eigentlichen Artikelüberschrift befindet... Barrierefreiheit schön, gut und wichtig, aber bleibt bei dieser Dokumentenstruktur die Semantik nicht auf der Strecke? Solche Strukturen sind doch der Grund, dass selbst Suchgiganten Überschriften zweiten und dritten Grades inzwischen höher bewerten, als h1 - dabei das ist doch irgendwie am Ziel vorbeigeschossen?! Warum sollte der Websitetitel bzw. das Logo immer die h1 sein, wenn doch das Hauptaugenmerk auf dem Artikeltext liegt (z.B. bei dieser Seite "Joomla 1.6, Beez und der Stand der Dinge")??? Wenn mehrere h1 auf der Seite vorkommen, woher sollen (semantische) Suchmaschinen (Gruß aus der Zukunft ;) wissen, dass 'zusätzliche Infos' eigentlich zur ersten h1 gehört, weil danach alle h2s kommen, die den Dokumentaufbau beschreiben?? Kompliziert, ich versteh mich selber nicht so genau, aber irgendwas kommt mir da unlogisch vor... :-) Soll keine Kritik sein, Feedback willkommen!


AW: h2 immer semantisch sinnvoll?

geschrieben von Informationsdesigner , März 31, 2010

Passend zu meinen Überlegungen bin ich auf folgende Seite gestoßen: http://www.vorsprungdurchwebst...nzusetzen/ Es gibt also schon 'role'-Attribute, die genau dazu gedacht sind... es tut sich also auch in der Hinsicht was, meine Überlegungen waren nicht ganz daneben.



Kommentar schreiben


Grösse des Textfeldes: kleiner | groesser











busy