<?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>die3sportarten</title>
	<atom:link href="http://die3sportarten.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://die3sportarten.de</link>
	<description></description>
	<lastBuildDate>Mon, 13 Dec 2010 11:18:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Das erste Highlight für die Saison 2011</title>
		<link>http://die3sportarten.de/2010/12/das-erste-highlight-fur-die-saison-2011/</link>
		<comments>http://die3sportarten.de/2010/12/das-erste-highlight-fur-die-saison-2011/#comments</comments>
		<pubDate>Mon, 13 Dec 2010 11:18:14 +0000</pubDate>
		<dc:creator>Henrico</dc:creator>
				<category><![CDATA[Triathlon]]></category>

		<guid isPermaLink="false">http://die3sportarten.de/?p=99</guid>
		<description><![CDATA[Eigentlich wollte ich 2011 keine großen Wettkämpfe bestreiten, aber es kommt oft anderes.
Im Rahmen der Challenge Roth, am 10.07.2011, werde ich den 180km Radteil einer Staffel übernehmen.
Starten werden wir für TNT. Das von uns errichtete Startgeld wird komplett an das World Food-Programm gespendet.
]]></description>
			<content:encoded><![CDATA[<p>Eigentlich wollte ich 2011 keine großen Wettkämpfe bestreiten, aber es kommt oft anderes.<br />
Im Rahmen der <a href="http://www.challenge-roth.com/de/index.html">Challenge Roth</a>, am 10.07.2011, werde ich den 180km Radteil einer Staffel übernehmen.<br />
Starten werden wir für TNT. Das von uns errichtete Startgeld wird komplett an das World Food-Programm gespendet.</p>
]]></content:encoded>
			<wfw:commentRss>http://die3sportarten.de/2010/12/das-erste-highlight-fur-die-saison-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Es lohnt sich ein Blick auf, Diaspora</title>
		<link>http://die3sportarten.de/2010/11/es-lohnt-sich-ein-blick-auf-diaspora/</link>
		<comments>http://die3sportarten.de/2010/11/es-lohnt-sich-ein-blick-auf-diaspora/#comments</comments>
		<pubDate>Sun, 28 Nov 2010 10:37:35 +0000</pubDate>
		<dc:creator>Henrico</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://die3sportarten.de/newStart/?p=61</guid>
		<description><![CDATA[Bei Diaspora handelt es sich um eines der vielen sozialen Netzwerk Varianten, es ist noch irgendwie  im Alpha Teststadium, aber natürlich will es nichts geringeres sein als ein Facebook Herausforderer.
Die Idee hinter Diaspora ist mir eigentlich egal, mir geht es um die Technik, die es verwendet.
Unter hier findet man eine Installationsanleitung für den eigenen [...]]]></description>
			<content:encoded><![CDATA[<p>Bei <a href="https://joindiaspora.com/">Diaspora</a> handelt es sich um eines der vielen sozialen Netzwerk Varianten, es ist noch irgendwie  im Alpha Teststadium, aber natürlich will es nichts geringeres sein als ein Facebook Herausforderer.<br />
Die Idee hinter Diaspora ist mir eigentlich egal, mir geht es um die Technik, die es verwendet.<br />
Unter <a href="https://github.com/diaspora/diaspora/wiki/Installing-and-Running-Diaspora">hier</a> findet man eine Installationsanleitung für den eigenen Diaspora-Server.<br />
Wenn man die Anleitung durchgeht, sieht man das Diaspora auf  Ruby und auf die sogenannte NoSql Datenbank, MongoDB und wenn mich nicht täuscht wird HTML5 verwendet, also alles State-of-the-Art und ein hervorragender Weg es an einem Beispiel zu lernen.  </p>
]]></content:encoded>
			<wfw:commentRss>http://die3sportarten.de/2010/11/es-lohnt-sich-ein-blick-auf-diaspora/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fast geplantes Vorgehen, ingenieurmäßiges Vorgehen</title>
		<link>http://die3sportarten.de/2010/11/fast-geplantes-vorgehen-ingenieurmasiges-vorgehen/</link>
		<comments>http://die3sportarten.de/2010/11/fast-geplantes-vorgehen-ingenieurmasiges-vorgehen/#comments</comments>
		<pubDate>Sat, 20 Nov 2010 12:30:03 +0000</pubDate>
		<dc:creator>Henrico</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://die3sportarten.de/newStart/?p=71</guid>
		<description><![CDATA[Ich versuche mich ja gerade wieder mit Rails anzufreunden, was ja nicht schwer ist, einfach ein ganz tolles Framework. Auch wenn ich dann feststellen musste das meine Rails Bücher etwas veraltet sind, das Rails Cookbook deckt Version 1.2 ab und der gute Rails Way von Fernandez ist für Version 2.0.
Jetzt sind wir ja bekanntlich bei Version 3.x. Habe ich mir da keine Gedanken drum gemacht.]]></description>
			<content:encoded><![CDATA[<p>Ich versuche mich ja gerade wieder mit Rails anzufreunden, was ja nicht schwer ist, einfach ein ganz tolles Framework. Auch wenn ich dann feststellen musste das meine Rails Bücher etwas veraltet sind, das Rails Cookbook deckt Version 1.2 ab und der gute Rails Way von Fernandez ist für Version 2.0.<br />
Jetzt sind wir ja bekanntlich bei Version 3.x. Habe ich mir da keine Gedanken drum gemacht.<br />
Dann wie üblich kleine Zeichnung, für das DB Model. Es sollte nichts großes oder weltbewegendes werden einfach nur ein  Programm zum aufschreiben meiner Trainingseinheiten, quasi ein Trainingstagebuch.<br />
Da man mit Plugins viel erschlagen kann, habe ich dann mir was zusammengebaut, aus <a href="http://hobocentral.net/">Hobo</a>, einem Plugin <a href="http://github.com/elevation/event_calendar">Event-Calendar</a> Plugin, das lief alles so halb, also habe ich dann auf Rails 3 <em>upgedated</em>, weil ich aber <em>Ajax-Request</em> verwenden wollte, musste ich, den Javascript Helper aus Rails 2.x hinzufügen, da ja Rails 3 auf Html5 Basis läuft und es dort schönere Dinge gibt als die ursprünglichen <em>Ajax-Requests</em> und irgendwie habe ich dann noch ein relativ schönes CSS Layout gebaut.<br />
Ich konnte die gewünschten Funktionen implementieren und es funktionierte auch alles. Aber es fühlte sich nicht richtig an.<br />
Wenn man sich den Absatz weiter oben durchliest weiß man auch warum, nur weil man irgendwie irgendetwas zusammen klatscht, ist es noch lange kein schönes Programm. Also was macht man wenn man etwas hat, was irgendwie ganz nett ist, ich habe es dann als einen Prototyp deklariert.<br />
Einen neuen Entwurf entwickelt, mit dem Prototypen verglichen. Dabei kam heraus, dass ich den Entwurf  in vier Module teilen konnte. Nun jedes Modul hat einen Schnittpunkt mit dem Vorgänger somit sollte die Integration auch leicht klappen und das beste ich kann endlich mal Testdriven entwickeln.<br />
Sobald ich die ersten Module fertig habe werde ich hier näher darüber berichten.</p>
]]></content:encoded>
			<wfw:commentRss>http://die3sportarten.de/2010/11/fast-geplantes-vorgehen-ingenieurmasiges-vorgehen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Buchtipp: Pragmatisches Denken und Lernen</title>
		<link>http://die3sportarten.de/2010/11/buchtipp-pragmatisches-denken-und-lernen/</link>
		<comments>http://die3sportarten.de/2010/11/buchtipp-pragmatisches-denken-und-lernen/#comments</comments>
		<pubDate>Wed, 10 Nov 2010 13:03:17 +0000</pubDate>
		<dc:creator>Henrico</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://die3sportarten.de/newStart/?p=40</guid>
		<description><![CDATA[Ans Herz legen kann ich nur, das Buch <a href="http://www.hanser.de/buch.asp?isbn=978-3-446-41643-7&#038;area=Computer ">Pragmatisches Denken</a> und Lernen</a> von <a href="http://blog.toolshed.com/">Andy Hunt</a>. ]]></description>
			<content:encoded><![CDATA[<p>Ans Herz legen kann ich nur, das Buch <a href="http://www.hanser.de/buch.asp?isbn=978-3-446-41643-7&#038;area=Computer ">Pragmatisches Denken</a> und Lernen</a> von <a href="http://blog.toolshed.com/">Andy Hunt</a>. Wenn ihr jetzt nach grübelt, genau er hat auch <a href="http://www.hanser.de/buch.asp?isbn=978-3-446-22309-7&#038;area=Computer">Der Pragmatische Programmierer</a> geschrieben.<br />
Grob gesehen geht es darum Probleme kreativ lösen zu können und sich einige neue Denkweisen anzueignen und auch sein Verhalten hier und da zu verändern um zu einem anderen Lösungsweg zu kommen. Auch wenn es hunderte vergleichbare Bücher zu dem Thema gibt ist das erfrischende, dass es von einem von uns geschrieben wurde und somit aus Programmierersicht geschrieben. </p>
]]></content:encoded>
			<wfw:commentRss>http://die3sportarten.de/2010/11/buchtipp-pragmatisches-denken-und-lernen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dienstags Training Triathlöwen</title>
		<link>http://die3sportarten.de/2010/11/dienstags-training-triathlowen/</link>
		<comments>http://die3sportarten.de/2010/11/dienstags-training-triathlowen/#comments</comments>
		<pubDate>Sun, 07 Nov 2010 08:21:22 +0000</pubDate>
		<dc:creator>Henrico</dc:creator>
				<category><![CDATA[Triathlon]]></category>

		<guid isPermaLink="false">http://die3sportarten.de/newStart/?p=94</guid>
		<description><![CDATA[18:00 Uhr Sportplatz an der Uni. Das Training dauert etwa ein Stunde, nach Einlaufen und Lauf ABC folgt eine etwa 3000 – 4400m lange Intervalleinheit.
Folgendes wird traniert:

09.11. &#8211; 2 * (6 * 300m)
16.11. &#8211; 4 * (400m, 800m)  
23.11. &#8211; 2 * (8 * 200m)
30.11. &#8211; 4 * 1000m, mit 1000m Test
07.12. &#8211; (200m, [...]]]></description>
			<content:encoded><![CDATA[<p>18:00 Uhr Sportplatz an der Uni. Das Training dauert etwa ein Stunde, nach Einlaufen und Lauf ABC folgt eine etwa 3000 – 4400m lange Intervalleinheit.<br />
Folgendes wird traniert:</p>
<ul>
<li>09.11. &#8211; 2 * (6 * 300m)</li>
<li>16.11. &#8211; 4 * (400m, 800m)  </li>
<li>23.11. &#8211; 2 * (8 * 200m)</li>
<li>30.11. &#8211; 4 * 1000m, mit 1000m Test</li>
<li>07.12. &#8211; (200m, 400m, 600m, 1000m, 1000m, 600m, 400m, 200m) </li>
<li>14.12. &#8211; 2 * (6 * 400m)</li>
<li>21.12. &#8211; 2 * (8 * 200m)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://die3sportarten.de/2010/11/dienstags-training-triathlowen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tellerrand mit symfony und rails</title>
		<link>http://die3sportarten.de/2010/11/tellerrand-mit-symfony-und-rails/</link>
		<comments>http://die3sportarten.de/2010/11/tellerrand-mit-symfony-und-rails/#comments</comments>
		<pubDate>Fri, 05 Nov 2010 12:38:08 +0000</pubDate>
		<dc:creator>Henrico</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://die3sportarten.de/newStart/?p=36</guid>
		<description><![CDATA[Ich kriege es einfach nicht hin. Ich kann das symfony Framework in Php einfach auf eine anständige Art und Weise mit dem Rails Framework geschrieben in Ruby nicht miteinander vergleichen.
Hintergrund für diese Überlegung ist, dass ich mich bei einem Projekt für symfony entschieden hatte, weil es &#8216;rails like&#8217; sein sollte, zumindest wurde es häufig so [...]]]></description>
			<content:encoded><![CDATA[<p>Ich kriege es einfach nicht hin. Ich kann das <em>symfony</em> Framework in <em>Php</em> einfach auf eine anständige Art und Weise mit dem <em>Rails</em> Framework geschrieben in <em>Ruby</em> nicht miteinander vergleichen.<br />
Hintergrund für diese Überlegung ist, dass ich mich bei einem Projekt für <em>symfony</em> entschieden hatte, weil es &#8216;rails like&#8217; sein sollte, zumindest wurde es häufig so beschrieben.<br />
Ich hatte damals gerade erfolgreich an einem Rails Projekt gearbeitet und wollte was neues altes machen, außerdem war ich der Überzeugung, dass man viel leichter einen <em>PHP</em>-Entwickler finden würde als einen <em>Rails</em>-Entwickler, auch ist Hosting bestimmt leichter.<br />
Da ich gerade aus Interesse und Neugier mich mit <em>Rails 3</em> auseinandersetzte, muss ich sagen, nur weil Rails und symfony beides Frameworks sind, die das <em>MVC</em>-Entwurfsmuster verwenden und beide noch eine Konsolenanbindung haben, heißt es noch lange nicht, dass sie &#8216;like&#8217; sind.<br />
Ich glaube auch nicht das <a href="http://fabien.potencier.org/ ">Fabien Pontencier</a> <em>symfony</em> jemals es selbst als &#8216;railslike&#8217; bezeichnete.<br />
Natürlich gibt es Ähnlichkeiten aber die Umsetzung ist sehr unterschiedlich und genau deshalb lohnt es sich sich immer wieder neues anzuschauen oder zu altem zurückzukehren, weil man so lernt und  versteht, zumindest wenn man will.<br />
Für mich ist <em>Rails</em> vergleichbar mit einer hypen Firma, die in einem Loftbüro arbeitet, alle Experten sind in einem Raum und man kann sie leicht erreichen, manchmal holt man sich durch Freiberufler<br />
zusätzliches Wissen ins Haus.<br />
 Während <em>symfony</em> mehr eine Behörde ist. Viele Gänge und Räume, manchmal verwinkelt aber es ist alles in dem Gebäude was man braucht.<br />
Vergleicht einfach mal die Ordnerstruktur der beiden. Rails hat sehr viel weniger Unterordner, alle  Controller und Views sind z.B. in einem Ordner, während symfony die Contoller und Views jeweil s in einem Modul steckt.<br />
Nehmen wir auch noch das Model, hierbei verwendet rails das Entwurfsmuster des <a href="http://www.martinfowler.com/eaaCatalog/activeRecord.html">ActiveRecord</a><br />
und <em>symfony</em> verwendet entweder <a href="http://www.propelorm.org/">Propel</a>  oder <a href="http://www.doctrine-project.org/">Doctrine</a>  als <a href="http://www.martinfowler.com/eaaCatalog/dataMapper.html">ORM</a> Entwurfsmuster.<br />
Dadurch wirkt <em>rails</em> automatisch schlanker als <em>symfony</em>, weil man bei symfony die ORM generieren muss. In den generierten Dateien kann man dann auch sehen welche Getter/Setter es gibt während man ja bei rails darauf &#8216;vertraut&#8217;, dass etwas vorhanden ist.  </p>
]]></content:encoded>
			<wfw:commentRss>http://die3sportarten.de/2010/11/tellerrand-mit-symfony-und-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Saisonplanung 2011</title>
		<link>http://die3sportarten.de/2010/11/saisonplanung-2011/</link>
		<comments>http://die3sportarten.de/2010/11/saisonplanung-2011/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 10:34:45 +0000</pubDate>
		<dc:creator>Henrico</dc:creator>
				<category><![CDATA[Triathlon]]></category>

		<guid isPermaLink="false">http://die3sportarten.de/newStart/?p=57</guid>
		<description><![CDATA[Für 2011 hatte ich wieder große Pläne, den Alpe d'Huez Triathlon, vielleicht noch eine Langdistanz Anfang Juni, ein Trainingslager auf Fuerteventura und zum Abschluss des Jahres sollte es nach Las Vegas zum Silverman Triathlon gehen. ]]></description>
			<content:encoded><![CDATA[<p>Für 2011 hatte ich wieder große Pläne, den Alpe d&#8217;Huez Triathlon, vielleicht noch eine Langdistanz Anfang Juni, ein Trainingslager auf Fuerteventura und zum Abschluss des Jahres sollte es nach Las Vegas zum Silverman Triathlon gehen.<br />
Groß geplant und schnell wieder verworfen. 2011 mache ich mal locker. Ich hatte dieses Jahr wirklich zwei absolute Highlights und will nächstes Jahr einfach mal genießen. Triathlon nimmt sehr viel Zeit in Anspruch und das ist auch in Ordnung, aber es gibt für mich noch andere Dinge auf die ich mich konzentrieren sollte und das werde ich jetzt mal machen.<br />
Bestimmt bittet sich die Möglichkeit ein paar Schwächen zu beseitigen oder auf der Laufstrecke wieder schneller zu werden, aber große Pläne was Zeiten und Platzierungen angeht habe ich nicht. </p>
]]></content:encoded>
			<wfw:commentRss>http://die3sportarten.de/2010/11/saisonplanung-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ternary Operator, gefällt mir</title>
		<link>http://die3sportarten.de/2010/10/ternary-operator-gefallt-mir/</link>
		<comments>http://die3sportarten.de/2010/10/ternary-operator-gefallt-mir/#comments</comments>
		<pubDate>Wed, 20 Oct 2010 10:49:40 +0000</pubDate>
		<dc:creator>Henrico</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://die3sportarten.de/newStart/?p=13</guid>
		<description><![CDATA[Der Ternary Operator ist mal eine echt geile Sau. Quasi wie die Schönheit von Nebenan, die seit Jahren dort wohnt und  die man erst Klasse findet, nachdem man sich mit ihr auf einer Party unterhalten hat.
Bei mir war es so, ich hatte die Schreibweise häufig gesehen aber mir irgendwie nie Gedanken darum gemacht, ich [...]]]></description>
			<content:encoded><![CDATA[<p>Der Ternary Operator ist mal eine echt geile Sau. Quasi wie die Schönheit von Nebenan, die seit Jahren dort wohnt und  die man erst Klasse findet, nachdem man sich mit ihr auf einer Party unterhalten hat.<br />
Bei mir war es so, ich hatte die Schreibweise häufig gesehen aber mir irgendwie nie Gedanken darum gemacht, ich war da mehr so der &#8216;if-else&#8217;-Typ.</p>
<pre><code>if ($isTrue) {
$foo = $truth;
} else {
$foo = $lie;
}</code></pre>
<p>Aber es geht auch als Einzeiler.</p>
<pre><code> $foo = $isTrue ? $truth : $lie;</code></pre>
<p>Ist saugeil. Hauptverwendung ist bei mir wenn ich mit Slots in Templates arbeite.<br />
In php 5.3, wird’s noch kürzer.</p>
<pre><code>$textA ?: $textB;</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://die3sportarten.de/2010/10/ternary-operator-gefallt-mir/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ausgabe in symfony, ODF-Templates, jetzt wirds dreckig</title>
		<link>http://die3sportarten.de/2010/09/ausgabe-in-symfony-odf-templates-jetzt-wirds-dreckig/</link>
		<comments>http://die3sportarten.de/2010/09/ausgabe-in-symfony-odf-templates-jetzt-wirds-dreckig/#comments</comments>
		<pubDate>Tue, 21 Sep 2010 10:49:40 +0000</pubDate>
		<dc:creator>Henrico</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://die3sportarten.de/newStart/?p=28</guid>
		<description><![CDATA[Jede größere Firma hat so was wie eine Corporate Identity und somit auch meistens Briefpapier. Also sollte aus der  Applikation heraus ein Dokument mit Briefkopf generiert werden und das dann ausgedruckt werden. Mein erster Gedanke war einfach, wie bei der csv Datei den Header ändern mittels
$this->getResponse()->setHttpHeader('Content-Type', 'application/msword');  
Also ein Word ein Dokument vorgaukeln [...]]]></description>
			<content:encoded><![CDATA[<p>Jede größere Firma hat so was wie eine <em>Corporate Identity</em> und somit auch meistens Briefpapier. Also sollte aus der  Applikation heraus ein Dokument mit Briefkopf generiert werden und das dann ausgedruckt werden. Mein erster Gedanke war einfach, wie bei der csv Datei den Header ändern mittels</p>
<pre><code>$this->getResponse()->setHttpHeader('Content-Type', 'application/msword');  </code></pre>
<p>Also ein Word ein Dokument vorgaukeln und alles ist einfach und gut. Natürlich war gar nichts gut, das Layout wurde stets zerschossen und der Adresskopf war nie da wo er sein sollte. Außerdem hatten wir schon Word-Vorlagen. Die Word-Vorlagen habe ich dann mittels OpenOffice ins &#8220;.odt&#8221; Format gebracht.<br />
Um diese Templates dann zu verarbeiten, benutze ich die kleine Bibliothek <a href="http://www.odtphp.com/ ">odtphp</a>. Hier kann man mittels php in einem odt-Dokument Variablen var  in {var} ändern.Also Bibliothek wieder einbinden.</p>
<pre><code>require_once ("/library/odf.php");</code></pre>
<p>Nun zur Action</p>
<pre><code>public function executeInvoice(sfWebRequest $request){
  $odf = new odf( "odfTemplates/document.odt");</code></pre>
<p>Das hier ist der erste Knackpunkt, aber nur wenn man es nicht berücksichtigt. Irgendwo müssen ja die Templates liegen und sie liegen nicht beim Controller, sondern im &#8216;web&#8217; Unterordner von Symfony, da dort die Verarbeitung der Anfrage stattfindet. <strong>Jetzt wird es dreckig und schmutzig.</strong><br />
Da ich nun vorsätzlich die MVC- Struktur verletzte, denn nach der Theorie gehört Logik in den Controller und Ausgabe in die View, dass man häufiger auch mal Logik in die View packt ist ja bekannt, aber dieses Mal muss der Controller zur Ausgabe hinhalten. Da hier die Marker verarbeitet werden.</p>
<pre><code>$odf->setVars('variable', $variabeleValue );</code></pre>
<p>Die Ausagbe als Downloadbare Datei erfolgt mit der Funktion.</p>
<pre><code> $odf->exportAsAttachedFile('document.odt');</code></pre>
<p>Nun kommen wir zu Problem, dass symfony nach jedem Aufruf einer Action in der View ein Rückgabewert erwartet, umgehen kann man es mit, </p>
<pre><code>throw new sfStopException();</code></pre>
<p>Die Verarbeitung wird gestoppt und man kriegt ein schönes odt-Dokument.</p>
]]></content:encoded>
			<wfw:commentRss>http://die3sportarten.de/2010/09/ausgabe-in-symfony-odf-templates-jetzt-wirds-dreckig/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ausgabe in symfony, Export in eine CSV Datei</title>
		<link>http://die3sportarten.de/2010/09/ausgabe-in-symfony-export-in-eine-csv-datei/</link>
		<comments>http://die3sportarten.de/2010/09/ausgabe-in-symfony-export-in-eine-csv-datei/#comments</comments>
		<pubDate>Wed, 15 Sep 2010 10:49:40 +0000</pubDate>
		<dc:creator>Henrico</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://die3sportarten.de/newStart/?p=23</guid>
		<description><![CDATA[Eine CSV Datei ist eigentlich nur eine Komma getrennte Wertetabelle,
Wert1, wert1a, wert1b
wert2, wert2a, wert2b
Was für den Projektmanager die Gantt Diagramme sind, ist für die Buchhaltung und Banken CSV Datei, die kann man nämlich in Excel öffnen.
Schlüsselwort war eben schon genannt es ist &#8216;DATEI&#8217;, also klicken auf einen linkt es kommt so ein  &#8216;Datei Downloaden [...]]]></description>
			<content:encoded><![CDATA[<p>Eine CSV Datei ist eigentlich nur eine Komma getrennte Wertetabelle,<br />
Wert1, wert1a, wert1b<br />
wert2, wert2a, wert2b<br />
Was für den Projektmanager die Gantt Diagramme sind, ist für die Buchhaltung und Banken CSV Datei, die kann man nämlich in Excel öffnen.<br />
Schlüsselwort war eben schon genannt es ist &#8216;DATEI&#8217;, also klicken auf einen linkt es kommt so ein  &#8216;Datei Downloaden oder öffnen&#8217; Fenster.<br />
Als Vorbereitung brauchen wir hier eines neues Layout, also Hauptordner den &#8216;templates&#8217; eine neue Layout-Datei erstellen, hier &#8216;csvLayout.php&#8217; der Inhalt ist einfach gehalten</p>
<pre><code> echo $sf_data-&gt;getRaw('sf_content') </code></pre>
<p>.<br />
Fertig. super!<br />
Wir haben natürlich auch wieder eine Funktion,</p>
<pre><code>public function executeCsv(sfWebRequest $request)
{
/**coole Abfrage. Daten holen**/
//unsere Layout Datei setzten
$this-&gt;setlayout('csvLayout');
//die Standard ausgabe des Header löschen
$this-&gt;getResponse()-&gt;clearHttpHeaders();
//dem Browser erzählen was da kommt
$this-&gt;getResponse()-&gt;setHttpHeader('Content-Type', 'application/vnd.ms-excel');
//und die Datei heisst
$this-&gt;getResponse()-&gt;setHttpHeader('Content-Disposition', 'attachment;filename=umsatzanzeige.csv');
}</code></pre>
<p>In der View csvSuccess.php findet dann die Verabeitung der Daten statt.</p>
<pre><code>
foreach ($values as $v ):
echo $v-&gt;getId().',' .$v-&gt;getSome();
endforeach; </code></pre>
<p>Done, Buchhaltung ist glücklich.</p>
]]></content:encoded>
			<wfw:commentRss>http://die3sportarten.de/2010/09/ausgabe-in-symfony-export-in-eine-csv-datei/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

