[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [TYPO3-german] Mask: Erweitertes Backendlayout mit Typoscript ausgeben



Hallo Christian,

mit Mask hat das Folgende nichts zu tun.

Ich habe die Zuweisung von Icons in einem normalen TypoScript TMENU so gelöst, 
dass ich die Icons als Spreadsheet gebaut und in der Tabelle „pages" ein 
Auswahl-Feld (pages.menu_layout) für die benötigten CSS-Klassen angelegt habe.

Die Bilder habe ich dann per CSS mit :before in den jeweiligen Menüpunkt 
gezogen.


TypoScript:

1 = TMENU
1 {
    NO {
        stdWrap.htmlSpecialChars = 1
        wrapItemAndSub = <li class=" {field:menu_layout}">|</li>
        wrapItemAndSub.insertData = 1
   }
}


CSS:

li {
        position:relative;
}
li:before {
  position:absolute;
  display:block;
  top:10px;
  left:0;
  height:40px;
  width: 40px;
  content:'';
  background-image: url('../Img/sprite_navigation.png');
  background-image: url('../Img/sprite_navigation.svg');
  background-repeat: no-repeat;
  background-size: 204px 700px;
}


Wenn du statt CSS-Klassen lieber Bild-Dateien als <img> einbinden willst, geht 
das mit FAL-Dateien ungefähr so (untested):

1 = TMENU
1 {
    NO.before.stdWrap.cObject = FILES
NO.before.stdWrap.cObject {
    references {
        table = pages
        uid.data = leveluid:-1, slide
        fieldName = {mein_feld}
    }
    begin = 0
    renderObj = COA
    renderObj {
        10 = IMAGE
        10 {
            file {
                import.data = file:current:uid
                treatIdAsReference = 1
            }
        }
    }
}

Wenn du ein Menü als FluidStyledContent ContentElement haben willst, kannst du 
das auch mit Bordmitteln machen.

Entweder du überschreibst das Fluid-Template eines vorhanden Menüs - oder du 
baust ein eigenes ContentElement „MeinMenu".

//TypoScript

tt_content {
    mein_menu < lib.fluidContent
    mein_menu {
        templateName = MeinMenu.html
        dataProcessing {
            10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
            10 {
                references.fieldName =mein_feld
            }
        }

    }
}

pageTsConfig:

mod.wizards.newContentElement.wizardItems.common {
    elements {
        mein_menu {
    
                iconIdentifier = mein_menu.svg
                title = Mein Menü
                description = Beschreibungstext mein Menü
                tt_content_defValues {
                    CType = mein_menu
                }

            }
    }
    show := addToList(mein_menu)
}

Bild ausgeben im Fluid-Template „MeinMenu.html" (nur das erste Bild):

<f:for each=„{mein_feld}" as="image" iteration="num">
    <f:if condition="{num.isFirst}">
        <f:image src="{image.publicUrl}" class="contentimg" 
id=timg-{image.uid}" title="{image.title}" alt="{image.alternative}" />     
    </f:if>
</f:for>

Die Fluid-Ausgabe kompletter Menüs kannst du dir ansehen in der 
FluidStyledContent Extension.


viele Grüße
Birgit


> Am 03.11.2017 um 15:16 schrieb Christian Heisch <[email protected]>:
> 
> Vielen Dank für die ausführliche und hilfreiche Antwort.
> Jetzt verstehe ich manche Zusammenhänge besser.
> Allerdings habe ich das Problem noch immer nicht gelöst.
> 
> Konkret:
> Auf meiner Seite sollen die fraglichen Bilder in einem Menü dargestellt 
> werden, als Icons zu den Seitennamen.
> Die Bilder (bzw. die Referenzen) liegen in der pages-Tabelle im Feld 
> tx_mask_menuebild_aktiv.
> 
> Leider habe ich das Konzept, wie Bilder einzubinden sind, immer noch nicht 
> durchdrungen.
> 
> Lieben Gruß
> Christian
> _______________________________________________
> TYPO3-german mailing list
> [email protected]
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

_______________________________________________
TYPO3-german mailing list
[email protected]
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german