Probleme mit FCKEditor und PHPList

Dienstag, Mai 12th, 2009

Die OpenSource Software PHPList eignet sich relativ gut zum schnellen Aussenden von kleinen Newslettern auf Servern mit PHP und MySQL.

Grundsätzlich geht die Installation und Einrichtung relativ zügig vonstatten, allerdings gibt es bei einzelnen Stellen diverse Konfigurationsschwierigkeiten – so sollte u.a. auf die Installations-Dokumentation gehört werden und die Installation von PHPList tatsächlich in das Verzeichnis www.deinedomain.de/lists/ gelegt werden, um Verlinkungsprobleme im Administrationsbereich zu umgehen.

Bei all denjenigen, bei denen unter dem Punk “Nachricht erstellen” (in der englischen Variante unter “send a message”) kein Rich Text Editor (FCKEditor kommt hier zum Einsatz) erscheint, können die folgenden Schritte eine Lösung sein:

1. Im Unterverzeichnis “/admin” in der Datei fckphplist.php die Zeile 589 mit dieser austauschen

// FCKConfig.ProtectedSource.Add( /<s>/g ) ; // ASP style server side code

Evtl. erlaubt die installierte PHP Version “short ASP Tags”, und somit werden hier Fehler geworfen.

2. Im Unterverzeichnis “/admin/FCKEditor/editor” die Datei fckeditor.html bearbeiten, und den Befehl zum Laden des Editor auswechseln, indem Zeile 120 auskommentiert und 119 wieder “einkommentiert” wird:

 // Base configuration file.
LoadScript( '../fckconfig.js' ) ;
// LoadScript( '../../?page=fckphplist&action=js4' ) ;

Fehlermeldungen, die (schön zu Sehen unter Einsatz von Firebug) hervorgerufen werden, lauten zum Beispiel:

FCKConfig.CustomConfigurationsPath is undefined
A.PluginsPath is undefined
FCKConfig.ContextMenu is undefined
C is undefined

PHPList FCKEditor Fehler

via http://forums.phplist.com

Live Streaming Anbieter

Donnerstag, Mai 7th, 2009

Eine günstige Variante, qualitativ (vermeintlich?) hochwertige Live Stream Videos anbieten zu können, scheint durch den neuen Anbieter StreamAPI am Markt angekommen zu sein:

StreamAPI

Beispielrechnung:
1 Stunde Live Stream von z.B. einer Pressekonferenz, eines Workshops oder einer Kundenpräsentation, wie wir es hin und wieder für verschiedene Kunden und Produkte brauchen) mit 1.500 gleichzeitigen Viewers in Full HD Auflösung kostet weniger als unschlagbare 300 Dollar.

Berechnet werden kann der Preis hier.

Wir testen den Dienst direkt beim nächsten Projekt.

via Techcrunch.

Amazon bietet im PartnerNet jetzt auch MP3 Widgets an

Donnerstag, April 16th, 2009

Für den kleinen oder großen Blogger gibt es ja geradezu unzählige Möglichkeiten, mit seinem Geschwafel und hilfreichen Tutorials etc. den ein oder anderen Groschen dazu zu verdienen.

Neu hinzugekommen im Amazon PartnerNet, das ursprünglich hauptsächlich die Möglichkeit bot, Links auf Amazon Artikel (für deren Verkauf dann Provision an den Blogger zurückfloss), ist das MP3 Widget.

Da ich großer Musikfan bin und gerne meine Lieblingstitel und -bands unter die Leute bringe, werde ich das Widget hiermit gleich einmal testen.

Mein Auswahlalbum dazu und passend zu dem großartigen Frühlingsanfang:
The Cat Empire. Two Shoes

(Hier sollte das Amazon MP3 Widget stehen. Scheint ja 1a zu klappen – NOT)

{navtrail} im xtCommerce – Artikeltitel anstelle der Artikelnummer anzeigen

Mittwoch, April 1st, 2009

