Zum Inhalt springen

Praxiswissen Typo3

Erstellt am 8. November 2013 · 12 Antworten · letzte Antwort am 10. November 2013

Tags: Frage

Arthur_1 ·

Hi Leute,

wie in meinem letzten Posting bereits erwähnt, versuche ich, mich brav Kapitel für Kapitel durch das oben erwähnte Buch (6. Auflage, Typo- Version 6.0) zu arbeiten. Ich bin auch ein Stück voran gekommen und die Beispiele funktionieren auch soweit, aber jetzt stecke ich so richtig fest. Ich habe gesehen, dass Einige das Problem auch hatten, aber die dort gefundenen Lösungen funzen bei mir nicht.
Es geht um das Textmenü aus dem Praxisbeispiel. Wenn ich den Code so eingebe, wie im Buch, verschwindet der Platzhalter und mit ihm das gesamte <div>. Lege ich fest, dass der Platzhalter nur Text enthält, erscheint der Text, den ich mit .value übergebe.
Ich habe Typo 6.1 im Einsatz - gibt es da eventuell Syntaxunterschiede (wie es sie ja auch bem Auslesen von Bildern aus den Seiteneigenschaften der Fall war - hier musster der Code um "file.threatIdAsReference = 1" ergänzt werden, wovon auch nix im Buch steht)?

Hier der Ausschnitt aus meinem Code:

page = PAGE
page {

 [...]
  
 # Die Designvorlage integrieren
  10 = TEMPLATE
  10 {
    [...]
    
    marks {
      [...]
        
       # Das obere Textmenü erstellen
#      MENU_OBEN = TEXT
#      MENU_OBEN.value = Testtext anstelle eine Menüs
      MENU_OBEN = HMENU
      MENU_OBEN {
        special = directory
        special.value = 25
        
        1 = TMENU
        1 {
          NO = 1
          NO.linkWrap = |
        }
      }
    }        
  }
}

In dieser Variante kommt als Ergebnis pic1, kommentiere ich das Letzte aber aus und nehme die Kommentarzeichen vor den ersten beiden "MENU_OBEN"- Einträgen weg, erhalte ich als Ergebnis pic2.

Ich hatte ursprünglich gedacht, ich habe die Klammern falsch gesetzt, aber die habe ich gefühlte 200 mal überprüft und die sind korrekt gesetzt (wenigstens so wie im Buch!).

Was kann das sein? Was habe ich für Möglichkeiten, dem Fehler selbst auf die Spur zu kommen?

Danke schon mal im Voraus!

Ciao Arthur

pic1.jpg
pic2.jpg

Arthur_1 ·

Kurzer Nachtrag:
Das Gleiche passiert beim GMENU auf der linken Seite ebenfalls. Auch hier habe ich probehalber einen Text anzeigen lassen, was ohne Probleme geht, als Menü kommt gar nix.

Kann es sein, dass ich möglicherweise aufgrund irgendeiner Einstellung Probleme mit dem kompletten HMENU habe? Was könnte das für eine Einstellung sein?

Hilfeee!

Unbekannter Benutzer ·

Hallo Arthur,

ich habe zufälligerweise ein pdf von einem Buchkapitel über Menüs auf dem Rechner, das eine sehr ähnliche Menüstruktur verwendet. Das TS lautet dort:

 page = PAGE
 page {
   [...]
   10.marks {
   [...]
   TRAILER.file {
   [...]
   }
   # Das Textmenü oben erstellen
   MENU_OBEN = HMENU
   }
}

Merkst Du was? Es liegt - wie Du schreibst - vermutlich nicht an der Klammersetzung. In meinem Snippet ist MENU_OBEN mit 10.marks in den Seitenaufbau mit 10 = TEMPLATE eingebunden und dürfte deshalb auch angezeigt werden.

