Ich bin neu in der Oxid-Welt und versuche mich momentan daran ein bereits vorhandes HTML/CSS Layout in ein Oxid-Theme zu verwandeln… Als Vorlage dient mir das aktuelle Azure Theme.
Ich habe noch nicht ganz verstanden was der Unterschied zwischen den Widgets und der “normalen” Implementierung über einen Block ist. Am Azure-Theme ist mir aufgefallen das beispielsweise im Header-Template (header.tpl) die Spachauswahl mit einem Widget umgesetzt wurde, die Suchbox jedoch als Block.
Daher die Frage an Euch - was ist der Unterschied und wann sollte man ein Widget und wann einen Block erstellen?
schau mal, hier findest Du ganz viele Informationen darüber:
Grob gesagt: Widgets kannst Du in Templates einbinden und oxBlocks für Module benutzen, die Dir an vordefinierte Stellen (z.B. für Zahlungsarten) html-Code aus der Datenbank ins Template schiessen.
widget verhält sich zu einem block wie ein Roboterstaubsauger zu einem Autostaubsauger:
es ist stark aufgemotzert getunter block mit einem eigenen Controller und mehr Möglichkeiten.
Den Autostaubsauger kannst du nur im Auto benutzen und nur so weit sein Kabel reicht. Ein Roboterstaubsauger fährt selbst überall rum und braucht auch keinen Mensch, der ihn steuert.
Ein Block ist an sein Template gebunden und man kann in dem Block nur auf die Funktionen der gegebenen Klasse zugreifen. Der Widget hat wie bereits erwähnt einen eigenen Controller, der die Daten sammelt, verarbeitet und dann einfach nur an der bestimmten Stelle im Template einbinden. So ein Widget kannst du genau wie einen Roboterstaubsauger (fast) überall hinstellen und es wird dann seine Arbeit tun.
Ein Widget wäre auch mit einem iFrame vergleichbar, wenn man es so will. Ein Block wäre dann ein Container auf der statischen Seite.