TYPO3 7.x bring back the [REF] in Listview

In TYPO3 6.x gab es in der Liste immer die „Ref.“ Spalte neben den Datensätzen.
ich fand die ziemlich praktisch, da man immer sehen könnte, wie oft bereits referenziert wurde.

In TYPO3 7 ist er irgendwie verschwunden und stattdessen gibt es die neue Spalte „Beschreibung“.

Wenn man nun die Referenzen Anzeige zurück haben möchte muss man ins Seiten TSConfig der Rootpage folgendes eintragen.


mod.web_list {
showClipControlPanelsDespiteOfCMlayers = 1
}

Bzw. wenn es nur auf Benutzer oder eine Benutzergruppe reduzieren möchte, dann folgendes ins TSConfig Feld des Users oder der Gruppe


page.mod.web_list {
showClipControlPanelsDespiteOfCMlayers = 1
}

Warum ist das so?
Es gibt intern eine Abfrage die die Option _REF_ nur aktiviert wenn die Option $dblist->dontShowClipControlPanels gleich FALSE ist und um das zu erreichen, muss man die andere TS Config Option auf „true“ (also 1) setzen…

Verwirrend?
Ja, deswegen habe ich das hier noch stehen, da ich diesen Zusammenhang nächste Woche garantiert wieder vergessen habe.
Jedoch, alles „historisch gewachsen“ und dieser Zusammenhang der beiden Option ist eigentlich nicht mehr von Relevanz und wird sicher bald wieder gerade gezogen.

CORS: Access-Control-Allow-Origin für mehrere Domains und Subdomains

Damit über eine Ajax Anfrage auf eine andere Domain zugegriffen werden kann, kann man JSONP nutzen oder CORS (Cross-Origin Resource Sharing).
CORS muss allerdings auf dem anzufragenden Server jedoch konfiguriert sein und zwar muss dieser die anfragende Domain kennen und somit den Zugriff erlauben.

In einer HtAccess kann man dafür z.B. folgendes nutzen:

< IfModule mod_headers.c >
Header set Access-Control-Allow-Origin "http://foo.example.com"
Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept"
< /IfModule >

Nun darf die Subdomain die Ajax Anfrage stellen und bekommt auch eine Antwort zurück, alternativ kann auch ein „*“ statt der Domain gesetzt werden, dann ist allen der Zugriff erlaubt.

Wenn jedoch nur einige Domains oder Subdomains drauf zugreifen sollen wird es etwas schwieriger, denn in den Spezifikationen ist das nicht weiter vorgesehen.
Es wird jedoch darauf hingewiesen, dass man den Anfragen gegen eine Whitelist gegen checkt und dann den Header für genau diese Domain setzt.

Mit Hilfe einiger StackOverflow Beiträge wie zum Beispiel diesem hier Access-Control-Allow-Origin Multiple Origin Domains?, konnte ich mir dann was zusammenstellen.

Bisher funktioniert bei mir folgendes sehr gut:


< IfModule mod_headers.c >
# Setzt den "Access-Control-Allow-Origin" Tag für http(s) und alle SubDomains (inkl. www) der aufgeführten Domains
SetEnvIf Origin "http(s)?://([a-z0-9]*\.)?(example.de|domain1.de|domain.pl|example.ro|foo.com)$" AccessControlAllowOrigin=$0$1
Header set Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept"
< /IfModule >

Kleine Notiz: die SubDomains sind auf Buchstaben und Zahlen beschränkt, z.B. abc123.example.de für akzeptiert werden, nicht jedoch abc.xyz.example.de

Falls man doch die regular expression(RegEx, RegExp) anpassen oder erweitern möchte, lohnt sich ein Blick auf http://regexr.com/ zu werfen.

P.S. Leerzeichen bei den spitzen Klammern entfernen

TYPO3: Fehlerausgabe in Version 7.6

TYPO3 hat ein tolles neues Feature.
Exceptions werden nicht mehr im Content ausgegeben, sonder nur für jenes Inhaltselement sowas wie

Oops, an error occurred! Code: 2015112412044407ef2354

In einem Testsystem macht das natürlich wenig Sinn.
So gibt es nun 2 Möglichkeiten die Fehlerausgabe wieder zu reaktivieren.

1.) Über die .htaccess Datei

Die folgende Zeile auskommentieren (also # entfernen)
#RewriteRule .? - [E=TYPO3_CONTEXT:Development]

Damit wird der Context auf Development gesetzt, was intern an verschiedenen Stellen abgefragt wird, daher ist zu empfehlen es wirklich auch nur in Testsystem zu nutzen.

2.) Über TypoScript
Es muss im TypoScript, am besten das HauptTemplate die Eigenschaft gesetzt werden

config.contentObjectExceptionHandler = 0

mehr dazu in der Doku von TYPO3

Happy Coding

vim colorscheme aus einem anderen Ordner

Ich habe gerade versucht bei meinem Hoster die Einstellungen für vim anzupassen.
Zugang zu vimrc habe ich, jedoch nicht zum vim/colors Ordner.

Hier habe ich nun nach eine Möglichkeit gesucht, einen anderen Ort zu definieren, wo ich die colorschemes ablegen kann und bin hier fündig geworden :
Coderwall.com | portable vim configuration via dropbox

In der vimrc kann man nun folgendes eintragen:


set runtimepath+=~/Dropbox/vim
source ~/Dropbox/vim/vimrc.vim

oder für meinen Fall hat auch erstmal folgendes gereicht


set runtimepath+=~/files/vim
syntax enable
colorscheme monokai

In dem Ordern files/vim/colors/ kann ich nun colorschemes hinterlegen und auf diese verweisen 🙂

Da macht das arbeiten mit Vim remote wieder doppelt so viel Spass.

Vielen Dank an coderwall.com für den Hinweis

TYPO3 wie bekomme ich den Datrei Pfad von „file:123“

Gerade muss ein kleines Legacy projekt geupdatet werden.
In einem Datensatz einer Extension gab es ein Link Wizard.
Bisher war es so das der DateiPfad in das Inputfeld geschrieben wurde, jetzt allerdings nur noch „file:123“

Wir bekomme ich nun in der pibase Extension hier den Pfad für die Datei um sie an die Marker(*) zu übergeben.
Gegooglte und hier endete die Suche: https://forum.typo3.org/index.php/t/194348/


$fileObject = \TYPO3\CMS\Core\Resource\ResourceFactory::getInstance()->retrieveFileOrFolderObject( 'file:123' );
$filePath = $fileObject->getPublicUrl();

Besten Dank auch von mir an „Frans Saris (minifranske)“ für die Lösung.

* ich sage ja … Legacy Code 😉

Backend_Layouts und Benutzerrechte

Bevor ich es wieder vergesse.
Beim erstellen von Backend_layouts kann es manchmal ganz nützlich sein, wenn Redakteure nicht alle Bereiche bearbeiten können.
Als Beispiel haben wir ein Backend_layout mit den Feldern „Bühne“ (colPos 10), „Links“ (colPos 20), „Rechts“ (colPos 30) und „Footer“ (colPos 40).

soll ein Redakteur nun keinen Zugriff bzw. keine Berechtigung für die Bühne haben. Kann man im Gruppen TsConfig Feld folgende Eintragung machen.


page.mod.SHARED.colPos_list= 20,30,40

Nun gibt es für den Redakteur nur den Hinweis „Keine Bearbeitungsrechte“ anstelle der Bühne.

Besten Dank an Thomas Rawiel für den Hinweis 🙂