In Deinem Code steht nur marks {...}. Damit hängt das Menü beim Seitenaufbau aber im luftleeren Raum und wird offenbar deshalb auch nicht angezeigt. Dafür gibt TYPO3 bei Deiner Variante mit dem Text brav das (beliebige) Textobjekt aus.

Ich würde mich wundern, wenn ich falsch liege🙂

Viel Erfolg!

Arthur_1 ·

Hi typix,

danke fürs Gedanken- machen, aber deshalb habe ich die übergeordneten Elemente mit im Schnipsel. Da kannst Du sehen, dass page das Element in der höchsten Ebene ist, in seiner geschweiften Klammer findest Du 10, was wieder eine Klammer öffnet, in welcher marks wiederum eine weitere Ebene nach unten öffnet usw. Am Ende gehen die Klammern eine nach der anderen wieder zu.

Ciao Arthur

Unbekannter Benutzer ·

Hallo Arthur,

Du hast vollkommen Recht. Ich habe im Nachgang des Posts auch ein paar Zweifel bekommen und mir das Thema nochmals genauer angesehen.

Dieser Post aus dem Forum ist zwar vom Format her völlig verhunzt, aber inhaltlich dennoch aufschußreich:
#3501

Was lernen wir: Zitat: "Kurzgesagt: subparts sind komplette Seiten, marks sind Inhalte."

Ich arbeite nur mit subparts und das funzt auch prima. Wenn Du wie im Moment offenbar nur marks einsetzen willst, müssen die Marker (marks) einem Subpart (Seite) zugewiesen werden. Meine erste Vermutung. Zitat aus dem Thread:
"Jedes HTML-Template muss also wenigstens einen Subpart haben."

Kann es also sein, daß in Deinem Setup schlicht das "page.10.workOnSubpart = DOKUMENT" o.ä. fehlen könnte? Damit der Marker einem Subpart und der Seite zugewiesen und damit das Menü angezeigt wird?

Apropos: Ich mache mir gerne Gedanken. Weil ich im Austausch dazu lerne.

Viel Erfolg!

Arthur_1 ·

Hi typix,

ist schon drin (das befindet sich in dem mit [...] gekennzeichneten Bereich zwischen "10 {" und "marks {". Hier noch mal der komplette Abschnitt:

[...]
 # Die Designvorlage integrieren
  10 = TEMPLATE
  10 {
    template = FILE
    template.file = fileadmin/vorlage.html
    workOnSubpart = DOKUMENT
    
    marks {
       # Das Datum ausgeben
      DATUM = TEXT
      DATUM.data = date:d.m.Y
[...]

Ich werde irgendwie den Verdacht nicht los, dass möglicherweise irgendetwas im Bereich "All configuration" im Install Tool falsch eingestellt ist. Allerdings schau ich da im Moment hinein wie das berühmte Schwein in das berühmte Uhrwerk ...
Kann da etwas schief gelaufen sein?

Ciao Arthur

Unbekannter Benutzer ·

Hallo Arthur,

solange ich Dein TS nicht vollständig sehen kann, bin ich auch nicht davon überzeugt, dass es passt. Aber egal. Schau Dir mal diese etwas ältere Beschreibung aus dem Admin-Forum an und vergleich deren TS mit Deinem:

http://www.admin-wissen.de/tutorials/typo3_tutorial/templating/marker_und_subparts.html

Dieses HowTo erwähnt auch noch weitere geradezu klassische Fehlerquellen:
1) Man vergißt, im BE auf der Root-Seite ins (Haupt-)Template zu gehen, Info-Bearbeiten zu wählen und unter dem Reiter "Enthält" dass CSS_Default_Style... einzubinden.
2) Wird das Template fileadmin/vorlage.html überhaupt angezogen? Die Kontrolle kannst Du wie unter 1) mit dem dortigen Template-Analyzer machen. Auf das Icon für das Haupttemplate klicken und nach unten scrollen. Mögliche Klammerfehler oder nicht geladene Datein sind dort kaum zu übersehen.
3) Enthält das Template fileadmin/vorlage.html überhaupt die Marker ###MARKER### oder <!-- start of subpart: ###HALLO### -->Das ist der HTML-Code, der ins Register geladen und mit dem Ergebis ersetzt wird...<!-- end ###HALLO### -->?
Konkret in Deinem Fall ###Datum### oder ###MENU_OBEN###?
Hierzu folgender Link:
https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/ContentObjects/Fluidtemplate/Index.html
4) Weiß die Root-Seite, daß sie für die Constants und das Setup Root-Level ist? Über die Seite root, Seiteneigenschaften kann man das einstellen..

