Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:typo3:news

News-Erweiterung

In älteren Typo3 Versionen stand die tt_news Erweiterung zur Verfügung, welche seit Version 6 durch die Erweiterung news ersetzt werden muss. Auf dieser Seite sind einige Anleitungen zur Migration von tt_news zu news bzw. die Konfiguration der neuen Erweiterung gesammelt.

"Latest"-Ansicht für Startseiten

Die Latest-Ansicht soll z.B. auf der Startseite die letzten Nachrichten mit Titel und ggf. kurzem Teaser anzeigen. Es sollen keine Infos wie Kategorie, Datum und auch keine Bilder enthalten sein, um Platz zu sparen. Diese Anleitung orientiert sich an einer Anleitung von t3brightsight.

Einstellungen per TypoScript

Zunächst legt man hierzu ein neues Layout an. In der Seiten TS-Config wird folgendes hinzugefügt

tx_news.templateLayouts {
      1 = Latest Ansicht
      9 = Normale Ansicht
}

Anschließend müssen wir die Templates ändern. Damit die Änderungen bei einem Update nicht überschrieben werden, kopieren wir die Template-Dateien in das lokale Template-Verzeichnis und teilen Typo3 mit, wo die modifizierten Templates liegen. Dies geschieht nach Anleitung der news-Erweiterung in der TS-Config:

plugin.tx_news {
        view {
                templateRootPaths {
                        0 = EXT:news/Resources/Private/Templates/
                        1 = EXT:fileadmin/templates/ext/news/Templates/
                }
                partialRootPaths {
                        0 = EXT:news/Resources/Private/Partials/
                        1 = fileadmin/templates/ext/news/Partials/
                }
                layoutRootPaths {
                        0 = EXT:news/Resources/Private/Layouts/
                        1 = fileadmin/templates/ext/news/Layouts/
                }
        }
}

Die drei Verzeichnisse Templates, Partials und Layouts sind drei Standardverzeichnisse von Fluid-Templates (s. T3N-Artikel für eine Erklärung.

Wichtig: Wenn eine Erweiterung des News-Plugins (z.B. Twitter Bootstrap) eingebunden ist, kann sich Reihenfolge der Pfade unterscheiden. Dateien am Ende der Liste werden als erstes eingebunden, wenn diese fehlen wird auf das Backup zurückgegriffen.

Template-Files kopieren

Wir kopieren anschließend die Template-Dateien in unser lokales Template-Verzeichnis /fileadmin/templates:

Quelle (Extension-Source) Ziel (Template-Verzeichnis)
EXT:news/Resources/Private/Templates/News/List.html fileadmin/templates/ext/news/Templates/News/List.html
EXT:news/Resources/Private/Partials/List/Item.html fileadmin/templates/ext/news/Partials/List/Latest.html

Template-Files anpassen

Das ausgegebene <div class=„news-list-view“> Objekt soll nun nur noch ausgegeben werden, wenn das eigene Template nicht ausgewählt ist und stattdessen wollen wir ein <div class=„news-latest-view“> Objekt ausgeben:

...
<f:if condition="{news}">
  <f:then>
    <!-- this condition was added to introduce latest view -->
    <f:if condition="{0:settings.templateLayout} == {0:'latestView'}">
      <f:then>
      <!-- this is the code for the latest view -->
        <div class="news-latest-view">
          <f:for each="{news}" as="newsItem" iteration="iterator">
            <f:render partial="List/Latest" arguments="{newsItem: newsItem, settings:settings, className:className, view:'list'}"/>
          </f:for>
        </div>
      </f:then>
      <f:else>
      <!-- this was the original code -->
        <div class="news-list-view">
          <f:if condition="{settings.hidePagination}">
            <f:then>
              <f:for each="{news}" as="newsItem" iteration="iterator">
                <f:render partial="List/Item" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" />
              </f:for>
            </f:then>
            <f:else>
              <n:widget.paginate objects="{news}" as="paginatedNews" configuration="{settings.list.paginate}" initial="{offset:settings.offset,limit:settings.limit}">
                <f:for each="{paginatedNews}" as="newsItem" iteration="iterator">
                  <f:render partial="List/Item" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" />
                </f:for>
              </n:widget.paginate>
            </f:else>
          </f:if>
        </div>
      </f:else>
    </f:if>
  </f:then>

Bei Verwendung dieses Wikis erklären Sie sich mit dem Haftungsausschluss, Nutzungsbedingungen und der Datenschutzerklärung dieses Wikis einverstanden. Impressum.

software/typo3/news.txt · Zuletzt geändert: 2017/02/05 22:47 von khopf