php mail und Umlaute in fromName

25. März 2010

Ich hasse Umlaute. Wann immer ich ein MailScript schreibe, kann ich sicher sein, dass früher oder psäter Umlautprobleme auftauchen. Ich. Hasse. Es.

Jedenfalls wollte ich heut mein Script dazu bringen, dass auch Umlaute im Absendernamen in Outlook richtig dargestellt sind. Knappe 3 Stunden hats gedauert, dann hatte ich eine Lösung gefunden, von der ich fast sicher bin, dass es nicht die eleganteste ist, allein schon weil ich von phpmailer Abstand nehmen musste. Aber hier ist sie:

  1. $From = ($_POST['vorname']." ".$_POST['nachname']." <".$_POST['email'].">");
  2. $Subject = "Gewinnspiel Teilnahme";
  3. $header = "MIME-Version: 1.0\r\n";
  4. $header .= "From: =?ISO-8895-15?Q?".imap_8bit($From)." <".$_POST['email']."> ?=\r\n";
  5. $header .= "Subject: =?ISO-8859-15?Q?".imap_8bit($Subject)."?=\r\n";
  6. $to = "chi@ccc.at";
  7. $text = utf8_decode(str_replace("<br>", "\n", $text));
  8. mail($to,$Subject, $text, $header);

typoscript: eigenen gifbuilder header definieren

23. März 2010

Die Überschrift sagts schon. Statt dem css_styled_content header wollte ich einen eigenen bauen mit dem gifbuilder. Daher:

  1. lib.stdheader >
  2. lib.stdheader = COA
  3. lib.stdheader{
  4. wrap = <div class="header">|</div>
  5. if.isTrue.field = header
  6. 10 = IMAGE
  7. 10.alttext.field = header
  8. 10.file = GIFBUILDER
  9. 10.file{
  10. XY = [10.w]+20,20
  11. 10 = TEXT
  12. 10.text.field = header
  13. 10.fontFile = fileadmin/templates/fonts/DejaVuSans.ttf
  14. 10.fontSize = 12
  15. 10.fontColor = #333333
  16. 10.offset = 1,16
  17. }
  18. }

Mit if.isTrue.field sorge ich dafür, dass mir das Bild nur dann angezeigt wird, wenn auch wirklich Text vorhanden ist.

div content mit javascript scrollen

16. März 2010

Designer sind das Böse. Wieder und wieder und wieder kriege ich Vorlagen von Designern/Grafikern für Webseiten und kann mich dann des Eindrucks nicht erwehren, dass die Damen und Herren Designer noch nie in ihrem Leben im Internet waren. Scrollbars sind ein essentieller Bestandteil einer Webseite und ich weiß, der “scheußliche graue Balken” schmerzt das Designerherz, aber Scrollbars sind eine Gegebenheit, an der man nicht rumwerkeln sollte.

Selbstverständlich muss ich genau das trotzdem regelmäßig machen. Wen interessiert Barrierefreiheit, wen interessiert es, ob die User Javascript aktiviert haben oder nicht? Neue Wege zu scrollen müssen her, da ansonsten das ästhetische Empfinden der Designerschaft erheblich gestört würde. Nun gut, ich hab mich damit abgefunden. Mach ich halt Javascript Scrollbars.

Und genau deshalb bin ich heut zufällig auf ein simples aber geniales Javascript gestoßen: Scroll div content with Javascript

Das hat mir ne Menge Arbeit und Sucherei erspart, herzlichen Dank.

Typoscript: PHP Funktion einbinden

10. März 2010

Ich bin gut in PHP und schlecht in Typoscript. Logisch, dass ich jede Möglichkeit nutze, schnödes PHP einzubinden. Allerdings ist die Doku dermaßen spärlich, dass ich bisher keine Möglichkeit gefunden habe, PHP einzubinden. Bis heute. Und deshalb binde ich das im Setup so ein:

  1. includeLibs.lang_redirect = fileadmin/php/redirect.php
  2. [globalVar = GP:loc=1]
  3. page.100= USER
  4. page.100.userFunc = user_301redirect->user_main
  5. [global]

und die PHP Datei sieht so aus:

  1. class user_301redirect {
  2. function user_main(){
  3. header("Location:index.php?id=98&Fsize=".$_GET['Fsize']);
  4. }
  5. }

Typo3 und smoothgallery

05. März 2010

Eine großartige Extension ist die Smoothgallery. Die war sogar für mich, die ich Schwierigkeiten mit der Konfiguration jeder Kleinigkeit im Typo3 habe, sehr einfach zu handhaben. Eine Sache, die mich immer wieder stört bei den Typo3 Foren, Manuals und Hilfethemen: man kriegt zwar vorgekaut, welchen Code man braucht (beispielsweise zur Konfiguration), aber keiner sagt einem, wo der hingehört. Darum ein wichtiges Detail zur Smoothgallery. Mein Config Code sieht so aus:

  1. plugin.tx_rgsmoothgallery.settings = timed:true, delay:4000, showArrows:false, showCarousel:false, embedLinks:false, lightbox:false

Und der kommt nicht ins Template Setup, sondern ins Constants Feld. Und wer sich, so wie ich, darüber wundert, dass die Einstellungen erstmal gar nichts ändern (z.b. änderte sich bei mir die Geschwindigkeit nicht, obwohl ich delay geändert habe): Änderungen werden erst nach einem Löschen des Cache wirksam.