TYPO3 VHS if Viewhelper Beispiel

Der Fluid „if“ Viewhelper erfüllt in den meisten Fällen seinen Zweck, allerdings kommt es auch hin und wieder vor, dass man im Template mehrere Bedingungen gleichzeitig abfragen möchte. Für diese Anwendungsfälle kann man den if-Viewhelper der VHS Extension nutzen:

Das folgende Beispiel zeigt wie man zwei Variablen auf ihren Inhalt prüfen kann. Dem Argument „stack“ übergibt man ein array bestehend aus der Bedingung. In diesem Beispiel wird überprüft ob in dem News-Eintrag Links oder Downloads hinterlegt sind.

Einen komplexeren Anwendungsfall wird im folgenden Beispiel beschrieben.

In diesem Beispiel setzt sich der „Bedingungs-Stack“ aus mehren Vergleichen zusammen.

Folgende Vergleiche und Verknüpfungen lassen sich mit dem Viewhelper umsetzen:

‚==‘
‚!=‘
‚>=‘
‚<=‘
‚<‚;
‚>‘

‚AND‘
‚OR‘
‚&&‘
‚||‘

TYPO3 Upgrade Tip: Kein Datentyp HTML ab TYPO3 6.0

Beim Upgraden einer 4.6 Installation auf 6.X wurden einig TypoScript Objekt nicht mehr angezeigt / ausgeführt. Der war, dass deren Datentyp HTML seit Version 6.0 nicht mehr zur Vefügung steht.

http://docs.typo3.org/typo3cms/TyposcriptReference/stable/ContentObjects/Html/

Deshalb:

10 = HTML
10.value = Hallo Welt!

Muss geändert weden in:

10 = TEXT
10.value = Hallo Welt!

<p class="bodytext"> aus TYPO3 RTE Code entfernen

// Remove Class Of

lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.addAttributes.P.class =

// Remove P tag

tt_content.stdWrap.innerWrap >
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines >

//Remove Extra Figure Tag of Image

tt_content.image.20.renderMethod = figure
tt_content.image.20.rendering.figure

Veröffentlicht unter TYPO3

indexed_search TypoScript Konfigurations-Optionen

plugin.tx_indexedsearch {
templateFile = fileadmin/indexed_search.tmpl
_CSS_DEFAULT_STYLE >
_DEFAULT_PI_VARS.results = 10
searchUID = 14

# Aus- und Einblenden von Optionen im Suchformular
# bzw. Vorgaben für die Formulare
blind {
# Such-Typ:0 = Ganzes Wort, 1 = Wortteil 2 = Wortanfang,
# 3 = Wortende, 10 = Aussprache, 20 = Ganzer Satz
type=-1

# Sprachen: -1 = Alle Sprachen, 0 = Standard,
# 1 = English
lang = -1

# Logische Verknüpfung der Suchbegriffe
# 0 = Alle Wörter (UND), 1 = Jedes Wort (ODER)
defOp=0

# Sektionen, in denen gesucht wird:
# 0 = ganze Website, -1 = Aktuelle Seite,
# -2 = Homepage + Ebene 1, -3 = Ebene 2 und tiefer
# rlx_y = Ebene x, Seite y
sections=0

# Filter: -1 = kein Filter, 0 = nur reguläre Ergebnisse
freeIndexUid = -1

# -1 = Alle Medien, 0 = Interne Seiten, -2 = Alle externen Seiten
# pdf = PDF-Dokumente, doc = MS-Word, sxw = OpenOffice , ?

media=-1

# Sortierung:
# rank_flag = Trefferquote/Vorkommen, mtime = letzte Änderung
# rank_first = Nähe zum Dokumentenanfang, title = Titel der Seite
order=-1

# Gruppierung:
# sections = Sektionshierarchie, flat = Flache Liste
group=-1

# Erweiterte Vorschau: 0 = nein, 1 = ja
extResume = 1

# Reihenfolge:
# 0 = höchstes zuerst, 1 = geringstes zuerst
desc=-1

# Anzahl der Suchergebnisse auf einer Seite:
# 0 (oder 10) = Standard 10 Ergebnisse, 20 = 20 Ergebnisse, ?
results = 0

}
show {
# Hilfe einblenden
rules=1
# Angabe der Suchzeit
parsetimes=1
# Zweite Ebene im Bereichs-Pulldown anzeigen
L2sections=1
# Erste Ebene im Bereichs-Pulldown anzeigen
L1sections=1
# Auch Seiten anzeigen die den Seitentyp „Not in menu“
# haben bzw. „hide in menu“ (im Menü verstecken) haben.
# (aber nicht „versteckte“ Seiten)?
LxALLtypes=0
# Suchbox nach der Suche wieder leeren?
clearSearchBox = 0
# Aktuelles Suchwort zu den bisherigen hinzufügen (Checkbox)
clearSearchBox.enableSubSearchCheckBox=0
# Die Anzahl der gefundenen Seiten enthält keine Suchergebnisse
# auf dessen Seiten der Suchende keinen Zugriff hat. Sollen diese
# dennoch eingerechnet werden, so ist die Option auf 1 zu setzen
forbiddenRecords = 0
# Anzeige des Seitenbrowsers (auch wenn weniger als 10 Ergebnisse)
alwaysShowPageLinks = 0
# Link zur erweiterten Suche
advancedSearchLink = 1
# Anzeige der Anzahl der Ergebnisse
resultNumber = 1
# Kommaseparierte Liste von Medientypen,
# die als Ergebnisse angezeigt werden sollen.
mediaList = pdf
}
search {
# Kommaseparierte IDs der Root-Seiten,
# kann entfallen, falls nur eine vorhanden
rootPidList =

# Anzahl der auszugebenden Suchergebnisse
page_links = 10

# Wenn diese Option gesetzt ist (1), dann werden die Suchergebnisse
# auf die jeweilige Domain gemappt, d.h. der Link wird
# entsprechend angepasst
# detect_sys_domain_records = 1
}

# Target, in welchem die Ergebnisse nach dem Klick geöffnet werden
# beispielsweise: _blank, _self
result_link_target = _self
# Suchbegriffe im Link zum Ergebnis übergeben,
# auf der Ergebnis-Seite kann dann das Suchwort hervorgehoben   werden
forwardSearchWordsInResultLink = 0

}

