TYPO3 - Gridelements: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
 
(26 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
== Links ==
 
== Links ==
https://www.youtube.com/watch?v=cuEKyaOtAEY
+
* https://www.youtube.com/watch?v=cuEKyaOtAEY
 +
* http://www.marmalade.de/magazin/2013/09/typo3-fluid-und-grid-elements-gemeinsam-verwenden/
 +
* https://networkteam.com/blog/gridelements-professionell-nutzen.html
 +
 
 +
== Downloads ==
 +
[[Datei:Typo3-bootstrap3-gridelements.zip|mini]]
  
 
== Einführung ==
 
== Einführung ==
Zeile 6: Zeile 11:
  
 
== Quickstart ==
 
== Quickstart ==
* Extension gridelements installieren
+
* '''Extension''' gridelements installieren
* Ordner für gridelements anlegen
+
* '''Ordner''' für gridelements anlegen
* Grids erstellen
+
* '''Grid Layout Raster''' erstellen
* Rendering der Grids definieren
+
* '''Rendering der Grids''' definieren (TypoScript)
 +
* '''Template''' anpassen
 +
 
 +
=== Raster erstellen ===
 +
Mit dem Assistenten. Das sieht nachher z.B. so aus:
 +
<syntaxhighlight lang="typoscript">
 +
backend_layout {
 +
  colCount = 2
 +
  rowCount = 1
 +
    rows {
 +
      1 {
 +
        columns {
 +
          1 {
 +
            name = Links
 +
            colPos = 10
 +
          }
 +
          2 {
 +
            name = Rechts
 +
            colPos = 20
 +
          }
 +
        }
 +
      }
 +
  }
 +
}
 +
 
 +
</syntaxhighlight>
 +
Achtung: Aufpassen die Nummern der Spalten (colPos) teilt sich Gridelements mit den Standardspalten (0 bis 4) aber auch den Backendlayouts.
  
 
=== Grid Rendering definieren ===
 
=== Grid Rendering definieren ===
 
<syntaxhighlight lang="typoscript">
 
<syntaxhighlight lang="typoscript">
 
tt_content.gridelements_pi1.20.10.setup{
 
tt_content.gridelements_pi1.20.10.setup{
   # ID des ge
+
   # ID des gridelement
   1 > lib.gridelements.defaultGridSetup
+
   1 < lib.gridelements.defaultGridSetup
 +
  # oder mit dem Alias Namen: MY_ALIAS < lib.gridelements.defaultGridSetup
 
   1{
 
   1{
 
     columns{
 
     columns{
Zeile 26: Zeile 58:
 
     }
 
     }
 
     wrap = <div class="row">|</div>
 
     wrap = <div class="row">|</div>
 +
  }
 +
}
 +
 +
# if you want to provide your own templating, just insert a cObject here
 +
# this will prevent the collected content from being rendered directly
 +
# i.e. cObject = TEMPLATE or cObject = FLUIDTEMPLATE will be available from the core
 +
# the content will be available via fieldnames like
 +
# tx_gridelements_view_columns (an array containing each column)
 +
# or tx_gridelements_view_children (an array containing each child)
 +
# tx_gridelements_view_column_123 (123 is the number of the column)
 +
# or tx_gridelements_view_child_123 (123 is the UID of the child)
 +
</syntaxhighlight>
 +
 +
=== Template anpassen ===
 +
==== ohne Fluid ====
 +
Hier reicht die Standardzuordnung der Spalten im TypoScript:
 +
<syntaxhighlight lang="typoscript">
 +
 +
</syntaxhighlight>
 +
 +
== Gridelements mit Fluid ==
 +
Hier muß man folgendes anpassen:
 +
* Im TypoScript des GE kann man es einem Fluidtemplate zuweisen
 +
* Im Fluidtemplate bindet man die Inhalte über den data Viewhelper ein.
 +
=== Gridrendering ===
 +
<syntaxhighlight lang="typoscript">
 +
# Fluid-Template zuweisen
 +
tt_content.gridelements_pi1.20.10.setup {
 +
  # 1 ist die ID des entsprechenden Gridelements
 +
  1 < lib.gridelements.defaultGridSetup
 +
  1 {
 +
    cObject = FLUIDTEMPLATE
 +
    cObject {
 +
      file = fileadmin/tmpl/gridelements/2col_1-1.html
 +
    }
 
   }
 
   }
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
=== Fluid Template ===
 +
<syntaxhighlight lang="html5">
 +
<div class="row">
 +
  <div class="col-md-6 col-xs-12">
 +
    <f:format.raw>
 +
      {data.tx_gridelements_view_column_10->f:format.raw()}
 +
    </f:format.raw>
 +
  </div>
 +
  <div class="col-md-6 col-xs-12">
 +
    <f:format.raw>
 +
      {data.tx_gridelements_view_column_20->f:format.raw()}
 +
    </f:format.raw>
 +
  </div>
 +
</div>
 +
</syntaxhighlight>
 +
 +
== Gridelements und Fluid Styled Content ==
 +
In TYPO3 v7 wird das alte css-styled-content durch fluid-styled-content ersetzt. Damit kann man das Rendering der Inhalte in Fluid-Templates überschreiben anstatt TypoScript zu benutzen. Siehe auch: [[http://wiki.zone30.info/wikizone/index.php/TYPO3_-_fluid_styled_content|TYPO3_-_fluid_styled_content]]. Das eröffnet neue Möglichkeiten.
 +
=== Beispiel: Gridelements und Bootstrap ===
 +
Siehe auch: http://wiki.zone30.info/wikizone/index.php/TYPO3_-_fluid_styled_content#Beispiel:_Layoutfeld_mit_Bootstrap_Klassen_f.C3.BCr_Fluid_Styled_Content für den Einsatz von Bootstrap ohne Gridelements nur mit Basis TYPO3.
 +
 +
Gridelements bieten sich für Gridbasierte CSS-Frameworks an, da die Grundidee der Spalten ähnlich ist. Mit Gridelements kann man auf dem vorhandenen Raster verschiedene Spaltensetups erzeugen.
 +
 +
* 1. Grids erstellen.
 +
== Überschriften der Content Elemente in Gridelements ==
 +
Im TypoScript
 +
tt_content.gridelements_pi1.10 =< lib.stdheader
 +
Im Fluid Template (mehr Kontrolle):
 +
<f:cObject data=“{data}“ typoscriptObjectPath=“lib.stdheader“/>

Aktuelle Version vom 26. Juli 2016, 05:30 Uhr

Links[Bearbeiten]

Downloads[Bearbeiten]

Datei:Typo3-bootstrap3-gridelements.zip

Einführung[Bearbeiten]

Ähnlich wie im Backend Layout Editor werden Raster definiert, die man dann einsetzen kann. Das Rendering wird über TypoScript definiert.

Quickstart[Bearbeiten]

  • Extension gridelements installieren
  • Ordner für gridelements anlegen
  • Grid Layout Raster erstellen
  • Rendering der Grids definieren (TypoScript)
  • Template anpassen

Raster erstellen[Bearbeiten]

Mit dem Assistenten. Das sieht nachher z.B. so aus:

backend_layout {
  colCount = 2
  rowCount = 1
    rows {
      1 {
        columns {
          1 {
            name = Links
            colPos = 10
          }
          2 {
            name = Rechts
            colPos = 20
          }
        }
      }
   }
}

Achtung: Aufpassen die Nummern der Spalten (colPos) teilt sich Gridelements mit den Standardspalten (0 bis 4) aber auch den Backendlayouts.

Grid Rendering definieren[Bearbeiten]

tt_content.gridelements_pi1.20.10.setup{
  # ID des gridelement
  1 < lib.gridelements.defaultGridSetup
  # oder mit dem Alias Namen: MY_ALIAS < lib.gridelements.defaultGridSetup
  1{
    columns{
      # colPos ID
      10 < .default
      10.wrap = <div class="s12 m8">|</div>
      # colPos ID
      20 < .default
      20.wrap = <div class="s12 m4">|</div>
    }
    wrap = <div class="row">|</div>
  }
}

# if you want to provide your own templating, just insert a cObject here
# this will prevent the collected content from being rendered directly
# i.e. cObject = TEMPLATE or cObject = FLUIDTEMPLATE will be available from the core
# the content will be available via fieldnames like
# tx_gridelements_view_columns (an array containing each column)
# or tx_gridelements_view_children (an array containing each child)
# tx_gridelements_view_column_123 (123 is the number of the column)
# or tx_gridelements_view_child_123 (123 is the UID of the child)

Template anpassen[Bearbeiten]

ohne Fluid[Bearbeiten]

Hier reicht die Standardzuordnung der Spalten im TypoScript:

Gridelements mit Fluid[Bearbeiten]

Hier muß man folgendes anpassen:

  • Im TypoScript des GE kann man es einem Fluidtemplate zuweisen
  • Im Fluidtemplate bindet man die Inhalte über den data Viewhelper ein.

Gridrendering[Bearbeiten]

# Fluid-Template zuweisen
tt_content.gridelements_pi1.20.10.setup {
  # 1 ist die ID des entsprechenden Gridelements
  1 < lib.gridelements.defaultGridSetup
  1 {
    cObject = FLUIDTEMPLATE
    cObject {
      file = fileadmin/tmpl/gridelements/2col_1-1.html
    }
  }
}

Fluid Template[Bearbeiten]

<div class="row">
  <div class="col-md-6 col-xs-12">
    <f:format.raw>
      {data.tx_gridelements_view_column_10->f:format.raw()}
    </f:format.raw>
  </div>
  <div class="col-md-6 col-xs-12">
    <f:format.raw>
      {data.tx_gridelements_view_column_20->f:format.raw()}
    </f:format.raw>
  </div>
</div>

Gridelements und Fluid Styled Content[Bearbeiten]

In TYPO3 v7 wird das alte css-styled-content durch fluid-styled-content ersetzt. Damit kann man das Rendering der Inhalte in Fluid-Templates überschreiben anstatt TypoScript zu benutzen. Siehe auch: [[1]]. Das eröffnet neue Möglichkeiten.

Beispiel: Gridelements und Bootstrap[Bearbeiten]

Siehe auch: http://wiki.zone30.info/wikizone/index.php/TYPO3_-_fluid_styled_content#Beispiel:_Layoutfeld_mit_Bootstrap_Klassen_f.C3.BCr_Fluid_Styled_Content für den Einsatz von Bootstrap ohne Gridelements nur mit Basis TYPO3.

Gridelements bieten sich für Gridbasierte CSS-Frameworks an, da die Grundidee der Spalten ähnlich ist. Mit Gridelements kann man auf dem vorhandenen Raster verschiedene Spaltensetups erzeugen.

  • 1. Grids erstellen.

Überschriften der Content Elemente in Gridelements[Bearbeiten]

Im TypoScript

tt_content.gridelements_pi1.10 =< lib.stdheader

Im Fluid Template (mehr Kontrolle):

<f:cObject data=“{data}“ typoscriptObjectPath=“lib.stdheader“/>