Um im xtCommerce (xtc) Template die in der Smarty Variable {navtrail} beinhaltete Brotkrumennavigation anzupassen, muss der folgende Schritt unternommen werden:

In der Datei includes/application_top.php befindet sich die folgende Zeile:

$breadcrumb->add($product->getBreadcrumbModel(), xtc_href_link(FILENAME_PRODUCT_INFO, xtc_product_link($product->data['products_id'], $product->data['products_name'])));

die folgendermaßen angepasst werden muss:

$breadcrumb->add($product->data['products_name'], xtc_href_link(FILENAME_PRODUCT_INFO, xtc_product_link($product->data['products_id'], $product->data['products_name'])));

Um das ganze noch ein wenig suchmaschinenoptimierter zu gestalten empfiehlt es sich, in der Datei /lang/german/german.php (und, bei mehrsprachigen Shops, entsprechend in den anderen Sprachdateien und -ordnern) die folgende Anpassung vorzunehmen, um von den unsinnigen Standardwerten “Startseite” und “Katalog” von xtCommerce wegzukommen und die Premium Position doch lieber für eigene, für die Suchmaschinen relevantere Keywords zu nutzen (hier am Beispiel der Palmenoase, einem Onlineshop für mediterrane Pflanzen und Palmen):

define('HEADER_TITLE_TOP', 'Palmenoase');
define('HEADER_TITLE_CATALOG', 'Shop');

Kleiner Aufwand, große Wirkung, wie man in den folgenden Screenshots in der Brotkrumennavigation feststellen kann.

Standardwerte der Brotkrumennavigation in xtCommerce

Verbesserte Brotkrumen Navigation im {navtrail}

Probleme mit Download von dynamisch generierten Dateien im Internet Explorer

Dienstag, März 17th, 2009

Es gibt Dinge, die sich einem einfach regelmäßig wieder in den Weg stellen – so zum Beispiel Probleme mit Downloads von dynamisch generierten Dateien in PHP im Internet Explorer.

Das folgende Fehler PopUp der Internet Explorer 6, 7 oder 8 sind ein immer wiederkehrendes Ärgernis, wenn man versucht, einen Dateidownload mittels PHP zu realisieren:

Fehler beim Herunterladen eines dynamisch generierten Dokuments im IE

Hierbei handelt es sich um ein dynamisch im Memory des Webservers generierten PDF Dokuments, das eigentlich als PDF_Preview.pdf betitelte Datei im Browser ankommen soll (und im Firefox, Safari, Opera und Chrome auch tut).

Zur Erzeugung wird der PDFLib Personalization Server genutzt, und am Ende des ganzen Erzeugungsprozesses steht ein Buffer (hier beispielhaft $pdf_buffer) des kompletten Dokumentes als Variable zur Verfügung.

Was für den Browser jetzt noch passieren muss: Per PHP header() Funktion wird dem Browser mitgeteilt, dass es sich um einen bestimmten Mimetype (ein Tool, um den MIME Type bei Dateiuploads herauszufinden gibt es hier) bzw. Datenstrom handelt (in diesem Fall handelt es sich um ein PDF, dass mit Content-type: application/pdf beschrieben wird). Weiterhin wird definiert, dass es als Dateidownload zur Verfügung gestellt werden soll, und der gewünschte Dateiname wird vom Script übergeben).

Um diesen Dateidownload (auch mit dem Internet Explorer) hinzubekommen, müssen zusätzlich diese zwei weiteren Headerinformationen mit angegeben werden:

header(‘Content-type: application/pdf’)
header(‘Content-Disposition: attachment; filename=”PDF_Preview.pdf”‘);

// Folgende zwei Zeilen sind für den IE wichtig,
// alle anderen Browser brauchen sie nicht
// (stören sich daran aber auch nicht)
header(“Pragma: public”);
header(“Cache-Control: max-age=0″);

echo $pdf_buffer;

