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?

12 Antworten to “TYPO3-BE: Inhaltselemente für Spalten beschränken”

  1. avatar

    Würde mich auch interessieren!

  2. avatar

    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…

  3. avatar

    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?

  4. avatar

    @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.

  5. avatar

    @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)

  6. avatar

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

  7. avatar

    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. avatar

    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

  9. avatar

    Hallo,

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

    Markus

  10. avatar

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

  11. avatar

    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]

  12. avatar

    … und zum Beschränken je nach backend_layout:

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

Schreibe einen Kommentar