iFF... Version: 6.x

Transcrição

iFF... Version: 6.x
Entwicklertemplate für die YAML Nutzung in TYPO3
Basis-Extension: iFF... Version: 6.x
Neuigkeiten:
•
Durch einen neuen Namen und damit verbundene neue Konstanten wird deutlich
gemacht und sichergestellt dass es kein einfaches Upgrade vom
Entwicklertemplate 1.x und 2.x geben wird (was aber auch keine Notwendigkeit ist).
•
Das Entwicklertemplate basiert auf TYPO3 6.1.x (mit erscheinen der 6.2 LTS wird
dies dann eingebunden) und auf der aktuellen Version von YAML 4.1.0
•
Es wird grundsätzlich auf CSS3 aufgebaut (für den IE ist das PIE Framework
integriert)
•
Alle notwendigen Daten sind direkt in der Extension enthalten und können so ins
fileadmin kopiert werden (später gibt es dafür ein Backendmodul).
•
Auf mehrere Fremdextensions wurde verzichtet und die entsprechende
Funktionalität mit Standard Typoscript aufgebaut.
•
Man kann das komplette Template und die Konstanten auch ohne Fremdsprachen
betreiben (es gibt Zusatztemplates für die erste, 2 weitere, und noch 3 weitere
Fremdsprachen).
•
Es gibt eine neue Dateistruktur um Multidomainprojekte innerhalb einer Installation
sauber zu trennen (dafür bitte den TYPO3 Standardordner user_upload NICHT
nutzen..
•
Es gibt nur 1einziges Fluidtemplate für die Ausgabe aller Templatevarianten und ein
LESS Stylesheet für das zentrale Laden aller weiteren Dateien. Es gibt eine feste
Namensvorgabe für die modification Stylesheets und Patchfiles.
•
Es wird OHNE Templavoila gearbeitet (eine Ergänzung ist nicht geplant), dafür mit
den neuen Gridlayouts für das Backend und beliebige Contentelemente. Damit
werden Spaltenelemente, Accordion, Tabs aufgebaut.
•
Das TYPO3 Standardformular mit der neuen Extension forms wurde so konfiguriert
das der Code entsprechend dem YAML Formularbaukasten erzeugt wird (alternativ
ein formhandler Beispielformular).
•
YAML Zusatzelemente werden in der Extension mit zur Verfügung gestellt.
•
etc. ...viele weitere Anpassungen wie eine aktuelle RTE Konfiguration für
TYPO3 6.1 und auch eine weitere RTE-Konfiguration in der alle Möglichkeiten
freigeschaltet sind.
Grundsätzliches:
Aber trotzdem möchte ich noch betonen, das Entwicklertemplate ist kein "Click & Ready"
Webseitenbaukasten, es dient dazu strukturiert mit TYPO3, YAML und CSS zu arbeiten.
Ohne CSS und TypoScript Kenntnisse wird es einem schwer fallen damit richtig zu
arbeiten. Aber es wird einem durch TypoScript und CSS-Beispiele und ab und an ein Blick
in die Dokumentation von YAML, doch deutlich vereinfacht mit diesem komplexen Thema
umzugehen.
Wenn ich noch eine Empfehlung abgeben darf, ich persönlich arbeite im Backend von
TYPO3 aufgrund der Geschwindigkeit am liebsten mit dem Google Chrome und für die
Frontendkontrolle mit dem um die AddOns Firebug und TYPO3 Workbench erweiterten
Mozilla Firefox. Euer Texteditor sollte mit .ts Dateien umgehen können (am besten mit
TypoScript highlighting) und sauberes utf8 speichern. Bei mir hat sich da der PSPad mit
der Erweiterung SweeTS sehr bewährt.
Dateistruktur:
Im fileadmin wird für jedes Projekt was innerhalb dieser TYPO3 Installation gepflegt wird
ein eigener Projektordner angelegt (hierauf kann man zwar verzichten, sollte das aber
eigentlich nur dann tun, wenn wirklich die zukünftige Wahrscheinlichkeit, das man
mehrere Projekte in dieser Installation pflegt, gegen Null geht). In einem solchen Fall dann
einfach den gesamten Inhalt des project Ordners direkt in fileadmin kopieren und als
projectDir nachher fileadmin/ setzen (ohne dann einen eigenen Projektordner zu haben).
In allen anderen Fällen wäre die Projektvorbereitung wie folgt:
1. den project Ordner aus der Extension typo3conf/ext/iff/Resources/ in fileadmin
kopieren und sinnvoll umbenennen
(zukünftig wird dies beides über ein BE-Modul auf Klick möglich sein)
2. den darin enthaltenen Layoutordner project/template_data/layout/ ebenfalls
sinnvoll umbenennen (das Umbenennen ist aus dem Grunde unerlässlich, wenn
man später sich noch einmal die Ursprungsordner per KlickCopy holt, damit nicht
die eigene Arbeit gelöscht wird) (vielleicht etwas in der Art wie: relauch2013special)
3. In der Datei project/template_data/layout/config/project/pageTSconfig.ts
(ich nehme übrigens in allen Pfadbeschreibungen die originalen Ordnernamen, da
ich Ihre Modifikationen ja nicht kennen kann) dann bitte die nötigen Pfadkonstanten
anpassen, und, da es leider nicht anders geht auch die vorhandenen vollen
Pfadangaben (in der Auslieferung der Extension ist das alles auf den Pfad
typo3conf/ext/iff/Resources/project/... gesetzt, im Komplettpaket liegen die
Dateien zwar schon unter fileadmin/project/ vorhanden, genutzt werden trotzdem
die Daten im Extensionverzeichniss, ALSO BITTE ÄNDERN, siehe unten !
Es existiert dann folgende Dateistruktur im fileadmin:
project
content_data
alle Daten die von Redakteuren gepflegt werden
(individuelle Unterordner) NICHT user_upload nutzen (keine Multiprojektfähigkeit)
dummyContent
wie der Name schon sagt (nach LIVE Schaltung löschen)
template_data
alles rund um das Template selber
_flags
einige Flaggen
_fonts
einige Schriften
_additional
JS, PIE, sonstige nicht layoutspezifischen Dinge
_frameworks
yaml_410
vom Layout genutztes Framework (Name >>> Pfad-Angaben)
(hier der yaml core in der aktuellen 4.1 Version)
xxx
mögliches weiteres Framework
(wie z.B. Twitter-bootstrap, 960 oder blueprint)
(bei Bedarf sind weitere _basis oder layout Ordner beliebig erweiterbar)
layout
das eigentliche Layoutverzeichniss
archiv
einfach nur ein Archivordner (PSD und andere Dateien...)
config
basic
basic TS zum Zeitpunkt der Installation
(könnte anstelle des stat. Templates genutzt werden)
project
layoutspezifische Typoscript Konfigurationsdateien
(HIER die Pfad-Angaben in der pageTSconfig.ts)
page
css
zentrales css des Layouts (beliebig erweiterbar)
navigation
diverse Navigationen
screen
Screen Ausgabe des Layouts
print
Print Ausgabe des Layouts (folgt später)
patches
Patches für den IE
sonstiges
z.B. modifizierte jquery Themes
html
fluid
das fluid template für alle Versionen
autoparser
für reine html Alternativen ohne fluid (folgt später)
images
alle Bilddaten zum layout
(individuelle Unterordner – vorhandene bitte nicht ändern)
extensions
alles für die lokale Anpassung von Extensions
(individuelle Unterordner - extensionkey)
(darin nochmal individuelle Unterordner – css images etc.)
scripts
zum Layout gehörige Scripte
(individuelle Unterordner)
Die grünen Ordnernamen sind über Konstanten definiert und damit variabel.
Die roten Ordnernamen sind fest vorgegeben (in Pfaden vorhanden) also nicht ändern !!!
Installieren des Kompletpakets:
Mit dem Scriptistaller (nur für Linuxserver geeignet)
Hier gibt es 2 verschiedene Möglichkeiten, entweder in ein leeres DocRoot Verzeichniss
oder es existiert schon eine leere TYPO3 Version (empfehlen würde ich den ersten Weg).
1.) NEU-Installation ... Vorbedingung: es existiert eine leere utf8-general Datenbank.
Aus dem Paket iFF_6.x.x-instaler.zip die Datei iFF_6.x.x_complete_instaler.php in das
Verzeichniss für Ihre Installation kopieren. Die PHP-Datei editieren und folgende Zeilen
entsprechend der aktuellen Versionen anpassen und speichern (ohne späteres Upgrade
natürlich nur eine TYPO3 Version aus dem gleichen Zweig – derzeit 6.1.x):
define('TYPO3VERSION','6.1.1');
define('IFFVERSION','6.1.0');
und im Browser über die passende URL aufrufen.
Wenn der Scriptinstaller die nötigen Rechte auf dem Server hat (shell_exec – wget – tar –
mv – rmdir -rm – ln – find – touch), dann werden jetzt alle nötigen Dateien von der TYPO3
Seite und von imageFORMAT gezogen (wenn nicht, dann haben Sie leider Pech gehabt).
Nach einiger Zeit finden Sie am Ende der langen Liste einen Link zum TYPO3 1-2-3
Installer. Den anklicken und den drei Installations-Schritten folgen:
•
•
•
MySQL Zugangsdaten eingeben.
Ihre Datenbank wählen.
iFF Paket importieren
Anschließend in das Install Tool wechseln und dort als erstes das Passwort ändern.
Prüfen sie nun ob das InstallTool auf der Basisseite Fehler meldet. Ebenso sollten sie jetzt
prüfen ob der Pfad und die Art des installierten Grafiktools (IM – GM) stimmt, also das die
Bilderzeugung klappt. Den Titel dieser Installation sollten sie jetzt auch vergeben und den
Encryptionkey ändern.
Abschließend können Sie das Install Tool verlassen. (Weiter bei "Beginn mit dem ...")
2.) TYPO3 ist schon vorhanden ...
In dem Fall nutzen Sie die Datei: iFF_6.x.x_barebone_instaler.php – Die TYPO3
Sources werden in dem Fall nicht neu geladen und es wird eine Sicherheitskopie der
localconfConfiguration.php erstellt (hier finden Sie die Zugangsdaten zur bestehenden
Datenbank wenn diese genutzt werden soll). Ansonsten würde ich auch in diesem Fall
empfehlen mit einer leeren Datenbank zu beginnen (ist einfacher und problemloser als
sich mit Inhalten einer bestehenden rumzuplagen).
Die Sicherheitskopie der localconfConfiguration.php anschließend mit der neuen
abgleichen, ob vorher etwaige Serverspezifischen Einträge dort vorhanden waren, wie z.B.
Grafiktools etc. Und entsprechend übertragen. Anschließend weiter wie oben mit dem 123Installer (http://domain.com/typo3/install)...
Manuell
Die Datei iFF_6.x.x-complete.tgz auf dem Webserver im docroot der Domain entpacken (hierzu
ist ein shell Zugang über SSH nötig), oder die Datei iFF_6.x.x-complete.zip lokal entpacken und
den Inhalt per FTP hochladen (Einstellung des FTP Clients auf binary).
Beginn mit dem installierten Komplettpaket:
Unter der Vorraussetzung dass jetzt im fileadmin die Ordner project und layout (der
Unterordner in template_data) umbenannt sind (ich belasse sie hier im weiteren aber bei
dem Original), und dass die entsprechenden Konstanten in der Datei
.../config/project/pageTSconfig.ts geändert sind, müssen jetzt noch folgende Pfade
angepasst werden:
•
Seiteneigenschaften der Rootseite auf der Karteikarte Ressourcen im Tsconfig
<INCLUDE_TYPOSCRIPT: source="FILE:
fileadmin/project/template_data/layout/config/project/pageTSc
onfig.ts">
•
im Setupfeld des 10_basic Templates
<INCLUDE_TYPOSCRIPT: source="FILE:
fileadmin/project/template_data/layout/config/project/setup.ts">
•
im Konstantenfeld des 10_basic Templates
<INCLUDE_TYPOSCRIPT: source="FILE:
fileadmin/project/template_data/layout/config/project/constants.ts">
•
wenn entsprechende Dateien bestehen (ist aber in der Grundsituation des
Templates nicht gegeben) auch noch im userTSconfig Feld der
Benutzer/Benutzergruppen
Nach dem Löschen des Cache (falls er auch schon während der Entwicklung aktiviert
ist ... ich habe aus diesem Grund im Setup des Roottemplates am Anfang die Zeile
config.no_cache = 1 eingebaut, dieses ist nur für die Entwicklung, vor der Live Nutzung
bitte auskommentieren) werden nun alle Daten aus dem
fileadmin/project/template_data/layout/... gezogen.
Einbindung von TypoScript Basistemplates:
Das iFF statische Template sollte nach den statischen Templates der Extensions
eingebunden werden, weil es einige Konstanten und Einstellungen gibt die die
Grundeinstellungen von Extensions überschreiben sollen.
Aus dem Grunde sind im SysOrdner für das Layout, ich nenne ihn myLayout (zwingend ist
es zwar nicht, aber dieser sollte aus Gründen der Übersichtlichkeit auch möglichst
umbenannt werden) auch mehrere Templatedatensätze vorhanden.
1. ein Startlayout (von mir meist 00_myLayout_loader genannt, kann problemlos,
und sollte aber gerne auch sinnvoll umbenannt werden) – dieses wird von der
Rootseite aus eingebunden und lädt alle weiteren Layouts nach.
2. das Basislayout von iFF (von mir 10_basic genannt) mit den statischen
Templates aller Extensions und als letztes das von iFF sowie im Constants und
Setup Feld dann die INCLUDE Befehle für die projectabhängigen Konstanten
und das Typoscript Setup.
3. und beliebige weitere Templates wenn man Typoscript Anweisungen nicht in den
Projektfiles haben will, sondern in der Datenbank.
Namensgebung der "Backend Layouts"
Diese Namensgebung der vorhandenen Layouts nach dem Muster MCS ist zwingend.
•
M = Menüspalte
•
C = Contentspalte (Hauptinhalt)
•
S = Seitenspalte
Für neu angelegte BE-Layouts können natürlich eigene Namen (ohne Leer- und
Sonderzeichen, dies ist nicht getestet) genutzt werden, aber es ist folgendes zu bedenken:
Die Namen der BE-Layouts werden automatisch mit in die Namen der zu ladenden CSS
Dateien eingebaut, genauso wie der in der Konstante iFF.conf.layoutStyle gesetze
LayoutStyle.
Wenn man also mit den std Style arbeitet (die Reihenfolge im Quelltext ist dann MSC, ich
persönlich würde empfehlen so zu arbeiten, weil YAML da die größte Flexibilität bietet),
und z.B. nur ein CM Layout nutzt (also nur die Contentspalte links und rechts das Menü),
dann werden automatisch folgende CSS Dateien eingebunden: mod-std-CM.css und für
den IE patch-std-CM.css
Für den Fall des seo Style (sorry für diese Namensgebung, ich persönlich sehe das zwar
anders, aber es gibt viele die aus SEO-Gründen den Hauptinhalt im Quelltext vorne haben
wollen, also eine Reihenfolge CSM) würden dann folgende CSS Dateien eingebunden
werden: mod-seo-CM.css und für den IE patch-seo-CM.css ... wie gesagt, ich biete hier
die Möglichkeit, kann die Gründe für die Nutzung dieses layoutStyles aber selbst nicht
recht teilen (auch aufgrund von eigenen Testreihen ... diese Einstellung teilt übrigens auch
der YAML Entwickler Dirk Jesse).
Für den Einsatz in responsive Webseiten kann die seo einstellung dagen wirklich Sinn
machen, da dadurch bei kleinen Bildschirmen die Seitenspalten erst NACH dem
Hauptinhalt erscheinen (ein wichtiges Menü sollte sich dann aber dort nicht befinden)
Wiederverwendbarkeit von Layouts
Um ein erstelltes Layout mehrfach zu nutzen, sollte man dafür sorgen dass das gesammte
grundsätzliche TypoScript in Dateien abgelegt ist (im entsprechenden Layout Ordner).
Spezielle Seitenspezifische Anpassungen die nicht wieder verwendet werden sollen
können ruhig in den Templatedatensätzen der Datenbank verbleiben.
Ähnliches gilt für die CSS Anweisungen die an eine Seiten-UID gekoppelt sind, diese
würde ich in eine Extra Datei auslagern die nach einem Transfer dann entsprechend
angepasst oder gelöscht wird.
Pfade sollten niemals direkt angegeben werden, sondern immer mit Hilfe der dafür
vorgesehenden Konstanten. {$projectDir}{$templateDir}{$layoutDir}...
Ebenfalls ist es wichtig wenn zusätzliche Extensions zum Einsatz kommen, das dieses
dokumentiert ist, damit am Zielsystem die entsprechenden Extensions installiert werden
können.
...
Unter diesen Vorraussetzungen braucht man eigentlich nur ein .t3d des SysOrnders
myLayout (oder wie immer man ihn genannt hat – ich nehme dafür gerne Nummern)
erstellen (ohne die Standard BE-Layouts) und im Layoutordner speichern. Dann diesen
Layoutordner packen und auf das Zielsystem (natürlich mit einem funktionierend
installierten iFF) transferieren.
Dort die Datei in template_data entpacken.
Den Projektnamen anpassen in den Konstanten der Datei config/project/pageTSconfig.ts
Das .t3d im Sysordner "TemplateStorage" extrahieren.
Und letztlich, wie schon bei der Installation, jetzt nur mit den neuen Pfadangaben:
•
Seiteneigenschaften der Rootseite auf der Karteikarte Ressourcen im Tsconfig
<INCLUDE_TYPOSCRIPT: source="FILE:
fileadmin/project/template_data/layout/config/project/pageTSconfig.ts">
•
im Setupfeld des 10_basic_loader Templates
<INCLUDE_TYPOSCRIPT: source="FILE:
fileadmin/project/template_data/layout/config/project/setup.ts">
•
im Konstantenfeld des 10_basic_loader Templates
<INCLUDE_TYPOSCRIPT: source="FILE:
fileadmin/project/template_data/layout/config/project/constants.ts">
•
wenn entsprechende Dateien bestehen (ist aber in der Grundsituation des
Templates nicht gegeben) auch noch im userTSconfig Feld der
Benutzer/Benutzergruppen
Stile im RTE nutzen
Neben den schon vorher bekanten Block- und Textstilen (es gibt ein/zwei die mit HTML5
nicht so richtig wollen) gibt es im RTE nun auch die YAML Buttons.
Die Textstile wirken sich nur auf Links aus, und sind wie folgt zu setzen:
•
Erst den Text schreiben
•
Text markieren und Verlinkung setzen
•
Cursor im Link plazieren
•
Textstil ym-button wählen
•
und nochmal Textstil ym-XXX wählen (für einen besonderen Typ)
speichern und im FE prüfen (im RTE selber wird nur ein Link angezeigt)
Wenn man den ym-button weglässt, dann wird ein designter Link ausgegeben.
Als Blockstil kann man die Buttons und Auszeichnungen auch verwenden (habe ich aber
nicht weiter getestet).
Die HTML5 Auszeichnungen im RTE sind wie folgt zu bedienen.
•
Als erstes den kompletten Text schreiben.
•
Alles markieren und Article wählen
•
Unterabschnitte Markieren und Header/Behälter/Aside/Footer setzen
•
Im Quelltext wird nun <article> <header> <section> <aside> <footer> ausgegeben.
•
!!! Ein Styling ist hierfür NICHT implementiert !!!
Weitere Themen:
Bitte mir weitere Unterbereiche mitteilen die in diese Doku mit einfließen sollen.
Dazu mir einfach fehlende Überschriften mailen ([email protected])
oder auch komplette Texte wenn mich jemand unterstützen will...
Ich werde das Manual übrigens noch mit einigen Screenshots auffüllen, aber meine
vorbereiteten Bilder sind mir leider "abhanden gekommen"...
Konstanten (mit ihren Default Werten):
feste Konstanten
PAGE_TARGET = _self
styles.content.imgtext.captionSplit = 1
styles.content.imgtext.imageTextSplit = 1
styles.content.loginform.pid = 14
content.pageFrameObj =
[browser = msie]
iFF.conf.doctypesw_cond = 1
[else]
iFF.conf.doctypesw_cond = 0
[end]
iFF.conf.url.protocol = http
[globalString = IENV:TYPO3_SSL=1]
iFF.conf.url.protocol = https
[global]
plugin.tt_news {
pid_list = 27
singlePid = 8
}
plugin.tx_news {
view.layoutRootPath = {$iFF.projectDir}{$iFF.templateDir}{$iFF.layoutDir}extensions/news/Layouts/
view.partialRootPath = {$iFF.projectDir}{$iFF.templateDir}{$iFF.layoutDir}extensions/news/Partials/
view.templateRootPath = {$iFF.projectDir}{$iFF.templateDir}{$iFF.layoutDir}extensions/news/Templates/
}
plugin.tq_seo.metaTags {
keywords = meine Keywords
description = meine Description
copyright = mein Copyright
email =
author = Mein name
publisher =
language = {$if_yaml.lang.std.isoCode}
distribution =
rating =
revisit = 7
geoPositionLatitude =
geoPositionLongitude =
geoRegion =
geoPlacename =
picsLabel =
useLastUpdate = 1
useDetectLanguage = 1
useCanonical = 1
useExpire = 1
p3pCP =
p3pPolicyUrl =
linkGeneration = 1
}
plugin.perfectlightbox {
libraryToUse = jquery
includeJSLibrarys = 0
}
plugin.tx_scriptmerger {
css {
addContentInDocument = 0
minify.ignore = \.min\.
compress.ignore = \.gz\.
merge.ignore =
}
javascript {
parseBody = 0
addBeforeBody = 0
doNotRemoveInDocInBody = 1
addContentInDocument = 0
minify.useJSMinPlus = 1
minify.ignore = \?,\.min\.
compress.ignore = \?,\.gz\.
merge.ignore = \?
}
}
variablel über Konstanteneditor zu setzen
(es kann noch einige Konstanten geben die nur in der Vorversion genutzt wurden, also
jetzt in iFF überflüssig sind, sorry...)
IFF.BASICS
iFF.layoutHtmlName =
Filename HTML layout
type=string
iFF.layoutCssName =
Filename central CSS stylesheet
type=string
iFF.layoutPatchName =
Filename IE patchfile
type=string
iFF.conf.overrideCssFromTemplateHead = 0
override CSS from Template Head
type=options[No=0,Yes=manCSS]
iFF.conf.specialTypeSite = 1
specialTypeSite, maybe Full Page Layout
type=boolean
iFF.conf.specialTypeSiteWrapBegin = <div class="ym-wrapper"><div class="ym-wbox">
special wrap in main areas: will be wrapped when specialTypeSite is set to "yes" ... must be set in 2 parts
type=string
iFF.conf.specialTypeSiteWrapEnd = </div></div>
special wrap in main areas: will be wrapped when specialTypeSite is set to "yes" ... must be set in 2 parts
type=string
iFF.conf.docTypeToUse = html5
Doctype to use:Be careful and change this setting only if you know, what you are doing. Otherwise your pages
might NOT be valid.
type=options[HTML5=html5,XHTML 1.0 Transitional=xhtml_trans,XHTML 1.0 Frameset=xhtml_frames,XHTML
1.0 Strict=xhtml_strict,XHTML 1.1=xhtml_11,XHTML 2=xhtml_2,NO doctype at all=none]
iFF.conf.autoHideIfEmpty = 1
AutoHide main areas if empty
type=boolean
iFF.conf.templatingEngine = fluid
Templating Engine: first, only fluid is working
type=options[Manuell=0,Autoparser=autoparser,Fluid=fluid,Templavoila=templavoila]
iFF.conf.layoutStyle = std
Layout Style:Choose one of the "std" or "seo" layouts.
type=options[noLayoutStyle=0,seo_Layout=seo,std_Layout=std]
iFF.conf.switchMenuAndSideContent = 0
switchMenuAndSideContent:not recomended ... in a std layout the normal menuposition is col1, here this
switches to col2... in the seo Style the normal menu position is col3, here this switches to col2... maybey there
are some iritating labels !!!
type=boolean
iFF.conf.pageCID = ABC
customID:this is a custom clas for the body tag
type=string
iFF.conf.url.simStatDocOn = 0
Use simulateStaticDocuments?:If you are NOT using realURL, you can use simulateStaticDocuments instead.
You CANNOT use this in conjunction with realURL. If enabled, the next 3 option are important for
simulateStaticDocuments and must be either left at its default values or set to values that fit your needs. No
extension is required, everything is included in TYPO3 already. IMPORTANT: Apache-module mod_rewrite must
be installed on your webserver and you need a file named .htaccess in the root of your webserver.
type=boolean
iFF.conf.url.simStatDocAddTitle = 40
Add pagetitle:If not zero, TYPO3 generates urls with the title in, limited to the first x number of chars. If set to zero
(0) this feature is turned off.
type=int+
iFF.conf.url.simStatDocPenc = md5
Encode additional parameters:Allows you to also encode additional parameters into the simulated filename. If
you don't understand this, just leave the default setting.
type=options[base64,md5]
iFF.conf.url.simStatDocPencOnlyP = cHash, tx_ttnews[backPid], tx_ttnews[tt_news], tx_ttnews[pS],
tx_ttnews[pL], tx_ttnews[arc], tx_ttnews[cat], tx_ttnews[pointer], tx_ttnews[swords]
List of variables:A list of variables that may be a part of the md5/base64 encoded part of a
simulate_static_document virtual filename.
type=string
iFF.conf.url.realUrlOn = 0
Use realurl?:Enable this feature only, if you have installed the TYPO3 extension realurl. IMPORTANT: You have
to configure realurl by means of its documentation. Read it! If you enable this feature, simulateStaticDocuments
is switched off automatically, no matter what you set there. The option tx_realurl_enable = 1, which is required by
realurl, is set automatically, if this feature is enabled. Do not forget to set Base URL also.
type=boolean
iFF.conf.url.coolUriOn = 0
Use cooluri?:Enable this feature only, if you have installed the TYPO3 extension cooluri. IMPORTANT: You have
to configure cooluri by means of its documentation. Read it! If you enable this feature, simulateStaticDocuments
is switched off automatically, no matter what you set there. The option tx_cooluri_enable = 1, which is required by
cooluri, is set automatically, if this feature is enabled. Do not forget to set Base URL also.
type=boolean
iFF.conf.url.userBaseUrl = /
Base URL:DEPRECIATED - use iFF.conf.url.userBaseHost instead. When using, then use it including protocol
and the trailing slash '/').
type=string
iFF.conf.url.userBaseHost = www.changeme.tld
Base URL:YOU MUST CHANGE this default-setting to YOUR domain. Use the same format as the defaultsetting (without protocol and the trailing slash).
type=string
iFF.conf.url.userBaseHostSSL = www.changeme.tld
Base URL SSL: Use the same format as the default-setting (without protocol and the trailing slash).
type=string
iFF.conf.url.userBaseHostAlt = www.changeme.tld
Base URL alternativ: Use the same format as the default-setting (without protocol and the trailing slash).
type=string
iFF.conf.url.userBaseHostAltSSL = www.changeme.tld
Base URL alternativ SSL: Use the same format as the default-setting (without protocol and the trailing slash).
type=string
iFF.conf.url.userPrefixLocalAnchors = all
Prefix local anchors:If realurl or cooluri is used and this feature is set to one of the keywords, the content will
have all local anchors in links prefixed with the path of the script. Basically this means that <a href="#"> will be
transformed to <a href="path/path/script?params#">. This procedure is necessary if Base URL is set. (all = the
content is always processed before it may be stored in cache. cached = only if the page is put into the cache.
output = only the output code just before it's echoed out.)
type=options[all,cached,output]
iFF.conf.userAdmPanelOn = 0
Admin-Panel, enable:If set, the admin panel appears in the bottom of pages. NOTE: In addition the panel must
be enabled for non-admin users as well, if you want this, using the TSconfig for the non-admin user! See
adminguide documentation.
type=boolean
iFF.conf.userIndexingOn = 0
Indexing at all, enable:Enables cached pages to be indexed. Must be enabled to get indexed_search to work.
type=boolean
iFF.conf.userIndexExternalsOn = 0
Indexing external documents:If set, external media linked to on the pages is indexed as well. Certain software
must to be installed on your webserver to use this feature. See indexed_serach documentation.
type=boolean
iFF.conf.userIndexMetaTagsOn = 0
Indexing metatags:If set, all words contained in the metatags will be also be indexed. Should be turned on only in
special circumstances.
type=boolean
iFF.conf.userXhtmlCleaning = all
XHTML cleaning:Tries to clean up the output to make it XHTML compliant and a bit more. (all = the content is
always processed before it may be stored in cache. cached = only if the page is put into the cache. output = only
the output code just before it's echoed out.)
type=options[all,cached,output]
iFF.conf.userHtmlTagDir = ltr
Text direction:Sets text direction for whole document (useful for display of Arabic, Hebrew pages). Basically the
value becomes the attribute value of "dir" for the <html> tag. (ltr = Left-To-Right, rtl = Right-To-Left)
type=options[ltr,rtl]
iFF.conf.userDisablePrefixComment = 1
Prefix comments off? This is for debugging your TypoScript Code. If switched On, HTML comments are added
like <!-- Output of lib.header.20 [begin] --> and <!-- Output of lib.header.20 [end] --> to find the output of an
element easier in HTML source. The COA-Elements must be prepared to do this. Turn off for production
environments!
type=boolean
iFF.conf.devFillerLinkOn = 0
FillerLinks for development:If switched On, automatic filler links will be added...
type=boolean
iFF.conf.accessKeysAndDfnOff = 1
Access Keys Off?:Switch off alle access keys used in menus.
type=boolean
iFF.conf.accessKeyHelpOff = 1
Access Key Help Off?:If access keys are switched on, they can be shown after the pagetitle (e.g. (ALT-E)) if this
feature is enabled.
type=boolean
iFF.conf.pieFix.switchOff = 1
PIE-CSS-fix, switchOff:For use CSS3 functions shadow, border-radius, transparent png, etc...
type=boolean
iFF.conf.pieFix.path = typo3conf/ext/tyaml/res/std_project/extra_data/scripts/PIE/PIE.htc
PIE-CSS-fix, path:
type=string
iFF.conf.headerComment = developer template
Header Comment:Your own copyright notice...
type=string
iFF.conf.seo.MouseOverOrder = subtitle // abstract // description
SEO - MouseOver order:
options[deaktiviert=0, abstract // description // subtitle , abstract // subtitle // description , subtitle // abstract //
description]
iFF.conf.spamProtect.switchOff = 0
SpamProtect, switch offf:
type=boolean
iFF.conf.spamProtect.level = 5
SpamProtect level
type=options[1,2,3,4,5,6,7,8,9]
iFF.conf.spamProtect.atSubst = &#064;
SpamProtect atSubst String:Substitute the @ with theese string...
type=string
iFF.conf.spamProtect.lastDotSubst = &#046;
SpamProtect lastDotSubst String:Substitute the last . with theese string...
type=string
iFF.conf.spamProtect.additional.switchOff = 1
SpamProtect additional switchOff:
type=boolean
iFF.conf.spamProtect.additional.marker = -noSpam
SpamProtect additional String:You can define your own string (hidden in mails)...
type=string
IFF.LANGUAGE
iFF.lang.templateUsesLanguages = 0
Languages to use:If set to empty, ''ALL'' languages found in table sys_language will be used. Provide a comma
separated list (e.g. 2,5,8) to use languages with corresponding UIDs only.
type=string
iFF.lang.std.UID = 0
LANG(std) UID : UID of your default language (usually ALWAYS 0)
type=string
iFF.lang.std.isoCode = en
LANG(std) ISO-Code : ISO-Code of the standard language. ISO code like en, dk, de, no, it, and so on.
type=string
iFF.lang.std.locale = en_EN
LANG(std) Locale-Setting : Locale-Settingof the standard language. This is a bit tricky, because it depends on
your webserver. Try different settings if dates and times are not shown correctly. On Windows-servers use the
literals e.g. "german", on Linux-servers try to use the codes (e.g. de_DE*) according to the language you use. To
find out which locales are installed on your Linux-Server, type 'locale -a' in a shell. Possible values are e.g.
german, english (for Windows) or de_DE, de_DE@euro, de_DE.iso88591, de_DE.iso885915@euro, de_DE.utf8,
en_US, en_US.iso88591, en_US.iso885915, en_US.utf8 (for Linux).
type=string
Zu allen iFF.lang.std. Konstanten (hier und in anderen Bereichen)
gibt es in den Zusatzbasistemplates (iFF-lang-1 ... iFF-lang-23 ... iFF-lang-456)
die entsprechenden Versionen für die Fremdsprachen:
•
•
•
•
•
•
1st
2nd
3rd
4th
5th
6th
IFF.AREA
iFF.area.tops.switchOff = 1
TOPS, switchOff:
type=boolean
iFF.area.tops.outerWrap = <div id="tops"> | </div>
... wrap around :Tops area, wrap around
type=wrap
iFF.area.tops.innerWrap = <div class="inner"> | </div>
... innerWrap : Tops area, innerWrap
type=wrap
iFF.area.header.switchOff = 0
HEADER, switchOff:
type=boolean
iFF.area.header.outerWrap = <header id="header"> | </header>
... wrap around : Header area, wrap around
type=wrap
iFF.area.header.innerWrap = <div class="inner"> | </div>
... innerWrap : Header area, innerWrap
type=wrap
iFF.area.nav_main.switchOff = 0
NAV-MAIN, switchOff:
type=boolean
iFF.area.nav_main.outerWrap = <nav id="nav_main"> | </nav>
... wrap around : Nav-Main area, wrap around
type=wrap
iFF.area.nav_main.innerWrap = <div class="inner"> | </div>
... innerWrap : Nav-Main area, innerWrap
type=wrap
iFF.area.teaser.switchOff = 0
TEASER, switchOff:
type=boolean
iFF.area.teaser.outerWrap = <div id="teaser">|</div>
.. wrap around : Teaser area, wrap around:
type=wrap
iFF.area.teaser.innerWrap = |
... innerWrap : Teaser area, innerWrap:
type=wrap
iFF.area.main (not used)
iFF.area.functions.switchOff = 0
FUNCTIONS, switchOff:
type=boolean
iFF.area.functions.outerWrap = <div id="functions"> | </div>
... wrap around : Functions area, wrap around:
type=wrap
iFF.area.functions.innerWrap = <div class="inner"> | </div>
... innerWrap : Functions area, innerWrap:
type=wrap
iFF.area.extended.switchOff = 0
EXTENDED, switchOff:
type=boolean
iFF.area.extended.outerWrap = <div id="extended"> | </div>
... wrap around : Extended area, wrap around:
type=wrap
iFF.area.extended.innerWrap = <div class="inner"> | </div>
... innerWrap : Extended area, innerWrap:
type=wrap
iFF.area.footer.switchOff = 0
FOOTER, switchOff:
type=boolean
iFF.area.footer.outerWrap = <footer id="footer"> | </footer>
... wrap around : Footer area, wrap around:
type=wrap
iFF.area.footer.innerWrap = <div class="inner"> | </div>
... innerWrap : Footer area, innerWrap:
type=wrap
iFF.area.ads.switchOff = 1
ADS, switchOff:
type=boolean
iFF.area.ads.outerWrap = <div id="adstest"> | </div>
... wrap around : Ads area, wrap around:
type=wrap
iFF.area.ads.innerWrap = |
... innerWrap : Ads area, innerWrap:
type=wrap
IFF.NAVIGATION
iFF.nav.linkWrap = |
LinkWrap all navigations:
type=wrap
iFF.nav.menuClass = menu
Standard menu class for wrapping div:
type=string
skiplink navigation
iFF.nav.skip.jsIsInTemplate = 0
Skiplink, JS is in Template: Use this checkbox if the javascript for the skiplinks is in the template.
type=boolean
iFF.nav.skip.jsEndOfBodyFile = core/js/yaml-focusfix.js
Skiplink, JS file based on framework dir.
type=string
iFF.nav.skip.toMainNavID = nav_main
Skiplink to navigation ID:
type=string
iFF.nav.skip.toSubNavID = nav_sub
Skiplink to navigation ID:
type=string
iFF.nav.skip.toContentID = main
Skiplink to content ID:(for c1, c2, c3 layouts this will be overwritten))
type=string
iFF.lang.std.nav.skip.toNavText = Jump to navigation (press enter)
Skiplink to navigation text (std)
type=string
iFF.lang.std.nav.skip.toContentText = Jump to content (press enter)
Skiplink to content text (std)
type=string
nav_top navigation
iFF.nav.top.switchOff = 0
Header-Navigation, switchOff:
type=boolean
iFF.nav.top.wrap = <div id="nav_top" class="ym-hlist"> | </div>
Header-Navigation, wrap around:
type=wrap
iFF.nav.top.type = list
Header-Navigation, Type:
type=options[entryLevel= ,special-list=list,special-directory=directory]
iFF.nav.top.entryListDirValue = 1,6,4
Header-Navigation, Menu IDs:If selected Type "list": Which pages must appear in the Header-Navigation
(comma-separated list of UIDs e.g. 1,2,3)? ... If selected Type "directory": The childpages of this ID are shown
(use only one ID) ... or in entry menu use the entrylevel
type=string
iFF.nav.top.menuClass =
UL menu class for nav_top:
type=string
language-navigation
iFF.nav.language.switchOff = 1
Language-Navigation, switchOff:
type=boolean
rootline-navigation
iFF.nav.rootline.switchOff = 0
Rootline (click path), switchOff:If the rootline-menu is turned on (default), make sure the next 4 options are also
correctly set.
type=boolean
iFF.nav.rootline.allWrap = <div id="nav_rootline" class="ym-hlist"> | </div>
Rootline wrap:Wrap around the rootline navigation:
type=wrap
iFF.nav.rootline.linkWrap = |&nbsp;/&nbsp; |*| |&nbsp;/&nbsp; |*| |
Rootline (click path), wrap:Wrap around each single rootline-element:
type=string
iFF.lang.std.nav.rootline.clickPathPrefix = You are here:
Rootline (click path)(std):This Text prepends the clickpath-menu (standard language):
type=string
selectorbox-navigation
iFF.nav.selectorBox.switchOff = 1
Selectorbox-Nav, switchOff:
type=boolean
iFF.nav.selectorBox.showOnPage = TSFE:id=1
Selectorbox-Nav, showOnPage:If you need to add pages, DO NOT just enter page-IDs here, but use this syntax:
TSFE:id=2,TSFE:id=5 to display the menu on pages with ID 2 and 5. Don't forget the comma to separate each
one.
type=string
iFF.nav.selectorBox.allWrap = <div id="nav_updated"> | </div>
Selectorbox-Nav, wrap around:The wrap around the Dropdown-Box of the JavaScript-Menu:
type=wrap
iFF.lang.std.nav.selectorBox.label = Last updated pages:
Selectorbox-Nav (std):Headline of the JavaScript-Menu (standard language):
type=string
main-navigation 1
iFF.nav.main.1st.switchOff = 0
Main-Nav 1st tab-nav, switchOff:IMPORTANT: If you switch off the tab-navigation, you should set the subMenu
EntryLevel to 0 - otherwise the FIRST level of your pagetree ist NOT shown, because the tab-naviation doesn't
exist anymore.
type=boolean
iFF.nav.main.1st.allWrap = <div id="nav_main_1" class="ym-hlist"> | </div>
Main-Nav 1st tab-nav, wrap around:
type=wrap
iFF.nav.main.1st.type = 0
Main-Nav 1st tab-nav, Type:
type=options[entryLevel=0,special-list=list,special-directory=directory]
iFF.nav.main.1st.entryListDirValue = 0
Main-Nav 1st tab-nav, Menu IDs:If selected Type "list": Which pages must appear in the Header-Navigation
(comma-separated list of UIDs e.g. 1,2,3)? ... If selected Type "directory": The childpages of this ID are shown
(use only one ID) ...
type=string
iFF.nav.main.1st.excludeList =
Main-Nav 1st tab-nav, excludeList :Enter a comma-separated list of page-IDs here, to be excluded from tabnavigation.
type=string
iFF.nav.main.1st.tabNav.headerWrap = |
Main-Nav 1st tab-nav, headerWrap:The wrap around the headline of the mainmenu (if needed):
type=wrap
iFF.nav.main.1st.menuClass =
UL menu class for nav_main_1:
type=string
main-navigation 2
iFF.nav.main.2nd.switchOff = 1
Main-Nav 2nd tab-nav, switchOff:By default it is OFF.
type=boolean
iFF.nav.main.2nd.allWrap = <div id="nav_main_2" class="ym-hlist">|</div>
Main-Nav 2nd tab-nav, wrap around:
type=wrap
iFF.nav.main.2nd.type = 0
Main-Nav 2nd tab-nav, Type:
type=options[entryLevel=0,special-list=list,special-directory=directory]
iFF.nav.main.2nd.entryListDirValue = 1
Main-Nav 2nd tab-nav, Menu IDs:If selected Type "list": Which pages must appear in the Header-Navigation
(comma-separated list of UIDs e.g. 1,2,3)? ... If selected Type "directory": The childpages of this ID are shown
(use only one ID) ...
type=string
iFF.nav.main.2nd.excludeList =
Main-Nav 2nd tab-nav, excludeList:Enter a comma-separated list of page-IDs here, to be excluded from tabnavigation.
type=string
iFF.nav.main.2nd.tabNav.headerWrap = |
Main-Nav 2nd tab-nav, headerWrap:The wrap around the headline of the mainmenu (if needed):
type=wrap
iFF.nav.main.2nd.useForJsMenu = 0
Main-Nav 2nd tab-nav, using for JS menu:
type=boolean
iFF.nav.main.2nd.jsMenuClass = flyout
Main-Nav 2nd tab-nav, JS menu Class:for wrapping div
type=string
iFF.nav.main.2nd.menuClass =
UL menu class for nav_main_2:
type=string
sub-navigation
iFF.nav.sub.switchOff = 0
Sub-Nav, switchOff:NOTICE: If you turn off the submenu, all other options concerning it are ignored, of course.
type=boolean
iFF.nav.sub.allWrap = <div id="nav_sub" class="ym-vlist">|</div>
Sub-Nav, wrap around:
type=wrap
iFF.nav.sub.type = 0
Sub-Nav, Type:
type=options[entryLevel=0,special-list=list,special-directory=directory]
iFF.nav.sub.entryListDirValue = 1
Sub-Nav, Menu IDs:If selected Type "list": Which pages must appear in the Header-Navigation (commaseparated list of UIDs e.g. 1,2,3)? ... If selected Type "directory": The childpages of this ID are shown (use only
one ID) ... If selected Type "entryLevel": Then use the level to show navigation
type=string
iFF.nav.sub.expandToggle = 0
Sub-Nav, expand levels:By default only subpages of the current page are shown. Expand ALL and you see all
subpages
type=boolean
iFF.nav.sub.excludeList =
Sub-Nav, excludeList:Enter a comma-separated list of page-IDs here, to be excluded from sub navigation.
type=string
iFF.nav.sub.headlineOff = 0
Sub-Nav, switchOff headline:Maybe your design requires this.
type=boolean
iFF.nav.sub.headlineLink = 1
Sub-Nav, make headline as link:is deaktivatet for first level
type=boolean
iFF.nav.sub.headlineWrap = <h6 class="ym-vlist">|</h6>
Sub-Nav, headlineWrap:
type=wrap
iFF.nav.sub.menuClass =
UL menu class for nav_sub:
type=string
footer-navigation
iFF.nav.footer.switchOff = 1
Footer-Nav, switchOff:
type=boolean
iFF.nav.footer.wrap = <div id="nav_footer" class="ym-hlist"> | </div>
Footer-Nav, wrap around:
type=wrap
iFF.nav.footer.type = 0
Footer-Navigation, Type:
type=options[entryLevel=0,special-list=list,special-directory=directory]
iFF.nav.footer.entryListDirValue = 1,4
Footer-Navigation, Menu IDs:If selected Type "list": Which pages must appear in the Header-Navigation (commaseparated list of UIDs e.g. 1,2,3)? ... If selected Type "directory": The childpages of this ID are shown (use only
one ID)
type=string
iFF.nav.footer.menuClass =
UL menu class for nav_footer
type=string
IFF.CONTENT
felogin
iFF.content.felogin.template = extensions/felogin/template.html
FElogin Template:path is based on layout directory
type=string
headerimage-bg
iFF.content.header.image.bg.switchOff = 0
Header BG-image, switchOff:NOTICE: The header images must be stored within the page you want to display
them. They are inherited to all pages below. By default the two images are stored in "Rootpage" only, hence they
are inherited to ALL pages.
type=boolean
iFF.content.header.image.bg.listNum = 0
Header BG-image, listNum:
type=int+
iFF.content.header.image.bg.override = 0
Header BG-image, override page ressources:
type=boolean
iFF.content.header.image.bg.overrideFile = images/dummy-layout/bg_header.gif
Header BG-image, override: path and filename based on layout directory:
type=string
iFF.content.header.image.bg.data = no-repeat scroll top left transparent
Header BG-image, additional data: Params in background tag ... no-repeat top left transparent scroll:
type=string
headerimage-1st
iFF.content.header.image.1st.switchOff = 0
Header 1st-image, switchOff:NOTICE: The header images must be stored within the page you want to display
them. They are inherited to all pages below. By default the two images are stored in "Rootpage" only, hence they
are inherited to ALL pages.
type=boolean
iFF.content.header.image.1st.allWrap = <div id="logo">|</div>
Header 1st-image, wrap around:
type=wrap
iFF.content.header.image.1st.listNum = 2
Header 1st-image, listNum:
type=int+
iFF.content.header.image.1st.override = 1
Header 1st-image, override page ressources:
type=boolean
iFF.content.header.image.1st.overrideFile = images/dummy-layout/logo.png
Header 1st-image, override: path and filename based on layout directory:
type=string
iFF.content.header.image.1st.linkOn = 1
Header 1st-image, make a link:
type=boolean
iFF.content.header.image.1st.linkUID = 1
Header 1st-image, link UID:
type=int+
headerimage-2nd
iFF.content.header.image.2nd.switchOff = 0
Header 2nd-image, switchOff:NOTICE: The header images must be stored within the page you want to display
them. They are inherited to all pages below. By default the two images are stored in "Rootpage" only, hence they
are inherited to ALL pages.
type=boolean
iFF.content.header.image.2nd.allWrap = <div id="banner">|</div>
Header 2nd-image, wrap around:
type=wrap
iFF.content.header.image.2nd.listNum = 1
Header 2nd-image, listNum:
type=int+
iFF.content.header.image.2nd.override = 1
Header 2nd-image, override page ressources:
type=boolean
iFF.content.header.image.2nd.overrideFile = images/dummy-layout/banner.jpg
Header 2nd-image, override: path and filename based on layout directory:
type=string
iFF.content.header.image.2nd.linkOn = 0
Header 2nd-image, make a link:
type=boolean
iFF.content.header.image.2nd.linkUID = 1
Header 2nd-image, link UID:
type=int+
headerslide
iFF.content.header.slide.switchOff = 1
Headerslide, switchOff:
type=boolean
iFF.content.header.slide.allWrap = <div id="headerslide">|</div>
Headerslide, wrap around:
type=wrap
iFF.content.header.slide.imagewidth = 1200
Headerslide, imagewidth:
type=int+
iFF.content.header.slide.imageheight = 130
Headerslide, imageheight:
type=int+
iFF.content.header.slide.transitionDuration = 2000
Headerslide, transitionDuration:
type=int+
iFF.content.header.slide.displayDuration = 8000
Headerslide, displayDuration:
type=int+
searchbox
iFF.content.searchbox.switchOff = 0
Searchbox, boxSwitchOff:If the searchbox should be displayed, make sure the next 1 to 8 options (depending on
how much languages you use) are also correctly set.
type=boolean
iFF.content.searchbox.pagePID = 5
Searchbox searchpage PID:UID of the page containing the Indexed-Search-Plugin - REQUIRED if searchbox is
in use:
type=int+
iFF.content.searchbox.allWrap = <div id="searchbox">|</div>
Searchbox, wrap around:
type=wrap
iFF.lang.std.content.searchbox.text = Searchword...
Searchbox text in inputfield:(Standard Language)
type=string
iFF.content.searchbox.button.switchOff = 0
Searchbox Button SwitchOff:If the button should be displayed, make sure the next 1 to 8 options (depending on
how much languages you use) are also correctly set.
type=boolean
iFF.content.searchbox.button.style = textButton
Searchbox Button Style:textButton or imageButton
type=options[textButton,imageButton]
iFF.content.searchbox.button.icon = images/icons/searchboxbutton.gif
Searchbox Button icon:when using imageButton - path based on layout directory
type=string
iFF.lang.std.content.searchbox.button.text = OK
Searchbox Button text:(Standard Language)
type=string
tipafriend
iFF.content.tipafriend.switchOff = 0
TipAFriend, switchOff:
type=boolean
iFF.lang.std.content.tipafriend.title = Seite weiterempfehlen
TipAFriend, link title:
type=string
iFF.content.tipafriend.icon = images/icons/icon_versenden.gif
TipAFriend, link icon:
type=string
iFF.lang.std.content.tipafriend.subject = Seitenempfehlung
TipAFriend, subject:
type=string
iFF.lang.std.content.tipafriend.body = Diese Seite finde ich empfehlenswert:
TipAFriend, body:
type=string
printpage
iFF.content.printpage.switchOff = 0
Printview, switchOff:If turned on (default), a printbutton is placed in the function area
type=boolean
iFF.lang.std.content.printpage.link.title = zur Druckansicht
Printview, link title:
type=string
iFF.content.printpage.link.icon = images/icons/icon_drucken.gif
Printview, link icon:
type=string
iFF.lang.std.content.printpage.print.title = Seite drucken
Printview, print title:
type=string
iFF.content.printpage.print.icon = images/icons/icon_print.gif
Printview, print icon:
type=string
iFF.lang.std.content.printpage.noprint.title = Druckvorschau schliessen
Printview, no-print title:
type=string
iFF.content.printpage.noprint.icon = images/icons/icon_noprint.gif
Printview, no-print icon:
type=string
dateAndTime
iFF.content.dateAndTime.switchOff = 0
Date/Time, switchOff:If turned on (default), the next options provide the language-specific settings.
type=boolean
iFF.lang.std.content.dateAndTime.format = %A, %Y-%m-%d
Date/Time(std):Formatting date and time for standard-language (see http://th2.php.net/strftime for possible
strings formatting the date and time):
type=string
CSC stdHeader DateFormat
iFF.lang.std.content.cscDateFormat = y/m/d
CSCstdheader Date-Format(std):Formatting date for standard-language
type=string
linkToTop
iFF.lang.std.content.linkTextToTop = To top
Link to top Text(std):Text for "Link-To-Top" (small Icon):
type=string
iFF.lang.std.content.linkImageToTop = images/icons/top.gif
Link to top Image(std):Image for "Link-To-Top" (small Icon):based on layout directory
type=string
footerlicence
iFF.content.footer_licence.switchOff = 0
Footer_licence, switchOff:You turn off the footer_licence with
type=boolean
iFF.content.footer_licence.wrap = <div class="licence"> | </div>
Footer_licence, wrap around:
type=wrap
iFF.lang.std.content.footer.licence = This layout is based on &copy; <a href="http://www.yaml.de/en/"
target="_blank">YAML</a> | TYPO3 Template &copy; <a href="http://www.image-format.eu/"
target="_blank">image[FORMAT]</a> for the <a href="http://if-20.com/" target="_blank">iF20 project</a>.
Footer licence Links(std):HTML-Code for the footer (standard language).
type=string
IFF.HEADLINES
iFF.content.replace.H1.switchOn = 0
H1 - replace with image?:This is done with Phark-Method image-replacement technique. See
http://meiert.com/de/publications/articles/20050513/#toc-phark for details. The text you entered in header-field is
used for the image.
type=boolean
iFF.content.replace.H1.imageColor = #776655
H1 - fontcolor:If replaced with an image, choose font color here.
type=color
iFF.content.replace.H1.bgTransparency = 0
H1 - background transparency:Set color of top-left pixel to transparent.
type=boolean
iFF.content.replace.H1.bgColor = #ffffff
H1 - background color:If replaced with an image, choose background color here or set a transparent background.
type=color
iFF.content.replace.H1.niceText = 0
H1 - use niceText option?:Depending on the font you use, this renders ugly sometimes. Just turn it off if the result
is not good.
type=boolean
iFF.content.replace.H1.fontSize = 24
H1 - fontsize:Fontsize in pixels. Also used for vertical offset. You need to adjust h1.G height-attribute also, in your
content.css file, if you change this setting.
type=int+
iFF.content.replace.H1.imageFont = fonts/Share-Regular.ttf
H1 - fontfile:Make sure the path (based on extra_data) and filename is set correctly here.
type=string
same for H2 – H6
in EXTENSIONS
ttnews
iFF.lang.std.content.ttnews.listDateFormat = %A, %Y-%m-%d
ttnews list-Date-Format(std):Formatting date for standard-language
type=string
iFF.lang.std.content.ttnews.latestDateFormat = %Y-%m-%d
ttnews latest-Date-Format(std):Formatting date for standard-language
type=string
iFF.lang.std.content.ttnews.singleDateFormat = %A, %Y-%m-%d
ttnews single-Date-Format(std):Formatting date for standard-language
type=string
iFF.lang.std.content.ttnews.singleAgeWrap = &nbsp;Minutes | Hours | Days | Years
ttnews single-Age-Wrap(std):Formatting date for standard-language
type=string
iFF.lang.std.content.ttnews.timeFormat = %H:%M
ttnews Time-Format(std):Formatting date for standard-language
type=string
iFF.lang.std.content.ttnews.fullDateTimeFormat = %Y-%m-%d %H:%M
ttnews full-Date-Time-Format(std):Formatting date for standard-language
type=string
iFF.lang.std.content.ttnews.archivTitleFormat = %B - %Y
ttnews Archiv-Title-Format(std):Formatting date for standard-language
type=string
plugin.tx_news.view.cssPath = {$iFF.projectDir}{$iFF.templateDir}{$iFF.layoutDir}extensions/news/Css/
Path to template CSS (FE)
type=string
tq_seo
plugin.tq_seo.metaTags.description =
Meta Description std lang: Short description of your webpage.
type=string
plugin.tq_seo.metaTags.keywords =
Meta Keywords std lang: Comma separated list of keywords.
type=string
scriptmerger
plugin.tx_scriptmerger.css.enable = 1
scriptmerger css processing
type=boolean
plugin.tx_scriptmerger.css.minify.enable = 1
scriptmerger css minify
type=boolean
plugin.tx_scriptmerger.css.compress.enable = 1
scriptmerger css compress: not tested !
type=boolean
plugin.tx_scriptmerger.css.merge.enable = 1
scriptmerger css merge
type=boolean
plugin.tx_scriptmerger.javascript.enable = 1
scriptmerger js processing
type=boolean
plugin.tx_scriptmerger.javascript.minify.enable = 1
scriptmerger js minify
type=boolean
plugin.tx_scriptmerger.javascript.compress.enable = 1
scriptmerger js compress: not tested !
type=boolean
plugin.tx_scriptmerger.javascript.merge.enable = 1
scriptmerger js merge
type=boolean
TypoScript Setup:
iFF_S_basic_10_config.ts
constants {
iFF_VERSION = 6.1.0
}
### TYPO3 config array
config {
baseURL = {$iFF.conf.url.userBaseUrl}
absRefPrefix = {$iFF.conf.url.userBaseUrl}
}
[globalString = IENV:HTTP_HOST={$iFF.conf.url.userBaseHost}]
config {
baseURL = {$iFF.conf.url.protocol}://{$iFF.conf.url.userBaseHost}/
absRefPrefix = {$iFF.conf.url.protocol}://{$iFF.conf.url.userBaseHost}/
}
[globalString = IENV:HTTP_HOST={$iFF.conf.url.userBaseHost}] && [globalString = IENV:TYPO3_SSL=1]
config {
baseURL = {$iFF.conf.url.protocol}://{$iFF.conf.url.userBaseHostSSL}/
absRefPrefix = {$iFF.conf.url.protocol}://{$iFF.conf.url.userBaseHostSSL}/
}
[globalString = IENV:HTTP_HOST={$iFF.conf.url.userBaseHostAlt}]
config {
baseURL = {$iFF.conf.url.protocol}://{$iFF.conf.url.userBaseHostAlt}/
absRefPrefix = {$iFF.conf.url.protocol}://{$iFF.conf.url.userBaseHostAlt}/
}
[globalString = IENV:HTTP_HOST={$iFF.conf.url.userBaseHostAlt}] && [globalString = IENV:TYPO3_SSL=1]
config {
baseURL = {$iFF.conf.url.protocol}://{$iFF.conf.url.userBaseHostAltSSL}/
absRefPrefix = {$iFF.conf.url.protocol}://{$iFF.conf.url.userBaseHostAltSSL}/
}
[global]
config {
renderCharset = utf-8
metaCharset = utf-8
disableCharsetHeader = 0
enableContentLengthHeader = 1
sendCacheHeaders = 1
removeDefaultJS = external
inlineStyle2TempFile = 1
debug = 0
sword_standAlone = 0
sword_noMixedCase = 0
intTarget = _self
extTarget = _blank
noScaleUp = 1
no_cache = 0
content_from_pid_allowOutsideDomain = 1
noPageTitle = 0
pageTitleFirst = 1
headerComment (
{$iFF.conf.headerComment}
based on: iFF-Framework, YAML for TYPO3 °.°.° http://www.image-format.eu/iff °.°.°
copyright Ralf-Rene Schroeder - image[FORMAT]
)
admPanel = {$iFF.conf.userAdmPanelOn}
doctype = {$iFF.conf.docTypeToUse}
doctypeSwitch = {$iFF.conf.doctypesw_cond}
htmlTag_dir = {$iFF.conf.userHtmlTagDir}
index_enable = {$iFF.conf.userIndexingOn}
index_externals = {$iFF.conf.userIndexExternalsOn}
index_metatags = {$iFF.conf.userIndexMetaTagsOn}
xhtml_cleaning = {$iFF.conf.userXhtmlCleaning}
disablePrefixComment = {$iFF.conf.userDisablePrefixComment}
}
### spamProtect
config {
spamProtectEmailAddresses = {$iFF.conf.spamProtect.level}
spamProtectEmailAddresses_atSubst = {$iFF.conf.spamProtect.atSubst}
spamProtectEmailAddresses_lastDotSubst = {$iFF.conf.spamProtect.lastDotSubst}
}
[globalVar = LIT:1 > {$iFF.conf.spamProtect.additional.switchOff}]
config {
spamProtectEmailAddresses_atSubst = <span
class="mailprotect">{$iFF.conf.spamProtect.additional.marker}</span><span>{$iFF.conf.spamProtect.atS
ubst}</span>
spamProtectEmailAddresses_lastDotSubst = <span
class="mailprotect">{$iFF.conf.spamProtect.additional.marker}</span><span>{$iFF.conf.spamProtect.las
tDotSubst}</span>
}
[global]
[globalVar = LIT:1 = {$iFF.conf.spamProtect.switchOff}]
config {
spamProtectEmailAddresses = 0
spamProtectEmailAddresses_atSubst >
spamProtectEmailAddresses_lastDotSubst >
}
[global]
### simulateStaticDocuments
config.simulateStaticDocuments = 0
[globalVar = LIT:1 = {$iFF.conf.url.simStatDocOn}]&&[globalVar = LIT:1 >
{$iFF.conf.url.realUrlOn}]&&[globalVar = LIT:1 > {$iFF.conf.url.coolUriOn}]
config {
simulateStaticDocuments = 1
simulateStaticDocuments_addTitle = {$iFF.conf.url.simStatDocAddTitle}
simulateStaticDocuments_pEnc = {$iFF.conf.url.simStatDocPenc}
simulateStaticDocuments_pEnc_onlyP = {$iFF.conf.url.simStatDocPencOnlyP}
}
[global]
### realURL
[globalVar = LIT:1 = {$iFF.conf.url.realUrlOn}]
config {
tx_realurl_enable = 1
prefixLocalAnchors = {$iFF.conf.url.userPrefixLocalAnchors}
}
[global]
### cooluri
[globalVar = LIT:1 = {$iFF.conf.url.coolUriOn}]
config {
tx_cooluri_enable = 1
redirectOldLinksToNew = 1
prefixLocalAnchors = {$iFF.conf.url.userPrefixLocalAnchors}
}
[global]
### Language settings
config {
linkVars = L(0)
uniqueLinkVars = 1
sys_language_mode = content_fallback
sys_language_overlay = hideNonTranslated
sys_language_uid = {$iFF.lang.std.UID}
language = {$iFF.lang.std.isoCode}
locale_all = {$iFF.lang.std.locale}
htmlTag_langKey = {$iFF.lang.std.isoCode}
}
iFF_S_basic_20_headerData.ts
### registerConf
lib.registerConf = COA
lib.registerConf {
1 = LOAD_REGISTER
1 {
usedBeLayoutNr {
cObject = TEXT
cObject {
data = levelfield:-1, backend_layout_next_level, slide
override.field = backend_layout
}
}
usedBeLayoutName {
cObject = TEXT
cObject {
wrap = {$iFF.conf.layoutStyle}- |
data = DB : backend_layout : {register:usedBeLayoutNr} : title
data.insertData = 1
}
}
usedFeLayoutNr {
cObject = TEXT
cObject {
value =
override.if.isTrue.field = layout
override.field = layout
override.wrap = - |
}
}
}
### (selectedTO) not yet used in the moment
10 = COA
10 {
10 = HMENU
10 {
special = rootline
special.range = 0|-2
1 = TMENU
1.NO {
doNotLinkIt = 1
stdWrap.cObject = LOAD_REGISTER
stdWrap.cObject {
selectedTO.data = register:selectedTO
selectedTO.override.field = tx_templavoila_to
selectedTO.override.override.field = tx_templavoila_next_to
}
}
}
20 = LOAD_REGISTER
20 {
selectedTO.data = register:selectedTO
selectedTO.override.field = tx_templavoila_to
}
}
10 >
}
iFF_S_basic_30_content.ts
### Changes RTE
lib.parseFunc_RTE {
nonTypoTagStdWrap.encapsLines {
# remove 'class=bodytext' in P-tags
addAttributes.P.class =
# tags that must not be wrapped
encapsTagList := addToList(dl, dt, dd)
encapsTagList := addToList(table)
}
# allow tags
allowTags := addToList(dl,dt,dd)
allowTags := addToList(table, thead,tbody,tfooter,tr,th,td)
# avoid unwanted p-elements in th/td on the way to FE
externalBlocks.table.HTMLtableCells.default >
externalBlocks.table.HTMLtableCells.default.stdWrap.parseFunc =< lib.parseFunc
# allow own tableclasses
externalBlocks.table.stdWrap.HTMLparser.tags.table.fixAttrib.class.always = 0
externalBlocks.table.stdWrap.HTMLparser.tags.table.fixAttrib.class.list := addToList(contenttable,
csc-frame-frame1, csc-frame-frame2, float-left, float-right)
}
### Link to Top
tt_content.stdWrap.innerWrap.cObject.10.default.30.20.override.cObject = TEXT
tt_content.stdWrap.innerWrap.cObject.10.default.30.20.override.cObject {
value = {LLL:EXT:css_styled_content/pi1/locallang.xml:label.toTop}
innerWrap = <img src="{$iFF.projectDir}{$iFF.templateDir}{$iFF.layoutDir}images/
{$iFF.lang.std.content.linkImageToTop}" alt="" title=" | " />
wrap = <a href="#usedMainContent"> | </a>
outerWrap = <p class="csc-anchor csc-linkToTop"> | </p>
}
### Replace Hx Tags with graphics if user choosed this option
[globalVar = LIT:1 = {$iFF.content.replace.H1.switchOn}]
lib.stdheader.10.1 >
lib.stdheader.10 {
1 = IMG_RESOURCE
1 {
file = GIFBUILDER
file {
XY = [10.w]+10,[10.h]+10
backColor = {$iFF.content.replace.H1.bgColor}
transparentBackground = {$iFF.content.replace.H1.bgTransparency}
format = png
10 = TEXT
10 {
text.field = header
fontSize = {$iFF.content.replace.H1.fontSize}
fontFile = {$iFF.projectDir}{$iFF.extraDir}fonts/{$iFF.content.replace.H1.imageFont}
fontColor = {$iFF.content.replace.H1.imageColor}
offset = 0,{$iFF.content.replace.H1.fontSize}
niceText = {$iFF.content.replace.H1.niceText}
}
}
stdWrap {
prepend = TEXT
prepend {
dataWrap = <h1 class="G" style=
}
innerWrap.cObject = COA
innerWrap.cObject {
10 = TEXT
10.value = "background: {$iFF.content.replace.H1.bgColor} url(|) no-repeat;">
}
append = TEXT
append {
current = 1
wrap = |</h1>
}
}
}
}
[global]
[globalVar = LIT:1 = {$iFF.content.replace.H2.switchOn}]
lib.stdheader.10.2 >
lib.stdheader.10 {
2 = IMG_RESOURCE
2 {
file = GIFBUILDER
file {
XY = [10.w]+10,[10.h]+10
backColor = {$iFF.content.replace.H2.bgColor}
transparentBackground = {$iFF.content.replace.H2.bgTransparency}
format = png
10 = TEXT
10 {
text.field = header
fontSize = {$iFF.content.replace.H2.fontSize}
fontFile = {$iFF.projectDir}{$iFF.extraDir}fonts/{$iFF.content.replace.H2.imageFont}
fontColor = {$iFF.content.replace.H2.imageColor}
offset = 0,{$iFF.content.replace.H2.fontSize}
niceText = {$iFF.content.replace.H2.niceText}
}
}
stdWrap {
prepend = TEXT
prepend {
dataWrap = <h2 class="G" style=
}
innerWrap.cObject = COA
innerWrap.cObject {
10 = TEXT
10.value = "background: {$iFF.content.replace.H2.bgColor} url(|) no-repeat;">
}
append = TEXT
append {
current = 1
wrap = |</h2>
}
}
}
}
[global]
[globalVar = LIT:1 = {$iFF.content.replace.H3.switchOn}]
lib.stdheader.10.3 >
lib.stdheader.10 {
3 = IMG_RESOURCE
3 {
file = GIFBUILDER
file {
XY = [10.w]+10,[10.h]+10
backColor = {$iFF.content.replace.H3.bgColor}
transparentBackground = {$iFF.content.replace.H3.bgTransparency}
format = png
10 = TEXT
10 {
text.field = header
fontSize = {$iFF.content.replace.H3.fontSize}
fontFile = {$iFF.projectDir}{$iFF.extraDir}fonts/{$iFF.content.replace.H3.imageFont}
fontColor = {$iFF.content.replace.H3.imageColor}
offset = 0,{$iFF.content.replace.H3.fontSize}
niceText = {$iFF.content.replace.H3.niceText}
}
}
stdWrap {
prepend = TEXT
prepend {
dataWrap = <h3 class="G" style=
}
innerWrap.cObject = COA
innerWrap.cObject {
10 = TEXT
10.value = "background: {$iFF.content.replace.H3.bgColor} url(|) no-repeat;">
}
append = TEXT
append {
current = 1
wrap = |</h3>
}
}
}
}
[global]
[globalVar = LIT:1 = {$iFF.content.replace.H4.switchOn}]
lib.stdheader.10.4 >
lib.stdheader.10 {
4 = IMG_RESOURCE
4 {
file = GIFBUILDER
file {
XY = [10.w]+10,[10.h]+10
backColor = {$iFF.content.replace.H4.bgColor}
transparentBackground = {$iFF.content.replace.H4.bgTransparency}
format = png
10 = TEXT
10 {
text.field = header
fontSize = {$iFF.content.replace.H4.fontSize}
fontFile = {$iFF.projectDir}{$iFF.extraDir}fonts/{$iFF.content.replace.H4.imageFont}
fontColor = {$iFF.content.replace.H4.imageColor}
offset = 0,{$iFF.content.replace.H4.fontSize}
niceText = {$iFF.content.replace.H4.niceText}
}
}
stdWrap {
prepend = TEXT
prepend {
dataWrap = <h4 class="G" style=
}
innerWrap.cObject = COA
innerWrap.cObject {
10 = TEXT
10.value = "background: {$iFF.content.replace.H4.bgColor} url(|) no-repeat;">
}
append = TEXT
append {
current = 1
wrap = |</h4>
}
}
}
}
[global]
[globalVar = LIT:1 = {$iFF.content.replace.H5.switchOn}]
lib.stdheader.10.5 >
lib.stdheader.10 {
5 = IMG_RESOURCE
5 {
file = GIFBUILDER
file {
XY = [10.w]+10,[10.h]+10
backColor = {$iFF.content.replace.H5.bgColor}
transparentBackground = {$iFF.content.replace.H5.bgTransparency}
format = png
10 = TEXT
10 {
text.field = header
fontSize = {$iFF.content.replace.H5.fontSize}
fontFile = {$iFF.projectDir}{$iFF.extraDir}fonts/{$iFF.content.replace.H5.imageFont}
fontColor = {$iFF.content.replace.H5.imageColor}
offset = 0,{$iFF.content.replace.H5.fontSize}
niceText = {$iFF.content.replace.H5.niceText}
}
}
stdWrap {
prepend = TEXT
prepend {
dataWrap = <h5 class="G" style=
}
innerWrap.cObject = COA
innerWrap.cObject {
10 = TEXT
10.value = "background: {$iFF.content.replace.H5.bgColor} url(|) no-repeat;">
}
append = TEXT
append {
current = 1
wrap = |</h5>
}
}
}
}
[global]
iFF_S_basic_30_content.ts
plugin.tx_felogin_pi1.templateFile = {$iFF.projectDir}{$iFF.templateDir}{$iFF.layoutDir}
{$iFF.content.felogin.template}
### apimacmade (there was a wrongtyping "hasWebToolKit <> hasWebToolkit")
plugin.tx_apimacmade_pi1 {
hasWebToolkit {
base64 = {$plugin.tx_apimacmade_pi1.hasWebToolKit.base64}
crc32 = {$plugin.tx_apimacmade_pi1.hasWebToolKit.crc32}
md5 = {$plugin.tx_apimacmade_pi1.hasWebToolKit.md5}
sha1 = {$plugin.tx_apimacmade_pi1.hasWebToolKit.sha1}
sha256 = {$plugin.tx_apimacmade_pi1.hasWebToolKit.sha256}
url = {$plugin.tx_apimacmade_pi1.hasWebToolKit.url}
utf8 = {$plugin.tx_apimacmade_pi1.hasWebToolKit.utf8}
}
}
### tq_seo metatags
plugin.tq_seo.metaTags {
language = {$iFF.lang.std.isoCode}
description = {$plugin.tq_seo.metaTags.description}
keywords = {$plugin.tq_seo.metaTags.keywords}
}
config.titleTagFunction = user_tqseo_pagetitle->main
page {
headerData.84113002 = USER
headerData.84113002 {
userFunc = user_tqseo_metatags->main
}
headerData.84113003 = USER_INT
headerData.84113003 {
userFunc = user_tqseo_http->main
}
84113002 = USER
84113002 {
userFunc = user_tqseo_pagefooter->main
}
}
### tt_news
plugin.tt_news {
usePagesRelations = 1
usePiBasePagebrowser = 1
excludeAlreadyDisplayedNews = 0
dontUseBackPid = 0
archiveTitleCObject {
10.strftime = {$iFF.lang.std.content.ttnews.archivTitleFormat}
}
getRelatedCObject {
10.1.20.strftime = {$iFF.lang.std.content.ttnews.fullDateTimeFormat}
10.2.20.strftime = {$iFF.lang.std.content.ttnews.fullDateTimeFormat}
10.default.20.strftime = {$iFF.lang.std.content.ttnews.fullDateTimeFormat}
}
displaySingle {
date_stdWrap.strftime= {$iFF.lang.std.content.ttnews.singleDateFormat}
time_stdWrap.strftime= {$iFF.lang.std.content.ttnews.timeFormat}
age_stdWrap.age = {$iFF.lang.std.content.ttnews.singleAgeWrap}
}
displayLatest {
date_stdWrap.strftime= {$iFF.lang.std.content.ttnews.latestDateFormat}
time_stdWrap.strftime= {$iFF.lang.std.content.ttnews.timeFormat}
subheader_stdWrap.crop = 100 | ... | 1
}
displayList {
date_stdWrap.strftime= {$iFF.lang.std.content.ttnews.listDateFormat}
time_stdWrap.strftime= {$iFF.lang.std.content.ttnews.timeFormat}
}
catOrderBy = title
}
displayCatMenu {
catmenuRootIconFile = EXT:tt_news/res/tt_news_cat.gif
catmenuNoRootIcon = 0
catmenuIconMode = -1
}
pageBrowser {
dontLinkActivePage = 1
maxPages = 10
showRange = 0
showPBrowserText = 1
showResultCount = 0
showFirstLast = 0
}
### tx_indexedsearch
plugin.tx_indexedsearch._DEFAULT_PI_VARS.lang = 0
iFF_S-basic_50_module_navigation.ts
### lib.modul.basicmenu
lib.modul.basicmenu = COA
lib.modul.basicmenu {
stdWrap.prefixComment = 2|Output of lib.modul.basicmenu
wrap = |
30 = HMENU
30 {
wrap = <div class="{$iFF.nav.menuClass}">|</div>|
1 = TMENU
1 {
noBlur = 1
wrap = <ul>|</ul>
IProcFunc = user_cronaccessiblemenus->makeAccessible
IProcFunc {
accessKeys = 1
accessKeys.noAutoGenerated = 0
forbiddenKeys =
accessKeyWrap = <span class="accessKey"> | </span>
appendWrap = <span class="showAccessKey">&nbsp;(ALT- | )</span>
dfn = 1
dfn {
menuSet = basicmenu
start = 1
stdWrap.noTrimWrap = || |
inATag = 1
}
}
NO = 1
NO.ATagTitle.field = {$iFF.conf.seo.MouseOverOrder}
NO.allWrap = |
NO.allWrap.stdWrap.override = |<span class="hidden">.</span>
NO.allWrap.stdWrap.override.if.isFalse = {$iFF.conf.accessKeysAndDfnOff}
NO.wrapItemAndSub.insertData = 1
NO.wrapItemAndSub = <li class="no menuid-{field:uid} menupos-{register:count_MENUOBJ} first">|
</li>|*|<li class="no menuid-{field:uid} menupos-{register:count_MENUOBJ}">|</li>|*|<li class="no
menuid-{field:uid} menupos-{register:count_MENUOBJ} last">|</li>
NO.stdWrap.htmlSpecialChars = 1
NO.linkWrap = {$iFF.nav.linkWrap}
NO.ATagBeforeWrap = 1
IFSUB < .NO
IFSUB.linkWrap = {$iFF.nav.linkWrap}
IFSUB.wrapItemAndSub = <li class="no ifsub menuid-{field:uid} menupos-{register:count_MENUOBJ}
first">|</li>|*|<li class="no ifsub menuid-{field:uid} menupos-{register:count_MENUOBJ}">|</li>|*|
<li class="no ifsub menuid-{field:uid} menupos-{register:count_MENUOBJ} last">|</li>
ACT < .NO
ACT.wrapItemAndSub = <li class="act menuid-{field:uid} menupos-{register:count_MENUOBJ}
first">|</li>|*|<li class="act menuid-{field:uid} menupos-{register:count_MENUOBJ}">|</li>|*|<li
class="act menuid-{field:uid} menupos-{register:count_MENUOBJ} last">|</li>
ACTIFSUB < .ACT
ACTIFSUB.wrapItemAndSub = <li class="act ifsub menuid-{field:uid} menupos{register:count_MENUOBJ} first">|</li>|*|<li class="act ifsub menuid-{field:uid} menupos{register:count_MENUOBJ}">|</li>|*|<li class="act ifsub menuid-{field:uid} menupos{register:count_MENUOBJ} last">|</li>
CUR < .NO
CUR.doNotLinkIt = 1
CUR.allWrap = <strong> | </strong>
CUR.allWrap.stdWrap.override = <strong> | </strong><span class="hidden">.</span>
CUR.wrapItemAndSub = <li class="cur menuid-{field:uid} menupos-{register:count_MENUOBJ}
first">|</li>|*|<li class="cur menuid-{field:uid} menupos-{register:count_MENUOBJ}">|</li>|*|<li
class="cur menuid-{field:uid} menupos-{register:count_MENUOBJ} last">|</li>
CURIFSUB < .CUR
CURIFSUB.wrapItemAndSub = <li class="cur ifsub menuid-{field:uid} menupos{register:count_MENUOBJ} first">|</li>|*|<li class="cur ifsub menuid-{field:uid} menupos{register:count_MENUOBJ}">|</li>|*|<li class="cur ifsub menuid-{field:uid} menupos{register:count_MENUOBJ} last">|</li>
}
}
}
### lib.modul.skiplinks (in the DS the fields toContentID and toNavID must be set)
lib.modul.skiplinks = COA
lib.modul.skiplinks {
wrap = <ul class="ym-skiplinks"> | </ul>
stdWrap.prefixComment = 2|Output of lib.modul.skiplinks
}
10 = COA
10 {
12 = TEXT
12.value =
12.wrap =
22 = TEXT
22.value =
22.wrap =
}
{$iFF.nav.skip.toNavID}
<li><a class="ym-skip" href="#|">{$iFF.lang.std.nav.skip.toNavText}</a></li>
main
<li><a class="ym-skip" href="#|">{$iFF.lang.std.nav.skip.toContentText}</a></li>
### lib.modul.nav_top
lib.modul.nav_top < lib.modul.basicmenu
lib.modul.nav_top {
stdWrap.if.isFalse = {$iFF.nav.top.switchOff}
stdWrap.prefixComment = 2|Output of lib.modul.nav_top
wrap = {$iFF.nav.top.wrap}
30 = HMENU
30 {
special = {$iFF.nav.top.type}
special.value = {$iFF.nav.top.entryListDirValue}
entryLevel.if.isFalse = {$iFF.nav.top.type}
entryLevel = {$iFF.nav.top.entryListDirValue}
1 = TMENU
1 {
wrap = <ul class="{$iFF.nav.top.menuClass}">|</ul>
#
IProcFunc.dfn = 0
IFSUB >
ACT >
ACTIFSUB >
CURIFSUB >
}
}
}
### lib.modul.nav_main_1 (Button Navigation unter dem Header)
lib.modul.nav_main_1 < lib.modul.basicmenu
lib.modul.nav_main_1 {
stdWrap.if.isFalse = {$iFF.nav.main.1st.switchOff}
stdWrap.prefixComment = 2|Output of lib.modul.nav_main_1
wrap = {$iFF.nav.main.1st.allWrap}
30 = HMENU
30 {
special = {$iFF.nav.main.1st.type}
special.value = {$iFF.nav.main.1st.entryListDirValue}
entryLevel.if.isFalse = {$iFF.nav.main.1st.type}
entryLevel = {$iFF.nav.main.1st.entryListDirValue}
excludeUidList = {$iFF.nav.main.1st.excludeList}
1 = TMENU
1 {
wrap = <ul class="{$iFF.nav.main.1st.menuClass}">|</ul>
#
IProcFunc.dfn = 0
}
}
}
### lib.modul.nav_main_2
### zweite Navigationszeile (oder alternativ fuer JS dropdown)
lib.modul.nav_main_2 < lib.modul.basicmenu
lib.modul.nav_main_2 {
stdWrap.if.isFalse = {$iFF.nav.main.2nd.switchOff}
stdWrap.prefixComment = 2|Output of lib.modul.nav_main_2
wrap = {$iFF.nav.main.2nd.allWrap}
30 = HMENU
30 {
special = {$iFF.nav.main.2nd.type}
special.value = {$iFF.nav.main.2nd.entryListDirValue}
entryLevel.if.isFalse = {$iFF.nav.main.2nd.type}
entryLevel = {$iFF.nav.main.2nd.entryListDirValue}
excludeUidList = {$iFF.nav.main.2nd.excludeList}
1 = TMENU
1 {
wrap = <ul class="{$iFF.nav.main.2nd.menuClass}">|</ul>
#
}
}
IProcFunc.dfn = 0
}
[globalVar = LIT:1 = {$iFF.nav.main.2nd.useForJsMenu}]
lib.modul.nav_main_2 {
30 {
wrap = <div class="menu {$iFF.nav.main.2nd.jsMenuClass}"> | </div>
1.expAll = 1
2 < .1
3 < .1
4 < .1
}
}
[global]
[globalVar = LIT:1 = {$iFF.nav.main.1st.switchOff}]
### Modify the skiplink to submenu instead!!!
lib.skiplinks.10.12 = TEXT
lib.skiplinks.10.12.value = submenu
### until now it is hardcoded
[global]
[globalVar = LIT:1 > {$iFF.nav.main.2nd.switchOff}]
### Modify the skiplink back to nav when second tabnav is used!!!
lib.skiplinks.10.12 = TEXT
lib.skiplinks.10.12.value = {$iFF.nav.skip.toNavID}
[global]
### lib.modul.nav_rootline
lib.modul.nav_rootline = COA
lib.modul.nav_rootline {
stdWrap.if.isFalse = {$iFF.nav.rootline.switchOff}
stdWrap.prefixComment = 2|Output of lib.modul.nav_rootline
wrap = {$iFF.nav.rootline.allWrap}
10 = TEXT
10.value = {$iFF.lang.std.nav.rootline.clickPathPrefix}
10.noTrimWrap = || |
20 = HMENU
20 {
special = rootline
special.range = 0|-1
1 = TMENU
1 {
allWrap = |
noBlur = 1
NO.doNotLinkIt = 0 |*| 0 |*| 1
NO.ATagTitle.field = abstract // description // subtitle
NO.stdWrap.htmlSpecialChars = 1
NO.linkWrap = {$iFF.nav.rootline.linkWrap}
}
}
}
### lib.modul.nav_language
lib.modul.nav_language = COA
lib.modul.nav_language {
stdWrap.if.isFalse = {$iFF.nav.language.switchOff}
stdWrap.prefixComment = 2|Output of lib.modul.nav_language
wrap = <div class="langMenu">|</div>
10 =< plugin.tx_srlanguagemenu_pi1
}
### lib.modul.selectorBox
### show on desired pages
[globalVar = {$iFF.nav.selectorBox.showOnPage}]
lib.modul.selectorBox = HMENU
lib.modul.selectorBox {
if.isFalse = {$iFF.nav.selectorBox.switchOff}
stdWrap.prefixComment = 2|Output of lib.modul.selectorBox
wrap = {$iFF.nav.selectorBox.allWrap}
special = updated
special.value = 1
special.maxAge = 3600*24*7
limit = 10
1 = JSMENU
1.target = _top
1.firstLabelGeneral = {$iFF.lang.std.nav.selectorBox.label}
}
[global]
### lib.modul.submenu
lib.modul.nav_sub < lib.modul.basicmenu
lib.modul.nav_sub {
stdWrap.if.isFalse = {$iFF.nav.sub.switchOff}
stdWrap.prefixComment = 2|Output of lib.modul.nav_sub
wrap = {$iFF.nav.sub.allWrap}
20 = TEXT
20.if.isFalse = {$iFF.nav.sub.headlineOff}
20.data = leveltitle:1
20.ifEmpty.cObject = TEXT
20.ifEmpty.cObject.value < sitetitle
20.ifEmpty.cObject.innerWrap = <strong> | </strong>
20.wrap = {$iFF.nav.sub.headlineWrap}
20.typolink.parameter.data = leveluid : 1
20.typolink.stdWrap.if.isTrue = {$iFF.nav.sub.headlineLink}
# 20.if.isTrue.numRows {
#
table = pages
#
where = pid=this
# }
30 = HMENU
30 {
special = {$iFF.nav.sub.type}
special.value = {$iFF.nav.sub.entryListDirValue}
entryLevel.if.isFalse = {$iFF.nav.sub.type}
entryLevel = {$iFF.nav.sub.entryListDirValue}
excludeUidList = {$iFF.nav.sub.excludeList}
1 = TMENU
1 {
expAll = {$iFF.nav.sub.expandToggle}
wrap = <ul class="{$iFF.nav.sub.menuClass}">|</ul>
IProcFunc.dfn.menuSet = submenu
}
2 < .1
2.wrap = <ul>|</ul>
3 < .2
4 < .2
}
}
### deactivate the Link when in entry level
[treeLevel = {$iFF.nav.sub.entryLevel}] && [globalVar = LIT:1 = {$iFF.nav.sub.headlineLink}]
lib.modul.nav_sub.20.typolink.parameter.data >
[global]
### lib.modul.nav_footer
lib.modul.nav_footer < lib.modul.basicmenu
lib.modul.nav_footer {
stdWrap.if.isFalse = {$iFF.nav.footer.switchOff}
stdWrap.prefixComment = 2|Output of lib.modul.nav_footer
wrap = {$iFF.nav.footer.wrap}
30 = HMENU
30 {
special = {$iFF.nav.footer.type}
special.value = {$iFF.nav.footer.entryListDirValue}
entryLevel.if.isFalse = {$iFF.nav.footer.type}
entryLevel = {$iFF.nav.footer.entryListDirValue}
1 = TMENU
1 {
wrap = <ul class="{$iFF.nav.footer.menuClass}">|</ul>
#
IProcFunc.dfn = 0
IFSUB >
ACT >
ACTIFSUB >
CURIFSUB >
}
}
}
### Delete accesskeyes if user has set the appropriate option
[globalVar = LIT:1 = {$iFF.conf.accessKeysAndDfnOff}]
lib.modul.nav_top.30.1.IProcFunc >
lib.modul.nav_main_1.30.1.IProcFunc >
lib.modul.nav_main_2.30 {
1.IProcFunc >
2.IProcFunc >
3.IProcFunc >
4.IProcFunc >
}
lib.modul.nav_sub.30 {
1.IProcFunc >
2.IProcFunc >
3.IProcFunc >
4.IProcFunc >
}
lib.modul.nav_footer.30.1.IProcFunc >
[global]
### Delete accesskey help if user has set the appropriate option
[globalVar = LIT:1 = {$iFF.conf.accessKeyHelpOff}]
lib.modul.nav_top.30.1.IProcFunc.appendWrap >
lib.modul.nav_main_1.30.1.IProcFunc.appendWrap >
lib.modul.nav_main_2.30 {
1.IProcFunc.appendWrap >
2.IProcFunc.appendWrap >
3.IProcFunc.appendWrap >
4.IProcFunc.appendWrap >
}
lib.modul.nav_sub.30 {
1.IProcFunc.appendWrap >
2.IProcFunc.appendWrap >
3.IProcFunc.appendWrap >
4.IProcFunc.appendWrap >
}
lib.modul.nav_footer.30.1.IProcFunc.appendWrap >
[global]
iFF_S-basic_50_module_navigation.ts
### lib.modul.searchbox
lib.modul.searchbox = COA
lib.modul.searchbox {
stdWrap.prefixComment = 2|Output of lib.modul.searchbox
stdWrap.if.isFalse = {$iFF.content.searchbox.switchOff}
wrap = {$iFF.content.searchbox.allWrap}
10 = TEXT
10 {
typolink.parameter = {$iFF.content.searchbox.pagePID}
typolink.returnLast = url
wrap = <form action="|" method="post" name="searchform" id="tx_indexedsearch">
}
# Eingabefeld
20 = COA
20 {
wrap = <input | type="text" name="tx_indexedsearch[sword]" />
10 = TEXT
10 {
value = {$iFF.lang.std.content.searchbox.text}
wrap = value="|"
noTrimWrap = | | |
}
20 = TEXT
20 {
value = {$iFF.lang.std.content.searchbox.text}
wrap = onkeypress="if(this.value=='|'){this.value='';}"
noTrimWrap = | | |
}
30 < .20
30.wrap = onfocus="if(this.value=='|'){this.value='';}"
40 < .20
40.wrap = onclick="if(this.value=='|'){this.value='';}"
}
# Button
30 = COA
30 {
stdWrap.if.isFalse = {$iFF.content.searchbox.button.switchOff}
10 = TEXT
10 {
if.value = textButton
if.equals = {$iFF.content.searchbox.button.style}
value = {$iFF.lang.std.content.searchbox.button.text}
wrap = <input id="tx-indexedsearch-searchbox-button-submit" class="button textButton"
name="tx_indexedsearch[submit_button]" type="submit" value="|" />
}
20 = TEXT
20 {
if.value = imageButton
if.equals = {$iFF.content.searchbox.button.style}
value = {$iFF.lang.std.content.searchbox.button.text}
wrap = <input id="tx-indexedsearch-searchbox-button-submit" class="button imageButton"
name="tx_indexedsearch[submit_button]" type="image" src="{$iFF.projectDir}{$iFF.templateDir}
{$iFF.layoutDir}{$iFF.content.searchbox.button.icon}" value="|" />
}
}
# Sprache
40 = TEXT
40 {
data = GPvar:L
wrap = <input type="hidden" name="tx_indexedsearch[lang]" value="|" />
}
# Versteckte Felder und schließender Form Tag
50 = TEXT
50.value (
<input type="hidden" name="tx_indexedsearch[_sections]" value="0" />
<input type="hidden" name="tx_indexedsearch[pointer]" id="tx_indexedsearch_pointer" value="0" />
<input type="hidden" name="tx_indexedsearch[ext]" value="0" />
<input type="hidden" name="tx_indexedsearch[_freeIndexUid]" id="tx_indexedsearch_freeIndexUid"
value="_" />
</form>
)
}
[globalVar = TSFE:id={$iFF.content.searchbox.pagePID}]
lib.modul.searchbox.20 = COA_INT
lib.modul.searchbox.20.10.override.data = GPvar:tx_indexedsearch|sword
lib.modul.searchbox.20.10.htmlSpecialChars = 1
[global]
### lib.modul.header_image_bg
### background image in header
page.headerData.979 = TEXT
page.headerData.979 {
typolink.parameter.data = TSFE:id
typolink.additionalParams = &type=79
typolink.returnLast = url
wrap = <link rel="stylesheet" type="text/css" href="|" />
}
dynamicCss979 = PAGE
dynamicCss979 {
typeNum = 79
config {
disableAllHeaderCode = 1
additionalHeaders = Content-type: text/css
admPanel = 0
}
5 = TEXT
5.if.isFalse = {$iFF.conf.pieFix.switchOff}
5.value = {$iFF.conf.pieFix.path}
5.wrap = * { behavior: url( | ); }
10 = COA
10 {
stdWrap.if.isFalse = {$iFF.content.header.image.bg.switchOff}
### Variant: get from page ressources
10 = IMG_RESOURCE
10 {
stdWrap.if.isFalse = {$iFF.content.header.image.bg.override}
file {
import = uploads/media/
import.data = levelmedia:-1, slide
import.listNum = {$iFF.content.header.image.bg.listNum}
}
stdWrap.wrap = /|
stdWrap.outerWrap = body > .ym-wrapper > .ym-wbox > header { background: url(|)
{$iFF.content.header.image.bg.data};}
stdWrap.outerWrap.stdWrap.override = body > header .ym-wrapper { background: url(|)
{$iFF.content.header.image.bg.data};}
stdWrap.outerWrap.stdWrap.override.if.isTrue = {$iFF.conf.specialTypeSite}
}
### Variant: manual file override
11 < .10
11 = TEXT
11.stdWrap.if.negate = 1
11.value = {$iFF.projectDir}{$iFF.templateDir}{$iFF.layoutDir}
{$iFF.content.header.image.bg.overrideFile}
}
}
### lib.modul.header_image_1st
### First image in header id="logo"
lib.modul.header_image_1st = COA
lib.modul.header_image_1st {
stdWrap.if.isFalse = {$iFF.content.header.image.1st.switchOff}
stdWrap.prefixComment = 2|Output of lib.modul.header_image_1st
stdWrap.outerWrap.cObject = COA
stdWrap.outerWrap.cObject {
wrap = {$iFF.content.header.image.1st.allWrap}
10 = TEXT
10.if.isFalse = {$iFF.content.header.image.1st.linkOn}
10.value = <img class="headImg1" src="|" alt="Logo-{page:title}" title="Logo-{page:title}" />
10.insertData = 1
11 < .10
11.if.negate = 1
11.typolink.parameter = {$iFF.content.header.image.1st.linkUID}
11.typolink.target =
}
10 = IMG_RESOURCE
10 {
stdWrap.if.isFalse = {$iFF.content.header.image.1st.override}
file = IMAGE
file {
import {
required = 1
data = levelmedia: -1, slide
wrap = uploads/media/ |
listNum = {$iFF.content.header.image.1st.listNum}
}
}
}
11 = TEXT
11.if.isTrue = {$iFF.content.header.image.1st.override}
11.value = {$iFF.projectDir}{$iFF.templateDir}{$iFF.layoutDir}
{$iFF.content.header.image.1st.overrideFile}
}
### lib.modul.header_image_2nd
### second image in header id="banner"
lib.modul.header_image_2nd = COA
lib.modul.header_image_2nd {
stdWrap.if.isFalse = {$iFF.content.header.image.2nd.switchOff}
10 = IMG_RESOURCE
10 {
file = IMAGE
file {
import {
required = 1
data = levelmedia: -1, slide
wrap = uploads/media/ |
listNum = {$iFF.content.header.image.2nd.listNum}
}
}
}
}
### Variant: manual file override
[globalVar = LIT:1 = {$iFF.content.header.image.2nd.override}]
lib.modul.header_image_2nd.10 = TEXT
lib.modul.header_image_2nd.10.value = {$iFF.projectDir}{$iFF.templateDir}{$iFF.layoutDir}
{$iFF.content.header.image.2nd.overrideFile}
[global]
lib.modul.header_image_2nd.stdWrap.prefixComment = 2|Output of lib.modul.header_image_2nd
lib.modul.header_image_2nd.stdWrap.outerWrap.cObject = COA
lib.modul.header_image_2nd.stdWrap.outerWrap.cObject {
wrap = {$iFF.content.header.image.2nd.allWrap}
10 = TEXT
10.value = <img class="headImg2" src="|" alt="Banner-{page:title}" title="Banner-{page:title}" />
10.insertData = 1
}
### Variant: User has chosen to link it
[globalVar = LIT:1 = {$iFF.content.header.image.2nd.linkOn}]
lib.modul.header_image_2nd.stdWrap.outerWrap.cObject {
10 = TEXT
10.value = <img class="headImg2" src="|" alt="Banner-{page:title}" title="Banner-{page:title}" />
10.insertData = 1
10.typolink.parameter = {$iFF.content.header.image.2nd.linkUID}
10.typolink.target =
}
[global]
### lib.modul.headerslide
lib.modul.headerslide = COA
lib.modul.headerslide.stdWrap.if.isFalse = {$iFF.content.header.slide.switchOff}
lib.modul.headerslide.wrap = {$iFF.content.header.slide.allWrap}
lib.modul.headerslide.10 =< plugin.tx_imagecycle_pi1
lib.modul.headerslide.10 {
imagewidth = {$iFF.content.header.slide.imagewidth}
imageheight = {$iFF.content.header.slide.imageheight}
transitionDuration = {$iFF.content.header.slide.transitionDuration}
displayDuration = {$iFF.content.header.slide.displayDuration}
}
### lib.modul.datetime
lib.modul.datetime = COA
lib.modul.datetime {
stdWrap.if.isFalse = {$iFF.content.dateAndTime.switchOff}
stdWrap.prefixComment = 2|Output of lib.modul.datetime
wrap = <div class="aktDatum">|</div>
10 = TEXT
10 {
data = date:U
strftime = {$iFF.lang.std.content.dateAndTime.format}
}
}
### lib.modul.footer_licence
lib.modul.footer_licence = TEXT
lib.modul.footer_licence {
if.isFalse = {$iFF.content.footer_licence.switchOff}
stdWrap.prefixComment = 2|Output of lib.modul.footer_licence
value = {$iFF.lang.std.content.footer.licence}
wrap = <div id="footer_licence">|</div>
}
### lib.modul.extended_news
lib.modul.extended_news < plugin.tt_news
lib.modul.extended_news {
stdWrap.prefixComment = 2|Output of lib.modul.extended_example
templateFile = {$iFF.projectDir}{$iFF.templateDir}
{$iFF.layoutDir}extensions/news/tt_news_list_eqbox3.html
alternatingLayouts = 3
code = LIST
pid_list = 27
limit = 3
displayList.subheader_stdWrap.crop = 500 | ... | 1
catImageMode = 0
catTextMode = 0
}
#### lib.modul.printlink
lib.modul.printlink = COA
lib.modul.printlink {
stdWrap.if.isFalse = {$iFF.content.printpage.switchOff}
stdWrap.wrap = <div class="printLink">|</div>
stdWrap.typolink {
addQueryString = 1
useCacheHash = 1
parameter.data = TSFE:id
additionalParams = &type=1
ATagParams = rel="nofollow" target="_blank" title="{$iFF.lang.std.content.printpage.link.title}"
}
10 = IMAGE
10 {
file = {$iFF.projectDir}{$iFF.templateDir}{$iFF.layoutDir}{$iFF.content.printpage.link.icon}
altText = {$iFF.lang.std.content.printpage.link.title}
}
}
lib.modul.tipafriend = COA
lib.modul.tipafriend {
stdWrap.if.isFalse = {$iFF.content.tipafriend.switchOff}
wrap = <div class="tipaFriend">|</div>
10 = TEXT
10 {
noTrimWrap = |<a href="mailto:?
subject={$iFF.lang.std.content.tipafriend.subject}&amp;body={$iFF.lang.std.content.tipafriend.body}
|"><img src="{$iFF.projectDir}{$iFF.templateDir}{$iFF.layoutDir}{$iFF.content.tipafriend.icon}"
title="{$iFF.lang.std.content.tipafriend.title}" /></a>|
data = getIndpEnv:TYPO3_REQUEST_URL
rawUrlEncode = 1
}
}
iFF_S_basic_70_areas
### lib.area.tops
lib.area.tops = COA
lib.area.tops {
stdWrap.prefixComment = 2|Output of lib.area.tops
stdWrap.required = {$iFF.conf.autoHideIfEmpty}
stdWrap.if.isFalse = {$iFF.area.tops.switchOff}
stdWrap.outerWrap = {$iFF.area.tops.outerWrap}
stdWrap.innerWrap2.stdWrap.if.isTrue = {$iFF.conf.specialTypeSite}
stdWrap.innerWrap2 = {$iFF.conf.specialTypeSiteWrapBegin} | {$iFF.conf.specialTypeSiteWrapEnd}
stdWrap.innerWrap = {$iFF.area.tops.innerWrap}
}
### lib.area.header
lib.area.header = COA
lib.area.header {
stdWrap.prefixComment = 2|Output of lib.area.header
stdWrap.required = {$iFF.conf.autoHideIfEmpty}
stdWrap.if.isFalse = {$iFF.area.header.switchOff}
stdWrap.outerWrap = {$iFF.area.header.outerWrap}
stdWrap.innerWrap2.stdWrap.if.isTrue = {$iFF.conf.specialTypeSite}
stdWrap.innerWrap2 = {$iFF.conf.specialTypeSiteWrapBegin} | {$iFF.conf.specialTypeSiteWrapEnd}
stdWrap.innerWrap = {$iFF.area.header.innerWrap}
10 =< lib.modul.nav_top
20 =< lib.modul.header_image_1st
30 =< lib.modul.header_image_2nd
40 =< lib.modul.headerslide
60 =< lib.modul.headerslogan
70 =< lib.modul.searchbox
}
### lib.area.nav_main
lib.area.nav_main = COA
lib.area.nav_main {
stdWrap.prefixComment = 2|Output of lib.area.nav_main
stdWrap.required = {$iFF.conf.autoHideIfEmpty}
stdWrap.if.isFalse = {$iFF.area.nav_main.switchOff}
stdWrap.outerWrap = {$iFF.area.nav_main.outerWrap}
stdWrap.innerWrap2.stdWrap.if.isTrue = {$iFF.conf.specialTypeSite}
stdWrap.innerWrap2 = {$iFF.conf.specialTypeSiteWrapBegin} | {$iFF.conf.specialTypeSiteWrapEnd}
stdWrap.innerWrap = {$iFF.area.nav_main.innerWrap}
20 =< lib.modul.nav_main_1
30 =< lib.modul.nav_main_2
}
[globalVar = LIT:1 = {$iFF.area.nav_main.switchOff}]
# Modify the skiplink to submenu instead!!!
lib.modul.skiplinks.10.12 = TEXT
lib.modul.skiplinks.10.12.value = nav_sub
[global]
### lib.area.teaser
### make it a COA, just in case the user wants to put anything else here.
lib.area.teaser = COA
lib.area.teaser {
stdWrap.prefixComment = 2|Output of lib.area.teaser
stdWrap.required = {$iFF.conf.autoHideIfEmpty}
stdWrap.if.isFalse = {$iFF.area.teaser.switchOff}
stdWrap.outerWrap = {$iFF.area.teaser.outerWrap}
stdWrap.innerWrap2.stdWrap.if.isTrue = {$iFF.conf.specialTypeSite}
stdWrap.innerWrap2 = {$iFF.conf.specialTypeSiteWrapBegin} | {$iFF.conf.specialTypeSiteWrapEnd}
stdWrap.innerWrap = {$iFF.area.teaser.innerWrap}
50 < styles.content.get
50.select.where = colPos=3
}
### lib.area.functions
lib.area.functions = COA
lib.area.functions {
stdWrap.prefixComment = 2|Output of lib.area.functions
stdWrap.required = {$iFF.conf.autoHideIfEmpty}
stdWrap.if.isFalse = {$iFF.area.functions.switchOff}
stdWrap.outerWrap = {$iFF.area.functions.outerWrap}
stdWrap.innerWrap = {$iFF.area.functions.innerWrap}
10 =< lib.modul.nav_rootline
20 =< lib.modul.nav_language
25 =< lib.modul.tipafriend
30 > // reserved for font-size
35 =< lib.modul.printlink
40 =< lib.modul.datetime
}
### lib.area.menu_content
lib.area.menucontent = COA
lib.area.menucontent {
stdWrap.prefixComment = 2|Output of lib.area.menu_content
stdWrap.required = {$iFF.conf.autoHideIfEmpty}
stdWrap.outerWrap = |
10 =< lib.modul.nav_sub
20 =< lib.modul.selectorBox
50 < styles.content.get
50.select.where = colPos=1
}
### lib.area.side_content
lib.area.sidecontent = COA
lib.area.sidecontent {
stdWrap.prefixComment = 2|Output of lib.area.side_content
stdWrap.required = {$iFF.conf.autoHideIfEmpty}
stdWrap.outerWrap = |
50 < styles.content.get
50.select.where = colPos=2
}
### lib.area.main_content
lib.area.content = COA
lib.area.content {
stdWrap.prefixComment = 2|Output of lib.area.main_content
stdWrap.required = {$iFF.conf.autoHideIfEmpty}
stdWrap.outerWrap = |
50 < styles.content.get
50.select.where = colPos=0
}
### lib.area.main
lib.area.main = COA
lib.area.main {
stdWrap.prefixComment = 2|Output of lib.area.main
stdWrap.required = {$iFF.conf.autoHideIfEmpty}
stdWrap.if.isFalse = {$iFF.area.main.switchOff}
stdWrap.outerWrap = {$iFF.area.main.outerWrap}
stdWrap.innerWrap2.stdWrap.if.isTrue = {$iFF.conf.specialTypeSite}
stdWrap.innerWrap2 = {$iFF.conf.specialTypeSiteWrapBegin} | {$iFF.conf.specialTypeSiteWrapEnd}
stdWrap.innerWrap = {$iFF.area.main.innerWrap}
50 =
60 =< lib.area.functions
70 =< lib.area.menucontent
80 =< lib.area.sidecontent
90 =< lib.area.content
}
# not used in th moment
lib.area.main >
### lib.area.extended
### make it a COA, just in case the user wants to put anything else here.
lib.area.extended = COA
lib.area.extended {
stdWrap.prefixComment = 2|Output of lib.area.extended
stdWrap.required = {$iFF.conf.autoHideIfEmpty}
stdWrap.if.isFalse = {$iFF.area.extended.switchOff}
stdWrap.outerWrap = {$iFF.area.extended.outerWrap}
stdWrap.innerWrap2.stdWrap.if.isTrue = {$iFF.conf.specialTypeSite}
stdWrap.innerWrap2 = {$iFF.conf.specialTypeSiteWrapBegin} | {$iFF.conf.specialTypeSiteWrapEnd}
stdWrap.innerWrap = {$iFF.area.extended.innerWrap}
50 < styles.content.get
50.select.where = colPos=4
}
### lib.area.footer
lib.area.footer = COA
lib.area.footer {
stdWrap.prefixComment = 2|Output of lib.area.footer
stdWrap.required = {$iFF.conf.autoHideIfEmpty}
stdWrap.if.isFalse = {$iFF.area.footer.switchOff}
stdWrap.outerWrap = {$iFF.area.footer.outerWrap}
stdWrap.innerWrap2.stdWrap.if.isTrue = {$iFF.conf.specialTypeSite}
stdWrap.innerWrap2 = {$iFF.conf.specialTypeSiteWrapBegin} | {$iFF.conf.specialTypeSiteWrapEnd}
stdWrap.innerWrap = {$iFF.area.footer.innerWrap}
10 =< lib.modul.footer_licence
20 =< lib.modul.nav_footer
}
### lib.area.ads
lib.area.ads = COA
lib.area.ads {
stdWrap.prefixComment = 2|Output of lib.area.ads
stdWrap.required = {$iFF.conf.autoHideIfEmpty}
stdWrap.if.isFalse = {$iFF.area.ads.switchOff}
stdWrap.outerWrap = {$iFF.area.ads.outerWrap}
stdWrap.innerWrap = {$iFF.area.ads.innerWrap}
}
iFF_S_basic_70_page.ts
##########################
page = PAGE
[globalVar = LIT:html5 = {$iFF.conf.docTypeToUse}]
page.includeJSlibs.modernizr = typo3/contrib/modernizr/modernizr.min.js
[global]
### css with BE-Layout Name
page.headerData {
10 = COA
10 {
10 = TEXT
10.value = {register:usedBeLayoutName}
10.insertData = 1
10.wrap = <link href="{$iFF.projectDir}{$iFF.templateDir}{$iFF.layoutDir}css/ | .css"
rel="stylesheet" type="text/css" />
20 = TEXT
20.value = {register:usedBeLayoutName}
20.insertData = 1
20.wrap = <link href="{$iFF.projectDir}{$iFF.templateDir}{$iFF.layoutDir}css/patches/patch- |
.css" rel="stylesheet" type="text/css" />
20.outerWrap = <!--[if lte IE 7]> | <![endif]-->
}
}
### manual setting of css files
[globalVar = LIT:manCSS = {$iFF.conf.overrideCssFromTemplateHead}]
page.headerData.10.10.value = {$iFF.layoutCssName}
page.headerData.10.20.value = {$iFF.layoutPatchName}
[global]
### JavaScript Filler-Link, if user switched on feature
[globalVar = LIT:1 = {$iFF.conf.devFillerLinkOn}]
page.headerData {
111 = TEXT
111.value = <script type="text/javascript" src="{$iFF.projectDir}
{$iFF.extraDir}scripts/ftod.js"></script>
112 = TEXT
112.value = <script type="text/javascript">window.onload=function()
{AddFillerLink("usedMenuContent","usedSideContent","usedMainContent");}</script>
}
[global]
### main page object
page {
adminPanelStyles = 0
typeNum = 0
1 =< lib.registerConf
}
page.bodyTag >
page.bodyTagCObject = COA
page.bodyTagCObject {
wrap = <body | >
10 = TEXT
10.field = uid
10.stdWrap.noTrimWrap = | id="pageUID-|"|
20 = COA
20 {
stdWrap.noTrimWrap = | class="|"|
10 = TEXT
10.field = pid
10.stdWrap.noTrimWrap = |pagePID-||
20 = HMENU
20 {
stdWrap.noTrimWrap = | pageRID-||
special = rootline
special.range = 0|-1
includeNotInMenu = 1
1 = TMENU
1 {
NO.subst_elementUid = 1
NO.allWrap = {elementUid} pageRID- |*| {elementUid} pageRID- |*| {elementUid}
NO.doNotShowLink = 1
}
}
30 = TEXT
30.value = {$iFF.conf.pageCID}
30.stdWrap.noTrimWrap = | pageCID-||
40 = TEXT
40.value =
50 = TEXT
50.data = register:usedBeLayoutName
50.stdWrap.noTrimWrap = | layout-||
60 = TEXT
60.if.isTrue.data = register:usedFeLayoutNr
60.data = register:usedFeLayoutNr
60.stdWrap.noTrimWrap = | variant||
70 = TEXT
70.value = {$iFF.lang.std.UID}
70.stdWrap.noTrimWrap = | langID-||
80 = TEXT
80.value = normal
80.override = registered
80.override.if.isTrue.data = TSFE:fe_user|user|username
80.stdWrap.noTrimWrap = | |User|
90 = TEXT
90.value = night
90.stdWrap.noTrimWrap = | ||
}
}
[hour => 06]
page.bodyTagCObject.20.90.value
[global]
[hour => 10]
page.bodyTagCObject.20.90.value
[global]
[hour => 13]
page.bodyTagCObject.20.90.value
[global]
[hour => 16]
page.bodyTagCObject.20.90.value
[global]
[hour => 22]
page.bodyTagCObject.20.90.value
[global]
= morning
= middday
= afternoon
= evening
= night
# manual, autoparser, templavoila later
[globalVar = LIT:fluid = {$iFF.conf.templatingEngine}]
page {
20 = FLUIDTEMPLATE
20 {
file = template.html
file.stdWrap.wrap = {$iFF.projectDir}{$iFF.templateDir}{$iFF.layoutDir}fluid/ |
partialRootPath = {$iFF.projectDir}{$iFF.templateDir}{$iFF.layoutDir}fluid/partials/
layoutRootPath = {$iFF.projectDir}{$iFF.templateDir}{$iFF.layoutDir}fluid/layouts/
variables {
layoutStyle = TEXT
layoutStyle.value = {$iFF.conf.layoutStyle}
specialTypeSite = TEXT
specialTypeSite.value = {$iFF.conf.specialTypeSite}
specialTypeSiteWrapBegin = TEXT
specialTypeSiteWrapBegin.value = {$iFF.conf.specialTypeSiteWrapBegin}
specialTypeSiteWrapEnd = TEXT
specialTypeSiteWrapEnd.value = {$iFF.conf.specialTypeSiteWrapEnd}
}
settings {
layoutStyle = TEXT
layoutStyle.value = {$iFF.conf.layoutStyle}
}
settings >
}
}
[global]
### scripts for skiplinks at the end of body
# <!-- full skip link functionality in ie8 & webkit browsers -->
page.includeJSFooter {
skiplinks = {$iFF.projectDir}{$iFF.templateDir}{$iFF.frameworkDir}core/js/yaml-focusfix.js
skiplinks.type = text/javascript
}
[globalVar = LIT:1 = {$iFF.nav.skip.jsIsInTemplate}]
page.includeJSFooter.skiplinks >
[global]
### switch AdminPanel on
[globalVar = LIT:1 = {$iFF.conf.userAdmPanelOn}]
page.adminPanelStyles = 1
[global]
### PAGE
print = PAGE
print {
typeNum = 1
bodyTag = <body background-color:white!important; background-image:none!important;>
includeCSS {
file1 = {$iFF.projectDir}{$iFF.templateDir}{$iFF.layoutDir}css/print/print.css
file1.media = print
}
### Druckvorschau:
10 = TEXT
10 {
wrap = <span class="vorschauicons"> | </span>
value = <span><img src ="{$iFF.projectDir}{$iFF.templateDir}{$iFF.layoutDir}
{$iFF.content.printpage.noprint.icon}"
title="{$iFF.lang.std.content.printpage.noprint.title}"/></span>
typolink {
target = _self
extTarget = _self
parameter = javascript:window.close()
}
}
### Seite drucken:
20 = TEXT
20 {
wrap = <span class="vorschauicons"> | </span>
value = <span><img src ="{$iFF.projectDir}{$iFF.templateDir}{$iFF.layoutDir}
{$iFF.content.printpage.print.icon}" title="{$iFF.lang.std.content.printpage.print.title}"/></span>
typolink {
target = _self
extTarget = _self
parameter = javascript:window.print()
}
}
### Inhalt der Seite holen:
50 < styles.content.get
}
### RSS
[globalVar = TSFE:type = 9818]
lib.stdheader >
tt_content.stdWrap.innerWrap >
tt_content.stdWrap.wrap >
# get away <div class="feEditAdvanced-firstWrapper" ...> if your logged into the backend
styles.content.get.stdWrap >
pageNewsRSS = PAGE
pageNewsRSS.typeNum = 9818
pageNewsRSS.10 < styles.content.get
pageNewsRSS.10.select.where = colPos=0 AND list_type = "news_pi1"
pageNewsRSS.10.select {
orderBy = sorting ASC
max = 1
}
config {
disableAllHeaderCode = 1
xhtml_cleaning = none
admPanel = 0
metaCharset = utf-8
# you need an english locale to get correct rfc values for <lastBuildDate>, ...
locale_all = en_EN
additionalHeaders = Content-Type:text/xml;charset=utf-8
disablePrefixComment = 1
baseURL = {$iFF.conf.url.userBaseUrl}
absRefPrefix = {$iFF.conf.url.userBaseUrl}
}
plugin.tx_news.settings.format = xml
[global]

Documentos relacionados