Zum Inhalt springen

A-Tag erweitern?

Erstellt am 11. August 2006 · 8 Antworten · letzte Antwort am 19. August 2006

Tags: Frage

automatix ·

Hallo allerseits!

Folgendes Problem:
der fertige (geparste) HTML-Code des Menü-Elements soll folgendermaßen aussehen:

<li><a href="..."><font>text</font></a></li>

Also:

ListenelementAuf
    ATagAuf
        FontTagAuf - TEXT - FontTagZu
    ATagZu
ListenelementZu

Nun taucht die Frage auf, wie man das in TYPO realisiert.

MENU.1.NO.linkWrap = <li>|</li>

...das ist klar. Aber wie kann man nun einen Font-Tag in den A-Tag reinschieben???

stefan s ·

vergiss das Font-Tag. Font-Angaben gehören ins css. Wenn du für verschiedene Links verschiedene Fontgrössen, -arten etc willst, dann regel das über Klassen (<a class=""...) bzw. in der css-Datei:
a.deinKlassenname {
font-family: Verdana, Arial, Helvetica, Sans-Serif;
font-size: 101%;
font-weight: bold;
color:#000;
}
im TS-Setup dann:

MENU.1.NO.ATagParams = class="deinKlassenname"
automatix ·

Zunächst mal danke für Deine Antwort.

Zum Tont-Tag. Es geht bei mir nicht um Font-Angaben wie Schriftart oder Textfarbe, sondern um andere Dinge wiePosizionierung des Link-Textes innerhalb des A-Tags. Jedenfalls brauche ich den Font-Tag.

Eigentlich gehts mir nicht nur um den Font-Tag, sondern ich möchte wissen, wie man den Inhalt des A-Tags (also das, was zwischen dem Auf- und dem Zutag steht) steuert, denn das einfache "|" reicht nicht immer.

stefan s ·

da musst du mit before bzw. after rumexperimentieren.

Bsp:

 NO {
...
beforeWrap =  | 
linkWrap = | 

before.cObject = TEXT 
before.cObject.field = uid 
before.cObject.dataWrap = <a class="deinKlassenname" href="index.php?id=|" title="{field:title}{field:subtitle}"><font>

after.cObject = TEXT 
after.cObject.field = title//subtitle 
after.cObject.htmlSpecialChars = 1 
after.cObject.wrap = |</font></a> 
 ...
}

Die Positionierung des Link-Textes innerhalb des A-Tags wird ebenfalls im css geregelt (sollte man zumindest dort tun). Alles, was du über den FONT-Tag einstellen willst, geht auch übers css und das letztlich bequemer. Das FONT-Tag ist veraltet

automatix ·
stefan s schrieb

da musst du mit before bzw. after rumexperimentieren.

Die Positionierung des Link-Textes innerhalb des A-Tags wird ebenfalls im css geregelt (sollte man zumindest dort tun). Alles, was du über den FONT-Tag einstellen willst, geht auch übers css und das letztlich bequemer. Das FONT-Tag ist veraltet

Da hast Du vollkommen Recht -- Das FONT-Tag ist prinzipiell veraltet. Nur, wie gesagt, -- ich brauche es für die Text-Posizionierung durch CSS, oder mit anderen Worten nur als IRGENDEIN-Tag, dem ich Parameter "class" oder "id" geben kann. Anstelle des "FONT" könnte also stehen "MYTAG" oder sowas.

Vielen Dank für before/after!

automatix ·

Nun hab ich versucht, die before/after-Variante umzusetzen:

    marks {
        MENU = HMENU
        MENU {
            special = directory
            special.value = 392
            1 = TMENU
            1.NO = 1
            1.NO {
#                ATagParams = class="nav_1_NO"
#                linkWrap = <li>|</li>
            
beforeWrap =  |
linkWrap = |
 
before.cObject = TEXT
before.cObject.field = uid
before.cObject.dataWrap = <li><a class="nav_1_NO" href="index.php?id=|" title="{field:title}{field:subtitle}"><font class="aContent_1_NO">

after.cObject = TEXT
after.cObject.field = title//subtitle
after.cObject.htmlSpecialChars = 1
after.cObject.wrap = |</font></a></li>
            }

        }

Aber ich mach wohl was verkehrt, denn so sieht das Ergebnis aus:

<li>
<a class="nav_1_NO" href="index.php?id=400" title="main">
<font class="aContent_1_NO">
<a href="index.php?id=400" onfocus="blurLink(this);">
main
</a>
main
</font>
</a>
</li>

Was mache ich denn falsch?
Danke.

automatix ·

Da kommt die Lösung:

# SEO enables Rule Rewrite
config.simulateStaticDocuments = PATH_INFO
config.simulateStaticDocuments = 1 

mainPage = PAGE
mainPage {
    typeNum = 0
    meta.author = My Name
    bodyTag = <body>

    includeCSS {
        css-main = fileadmin/template_txt/css_main.css
        css-menu = fileadmin/template_txt/css_menu.css
    }
}

mainPage.10 = TEMPLATE
mainPage.10 {
    template = FILE
    template.file = fileadmin/template_txt/html_main.html
    workOnSubpart = DOCUMENT

    marks {
        MENU = HMENU
        MENU {
            special = directory
            special.value = 392
            1 = TMENU
            1.NO = 1
            1.NO {
#                ATagParams = class="nav_1_NO"
#                linkWrap = <li>|</li>
            
                beforeWrap = <li>
                linkWrap = |

                doNotShowLink = 1
                before.cObject = TEXT
#                before.cObject.field = alias//uiduid
#                before.cObject.dataWrap = <a class="nav_1_NO" href="index.php?id=|" title="{field:title}{field:subtitle}">
                before.cObject.dataWrap = <a class="nav_1_NO" href="{field:alias//field:uid}.html" title="{field:title}" onfocus="blur(this)">

                after.cObject = TEXT
                after.cObject.field = title//subtitle
                after.cObject.htmlSpecialChars = 1
                after.cObject.wrap = <font class="aContent_1_NO">|</font></a>
                wrapItemAndSub = |</li> 
            }
        }

        CONTENT = TEXT
        CONTENT.value = My Content_C

        INFO = TEXT
        INFO.value = My Content_R
    }
}

Das ist also das Template so wie es jetzt ist -- mit dem Menü (Zeilen 21-45).

Danke für Eure Hilfe!

automatix ·

Noch eine Lösung (eine viel elegantere):

# MENU START
mainPage.10 {
    marks {
        MENU = HMENU
        MENU {
            special = directory
            special.value = 391
            1 = TMENU
            1.NO = 1
            1.NO {
                linkWrap = <li>|</li>
                stdWrap.wrap = <font class="aContent_1_NO">|</font>
                ATagParams = class="nav_1_NO" onfocus=blur(this)
            }
        }
    }
}
# MENU STOP