TemplaVoilà image field in Menü statt aus Media-Feld

  • doensen doensen
    Padawan
    0 x
    43 Beiträge
    0 Hilfreiche Beiträge
    08. 07. 2009, 09:29

    Hallo community,

    ich sitz nun schon seit einiger Zeit an folgendem Problem:

    Es ist ja möglich, Grafiken unter Resources->media hochzuladen und diese in Menüs auszugeben. Ich hätte diese Funktion gerne in das TemplaVoilà page template ausgelagert, damit der Benutzer der Seite nur eine Grafik als "page icon" hinzufügen kann. Grund hierfür ist, dass ich dieses Feld labeln kann und es im Page-Modul auch direkt angezeigt wird.

    Ich hab nun schon einiges versucht, hab mit den Variablen herumgespielt, aber es kam nichts zu gewünschtem Erfolg. Ich poste hier mal den aktuellen Stand, der meiner Meinung nach der "richtigste" ist, den ich bisher gehabt hab. Aber irgendwas mache ich noch falsch. Innerhalb der Seite funktiert es wie gewünscht, aber wenn ich es in mein Menü einbaue, geht nichts. Es erscheinen nur weiße Grafiken.

    Hier die DS:
    [TS]<?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?>
    <t3datastructure>
    <meta type="array" />
    <langchildren type="integer">1</langchildren>
    <langdisable type="integer">0</langdisable>
    </meta>
    <root type="array">
    <tx_templavoila type="array">
    <title>ROOT</title>
    <description>Select the HTML element on the page which you want to be the overall container element for the template.</description>
    </tx_templavoila>
    <type>array</type>
    <el type="array">

    [... andere fields ...]

    <field_pageicon type="array">
    <type>no_map</type>
    <tx_templavoila type="array">
    <title>Page icon</title>
    <description>Manche Seiten brauchen ein Icon, das innerhalb von Typoscript verwendet werden kann</description>
    <sample_data type="array">
    <numindex index="0"></numindex>
    </sample_data>
    <etype>image</etype>
    <typoscript>
    10 = IMAGE
    10.file.import = uploads/tx_templavoila/
    10.file.import.current = 1
    10.file.import.listNum = 0
    10.file.maxW = 200
    </typoscript>
    </tx_templavoila>
    <tceforms type="array">
    <config type="array">
    <type>group</type>
    <internal_type>file</internal_type>
    <allowed>gif,png,jpg,jpeg</allowed>
    <max_size>1000</max_size>
    <uploadfolder>uploads/tx_templavoila</uploadfolder>
    <show_thumbs>1</show_thumbs>
    <size>1</size>
    <maxitems>1</maxitems>
    <minitems>0</minitems>
    </config>
    <label>Page icon</label>
    </tceforms>
    </field_pageicon>
    </el>
    </root>
    </t3datastructure>[/TS]

    Hier ein Typoscript, welches innerhalb der Seite funktioniert:
    [TS]#ausgelagert:
    temp.icon = IMAGE
    temp.icon.file{
    import= uploads/tx_templavoila/
    import.field=field_pageicon
    }

    #irgendwo im Main-Template:
    lib.myIcon < temp.icon[/TS]

    Und hier der klägliche Versuch das Bild auf geiche Weise im Menü auszugeben:
    [TS]temp.metamenu = HMENU
    temp.metamenu {
    special = directory
    special.value = 5

    1.wrap=<ul>|</ul>

    1 = GMENU
    1 {
    NO = 1
    NO {
    XY = [10.w],[10.h]

    10 = IMAGE
    10.file.import = uploads/tx_templavoila/
    10.file.import.field = field_pageicon
    10.file.import.listNum = 0

    allWrap = |*|<li>|</li><li><img src="fileadmin/templates/crp/img/meta-divider.gif" alt="Spacer" /></li>|*| <li>|*|</li>
    }
    }
    }
    [/TS]

    Wohl gemerkt: Mit media krieg ich es hin, aber ich würde es gerne mit TemplaVoilà realisieren, weil es für den Redakteur schöner ist.

    Was mache ich nur falsch? Hoffe, mir kann jmd. helfen.

    Gruß und danke schonmal,
    Christophe


  • 1
  • froemken froemken
    Jedi-Ratsmitglied
    0 x
    811 Beiträge
    1 Hilfreiche Beiträge
    08. 07. 2009, 16:01

    Ich habe ein solches Problem noch nicht gehabt, aber du schreibst, dass alle anderen Felder ÜBER der Definition von field_pageicon sind.
    Demnach würde ich mal versuchen den Bereich field_pageicon ÜBER alle anderen Felder machen.

    So Scripte arbeiten ja immer von oben nach unten.

    Ansonsten habe ich hier mal gelesen, dass TV Probleme mit diesen temp-Dingern hat und man mit LIB arbeiten soll.

    Weiterhin weiß ich nicht WO du deine TEMP-Teile definiert hast, denn evtl. können diese überhaupt nicht auf die Felder field_pageicon zugreifen.

    Derzeit bleibt nur Rumprobieren übrig...

    froemken

  • doensen doensen
    Padawan
    0 x
    43 Beiträge
    0 Hilfreiche Beiträge
    10. 07. 2009, 09:34

    Hi froemken,

    vielen Dank für deine Antwort!

    [quote="froemken"]
    Ansonsten habe ich hier mal gelesen, dass TV Probleme mit diesen temp-Dingern hat und man mit LIB arbeiten soll.[/quote]
    Innerhalb von TemplaVoilà gibt es die temp-Variablen nicht, die ObjectPaths sind alle in der Form lib.myXXX abgelegt. Nur im Typoscript wird der Inhalt zunächst in temp aufgebaut, weil die Scripte ausgelagert sind.

    [quote="froemken"]
    Weiterhin weiß ich nicht WO du deine TEMP-Teile definiert hast, denn evtl. können diese überhaupt nicht auf die Felder field_pageicon zugreifen.[/quote]
    Diese temp-Teile sind im Haupttemplate der Seite definiert (in Wirklichkeit sind sie ausgelagert in einem SysFolder, aber sie werden im Haupttemplate included - danach werden die Inhalte von temp nach lib.myXXX verschoben)

    Nunja, ich hab mich damit abgefunden das media-Feld benutzen zu müssen. Das funktioniert auf jeden Fall.

    Falls jemand weiß, [b]wie man ein Bild, das man im Seitentemplate per TemplaVoilà definiert hat, in einem Menü anzeigt[/b], dann wäre ich ihm für das Posten seiner Lösung sehr dankbar. Wahrscheinlich mache ich nur einen klitzekleinen Fehler und daran hakt's.

    Viele Grüße,
    Christophe #paralyzed#

  • 1