Schnellnavigation:

Kategorien

« Juli 2017»
S M T W T F S
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

Kopieren Sie diesen Link in Ihren RSS-Reader

RSS 0.91Nachrichten
RSS 2.0Nachrichten

In eigener Sache

Peter Linzenkirchner, Lisardo EDV Beratung in Augsburg. Freelance und Partner für Design- und Webagenturen in Augsburg und München. Pixelgenaue Templates, valides HTML, barrierearm. TYPO3-Projekte, Extension-Programmierung und mehr ... 

Zur Zeit wird gefiltert nach: backend
Filter zurücksetzen

Es ist möglich, beliebige Eingabefelder im Backend mit Werten vorzubelegen, um so den Redakteuren die Arbeit zu erleichtern. Seit Version 4.3 geht das nicht nur über das User-TSconfig sondern auch im page-TSconfig. Wobei letzteres nur manchmal Sinn macht. 

  1. TCAdefaults {
  2.      tt_news {
  3.          title = Ein vorgegebener Titel
  4.          author = AUTORENNAME
  5.          author_email = name@domain.de
  6.      }
  7.      pages {
  8.          hidden = 1
  9.          author = AUTORENNAME
  10.          author_email = name@domain.de
  11.      }
  12. }

Leider sind diese Optionen nicht stdWrap-fähig, so dass keine dynamischen Einträge erfolgen können (z. B. automatisch die User-Email aus dem Setup zu übernehmen). Armin Bartsch erläutert in seiner Webseite eine Möglichkeit, wie das mit Hilfe einer eingebundenen Methode doch möglich ist (habe ich allerdings nicht getestet). 

Ausserdem gibt es eine Extension, die automatisch für tt_news, pages und sys_notes Autor und E-Mail setzt: cron_setdefaultauthor

Weiterführende Links

Die Optionen aller Eingabefelder im Backend können modifizert (= geändert oder erweitert) werden. Prinzipiell ist die Syntax:

  1. TCEFORM.[tablename].[field] {
  2.   # Feld komplett entfernen:
  3.   disabled=1
  4.   # Item entfernen
  5.   removeItems=1,2,3
  6.   # Item hinzufügen (Achtung: erfordert für das Frontend noch TypoScript im Template!)
  7.   addItems.[itemValue]=100,101
  8.   # Umbenennen
  9.   altLabels.[item_value]=ein ganz neuer Name
  10. }

Leider gibt es keine Dokumentation, welche Optionen für welches Feld zur Verfügung stehen und wie diese im Frontend ausgegeben werden. Das kann man wohl am einfachsten aus dem Quelltext des Eingabeformulars im Backend entnehmen. Für das Frontend kenne ich im Moment nur die Möglichkeit, es auszutesten bzw im Falle von tt_content das TypoScript von css_styled_content durchzusehen.

Bezeichnungen der Headline-Layouts ändern:

Ins TSconfig der der Seite folgendes eintragen: 

  1. TCEFORM.tt_content {
  2.   # ausblenden
  3.   header_layout.removeItems=1,4,5,100
  4.   # mit anderem Namen versehen
  5.   header_layout.altLabels.0=Ebene 1,H1
  6.   header_layout.altLabels.2=Ebene 2,H2
  7.   header_layout.altLabels.3=Ebene 3,H3
  8. }

Falls H1 nicht genutzt werden soll, muss die Default-Einstellung noch geändert werden, bzw. die Ausgabe für header_layout.altLabels.0. Das geht über folgende Eingabe im Constants-Bereich des TypoScript-Templates:

  1. # Voreinstellunge auf Headline <h3>
  2. content.defaultHeaderType=3

Rahmenoptionen umbenennen:

  1. TCEFORM.tt_content {
  2.   # Rahmenoptionen im Bereich Typ
  3.   section_frame {
  4.     # neue Labels
  5.     altLabels {
  6.       10=Kasten
  7.       5=Linie davor
  8.       6=Linie danach
  9.       11=BoxBlau
  10.       12=BoxGrau
  11.     }
  12.   # ausblenden
  13.   removeItems=1,20,21
  14.   }
  15. }

Neue Rahmenoptionen hinzufügen

Das ist etwas aufwändiger, da hierzu auch das TypoScript von tt_content verändert werden muss. Erster Schritt im TSconfig der Seite:

  1. # neuer Rahmen dazu
  2. TCEFORM.tt_content.section_frame {
  3.   addItems.100=Mal ganz anders
  4. }

Danach im TypoScript-Template:

  1. tt_content.stdWrap.innerWrap.cObject= CASE
  2. tt_content.stdWrap.innerWrap.cObject {
  3.   100=TEXT
  4.   100.value= <div class="mal-ganz-anders">|</div>
  5. }

Danach ganz normal in der CSS-Datei formatieren.

ACHTUNG: Das funktioniert seit TYPO3 4.3 nicht mehr; hier wurde css_styled_content etwas verändert. Man kann zwar die alte Fassung als static_content in das Template laden, aber besser ist es, es auf die neue Art zu machen:

  1. tt_content.stdWrap.innerWrap.cObject {
  2.     # Definitionen zuweisen
  3.     100=<tt_content.stdWrap.innerWrap.cObject.default
  4.     # Klasse zuweisen
  5.     100.15.value=mal-ganz-anders
  6. }

Das hat auch den Vorteile, dass die Abstände oben und unten funktionieren.

Weiterführende Links:

In der Version 4.3 kann man den Wizard für die neuen Inhaltselemente ziemlich gut konfigurieren. Das bentuze ich um z. B. das ebenfalls komplett überarbeitete Inhaltselement Media in die erste Rubrik Typischer Seiteninhalt einzubinden.

