Showing posts with label Web. Show all posts
Showing posts with label Web. Show all posts

January 8, 2012

How-to create individual HTML mass mailings


HTML email example
You need to create individual smart looking invitation emails e.g. for wedding or birthday or want to create an individual mass mailing, but you don´t have a newsletter server neither want to pay for a service offering such a solution online?

Solution described here requires only some knowledge of HTML and CSS. But you have to notice that creating an html email can be a very hard work to get it working on most email clients. Some popular clients like GMail or Outlook have lack of support for several CSS definitions. Though there are several guidelines that help to achieve cross-email client support. So if your layout isn´t too wicked it won´t be magic to create an individual mass mailing.

January 11, 2010

Drupal: Benachrichtigung wird nur angemeldeten Benutzer angezeigt

Diese Phänomen stellte sich mir vor einger Zeit. Für angemeldete Benutzer, egal welcher Gruppe sie zugeordnet waren, wurden die Benachtigungen des Drupal Benachrichtigungssystems angezeigt. Allerdings tauchten diese unverständlicherweise für unangemeldete Besucher nicht auf.


Nach stundenlangem Debuggen und Suchen im Netz fand ich dann eine triviale Lösung. Drupal erwartet einen Benutzer mit der uid 0 in seiner User-Datenbank. Anscheinend wird die Benutzer-Session von anonymen Besucher auf diesen Datensatz referenziert. Warum versteh ich zwar immer noch nicht, aber durch eine update-Funktion, die diesen Datensatz (User) anlegt, war das Problem gelöst.

November 25, 2009

(English) Wordpress Plugin: Download Counter Visualization

Widget Chart example
Widget Chart example

last update: 2010-04-14

This plugin adds a widget to display download statistics based on the Download Counter plugin on your site. The sidebar widget will show a highly configurable chart based on the Google Chart API. Furthermore it offers a dashboard widget that summarizes your downloads, to get information quick at a glance.

The plugin supports following chart types:
  • Bar (horizontal)
  • Pie
  • Pie 3D

You can include a chart of your downloads on a page or in a post using the downloadcounterchart-shortcut. Of course a download chart is includable in your theme. See extended documentation for detailed explanations for that.

July 6, 2009

REST-Anwendungen mit Spring 3.0

Die Interoperabilität zwischen heterogenen Softwaressystemen ist eine interessante Aufgabe. Zur Realisierung stehen heutzutage Web-Services über SOAP oder die Verwendung von REST zur Verfügung. Web-Services über SOAP sind unabhängig vom Übertragungsprotokoll und damit flexibler als REST, wobei HTTP verwendet wird. Außerdem sind für Web-Services ausführliche Definitionen der Schnittstellen (WSDL) und beim Austausch von Daten ein großer Anteil von Verwaltungsinformationen innerhalb der ausgetauschten XML-Nachrichten erforderlich. Das hat auch alles seine Vorteile, aber für eine einfache Anwendung, die lediglich Dienste/Informationen für andere Software zur Verfügung stellen möchte, scheint derzeit mit REST und der Verwendung des verbreiteten HTTP der pragmatischere Ansatz vorzuliegen.

In diesem Beitrag soll es aber nicht über die Unterschiede oder Vor- und Nachteile von Web-Services über SOAP gegenüber REST gehen, sondern die einfache Implementierung von Funktionalität über REST mit Spring 3.0 aufgezeigt werden. Anzumerken in diesem Zusammenhang sei noch, dass zum jetzigen Zeitpunkt Spring 3.0 noch nicht fertiggestellt ist und der Milestone 3 Verwendung findet. Allerdings sollte sich an der Anwendung nichts Grundlegendes ändern, da das Release von Spring 3.0 für das zweite Halbjahr 2009 angekündigt ist.

Zur Demonstration zeige ich in diesem und den folgenen Beiträgen die Implementierung einer rudimentären Webanwendung mit Sping MVC. Diese soll lediglich eine einfaches Ticketssystem abbilden, wobei lediglich Tickets angezeigt und die CRUD-Operationen unterstützt werden.

July 26, 2008

Überschrift des Related-Post Plugins ändern

Das Related-Post Wordpress Plugin liefert zusätzliche Informationen für einen Beitrag. Allerdings kann der durch das Plugin erzeugte HMTL-Code nur durch eine Änderung am Plugin selber angepasst werden. Allerdings besteht eine weitere Möglichkeit das Rendering anzupassen: Reguläre Ausdrücke. Der folgende Code-Schnipsel zeigt die Veränderung der Überschrift, indem einfach das HTML-Markup darum ausgetauscht wird.
$related = wp_get_related_posts();

