News

Installation

Extension installieren und die TS Konfigurationen inkludieren.

Erstellt: 03/2023| Geändert: 03/2023

Erweitern mit eigenen Templates

Um die eigenen Templates zu verwenden folgendes in constants.typoscript

plugin.tx_news {
  view {
    # cat=plugin.tx_news/file; type=string; label=Path to template root (FE)
    templateRootPath = EXT:rsystemplate_bootstrap/Resources/Private/Templates/Plugins/News/

    # cat=plugin.tx_news/file; type=string; label=Path to template partials (FE)
    partialRootPath = EXT:rsystemplate_bootstrap/Resources/Private/Partials/Plugins/News/

    # cat=plugin.tx_news/file; type=string; label=Path to template layouts (FE)
    layoutRootPath = EXT:rsystemplate_bootstrap/Resources/Private/Layouts/Plugins/News/
  }
  settings {
    # cat=plugin.tx_news/file; type=string; label=Path to CSS file
    cssFile >
  }
}

und in das setup.typoscript dann:

# ==============================================
# FE-Plugin configuration for EXT:news
# ==============================================
plugin.tx_news {
  mvc.callDefaultActionIfActionCantBeResolved = 1
  features.requireCHashArgumentForActionArguments = 0
  view {
    templateRootPaths {
      0 = EXT:news/Resources/Private/Templates/
      1 = {$plugin.tx_news.view.templateRootPath}
    }
    partialRootPaths {
      0 = EXT:news/Resources/Private/Partials/
      1 = {$plugin.tx_news.view.partialRootPath}
    }
    layoutRootPaths {
      0 = EXT:news/Resources/Private/Layouts/
      1 = {$plugin.tx_news.view.layoutRootPath}
    }
    widget.GeorgRinger\News\ViewHelpers\Widget\PaginateViewHelper.templateRootPath = {$plugin.tx_news.view.templateRootPath}
  }
}

Auswahl

Um der Auswahl von Templates eigene hinzuzufügen in PageTS Configuration/TsConfig/Page/TCEMAIN.tsconfig folgendes konfigurieren:

tx_news.templateLayouts {
  0 = --div--,  Listenansicht Standard
    default = Standard: Einfache Liste - Erstes Bild links je nach 'Zeige in Ansichten'
    default_img_left = Standard: Einfache Liste - Erstes Bild links'
    default_right = Standard: Einfache Liste - Erstes Bild rechts je nach 'Zeige in Ansichten'
    default_img_right = Standard: Einfache Liste - Erstes Bild rechts'

  1 = --div--,  Listenansicht Speziel
    list_card = Liste mit Kacheln in 2 bis 4 Spalten
    list_slider = Slider
    list_slickslider = Slick Slider
    list_detail_slide = Liste mit Details aufklappbar

  2 = --div--,  Detailansicht
    detail = Bilder links je nach 'Zeige in Ansichten'
    detail_img_left = Bilder links'
    detail_right =Bilder rechts je nach 'Zeige in Ansichten'
    detail_img_right = Bilder rechts'

  5 = Spezial Aktuelles, Teaser Kacheln, Spezial Kurzmeldungen, Letzte Newsmeldung in Detailansicht,Teaser Kacheln
}

Im List Template kann man dann für dieses neue Template das Aussehen konfigurieren. Hier kombiniert mit dem neuen Feld settings.rsys.cols von weiter unten auf dieser Seite:

<f:switch expression="{settings.templateLayout}">
  <f:case value="list_card">
    <f:variable name="cols" value="{f:if(condition: settings.rsys.cols, then: settings.rsys.cols, else: 2)}" />
    <div class="card-group-element card-group-element-align-left card-group-element-columns-{cols}">
      <f:for each="{news}" as="newsItem" iteration="iterator">
        <f:render partial="List/ItemCard" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" />
      </f:for>
    </div>
  </f:case>
</f:switch>

 

Erstellt: 03/2023| Geändert: 03/2023

Erweitern mit eigenen Konfigurations Feldern

Um eigene Darstellung von News - z.B. mit SlickSlider - zu realisieren, braucht es weitere Konfigurations Optionen. Dazu legt man ein eigene Flexform an. Diese ist zunächst eine Kopie der News Flexfrom Configuration/FlexForms/flexform_news.xml und wird wie folgt registriert in der Configuration/TCA/Overrides/tt_content.php:

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue(
    'news_pi1',
    'FILE:EXT:rsystemplate_bootstrap/Configuration/FlexForms/Plugins/News/flexform_news.xml'
);

Dann fügt man die gewünschten Felder ein, hier ein Beispiel einer Anzahl von Spalten:

<!-- Template Layout -->
<settings.rsys.cols>
  <TCEforms>
    <label>Spalten (für Liste mit Kacheln)</label>
    <config>
      <type>select</type>
      <renderType>selectSingle</renderType>
       <items type="array">
        <numIndex index="0" type="array">
          <numIndex index="0">---</numIndex>
          <numIndex index="1"></numIndex>
        </numIndex>
        <numIndex index="1" type="array">
          <numIndex index="0">2 Spalten</numIndex>
          <numIndex index="1">2</numIndex>
        </numIndex>
        <numIndex index="2" type="array">
          <numIndex index="0">3 Spalten</numIndex>
          <numIndex index="1">3</numIndex>
        </numIndex>
        <numIndex index="3" type="array">
          <numIndex index="0">4 Spalten</numIndex>
          <numIndex index="1">4</numIndex>
        </numIndex>
      </items>
      <default>3</default>
    </config>
  </TCEforms>
</settings.rsys.cols>

 

Erstellt: 03/2023| Geändert: 03/2023

Navigation / Breadcrumbs

Um in den Breadcrumbs den News Titel bei der Detailansicht anzuzeigen kann man seine Navigation erweitern durch Erweitern (31.) des eigenen MenuProcessors(30.):

30 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
30 {
  special = rootline
  special.range = 0|-1
  includeNotInMenu = 0
  as = breadcrumb
  if {
    value = {$page.theme.breadcrumb.enableLevel}
    value {
      insertData = 1
      prioriCalc = 1
      stdWrap.wrap = |-1
    }
    isGreaterThan {
      data = level
    }
  }
  dataProcessing {
    10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
    10 {
      references.fieldName = nav_icon
      as = icon
    }
  }
}
31 = GeorgRinger\News\DataProcessing\AddNewsToMenuProcessor
31.menus = breadcrumb

Erstellt: 03/2023| Geändert: 03/2023