File resource URIs in FLUID unter TYPO3 6.x erzeugen (FAL)

Mit der Einführung von FAL hat sich auch das erstellen von Datei Resource Pfaden in FLUID Templates etwas verändert.

Mittels Image-ViewHelper läßt über das Attribut „treatIdAsReference“ einstellen, dass es sich um eine FAL-Datei-Referenz handelt:

Inline Syntax:
{f:uri.image(src:file,treatIdAsReference:1)}

Tag based Syntax:
<f:uri.image src=“{file}“ treatIdAsReference=“1″ />

Das Interessante:
Diese Methode funktoniert nicht nur für Bilder, sondern für alle Datei-Typen, die man z.B. als Download-Link anbieten möchte.

Ein weiterer Punkt der sich im Zuge der Recherche ergeben hat ist, dass man im „f:link.page“-ViewHelper im Attribut „pageUid“ nicht nur Seiten-IDs übergeben kann, sondern alle Werte, die auch der Typolink-Builder als Parameter entgegen nimmt.
Dadurch ist es möglich z.B. einen Datei-Download-Link in FLUID / FAL zu erzeugen:

<f:link.page pageUid=“{f:uri.image(src:file,treatIdAsReference:1)}“ target=“_blank“ />

Dieser wird dann auch durch den Typolink-Builder erzeugt, was den Vorteil hat, dass z.B. Extensions die sich dort einklinken funktionieren, z.B. um die Downloads abzusichern oder sprechende Links zu erzeugen.

Weitere Info: ImageViewhelper Referenz auf fedext.net

Powermail – XSS Problem mit Webkit Browsern

Bei Powermail (Version 1.6.9) gab es auf einer betreuten Seite ein Problem mit dem XXS Filter von Chrome/Safari.
Offenbar wird beim Versenden eines Formulars mit Powermail im Post Javascript mit versendet, das wiederum im Response auftaucht.
Die WebKit Browser werten das als mögliche XXS Attacke und der X-XXS-Filter greift und lässt das Laden sämlicher Resourcen auf der Bestätigungsseite nicht zu, was dazu führt, das eine zerschossene Bestätigungsseite nach erfolgreichem Absenden eines Powermail Formulars zu sehen ist…

Siehe auch:
http://stackoverflow.com/questions/1547884/refused-to-execute-a-javascript-script-source-code-of-script-found-within-reque

„This happens when some JavaScript code is sent to the server via an HTTP POST request, and the same code comes back via the HTTP response. If Chrome detects this situation, the script is refused to run, and you get the error message Refused to execute a JavaScript script. Source code of script found within request.“

Von hier wird auch hierauf verwiesen:
http://blog.chromium.org/2010/01/security-in-depth-new-security-features.html

„…
In the end nothing changes except that browsers are more complicated and fragile. Google serves its pages including this blog with X-XSS-Protection: 0 for a reason; that should tell you something.
…“

Also ist die „Lösung“ das Setzen eines zusätzlichen Headers, der den Filter unterbindet:
In TYPO3 sähe das so aus:
config.additionalHeaders = X-XSS-Protection: 0

TYPO3 – Seitenbaumrechte für Redakteure

Um zu erreichen, dass eine von einem Admin angelegte Seite von einem Redakteur zu sehen, zu bearbeiten und auch zu löschen ist, ist folgendes zu tun:

1) Zusätzlich zur Redakteursgruppe eine weitere Gruppe anlegen (z.B. Gruppe „Seitenbaumrechte“)
2) Alle Admins der Gruppe „Seitenbaumrechte“ zuordnen
3) Die Gruppe „Seitenbaumrechte“ als Untergruppe der Redakteursgruppe zuordnen

Wenn man das gleich beim Erstellen der Redakteursgruppe macht und dann auch die entsprechenden Rechte verteilt, dann muss man die folgende PAGE-TS cfg nicht mehr machen:

direct_mail upgrade

Beim Upgrade von direct_mail auf die aktuellste Version 3.0.2 (von 2.6.1/2.7.0) muss darauf geachtet werden, die Extension direct_mail_userfunc zu deinstallieren, da diese direct_mail per xclass erweitert. Das führte dazu, dass die vorbereiteten Versandlisten leer waren.

Mehr Infos auf forge
http://forge.typo3.org/projects/extension-direct_mail_userfunc

Veröffentlicht unter TYPO3