Seitenübersicht im PhotoKalender

Aus AquaSoft Wiki
Version vom 30. Dezember 2009, 12:12 Uhr von Steffen.binas (Diskussion | Beiträge) (→‎Beispiel 2:)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springenZur Suche springen

Die Seitenübersicht zeigt alle für die Vorlage erstellten Seiten an. Wenn man das Pluszeichen vor einer Seitenbezeichnung anklickt oder einen Doppelklick auf den Seitennamen macht, werden alle Objekte angezeigt, die in dieser Seite eingefügt wurden.

Diese Übersicht gibt einem zum einen die Information, welche Seiten man angelegt hat. Zum anderen sieht man die Reihenfolge der Objekte innerhalb einer Seite. Diese Reihenfolge spielt eine große Rolle bei der Anzeige der Kalenderobjekte und der Variablentexte und bei den Bildern.

Mit den Icons über der Seiten- und Objektübersicht kann man neue leere Seiten anlegen, bestehende Seiten duplizieren und die einzelnen Objekte der Seite löschen. Das Löschen der Objekte funktioniert allerdings auch mit der ENTF-Taste auf der Tastatur, sobald ein Objekt markiert ist.


Die Reihenfolge der Kalenderobjekte

Jedes Kalenderelement erhöht das aktuelle Datum um den eingestellten Zeitraum. Beispiel: Startdatum ist der 01.01.2005, der eingestellte Zeitraum für das Kalenderelement beträgt 1 Monat. Dann lautet das aktuelle Datum hinter dem Kalenderelement 31.01.2005. Dies ist dann wichtig, wenn in der Seitenübersicht weitere Elemente hinter einem Kalenderelement stehen. So könnte man in einem Textelement Variablen einbauen, die den aktuellen Monatsnamen anzeigen sollen. Diese Variablen beziehen sich immer auf das Datum, das zu diesem Zeitpunkt aktuell ist. Wenn die Texte mit den Variablen in der Seiten- und Objektübersicht hinter dem Kalenderobjekt kommen wird mit der Variablen %monthname% der Monatsname des nächsten Monats angezeigt. Das Textobjekt muss daher vor dem Kalenderobjekt stehen. Ähnliche Probleme können entstehen, wenn man auf einer Seite mehrere Kalenderobjekte verwendet. Je nachdem, wie man das Startdatum der Kalenderobjekte bestimmt, beeinflusst das eine Kalenderobjekt das Startdatum des nächsten Kalenderobjekts. So kann man als Startdatum die Variable %calendardate% verwenden. Diese Variable bezieht sich auf das zu diesem Zeitpunkt aktuelle Datum, das am Ende des vorhergehenden Kalenderobjekts bestand. Dabei ist es egal, ob das vorhergehende Kalenderobjekt ein anderes Kalenderobjekt auf derselben Seite ist, oder ob es dasselbe Kalenderobjekt ist, das durch mehrmaliges Aufrufen derselben Seite vorher aufgerufen wurde.


Beispiel 1:

  • Eine Seite enthält ein Kalenderelement und
  • einen Text mit der Variablen %monthname%
  • Der Text steht in der Seiten- und Objektübersicht unterhalb des Kalenderelements.
  • Die Kalenderseite zeigt im Kalenderelement den Monat Januar.
  • Im Text steht das Wort 'Februar' (nächster Monat)
  • Der Text wird in der Seiten- und Objektübersicht nach oben, über das Kalenderelement verschoben.
  • Die Kalenderseite zeigt weiterhin im Kalenderelement den Monat Januar.
  • Der Text zeigt jetzt das Wort 'Januar'.


Beispiel 2:

  • Eine Seite enthält ein Kalenderelement
  • Als Startdatum wurde %CalendarDate% und Funktion 'Monatsanfang' eingetragen.
  • Als Enddatum wurde %CalendarElementStartDate% und Funktion 'Monatsende' eingetragen.
  • Startdatum für die Kalenderausgabe: 01.01.2005
  • Die erste Seite zeigt den Januar, die nächste Seite den Februar, usw.

Das Kalenderelement erhöht automatisch das Datum um einen Monat (= angezeigter Zeitraum) und erhöht so jeweils das aktuelle Datum für den Kalender. Die Variable %CalendarDate% bezieht sich jeweils auf das aktuelle Datum.

