Zum Inhalt springen

Einfügen von +ext Template in das root-Template - Problem

Erstellt am 10. August 2009 · 8 Antworten · letzte Antwort am 14. August 2009

Tags: Frage

cmoke ·

Guten Abend allerseits.

Da ich leider keinen passenden thread zu meiner Problematik gefunden habe und auch keine Möglichkeit einer gezielten Suche (vielleicht übersehen?), poste ich es selbst.

- Randnotiz: neues Mitglied, absolute beginner, erste Website -

Möchte also eine Baustellenseite für mich basteln. Es steht bereits das HTML-Gerüst und das stylesheet. Die erste Version meines Templates hat auch funktioniert, nur war keine Flexibilität drinnen, in dem Sinne, dass zumindest einige Inhalte von Seite zu Seite variabel sein sollen.

Dann habe ich, beim zweiten Anlauf, ein Typoscript auf der root Seite; ein allgemein goltiges. Nun möchte ich, +ext Tepmlates einfügen, welche ermöglichen über das Seiteninhaltsmodul oder auch per script die Inhalte zu beeinflussen. Allerdings nur für die betreffende Seite. Hab daher erst einmal auf der Startseite ein script erstellt. Das Problem ist, dass irgendwie die beiden scripte nicht miteinander "kommunizieren". Irgendwo habe ich also einen Denkfehler. Verzeit, wenn es ein ganz trivialer ist, aber - wie gesagt: absolute beginner ... :o

here we go:

erst das root-script

config {
doctype = xhtml_trans
xhtml_cleaning = all
xmlprologue = none
}

seite = PAGE
seite.typeNum = 0

seite.workOnSubpart = DOKUMENT

# .............. Einfügen des Stylesheets ..............
seite.includeCSS {
  file = fileadmin/stylesheet/td_baustelle1.css
  file.media = screen
}

# .............. Einfügen der Designvorlage ..............
seite.10 = TEMPLATE
seite.10 {
  template = FILE
  template.file = fileadmin/html/start.html

# .............. Einfügen der Marken ..............
  
  # .............. NAVIGATION/MENÜ ..............
  subparts {
    MENU = HMENU
    MENU {
      wrap = <table class="t3_tabelle"> | </table>
      1 = TMENU
      1.NO.allWrap = <td> | </td>
      1.NO.ATagBeforeWrap = 1
      1.NO.linkWrap = <span> | </span>
      1.CUR = 1
      1.CUR.wrapItemAndSub = <td class="aktuell"><span> | </span></td>
      1.CUR.doNotLinkIt =1
      1.NO.noBlur = 1
    }
    
    # ..............Logo ..............
    LOGO = FILE
    LOGO {
      file = fileadmin/bilder/logo.png
      wrap = <a href="http://www.xxxxxxxxxxxxxxx.de" target="_top" title="Start"> | </a>
    }
    
    # .............. Kopfbild ..............
    BILD = IMAGE
    BILD {
      file = fileadmin/bilder/bild1.png
      #holt sich das header-Bild aus den Ressourcen der jeweiligen Seite
      file {
        import.data = levelmedia:1,slide
        import = uploads/media/
        import.listNum = 0
      }
      wrap = <img class="bild" alt="" /> | </img>
    }
    
    # .............. individuelle Inhalte (+ext Template) ..............
    INHALT < temp.inhalt
     
    # .............. Fusszeile ..............
    FUSS = IMAGE
    FUSS {
      file = fileadmin/bilder/fuss.png
      wrap = <a href="mailto:info@xxxxxxxxxx.de" target="_blank" title="E-Mail"> | </a>
    }
  }
}

Wichtig ist im obigen script die Zeile 62. Hier sollte eigentlich der Inhalt aus der +ext hineinkopiert werden.

und nun das +ext template

# .......................... GIFBUILDER Anfang (Inhalt) ...............................

temp.inhalt = IMAGE
temp.inhalt.file = GIFBUILDER
temp.inhalt.file {
  XY = [10.w], [10.h]
  # backColor = #eb9200
  transparentBackground = 1
  transparentColor = #ffffff
  format = png
  quality = 90
  
  10 = IMAGE
  10.file = fileadmin/bilder/hg_inhalt1.png
  10.transparentBackground = 1
  
  30 = TEXT
  30 {
    text (
Diese Seite nimmt sich die Freiheit einige
Zeit lang als Baustelle zu existieren.
    )
    text.case = upper
  }
  
  30.offset = 25,40
  30.fontSize = 20
  30.niceText = 1
  30.fontColor = #fcefd9
  30.fontFile = fileadmin/fonts/RockwellStd-ExtraBold.otf
  
  40 = TEXT
  40 {
    text (
Nichtsdestotrotz: im Hintergrund wird gearbeitet!
Nach wie vor mit dem bekannten Leistungsspektrum,
    )
    
  }
  40.offset = 25,100
  40.fontSize = 22
  40.niceText = 1
  40.fontColor = #fcefd9
  40.fontFile = fileadmin/fonts/timesi.ttf
  
  50 = TEXT
  50 {
    text (
darüberhinaus im Bereich Webdesign
    )
    
  }
  50.offset = 25,155
  50.fontSize = 22
  50.niceText = 1
  50.fontColor = #fcefd9
  50.fontFile = fileadmin/fonts/timesi.ttf
  
  60 = TEXT
  60 {
    text (
(HTML, CSS, Typo3, Flash)
    )
    
  }
  60.offset = 25,183
  60.fontSize = 18
  60.niceText = 1
  60.fontColor = #fcefd9
  60.fontFile = fileadmin/fonts/timesi.ttf
}
# .......................... GIFBUILDER Ende ...............................

