TYPO3-BE: Inhaltselemente für Spalten beschränken

Werden umfangreichere Website mit TYPO3 gebaut, kommen meist die Spalten (colPos) mit ins Spiel. Damit kommt dann auch das mulmige Gefühl, ob denn alle Redakteure in den jeweiligen Spalten nur die „passenden“ Inhaltselemente platzieren… Eine Gallery in der Marginalspalte? Ein Mailformular unter der Seitennavigation???

Zum Glück gibt es auch hierfür Möglichkeiten. Seit TYPO3 4.3 können im pageTS Conditions verwendet werden.

Nachfolgend eine Beispielkonfiguration, wie in der rechten Spalte nur noch das Inhaltelement „Sitemap“ (CType: menu) platziert werden kann. Dies geschiet zum einen, indem der Wizrad entsprechend angepasst wird, zum anderen, indem die Auswahl für colPos variiert wird.

## alle Spalten außer normal verbieten
TCEFORM.tt_content.colPos.removeItems = 1,2,3

##
## Rechte Spalte einschränken - Start ---------------------------------
##

[globalVar = GP:defVals|tt_content|colPos==2]
TCEFORM.tt_content.CType.removeItems := addToList(header,text,textpic,image,bullets,table,uploads,mailform,search,login,multimedia,media,splash,shortcut,list,script,div,html)
TCEFORM.tt_content.colPos.removeItems := addToList(0)
TCEFORM.tt_content.colPos.removeItems := removeFromList(2)
[global]
## new Element Wizard
[globalVar = GP:colPos==2]
mod.wizards.newContentElement.wizardItems.common.show =
mod.wizards.newContentElement.wizardItems.special.show := removeFromList(multimedia,uploads,media,html,div)
mod.wizards.newContentElement.wizardItems.forms.show =
mod.wizards.newContentElement.wizardItems.plugins.show =
[global]

##
## Rechte Spalte einschränken - Ende ----------------------------------
##

Eine Hintertür gibt es leider noch: Werden Inhaltselemente aus anderen Spalten kopiert/verschoben, scheitert die Einschränkung.
Hat hier jemand eine Lösung?

Kennt jemand einen geschickteren/besseren Weg für die gezielte Steuerung der Verwendung von Inhaltselement-Typen?

Das könnte dich auch interessieren …

13 Antworten

  1. Christian sagt:

    Danke für den nützlichen Post.
    Und @Urs für das aktuelle Update.

  2. Urs Bräm sagt:

    … und zum Beschränken je nach backend_layout:

    [globalVar = GP:colPos==0]&&[page|backend_layout = 0]

  3. Urs Bräm sagt:

    So geht’s gut:

    # Reset all tabs in new content element wizard
    mod.wizards.newContentElement.wizardItems.common.show =
    mod.wizards.newContentElement.wizardItems.special.show =
    mod.wizards.newContentElement.wizardItems.forms.show =
    mod.wizards.newContentElement.wizardItems.plugins.show =
    mod.wizards.newContentElement.wizardItems.mask.show =

    [globalVar = GP:colPos==0]
    mod.wizards.newContentElement.wizardItems.common.show := addToList(header)
    mod.wizards.newContentElement.wizardItems.mask.show := addToList(mask_customelement)
    [end]

  4. ToBe sagt:

    für TemplaVoila! gibt es die Extension fcecolumn – blendet zwar nur Elemente im Wizard aus aber immerhin.

  5. Markus sagt:

    Hallo,

    funktioniert das auch mit TemplaVoila?
    Bei mir greifen die Conditions nämlich tatsächlich nicht.

    Markus

  6. Jochen Overwien sagt:

    Hallo Julian,

    ich hatte Deine Antwort nicht mitbekommen. Wenn man auf Rootebene mittels
    mod.SHARED.colPos_list=0
    Spalten ausblendet, ging Deine Condition auf den Unterseiten schief. Aber hundertprozentig kann ich das nun nicht mehr nachhalten…

    Jochen

  7. Jochen Overwien sagt:

    @Julian
    stimmt – die Condition greift. Aber es kommt zu Unregelmäßigkeiten, wenn auf root-Ebene zuvor Spalten ausgeblendet werden.

    • Julian sagt:

      Kannst Du das konkretisieren, sodass es reproduzierbar wird? Wie blendest Du die Spalten auf root-Ebene aus?
      Würde dem Ganzen dann mal nachgehen wollen, da das dann evtl. ein Bug sein könnte…

  8. Julian sagt:

    @Urs:
    Seit TYPO3 4.5 sollte das Gewünschte möglich sein:
    A new condition is available for the current page record in PageTS. This allows settings for example like this:
    mod.SHARED.colPos_list = 0
    [page|backend_layout = 1]
    mod.SHARED.colPos_list = 1,0
    [global]
    (http://wiki.typo3.org/TYPO3_4.5)

  9. Julian sagt:

    @Jochen:
    Habe die beiden Conditions eben in einem TYPO3 4.5.5 ausprobiert – und sie greifen.
    Bitte beachte, dass Du _beide_ Conditions brauchst. Die eine greift _nur_ im New Element Wizard, die andere _nur_ in der Eingabemaske des neuen Contentelements.

  10. Jochen Overwien sagt:

    Leider scheint die Condition
    [globalVar = GP:defVals|tt_content|colPos==2]
    in TYPO3 4.5.5 nicht zu greifen – hat da jemand schon etwas anderes herausgefunden?

  11. Urs Bräm sagt:

    Weiss jemand, wie man diese Lösung mit der Funktion „Backend Layout“ (ab Typo3 4.5) verbindet?

    Ich möchte erst aufgrund eines bestimmten Backend Layouts diese Limitierungen vornehmen, nicht zum voraus.

    Es ginge sicher auch, indem man sicherstellt, dass jede Spalte nur eine Funktion hat (BE Layout kann dieselbe Spaltennummer in verschiedenen Kontexten wiederverwenden).

    Aber fast logischer schiene mir die Abfrage per Condition: Wenn BE Layout 1, dann…. beschränke dieses und dieses CE auf den und den Typ, wenn BE Layout 2, darf es anders sein…

  12. Mateng sagt:

    Würde mich auch interessieren!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.