Dazu muss in TSconfig der Seite folgender Abschnitt:

  1. mod {
  2.     wizards{
  3.         newContentElement {
  4.             # Darstellung in Tabs
  5.             renderMode=tabs
  6.             # Content-Element media in den ersten
  7.             # Tab aufnehmen
  8.             # Definition
  9.             wizardItems.common.elements.media {
  10.                 icon=gfx/c_wiz/multimedia.gif
  11.                 title=Media
  12.                 description=Video/Flash einbinden
  13.                 tt_content_defValues {
  14.                         CType=media
  15.                 }

  1.             }
  2.             # Hinzufügen
  3.             wizardItems.common.show:=addToList(media)
  4.         }
  5.     }
  6. }

Tipp: Wenn man mit TemplaVoila arbeitet, geht der Code nicht, in dem Fall muss mod durch templavoila ersetzt werden:

  1. templavoila {
  2.     wizards{
  3.                 # und so  weiter.
  4.     }
  5. }

Weiterführende Links

Kategorien: Backend  Kommentare 0
Tags: wizard, backend

Auch ohne TemplaVoila oder einem Template-Switcher können den Redakteuren verschiedene Layouts einfach über eine TypoScript-Konfiguration im Main-Template zur Verfügung gestellt werden

  1. page=PAGE
  2. page {
  3.     10= CASE
  4.     10.key.field=layout
  5.     # Standardtemplate
  6.     10.0  =TEMPLATE
  7.     10.0.template=FILE
  8.     10.0.template.file=fileadmin/tmpl/standard.html
  9.     10.0.workOnSubpart=DOCUMENT_BODY
  10.     10.0.marks {
  11.           # etc.
  12.     }
  13.     # Variante 1:
  14.     10.1  =TEMPLATE
  15.     10.1.template=FILE
  16.     10.1.template.file=fileadmin/tmpl/variante1.html
  17.     10.1.workOnSubpart=DOCUMENT_BODY
  18.     10.1.marks {
  19.           # etc.
  20.     }
  21.     # und so weiter.
  22. }

Standardmäßig sind vier Varianten vorgesehen. Diese können über PageTSconfig anders benannt werden:

  1. #In die Rootseite ins Feld Tsconfig:
  2. TCEFORM.pages {
  3.     layout.altLabels.0=Standard Vorlage
  4.     layout.altLabels.1=Zwei Spalter
  5.     layout.altLabels.2=Drei Spalter
  6.     layout.altLabels.3=Und so weiter.
  7. }

Falls vier Varianten nicht reichen, können noch weitere ergänzt werden:

  1. TCEFORM.pages{
  2.     layout.addItems {
  3.           4=eine weitere Variante
  4.           # usw
  5.     }
  6. }

Mit dieser Technik kann sogar das klassische 4-Spalten-Layout im Backend mit TemplaVoila kombiniert werden, von Seite zu Seite individuell und einfach vom Redakteur auszuwählen:

  1. page=PAGE
  2. page {
  3.     10= CASE
  4.     10.key.field=layout
  5.     # Standardtemplate
  6.     10.0=USER
  7.     10.0.userFunc=tx_templavoila_pi1->main_page
  8.     # Variante 1:
  9.     10.1  =TEMPLATE
  10.     10.1.template=FILE
  11.     10.1.template.file=fileadmin/tmpl/variante1.html
  12.     10.1.workOnSubpart=DOCUMENT_BODY
  13.     10.1.marks {
  14.           # etc.
  15.     }
  16.     # und so weiter.
  17. }

Allerdings muss dann TemplaVoila so konfiguriert werden, dass in der Rubrik »Web« im Backend beide Seiten-Module gezeigt werden: für TemplaVoila und das klassische. (Je nach Seitenlayout muss das passende Modul für die Eingabe der Inhalte verwendet werden). Dazu öffnet man im Extension Manager TemplaVolia und aktiviert die Option »Enable the classic page module«. Aber Achtung: da beide Seitenmodule leicht verwechselt werden können, erstellen ungeübte Redakteure schnell Inhalte in den falschen Modulen, was dazu führen kann, dass Inhalte zwar in TemplaVoila erscheinen sollen, aber dort nicht referenziert und damit letztlich auch nicht gezeigt werden. Diese Technik setzt also Redakteure voraus, die wissen was sie tun.

Falls doch einmal Inhalte nicht in TemplaVoila referenziert werden und damit nicht im Frontend erscheinen, so gibt es unter »Funktionen« den Assistenten »Referenziere unbenutzte Inhaltselement (TemplaVolia)«. Damit werden alle Inhaltselement in TemplaVoila-Spalten eingefügt – leider oft in die falschen. Aber immerhin sind sie jetzt da und und in der aktuellen Version von TemplaVoila können Inhaltselemente leicht per Drag und Drop verschoben werden, so dass sich der Aufwand in Grenzen hält.

 

Beim Anlegen von Kopien oder von neuen Sprachen wird in leere Titel-Felder immer der String »( Copy x ) eingefügt. Das stört beim Kopieren von vielen Einträgen oder beim schnellen Anlegen von Übersetzungen ganz enorm.

Mit Hilfe eines Eintrag im Page TSconfig in der Root-Seite kann das verhindert bzw. ausgeschaltet werden:

  1. TCEMAIN.default.disablePrependAtCopy = 1

Weiterführende Links

Page TSconfig auf top3.org

Besuchen Sie mich auf Google+