Herrje, jetzt habe ich Dir den Sonntag verdorben;(

Trotzdem viel Erfolg!

Arthur_1 ·

Hi typix,

den Beitrag habe ich vor ca. einer Stunde schon mal geschrieben, aber nach dem Klick auf "Beitrag erstellen" ist er im Nirvana verschwunden.

Mein Sonntag ist verdorben, solange ich das nicht zum Laufen bringe!

Zu 1) Kann ich nicht viel dazu sagen, da ich momentan nach Anleitung arbeite (sozusagen "betreutes Coden" 😃) und laut Buch ist hier nix vorgesehen. Das css-file wird auch im Code via includeCSS eingefügt - oder reicht das nicht?
Zu 2) Der Analyzer bringt keinen Fehler (ich habe probehalber eine Klammer gelöscht und weiß daher, wie es aussieht, wenn er einen Fehler gefunden hat).
Zu 3) Marker und Subparts sind alle drin (die files werden zum Download bereitgestellt). Ich hab mal die vorlage als *.txt drangehängt.
Zu 4) Dazu kann ich nix sagen ... ich hab versucht, nach den Einstellungen zu sehen, aber nichts dergleichen gefunden ... ?!?

Ich bin eing. kein Freund davon, den kompletten Code zu posten, nur weil man mit einem Stück ein Problem hat. Deswegen hab ich immer nur Ausschnitte gebracht. Hier nun der komplette Code:

page = PAGE
page {

 # Allgemeine Seiteneigenschaften setzen
  page.config.doctype = html5

 # Meta-Tags angeben
  meta.author = Arthur
  meta.description = Hier steht eine Beschreibung
 
 # CSS-Dateien einfügen
  includeCSS {
    scree = fileadmin/css/style.css
    screen.title = display
    screen.media = screen
  }
  
 # Die Designvorlage integrieren
  10 = TEMPLATE
  10 {
    template = FILE
    template.file = fileadmin/vorlage.html
    workOnSubpart = DOKUMENT
    
    marks {
       # Das Datum ausgeben
      DATUM = TEXT
      DATUM.data = date:d.m.Y
      
       # Das Logo anzeigen
      LOGO = IMAGE
      LOGO.file = fileadmin/images/logo.png
      LOGO.file.height = 121
      
       # Den Trailer erstellen
      TRAILER = IMAGE
      TRAILER.file = GIFBUILDER
      TRAILER.file {
        XY = 731,143
        backColor = white
        
         # Das Hintergrundbild einlesen
        10 = IMAGE
        10 {
          file {
            import = 1
            import.data = levelmedia:-1, slide
            treatIdAsReference = 1
            import.listNum = 0
            width = 731
          }
          offset = 0,-180
        }
        
         # Den Verlauf einarbeiten
        20 = IMAGE
        20 {
          file = fileadmin/images/trailer_overlay.png
          mask = fileadmin/images/trailer_mask.png
        }
        
         # Den Seitentitel darstellen
        30 = TEXT
        30 {
          text.field = subtitle // title
          fontFile = fileadmin/fonts/LSANS.TTF
          fontSize = 24
          fontColor = #053c72
          niceText = 1
          offset = 10,130
        }
      }
        
       # Das obere Textmenü erstellen
#      MENU_OBEN = TEXT
#      MENU_OBEN.value = Testtext anstelle eine Menüs
      MENU_OBEN = HMENU
      MENU_OBEN {
        special = directory
        special.value = 25
         
        1 = TMENU
        1 {
          NO = 1
          NO.linkWrap = |
        }
      }
      
       # Das linke grafische Menü erstellen
#      MENU_LINKS = TEXT
#      MENU_LINKS.value = Linkes Menü
      MENU_LINKS = HMENU
      MENU_LINKS {
        special = directory
        special.value = 26
        
        1 = GMENU
        1 {
         NO = 1
          NO {
            XY = 230,30
            backColor = #e6f4ff
            
             # Text auf den Menüpunkt rendern
            10 = TEXT
            10 {
              text.field = nav_title // title
              text.case = upper
              fontColor = #053c72
              fontFile = fileadmin/fonts/LSANS.TTF
              fontSize = 24
              niceText = 1
              offset = 20,22
            }
          }
        }
      }
    }        
  }
}