Wie gesagt, es hat schon mal funktioniert in ähnlicher (zusammengesetzter) Form. Also macht Euch nicht die Mühe den kompletten Script umzuschreiben. Es kann nur an etwas Kleinem liegen. Wenn ich nur wüsste ...

Freue mich über leicht verständliche und konstruktive Tips!

Michaelh74 ·

Sieht auf den ersten Blick nicht mal so schlecht aus, bis auf diese Tabellen-Suppe. Laut Text willst Du doch Webdesign anbieten. Dann bitte OHNE Tabellen als Layout-Hilfsmittel ;-)

Gibt Dir das System denn Inhalt aus Content-Elementen aus?
Denn damit würde ich erst mal anfangen.

Wird Dir die anderen Objekte wie Menüs etc. angezeigt?

Gruß
Michael

cmoke ·

Gibt Dir das System denn Inhalt aus Content-Elementen aus?

Hallo Michael.

Wie gesagt, der code kann nicht komplett falsch sein, da er in ähnlicher Form schon mal funktioniert hat. nur seit dem ich ihn gesplittet habe, ist irgendwo der Wurm drin. Es ist alles sichtbar, was im root code drinnen ist. Nur der +ext temp. wird "ignoriert".

... Dann bitte OHNE Tabellen als Layout-Hilfsmittel ;-)

:o
ja... ich weiß. Wollte nur mal probieren, ob ich das mit Tabellen hinbekomme; ein Experiment. Gelernt habe ich es mit Listenelementen.
Kommt nicht wieder vor...

Michaelh74 ·

D.h. steht der Part vom EXT im Root Template mit drin, wird alles so angezeigt wie es soll.

Ich gehe davon aus, dass es ein Problem mit der Reihenfolge der Abarbeitung ist.

Im Root Tmpl weist Du das temp.inhalt object dem Subpart Inhalt zu. Wenn Du dann nachträglich noch was am temp object änderst, wird das von T3 für das Rendering nicht mehr wahrgenommen.

Nimm mal in Deinem EXT Templ. statt temp.inhalt besser "page.10.subparts.INHALT"

Damit sollte es klappen.

Gruß
Michael

cmoke ·

Nimm mal in Deinem EXT Templ. statt temp.inhalt besser "page.10.subparts.INHALT"

Eigentlich war es dieses, womit ich angefangen hab. Ist ja das Näherliegende. Hat aber auch net gefunzt.

Was komisch ist, dass, sobald ich den einzelnen subpart-Objekten Zeilennummern vergebe (10.MENU ... 20.LOGO ... usw.) und dem ext.Temp. eine eindeutige Stelle zuweise, funktioniert nichts mehr.

Es muss doch mit dem Zeufel zugehen, wenn ich das nicht irgendwie hinbekomme!!

cmoke ·

Okay, ich meine jetzt das Problem selber gelöst zu haben. Zumindest auf meine Weise:

So wie es aussieht benötigt also jedes +ext Template das TEMPLATE-Objekt, also das HTML-Dokument.

seite.10 = TEMPLATE
seite.10 {
template =FILE
template.file= fileadmin/html/start.html

...

dann erst die eigentlichen individuellen Inhalte.

Falls jemandem noch eine elegantere Lösung einfällt, bin ich sehr lernbereit.

so long

Michaelh74 ·

So wie es aussieht benötigt also jedes +ext Template das TEMPLATE-Objekt, also das HTML-Dokument.

Das ist definitiv nicht so!

Hast Du auch wirklich ein ext Template ohne gesetzte Optionen wie is Root, etc. gesetzt? Das Template bei echten ext tmpl wird immer vererbt - außer man unterbindet das irgendwie.

Gruß
Michael

cmoke ·

Das ist definitiv nicht so!

Okay...

...aber bei mir hat es vorher, ohne dieses TEMPLATE Obj. nicht funktioniert und als ich es eingefügt habe ging es plötzlich. Ich konnte es mir halt nicht anders erklären, als das dieses der Grund war.

Die Struktur des root Templates sieht folgendermaßen aus:

SEITEN Obj.
-> TEMPLATE Obj. {
--> HTML als FILE Obj.

--> subparts {
---> SUBPART1 (als FILE Obj.)
---> SUBPART2 (als IMAGE Obj.)

---> SUBPART4 (als IMAGE Obj.)
---> SUBPART5 (als HMENU Obj.)
--> }

}

und das +ext Template:

SEITEN Obj.
-> TEMPLATE Obj. {
--> HTML als FILE Obj.
--> subparts {
---> SUBPART3 (als IMAGE -> GIFBUILDER Obj.)
(mit Hintergrundgrafik und gerendertem, mehrzeiligem Text)
--> }

}

Das SUBPART3 sollte dann, auf den jeweiligen Seiten, mit unterschiedlichem Inhalt, an der Stelle zwischen SUBPART2 und SUBPART4 eingefügt werden. Und genau das ist ohne die Zuweisung des TEMPLATE Objektes nicht passiert. Ich nehme an, "es wusste nicht wohin es gehört"; hat also das ausgewiesene Subpart im HTML Dokument nicht gefunden, bzw. wusste erst gar nicht in welchem Dokument es ist.

Michaelh74 ·

Also wenn Du im Root Template alles richtig definierst und dann ein einfaches Extension Template anlegst und dort nur folgendes einträgst muss das 100% funktionieren. Schon 1000 mal so gemacht ;-) Sonst muss an irgendeiner anderen Stellen nur der Wurm drin sein...

page.10.subparts.INHALT < temp.meinAlternativerInhalt

Gruß
Michael