Zum Inhalt springen

Hintergrund mit Grid Elements Data Processing

Erstellt am 18. Dezember 2020 · Noch keine Antworten

Tags: TYPO3 9, Frage

Unbekannter Benutzer ·

Hallo zusammen. Möchte gerne über das Media Feld ein Hintergrund Bild in mein Grid einfügen.

Mein bisheriger Versuch

1. Ich habe im Typoscript Setup den FilesProcessor angelegt

lib.gridelements.defaultGridSetup.cObject =<  lib.contentElement

tt_content.gridelements_pi1.20.10.setup.twocolumnscontainer < lib.gridelements.defaultGridSetup
tt_content.gridelements_pi1.20.10.setup.twocolumnscontainer {
  cObject.templateName = GridElementTwoColumns
    cObject.dataProcessing {
        10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
        10 {
            references.fieldName = media
            as = backgroundimage 
        }

    }
}

Dann habe ich in meiner GridElements.tsconfig das Grid Backend Layout angelegt

tx_gridelements.setup.twocolumnscontainer {
  title = Two columns with Background Image
  description = 
  config{
    colCount = 2
    rowCount = 1
    rows {
        1 {
            columns {
                1 {
                    name = column 1
                    colPos = 100
                }
                2 {
                    name = column 2
                    colPos = 101
                }
            }
        }
    }
  }  
}

Anschließend habe ich in der TCA/Overrides folgendes angelegt

<?php
defined('TYPO3_MODE') || die();

call_user_func(function()
{
    /**
     * Limit the number of images in "media" for gridelements contents
     */
    $GLOBALS['TCA']['tt_content']['types']['gridelements_pi1']['columnsOverrides']['media']['config']['maxitems']=1;

});

Zum Schluss habe ich dann mein Fluid angelegt

<f:if condition="{backgroundimage.0}">
{f:uri.image(image:backgroundimage.0)}
</f:if>
    <div class="container">
        <div class="col-md-6">
            {data.tx_gridelements_view_column_100-> f:format.raw()}
        </div>
        <div class="col-md-6">
            {data.tx_gridelements_view_column_101-> f:format.raw()}
        </div>          
    </div>

Die divs werden ausgegeben die Inhalte und das Hintergrundbild leider nicht. Was mache ich falsch? Oder gibt es einen besseren Weg?