<?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>pro-web.at</title>
	<atom:link href="http://pro-web.at/feed" rel="self" type="application/rss+xml" />
	<link>http://pro-web.at</link>
	<description></description>
	<lastBuildDate>Sat, 06 Mar 2010 13:40:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Chinesischer Pinyin und Deutsche Tastatur unter Windows &#8211; Chinese Pinyin and German Keyboard</title>
		<link>http://pro-web.at/archives/chinesischer-pinyin-und-deutsche-tastatur-unter-windows-chinese-pinyin-and-german-keyboard</link>
		<comments>http://pro-web.at/archives/chinesischer-pinyin-und-deutsche-tastatur-unter-windows-chinese-pinyin-and-german-keyboard#comments</comments>
		<pubDate>Sat, 06 Mar 2010 13:40:33 +0000</pubDate>
		<dc:creator>Daniel Prieler</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://pro-web.at/?p=201</guid>
		<description><![CDATA[Ich habe die Idee von Jason Frazier aufgegriffen und eine Deutsche Tastatur mit Pinyin Eingabemöglichkeit erstellt.
Durch drücken einer der Nummern-Tasten 1-4 (für die Laute 1-4) und eines Buchstaben (a, e, i, o, u, ü) wird daraus der Pinyin Laut
Durch drücken der Nummern-Taste 2 mal, erhält man die Zahl.
=> 1 und e = ē
=> 2 und [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>Ich habe die <a href="http://www.neveroddoreven.info/USPinyin/" target="_blank">Idee</a> von Jason Frazier aufgegriffen und eine Deutsche Tastatur mit Pinyin Eingabemöglichkeit erstellt.</p>
<p>Durch drücken einer der Nummern-Tasten 1-4 (für die Laute 1-4) und eines Buchstaben (a, e, i, o, u, ü) wird daraus der Pinyin Laut<br />
Durch drücken der Nummern-Taste 2 mal, erhält man die Zahl.</p>
<p>=> 1 und e = ē<br />
=> 2 und a = á<br />
=> 3 und o = ǒ<br />
=> 4 und i = ì<br />
=> 1 und 1 = 1<br />
&#8230;</p>
<p>Die Tastatur muss zuerst installiert werden:<br />
<a href="/blog-content/chinesische_tastatur/german_pinyin.zip">Download Pinyin Tastatur Treiber</a><br />
Für ein Kurze Anleitung wie man die Tastatur dann auswählt möcht ich auf die <a href="http://www.neveroddoreven.info/USPinyin/" target="_blank">Seite von Jason Frazier</a> verweisen.</p>
<p>Alternativ kann auch das Keyboard-Layout in den &#8220;Microsoft Keyboard Layout Creator&#8221; geladen werden und von dort installiert werden.<br />
<a href="/blog-content/chinesische_tastatur/german_pinyin.klc">Download Pinyin Keyboard Layout</a></p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://pro-web.at/archives/chinesischer-pinyin-und-deutsche-tastatur-unter-windows-chinese-pinyin-and-german-keyboard/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JavaFX Games: Q*Bert (QBert) and Sokoban</title>
		<link>http://pro-web.at/archives/javafx-games-qbert-and-sokoban</link>
		<comments>http://pro-web.at/archives/javafx-games-qbert-and-sokoban#comments</comments>
		<pubDate>Wed, 23 Dec 2009 10:31:27 +0000</pubDate>
		<dc:creator>Daniel Prieler</dc:creator>
				<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://pro-web.at/?p=178</guid>
		<description><![CDATA[I just attended a JavaFX university class, which got me motivated to create 2 JavaFX Games:
Q*Bert
Sokoban
(use page-up / down to change levels, space to restart level)
If someone would like to see the source-code, please leave a comment. :)


No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>I just attended a JavaFX university class, which got me motivated to create 2 JavaFX Games:</p>
<p><a href="/blog-content/games/qbert/" target="_blank">Q*Bert</a></p>
<p><a href="/blog-content/games/sokoban/" target="_blank">Sokoban</a><br />
(use page-up / down to change levels, space to restart level)</p>
<p>If someone would like to see the source-code, please leave a comment. :)</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://pro-web.at/archives/javafx-games-qbert-and-sokoban/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Facebook Connect: Display login button only when not connected to site</title>
		<link>http://pro-web.at/archives/facebook-connect-display-login-button-only-when-not-connected-to-site</link>
		<comments>http://pro-web.at/archives/facebook-connect-display-login-button-only-when-not-connected-to-site#comments</comments>
		<pubDate>Wed, 23 Dec 2009 09:41:12 +0000</pubDate>
		<dc:creator>Daniel Prieler</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[Facebook Connect]]></category>

		<guid isPermaLink="false">http://pro-web.at/?p=163</guid>
		<description><![CDATA[Currently i&#8217;m testing the features of Facebook Connect and i ran into troubles:

how to display the login button only if a user has not connected
how to display the image only if a user has connected

My simplest solution was to add some custom css classes:

fb-connecting: when the status of facebook connect is not known. e.g. display [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>Currently i&#8217;m testing the features of Facebook Connect and i ran into troubles:</p>
<ul>
<li>how to display the login button only if a user has not connected</li>
<li>how to display the image only if a user has connected</li>
</ul>
<p>My simplest solution was to add some custom css classes:</p>
<ul>
<li>fb-connecting: when the status of facebook connect is not known. e.g. display a &#8220;connecting&#8230;&#8221; message </li>
<li>fb-not-connected: when user is not connected to facebook. e.g. show connect button</li>
<li>fb-connected: when user is connected to facebook. e.g. show user picture and name</li>
</ul>
<p><a href="/blog-content/facebook-connect/">View the demo page</a></p>
<p><span id="more-163"></span></p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #00bbdd;">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">html</span> xmlns<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.w3.org/1999/xhtml&quot;</span> xmlns:fb<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.facebook.com/2008/fbml&quot;</span>&gt;</span> 
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
&nbsp;
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php/en_GB&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span>
&nbsp;
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;</span>
  $(function() {
    FB_RequireFeatures([&quot;XFBML&quot;], function() {
      FB.Facebook.init(&quot;[[[INSERT APP ID HERE]]]&quot;, &quot;/xd_receiver.htm&quot;);
      FB.Connect.ifUserConnected(function(){
        $('body').addClass('fb-is-connected').removeClass('fb-is-not-connected');
      }, function(){
        $('body').removeClass('fb-is-connected').addClass('fb-is-not-connected');
      });
    });
  });
  <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span>
&nbsp;
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">style</span>&gt;</span>
  .fb-connected, .fb-not-connected {
    display: none;
  }
  .fb-is-connected .fb-connecting, .fb-is-not-connected .fb-connecting {
    display: none;
  }
  .fb-is-connected .fb-connected {
    display: block;
  }
  .fb-is-not-connected .fb-not-connected {
    display: block;
  }
  <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">style</span>&gt;</span>
&nbsp;
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">&lt;!-- fb-connecting: display while facebook is connecting --&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;fb-connecting&quot;</span>&gt;</span>Connecting to Facebook<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">&lt;!-- fb-not-connected: display when user is not connected to facebook --&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;fb-not-connected&quot;</span>&gt;</span>
  <span style="color: #009900;">&lt;fb:login-button v<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;2&quot;</span> <span style="color: #000066;">size</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;medium&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span>fb:login-button&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">&lt;!-- fb-connected #1: display when user is connected to facebook --&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;fb-connected&quot;</span>&gt;</span>
  <span style="color: #009900;">&lt;fb:profile-pic uid<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;loggedinuser&quot;</span> <span style="color: #000066;">size</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;square&quot;</span> facebook-logo<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;true&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span>fb:profile-pic&gt;</span>
  <span style="color: #009900;">&lt;fb:<span style="color: #000066;">name</span> uid<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;loggedinuser&quot;</span> useyou<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;false&quot;</span> linked<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;true&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span>fb:name&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">&lt;!-- fb-connected #2: actually, you can add the class to the xfbml-tags and do not need a sourrounding div-tag --&gt;</span>
<span style="color: #009900;">&lt;fb:<span style="color: #000066;">name</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;fb-connected&quot;</span> uid<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;loggedinuser&quot;</span> useyou<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;false&quot;</span> linked<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;true&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span>fb:name&gt;</span></pre></div></div>



<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://pro-web.at/archives/facebook-connect-display-login-button-only-when-not-connected-to-site/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS Counter Test / Auto numbering your google docs headlines with CSS</title>
		<link>http://pro-web.at/archives/css-counter-test-auto-numbering-your-google-docs-headlines-with-css</link>
		<comments>http://pro-web.at/archives/css-counter-test-auto-numbering-your-google-docs-headlines-with-css#comments</comments>
		<pubDate>Mon, 20 Jul 2009 11:25:47 +0000</pubDate>
		<dc:creator>Daniel Prieler</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[Google Docs]]></category>

		<guid isPermaLink="false">http://pro-web.at/?p=143</guid>
		<description><![CDATA[In the firstplace I did the numbering of the google-docs headlines with css. But the numbering in the google-docs always got messed up after some time, which was caused by:
a) The behaviour of google-docs: It sometimes wraps the headlines in an extra div (which i consider as a bug)
b) Browser limitations of css numbering, if [...]


Related posts:<ol><li><a href='http://pro-web.at/archives/auto-numbering-your-google-docs-headings' rel='bookmark' title='Permanent Link: Auto numbering your google docs headings / headlines'>Auto numbering your google docs headings / headlines</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>In the firstplace I did the numbering of the google-docs headlines with css. But the numbering in the google-docs always got messed up after some time, which was caused by:<br />
a) The behaviour of google-docs: It sometimes wraps the headlines in an extra div (which i consider as a bug)<br />
b) Browser limitations of css numbering, if the numbered elements are not all on the same dom level (because of the extra google-docs div)<br />
<span id="more-143"></span></p>
<h2>Test-Case</h2>
<p>I wrote up some test-cases with diffeerent order of h1/h2/div elements.<br />
As you can see (at least in firefox 3 and google chrome), the numbering does not count up for sub-headlines<br />
(Note: For my post here in wordpress i changed &lt;h1&gt; to &lt;div class=&quot;head1&quot;&gt;)</p>
<style>
.counter-test {
	counter-reset: counter-h1;
}
.counter-test .head1, .counter-test .head2 {
	font-size: 12px;
	padding: 0;
	margin: 0;
}
.counter-test .head1 {
	counter-increment: counter-h1;
	counter-reset: counter-h2;
}
.counter-test .head2 {
	counter-increment: counter-h2;
}
.counter-test .head1:before {
	content: counter(counter-h1) ". ";
	color: #777;
}
.counter-test .head2:before {
	content: counter(counter-h1) "." counter(counter-h2) ". ";
	color: #777;
}</p>
</style>
<p>all counters on one level</p>
<div class="counter-test">
<div class="head1">h1</div>
<div class="head2">h2</div>
<div class="head2">h2</div>
<div class="head1">h1</div>
<div class="head2">h2</div>
<div class="head2">h2</div>
</div>
<p>all counters wrapped in a separate div</p>
<div class="counter-test">
<div>
<div class="head1">h1</div>
</div>
<div>
<div class="head2">h2</div>
</div>
<div>
<div class="head2">h2</div>
</div>
<div>
<div class="head1">h1</div>
</div>
<div>
<div class="head2">h2</div>
</div>
<div>
<div class="head2">h2</div>
</div>
</div>
<p>sub-counters wrapped in a sub-div</p>
<div class="counter-test">
<div>
<div class="head1">h1</div>
</div>
<div>
<div class="head2">h2</div>
<div class="head2">h2</div>
<div>
<div class="head2">h2</div>
</div>
<div>
<div class="head2">h2</div>
</div></div>
<div>
<div class="head1">h1</div>
</div>
<div>
<div class="head2">h2</div>
<div class="head2">h2</div>
</p></div>
<div>
<div class="head2">h2</div>
<div class="head2">h2</div>
</p></div>
</div>
<p>only h2-counters wrappwed</p>
<div class="counter-test">
<div class="head1">h1</div>
<div>
<div class="head2">h2</div>
</div>
<div>
<div class="head2">h2</div>
</div>
<div class="head1">h1</div>
<div>
<div class="head2">h2</div>
</div>
<div>
<div class="head2">h2</div>
</div>
</div>
<h2>My current solution</h2>
<p>If the numbering gets messed up i start firebug and remove the surrounding div of the wrong headline. Maybe i will create a bookmarklet for this task when i get too annoyed at working with google-docs again :)</p>
<h2>css-Stylesheet</h2>
<p>And here&#8217;s my last stylesheet, which i add to all my google-docs.</p>
<p>You can preview a published document <a href="http://docs.google.com/View?id=dckpfphk_35f4xpz7dr" target="_blank">here</a></p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #00AA00;">*</span> <span style="color: #00AA00;">&#123;</span>
 <span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span> <span style="color: #933;"><span style="color: #cc66cc;">160</span>%</span><span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">10pt</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/** HEADLINES **/</span>
h1 <span style="color: #00AA00;">&#123;</span>
 <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">20pt</span><span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">counter-increment</span><span style="color: #00AA00;">:</span> counter-h1<span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">counter-reset</span><span style="color: #00AA00;">:</span> counter-h2<span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
h2 <span style="color: #00AA00;">&#123;</span>
 <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">17pt</span><span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">counter-increment</span><span style="color: #00AA00;">:</span> counter-h2<span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">counter-reset</span><span style="color: #00AA00;">:</span> counter-h3<span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
h3 <span style="color: #00AA00;">&#123;</span>
 <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">14pt</span><span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">counter-increment</span><span style="color: #00AA00;">:</span> counter-h3<span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">counter-reset</span><span style="color: #00AA00;">:</span> counter-h4<span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
h4 <span style="color: #00AA00;">&#123;</span>
 <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">11pt</span><span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">bold</span><span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">counter-increment</span><span style="color: #00AA00;">:</span> counter-h4<span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">counter-reset</span><span style="color: #00AA00;">:</span> counter-h5<span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
h5 <span style="color: #00AA00;">&#123;</span>
 <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">11pt</span><span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">bold</span><span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">counter-increment</span><span style="color: #00AA00;">:</span> counter-h5<span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">counter-reset</span><span style="color: #00AA00;">:</span> counter-h6<span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
h6 <span style="color: #00AA00;">&#123;</span>
 <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">11pt</span><span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">bold</span><span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">counter-increment</span><span style="color: #00AA00;">:</span> counter-h6<span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
h1<span style="color: #3333ff;">:before </span><span style="color: #00AA00;">&#123;</span>
 <span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span> counter<span style="color: #00AA00;">&#40;</span>counter-h1<span style="color: #00AA00;">&#41;</span> <span style="color: #ff0000;">&quot;. &quot;</span><span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#777</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
h2<span style="color: #3333ff;">:before </span><span style="color: #00AA00;">&#123;</span>
 <span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span> counter<span style="color: #00AA00;">&#40;</span>counter-h1<span style="color: #00AA00;">&#41;</span> <span style="color: #ff0000;">&quot;.&quot;</span> counter<span style="color: #00AA00;">&#40;</span>counter-h2<span style="color: #00AA00;">&#41;</span> <span style="color: #ff0000;">&quot;. &quot;</span><span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#777</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
h3<span style="color: #3333ff;">:before </span><span style="color: #00AA00;">&#123;</span>
 <span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span> counter<span style="color: #00AA00;">&#40;</span>counter-h1<span style="color: #00AA00;">&#41;</span> <span style="color: #ff0000;">&quot;.&quot;</span> counter<span style="color: #00AA00;">&#40;</span>counter-h2<span style="color: #00AA00;">&#41;</span> <span style="color: #ff0000;">&quot;.&quot;</span> counter<span style="color: #00AA00;">&#40;</span>counter-h3<span style="color: #00AA00;">&#41;</span> <span style="color: #ff0000;">&quot;. &quot;</span><span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#777</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
h4<span style="color: #3333ff;">:before </span><span style="color: #00AA00;">&#123;</span>
 <span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span> counter<span style="color: #00AA00;">&#40;</span>counter-h1<span style="color: #00AA00;">&#41;</span> <span style="color: #ff0000;">&quot;.&quot;</span> counter<span style="color: #00AA00;">&#40;</span>counter-h2<span style="color: #00AA00;">&#41;</span> <span style="color: #ff0000;">&quot;.&quot;</span> counter<span style="color: #00AA00;">&#40;</span>counter-h3<span style="color: #00AA00;">&#41;</span> <span style="color: #ff0000;">&quot;.&quot;</span> counter<span style="color: #00AA00;">&#40;</span>counter-h4<span style="color: #00AA00;">&#41;</span> <span style="color: #ff0000;">&quot;. &quot;</span><span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#777</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
h5<span style="color: #3333ff;">:before </span><span style="color: #00AA00;">&#123;</span>
 <span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span> counter<span style="color: #00AA00;">&#40;</span>counter-h1<span style="color: #00AA00;">&#41;</span> <span style="color: #ff0000;">&quot;.&quot;</span> counter<span style="color: #00AA00;">&#40;</span>counter-h2<span style="color: #00AA00;">&#41;</span> <span style="color: #ff0000;">&quot;.&quot;</span> counter<span style="color: #00AA00;">&#40;</span>counter-h3<span style="color: #00AA00;">&#41;</span> <span style="color: #ff0000;">&quot;.&quot;</span> counter<span style="color: #00AA00;">&#40;</span>counter-h4<span style="color: #00AA00;">&#41;</span> <span style="color: #ff0000;">&quot;.&quot;</span> counter<span style="color: #00AA00;">&#40;</span>counter-h5<span style="color: #00AA00;">&#41;</span> <span style="color: #ff0000;">&quot;. &quot;</span><span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#777</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
h6<span style="color: #3333ff;">:before </span><span style="color: #00AA00;">&#123;</span>
 <span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span> counter<span style="color: #00AA00;">&#40;</span>counter-h1<span style="color: #00AA00;">&#41;</span> <span style="color: #ff0000;">&quot;.&quot;</span> counter<span style="color: #00AA00;">&#40;</span>counter-h2<span style="color: #00AA00;">&#41;</span> <span style="color: #ff0000;">&quot;.&quot;</span> counter<span style="color: #00AA00;">&#40;</span>counter-h3<span style="color: #00AA00;">&#41;</span> <span style="color: #ff0000;">&quot;.&quot;</span> counter<span style="color: #00AA00;">&#40;</span>counter-h4<span style="color: #00AA00;">&#41;</span> <span style="color: #ff0000;">&quot;.&quot;</span> counter<span style="color: #00AA00;">&#40;</span>counter-h5<span style="color: #00AA00;">&#41;</span> <span style="color: #ff0000;">&quot;.&quot;</span> counter<span style="color: #00AA00;">&#40;</span>counter-h6<span style="color: #00AA00;">&#41;</span> <span style="color: #ff0000;">&quot;. &quot;</span><span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#777</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/** TEXT **/</span>
p <span style="color: #00AA00;">&#123;</span>
 <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #933;">5pt</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">10pt</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">justify</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
li <span style="color: #00AA00;">&#123;</span>
 <span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">justify</span><span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">padding-bottom</span><span style="color: #00AA00;">:</span> <span style="color: #933;">5pt</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
li p <span style="color: #00AA00;">&#123;</span>
 <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #933;">5pt</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
li p<span style="color: #3333ff;">:first-child </span><span style="color: #00AA00;">&#123;</span>
 <span style="color: #000000; font-weight: bold;">padding-top</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
li p<span style="color: #3333ff;">:last-child </span><span style="color: #00AA00;">&#123;</span>
 <span style="color: #000000; font-weight: bold;">padding-bottom</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>



<p>Related posts:<ol><li><a href='http://pro-web.at/archives/auto-numbering-your-google-docs-headings' rel='bookmark' title='Permanent Link: Auto numbering your google docs headings / headlines'>Auto numbering your google docs headings / headlines</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://pro-web.at/archives/css-counter-test-auto-numbering-your-google-docs-headlines-with-css/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Detailed report for PHPUnit test results</title>
		<link>http://pro-web.at/archives/detailed-report-for-phpunit-test-results</link>
		<comments>http://pro-web.at/archives/detailed-report-for-phpunit-test-results#comments</comments>
		<pubDate>Sun, 07 Jun 2009 18:15:37 +0000</pubDate>
		<dc:creator>Daniel Prieler</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[PHPUnit]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://pro-web.at/?p=128</guid>
		<description><![CDATA[For my recent university php project we had to create a detailed test-report.
First we had the description of our test-cases in the code and also in a seperate overview-table in some wordfile.
Also the output of the PHPUnit test-results was by far not &#8220;enterprise ready&#8221;, so i started searching for a better solution.
I stumbeld upon a [...]


Related posts:<ol><li><a href='http://pro-web.at/archives/css-counter-test-auto-numbering-your-google-docs-headlines-with-css' rel='bookmark' title='Permanent Link: CSS Counter Test / Auto numbering your google docs headlines with CSS'>CSS Counter Test / Auto numbering your google docs headlines with CSS</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>For my recent university php project we had to create a detailed test-report.<br />
First we had the description of our test-cases in the code and also in a seperate overview-table in some wordfile.<br />
Also the output of the PHPUnit test-results was by far not &#8220;enterprise ready&#8221;, so i started searching for a better solution.</p>
<p>I stumbeld upon a post from <a href="http://parthpatil.com/2008/05/14/formatting-phpunit-test-results-as-html-table/">Parth Patil</a>, whose solution was to create an xml-report from PHPUnit and then use this xml to create your own report.</p>
<p>I used his solution, made it PHPUnit 3.4 compatible and also added some Reflection to see my testcase doc-comments in the report. (Note: For the refelection i use the Zend_Framework reflection class)<br />
<span id="more-128"></span><br />
<strong>The Result is:</strong><br />
<a href="http://pro-web.at/wp-content/uploads/2009/06/demo_result.jpg" class="lightbox"><img src="http://pro-web.at/wp-content/uploads/2009/06/demo_result.jpg" width="100%" alt="test result" /></a></p>
<p>For my TestCase:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> My_Test <span style="color: #000000; font-weight: bold;">extends</span> PHPUnit_Framework_TestCase
<span style="color: #009900;">&#123;</span>
	<span style="color: #009933; font-style: italic;">/**
	 * This is the first demo test, which should succeed
	 * @return void
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> testFoo<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">assertTrue</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #009933; font-style: italic;">/**
	 * This is the second demo test, which should fail
	 * @return void
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> testBar<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">assertTrue</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>And here&#8217;s the programming of the report:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> AllTests
<span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #990000;">static</span> <span style="color: #000000; font-weight: bold;">function</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$reportPath</span> <span style="color: #339933;">=</span> <span style="color: #990000;">dirname</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">__FILE__</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// init a PHPUnit test-suite</span>
		<span style="color: #000088;">$suite</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> PHPUnit_Framework_TestSuite<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Testsuite Name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$suite</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addTestSuite</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'My_Test'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// switch xml output on</span>
		PHPUnit_TextUI_TestRunner<span style="color: #339933;">::</span><span style="color: #004000;">run</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$suite</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
			<span style="color: #0000ff;">'xmlLogfile'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$reportPath</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/log.xml'</span>
		<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// generate html-report</span>
		<span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">generateHtmlReport</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$reportPath</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #990000;">static</span> <span style="color: #000000; font-weight: bold;">function</span> generateHtmlReport<span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$simple</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> SimpleXMLElement<span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/log.xml'</span><span style="color: #339933;">,</span> <span style="color: #000000; font-weight: bold;">null</span><span style="color: #339933;">,</span> <span style="color: #000000; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$output</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// loop through each testsuite</span>
		<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$simple</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">xpath</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'//testsuite'</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$testsuite</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$testsuite</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">testcase</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #666666; font-style: italic;">// has no testcases</span>
				<span style="color: #b1b100;">continue</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
&nbsp;
			<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;h1&gt;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$testsuite</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/h1&gt;'</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;table cellspacing=&quot;0&quot; class=&quot;test_results&quot;&gt;
			  &lt;thead&gt;
			    &lt;tr&gt;&lt;th&gt;Test Name&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Message&lt;/th&gt;&lt;/tr&gt;
			  &lt;/thead&gt;
			  &lt;tbody&gt;'</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$testsuite</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">testcase</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$testcase</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000088;">$reflection</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Reflection_Method<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>string<span style="color: #009900;">&#41;</span><span style="color: #000088;">$testcase</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'class'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span>string<span style="color: #009900;">&#41;</span><span style="color: #000088;">$testcase</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;tr&gt;&lt;td class=&quot;name&quot;&gt;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$testcase</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/td&gt;'</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;td class=&quot;description&quot;&gt;'</span><span style="color: #339933;">.</span><span style="color: #990000;">nl2br</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$reflection</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getDocblock</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getShortDescription</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/td&gt;'</span><span style="color: #339933;">;</span>
&nbsp;
				<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$testcase</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">failure</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;td class=&quot;test_fail&quot;/&gt;'</span><span style="color: #339933;">;</span>
					<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;td&gt;&lt;pre&gt;'</span><span style="color: #339933;">.</span><span style="color: #990000;">htmlspecialchars</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$testcase</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">failure</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/td&gt;'</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;td class=&quot;test_pass&quot;/&gt;'</span><span style="color: #339933;">;</span>
					<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;td&gt;ok&lt;/td&gt;'</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
				<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;/tr&gt;'</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
&nbsp;
			<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;/tbody&gt;&lt;/table&gt;'</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// stylesheet</span>
		<span style="color: #000088;">$output</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'&lt;style&gt; ... see attached zip-file ...&lt;/style&gt;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$output</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// save report</span>
		<span style="color: #666666; font-style: italic;">// file_put_contents($path.'/report.html', $output);</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// or output it</span>
		<span style="color: #990000;">echo</span> <span style="color: #000088;">$output</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><strong><a href="http://pro-web.at/wp-content/uploads/2009/06/report_test.zip">Download the php-class for my demo report</a></strong></p>
<p>In some future i also will add these features:</p>
<ul>
<li>Print which functions each test covers (read the @covers annotation)</li>
<li>Show the test-class docBlock-description in the html-report</li>
<li>&#8230;</li>
</ul>


<p>Related posts:<ol><li><a href='http://pro-web.at/archives/css-counter-test-auto-numbering-your-google-docs-headlines-with-css' rel='bookmark' title='Permanent Link: CSS Counter Test / Auto numbering your google docs headlines with CSS'>CSS Counter Test / Auto numbering your google docs headlines with CSS</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://pro-web.at/archives/detailed-report-for-phpunit-test-results/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jsSO 0.2 released</title>
		<link>http://pro-web.at/archives/jsso-02-released</link>
		<comments>http://pro-web.at/archives/jsso-02-released#comments</comments>
		<pubDate>Wed, 15 Apr 2009 12:03:02 +0000</pubDate>
		<dc:creator>Daniel Prieler</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jsSO]]></category>
		<category><![CDATA[Red5]]></category>
		<category><![CDATA[rtmp]]></category>

		<guid isPermaLink="false">http://pro-web.at/?p=117</guid>
		<description><![CDATA[New updates to jsSO-library:
It now allows calling Server-Side functions.
Go to the jsSO page


Related posts:jsSO &#8211; Flash Shared Objects in Javascript


Related posts:<ol><li><a href='http://pro-web.at/archives/jsso-flash-shared-objects-in-javascript' rel='bookmark' title='Permanent Link: jsSO &#8211; Flash Shared Objects in Javascript'>jsSO &#8211; Flash Shared Objects in Javascript</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>New updates to jsSO-library:<br />
It now allows calling Server-Side functions.</p>
<p><a href="/projects/jsso">Go to the jsSO page</a></p>


<p>Related posts:<ol><li><a href='http://pro-web.at/archives/jsso-flash-shared-objects-in-javascript' rel='bookmark' title='Permanent Link: jsSO &#8211; Flash Shared Objects in Javascript'>jsSO &#8211; Flash Shared Objects in Javascript</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://pro-web.at/archives/jsso-02-released/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zähler für die Verschrottungsprämie</title>
		<link>http://pro-web.at/archives/zahler-fur-die-verschrottungspramie</link>
		<comments>http://pro-web.at/archives/zahler-fur-die-verschrottungspramie#comments</comments>
		<pubDate>Fri, 03 Apr 2009 10:20:09 +0000</pubDate>
		<dc:creator>Daniel Prieler</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Counter]]></category>
		<category><![CDATA[Ökoprämie]]></category>

		<guid isPermaLink="false">http://pro-web.at/?p=122</guid>
		<description><![CDATA[Habe heute den Zähler für die Verschrottungsprämie fertiggestellt:
weiter zum Zähler


No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>Habe heute den Zähler für die Verschrottungsprämie fertiggestellt:<br />
<a href="projects/verschrottung">weiter zum Zähler</a></p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://pro-web.at/archives/zahler-fur-die-verschrottungspramie/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Auto numbering your google docs headings / headlines</title>
		<link>http://pro-web.at/archives/auto-numbering-your-google-docs-headings</link>
		<comments>http://pro-web.at/archives/auto-numbering-your-google-docs-headings#comments</comments>
		<pubDate>Fri, 03 Apr 2009 08:48:45 +0000</pubDate>
		<dc:creator>Daniel Prieler</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Google Docs]]></category>

		<guid isPermaLink="false">http://v2.pro-web.at/?p=74</guid>
		<description><![CDATA[Google-docs-writer is great for collaborating, but it lacks of many features.
At least i created a small bookmarklet to add numbering to all headlines in your document.

The numbering is done in the style of:
1. headline
1.1. subheadline 1
1.2. subheadline 2
&#8230;
How to use / install
Just drag the link below to your bookmarks-bar, open your google document and press [...]


Related posts:<ol><li><a href='http://pro-web.at/archives/css-counter-test-auto-numbering-your-google-docs-headlines-with-css' rel='bookmark' title='Permanent Link: CSS Counter Test / Auto numbering your google docs headlines with CSS'>CSS Counter Test / Auto numbering your google docs headlines with CSS</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Google-docs-writer is great for collaborating, but it lacks of many features.<br />
At least i created a small bookmarklet to add numbering to all headlines in your document.<br />
<span id="more-74"></span><br />
The numbering is done in the style of:</p>
<p>1. headline<br />
1.1. subheadline 1<br />
1.2. subheadline 2<br />
&#8230;</p>
<h2>How to use / install</h2>
<p>Just drag the link below to your bookmarks-bar, open your google document and press the &#8220;gDocs: headline numbering&#8221; button.<br />
<a title="blub" href="javascript:(function(){var doc=window.frames['wys_frame'].document;var elements=doc.getElementsByTagName('*');var numbers=[0,0,0,0,0,0,0];for(var i in elements){var e=elements[i];if(!e||!e.tagName||!e.tagName.match(/^H([1-6])$/)){continue}var eLevel=RegExp.$1;var txt='';numbers[eLevel]++;for(var l=1;l<=6;l++){if(l<=eLevel){txt+=numbers[l]+'.'}else{numbers[l]=0}}e.textContent=txt+' '+e.textContent.replace(/^[0-9\.\s]+/,'')}})();">gDocs: headline numbering</a></p>
<h2>Source</h2>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> doc <span style="color: #339933;">=</span> window.<span style="color: #660066;">frames</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'wys_frame'</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">document</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> elements <span style="color: #339933;">=</span> doc.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'*'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> numbers <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #000066; font-weight: bold;">in</span> elements<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> e <span style="color: #339933;">=</span> elements<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>e <span style="color: #339933;">||</span> <span style="color: #339933;">!</span>e.<span style="color: #660066;">tagName</span> <span style="color: #339933;">||</span> <span style="color: #339933;">!</span>e.<span style="color: #660066;">tagName</span>.<span style="color: #660066;">match</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/^H([1-6])$/</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">continue</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #003366; font-weight: bold;">var</span> eLevel <span style="color: #339933;">=</span> RegExp.$<span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> txt <span style="color: #339933;">=</span> <span style="color: #3366CC;">''</span><span style="color: #339933;">;</span>
&nbsp;
    numbers<span style="color: #009900;">&#91;</span>eLevel<span style="color: #009900;">&#93;</span><span style="color: #339933;">++;</span>
    <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> l <span style="color: #339933;">=</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">;</span> l<span style="color: #339933;">&lt;=</span><span style="color: #CC0000;">6</span><span style="color: #339933;">;</span> l<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>l <span style="color: #339933;">&lt;=</span> eLevel<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            txt <span style="color: #339933;">+=</span> numbers<span style="color: #009900;">&#91;</span>l<span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'.'</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
            numbers<span style="color: #009900;">&#91;</span>l<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    e.<span style="color: #660066;">textContent</span> <span style="color: #339933;">=</span> txt<span style="color: #339933;">+</span><span style="color: #3366CC;">' '</span><span style="color: #339933;">+</span>e.<span style="color: #660066;">textContent</span>.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/^[0-9\.\s]+/</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<h2>Updates</h2>
<ul>
<li>because of changes in google-docs i modified how the document is accessed</li>
</ul>


<p>Related posts:<ol><li><a href='http://pro-web.at/archives/css-counter-test-auto-numbering-your-google-docs-headlines-with-css' rel='bookmark' title='Permanent Link: CSS Counter Test / Auto numbering your google docs headlines with CSS'>CSS Counter Test / Auto numbering your google docs headlines with CSS</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://pro-web.at/archives/auto-numbering-your-google-docs-headings/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>jsSO &#8211; Flash Shared Objects in Javascript</title>
		<link>http://pro-web.at/archives/jsso-flash-shared-objects-in-javascript</link>
		<comments>http://pro-web.at/archives/jsso-flash-shared-objects-in-javascript#comments</comments>
		<pubDate>Tue, 24 Feb 2009 11:59:23 +0000</pubDate>
		<dc:creator>Daniel Prieler</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jsSO]]></category>
		<category><![CDATA[Red5]]></category>
		<category><![CDATA[rtmp]]></category>

		<guid isPermaLink="false">http://pro-web.at/?p=115</guid>
		<description><![CDATA[I just released the initial version of a javascript rtmp/sharedObject client library.
Go to the jsSO page


Related posts:jsSO 0.2 released


Related posts:<ol><li><a href='http://pro-web.at/archives/jsso-02-released' rel='bookmark' title='Permanent Link: jsSO 0.2 released'>jsSO 0.2 released</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>I just released the initial version of a javascript rtmp/sharedObject client library.</p>
<p><a href="/projects/jsso">Go to the jsSO page</a></p>


<p>Related posts:<ol><li><a href='http://pro-web.at/archives/jsso-02-released' rel='bookmark' title='Permanent Link: jsSO 0.2 released'>jsSO 0.2 released</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://pro-web.at/archives/jsso-flash-shared-objects-in-javascript/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
