Zum Inhalt springen

Extensions einen festen Platz im HTML-Template geben

Erstellt am 30. Januar 2013 · 3 Antworten · letzte Antwort am 31. Januar 2013

Tags: Templates & Layouts, Inhaltselemente, Frage

macmurdock77 ·

Hi,

Ich erstelle seit ca. einem Jahr Seiten mit Joomla und wollte mich jetzt auchmal mit TYPO3 versuchen.
Etwas was bei Joomla kinderleicht und was ich bei TYPO3 nicht so richtig schnalle ist wie ich eine Extension über einen Marker auf meine Seite einbinden kann.
Ich habe eine Homepage mit einer Start- und einer Folgeseite.
Die Startseite soll 2 Extensions bekommen die wirklich nur auf der Startseite sind. Das ist einmal eine Slideshow und einemal die Extension TYPO3blog. Die Jquery Slideshow habe ich bereits über "Seite" und "Plugin in Inhaltsbereich einfügen" erfolgreich eingebunden. Jetzt weiss ich aber nicht wie ich die Extension TYPO3blog noch mit auf die Startseite bekomme und beliebig platzieren kann so wie ich das mit der Slideshow über den Inhalt gemacht habe.
Danke schonmal im Vorraus für alle Tipps und bitte dran denken ich bin wirklich absoluter Neuling auf dem TYPO3 Gebiet.

zeroalpha ·

Hallo macmurdock,

Du hast mehrere Möglichkeiten.

1. Du bindest die TYPO3blog Extension genauso ein wie deine Slideshow
2. Du baust in dein HTML einen Marker dem du dann nur den TYPO3blog zuweist mittels TS
3. fällt mir gerade nichts ein

Es hängt davon ab, wie du dein HTML aufgebaut hast, wie du wo Marker gesetzt hast und was du den Markern mittels TS zuweist.

Zum Beispiel kannst du einem Marker MENUE neben dem Menü auch noch Content zuweisen. Es hängt halt davon ab, was du bisher hast und wo du hin willst.

Poste doch mal dein HTML-Template und dein TS oder ein Link zu der Seite, damit man sich vorstellen kann, was du genau möchtest.

macmurdock77 ·

Hi Zeroalpha,

Danke schonmal für die Antwort, hier mal der wichtige Teil von meinem HTML Template:

...
</head>
<body>

<!-- ###DOKUMENT### Begin -->

<div id="wrap">

<div id="main">

  <div id="top">
    <div class="topmenu">###MENU_OBEN###</div>
    <div class="fsize">###FONT_SIZE###</div>
  </div>
    
  <div id="header">
   

   
      <div class="menu">###MAIN_NAVI###</div>
      <div class="searchbox">###SEARCHBOX###</div>
      <div class="clear">&nbsp;</div>
      <div id="jquery">###INHALT###</div>
       <div class="clear">&nbsp;</div>
   
  </div>
  <div class="clear">&nbsp;</div>
   
   </div>
  ...

Mein Root TS:

# Ansprechen des SEARCHBOX Markers
page.10.marks.SEARCHBOX < plugin.tx_macinasearchbox_pi1