Kann es nicht vllt. mit den Versionen zu tun haben (im Buch: v6.0 - ich setze v6.1 ein)? Ich hab irgendwo ein changelog gefunden, aber nix zum HMENU gefunden.

Ciao Arthur

vorlage.txt
2kB
Arthur_1 ·

Problem gelöst!

Ursache: eigene Blödheit!

Prognose: welche Prognose?

In dem Praxisbeispiel wird die root- Seite als "verborgen" angelegt. Direkt danach habe ich die beiden Seiten, welche als "Mutterseiten" für die Menüs dienen, angelegt und dabei nicht darauf geachtet, dass diese automatisch auch auf verborgen stehen. Das wird im tree zwar beinahe schon überdeutlich angezeigt, aber da die Seite ja sowieso mit der "Homepage" verlinkt wurden, habe ich mir nichts dabei gedacht bzw. ich meinte - warum auch immer - es müsste so sein (sie werden ja - wie auch die root- Seite nicht angezeigt).

Ich habe heute noch einmal ganz bei NULL angefangen und dabei ist es mir dann aufgefallen ...

Besten Dank noch mal - tut mir leid!

Ciao Arthur

Unbekannter Benutzer ·

Hallo Arthur,

schön, dann ist Dein Sonntag doch gerettet😃

Nein, keine Blödheit. Errare humanum est. Ich habe gestern zum Beispiel meine Seite auf mehrere Sprachen umgestellt. Hat alles super funktioniert, bis ich mir dachte, wenn ich die Sprachen Englisch und Französisch als globale Variablen definieren soll, warum dann nicht auch die Default-Sprache Deutsch global setzen? Gesagt, getan und Chaos. Die TYPO3-Entwickler haben offenbar eine andere Logik als ich. Die Default-Sprache darf offenbar nicht noch zusätzlich als global definiert werden, weil sie vermutlich schon global gesetzt ist. Nach der Rücknahme der Änderung funzte wieder alles🙂

Es ist die ewige Problemstellung: Lese ich zuerst Tonnen von Dokus, bevor ich einen Schritt setze und verliere damit meine Zeit. Oder setze ich den ersten Schritt und verliere meine Zeit in der Fehlersuche...

Das Posten Deines TS hat sich zumindest in einem Punkt doch gelohnt. Du hast da noch einen Tipfehler, der Dein CSS zerhauen wird:

 # CSS-Dateien einfügen
includeCSS {
scree = fileadmin/css/style.css
screen.title = display
screen.media = screen

Mach weiter so, das wird schon😉

Viel Erfolg!

Arthur_1 ·

Ooops! hatte ich gar nicht gesehen - allerdings da gab es keine Probleme ...
Na jedenfalls ist das ohnehin Schnee von gestern - ich habe heute ja alles noch einmal gemacht und da ist der Eintrag (ich habe gerade noch einmal nachgesehen) vollständig.

Danke noch mal - ich melde mich bestimmt bald wieder ... #yelling#

Ciao Arthur