Im Vorfeld (auf jeden Fall bevor der Buffer mit echo ausgegeben wird) sollte allerdings in jedem Fall die zu erwartende Dateigröße mittels

$pdf_buffer = PDF_get_buffer($p);
$len = strlen($buf);
header(“Content-Length: $len”);

berechnet und ebenfalls per Header ausgegeben werden.

Vielleicht hilft dieser schnelle Artikel mir selbst auch beim nächsten Auftreten solcher Probleme als Gedächtnisstütze… :)

Webmontag Bielefeld, 16.3.

Montag, März 16th, 2009

Sitze momentan im Nichtschwimmer auf dem aktuellen Webmontag.

Folgende Themen standen bisher auf der Tagesordnung:

1. iPhone Softwareentwicklung. Einige Infos über die verschiedenen Möglichkeiten (iUi, Dashcode, etc). Gehalten von @trimeton

2. Twitter “Overview”. Bin mir immer noch nicht sicher, was ich von dem Quatsch halten soll. Zum Zeitvertreib sicher gut, aber die Zeit hab ich irgendwie kaum…. aber: Alles zum Event gibt es hier, natürlich bei Twitter. Verrückte Welt.

xtCommerce: Template auf UTF-8 umstellen

Montag, März 16th, 2009

Da xtCommerce generell auf iso-latin1 aufbaut und ich diese Kodierung für fehleranfällig und nervig halte (wieso nicht immer utf8? I don’t know!) folgt hier eine schnelle Anleitung, wie man die komplette xtCommerce Shop-Installation auf utf-8 umstellen kann:

Zuerst muss die Datenbank auf utf8 umgestellt werden. Hier beginnen wir mit der Gesamtdatenbank, die mittels
ALTER DATABASE <datenbank>
DEFAULT CHARACTER SET utf8
COLLATE utf8_general_ci; auf UTF8 umgestellt wird. Leider müssen wir das gleiche Prozedere bei sämtlichen dort genutzten Tabellen vollziehen.

Der entsprechende Befehl pro Tabelle lautet
ALTER TABLE <tabelle>
CONVERT TO CHARACTER SET utf8
COLLATE utf8_general_ci;

Für eine relativ standardmässige xtCommerce Installation mit den unzähligen Tabellen lautet die komplette SQL Befehlskette so wie in dieser Datei niedergeschrieben ist (für die schnellen: Runterladen, und copy paste soll helfen).

Danach folgt die Anpassung der Header Ausgaben (generell in der Datei /includes/header.php, etwa Zeile 35), damit im HTML Header korrekterweise <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ausgegeben wird. Im Quelltext steht dort allerdings bereits <meta http-equiv="Content-Type" content="text/html; charset=&lt;?php echo $_SESSION['language_charset']; ?&gt;" /> so dass lediglich der Wert für das Feld language_charset in der ‘languages’ Tabelle auf utf-8 umgestellt werden muss, wie in diesem phpMyAdmin Screenshot zu sehen ist:

Anpassung der Language Kodierung

Zu guter Letzt muss der Datenbankverbindung noch mitgeteilt werden, dass sämtliche Gespräche mit der Datenbank in UTF8 ablaufen. Dies erfolgt in MySQL mit dem Befehl “SET NAMES ‘UTF8′“, das am Besten dort integriert wird, wo die Datenbankverbindung aufgebaut wird, nämlich in der Datei inc/xtc_db_connect.inc.php:

Anpassung der Datenbankverbindungsdatei

Wie man sehen kann steht die mysql_query(); in dem Screenshot in Zeile 26 kurz vor der Auswahl der benötigten Datenbank.

Zum Schluss kann noch auf einige Unzulänglichkeiten beim Editieren von Bestellungen (orders_edit.php) und beim Senden von Nachrichten von der Webseite hingewiesen werden, über die ich momentan noch nicht gestolpert bin und somit auch noch nicht 100% getestet habe.

Google Analytics auf Flashwebseiten nutzen

