Bloecke

Guite edited this page Nov 15, 2014 · 6 revisions

Blöcke

Blöcke sind die clevere Zikula-Lösung für das Problem, dass man die Inhalt von verschiedenen Modulen als Teaser neben den Inhalten andere Module anzeigen will. Das Bild rechts zeigt ein Beispiel: Neben den News werden hier ein Kalender, ein Login-Block, eine Liste von Terminen, die aktuellsten Foren-Beiträge und ein Teaser für einen Kino-Artikel angezeigt. Das sind Blöcke.

Woher bekomme ich Blöcke?

Blöcke liegen den Modulen eigentlich immer bei. Natürlich könnte man sich auch eigene Blöcke schreiben und die losgelöst von Modulen anbieten, aber das ist im Moment nicht bensonders verbreitet. Blöcke, die einem Modul nicht beiliegen, gibt es somit vermutlich nicht. Sollte Dir etwas fehlen, solltest Du deinen Wunsch lieber als Feature Request bei dem Programmierer einreichen.

Wie baue ich Blöcke in meine Seite?

Es gibt einen schnellen Weg zum Block und einen langen. Zunächst werde ich den schnellen erklären, weil er der Weg sein wird, den Du als Anfänger nehmen wirst und der selbst später oft reichen wird.

  • Die Verwaltung der Blöcke findest Du in der Administration unter Layout/Blocks. Diese teilt sich in zwei Bereiche: Oben die Blockübersicht und unten die Block-Positionen.
  • Jedes Theme sollte mindestens eine Block-Position haben. Also einen Bereich in dem die Blöcke nacheinander angezeigt werden. Meistens gibt es drei: left, right, center - für ein klassisches dreispaltiges Design mit rechter und linker Spalte und einer breiteren in der Mitte. Aber achtung! Das sind nur Namen. Die haben nicht unbedingt damit etwas zu tun, wo die Blöcke tatsächlich angezeigt werden. Du kannst Die Positionen auch Tick, Trick und Track nennen: Man kann unendlich viele Positionen anlegen. Im unteren Bereich der Block-Verwaltung siehst Du, welchen Block-Positionen Du Blöcke zuweisen kannst.
  • Blöcke können mehrere Zustände haben: Aktiv, Inaktiv oder unbenutzt. Kommst Du zum ersten Mal in die Verwaltung, werden Dir nur die aktiven Blöcke angezeigt. Um auch die inaktiven sehen zu können, klickst Du oben in der Navigation auf "Alle Blöcke zeigen". Per Klick auf das grüne Icon kannst Du einen Block deaktivieren - er wird dann nicht mehr auf der Seite angezeigt. Das Icon wird dann rot. Klickst Du auf das rote Icon, wird der Block wieder aktiv und angezeigt.
  • Es gibt aber mehr Blöcke in Deinem System als die aktiven und die inaktiven.
    • Um einen neuen Block hinzuzufügen, klickst Du in der Navigation oben auf "Block anlegen".
    • Du bekommst dann ein Dropdown mit allen im System verfügbaren Blöcken, sortiert nach den Modulen, zu denen sie gehören.
    • Du gibst Deinem Block einen Titel. Das ist dann das, was bei der Anzeige gegebenenfalls über dem Block steht. Auf dem Bild ist das zum Beispiel "Was ist los?", "Forum" oder "Konzerte"
    • Du kannst auswählen, ob der Block nur angezeigt werden soll, wenn der Besucher eine bestimmte Sprache eingestellt hat. Wenn Du eine einsprachige Site hast, lass es einfach auf "Alle" stehen.
    • Als letztes stellst Du noch ein, welcher Block-Position der neue Block zugewiesen werden soll.
    • Im nächsten Schritt kommen die Block-spezifischen Einstellungen. Da kannst Du einstellen, welche Inhalte von dem Block angezeigt werden sollen.
  • Der Block ist jetzt aktiv und sollte in der ihm zugewiesenen Position angezeigt werden.

Willst Du den Inhalt eines Blocks ändern musst Du in der Blockverwaltung auf den roten Stift in der Zeile mit dem gewünschten Block klicken.

Zum kompletten Löschen klickst Du einfach auf die Mülltonne neben Deinem Block. Das hat dann den Vorteil gegenüber dem Deaktivieren, dass er keinen Eintrag mehr in der Datenbank hat.

Wie kann ich Reihenfolge der Blöcke ändern?

Normalerweise werden die Blöcke chronologisch in der Reihenfolge angezeigt, in der sie angelegt wurden. Das ist natürlich nicht immer wünschenswert und deswegen gibt es in Zikula die tolle Funktion, die Reihenfolge der Blöcke zu ändern! Dazu musst Du erst einmal wieder in der Hauptübersicht der Blöcke und Blockpositionen sein. Dort klickst Du auf den roten Stift (siehe oben) in der Zeile mit der Block-Position, die Du neu sortieren möchtest.

  • Im oberen Teil kannst Du jetzt die Block-Position umbenennen oder die Beschreibung ändern - das macht man so gut wie nie. Aber es ist gut zu wissen, dass es geht...
  • Im unteren Teil der Seite kannst Du alle aktiven Blocke dieser Block-Position sehen - und zwar in der Reihenfolge, in der sie angezeigt werden.
  • Du kannst bei eingeschaltetem JavaScript einfach auf die Zeile mit einem Block links klicken, Mouse-Taste gedrückt halten und den Eintrag per drag&drop an eine andere Stelle verschieben.
  • So kannst Du nach und nach die Blöcke so sortieren, wie sie Dir am besten gefallen.
  • Und weil Zikula besonders schlau ist, wird die Sortierung auch gleich gespeichert. Du musst also nicht einmal auf ein Okay-Häkchen klicken. Dank moderner Ajax-Technologie landen alle Änderungen direkt in der Datenbank.