Beispiel 3:

  • Eine Seite enthält 3 Kalenderelemente. Es soll jeweils der aktuelle Monat (2), der Vormonat (1) und der nächste Monat (3) angezeigt werden.
  • Das Kalenderelement (1) bekommt als Startdatum %CalendarDate% und Funktion 'Datum addieren', '-1 Monat'.
  • Das Kalenderelement (2) bekommt als Startdatum %CalendarDate% und Funktion 'Monatsanfang'.
  • Das Kalenderelement (3) bekommt als Startdatum %CalendarDate% und Funktion 'Monatsanfang'.
  • Alle Kalenderelemente bekommen als Enddatum %CalendarElementStartDate% und Funktion 'Monatsende' eingetragen.
  • Die Kalenderelemente stehen in der Seiten- und Objektübersicht in der Reihenfolge 1, 2, 3.


Ergebnis: Auf der ersten Seite funktioniert alles korrekt. Das Kalenderelement (1) zeigt den Vormonat, Element (2) zeigt den aktuellen Monat und Element (3) zeigt den Folgemonat. Auf der nächsten Seite passt es schon nicht mehr. Da auch das letzte Kalenderelement das aktuelle Datum um einen Monat erhöht, ist am Ende der 1. Seite das aktuelle Datum schon zwei Monate weiter. Das Kalenderelement (1) springt aber nur einen Monat zurück. Dadurch bekommt die 2. Seite den eigentlich aktuellen Monat als Vormonat. Das Element (2) sollte eigentlich den aktuellen Monat anzeigen, zeigt aber einen Monat später an. Dieser Fehler wird pro Seite um einen Monat größer.


Lösung: Man bezieht das Startdatum jedes Kalenderelements auf das Startdatum der Seite. Dazu verwendet man die Variable %CalendarDate_page% anstatt der Variable %CalendarDate%. Damit bezieht sich jedes Kalenderelement auf dasselbe Datum (Startdatum der Seite) und nicht auf das Enddatum des vorher stehenden Kalenderelements. Zusätzlich vertauscht man die letzten beiden Kalenderelemente in der Seiten- und Objektübersicht. Die ist nur möglich, da sie nicht mehr voneinander abhängen. Der Effekt ist, dass das Kalenderelement, dass den aktuellen Monat anzeigt, das letzte Element der Seite ist und so das aktuelle Datum nur um einen Monat erhöht wurde und nicht um zwei. Dieses Beispiel kann man gut in der mitgelieferten Vorlage '3 Monate' nachvollziehen. Dort wurde allerdings ein viertes Kalenderelement eingebaut, um den Monatsnamen des Vormonats korrekt anzeigen zu können.


Die Reihenfolge von Grafikobjekten

Die Reihenfolge der Bilder in der Objektübersicht spielt eine große Rolle bei der Anzeige von Objekten, die übereinander platziert wurden. Bei übereinander platzierten Objekten wird immer das Objekt verdeckt, das in der Objektliste zu oberst steht. Die Objekte werden im Prinzip der Reihe nach von oben nach unten gezeichnet. Das zuletzt gezeichnete Objekt verdeckt das vorher gezeichnete Objekt. So könnte man den Effekt ausgenutzt, indem man über den Photos ein weiteres Bild anordnet, dass einen transparenten Bereich hat. Durch diese Öffnung im Bild kann man dann die darunter angeordneten Photos sehen.

TippWeb.gif Dieser Effekt mit den transparenten Bereichen funktioniert nur bei Bildern mit Alphakanal. Dazu sind Bildformate notwendig, die einen Alphakanal kennen, wie zum Beispiel PNG-Dateien. GIF-Dateien können zwar auch transparente Bereiche speichern, tun dies aber nur dadurch, dass sie eine Farbe als transparente Farbe festlegen. Teiltransparente Pixel kann man damit nicht speichern, ein Pixel ist transparent oder nicht. Außerdem kennen GIF-Dateien nur 256 Farben, was für die Bildqualität nicht gerade gut ist. PNG-Dateien kennen 16 Mio. Farben und kennen einen Alphakanal, mit dem auch teiltransparente Pixel gespeichert werden können. Gerade Schatten werden nach außen hin immer heller, bis sie ganz in die Hintergrundfarbe übergehen.