<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Projekt Schwarz &#187; Webanwendungen</title>
	<atom:link href="http://projekt-schwarz.de/kategorie/software/webanwendungen/feed/" rel="self" type="application/rss+xml" />
	<link>http://projekt-schwarz.de</link>
	<description>Webdesign, Web 2.0 und sonstige gestalterische Dinge</description>
	<lastBuildDate>Wed, 01 Dec 2010 14:31:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.3</generator>
		<item>
		<title>Piwik</title>
		<link>http://projekt-schwarz.de/180/piwik/</link>
		<comments>http://projekt-schwarz.de/180/piwik/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 12:43:09 +0000</pubDate>
		<dc:creator>Thomas Probach</dc:creator>
				<category><![CDATA[Webanwendungen]]></category>
		<category><![CDATA[Datenschutz]]></category>
		<category><![CDATA[Diagramm]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<category><![CDATA[Piwik]]></category>
		<category><![CDATA[Statistik]]></category>

		<guid isPermaLink="false">http://projekt-schwarz.de/?p=180</guid>
		<description><![CDATA[Statistiken sind für professionelle Seitenbetreiber unerlässlich. Doch auch ohne professionellen Anspruch ist es immer interessant zu sehen, woher die eigenen Besucher kommen, was sie gesucht haben und wohin sie wieder entschwunden sind. Die Nutzung von Google Analytics liegt hier nahe, ist doch die Statistik äußerst umfangreich und bietet dadurch einen guten Einblick in das Verhalten [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_182" class="wp-caption alignright" style="width: 183px"><img src="http://projekt-schwarz.de/wp-content/uploads/2010/08/piwik-logo.png" alt="" title="Piwik Logo" width="173" height="73" class="size-full wp-image-182" /><p class="wp-caption-text">Piwik Logo</p></div>
<p>Statistiken sind für professionelle Seitenbetreiber unerlässlich. Doch auch ohne professionellen Anspruch ist es immer interessant zu sehen, woher die eigenen Besucher kommen, was sie gesucht haben und wohin sie wieder entschwunden sind. Die Nutzung von Google Analytics liegt hier nahe, ist doch die Statistik äußerst umfangreich und bietet dadurch einen guten Einblick in das Verhalten der Nutzer. Doch selbst auf <a href="http://de.wikipedia.org/wiki/Google_Analytics#Datenschutz_von_Benutzerprofilen">Wikipedia</a>  finden sich die Einwände gegen den Einsatz von Google Analytics &#8211; wegen des deutschen Datenschutzgesetzes. Zudem ist man von Google abhängig und nicht wenige Seiten haben erhöhte Ladezeiten durch den Einsatz von Googles Statistiktool.<br />
<span id="more-180"></span><br />
Eine gute Alternative ist hier <a href="http://piwik.org/">Piwik</a>, ein Open Source Statistiksystem das sich im Funktionsumfang mit Google Analytics messen kann. Es ist zudem in der Lage mit nur einer<br />
Installation mehr als nur eine Seite zu überwachen. Die Einbindung von Piwik in Seiten erfolgt ebenso einfach wie bei Google: Einfach den vom Piwik generierten Code in den HTML-Code der Seite einfügen und schon werden die Besucher gezählt. Zwar ist auch Piwik nicht 100%ig rechtskonform, durch das Aktivieren des in der aktuellen Version bereits enthaltenen Plugins <strong>AnonymizeIP</strong> kann aber auch dieses Problem behoben werden. </p>
<p>Piwik bietet die Möglichkeit das sogenannte <em>Dashboard</em>, die Startseite für jede getrackte Internetseite, mit Widgets den eigenen Wünschen anzupassen. Wer sich nicht dafür interessiert, aus welchem Land die eigenen Besucher stammen kann diese Einblendung einfach abschalten und bei Bedarf später direkt über das Menü auswählen. Neben den üblichen Informationen wie den Seiten von denen Besucher auf die eigene Seite verwiesen werden, die eingegebenen Suchbegriffe bei Google und anderen Suchmaschinen gibt es natürlich aus ausführliche Statistiken über die Dauer des Aufenthalts und die allgemeine Entwicklung der Besucherzahlen. Die alles ist über schöne Flash-Diagramme realisiert und natürlich lässt sich der Zeitraum für den die Statistiken angezeigt werden auswählen.</p>
<p>Piwik ist somit eine gute Möglichkeit ausführliche Statistiken zu erhalten und trotzdem dem deutschen Datenschutzgesetz zu entsprechen. Gerade für alle die mehr als nur einen Internetauftritt besitzen ist es die beste Möglichkeit alle Besucher im Blick zu haben ohne andere Statistik-Tools für jede Seite erneut installieren zu müssen. </p>
<p><a href="http://piwik.org" class="externallink">Piwik<a></p>
]]></content:encoded>
			<wfw:commentRss>http://projekt-schwarz.de/180/piwik/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>bbPress</title>
		<link>http://projekt-schwarz.de/171/bbpress/</link>
		<comments>http://projekt-schwarz.de/171/bbpress/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 07:12:15 +0000</pubDate>
		<dc:creator>Thomas Probach</dc:creator>
				<category><![CDATA[Webanwendungen]]></category>
		<category><![CDATA[bbPress]]></category>
		<category><![CDATA[Forensystem]]></category>
		<category><![CDATA[Forum]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[phpBB]]></category>
		<category><![CDATA[phpBB3]]></category>

		<guid isPermaLink="false">http://projekt-schwarz.de/?p=171</guid>
		<description><![CDATA[Ein Forensystem sollte in den meisten Fällen einen recht guten Funktionsumfang haben, BB-Code unterstützen und viele Werkzeuge für eine gute Administration und Moderation besitzen. Das alles trifft auf bbPress nicht zu, es ist ein extrem schlankes Forensystem das auf Schnörkel wie das Aufteilen von Threads, ein Moderationsprotokoll, Geburtstagserinnerungen und selbst auf die allseits bekannten BB-Code-Buttons [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_176" class="wp-caption alignright" style="width: 191px"><img src="http://projekt-schwarz.de/wp-content/uploads/2010/07/bbpress-logo.png" alt="" title="bbPress Logo" width="181" height="52" class="size-full wp-image-176" /><p class="wp-caption-text">bbPress Logo</p></div>
<p>Ein Forensystem sollte in den meisten Fällen einen recht guten Funktionsumfang haben, BB-Code unterstützen und viele Werkzeuge für eine gute Administration und Moderation besitzen. Das alles trifft auf bbPress nicht zu, es ist ein extrem schlankes Forensystem das auf Schnörkel wie das Aufteilen von Threads, ein Moderationsprotokoll, Geburtstagserinnerungen und selbst auf die allseits bekannten BB-Code-Buttons verzichtet. Wozu dann dieser Artikel? Nun, in der Einfachheit liegen auch gewisse Vorteile.<br />
<span id="more-171"></span><br />
Im Grunde ging es darum, dass ich in ein bestehendes Projekt ein Forensystem integrieren wollte. Das Projekt baut auf keinem bekannten Content Management System auf, ist also eine komplette Eigenentwicklung. Die Integration von größeren Forensystemen wie etwa dem phpBB3 wäre enorm aufwendig geworden und große Ansprüche habe ich in diesem Fall nicht, das Forum ist nur eine kleine Zugabe für die Nutzer der Seite: Kategorien, Threads, Posts &#8211; mehr braucht es nicht. Natürlich könnte man ein solches System auch selbst programmieren, das wäre allerdings doch erheblicher Aufwand den ich mir sparen wollte. Also habe ich mir den Aufbau von bbPress genauer vorgenommen und habe dann angefangen eine Integration zu starten. Bitte beachtet, dass in den gezeigten Codebeispielen die Variablen an euer System angepasst werden müssen. Ich übernehme natürlich keine Haftung für Schäden an Datenbanken, Dateien oder Ausfälle eurer Seite. Die Devise lautet: Backup! Backup! Backup!</p>
<p><strong>Passwortprobleme</strong><br />
Das erste Problem ist, dass in meiner Eigenentwicklung die Zugangsdaten als simpler md5-Hash gespeichert sind, bbPress diese allerdings mit einem eigenen System verschlüsselt. Abhilfe schafft hier das Plugin <a href="http://bbpress.org/plugins/topic/md5-insecurity-for-bbpress/">MD5 insecurity for bbPress</a>. Dadurch ist es möglich Zugangsdaten auch als md5 zu speichern. Nun musste ich nur noch die bestehenden Benutzer meiner Seite auslesen und in die Datenbank von bbPress kopieren. </p>
<p><strong>Registrierung</strong><br />
Nun ein neues Theme für bbPress angelegt und die Stellen gesucht, an denen auf die Registrierung verwiesen wird. Dort habe ich nun einfach den Link geändert und auf die Registrierung meiner eigentlichen Seite verwiesen. Zur Sicherheit dann noch in der register.php von bbPress eine Weiterleitung auf meine eigentliche Registrierung eingefügt.</p>
<pre>
<code>header("Location: /meine-registrierung.php");
exit;</code>
</pre>
<p>Nun habe ich mein Script für die Registrierung angepasst, damit beim Anlegen eines neuen Benutzers dieser auch gleich in der Datenbank des Forums angelegt wird. Da ich natürlich prüfe ob die angegebene E-Mailadresse korrekt ist wird der Benutzerstatus für das Forum zunächst auf inaktiv gesetzt. Dies wird dann später behoben.</p>
<pre>
<code>mysql_query("INSERT INTO bb_users
	VALUES (
	'" .  $new_user_id . "',
	'" .  $_POST['username'] . "',
	'" .  md5($_POST['password']) . "',
	'" .  strtolower($_POST['username']) . "',
	'" .  strtolower($_POST['email']) . "',
	'',
	'',
	'0',
	'" .  $_POST['username'] . "')");

mysql_query("INSERT INTO bb_usermeta
	VALUES (
	'',
	'" .  $new_user_id . "',
	'bb_capabilities',
	'a:1:{s:8:"inactive";b:1;}')")</code>
</pre>
<p>Nun noch in das Script um die E-Mailadresse zu überprüfen die Freischaltung des Benutzers im Forum einbauen. Schon sollten neue Benutzer automatisch auch im Forum registriert sein und sich mit den gleichen Zugangsdaten anmelden können.</p>
<pre>
<code>mysql_query("UPDATE bb_usermeta
	SET meta_value = 'a:1:{s:6:"member";b:1;}'
	WHERE user_id = '" . $this_user_id . "'
	AND meta_key = 'bb_capabilities'
	LIMIT 1");</code>
</pre>
<p><strong>Passwort ändern</strong><br />
Der letzte wichtige Schritt ist bei Änderungen des Passworts auf der eigentlichen Seite. Hier muss natürlich auch das Passwort im Forum geändert werden. </p>
<pre>
<code>mysql_query("UPDATE bb_users
	SET user_pass = '" .  md5($_POST['password']) . "'
	WHERE ID = '" . $this_user_id . "'
	LIMIT 1");</code>
</pre>
<p>Im letzten Schritt sollte im Theme des Forums nun auch jeglicher Verweis auf die Benutzerprofile entfernt werden, denn dadurch könnte der Benutzer sein Passwort im Forum ändern und hätte dann das unerwünschte Resultat, dass die Zugangsdaten sich für die eigentliche Seite und das Forum unterscheiden. Dazu habe ich in dem Templates alle Verweise auf Benutzerprofile geändert um sie auf meine eigenen Profile umzuleiten. Hier ist etwas Handarbeit angesagt, dann um an Informationen wie den Benutzernamen ohne Link zu gelangen muss man sich durch den Code von bbPress wühlen. Dieser ist aber recht simpel aufgebaut. </p>
<p>Wichtig ist hier insbesondere die Anpassung der Theme-Datei &#8220;post.php&#8221;. Einige wichtige Befehle für Benutzerdaten sind:</p>
<pre>
<code>get_post_author_id( $post_id ) /* ID des Post-Autors */
get_post_author( $post_id ) /* Name des Post-Autors */
get_post_author_title( $post_id ) /* Rang / Titel des Autors ohne Link */</code>
</pre>
<p>Um sicher zu gehen, dass wirklich keine Änderungen an den Benutzerdaten über das Forum vorgenommen habe ich die profile.php im Hauptverzeichnis von bbPress noch dazu veranlasst Benutzer auf die Account-Seite meines Hauptsystems umzuleiten.</p>
<pre>
<code>header("Location: /mein-account.php");
exit;</code>
</pre>
<p>Zuletzt noch im Template login.php den Bereich <em>Password Recovery</em> löschen, denn sonst entstehen auch hier Probleme mit unterschiedlichen Zugangsdaten. Natürlich muss bei Passwortänderungen über ein ähnliches System auf der Hauptseite auch das Passwort im Forum geändert werden.</p>
<p>Das waren auch schon die wichtigsten Änderungen. Natürlich kann man über das Template-System noch allerlei Anpassungen vornehmen und selbstverständlich muss man auch in die Gestaltung des Forums noch etwas Zeit investieren. Trotzdem habe ich für die vollständige Anpassung meiner Seite (inklusive des Designs) nur drei bis vier Stunden gebraucht, schwer vorstellbar in der gleichen Zeit ein ähnlich gutes, eigenes Forensystem zu schreiben oder eines der großen Systeme so mit einer anderen Seite zu verbinden. Wer für seine Hauptseite WordPress einsetzt kann sich übrigens glücklich schätzen: WordPress und bbPress arbeiten perfekt zusammen und eine Integration ist ohne die oben genannten Änderungen möglich.</p>
<p>Angemerken muss ich noch, dass sich bbPress über einfach zu installierende Plugins deutlich erweitern lässt. BB-Code, Signaturen und ähnliche Dinge lassen sich nachrüsten, auch wenn ich von der Qualität einiger Plugins nicht wirklich überzeugt bin.</p>
<p><a href="http://bbpress.de" class="externallink">bbPress Deutschland</a></p>
<p><a href="http://bbpress.org/plugins/topic/md5-insecurity-for-bbpress/" class="externallink">MD5 insecurity for bbPress</a></p>
]]></content:encoded>
			<wfw:commentRss>http://projekt-schwarz.de/171/bbpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mantis Bug Tracker</title>
		<link>http://projekt-schwarz.de/103/mantis-bug-tracker/</link>
		<comments>http://projekt-schwarz.de/103/mantis-bug-tracker/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 17:25:29 +0000</pubDate>
		<dc:creator>Thomas Probach</dc:creator>
				<category><![CDATA[Webanwendungen]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[Bug Tracker]]></category>
		<category><![CDATA[Bugtracker]]></category>
		<category><![CDATA[Fehler]]></category>
		<category><![CDATA[Mantis]]></category>

		<guid isPermaLink="false">http://projekt-schwarz.de/?p=103</guid>
		<description><![CDATA[Viele werden das Problem kennen: Man betreut mehrere (Kunden-)Projekte, hat selbst Ideen oder bekommt per E-Mail Wünsche und Fehler meldet und muss diese dann möglichst im Kopf behalten oder der prall gefüllten Mailbox wiederfinden. Eine gute Lösung ist hier der Einsatz eines Bugtrackers in den sowohl Fehler als auch Wünsche eingetragen werden und dann nach [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_106" class="wp-caption alignright" style="width: 252px"><img src="http://projekt-schwarz.de/wp-content/uploads/2010/07/mantis_logo.gif" alt="" title="Mantis Logo" width="242" height="102" class="size-full wp-image-106" /><p class="wp-caption-text">Mantis Logo</p></div>
<p>Viele werden das Problem kennen: Man betreut mehrere (Kunden-)Projekte, hat selbst Ideen oder bekommt per E-Mail Wünsche und Fehler meldet und muss diese dann möglichst im Kopf behalten oder der prall gefüllten Mailbox wiederfinden. Eine gute Lösung ist hier der Einsatz eines Bugtrackers in den sowohl Fehler als auch Wünsche eingetragen werden und dann nach und nach abgearbeitet werden können. Wer ordentlich mit dem Bugtracker arbeitet der hat nicht nur selbst eine saubere To-Do-Liste sondern kann auch Kunden und Nutzern über den Bugtracker signalisieren welche Fehler bereits bekannt sind und welche evtl. bereits behoben aber noch nicht hochgeladen sind.<br />
<span id="more-103"></span><br />
Allerdings hat sich die Suche nach einem anständigen PHP-Bugtracker für mich ziemlich schwierig gestaltet. Viele Bugtracking-Anwendungen laufen nicht auf Basis von PHP, etwa das recht bekannte <a href="http://www.bugzilla.org/">Bugzilla</a> das nur auf Perl läuft oder <a href="http://roundup.sourceforge.net/">Roundup</a> und <a href="http://trac.edgewall.org/">Trac</a> die Python nutzen. Was mir auf der Suche nach einem Bugtracker auf PHP-Basis alles untergekommen ist trotz teilweise jeder Beschreibung. Der größte Schock war ein Bugtracker der sich überhaupt nicht installieren lies &#8211; immerhin sind register_globals auf meinem Server &#8211; wie auf jedem anständigen Server &#8211; ausgeschaltet. Ob das nun Selbstironie sein sollte oder einfach ein Anfängerprojekt war habe ich nicht weiter hinterfragt. Letztendlich blieben nur <a href="http://flyspray.org/">Flyspray</a> und <a href="http://www.mantisbt.org/">Mantis</a>. Flyspray darf hier nicht ganz totgeschwiegen werden, ist es doch ein recht solider Bugtracker, allerdings haben mir das Projekthandling und auch die Oberfläche nicht wirklich zugesagt. Bleibt Mantis.</p>
<p>Mantis ist im Grunde das was ich benötige: Ein solider, funktionaler Bugtracker mit eingängiger Oberfläche und der Fähigkeit mehrere Projekte zu handhaben. Insbesondere das Projetkhandling finde ich gelungen, können Projekte als &#8220;privat&#8221; markiert werden und sind somit nur für Benutzer sichtbar die dem Projekt auch zugeordnet sind. Dadurch kann man Kunden ihre Projekte direkt zugänglich machen ohne dass jeder Kunde weiß was in den Projekten anderer Kunden an Anfragen und Fehlern vorliegt. Zwar sind insbesondere die Projekteinstellungen anfangs etwas unübersichtlich und viele Einstellungen von Mantis lassen sich nur über eine PHP-Datei ändern, nach etwas Einarbeitungszeit geht dies aber recht gut von der Hand. Fehler können mit allen nötigen Informationen versehen werden, etwa ob diese reproduzierbar sind und wie diese reproduziert werden können. Zusätzlich ist es möglich Dateien anzuhängen was sich insbesondere bei Darstellungsfehlern anbietet aber auch bei der Arbeit mit mehreren Mitarbeitern an einem Projekt. Einträge in den Bugtracker können natürlich kommentiert werden, so dass bei Bedarf auch ein Dialog mit dem Reporter entstehen kann um den Fehler besser finden zu können. Kritisieren muss ich lediglich die Möglichkeit Mantis an das eigene Corporate Design anzupassen. Reine HTML-Templates oder gar verschiedene Themes fehlen derzeit leider vollständig. Entsprechend ist die Oberfläche von Mantis sehr prakmatisch oder man muss sich tief in den Code einarbeiten um komplexere Anpassungen vorzunehmen. Trotzdem bin ich mit Mantis sehr zufrieden und kann es nur weiterempfehlen. </p>
<p><a href="http://www.mantisbt.org/" class="externallink">Mantis Bug Tracker</a></p>
]]></content:encoded>
			<wfw:commentRss>http://projekt-schwarz.de/103/mantis-bug-tracker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