Blöcke für Fortgeschrittene

Bisher hast Du gelernt, was ein Block ist, wie man ihn anlegt, ändern und löscht und wie man Blöcke sortiert. Im nächsten Schritt möchte ich Dir erklären was man noch alles Schlaues mit Blöcken anstellen kann.

Als Vorwissen solltest Du Dich einmal mit den Theme-Configs beschäftigt haben.

Templates für Block-Positionen

Nehmen wir an, wir haben 2 Block-Positionen: right und left. Nun möchtest Du das die Blöcke rechts alle einen blauen und die links einen roten Rahmen bekommen.

  • Dazu musst Du zunächst sicherstellen, dass in der .ini-Datei für die Seite den Blockpositionen jeweils ein Templates zugewiesen wird. Also zum Beispiel in der master.ini:
[blockpositions]
left = red.htm
right = blue.htm
  • Nun legst Du unter /themes/THEMENAME/templates/blocks/ die beiden Dateien red.htm und blue.htm an.
  • Öffne beide Dateien und passe sie an:
<div style="border:1px red solid;">
<p><!--[$title]--></p>
<!--[$content]-->
</div>

Damit wird festgelegt dass die gesamte Blockausgabe mit einem roten Rahmen umschlossen wird. Der Block-Titel wird in einem p-Tag ausgegeben und darunter der eigentliche Block-Inhalt. Analog kannst Du auch das blaue Template anlegen.

  • Abspeichern.
  • Fertig. Die rechten Blöcke haben einen blauen und die linken Blöcke einen roten Rahmen.

Das gleiche funktioniert natürlich auch mit Blockinstanzen - also mit einzelnen Blöcken. Dazu trägst Du in der master.ini ein:

[blockinstances]
5 = red.htm

Nun wird der Block mit der ID 5 mit einem roten Rahmen angezeigt - egal, wo er zugeordnet ist.

Mehr Block-Positionen

In manchen Layouts ist es praktisch, mehr Block Positionen zu haben. Im Fuß von 96khz.de zum Beispiel sind vier weitere Block-Positionen, die ich der Einfachheit halber mal "one", "two", "three" und "four" genannt habe.

  • Dazu habe ich einfach in der Block-Verwaltung oben auf "Block-Position anlegen" geklickt, sie der Reihe nach benannt und so im System verfügbar gemacht.
  • Sofort kann ich diesen Positionen Block zuweisen. Einfach einen Block neu anlegen oder editieren und als Block-Position eine der neuen auswählen.
  • Natürlich werden die dann noch nicht gleich angezeigt. Zunächst musst Du in Deinem Theme die Aufrufe für diese Block-Positionen einbauen:
<!--[blockposition name="one"]-->
<!--[blockposition name="two"]-->
<!--[blockposition name="three"]-->
<!--[blockposition name="four"]-->

...an den richtigen Stellen im HTML.

  • Schon werden die Blöcke an den neuen Positionen im Theme angezeigt.
  • Kleines Problem: In der Theme-Konfiguration sind den neuen Positionen noch keine Templates zugewiesen und Zikula nimmt einfach ein eigenes Standard-Template. Aber Du hast ja im Schritt vorher gelernt, wie man neue Block-Templates anlegt. Tu das mal für die neuen Positionen. Du kannst auch mit allen Block-Positionen das gleiche Template benutzen, wenn die ohnehin alle gleich aussehen sollen.

Blöcke nur bei bestimmen Inhalten anzeigen

Ein immer wieder gefordertes Featute in den früheren Versionen von Zikula war die Möglichkeit bestimmte Blöcke nur mit bestimmten Inhalten anzuzeigen. Also zum Beispiel möchtest Du auf der Startseite wie in dem Bild oben auf der Startseite einen Block mit den aktuellsten Foren-Beiträgen anzeigen, im Forum selbst aber lieber Hilfen für den Benutzer, der gerade im Forum schreibt - einen Link zu seinem Profil, damit er seine Signatur ändern kann, eine Übersicht seines Posteingangs für den internen Nachrichtendienst usw. Dabei nehmen wir der Einfachheit halber mal an, dass es nur eine Blockposition gibt (rechts. So wie auf dem Bild oben.)

    1. Als erstes solltest Du verschiedene Templates für die Startseite und das Forum benutzen. damit Zikula weiß, was es machen soll musst Du folglich in der pageconfigurations.ini eintragen:
[master]
file = master.ini

[*home]
file = home.ini

[Dizkus]
file = forum.ini

 2. Dann legst Du die home.ini und die forum.ini an und trägst ein:

page = master.htm

[blockpositions]
home = right.htm

 ...für die home.ini und für die forum.ini:

page = master.htm

[blockpositions]
profile = right.htm

 Wie Du siehst, benutzen die Configs jeweils die gleichen Templates: Die master.htm für die Darstellung der Gesamtseite und right.htm für die Blöcke. Immerhin sollen die Seiten ja auch gleich aussehen - nur die Inhalte sollten unterschiedlich sein.  3. Nachdem das jetzt vorbereitet ist, kannst Du in Block-Administration gehen und die beiden neuen Block-Positionen anlegen: "home" und "profile"  4. Nun kannst Du die nötigen Blöcke anlegen und/oder den beiden neuen Positionen zuweisen.  5. Fertig. Auf der Startseite erscheinen die Startseiten-Blöcke, im Forum die Profil-Blöcke und auf allen anderen Seiten einfach die Blöcke, die Du hier schon vorher zugewiesen hattest.

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.