Zum Inhalt springen

Typoscript Marker in Content-Element

Erstellt am 20. September 2009 · 6 Antworten · letzte Antwort am 21. September 2009

Tags: Frage

theiml ·

Hi!

Ich versuche gerade einen Marker für einen Adsense-Code zu erstellen, den ich in einfache Content-Elemente einbinden kann. (z.B. Text-Element)

Habe dabei folgenden Coder erstellt:

#ADSENSE
page.10.marks.NAME = TEXT
page.10.marks.NAME.value = (<div class="right"><script type="text/javascript"><!--
google_ad_client = "pub-4909176744287012";
/* Spriko 120x240 */
google_ad_slot = "5790862594";
google_ad_width = 120;
google_ad_height = 240;
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>)

Leider wird aber nur ###Name### angezeigt, und nicht der Javascript Code.

Falls nötig, hier noch mal das gesamte Template-Setup:

#TEMPLATE

# Default PAGE object:
page = PAGE

page.meta.keywords.field = keywords
page.meta.description.field = description

page.stylesheet = layout*.css

page.10 = TEMPLATE

page.10.workOnSubparts = DOCUMENT_BODY

page.10.template = FILE
page.10.template.file = template*.html

page.10.subparts.MENU = HMENU

page.10.subparts.MENU {
		1 = TMENU
		1.NO.linkWrap = <li> | </li>
                1.ACT = 1
                1.ACT {
                      linkWrap = <li class="naviactive"><strong>|</strong></li>
                      }

}


page.10.subparts.SUBMENU = HMENU

page.10.subparts.SUBMENU {

entryLevel = 1
		1 = TMENU
		1.stdWrap.htmlSpecialChar = 1
		1.wrap = <div class="sub"><ul id="subnavi"> | </ul></div>
		1.NO.linkWrap = <li> | </li>
		1.ACT = 1
                1.ACT {
                      linkWrap = <li class="subnaviactive">|</li>
                      }

				
}
page.10.subparts.CONTENT_MAIN < styles.content.get
page.10.subparts.CONTENT_MAIN.renderObj.stdWrap.wrap = <div style="padding-left: 15px;"> | </div><br clear="all" />

page.10.subparts.CONTENT_BORDER < styles.content.getBorder
page.10.subparts.CONTENT_BORDER.renderObj.stdWrap.wrap = <div style="padding-left: 15px;"> |</div><br clear="all" /><hr />

page.10.subparts.CONTENT_RIGHT < styles.content.getRight

page.10.subparts.CONTENT_LEFT < styles.content.getLeft

#ADSENSE

page.10.marks.NAME = TEXT
page.10.marks.NAME.value = (<div class="right"><script type="text/javascript"><!--
google_ad_client = "pub-4909176744287012";
/* Spriko 120x240 */
google_ad_slot = "5790862594";
google_ad_width = 120;
google_ad_height = 240;
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>)

Was mache ich falsch?

Gruß, Theiml

freshman17 ·

Wenn ich mich nicht irre müssen die Klammern, bei zusammengefassten Code in einer eigenen Zeile stehen. Das = muß auch weg

page.10.marks.NAME.value (
#Code
)
theiml ·

Hi freshman!

Danke für den Tipp. Hab ihn gleich mal getestet.

Leider funktioniert das aber auch nicht.

LG Theiml

freshman17 ·

also so funktioniert es bei mir ohne Probleme

page = PAGE
page.10 = TEMPLATE
page.10.template = FILE
page.10.template.file = fileadmin/template.html
page.10.workOnSubparts = DOCUMENT_BODY

page.10.marks.NAME = TEXT
page.10.marks.NAME.value (
<div class="right"><script type="text/javascript"><!--
google_ad_client = "pub-4909176744287012";
/* Spriko 120x240 */
google_ad_slot = "5790862594";
google_ad_width = 120;
google_ad_height = 240;
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</div>
)
theiml ·

Hi!

Also ich hab nochmal rumprobiert... du hast recht, es funktioniert.

Leider aber nicht innerhalb von Contentelementen.

Funktioiert das generell nicht, oder ist irgendwo anders noch ein Fehler?

speedprogs ·

Hallo theiml,

wenn ich das richtig verstehe, möchtest du in deinem Richtext-Editor (RTE) einen Marker (z.B. ###NAME##) einfügen und diesen von TYPO3 für die Ausgabe im Frontend durch einen von dir definierten Inhalt ersetzten lassen.

Das geht von Haus aus nur über Constants. Allerdings auch nur mit der Begrenzung, dass der Inhalt statisch sein muss.

ACHTUNG: Diese "Constants" haben nichts mit den Konstanten zu tun, die im Feld "CONSTANTS" benutzt werden.

Somit würde dein Beispiel folgendermaßen aussehen:

## Add constants
constants {
  NAME = <div class="right">...</div>
}

## Activate constants in parseFunc
lib.parseFunc_RTE.constants = 1

Trage dieses TypoScript im SETUP-Feld deines TypoScript-Template ein. Wenn du anschließend im RTE den Marker "###NAME###" einsetzest, dann wird dieser durch den statischen Text ersetzt.

Eventuell hilft dir auch dies hier weiter: http://typo3.intervation.de/snippets/tt-content/flexible-marker-im-text.html