Icon für verschiedene Zustände der Extension-Records (z.B. versteckt / hidden)

TYPO3 verwaltet Datenbank-Einträge (s.g. Records) über die Konfiguration im TCA-Array. Es ist möglich, bei diesen ein eigenes Symbol zu setzen. Dieses wird dann in der Listenansicht angezeigt. Welche Datei für das Icon verwendet werden soll, lässt sich wie folgt konfigurieren:

$TCA['ext_key'] = Array (
   'ctrl' => Array (
      ...
      'iconfile' => t3lib_extMgm::extRelPath($_EXTKEY)."res/icon.gif",
      ...
   )
   ...
);

Mit dieser Zeile kann man aber zunächst mal nur ein einziges Icon definieren. Man kennt es aber von TYPO3, im Icon bereits einen Hinweis auf die Eigenschaften des Record-Eintrags zu geben. So erkennt man bereits am Icon, ob der Datensatz versteckt ist, wegen der Start-Stop-Zeit nicht gezeigt wird oder sogar wegen beiden Einstellungen nicht im Frontend zu sehen ist. Anschaulich kann man das bei normalen Seiten im Seitenbaum (und normalen Seiten in der Listenansicht) verfolgen.

Diese Statusicons sind auch bei eigenen Extensions möglich. TYPO3 handhabt das ganz einfach über den Dateinamen. Dabei gelten die folgenden Konventionen für den Dateinamen:

icon__[$flags].gif

Um zu erfahren, wie die Flags aussehen, auf den Mehr-Link klicken.

Aufbau des Flags-Strings um Icon-Zustände zu kodieren

Wie folgt wird der Flags-String aufgebaut:

d: Deleted
Also muss für einen gelöschten Datensatz der Dateiname icon__d.gif lauten. Da in den meisten Fällen die gelöschten Datensätze nicht angezeigt werden, ist diese Datei meist nicht nötig.

h: Hidden
Also muss für einen versteckten Datensatz der Dateiname icon__h.gif lauten.

Genau so verhält es sich auch für die folgenden weiteren Eigenschaften:
t: Timing – Datensatz ist zwar zeitgesteuert, wird aber grad angezeigt
f: Futuretiming – Start-Zeit noch nicht erreicht oder Stop-Zeit überschritten
u: User – Ob der Zugriff auf den Datensatz durch ein Login geschützt ist.
s: Shaded – Das Icon wird ausgegraut angezeigt.

Aber als wäre das alles noch nicht genug, lassen sich die Flags auch in beliebiger Art kombinieren. So wäre also das Flag für einen Datensatz, der nur für eingeloggte Benutzer (User) ab morgen (Timing) sichtbar ist „fu“. Ist er dazu noch ausgegraut (shaded) , muss das Flag „fus“ lauten. Um das ganze von den Kombinationsmöglichkeiten bzw. Anzahl der Symboldateien noch einigermaßen überschaubar zu halten, ist beim kombinieren der Flags die Reihenfolge entscheidend. Diese ist wie folgt:

  1. h – Hidden
  2. t – Timing
  3. f – Futuretiming
  4. u – User
  5. s – Shaded

Das oben erwähnte d (Deleted) wird allerdings nie kombiniert und steht immer allein.

Dennoch muss man, wenn man alle Fälle abdecken möchte, ziemlich viele Icons erzeugen (Wenn mich nicht alles täuscht sind es 35 Kombinationen). Weil das ziemlich zeitraubend sein kann, kann man noch das Flag „x“ (icon_x.gif) definieren, welches immer dann angezeigt wird, wenn eine Flag-Kombination zutreffend wäre, für die keine Datei hinterlegt ist.

x: Icon not defined

Icons automatisch generieren

Und wem das mit dem Fallback auf icon_x.gif nicht reicht bzw. wer bei vielen Extensions immer alle Icons abdecken möchte ohne für jeden im TCA definierten Datensatz 35 Icons erzeugen zu müssen – der muss die GDLib installiert haben. Durch eine einfache Einstellung in der localconf kann man die Icons vom Gifbuilder automatisch generieren lassen, wenn man nur ein einziges Icon „icon.gif“ in die Extension legt. Dazu folgende Eigenschaft in die localconf.php bzw. in das Installtool eintragen:

$GLOBALS['TYPO3_CONF_VARS']['GFX']['noIconProc'] = '0';

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

Benachrichtige mich zu:
avatar

wpDiscuz
Weitere Beiträge zum Thema
Texte in eigenen Themes übersetzen
TYPO3 Performance-Verbesserungen durch PHP 5.3: 30%
Extension: GSA Shop
Flat Design aus der Sicht des Marketers