# Konfiguration der Searchbox
plugin.tx_macinasearchbox_pi1 {
	# ID der Seite, die das indexed-search plugin enthält 
	pidSearchpage = 41
	# Pfad zum Searchbox-Templatefile
	templateFile = fileadmin/searchbox.htm
}

  10.marks {
        # Den Platzhalter DATUM ansprechen
  	DATUM = TEXT
        DATUM.data = date : d.m.Y 
        
        # Das Logo einlesen
        LOGO = IMAGE
        LOGO.file = fileadmin/images/logo.jpg
        LOGO.file.width = 178
        
        # Den Trailer dynamisch ansprechen
        TRAILER = IMAGE
        TRAILER.file = GIFBUILDER
        TRAILER.file {
            XY = 760, 99
            backColor = #ffffff
            
        # Das Hintergrundbild einlesen
        10 = IMAGE
        10.file = fileadmin/images/trailerbild.jpg
        10.file.width = 760
        10.offset = 0, -150
        }
        
        #Grafischen Text auf Ebene 20 rendern
        20 = TEXT
        20.text.field = title
        20.fontFile = fileadmin/fonts/verdana.ttf
        20.fontSize = 20
        20.fontColor = white
        20.niceText = 0
        20.offset = 10, 30
        
        # Einen Schatten als Kopie der Ebene 20 realisieren
        15 < .20
        15.offset = 12, 32
        15.fontColor = #000000
        
        # Topmenü erstellen
        MENU_OBEN = HMENU
        MENU_OBEN {
        1 = TMENU
        1.NO = 1
        1.NO.linkWrap = &nbsp;|&nbsp;&#124; |*| &nbsp;|&nbsp;&#124; |*| &nbsp;|
        }
        

	# MEGA-Dropdown-Menu rendern
MAIN_NAVI = HMENU
MAIN_NAVI {
 
  wrap = <div class="menu2">|</div>

  # die Pages wollen wir nicht
  excludeUidList = 

  special = directory

  # Hier die Start-Page-ID angeben, deren Unterseiten das Hauptmenü abbilden
  special.value = 10
 
  # Hauptmenue
  1 = TMENU
  1 {
    wrap = <ul class="level1"> | </ul>
    expAll = 1
    NO {
       ATagTitle.field = subtitle//title
       stdWrap.prepend = COA
       stdWrap.prepend.10.wrap = ~  |
       wrapItemAndSub = | </li>
       allWrap = <li class="inner" id="pid{field:uid}"> |
       allStdWrap.insertData = 1
       linkWrap = |
       ATagBeforeWrap = 1
       }
    }

  # 2. Ebene
  2 = TMENU
  2 < .1
  2.wrap = <div class="megadd clearfix"> <ul class="level2">  | </ul></div>
  2.NO.allWrap = <li class="inner2" id="pid{field:uid}"> |

  # 3. Ebene
  3 = TMENU
  3 < .1
  3.wrap = <ul class="level3" > | </ul>
  3.NO.allWrap = <li class="inner3" id="pid{field:uid}"> |

  # 4. Ebene
  4 = TMENU
  4 < .1
  4.wrap = <ul class="level4" > | </ul>
  4.NO.allWrap = <li class="inner4" id="pid{field:uid}"> |

}
     }    
   }

Mein Startseiten TS:

config {
	// Global language definitions
	language = de
	locale_all = de_DE.utf8
	htmlTag_langKey = de-DE
	metaCharset = utf-8
        #DOCType setzen auf XHTML trans
        doctype = xhtml_trans
        #erzeugten XHTML code bereinigen
        xhmtl_cleaning = all
        #internet explorer - quirks mode
        [browser = msie]
        config.doctypeSwitch = 1
        stylesheet = fileadmin/folge-style-ie.css
        [GLOBAL]
 
} // end config

