Schnellnavigation:

Kategorien

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

Kopieren Sie diesen Link in Ihren RSS-Reader

RSS 0.91Nachrichten
RSS 2.0Nachrichten

In eigener Sache

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

Ich habe gestern das Heise-Skript »socialshareprivacy« (siehe mehr dazu in meinem Artikel bzw. auf der Originalseite von Heise) in eine TYPO3-Extension eingebaut und ins TER hochgeladen (Downloadlink). Sie heißt einfach socialshareprivacy. Sie ist so aufgebaut, dass

  • bei Neuerungen im Heise-Skript das Skript einfach in der Extension ausgetauscht werden kann
  • notfalls auch über Typoscript eine externe Variante eingebunden werden kann
  • das verwendete jQuery entweder automatisch durch die Extension eingebunden wird (default) oder ein bereits vorhandenes verwendet wird (Konfiguration im Extension Manager). 
  • praktisch alle Konfigurationsmöglichkeiten des Originalskripts über Typoscript möglich sind. 

Zu beachten ist, dass das Skript von Heise nur eine Instanz pro Seite erlaubt, die Extension kann also nur einmal pro Seite eingebunden werden. 

Installation: 

Die Installation ist simpel: einfach im Extension Manager runterladen, installieren und danach zwei Einstellungen tätigen: die Facebook APP-ID eintragen und anklicken, ob jQuery aus der Extension geladen werden soll oder nicht. 

Facebook APP-Id: 

Eine Anleitung wie man an diese ID kommt ist hier zu finden: Hinweis zur Facebook App-ID

Einbinden in eine einzelne Seite: 

Das Plugin wird in die Seite eingebunden wie alle anderen Plugins: einfach als Inhaltselement. Es gibt nichts zu konfigurieren, einbinden reicht. 

Einbinden ins Template: 

Das geht am besten über Typoscript: 

Im klassischen Template-Stil: 

MARKER < plugin.tx_socialshareprivacy_pi1

oder über TemplaVoila: 

lib.myplaceholder < plugin.tx_socialshareprivacy_pi1

Typoscript-Konfiguration: 

In der Extension-Dokumentation ist keine genaue Beschreibung aller Optionen, aber man kann sich einfach die ext_typoscript_setup.txt vornehmen, dort sind alle Optionen mit Beispielinhalten drin. Eine genaue Beschreibung der einzelnen Optionen ist auch auf der Heise-Seite zu finden. Man kann sie sogar von dort entnehmen und nach folgenden Regeln in sein Setup schreiben: 

1. Allgemeine Optionen: 

plugin.tx_socialshareprivacy_pi1.info_link = 

etc. 

2. Facebook-Optionen: 

plugin.tx_socialshareprivacy_pi1.services.facebook.status = on

etc. 

3. Twitter und Google+: 

plugin.tx_socialshareprivacy_pi1.services.twitter.___

plugin.tx_socialshareprivacy_pi1.services.gplus.___

etc. 

Textausgaben

Ich habe die Textausgaben für die Popups nicht ins Typoscript verlegt sondern in eigene Language-Dateien, um eine einfache Mehrsprachigkeit zu ermöglichen (auch wenn das in dem Fall schlicht Quatsch ist ... sehr deutsch, diese Angelegenheit). So können die Texte aber auch einfach über Typoscript geändert werden:

plugin.tx_socialshareprivacy_pi1._LOCAL_LANG.de.txt_help = 

etc. 

Fehler und Verbesserungsvorschläge: 

Bitte nicht einfach behalten sondern an mich senden, entweder per E-Mail oder über das Kontatkformular

 

Kategorien: Extensions/Tipps  Kommentare 6

fUm die Vorschau von Bildern in einer eigenen Extension in einer der zahlreichen Lightboxen zu präsentieren sind ein paar Schritte nötig. Zuerst das Typoscript: 

  1. plugin.tx_myext_pi1 {
  2.   preview {
  3.    file.maxW=170
  4.    imageLinkWrap = 1
  5.    imageLinkWrap {
  6.     enable = 1
  7.     typolink {
  8.      ATagParams = class="lightbox" 
  9.      parameter.cObject = IMG_RESOURCE
  10.      parameter.cObject.file.import.data = TSFE:lastImageInfo|origFile
  11.      parameter.cObject.file.maxW = 700
  12.      parameter.cObject.file.maxH = 700
  13.     }
  14.    }
  15.   }
  16.  }

Dabei sorgt file.maxW für die Breite des Vorschaubildes und parameter.cObject.file.maxW für die Breite des Bildes in der Lightbox. Der Eintrag bei ATagParams variiert nach verwendeter Lightbox. Ich verwende hier die Colorbox, die eine Klasse mit dem Namen "lightbox" wünscht. 

Im PHP der Extension muss dieses Typoscript passend verwendet und ergänzt werden: 

  1. // $url = Pfad zur Bilddatei - aus der DB
  2. // $title = Titel / Kurzbeschreibung des Bildes, aus DB;
  3. $lConf = $this->conf['preview.'];
  4. $lConf['file'] = $url;
  5. $lConf['imageLinkWrap.']['typolink.']['title'] = $title;
  6. // Zuweisen zum Marker:
  7. $marker['###IMAGE###'] = $this->cObj->IMAGE($lConf);
  8. // etc.
  9.  

Kein großer Aufwand mehr im PHP ... Man übernimmt sinnvollerweise zuerst die Konfiguration in eine Variable ($lConf) und erweitert dann diese Konfiguration mit $lConf['file'] um den Pfad auf das Bild (in der Regel wohl aus der DB ausgelesen). Der Rest ist optional – wobei der title natürlich noch sinnvoll ist, da er in der Lightbox gezeigt wird. 

Damit ist sichergestellt, dass sowohl die direkt gezeigten Vorschaubilder wie auch die größeren Bilder in der Lightbox eine vorgegebene Maximalgröße bekommen. Weitere Attribute können natürlich nach Belieben entweder im Typoscript oder im PHP hinzugefügt werden.