.. You may want to use the usual include line. Uncomment and adjust the path. .. include:: ../Includes.txt ================ EXT: T3sports FE ================ :Author: Rene Nitzsche :Created: 2007-07-31T11:25:38 :Changed by: digedag :Changed: 2013-05-25T17:44:14 :Author: René Nitzsche :Email: rene@system25.de :Info 3: :Info 4: .. _EXT-T3sports-FE: EXT: T3sports FE ================ Extension Key: **cfc\_league\_fe** Copyright 2006-2013, René Nitzsche, This document is published under the Open Content License available from http://www.opencontent.org/opl.shtml The content of this document is related to TYPO3 \- a GNU/GPL CMS/Framework available from www.typo3.com .. _Table-of-Contents: Table of Contents ----------------- **EXT: T3sports FE 1** **Introduction 1** What does it do? 1 Screenshots 2 **Users manual 5** View Wettbewerbsauswahl 6 View Spielplan 6 View Ligatabelle 7 View Tabellenfahrt 7 View Statistiken 7 View Spielbericht 7 View Teamdarstellung 8 View Personenprofil 8 View Personenliste 8 FAQ 8 **Common Tasks 8** Verwendung von Team-Notizen 8 Integration der Spiele als Event in der Extension Calendar base (cal) 10 Einen Teaser für das nächste Spiel einer Mannschaft erstellen 12 Einen Teaser für das letzte Spiel einer Mannschaft erstellen 12 Erstellung eines Teasers der aktuellen Ligatabelle 12 Umgang mit Bildern 12 Verschiedene Altersklassen in einem Wettbewerb 13 Link auf Spielbericht aus einer tt\_news-Meldung 14 Lokalisierung von HTML-Templates 15 **Administration 15** Verwendung ohne DAM 16 Verwendung mit FAL 16 FAQ 16 **Configuration 16** CSS 16 Reference Plugin Wettbewerb 16 FAQ 19 **Known problems 19** **Developers Sections 19** Include Markers with services 19 **To-Do list 20** **Changelog 20** .. _Introduction: Introduction ------------ .. _What-does-it-do: What does it do? ^^^^^^^^^^^^^^^^ Diese Extension stellt zwei Frontend-Plugins für die Verwaltung von Sportligen der Extension **cfc\_league** zur Verfügung. Derzeit sind die folgenden Darstellungen enthalten: **Plugin: Ligaverwaltung** - Wettbewerbsauswahl - Spielplan - Ligatabelle - Ligatabelle (All-Time) - Tabellenfahrt - Liste der Liveticker - Statistiken - Teamliste - Kreuztabelle **Plugin: Berichte** - Wettbewerbsauswahl - Spielbericht / Liveticker - Teamdarstellung - Personenprofil - Personenliste - Vereinsliste **Zu Beginn eine Warnung:** Die Extension befindet sich im Betastatus. Neben der Referenzinstallation für den Chemnitzer FC, gibt es allerdings schon weitere Vereine, die die Extension erfolgreich einsetzen. Das Layout und Konfigurationen sind aber in erster Linie für den CFC ausgelegt. Trotzdem sollte der Einsatz natürlich auch generell möglich sein, nur darf man sich nicht wundern, das im Frontend erstmal alles in himmelblau erscheint. Sollte sich jemand die Arbeit machen und ein neutrales Layout anfertigen, dann würde ich es natürlich gern in die Extension integrieren. Die Einrichtung von Datensätzen wie Spielen, Teams oder Spielern ist ausführlich in der Dokumentation der Extension **cfc\_league** beschrieben. Hinweise auf Updates erhält man über folgende Mailingliste: `https://lists.sourceforge.net/lists/listinfo/cfcleague-general `_ .. _Screenshots: Screenshots ^^^^^^^^^^^ Die folgenden Darstellungen geben einen Überblick über die vorhandenen Darstellungsmöglichkeiten. |img-1| *Illustration 1: Spielplan in Spieltagsdarstellung. Vorhandene Spielberichte werden automatisch verlinkt* |img-2| *Illustration 2: Team-Spielplan* |img-3| *Illustration 3: Eine Ligatabelle mit farbiger Markierung von Tabellenplätzen und Teams* |img-3| |img-4| *Illustration 4: Chart auf Basis der Extension pbimagegraph* |img-5| *Illustration 5: Ausführlicher Spielbericht* |img-6| *Illustration 6: Spielerarchiv mit alphabetischer Ordnung* |img-7| *Illustration 7: Für jeden Spieler kann eine ausführliche Einzeldarstellung erstellt werden.* |img-8| *Illustration 8: Beispiel für ein Flexform* .. _Users-manual: Users manual ------------ |img-9| *Illustration 9: Views des Plugins Ligaverwaltung* Die Extension stellt zwei Plugins mit zahlreichen integrierten Views zur Verfügung. Diese Views kann man prinzipiell frei kombinieren. Sie werden in der Reihenfolge ihrer Auswahl angezeigt. Für jeden View gibt es ein gesondertes Template. Dieses basiert entweder auf einer HTML-Vorlage oder einem PHP-Script. Wenn man ein eigenes Template erstellen möchte, dann erfolgt die Pfadangabe relativ vom TYPO3-Rootverzeichnis. |img-10| .. ### BEGIN~OF~TABLE ### .. _Wettbewerbsauswahl: Wettbewerbsauswahl ^^^^^^^^^^^^^^^^^^ .. container:: table-row View Wettbewerbsauswahl Templatetyp wahlweise PHP oder HTML .. _Spielplan: Spielplan ^^^^^^^^^ .. container:: table-row View Spielplan Templatetyp wahlweise PHP oder HTML .. _Ligatabelle: Ligatabelle ^^^^^^^^^^^ .. container:: table-row View Ligatabelle Templatetyp wahlweise PHP oder HTML .. _Tabellenfahrt: Tabellenfahrt ^^^^^^^^^^^^^ .. container:: table-row View Tabellenfahrt Templatetyp PHP .. _Liste-der-Liveticker: Liste der Liveticker ^^^^^^^^^^^^^^^^^^^^ .. container:: table-row View Liste der Liveticker Templatetyp HTML .. _Statistiken: Statistiken ^^^^^^^^^^^ .. container:: table-row View Statistiken Templatetyp HTML (seit Version 0.2.0 kein PHP mehr möglich) .. _Spielbericht: Spielbericht ^^^^^^^^^^^^ .. container:: table-row View Spielbericht Templatetyp HTML .. _Teamdarstellung: Teamdarstellung ^^^^^^^^^^^^^^^ .. container:: table-row View Teamdarstellung Templatetyp HTML .. _Personenliste: Personenliste ^^^^^^^^^^^^^ .. container:: table-row View Personenliste Templatetyp HTML .. _Personenprofil: Personenprofil ^^^^^^^^^^^^^^ .. container:: table-row View Personenprofil Templatetyp HTML .. _Vereinsliste: Vereinsliste ^^^^^^^^^^^^ .. container:: table-row View Vereinsliste Templatetyp HTML .. ###### END~OF~TABLE ###### Langfristig ist geplant alle Templates auf HTML umzustellen. .. _View-Wettbewerbsauswahl: View Wettbewerbsauswahl ^^^^^^^^^^^^^^^^^^^^^^^ Dieser View ist sowohl im Plugin Ligaverwaltung als auch Berichte vorhanden. Seine Einstellungen erfolgen jeweils im ersten Tab des Flexform. Die Hauptaufgabe dieser Einstellungen bestehen darin festzulegen, welche Datensätze genau auf der Seite dargestellt werden sollen. |img-11| *Illustration 10: Der Scope legt fest, welche Daten gezeigt werden sollen.* Am besten läßt sich dies an einem Beispiel verdeutlichen. Angenommen man möchte auf der Seite eine Teamdarstellung realisieren. Mit Hilfe der Wettbewerbsauswahl legt man fest, welches Team gezeigt werden soll. Diese Angabe erfolgt aber nicht direkt über die Auswahl eines Teamdatensatzes, sondern indem man einen **Scope** angibt. Dieser Scope besteht im Plugin Berichte aus der *Saison* des Teams und der *Altersgruppe* . Da je Saison und Altersgruppe genau ein Team spielen sollte, kann man das Team so genau definieren. Man kann aber auch mehrere Saisondatensätze integrieren und dann im Frontend dem Benutzer die Auswahl überlassen. Dadurch hat man dann automatisch eine Teamhistorie. Im Screenshot kann der Nutzer im Frontend zwischen zwei Spieljahren wählen und bekommt jeweils das Team der 2. Mannschaft angezeigt. Man kann die Auswahlboxen auch leer lassen und nur jeweils die Select- Boxen aktivieren. Das bewirkt, daß automatisch alle vorhandenen Datensätze zur Auswahl stehen. Die Selectboxen im Frontend erscheinen nur, wenn auch der View Wettbewerbsauswahl mit ausgewählt wurde. Bei der Verwendung von HTML-Templates werden die Selectboxen durch normale Links ersetzt. Damit können die Cachingmechanismen von TYPO3 genutzt werden. .. _View-Spielplan: View Spielplan ^^^^^^^^^^^^^^ Um den Spielplan anzuzeigen, muß man zunächst im Tab **Allgemein** den Scope festlegen. Wenn man den Spielplan für ein bestimmtes Team anzeigen möchte, muß man zusätzlich den entsprechenden Verein auswählen. (Achtung: Die Auswahl mehrerer Vereine wurde noch nicht getestet und die Selectbox nicht unterstützt.) |img-12| Im Tab Spielplan können nun die weiteren Angaben gemacht werden. Ein Link zum Spielbericht wird nur dann angelegt, wenn dieser im Spiel vorhanden ist und wenn im Flexform eine Seite für dessen Darstellung angegeben wurde. Wenn der Spielplan nicht für einen bestimmten Verein gezeigt wird, dann wird über den View Wettbewerbsauswahl automatisch eine Selectbox zur Auswahl des Spieltages eingefügt. **Zeitliche Eingrenzung:** Man kann den Spielplan auf Tagesbasis eingrenzen. Ausgangspunkt ist natürlich immer das aktuelle Datum. Per Typoscript ist es zusätzlich möglich auch die Anzahl der Spiele zu begrenzen. Damit kann beispielsweise immer das nächste Spiel eines Teams gezeigt werden. .. _View-Ligatabelle: View Ligatabelle ^^^^^^^^^^^^^^^^ |img-13| Erzeugt die Darstellung einer Ligatabelle. Auch hier muß vorher der gewünschte Scope eingestellt werden. Die einzelnen Einstellungen haben folgende Bedeutung: **Tabellenscope:** Man kann zwischen Saison, Hin- und Rückrunde wählen. Es wird jeweils die passende Tabelle berechnet. Optional kann man die Auswahl aber auch dem Nutzer überlassen (Selectbox anzeigen). **Tabellentyp:** Auswahl zwischen Normal, Heim- und Auswärtstabelle. Auch hier ist eine Selectbox für den FE-Nutzer möglich. **Selectbox für Punktesystem:** Die Tabelle wird normalerweise entsprechend der Punktezählung im entsprechenden Wettbewerb angezeigt. Mit diesem Punkt kann man dem Nutzer in Frontend die Tabelle aber nach Wahl im 2-Punkte oder 3-Punkte-Modus anzeigen lassen. **Livetabelle:** Noch nicht implementiert. Zeigt die Tabelle inklusive aktuell laufender Spiele. **Vereine hervorheben:** Hiermit können in der Tabelle die Teams bestimmter Vereine hervorgehoben werden. Bei der Verwendung von HTML-Templates werden statt der Selectboxen normale Links verwendet. .. _View-Tabellenfahrt: View Tabellenfahrt ^^^^^^^^^^^^^^^^^^ Erzeugt eine grafische Darstellung der Tabellenfahrt von ausgewählten Teams. Die Charterzeugung erfolgt mit Hilfe der Extension **pgimagegraph** . Für genaue Angaben zur Formatierung sei daher auf die sehr ausführliche Dokumentation diese Extension verwiesen. Ein Beispiel Typoscript-Setup findet sich im Standardtemplate dieser Extension: EXT:cfc\_league\_fe/static/setup.txt Die Farbangaben erfolgen entweder Hexadezimal oder über Standard- Farbschlüsselwörter, wie yellow, blue oder red. .. _View-Statistiken: View Statistiken ^^^^^^^^^^^^^^^^ Dieser View wurde mit Version 0.2.0 komplett umgestellt. Alle Statistiken werden jetzt als Service dynamisch integriert, so daß die bisherigen Spielerstatistiken nun in vier verschiedene Einzelstatistiken aufgeteilt wurden: - Spieler (der Arbeitsnachweis der Spieler) - Torschützenliste - Beste Vorlagengeber - Spielerzusammenfassung Die letzte Statistik ist die kürzeste. Hier wird nur ausgegeben, welche Spiele in der Spielerstatistik Verwendung fanden. Das Grundprinzip der Statistiken bleibt wie bisher erhalten. Es wird zunächst wieder der Scope ausgewählt, um festzulegen, über welche Spiele und ggf. für welche Teams eine Statistik erstellt werden soll. Die Reihenfolge der Spieler im Arbeitsnachweis kann nicht mehr über das Flexform festgelegt werden. Das geschieht jetzt mit folgender TypoScript-Anweisung: :: # Sortierung der Spieler: 0-alphabetisch, 1- wie im Team plugin.tx_cfcleaguefe_competition.statistics.player.profileSortOrder = 0 **Cache-Timeout:** Da die Berechnung der Spielerstatistiken je nach Datenmenge mehrere Sekunden dauern kann, verwendet diese Extension einen internen Cache.Diesen kann man mit dem Timeout in regelmäßigen Abständen leeren. Der interne Statistik-Cache wurde im Zuge der Codeumstellung vorerst deaktiviert. Daher ist es dringend zu empfehlen im Livebetrieb das Plugin für die Statistik als USER laufen zu lassen. Nur so ist der Seitencache von TYPO3 wirksam! Bei Standardinstallation ist das Plugin automatisch als USER in TYPO3 registriert. **ACHTUNG:** Diese Statistiken werden nicht mehr weiterentwickelt. Im TER befindet sich die Extension **t3sportstats** , welche umfangreicherer und performantere Statistiken bereitstellt. .. _View-Spielbericht: View Spielbericht ^^^^^^^^^^^^^^^^^ Für diesen View ist die Angabe eines Scopes nicht notwendig. Die Einstellung **Zeige Ticker** ist noch nicht implementiert. Man hat die Möglichkeit einzelne Ticker-Typen im Spielstenogramm nicht anzuzeigen. Dies ist dann sinnvoll, wenn diese Informationen nur der Statistik dienen, wie z.B. die Torvorlagen. .. _View-Teamdarstellung: View Teamdarstellung ^^^^^^^^^^^^^^^^^^^^ Nach Eingabe des Scopes mit Saison und Altersgruppe muß man hier zusätzlich noch den gewünschten Verein angeben. Wenn man von der Liste der Spieler, Trainer und Betreuer auf die Einzeldarstellung der Personen verlinken möchte, dann müssen noch die entsprechenden Seiten festgelegt werden. Für Trainer und Betreuer wird die selbe Seite verwendet. In diesem View hat man bei der Ausgabe die Möglichkeit auch Teamnotizen anzuzeigen. .. _View-Personenprofil: View Personenprofil ^^^^^^^^^^^^^^^^^^^ Der Scope ist hier nicht notwendig. Man hat die Möglichkeit ein bestimmtes Profil darzustellen. Üblicherweise wird man diese Angabe aber nicht machen und stattdessen des gewünschte Profil per Parameter von einer anderen Seite (Teamview oder Personenliste) erhalten. In jedem Fall muß aber der SysFolder angegeben werden, der die Profile enthält. Weiterhin besteht die Möglichkeit ein zufällig ausgewählte Person anzeigen zu lassen. Dies ist nützlich, wenn man z.B. einige Spieler in einem Teaser anzeigen möchte. .. _View-Personenliste: View Personenliste ^^^^^^^^^^^^^^^^^^ Auch hier ist der Scope nicht von Bedeutung, es muß lediglich der gewünschte SysFolder mit den Profilen angegeben werden. Bei einer Verlinkung zur Einzeldarstellung muß die entsprechende Seite festgelegt werden (Constant-Editor). |img-14| *Abbildung 11: Flexform der Personenliste* Optional kann die Personenliste mit einem Buchstaben-Menu angezeigt werden. Des weiteren besteht die Möglichkeit eine Geburtstagsliste zu erstellen. Es können alle Personen angezeigt, die entweder im aktuellen Monat oder Tag Geburtstag haben. FAQ ^^^ Warum werden keine Links für die Teamdarstellung im Spielplan/Ligatabelle erzeugt? Damit Links erzeugt werden sind grundsätzlich zwei Bedingungen notwendig. Erstens muss eine Seite konfiguriert werden, auf die der Link verweisen soll. Dies geschieht entweder im Flexform des Plugins oder per Typoscript-Konstante über den TYPO3 Constant-Editor. Zweitens muss das Team auch ein Häkchen bei **Link auf Teamseite möglich** im Datensatz gesetzt haben. Diese Vorbedingungen werden deshalb verwendet, weil man dadurch recht gezielt einstellen kann, wo Links erscheinen sollen. .. _Common-Tasks: Common Tasks ------------ .. _Verwendung-von-Team-Notizen: Verwendung von Team-Notizen ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Mit der Version 0.4.4 von T3sports FE können im Frontend die sogenannten Team-Notizen ausgegeben werden. Damit wird die Möglichkeit gegeben einem Spieler in Abhängigkeit zu einem bestimmten Team weitere Informationen zu zuordnen. Am Beispiel der Rückennummer lässt sich das sehr gut verdeutlichen. Diese Nummer kann für einen Spieler von Jahr zu Jahr unterschiedlich sein. Daher kann diese Informationen nicht direkt im Spieler abgespeichert werden, weil sie dann jedes Jahr durch eine neue Nummer ersetzt werden müsste. Man würde also die Historie der Daten verlieren. Mit der Team-Notiz liefert T3sports die passende Datenstruktur für diese Information. Im folgenden Beispiel wird gezeigt, wie man Rückennummern und ein zusätzliches Bild für den Spieler als Team-Notiz anlegt und im Frontend ausgibt. Für alle Aktionen wird das Modul **Liste** verwendet. .. _Schritt-1-Notiz-Typen-anlegen: Schritt 1: Notiz-Typen anlegen """""""""""""""""""""""""""""" Die Notiz-Typen legt man am besten im Root-SysFolder der Ligaverwaltung an. Also da wo auch die Altersgruppen oder Saisondatensätze liegen sollten. |img-15| *Abbildung 12: Einen neuen Datensatz Notiz-Typ anlegen* Die wichtigste Information des Notiz-Typ ist das Feld **HTML-Marker** . Der Wert dieses Feldes wird später Bestandteil des HTML-Markers in der HTML-Vorlage. Auch für das Typoscript-Setup wird dieser Wert benötigt. |img-16| *Abbildung 13: Das Feld HTML-Marker sollte keine Sonderzeichen und Leerzeichen enthalten* Der Marker sollte auch keine Sonder- oder Leerzeichen enthalten. Für unser Beispiel legen wir zwei Datensätze an. Für die Trikotnummer benennen wir den HTML-Marker **trikot** , für das Saisonbild wählen wir **picture** . .. _Schritt-2-Die-Team-Notizen-erstellen: Schritt 2: Die Team-Notizen erstellen """"""""""""""""""""""""""""""""""""" Die Team-Notizen werden immer in dem SysFolder angelegt, in dem auch die Team-Datensätze liegen. In diesem SysFolder wählt man also **Neuen Datensatz erstellen** und sucht diesmal als Typ die **Teamnotiz** heraus. |img-17| *Abbildung 14: Eine Team-Notiz. Es stehen alle angelegten Notiztypen zur Auswahl.* Der **Typ des Werts** ist entweder Text, Media oder Ganzzahl. Entsprechend der Auswahl wird sich das Formular ändern. Für die Trikotnummer wählt man die Ganzzahl, beim Saisonbild nimmt man Media. In der Box Mannschaft stehen alle Teams zur Auswahl, die sich im aktuellen SysFolder befinden. Darum muss sich die Team-Notiz auch immer im passenden SysFolder befinden. Ist ein Team ausgewählt, füllt sich die Box Person mit allen Spielern des Teams und der betreffende Spieler kann gewählt werden. Schritt 3: Frontendausgabe """""""""""""""""""""""""" Die Ausgabe der Daten erfolgt derzeit ausschließlich über den View Teamdarstellung. Den HTML-Marker ermittelt man nach folgendem Prinzip: ###TEAM\_PLAYER\_TN[HTML-Marker]### Für unsere beiden Beispiele müssen also diese Marker verwendet werden: ###TEAM\_PLAYER\_TNTRIKOT### ###TEAM\_PLAYER\_TNPICTURE### .. _Schritt-4-Typoscript-Formatierung: Schritt 4: Typoscript-Formatierung """""""""""""""""""""""""""""""""" Damit die Daten im FE ausgegeben werden, muss jeweils eine zusätzliche Angabe im TypoScript Template gemacht werden. Auch hier ist wieder der in der Team-Notiz verwendete HTML-Marker von Bedeutung. Die Konfiguration muss im TS-Objekt für den Spieler gemacht werden. Am besten verwendet man dafür das Default-Objekt **lib.t3sports.profile** . |img-18| *Abbildung 15: Die Team-Notizen mit den Markern trikot, picture und position werden initialisiert.* Wenn statt dem Wert der Team-Notiz nur die UID ausgegeben wird, dann stimmt die Typoscript-Konfiguration nicht. Am besten prüft man in diesem Fall das TS-Setup mit dem **Typoscript-Objectbrowser** . Dieser befindet sich im Modul **Templates** . Im Seitenbaum wählt man die Seite, auf der die Ausgabe erfolgen soll. Die Typoscript- Konfiguration sollte dann so wie im Screenshot abgebildet sein. |img-19| *Abbildung 16: Eine korrekte TS-Konfiguration für Team- Notizen* .. _Integration-der-Spiele-als-Event-in-der-Extension-Calendar-base-cal: Integration der Spiele als Event in der Extension Calendar base (cal) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Es ist möglich die Spiele als Termine in einem Kalender darzustellen. Dafür müssen die folgenden Schritte durchgeführt werden: Über den Extension Manager muss in der Extension T3sports FE die Option **Enable Integration for Calendar Base** aktiviert werden. Anschließend muss das static Template **League Management cal- events** eingebunden werden. Dieses muss unbedingt **nach** dem normalen static Template der Extension stehen, da es sich auf dessen Angaben bezieht! |img-20| *Illustration 17: Das Kalendertemplate der Ligaverwaltung muss nach dem normalen Tempalte stehen.* Im Plugin des Kalenders muss die Seite mit den Spielen nun als Quelle für Termine mit angegeben werden: |img-21| Die Gestaltung des Layouts geschieht über ein HTML-Template. Eine Vorlage liegt unter ext:cfc\_league\_fe/views/templates/match\_event.html. Damit nun nicht alle Spiele gezeigt werden, kann wie üblich die Auswahl vorher eingeschränkt werden. In diesem Fall aber nur per Typoscript: :: 01: plugin.tx_cal_controller { 02: view.cfc_league_events { 03: # Eigenes Template einbinden 04: template = fileadmin/templates/match_events.html 05: # Es kann auf die gleichen Werte, wie in den normalen Views eingegrenzt werden 06: # Andernfalls werden alle Spiele im Kalender eingetragen 07: # Die folgenden Werte sind jeweils UIDs und müssen natürlich angepaßt werden! 08: # Die Saison wird nicht eingegrenzt, damit sind jedes Jahr aktualisiert werden muss 09: # saisonSelection = 10: # Altersklasse festlegen 11: groupSelection = 1 12: # Vereinsauswahl 13: clubSelection = 3 14: # Wettbewerbsauswahl in diesem Fall nicht gesetzt 15: # competitionSelection = 16: } 17: } In diesem Typoscript-Beispiel werden also alle Spiele gefunden, deren Altersklasse die UID 1 hat und bei denen Teams des Vereins mit der UID 3 antreten. Diese Angaben können auch direkt im Plugin von Calendar Base im Tab Typoscript eingegeben werden. Dann muss man die äußere Klammer natürlich weglassen (plugin.tx\_cal\_controller). Bei Problemen ist es möglich die Datenbank-Query im FE anzeigen zu lassen, mit der die Spiele in der Datenbank gesucht werden. Dafür muss man im Plugin von Calendar Base im Tab Typoscript folgende Angabe machen: :: view.cfc_league_events.debug = 1 **Weitere Optionen:** :: view.cfc_league_events.ignoreDummy = 0/1 (Spielfrei nicht anzeigen) view.cfc_league_events.competitionTypes = 0/1/2 (Wettbewerbstypen: Sonstige/Liga/Pokal) view.cfc_league_events. CompetitionObligation = 0/1/2 (Pflichtwettbewerbe: Alle/Pflicht/Freundschaft) view.cfc_league_events.limit = 10 (maximale Anzahl Ergebnisse) view.cfc_league_events.liveticker = 0/1 (Nur Livetickerspiele anzeigen) Darüber hinaus können weitere Angaben direkt über die üblichen Fields und Options gesetzt werden: :: view.cfc_league_events.fields. view.cfc_league_events.options. Sollte nach dieser Angabe im FE keine Ausgabe erfolgen, dann ist die Integration nicht korrekt konfiguriert. Ursache kann eine falsche Reihenfolge der Static Templates sein oder eine fehlende Aktivierung über den Extension Manager. .. _Einen-Teaser-fr-das-nchste-Spiel-einer-Mannschaft-erstellen: Einen Teaser für das nächste Spiel einer Mannschaft erstellen ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Für diese Darstellung wird der View Spielplan verwendet. Wir müssen den Scope zunächst so einstellen, daß wir einen Mannschaftsspielplan erhalten. Es muss also mindestens die Altersklasse und der Verein des Teams festgelegt werden. Optional kann natürlich auch die Saison und der Wettbewerb eingeschränkt werden. Bei letzterem kann man dann zum Beispiel auch speziell das nächste Pokalspiel anzeigen. :: 01: # Ein neues Objekt anlegen, daß später z.B. einem Marker zugeordnet werden kann. 02: lib.nextMatch < plugin.tx_cfcleaguefe_competition 03: action = tx_cfcleaguefe_actions_MatchTable 04: # UID der Saison 05: saisonSelection = 4 06: # UID der Altersklasse 07: groupSelection = 1 08: # UID des Vereins 09: clubSelection = 3 00: # Der Wettbewerb wird nicht eingeschränkt 11: # competitionSelection = 12: # Sicher soll ein spezielles Template verwendet werden 13: matchtableTemplate = fileadmin/templates/nextmatch_teaser.html 14: # Nur Spiele der nächsten 20 Tage betrachten 15: matchtable.timeRangeFuture = 20 16: # Jetzt die Ergebnisliste auf das erste Spiel beschränken 17: matchtable.options.limit = 1 18: # nur angesetzte und laufende Spiele anzeigen 19: matchtable.fields.MATCH.STATUS.OP_IN_INT = 0,1 20: } .. _Einen-Teaser-fr-das-letzte-Spiel-einer-Mannschaft-erstellen: Einen Teaser für das letzte Spiel einer Mannschaft erstellen ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Im Prinzip funktioniert das wie im vorherigen Beispiel. Es sind nur kleine Anpassungen notwendig: :: 01: lib.lastMatch =< lib.nextMatch 02: lib.lastMatch { 03: matchtable { 04: fields.MATCH.STATUS.OP_IN_INT = 2 05: # Wichtig: Absteigend nach Datum sortieren! 06: options.ORDERBY.MATCH.DATE = DESC 07: timeRangePast = 20 08: timeRangeFuture = 1 09: } 10: } .. _Erstellung-eines-Teasers-der-aktuellen-Ligatabelle: Erstellung eines Teasers der aktuellen Ligatabelle ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Man kann recht einfach auch eine Kurztabelle erstellen, die man dann am Seitenrand als Teaser plaziert. Mit TypoScript sind die folgenden Angaben notwendig: :: 01: lib.shortTable < plugin.tx_cfcleaguefe_competition 02: lib.shortTable { 03: action = tx_cfcleaguefe_actions_LeagueTableShow 04: tablescope = 0 05: tabletype = 0 06: # Hier die UID des Vereins 07: leaguetable.tablecfg.markClubs = 123 08: # Hier die UID des Wettbewerbs 09: competitionSelection = 123 10: leaguetableTemplate = fileadmin/mytableteaser.html 11: # Anzahl der gezeigten Teams 12: leaguetable.tablecfg.tableSize = 5 13: } Das Objekt **lib.shortTable** kann man dann in einen Marker seines Typoscript-Templates einbauen. Es ist auch möglich die Anzahl der Teams in der Tabelle direkt über das Plugin zu ändern. Hierzu gibt man im Tab Typoscript einfach diese Zeile ein: :: leagueTableSize = 5 .. _Umgang-mit-Bildern: Umgang mit Bildern ^^^^^^^^^^^^^^^^^^ Mit der Version 0.6.0 wurde eine Umstellung der Bildausgabe vorgenommen. Die Ausgabe der Bilder erfolgt jetzt über eine einheitliche Schnittstelle und kann per Typoscript und einem HTML- Template (fast) beliebig angepasst werden. Es sollte möglich sein, so gut wie jede Javascript-Gallerie einzubinden. Vorlagen für `Lightbox `_ und `Galleriffic `_ werden bereits mitgeliefert. Am Beispiel des Spielberichts soll gezeigt werden, wie man eine Gallerie für die Ausgabe der Bilder einbindet. Im HTML-Template des Spiels befindet sich lediglich der Marker ###MATCH\_PICTURES###. Diesem ist per Typoscript folgende Konfiguration zugewiesen: :: lib.t3sports.match { pictures = USER pictures { userFunc = tx_rnbase_util_TSDAM->printImages refField = dam_images refTable = tx_cfcleague_games template = EXT:cfc_league_fe/res/lightboxpics.html subpartName = ###PICTURES### media { file = IMG_RESOURCE file.file.import.field = file file.file.maxW = {$plugin.tx_cfcleaguefe_report.maxW_matchPicture} file.file.maxH = {$plugin.tx_cfcleaguefe_report.maxH_matchPicture} thumbnail < .file thumbnail = IMAGE thumbnail.file.maxW = {$plugin.tx_cfcleaguefe_report.maxW_matchThumb} thumbnail.file.maxH = {$plugin.tx_cfcleaguefe_report.maxH_matchThumb} thumbnail.params = border="0" thumbnail.titleText.field = title } } } Wichtig ist zunächst der Verweis auf das HTML-Template **lightboxpics.html** . In diesem befindet sich im Subpart ###PICTURES### die Vorlage für die Ausgabe der Bilder. Für die Lightbox hat er folgendes Aussehen: :: ###PICTURES### ###MEDIAS######MEDIA### ###MEDIA_THUMBNAIL### ###MEDIA######MEDIAS### ###PICTURES### Es handelt sich also um eine gewöhnliche Listenausgabe. Die Typoscript-Formatierung für MEDIA, es handelt sich hier um Datensätze der Tabelle tx\_dam, befindet sich mit im obigen TS-Code. Die Ausgabe verwendet nur die Marker **MEDIA\_FILE** und **MEDIA\_THUMBNAIL** . Der erste Marker liefert die URL aus das komplette Bild und der zweite Marker ein Image-Tag auf das Thumbnail. Damit nun wirklich eine Lightbox angezeigt wird, muss man das notwendige Javascript noch in die Seite einbinden. Dafür kann man z.B. auf der FE-Seite mit dem Spielbericht ein neues Typoscript-Template anlegen und folgenden Code integrieren: :: page.headerData.77 = TEXT page.headerData.77.value ( ) Die entsprechenden Dateien müssen natürlich an der angegebenen URL vorhanden sein. .. _Galleriffic: Galleriffic """"""""""" Um die Bildausgabe auf Galleriffic umzustellen sind zwei Änderungen notwendig. Erstens muss die HTML-Vorlage auf die Datei EXT:cfc\_league\_fe/res/gallerifficpics.html umgestellt werden. Speziell für den Spielbericht ist folgende TS-Anweisung möglich: :: plugin.tx_cfcleaguefe_report { matchreport.match.pictures.template = EXT:cfc_league_fe/res/gallerifficpics.html } Und dann muss natürlich noch die JS-Bibliothek gewechselt werden: :: page.headerData.55 = TEXT page.headerData.55.value ( ) .. _Verschiedene-Altersklassen-in-einem-Wettbewerb: Verschiedene Altersklassen in einem Wettbewerb ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Es ist grundsätzlich möglich, daß in einem Wettbewerb verschiedene Altersklassen gegeneinander antreten. In Pokal-Wettbewerben sind z.B. häufig neben der 1. Mannschaft auch Teams der U23 vertreten. Mit Version 0.6.0 können daher einem Wettbewerb mehrere Altersklasse zugeordnet werden. Um dann auch weiterhin eine Einschränkung des Scopes auf die Spieler genau einer Altersklasse zu ermöglichen, kann auch im Teams genau eine Altersklasse eingestellt werden. Diese Erweiterung des Datenmodells hat Auswirkungen auf die meisten Ausgaben des Wettbewerbs-Plugins. Um bspw. den Team-Spielplan der U23 eines Vereins zu zeigen, setzte man bisher den Scope auf die Altersgruppe „U23“ und den Verein auf den gewünschten Wert. Wenn aber jetzt zwei Teams des selben Vereins im selben Wettbewerb spielen, dann werden natürlich zu viele Spiele geliefert. Als Lösung muss man zusätzlich in den beiden betroffenen Teams die richtige Altersklasse einstellen und per Typoscript den Scope erweitern: :: plugin.tx_cfcleaguefe_competition.scope.teamGroup = 1 Mit dieser Anweisung wird zusätzlich noch die Altersklasse des Teams in den Scope mit eingeschlossen. Dieses Vorgehen wirkt dann natürlich auch analog bei den Statistiken. .. _Link-auf-Spielbericht-aus-einer-tt-news-Meldung: Link auf Spielbericht aus einer tt\_news-Meldung ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Seit Version 0.3.3 ist es möglich in Meldungen von tt\_news direkte Links auf Views von T3sports zu setzen. Der „Link“ in der Meldung hat dabei ein besonderes Format: :: [t3sports:tsconfigid:parameter{,parameter} Link Label] Das sieht etwas kyptisch aus, ist aber am konkreten Beispiel überschaubar. Hier der Link auf den Spielbericht der Partie mit der UID 123: :: [t3sports:matchreport:123 Zum Spielbericht] Damit dieser Link funktioniert, müssen im Typoscript-Setup von **tt\_news** einige Einstellungen getroffen werden: :: 01: plugin.tt_news { 02: external_links { 03: matchreport { 04: ext_parameters = matchId 05: pid = {$plugin.tx_cfcleaguefe_report.matchreportpage} 06: } 07: profile { 08: ext_parameters = profileId 09: pid = {$plugin.tx_cfcleaguefe_competition.playerpage} 10: } 11: } 12: } In dieser Konfiguration ist bereits eine weitere Einstellung für die Verlinkung auf einzelne Spieler mit eingebaut. Der entsprechende Link hat dann dieses Aussehen: :: [t3sport:profile:11 Die Person mit der UID 11] |img-22| *Abbildung 18: Links in tt\_news* |img-23| *Abbildung 19: Und die Ausgabe auf der Webseite* Nach diesem Prinzip können auch Links auf weitere Views von T3sports eingerichtet werden. Beim Link auf den Spielbericht ist zusätzlich die Altersgruppe des Spiels als Register **T3SPORTS\_GROUP** gesetzt. Damit kann man die Zielseite dann auch variieren: :: plugin.tt_news { external_links { matchreport { ext_parameters = matchId pid > pid.cObject = CASE pid.cObject { key.data = register:T3SPORTS_GROUP 2 = TEXT 2.value = 123 default = TEXT default.value = {$plugin.tx_cfcleaguefe_report.matchreportpage} } } } } In diesem Beispiel wird für die Altersgruppe mit der UID 2 die Zielseite mit der UID 123 verwendet. Für alle anderen Altersgruppen wird weiter die Standardseite verwendet. .. _Lokalisierung-von-HTML-Templates: Lokalisierung von HTML-Templates ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Seit Version 0.4.0 besteht die Möglichkeit beliebige Sprach-Marker in den Views von T3sports zu integrieren. Dafür muss zunächst per Typoscript der Marker definiert werden. Als Beispiel soll ein Marker für den Begriff Team angelegt werden. Per Typoscript definiert man folgende Übersetzung: :: plugin.tx_cfcleaguefe_report { _LOCAL_LANG { default.label_team = Team de.label_team = Mannschaft } } In den HTML-Templates des Plugins **T3sports: Berichte** kann nun der Marker **###LABEL\_TEAM###** verwendet werden. Für das Plugin **T3sports: Ligaverwaltung** verwendet man analog folgendes Setup: :: plugin.tx_cfcleaguefe_competition { _LOCAL_LANG { default.label_team = Team de.label_team = Mannschaft } } Die Sprachmarker beginnen also immer mit **LABEL\_** . Der Rest ist dann frei wählbar und man kann beliebig viele Marker anlegen. .. _Administration: Administration -------------- Die Installation erfolgt wie üblich über den Extension-Manager. Es ist wichtig das Static-Template der Extension auf den Seiten mit den Plugins zu integrieren. |img-24| *Abbildung 20: Das Static-Template von T3sports einbinden* Die Extension funktioniert nur mit PHP5. Bei MySQL wird Version 5 empfohlen. Bei MySQL4 kann es bei einigen Views zu Problemen kommen. .. _Verwendung-ohne-DAM: Verwendung ohne DAM ^^^^^^^^^^^^^^^^^^^ Wenn T3sports ohne DAM eingesetzt wird, dann muss das zusätzliche Static Template „T3sports without DAM“ eingebunden werden. Es muss unbedingt NACH dem Standardtemplate stehen. Dieses Template stellt die Ausgabe aller Grafiken um. .. _Verwendung-mit-FAL: Verwendung mit FAL ^^^^^^^^^^^^^^^^^^ Ab der Version 0.9.1 kann T3sports in TYPO3 6.x im Zusammenspiel mit FAL verwendet werden. Mit FAL (File Abstraction Layer) wird die externe Extension DAM obsolet und kann auch nicht mehr installiert werden. T3sports erkennt im Backend automatisch das Vorhandensein von FAL und stellt die Eingabemasken entsprechend um. Für die Ausgabe im Frontend muss aber das zusätzliche Static Template „T3sports with FAL“ eingebunden werden. Auch dieses Template muss NACH dem Standard- Template eingereiht werden! .. _FAQ: FAQ ^^^ -TYPO3 Fatal Error: Extension key "rn\_base" was NOT loaded! (t3lib\_extMgm::extPath) Wenn man diese Meldung von TYPO3 erhält, dann hat man bei der Installation der Extension vermutlich die Abhängigkeitshinweise des Extension-Managers ignoriert. Wenn man noch Zugriff auf das TYPO3-Backend hat, sollte man die fehlenden Extensions noch installieren. Sollte dies nicht mehr möglich sein, dann muss man in der Datei typo3conf/localconf.php die Extensions cfc\_league und cfc\_league\_fe manuell aus dem Array $TYPO3\_CONF\_VARS['EXT']['extList'] entfernen. Dann die temp\_CACHED\_-Dateien löschen. Der Zugang zum Backend sollte nun wieder funktionieren. .. _Configuration: Configuration ------------- Für die TypoScript-Konfiguration wird auf das Static Template der Extension verwiesen. Dort sind viele Beispiele enthalten, die an die eigenen Bedürfnisse angepaßt werden können. Generell können alle Einstellungen der Flexforms auch über TS gesetzt werden. Es ist durchaus möglich, daß einzelne Einstellungen noch nicht unterstützt werden. .. _CSS: CSS ^^^ Ich habe vorerst darauf verzichtet eine neutrale CSS-Formatierung fest in die Extension zu integrieren. Das liegt vor allem daran, weil ich noch keine erstellt habe... Im Verzeichnis **EXT:cfc\_league\_fe/res/** liegt allerdings eine CSS-Datei die als Vorlage verwendet werden kann. Man sollte die Datei in den Ordner fileadmin kopieren und diese dann per Typoscript in sein Template einbinden: :: page.includeCSS { t3sports = fileadmin/cfcleague.css } .. _Reference-Plugin-Wettbewerb: Reference Plugin Wettbewerb ^^^^^^^^^^^^^^^^^^^^^^^^^^^ \- Properties of plugin.tx\_cfcleaguefe\_competition .. ### BEGIN~OF~TABLE ### .. _pidList: pidList """"""" .. container:: table-row Property pidList Data type Integer Description PageIDs der SysFolder mit den Event-Datensätzen PageIDs of SysFolders with event items. Default .. _action: action """""" .. container:: table-row Property action Data type String Description Name des Views, der gezeigt werden soll. Mehrere Angaben werden durch Komma getrennt. Mögliche Werte: - tx\_cfcleaguefe\_actions\_LeagueTableShow (Ligatabelle) - tx\_cfcleaguefe\_actions\_MatchTable (Spielplan) - tx\_cfcleaguefe\_actions\_TableChart (Tabellenfahrt) - tx\_cfcleaguefe\_actions\_LiveTickerList (Liste der Liveticker) - tx\_cfcleaguefe\_actions\_PlayerStatistics (Spielerstatistik) - tx\_cfcleaguefe\_actions\_CompetitionSelection (Wettbewerbsauswahl) **Example** Um einen Spielplan mit Wettbewerbsauswahl anzuzeigen wäre folgender Eintrag notwendig: :: plugin.tx_cfcleaguefe_competition { action = tx_cfcleaguefe_CompetitionSelection,tx_cfcleaguefe_MatchTable } Default .. _saisonSelection: saisonSelection """"""""""""""" .. container:: table-row Property saisonSelection Data type Integer Description Scopeauswahl: UID der Saison, die gezeigt werden soll. Mehrere Einträge werden durch Komma getrennt Default .. _saisonSelectionInput: saisonSelectionInput """""""""""""""""""" .. container:: table-row Property saisonSelectionInput Data type Boolean Description Legt fest, ob für die Saisondatensätze eine Auswahlmöglichkeit im FE gezeigt werden soll. Default 0 .. _groupSelection: groupSelection """""""""""""" .. container:: table-row Property groupSelection Data type Integer Description Scopeauswahl: UID der Altersklasse, die gezeigt werden soll. Mehrere Einträge werden durch Komma getrennt Default .. _groupSelectionInput: groupSelectionInput """"""""""""""""""" .. container:: table-row Property groupSelectionInput Data type Boolean Description Legt fest, ob für die Altersgruppe eine Auswahlmöglichkeit im FE gezeigt werden soll. Default 0 .. _competitionSelection: competitionSelection """""""""""""""""""" .. container:: table-row Property competitionSelection Data type Integer Description Scopeauswahl: UID des Wettbewerbs, der gezeigt werden soll. Mehrere Einträge werden durch Komma getrennt Default .. _competitionSelectionInput: competitionSelectionInput """"""""""""""""""""""""" .. container:: table-row Property competitionSelectionInput Data type Boolean Description Legt fest, ob für den Wettbewerb eine Auswahlmöglichkeit im FE gezeigt werden soll. Default 0 .. _clubSelection: clubSelection """"""""""""" .. container:: table-row Property clubSelection Data type Integer Description Scopeauswahl: UID des Vereins, der gezeigt werden soll. Mehrere Einträge werden durch Komma getrennt Default .. _clubSelectionInput: clubSelectionInput """""""""""""""""" .. container:: table-row Property clubSelectionInput Data type Boolean Description Legt fest, ob für den Verein eine Auswahlmöglichkeit im FE gezeigt werden soll. (Funktioniert noch nicht!) Default 0 .. _scopeTemplate: scopeTemplate """"""""""""" .. container:: table-row Property scopeTemplate Data type String Description Name des Templates für die Scopeauswahl **Example** :: plugin.tx_ cfcleaguefe_competition { template = fileadmin/templates/liga/scope.html } Default .. _matchtable-match-links-report-pid: matchtable.match.links.report.pid """"""""""""""""""""""""""""""""" .. container:: table-row Property matchtable.match.links.report.pid Data type Integer Description PageID der Seite mit dem Spielbericht. Wird im Spielplan verwendet. Default .. _matchtable-timeRangePast: matchtable.timeRangePast """""""""""""""""""""""" .. container:: table-row Property matchtable.timeRangePast Data type Integer Description Zeitliche Eingrenzung des Spielplan um x Tage in die Vergangenheit Default 0 .. _matchtable-timeRangeFuture: matchtable.timeRangeFuture """""""""""""""""""""""""" .. container:: table-row Property matchtable.timeRangeFuture Data type Integer Description Zeitliche Eingrenzung des Spielplan um x Tage in die Zukunft Default 0 .. _matchtableTemplate: matchtableTemplate """""""""""""""""" .. container:: table-row Property matchtableTemplate Data type String Description Name des Templates für den Spielplan Default .. _tablescope: tablescope """""""""" .. container:: table-row Property tablescope Data type Integer Description Ligatabelle: Einstellung des Tabellenscopes: - 0 – normal - 1 – Hinrunde - 2 – Rückrunde Default 0 .. _tablescopeSelectionInput: tablescopeSelectionInput """""""""""""""""""""""" .. container:: table-row Property tablescopeSelectionInput Data type Boolean Description Legt fest, ob für den Tablescope eine Auswahlmöglichkeit im FE gezeigt werden soll. Default 0 .. _tabletype: tabletype """"""""" .. container:: table-row Property tabletype Data type Integer Description Ligatabelle: Einstellung des Tabellentyps: - 0 – normal - 1 – Heimtabelle - 2 – Auswärtstabelle Default 0 .. _tabletypeSelectionInput: tabletypeSelectionInput """"""""""""""""""""""" .. container:: table-row Property tabletypeSelectionInput Data type Boolean Description Legt fest, ob für den Tabellentyp eine Auswahlmöglichkeit im FE gezeigt werden soll. Default 0 .. _pointSystemSelectionInput: pointSystemSelectionInput """"""""""""""""""""""""" .. container:: table-row Property pointSystemSelectionInput Data type Boolean Description Legt fest, ob für das Punktesystem eine Auswahlmöglichkeit im FE gezeigt werden soll. Default 0 .. _showLiveTable: showLiveTable """"""""""""" .. container:: table-row Property showLiveTable Data type Boolean Description Legt fest, ob im FE eine Livetabelle gezeigt werden soll. (Funktioniert noch nicht!) Default .. _markClubs: markClubs """"""""" .. container:: table-row Property markClubs Data type Integer Description Ligatabelle: UIDs der Vereine, deren Teams in der Tabelle hervorgehoben werden sollen. Mehrere Einträge werden durch Komma getrennt. Default .. _leaguetableTemplate: leaguetableTemplate """"""""""""""""""" .. container:: table-row Property leaguetableTemplate Data type String Description Name des Templates für die Ligatabelle. Default .. _leagueTableSize: leagueTableSize """"""""""""""" .. container:: table-row Property leagueTableSize Data type Integer Description Anzahl der Tabellenplätze die maximal gezeigt werden. Dies kann für die Darstellung von Teaser-Tabellen verwendet werden. Wenn die Teams eines Vereins hervorgehoben werden (markClubs), dann wird die Darstellung auf diese Teams ausgerichtet. Sonst beginnt die Darstellung an der Tabellenspitze. Default 0 .. _chartClubs: chartClubs """""""""" .. container:: table-row Property chartClubs Data type Integer Description Tabellenfahrt: UIDs der Vereine, deren Teams in der Tabellenfahrt hervorgehoben werden sollen. Mehrere Einträge werden durch Komma getrennt. Wenn keine Angabe gemacht wird, werden alle Teams der Liga in der Grafik angezeigt. Default 0 .. _chartColors: chartColors """"""""""" .. container:: table-row Property chartColors Data type String Description Angabe der Teamfarben in der Tabellenfahrt. Mehrere Werte werden durch Komma getrennt. Die Farben können als Text (red, yellow, blue uws.) oder hexadezimal angegeben werden. Es gelten die Vorgaben der Chartextension. Default .. _playerStatsSortOrder: playerStatsSortOrder """""""""""""""""""" .. container:: table-row Property playerStatsSortOrder Data type Integer Description Sortierung der Spieler in der Ausgabe der Spielerstatistik. - 0 – alphabetisch - 1 – Reihenfolge wie im Teamdatensatz Default 0 .. _playerStatsTimeout: playerStatsTimeout """""""""""""""""" .. container:: table-row Property playerStatsTimeout Data type Integer Description Timeout des Caches für die Spielerstatistiken in Minuten. Default 0 .. _playerstatsTemplate: playerstatsTemplate """"""""""""""""""" .. container:: table-row Property playerstatsTemplate Data type String Description Name des Templates für die Spielerstatistik. Default .. _tickerlist-match-links-report-pid: tickerlist.match.links.report.pid """"""""""""""""""""""""""""""""" .. container:: table-row Property tickerlist.match.links.report.pid Data type Integer Description PID der Seite mit dem Spielbericht auf die in der Livetickerliste verlinkt wird. Default .. _tickerReportUrl: tickerReportUrl """"""""""""""" .. container:: table-row Property tickerReportUrl Data type String Description Feste URL einer Seite mit dem Spielbericht, auf die in der Livetickerliste verlinkt wird. Default .. _templateLiveTickerList: templateLiveTickerList """""""""""""""""""""" .. container:: table-row Property templateLiveTickerList Data type String Description Name des Templates für die Liste der Liveticker. Default .. ###### END~OF~TABLE ###### .. _Reference-Ligatabelle: Reference Ligatabelle """"""""""""""""""""" \- Properties of plugin.tx\_cfcleaguefe\_competition.leaguetable .. ### BEGIN~OF~TABLE ### .. _viewType: viewType ~~~~~~~~ .. container:: table-row Property viewType Data type HTML, PHP Description Art des Templates Default HTML .. _teamPage: teamPage ~~~~~~~~ .. container:: table-row Property teamPage Data type Integer Description PID der Seite für die Teamdarstellung Default .. _table: table ~~~~~ .. container:: table-row Property table Data type ->Team Description Formatierung einer Tabellenzeile. Jede Zeile entspricht in der Ligatabelle natürlich einem Team. Daher sind alle Attribute des Teams erweitert um einige Zusatzangaben für den Tabellenstand verfügbar und können per stdWrap formatiert werden. Die Zusatzangaben für die Tabelle sind in den folgenden Zeilen aufgeführt. Es sei noch einmal ausdrücklich darauf hingewiesen, daß alle Attribute im HTML-Template per Marker ausgegeben werden können. Default .. _table-roll-value: table.roll.value ~~~~~~~~~~~~~~~~ .. container:: table-row Property table.roll.value Data type Integer Description Wechsel der Zeilendarstellung. Kann im Template über den Marker ###ROW\_ROLL### ausgegeben werden. Es ist immer eine Zahl bei 0 beginnend und bei table.roll.value endend. In jeder neuen Zeile wird der Wert um 1 erhöht. Mit diesem Wert kann man entsprechende CSS-Klassen ansprechen. Default 1 .. _table-markClub: table.markClub ~~~~~~~~~~~~~~ .. container:: table-row Property table.markClub Data type stdWrap Description Markierung von bestimmten Teams. Gehört ein Team zu einem Verein, der markiert werden soll, dann ist dieser Wert auf 1 gesetzt. Es wird ein entsprechender Marker im Template ausgegeben. In der Standardkonfiguration enthält er die CSS-Klasse cfcleague-leaguetable- rowTeam. Um diese Klasse zu ändern, ist folgende Anweisung notwednig: **Example** :: plugin.tx_ cfcleaguefe_competition { leaguetable.table.markClub.override = mein-css } Default .. _table-penalties: table.penalties ~~~~~~~~~~~~~~~ .. container:: table-row Property table.penalties Data type stdWrap Description Ist ein Team mit einer Wettbewerbsstrafe belegt worden, dann enthält dieser Wert die Anzahl der Strafen Default .. _table-points: table.points ~~~~~~~~~~~~ .. container:: table-row Property table.points Data type stdWrap Description Punktezahl des aktuellen Teams Default .. _table-points2: table.points2 ~~~~~~~~~~~~~ .. container:: table-row Property table.points2 Data type stdWrap Description Im 2-Punkte-System die Anzahl der negativen Punkte des aktuellen Teams Default .. _table-goals1: table.goals1 ~~~~~~~~~~~~ .. container:: table-row Property table.goals1 Data type stdWrap Description Erzielte Tore des aktuellen Teams Default .. _table-goals2: table.goals2 ~~~~~~~~~~~~ .. container:: table-row Property table.goals2 Data type stdWrap Description Gegentore des aktuellen Teams Default .. _table-goals-diff: table.goals\_diff ~~~~~~~~~~~~~~~~~ .. container:: table-row Property table.goals\_diff Data type stdWrap Description Tordifferenz des aktuellen Teams Default .. _table-matchCount: table.matchCount ~~~~~~~~~~~~~~~~ .. container:: table-row Property table.matchCount Data type stdWrap Description Anzahl der absolvierten Spiele des aktuellen Teams Default .. _table-winCount: table.winCount ~~~~~~~~~~~~~~ .. container:: table-row Property table.winCount Data type stdWrap Description Anzahl der gewonnenen Spiele des aktuellen Teams Default .. _table-loseCount: table.loseCount ~~~~~~~~~~~~~~~ .. container:: table-row Property table.loseCount Data type stdWrap Description Anzahl der verlorenen Spiele des aktuellen Teams Default .. _table-drawCount: table.drawCount ~~~~~~~~~~~~~~~ .. container:: table-row Property table.drawCount Data type stdWrap Description Anzahl der unentschiedenen Spiele des aktuellen Teams Default .. _table-position: table.position ~~~~~~~~~~~~~~ .. container:: table-row Property table.position Data type stdWrap Description Tabellenposition des aktuellen Teams Default .. _table-mark: table.mark ~~~~~~~~~~ .. container:: table-row Property table.mark Data type stdWrap Description Markierung von bestimmten Tabellenpositionen. Diese Markierungen werden im Wettbewerbsdatensatz eingestellt. Default .. _table-markLabel: table.markLabel ~~~~~~~~~~~~~~~ .. container:: table-row Property table.markLabel Data type stdWrap Description Label der Markierung. Default .. _implode: implode ~~~~~~~ .. container:: table-row Property implode Data type String Description Ein String der zwischen alle Tabellenzeilen eingefügt wird. Default .. _penalty: penalty ~~~~~~~ .. container:: table-row Property penalty Data type ->Penalty Description Formatierung einer Wettbewerbsstrafe. Diese können als gesonderter Block angezeigt werden. Es können alle Attribute per stdWrap formatiert werden. Default .. _penalty-implode: penalty.implode ~~~~~~~~~~~~~~~ .. container:: table-row Property penalty.implode Data type String Description Ein String der zwischen alle Wettbewerbsstrafen eingefügt wird. Default .. _controls: controls ~~~~~~~~ .. container:: table-row Property controls Data type Description Anpassung der Tabellensteuerung Default .. _controls-tabletype: controls.tabletype ~~~~~~~~~~~~~~~~~~ .. container:: table-row Property controls.tabletype Data type ->tableControl Description Formatierung der Steuerung des Tabellentyps (Heim/Auswärts) Default .. _controls-tablescope: controls.tablescope ~~~~~~~~~~~~~~~~~~~ .. container:: table-row Property controls.tablescope Data type ->tableControl Description Formatierung der Steuerung des Tabellenscopes (Hin/Rückrunde) Default .. _controls-pointsystem: controls.pointsystem ~~~~~~~~~~~~~~~~~~~~ .. container:: table-row Property controls.pointsystem Data type ->tableControl Description Formatierung der Steuerung des Punktesystems Default .. ###### END~OF~TABLE ###### **tableControl** \- Properties of plugin.tx\_cfcleaguefe\_competition.leaguetable.controls.tabletype / tablescope / pointsystem .. ### BEGIN~OF~TABLE ### .. _current: current ~~~~~~~ .. container:: table-row Property current Data type stdWrap Description Formatierung des aktuellen Wertes Default .. _current-noLink: current.noLink ~~~~~~~~~~~~~~ .. container:: table-row Property current.noLink Data type Integer Description Wenn gesetzt, wird um den aktiven Wert kein Link erstellt. Default 1 .. _0-1-2: 0, 1, 2 ~~~~~~~ .. container:: table-row Property 0, 1, 2 Data type stdWrap Description Steht für den jeweiligen Typ. Im TableScope steht die 1 für die Hinrunde, die 2 für die Rückrunde. Da es derzeit noch keine Label- Marker gibt, kann man die Strings per stdWrap einstellen: **Example** :: plugin.tx_ cfcleaguefe_competition { leaguetable.controls.tablescope{ 0.override = Normal 1.override = Hinrunde 2.override = Rückrunde } } Default .. ###### END~OF~TABLE ###### To be continued... .. _FAQ: FAQ ^^^ .. _Warum-ist-diese-Extension-noch-im-Beta-Status-Es-scheint-doch-alles-zu-funktionieren: Warum ist diese Extension noch im Beta-Status? Es scheint doch alles zu funktionieren. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Der Grund dafür ist eher organisatorischer Natur. Durch der Beta- Status halte ich mir die Möglichkeit offen, grundlegende Änderungen am Code oder der Konfiguration vorzunehmen, ohne auf die Kompatibilität zu früheren Version Rücksicht nehmen zu müssen. Wie groß die Änderungen sind, die bei einem Update der Extension zu erwarten sind, kann man an der neuen Versionsnummer erkennen. Sollte sich nur die Buildnummer ändern, ist das Update ohne größere Änderungen möglich. Bei einer Erhöhung der Minor- oder Major-Nummer sind dagegen größere Änderungen zu erwarten. Hinweise zu den Umstellung befinden sich entweder in der Datei ChangeLog oder im Wiki `http://cfcleague.wiki.sourceforge.net/ReleaseNotesFE `_ . .. _Known-problems: Known problems -------------- .. _Developers-Sections: Developers Sections ------------------- There are several ways to extend T3sports for your special need. Of course you can use Xclasses but this is a bad way, because your changes could break in a future version. A better way is to use hooks. If you need one, drop me a line and I will include it in the next version. .. _Include-Markers-with-services: Include Markers with services ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Starting with version 0.3.0 it is possible to integrate markers in HTML templates by TYPO3-services. The principle is adopted from extension **Calendar Base** . You will find a complete example in folder **ext:cfc\_league\_fe/svmarker/** . All you need to do is to write a new service class with a method getMarkerValue($params, $formatter). For a complete example check out EXT:cfc\_league\_fe/svmarker/class.tx \_cfcleaguefe\_svmarker\_ChartMatch.php This add the marker **###MARKERMODULE\_\_CHARTMATCH###** used in match report to include a chart of opponent teams. .. _To-Do-list: To-Do list ---------- Eventuell eine alternative Extension für die Tabellenfahrt integrieren .. _Changelog: Changelog --------- \- 130525: Aktualisierungen für Version 0.9.1 \- 091106: Aktualisierungen für Version 0.6.0 \- 080630: Aktualisierungen für Version 0.4.4 \- 080607: Aktualisierungen für Version 0.4.0 \- 080507: tt\_news Integration erklärt \- 080503: Einige Angaben in der TS-Referenz korrigiert \- 070927: Den Abschnitt Common Tasks erstellt \- 070918: Erste Angaben zur TS-Referenz erstellt. \- 070828: Typen der Templates aktualisiert. \- 070823: Screenshots aktualisiert. \- Initiale Version. |img-25| EXT: T3sports FE - 20 .. ######CUTTER_MARK_IMAGES###### .. |img-1| image:: img-1.png .. :align: left .. :border: 0 .. :id: graphics14 .. :name: graphics14 .. :width: 100% .. |img-2| image:: img-2.png .. :align: left .. :border: 0 .. :id: graphics4 .. :name: graphics4 .. :width: 100% .. |img-3| image:: img-3.png .. :align: left .. :border: 0 .. :id: graphics16 .. :name: graphics16 .. :width: 100% .. |img-4| image:: img-4.png .. :align: left .. :border: 0 .. :id: graphics6 .. :name: graphics6 .. :width: 100% .. |img-5| image:: img-5.png .. :align: left .. :border: 0 .. :id: graphics7 .. :name: graphics7 .. :width: 100% .. |img-6| image:: img-6.png .. :align: left .. :border: 0 .. :id: graphics2 .. :name: graphics2 .. :width: 100% .. |img-7| image:: img-7.png .. :align: left .. :border: 0 .. :id: graphics1 .. :name: graphics1 .. :width: 100% .. |img-8| image:: img-8.png .. :align: left .. :border: 0 .. :id: graphics8 .. :name: graphics8 .. :width: 100% .. |img-9| image:: img-9.png .. :align: left .. :border: 0 .. :id: graphics9 .. :name: graphics9 .. :width: 100% .. |img-10| image:: img-10.png .. :align: left .. :border: 0 .. :height: 33 .. :id: graphics10 .. :name: graphics10 .. :width: 421 .. |img-11| image:: img-11.png .. :align: left .. :border: 0 .. :id: graphics11 .. :name: graphics11 .. :width: 100% .. |img-12| image:: img-12.png .. :align: left .. :border: 0 .. :height: 150 .. :hspace: 4 .. :id: graphics12 .. :name: graphics12 .. :vspace: 4 .. :width: 400 .. |img-13| image:: img-13.png .. :align: left .. :border: 0 .. :height: 236 .. :id: graphics13 .. :name: graphics13 .. :width: 400 .. |img-14| image:: img-14.png .. :align: left .. :border: 0 .. :id: Grafik4 .. :name: Grafik4 .. :width: 100% .. |img-15| image:: img-15.png .. :align: left .. :border: 0 .. :id: Grafik5 .. :name: Grafik5 .. :width: 100% .. |img-16| image:: img-16.png .. :align: left .. :border: 0 .. :id: Grafik6 .. :name: Grafik6 .. :width: 100% .. |img-17| image:: img-17.png .. :align: left .. :border: 0 .. :id: Grafik7 .. :name: Grafik7 .. :width: 100% .. |img-18| image:: img-18.png .. :align: left .. :border: 0 .. :id: Grafik8 .. :name: Grafik8 .. :width: 100% .. |img-19| image:: img-19.png .. :align: left .. :border: 0 .. :id: Grafik9 .. :name: Grafik9 .. :width: 100% .. |img-20| image:: img-20.png .. :align: left .. :border: 0 .. :id: graphics3 .. :name: graphics3 .. :width: 100% .. |img-21| image:: img-21.png .. :align: left .. :border: 0 .. :height: 79 .. :id: graphics15 .. :name: graphics15 .. :vspace: 11 .. :width: 350 .. |img-22| image:: img-22.png .. :align: left .. :border: 0 .. :id: Grafik1 .. :name: Grafik1 .. :width: 100% .. |img-23| image:: img-23.png .. :align: left .. :border: 0 .. :id: Grafik2 .. :name: Grafik2 .. :width: 100% .. |img-24| image:: img-24.png .. :align: left .. :border: 0 .. :id: Grafik3 .. :name: Grafik3 .. :width: 100% .. |img-25| image:: img-25.png .. :align: left .. :border: 0 .. :height: 32 .. :id: Graphic1 .. :name: Graphic1 .. :width: 102