Kategorien-Archiv: Typo3

301 redirects using Typo3 domain records

to avoid duplicate content a 301 redirect pointing from http://my-domain.com to http://www.my-domain.com can be achieved using the jb_status_url extension.

more info here

Veröffentlicht in SEO, Webkram | Kommentieren

Wisdom: Golden rules for TYPO3 extension programmers

Excellent list:

Wisdom: Golden rules for TYPO3 extension programmers « TYPO3 FLYERS

Veröffentlicht in Webkram | Getagged | 2 Kommentare

Typo3-Crawler per Cronjob bei domainfactory

typo3/cli_dispatch.phpsh muss angepasst werden, da PHP bei df als CGI läuft und am Anfang dieses Skript geprüft wird, ob es von der Kommandozeile (‘cli’) aus gestartet wurde. Bei df trifft das nie zu, deshalb wird hier abgebrochen. Relativ am Anfang des Skripts gibt es folgenden Block:

if (PHP_SAPI!='cli') {
   die('Not called from a command line
                        interface (eg. a shell or scheduler).'.chr(10));
}


Die die()-Anweisung kann gefahrlos auskommentiert werden (mit //)

Anschließend muss man cli_dispatch.phpsh mit parameter “crawler” aus dem cli-verzeichnis der crawler-extension aufrufen (Pfad zu PHP variiert je nach Server, das hier geht bei mir):

/usr/local/bin/php5 -f /path/to/typo3page/typo3/cli_dispatch.phpsh crawler

Das kann man dann auch mittels Cronjob automatisieren.

Erfunden hab ich das alles nicht selbst, sondern hier abgeschrieben und angepasst, Vielen Dank!

Veröffentlicht in Webkram | Getagged | 2 Kommentare

Formidable RENDERLET:LISTER mit Template

Templates für RENDERLET:LISTER muss man nicht selber erstellen, formidable baut sehr brauchbare vorlagen:

Man nimmt in das Renderlet folgenden Template-Block auf:

<template>
   <path>EXT:my_extension/res/templates/test.tpl</path>
   <subpart>###LIST###</subpart>
</template>


In der Templatedatei (hier test.tpl) sollte der Subpart ###LIST### noch nicht vorhanden sein. Wenn man jetzt formidable sein Werk verrichten lässt, gibt, wie zu erwarten, eine Fehlermeldung aus. Gleichzeitig hat es jedoch gleich auch ein Template für den Lister erstellt, die man kopieren/eifügen und anpassen kann. Wenn doch alle Fehlermeldungen so hilfreich wären…

via [TYPO3-project-formidable] custom CSS to lister and other?

Veröffentlicht in Allgemeines, formidable | Getagged , | Kommentieren

formidable Validators Howto

Schöne Zusammenfassung wie man in formidable die validators benutzt:

http://formidable.typo3.ug/typo3-form-news/news/0018-how-to-use-validators/back/2.html

Veröffentlicht in Allgemeines, Webkram, formidable | Getagged | Kommentieren

formidable Button-Renderlet als Link

formidable-Buttons kann man nicht so ohne weiteres als Link zweckentfremden, nach ein bischen googlen gehts aber doch:

<renderlet:BUTTON name="myLinkButton" label="myLabel">
<custom>
<userobj>
<php>
<![CDATA[
$link = 'onClick="location.href=\'http://my.Link.com\'"';
return $link;
]]>
</php>
</userobj>
</custom>
</renderlet:BUTTON>

Im Prinzip wird dem Button über das custom-Tag ein Javascript untergeschoben, das die Verlinkung übernimmt.

Veröffentlicht in Javascript, Webkram, formidable | Kommentieren

TypoScript-Parameter an formidable weitergeben

formidable kann nicht direkt auf im Typoscript-Setup definierte Werte zugreifen, mit einem Trick klappt es aber doch:

Im Typoscript übergibt man einen wert:

plugin.tx_meinplugin_pi1.testValue = 42

das kann man dann in seinem Frontend-Plugin einlesen:

$this->testValue = $conf['testValue'];

In eine <userobj> im  formidable-XML kann man dann so auf den Wert zugreifen:

$value = $this->_oParent->testValue;

mit $this->_oParent kann man auf alle Variablen des FE-Plugins zugreifen.

Hier ist das originale Post

Veröffentlicht in TypoScript, Webkram, formidable | Kommentieren

Redirect nach erfolgreichem Submit / actionlets

actionlets sind formidable-Objekte, die ausgeführt werden, wenn das Formular erfolgreich validiert. Leider sind sie kaum dokumentiert, hier deshalb die Kurzfassung:

Wenn man folgenden Code innerhalb des <control></control> Blocks im XML plaziert, findet ein redirect statt:

<actionlets>
<actionlet:REDIRECT>
<pageid>350</pageid>
</actionlet:REDIRECT>
</actionlets>

mehr info gibt es hier und hier.

Veröffentlicht in Allgemeines, Webkram, formidable | Getagged , , | Kommentieren

formidable formdata holen

$variable = $this->oDataHandler->_getFormData();
$wert = $variable['name_des_feldes'];
Veröffentlicht in Webkram, formidable, php | Getagged | Kommentieren

Bilder in Templavoila-FCE automatisch skalieren und mit Schlagschatten versehen

Das Problem: Ich möchte in einem Templavoila-FCE Bilder automatisch auf eine von mir festgelegte Größe skalieren und sowohl mit runden Ecken als auch mit Schlagschatten versehen.

Ich erstelle ein FCE mit dem Bild als “Image Field, Fixed W+H”, damit bereitet mir Templavoila die Bildskalierung auf eine fixe Größe vor.

Ich habe auch gleich noch ein nicht gemapptes Textfeld angelegt, mit dem ich die “title” und “alt” Attribute fülle (field_alttext).

Standardmäßig skaliert Templavoila das Bild auf 200×150 Pixel, das ergebnis im Frontend sieht also so aus:

Im XML von Templavoila befindet sich der Typoscript-Code um dieses Bild zu erzeugen (auf den Bleistift neben der oberen Überschrift klicken:

10 = IMAGE
10.file = GIFBUILDER
10.file {
XY = 200,150
10 = IMAGE
10.file.import = uploads/tx_templavoila/
10.file.import.current = 1
10.file.import.listNum = 0
10.file.maxW = 200
10.file.minW = 200
10.file.maxH = 150
10.file.minH = 150
}

diesen erweitern wir jetzt, da wir ja ein Bild erstellen möchten, welches aus folgenden “Ebenen” besteht (von hinten nach vorne):

 

  • Die Schatten-Ebene
  • Die Effekt-Ebene (um den Schatten weichzuzeichnen)
  • Die Bild-Ebene

 

als Maske benutzen wir beim Schatten und beim Bild dasselbe:

 

Das ist das Finale Typoscript (XML des FCE):

10 = IMAGE
10.file = GIFBUILDER
#title/alttext mit Inhalt verknüpfen, title bekommt automatisch den alttext 
10.altText.field = field_alttext
10.file {
#Das endgültige Bild ist 10 Pixel breiter und höher, um Platz für den Schatten zu schaffen
XY = [30.w] + 10,[30.h] + 10
#Hintergrundfarbe
backColor = #FFFFFF
10 = IMAGE
10.file = GIFBUILDER
10.file {
#die gleichen Abmessungen wie das Bild das eingefügt wird
XY = [30.w],[30.h]

#Schattenfarbe
backColor = #888888
}
#die Maske
10.mask = fileadmin/templates/tutorial/mask.gif
#offset, um den Schatten rechts unter dem Bild hervorkucken zu lasen
10.offset = 5,5

#weichzeichnen
20 = EFFECT
20.value = blur=25

#das Bild, skalieren auf feste Größe von 190×140

30 = IMAGE
30.file = GIFBUILDER
30.file {
#Abmessungen vom importierten Bild übernehmen
XY = [10.w],[10.h]
10 = IMAGE
10.file.import = uploads/tx_templavoila/
10.file.import.current = 1
10.file.import.listNum = 0
10.file.maxW = 190
10.file.minW = 190
10.file.maxH = 140
10.file.minH = 140
}
#maske
30.mask = fileadmin/templates/tutorial/mask.gif
#offset
30.offset = 3,3
}

Die Ebenen im einzelnen:

Schatten:
Für den Schatten erzeugen wir ein Gifbuilder-Objekt mit der Schattenfarbe und wenden unsere Maske darauf an:

10 = IMAGE
10.file = GIFBUILDER
10.file {
#die gleichen Abmessungen wie das Bild das eingefügt wird
XY = [30.w],[30.h]
#Schattenfarbe
backColor = #888888
}
#die Maske
10.mask = fileadmin/templates/tutorial/mask.gif
#offset, um den Schatten rechts unter dem Bild hervorkucken zu lasen
10.offset = 5,5

das Ergebnis sieht folgendermaßen aus:

Effekt (Weichzeichner)
Ein Gifbuilder Effekt-Layer, nichts spezielles:

20 = EFFECT
20.value = blur=25

Ergebnis:

Bild:

Als letzes setzen wir unser Bild mit Skalierung und Maske drauf und verpassen ihm ebenfalls einen Offset (weniger als beim Schatten). Der Offset ist deshalb sinnvoll, da der Schatten je nach Offset an allen vier Bildseiten sichtbar sein kann:

30 = IMAGE
30.file = GIFBUILDER
30.file {
#Abmessungen vom importierten Bild übernehmen
XY = [10.w],[10.h]
10 = IMAGE
10.file.import = uploads/tx_templavoila/
10.file.import.current = 1
10.file.import.listNum = 0
10.file.maxW = 190
10.file.minW = 190
10.file.maxH = 140
10.file.minH = 140
}
#maske
30.mask = fileadmin/templates/tutorial/mask.gif
#offset
30.offset = 3,3

Ergebnis:

Hierbei ist man jetzt allerdings festgelegt auf eine Bildgröße. Wenn man die Maske dynamisch erstellt, wie hier vorgestellt, lässt sich dieses FCE auch einfach dynamisieren.

Das komplette XML des FCE könnt ihr hier herunterladen

Der Marienkäfer ist von interfacelift

Veröffentlicht in Grafik, Webkram | Getagged , , , , | 2 Kommentare