$find = '/<h3>(.*)<\/h3>(.*)/i';
$replace = '<h4 class="highlighted">$1</h4>$2';
echo preg_replace($find, $replace, $related);
The related posts plugin of wordpress generates nice additional information for a post. But to customize the generated HTML code you have to change the plugin code. Another solution is using a regular expression. Following this approach it is very easy to customize the header generated by the plugin. Here is the according PHP code snippet.
$related = wp_get_related_posts();

$find = '/<h3>(.*)<\/h3>(.*)/i';
$replace = '<h4 class="highlighted">$1</h4>$2';
echo preg_replace($find, $replace, $related);

It simply extract the header text and wrap it into other HTML tags.

March 29, 2008

Diagramme online erzeugen (Google Charts)

In der letzten Wochen stieß ich auf die Google Chart API, wodurch sich einfach, schnell und ohne zusätzliche Frameworks Diagramme erzeugen lassen. Dies kann mitunter für die eigene Webseite hilfreich sein, um beliebige Daten grafisch zu präsentieren. Die angebotenen Möglichkeiten sind durchaus umfangreich, da die API ebenso von Google Analytics verwendet wird.

Nachfolgend ist ein Beispiel eines durch die API erzeugtes Diagramm dargestellt.
Downloadstatistik-Diagramm mit Google Chart generiert

Die Anfrage dazu sieht folgendermaßen aus:
http://chart.apis.google.com/chart?cht=p3&chd=t:40,12,4,4
&chs=550x150&chl=Diplomarbeit|JSF-Cartridge|BibTeX_Diploma|BibTeX_QM-Part
&chtt=Download Statistics

Zur detaillierteren Beurteilung der Fähigkeiten der API habe ich ein kleines Wordpress Plugin geschrieben, welches in der Wordpress Sitebar eine Statistik der Downloads auf der Webseite darstellt. Das Ergebnis ist in der rechten Spalte zu sehen. Dabei greift das Plugin auf die Daten des Download-Verwaltungsplugins Download Counter zurück.

November 30, 2007

Tools für (Web-)Entwickler: Firefox Add-ons

Geeignete Werkzeuge können die Entwicklung und das Testen von Webanwendungen erheblich erleichtern. Nachfolgend eine kurze Aufzählung von Add-ons, die jeder Entwickler installiert haben sollte:

Firebug

Schon lange kein Geheimtipp mehr, dient dieses Tool zum Debugging von JavaScript. Vor allem untertützt es bei der Überprüfung von AJAX-Funktionen, da es XMLHttpRequests anzeigen kann und zum Profiling von JavaScript geeignet ist. Daneben bietet Firebug ebenso Hilfestellung beim Debugging von XHTML und CSS.

Web Developer

Wie der Name schon sagt dient dieses Add-on dazu, die Erstellung von Webanwendungen zu erleichtern. Ebenso wie Firebug kann der XHTML-Code sowie das dazugehörige CSS inspiziert werden. Allerdings bietet es zusätzliche Funktionen, wie die Deaktivierung der Stylesheets oder JavaScript. Es können Webseiten und CSS validiert werden, Accessibility Tests angestoßen oder die Ansicht im PDA simuliert werden.

Selenium IDE

Der Test von Webseiten war bislang ein schwieriger Teil. Mittels Selenium gehört dies der Vergangenheit an, da Testszenarien einfach einmalig mit allen Klicks und Eingaben aufgenommen werden können und dann beliebig oft wiederholbar sind. So ist die Erstellung von Testfällen sehr einfach. Bezüglich der Continuous Integration sollen die Selenium Testfälle auch mit Ant ausführbar sein, was ich bisher noch nicht getestet habe.

November 18, 2007

Google mag Wordpress

Seitdem ich Wordpress für diese Seite verwende, stiegen die Page-Impressionen deutlich. Das bedeutet wohl, dass die vorherige selbst geskriptete Seite nicht gerade für Suchmaschinen optimiert war :)

Die Statistik zeigt ein deutliches Ansteigen der Besucher nach Installation von Wordpress Mitte September. Allerdings wird das Ergebnis durch die neuen Blog-Einträge verfälscht.

Website-Statistik