Sonntag, März 1st, 2009

Für alle die Entwickler, die lieber für bestimmte Einsätze auf Flash / Flex zurückgreifen, habe ich eben im Google Blog (bzw. auf der Analytics Startseite) folgende Informationen über “Google Analytics within Flex/Flash Applications” gefunden, die ich niemandem vorenthalten möchte:

Mittels der Google Analytics AS3-API kann auf alle Features von Google Analytics jetzt direkt aus Flex heraus zugegriffen werden, das Ding nennt sich “gaforFlash”. Getestet hab ich da noch nix, aber nachzulesen ist die Geschichte hier: Google Analytics within Flex/Flash Applications. Ich verabschiede mich kurz in einen spontanen, wohlverdienten Urlaub…..

Xenocode Sandbox-Browser – Finger weg?

Donnerstag, Februar 26th, 2009

Im HighResolution Weblog stand heute Morgen folgendes:

Ich habe heute morgen die IE-Varianten kurz getestet und kann nur ausdrücklich davon abraten, diese Pseudo-Sandbox-Tools zu verwenden. Auf meinem XP Rechner war nach einem einminütigen Test des Sandbox-IE6 mein lokal installierter IE7 unbenutzbar und musste vollständig neu installiert werden (auch ein Reboot zuvor hatte keine Besserung gebracht). Im selben Atemzug, in dem ich das Dilemma bemerkte, flatterten bereits ähnlich klingende Problemmeldungen von Freunden (Jens Grochtdreis, Tom Klingenberg) bei mir ein, leider in beiden Fällen für mich ca. 10min zu spät.

Mein Versuch, dort folgenden Kommentar zu hinterlassen, scheiterte, da meine Adresse (auch frisch extra dafür testweise angelegte) als Spam nicht in die Kommentare gelassen wurde…..

Daher gibts meinen Kommentar dazu jetzt hier:

Ich habe zwar keine Probleme mit den “Sandböxchen” der Firma Xenocode feststellen können (auf meiner Testmaschine unter Parallels auf dem Mac läuft Win2000 und ein IE6, immer noch problemlos), von den bei Microsoft angebotenen virtuellen Maschinen kann ich allerdings auch abraten: Während der Entwicklung diverser Webanwendungen hat der dort verfügbare IE6 Webseiten völlig anders gerendert als die zweite herangezogene, wirkliche Windows Maschine mit dem Internet Explorer (übrigens ähnlich wie beim IETester).

Das von mir benutzte Parallels mit Win2000 / IE hat die Seiten im Übrigen genauso gerendert wie der “real” PC.

Ich befürchte daher, dass man, um die Anwendung ernsthaft in verschiedenen Browsern testen möchte, man besser noch eine alte Kiste mit Windows parat haben sollte…. :(

via Xenocode Sandbox-Browser – Finger weg! – High Resolution Weblog.

Development in verschiedenen Browsern testen

Dienstag, Februar 24th, 2009

Jeder Webentwickler kennt das Problem:

Webseiten sehen in unterschiedlichen Browsern immer etwas anders aus.

Hier könnte der Service der Firma xenocode, einem Anbieter für Virtualisierungslösungen, schon zumindest etwas mehr Komfort mitbringen, denn über Ihre Webseite “Run IE8/7/6, Firefox, Safari, Chrome, and Opera from the web” können die verschiedenen Browser als “Mini System” heruntergeladen und dann auf einer Windows-Maschine getestet werden.

So bekommt jeder Browser (z.B. der als IE8.exe verpackte Internet Explorer 8) seine eigene .exe – Sandbox und kann somit parallel zu anderen Browsern laufen.

Ich als Mac Jünger habs noch nicht getestet (beim Mac zeigt auch der Link schon an, dass es auf “meinem device” nicht funktioniert), aber runterladen (für Parallels und die anderen Rechner im Office) werde ich sämtliche Sandboxen auf jeden Fall :)