page = PAGE
page.typeNum = 0 
page{
  # Allgemeine Seiteneigenschaften setzen
  bodyTag = <body>
  stylesheet = fileadmin/style.css
  # MetaTags angeben
  meta.AUTHOR = Pascal Metz
  meta.Description = Hier steht eine Beschreibung
  

  # Designvorlage integrieren
  10 = TEMPLATE
  10.template = FILE
  10.template.file = fileadmin/startseite_vorlage.php
  10.workOnSubpart = DOKUMENT
 
  10.marks {
        # Den Platzhalter DATUM ansprechen
  	DATUM = TEXT
        DATUM.data = date : d.m.Y 
        
        # Das Logo einlesen
        LOGO = IMAGE
        LOGO.file = fileadmin/images/logo.jpg
        LOGO.file.width = 178
        
        # Den Trailer dynamisch ansprechen
        TRAILER = IMAGE
        TRAILER.file = GIFBUILDER
        TRAILER.file {
            XY = 760, 99
            backColor = #ffffff
            
        # Das Hintergrundbild einlesen
        10 = IMAGE
        10.file = fileadmin/images/trailerbild.jpg
        10.file.width = 760
        10.offset = 0, -150
        }
        
        #Grafischen Text auf Ebene 20 rendern
        20 = TEXT
        20.text.field = title
        20.fontFile = fileadmin/fonts/verdana.ttf
        20.fontSize = 20
        20.fontColor = white
        20.niceText = 0
        20.offset = 10, 30
        
        # Einen Schatten als Kopie der Ebene 20 realisieren
        15 < .20
        15.offset = 12, 32
        15.fontColor = #000000
        
        # Topmenü erstellen
        MENU_OBEN = HMENU
        MENU_OBEN {
        special = directory
        special.value = 29
        1 = TMENU
        1.NO = 1
        1.NO.linkWrap = &nbsp;|&nbsp;&#124; |*| &nbsp;|&nbsp;&#124; |*| &nbsp;|
        }        

	# Inhalt ausgeben
	INHALT = CONTENT
	INHALT {	
           table = tt_content
        }           

	tt_content = TEXT
	tt_content {	
	    field = header	    
	    wrap = |<br>
	}   	
 
   
        
	# MEGA-Dropdown-Menu rendern
        MAIN_NAVI = HMENU
        MAIN_NAVI {
 
  	wrap = <div class="menu2">|</div>

  	# die Pages wollen wir nicht
        excludeUidList = 

        special = directory

        # Hier die Start-Page-ID angeben, deren Unterseiten das Hauptmenü abbilden
        special.value = 10
 
        # Hauptmenue
        1 = TMENU
        1 {
        wrap = <ul class="level1"> | </ul>
        expAll = 1
        NO {
        ATagTitle.field = subtitle//title
        stdWrap.prepend = COA
        stdWrap.prepend.10.wrap = ~  |
        wrapItemAndSub = | </li>
        allWrap = <li class="inner" id="pid{field:uid}"> |
        allStdWrap.insertData = 1
        linkWrap = |
        ATagBeforeWrap = 1
        }
     }

        # 2. Ebene
        2 = TMENU
        2 < .1
        2.wrap = <div class="megadd clearfix"> <ul class="level2">  | </ul></div>
        2.NO.allWrap = <li class="inner2" id="pid{field:uid}"> |

        # 3. Ebene
        3 = TMENU
        3 < .1
        3.wrap = <ul class="level3" > | </ul>
        3.NO.allWrap = <li class="inner3" id="pid{field:uid}"> |

       # 4. Ebene
       4 = TMENU
       4 < .1
       4.wrap = <ul class="level4" > | </ul>
       4.NO.allWrap = <li class="inner4" id="pid{field:uid}"> |

       }
     }    
   }
  
 }

Und die Seite kann man sich hier anschauen: http://kunden.m3-communication.de/typo/index.php?id=26

"1. Du bindest die TYPO3blog Extension genauso ein wie deine Slideshow"

Wie genau funktioniert ich habe gedacht man kann "Inhalt" nur einmal einbinden. Kann ich z.b. einfach einen Marker mit INHALT2 erstellen dem ich im TS die Blog Extension übergebe?

"2. Du baust in dein HTML einen Marker dem du dann nur den TYPO3blog zuweist mittels TS"

Dass das geht weiss ich nur das wie ist das Problem, kannst du mir hier etwas präziser bzw. Anfängerfreundlicher helfen?😉

Danke nochmal!

zeroalpha ·

Hallo macmurdock,

puh, dass ist viel Zeug.

Was mich etwas gewundert hat ist das hier:

# Inhalt ausgeben
	INHALT = CONTENT
	INHALT {	
           table = tt_content

Also ich kenne das meistens als

Inhalt < styles.content.get
Inhalt2 < styles.content.getLeft
Inhalt3 < styles.content.getRight
Inhalt4 < styles.content.getBorder

Damit weißt du deinem Marker im Template eine Spalte im TYPO3-Backend zu. Alle Inhaltselemente die du auf einer Seite in den jeweiligen Spalten anlegst werden dann entsprechend ausgegeben.

Hier mal ein Link

Wenn du also auf der Startseite deine Slideshow als Content-Element angelegt hast, dadrunter dann einfach die BlogExtension genauso anlegen. Somit sollte beides ausgegeben werden.

Das andere ist identisch mit deiner Searchbox - du legst einen Marker an und weißt diesem dann die Extension T3blog zu. Wie das genau aussehen muss kann ich dir nicht sagen. Sollte aber in der Doku zur Extension stehen.

Sowas in die Richtung:

page.10.marks.BLOG < plugin.t3blog

Ich hoffe, du konntest mir jetzt etwas besser folgen. Ansonsten einfach nochmal nachfragen.