<?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>the fancy part of the web</title>
	<atom:link href="http://blog.tolleiv.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.tolleiv.de</link>
	<description>is elsewhere - this is just about all sorts of web related work with a small factor of fanciness</description>
	<lastBuildDate>Sun, 25 Jul 2010 11:57:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>TYPO3 4.4 sprites in your extension&#8230;</title>
		<link>http://blog.tolleiv.de/2010/07/typo3-4-4-sprites-in-your-extension/</link>
		<comments>http://blog.tolleiv.de/2010/07/typo3-4-4-sprites-in-your-extension/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 08:00:29 +0000</pubDate>
		<dc:creator>tolleiv</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[sprite]]></category>
		<category><![CDATA[typo3]]></category>

		<guid isPermaLink="false">http://blog.tolleiv.de/?p=521</guid>
		<description><![CDATA[TYPO3 4.4 ships with a long list of improvements. One o [...]]]></description>
			<content:encoded><![CDATA[<p>TYPO3 4.4 ships with a long list of improvements. One of them is the sprite API which was developed during T3UXW09. It extends the iconWorks API and enables to retrieve any backend-icon from a central sprite.</p>
<p>As extension maintainer there are several ways to use these new parts of the API you can either just use it to display core icons, you can include your own icons and retrieve it with the new API or you can include your own sprite and retrieve the separate icons.</p>
<h4>Use sprite icons</h4>
<p>Using sprite icons is pretty easy, to get a checkmark icon you could use this:</p>
<pre name="code" class="php">t3lib_iconWorks::getSpriteIcon('status-dialog-ok');</pre>
<p>The list of all available icons can be retrieved using the &#8216;<strong><a href="http://typo3.org/extensions/repository/view/spriteiconoverview/current/">spriteiconoverview</a></strong>&#8216; extension which I just recently pushed into the TER <img src='http://blog.tolleiv.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h4>Add your own icons</h4>
<p>The API also provides the possibility to include your extension&#8217;s icons using either single icons or your own icon sprite.<br />
Using single icons can be done with the following code in your ext_tables.php or ext_localconf.php:</p>
<pre name="code" class="php">
$icons = array(
     'myicon' => t3lib_extMgm::extRelPath('myextension') . 'myicon.gif'
);
t3lib_SpriteManager::addSingleIcons($icons, 'myextension');
</pre>
<p>Using this icon is easy again:</p>
<pre name="code" class="php">t3lib_iconWorks::getSpriteIcon('extensions-myextension-myicon');</pre>
<p>If your extension comes with a larger amount of icons you might want to use your own sprite. This includes your sprite as a image file and a CSS file. The css file should look like this:</p>
<pre name="code" class="php">
.t3-icon-extensions-myextension {
     background-image:url(../../typo3conf/ext/myextension/myextension_sprite.gif);
}
.t3-icon-extensions-myextension-icon1 {	background-position: 0px 0px; }
.t3-icon-extensions-myextension-icon2 {	background-position: 0px -16px; }
</pre>
<p> The path to your sprite needs to be relative to the typo3temp/sprites/ folder, from where the (temporary) merged CSS file will be included.<br />
This sprite can be included using:</p>
<pre name="code" class="php">
$icons = array(
     'extensions-myextension-icon1',
     'extensions-myextension-icon2'
);
t3lib_SpriteManager::addIconSprite(
     $icons,
     t3lib_extMgm::siteRelPath('myextension') . 'myextension_sprite.css'
);
</pre>
<p>As you see it&#8217;s quite easy to include the new API, the API provides some further options for overlays and further modifications which I didn&#8217;t mention here. And as a final motivation this is a comparison between old and new API to get a &#8220;back&#8221; button:</p>
<pre name="code" class="php">
// old API
$icon = '&lt;img' . t3lib_iconWorks::skinImg($this->doc->backPath,'gfx/goback.gif','width="14" height="14"') . 'alt="" />';

// new API
$icon = t3lib_iconWorks::getSpriteIcon('actions-view-go-back');
</pre>
<p>&#8212;-<br />
The sprite API is quite new and my knowledge about how to use it is also relatively fresh &#8211; so please let me know if you&#8217;ve any remarks or questions.<br />
Btw. special kudos for his involvement during the implementation of this nice feature and many many thanks for helping me to understand it, to <a href="http://www.rs-websystems.de/">Steffen Ritter</a>  <img src='http://blog.tolleiv.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
&#8212;-<br />
Further reading:</p>
<ul>
<li>If you&#8217;ve never heard of sprites you might want to read this article an <a href="http://www.alistapart.com/articles/sprites">alistapart.com</a></li>
<li><a href="http://typo3.org/download/release-notes/typo3-44/">TYPO3 4.4 release notes</a></li>
<li><a href="http://news.typo3.org/news/article/t3dd10-its-all-about-sprites/">news.typo3.org &#8211; T3DD10: It&#8217;s all about sprites</a></li>
<li><a href="http://typo3.org/extensions/repository/view/spriteiconoverview/current/">spriteiconoverview</a> extension</li>
</ul>
<p>&#8212;-</p>
 <p>Feel free to Flattr this post at <a href="http://flattr.com/" title="Flattr" target="_blank">flattr.com</a>, if you like it.</p> <p><a href="http://flattr.com/" title="Flattr" target="_blank"><img src="http://blog.tolleiv.de/wp-content/plugins/flattrss/button-compact-static-100x17.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.tolleiv.de/2010/07/typo3-4-4-sprites-in-your-extension/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>T3DD10 Git workshop</title>
		<link>http://blog.tolleiv.de/2010/07/t3dd10-git-workshop/</link>
		<comments>http://blog.tolleiv.de/2010/07/t3dd10-git-workshop/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 22:11:29 +0000</pubDate>
		<dc:creator>tolleiv</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[typo3]]></category>

		<guid isPermaLink="false">http://blog.tolleiv.de/?p=512</guid>
		<description><![CDATA[I just found that Peter shares the slides of the Git wo [...]]]></description>
			<content:encoded><![CDATA[<p>I just found that <a href="http://www.xing.com/profile/Peter_Niederlag">Peter</a> shares the slides of the Git workshop from the T3DD10 on <a href="http://www.slideshare.net/jugglefish/t3dd10-git">slideshare</a>. Since this 4 hour workshop was &#8211; for many reasons &#8211; one of my favorites during the T3DD10, I felt that it&#8217;s worth to mention it. And due to the fact that TYPO3 is moving very fast towards Git it&#8217;s worth to look at them <img src='http://blog.tolleiv.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  &#8212; <a href="http://www.slideshare.net/jugglefish/t3dd10-git">Open workshop slides</a></p>
<p>Btw. at the beginning I didn&#8217;t belief that a Git workshop could fill 4 hours &#8211; now I don&#8217;t think that shorter workshops make any sense <img src='http://blog.tolleiv.de/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<script type="text/javascript">
var flattr_wp_ver = '0.9.11';
var flattr_uid = '23199';
var flattr_url = 'http://blog.tolleiv.de';
var flattr_lng = 'en_GB';
var flattr_cat = 'text';
var flattr_tag = 'blog,wordpress,rss,feed';
var flattr_btn = 'large';
var flattr_tle = 'the fancy part of the web';
var flattr_dsc = 'is elsewhere - this is just about all sorts of web related work with a small factor of fanciness';
</script>
<script src="http://api.flattr.com/button/load.js?v=0.2" type="text/javascript"></script> <p>Feel free to Flattr this post at <a href="http://flattr.com/" title="Flattr" target="_blank">flattr.com</a>, if you like it.</p> <p><a href="http://flattr.com/" title="Flattr" target="_blank"><img src="http://blog.tolleiv.de/wp-content/plugins/flattrss/button-compact-static-100x17.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.tolleiv.de/2010/07/t3dd10-git-workshop/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using git svn for TYPO3 extension development</title>
		<link>http://blog.tolleiv.de/2010/06/git-svn-for-typo3-extension-development/</link>
		<comments>http://blog.tolleiv.de/2010/06/git-svn-for-typo3-extension-development/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 06:00:30 +0000</pubDate>
		<dc:creator>tolleiv</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[typo3]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://blog.tolleiv.de/?p=391</guid>
		<description><![CDATA[When I first saw a presentation about Git 2 years ago I [...]]]></description>
			<content:encoded><![CDATA[<p>When I first saw a presentation about Git 2 years ago I liked it, but I was convinced that Subversion covers all I need. Things have changed and especially the bad performance of Subversion for larger repositories and the need to commit things without messing up the official trunk motivated me to look up how to get started with Git. If you need more reasons why you should look into Git, you&#8217;ll find them in <a href="#git-sources">[7]</a> &#8211; anyways it&#8217;s worth to have a look how I managed to work with it <img src='http://blog.tolleiv.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>There are basically 2½ different tasks during the &#8220;daily&#8221; development.</p>
<ol start="0">
<li><em>Create a local working copy a.k.a clone the repository</em>
<li>Fix a bug or implement a feature and create a patch file with the changes</li>
<li>Receive a patch and review it &#8211; eventually commit the changes</li>
</ol>
<h4>0. Repository initialization</h4>
<p>Getting started and creating the repository from an existing Subversion repository looks like this:</p>
<pre name="code" class="php">mkdir templavoila
cd templavoila
git svn init -t tags -b branches -T trunk https://svn.typo3.org/TYPO3v4/Extensions/templavoila
git-svn fetch</pre>
<p>This will pull the entire SVN history into your local Git repository &#8211; use &#8220;git-svn fetch -r <revision>&#8221; to reduce the amount of imported revisions. </p>
<p>To keep your repository up-to-date you need these commands:</p>
<pre name="code" class="php">git stash
git-svn fetch
git rebase trunk
git stash apply</pre>
<p>If you followed the SVN trunk/tags/branches convention you should see that it also finds tags and branches during the import. But using &#8220;git branch&#8221; afterwards you&#8217;ll see that there&#8217;s only one local branch called &#8220;master&#8221;. That&#8217;s where Git shows it&#8217;s strength the first time, because it distinguishes between local and remote branches. Work can only be done within local branches, whereas the existing SVN branches are only recognized as &#8220;remote&#8221; branches so far. To list all remote branches you can use &#8220;git branch -r&#8221;. If you followed the trunk/tags/branches convention, you should see your SVN tags and branches within this list &#8211; otherwise you might want to read <a href="#git-sources">[8]</a>. To make a remote (SVN) branch available in your local repository use:</p>
<pre name="code" class="php">git checkout --track -b tv_1-4 templavoila_1-4</pre>
<h4>1. Working with the repository</h4>
<p>Starting to work on a new feature or a bug always starts with a new branch in git:</p>
<pre name="code" class="php">git branch issue00012345
git checkout issue00012345</pre>
<p>You&#8217;re now working in the &#8220;issue00012345&#8243; branch and all commits will just be committed to that branch. Once you made changes  you can either just commit all modifications with:</p>
<pre name="code" class="php">git commit -a</pre>
<p>or add particular files and commit only these files with:</p>
<pre name="code" class="php">git add fileA
git add fileB
git commit</pre>
<p>or with a nice pre commit preview which lets you decide which lines you want to commit:</p>
<pre name="code" class="php">git add --patch
git commit</pre>
<p><strong>Preparing the patch for the mailingslist:</strong><br />
In a pure Git workflow &#8220;git format-patch&#8221; is used to communicate patches, but due to the fact that there&#8217;s a Subversion repository involved either the old style diff / patch or a workaround needs to be used to communicate changes.<br />
Creating a patch which works for the mailinglist can basically be done using:</p>
<pre name="code" class="php">git diff --no-prefix master &gt; myPatchFile.patch</pre>
<p>An alternative workaround to create proper SVN diff files (including svn revision etc..) can be found in <a href="#git-sources">[10]</a> it&#8217;s used very straight forward:</p>
<pre name="code" class="php">git svn-diff &gt; mySvnPatchFile.patch</pre>
<h4>2. Review and commit patches</h4>
<p><strong>Reviewing the patch someone sent to the list:</strong><br />
As &#8220;usual&#8221;
<pre name="code" class="php">patch -p0 &lt; myPatchFile.patch</pre>
<p> can be used to apply patch files.</p>
<p>Once the files passed the review the changes can be committed using &#8220;<strong>git add</strong>&#8221; and &#8220;<strong>git commit</strong>&#8221; as shown before.</p>
<p><strong>Committing to Subversion:</strong><br />
Once you committed everything to your local repository you&#8217;re able to perform this command to &#8220;forward&#8221; your commits to the Subversion repository. </p>
<pre name="code" class="php">git svn dcommit</pre>
<p>Practically every single commit within git will also be reflected as a single Subversion commit. For several reason this might not always suit your situation.As a workaround you could merge all commits during the merge of your feature branches into the master branch using:</p>
<pre name="code" class="php">git merge --commit --squash issue00012345
git svn dcommit</pre>
<p>Of course I don&#8217;t recommend to do this for your regular work since have small granular commits is always better.</p>
<h4>Sources and further reading</h4>
<p><a name="git-sources"></a>[1] <a href="http://spyced.blogspot.com/2009/06/patch-oriented-development-made-sane.html">Patch-oriented development made sane with git-svn</a><br />
[2] <a href="http://utsl.gen.nz/talks/git-svn/intro.html#using">An introduction to git-svn for Subversion/SVK users and deserters</a><br />
[3] <a href="http://git-scm.org/course/svn.html">Git &#8211; SVN Crash Course</a><br />
[4] <a href="http://trac.parrot.org/parrot/wiki/git-svn-tutorial">Getting the GIT checkout</a><br />
[5] <a href="http://nathanj.github.com/gitguide/tour.html">An Illustrated Guide to Git on Windows</a><br />
[6] <a href="http://stackoverflow.com/questions/1129688/git-svn-workflow-feature-branches-and-merge">git svn workflow &#8211;<br />
feature branches and merge</a><br />
[7] <a href="http://whygitisbetterthanx.com/#any-workflow">whygitisbetterthanx.com</a><br />
[8] <a href="http://www.dmo.ca/blog/20070608113513/">Multiple branches using git-svn</a><br />
[9] <a href="http://www.viget.com/extend/effectively-using-git-with-subversion/">Effectively using Git with subversion</a><br />
[10] <a href="http://mojodna.net/2009/02/24/my-work-git-workflow.html">Git Workflow with Upstream SVN</a></p>
<h4>Notes</h4>
<ul>
<li>Don&#8217;t try to dcommit to https://svn.typo3.org/TYPO3v4/Extensions/templavoila unless you know what you&#8217;re doing &#8211; I just used it to show you that it&#8217;s even working with large history projects.</öo>
<li>For projects hosted on forge.typo3.org there might be a native git support soon &#8211; stay tuned</li>
<li>Let me know if you had problems with any of the snippets</li>
<li>Further information about the review process for the TYPO3 Core and several other TYPO3 related projects can be found on <a href="http://typo3.org/teams/core/resources/maintenance-policy/">typo3.org</a></li>
</ul>
 <p>Feel free to Flattr this post at <a href="http://flattr.com/" title="Flattr" target="_blank">flattr.com</a>, if you like it.</p> <p><a href="http://flattr.com/" title="Flattr" target="_blank"><img src="http://blog.tolleiv.de/wp-content/plugins/flattrss/button-compact-static-100x17.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.tolleiv.de/2010/06/git-svn-for-typo3-extension-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TYPO3 workspaces</title>
		<link>http://blog.tolleiv.de/2010/06/typo3-workspaces/</link>
		<comments>http://blog.tolleiv.de/2010/06/typo3-workspaces/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 17:54:47 +0000</pubDate>
		<dc:creator>tolleiv</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[typo3]]></category>
		<category><![CDATA[workspaces]]></category>

		<guid isPermaLink="false">http://blog.tolleiv.de/?p=488</guid>
		<description><![CDATA[One of the enterprise features TYPO3 has to offer is ve [...]]]></description>
			<content:encoded><![CDATA[<p>One of the enterprise features TYPO3 has to offer is versioning and workspace handling. <a href="http://typo3.org/community/people/kaspers-korner/">Kasper</a> did a great job when he initially brough these featues into TYPO3. Unfortunately during the last years they became orphans and nobody really took care of them. There are multiple reasons for that, one was that Kasper didn&#8217;t allow big changes, another one was that everyone was somehow able to live with the existing odds they had but probable the most important one was that it was just to complicated to improve them alone without knowing the big picture.</p>
<p>The good news is that these times are over and that some important changes to improve workspace handling are planned for<br />
 the upcomming TYPO3 4.5 (read more on <a href="http://news.typo3.org/news/article/bringing-workspaces-up-to-speed/">TYPO3.org</a>) and the cool news is that I was lucky enough to be part of that team and that I was able to attend a great &#8220;kickoff&#8221; meeting two weeks ago.</p>
<p>What changes we plan can be found on <a href="http://news.typo3.org/news/article/bringing-workspaces-up-to-speed/">TYPO3.org</a>, a detailed protocol of the meeting can be found <a href="http://forge.typo3.org/attachments/download/3190/2010-06-01_TYPO3_Versioning_and_Workspaces_Meeting.pdf ">here</a> in addition.</p>
<p>I&#8217;m happy to be part of that and I hope everyone on the team can keep up his/her motivation.</p>
<script type="text/javascript">
var flattr_wp_ver = '0.9.11';
var flattr_uid = '23199';
var flattr_url = 'http://blog.tolleiv.de';
var flattr_lng = 'en_GB';
var flattr_cat = 'text';
var flattr_tag = 'blog,wordpress,rss,feed';
var flattr_btn = 'large';
var flattr_tle = 'the fancy part of the web';
var flattr_dsc = 'is elsewhere - this is just about all sorts of web related work with a small factor of fanciness';
</script>
<script src="http://api.flattr.com/button/load.js?v=0.2" type="text/javascript"></script> <p>Feel free to Flattr this post at <a href="http://flattr.com/" title="Flattr" target="_blank">flattr.com</a>, if you like it.</p> <p><a href="http://flattr.com/" title="Flattr" target="_blank"><img src="http://blog.tolleiv.de/wp-content/plugins/flattrss/button-compact-static-100x17.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.tolleiv.de/2010/06/typo3-workspaces/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>tiny update&#8230;</title>
		<link>http://blog.tolleiv.de/2010/05/tiny-update/</link>
		<comments>http://blog.tolleiv.de/2010/05/tiny-update/#comments</comments>
		<pubDate>Sat, 08 May 2010 16:20:34 +0000</pubDate>
		<dc:creator>tolleiv</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[typo3]]></category>
		<category><![CDATA[viral web]]></category>

		<guid isPermaLink="false">http://blog.tolleiv.de/?p=479</guid>
		<description><![CDATA[I'm pretty busy in these days and unfortunately there's [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m pretty busy in these days and unfortunately there&#8217;s not much time to write blogposts. In detail there&#8217;s currently a long list of feature wishes and bugs for TemplaVoila which need my attention and in addition I also already started to prepare a workshop for the <a href="http://t3dd10.typo3.org/">T3DD10</a> about Git*.</p>
<p>Just to keep this blog alive this is what I found interesting during the last weeks:</p>
<p>For TYPO3 enthusiasts especially the changes within the TYPO3 Core regarding the integration of further T3UX09 results and all the small changes which happen to get 4.4 ready might be of the biggest interest (<a href="https://svn.typo3.org/TYPO3v4/Core/trunk/ChangeLog">https://svn.typo3.org/TYPO3v4/Core/trunk/ChangeLog</a>). Besides that Sebastian Kurfürst tweeted that he finished the last chapter of his Extbase/Fluid book and Amazon says that they deliver it in the first weeks of July. I think once his book is out we&#8217;ll see much more people starting to work with Extbase and Fluid.<br />
It also seems that the TYPO3 v5 project &#8212; called &#8220;Phoenix&#8221; &#8212; is getting more and more relevant. They decided to <a href="http://news.typo3.org/news/article/scrumify-phoenix/">scrumify the delvelopment</a> and started to do Sprints to achieve quick and visible results. Sounds like a good way to go &#8211; let&#8217;s see how long they keep that up. Besides that there&#8217;s also an interesting mail Robert Lemke posted in a newsgroup to answer the rumors about the why v5 takes so long and why they had to start from scratch and so on &#8211; <a href="http://lists.typo3.org/pipermail/typo3-dev/2010-April/039958.html">very interesting statements</a>.</p>
<p>Besides that you might like these bits and bytes:</p>
<ul>
<li><a href="http://sebastian-bergmann.de/archives/885-Stubbing-Hard-Coded-Dependencies.html">Sebastian Bergmanns &#8220;testing untestable code&#8221; series</a></li>
<li><a href="http://www.normansblog.de/demos/browser-support-checklist-css3/">CSS3 browser compatibility checklist</a></li>
<li><a href="http://buzz.typo3.org/teams/core/article/43-treasure-trove-the-system-registry/">TYPO3 4.3 Treasure Trove: the system registry</a></li>
</ul>
<hr/>
*If anyone wants to help with the Git workshop or has suggestions feel free to contact me. I don&#8217;t feel really prepared for it yet but I also think that someone has to present Git to the TYPO3 community since Subversion kinda sucks in certain aspects &#8211; also the workshop itself is not confirmed yet but I&#8217;m pretty sure it will happen since lot&#8217;s of people are interested to hear about it.</p>
 <p>Feel free to Flattr this post at <a href="http://flattr.com/" title="Flattr" target="_blank">flattr.com</a>, if you like it.</p> <p><a href="http://flattr.com/" title="Flattr" target="_blank"><img src="http://blog.tolleiv.de/wp-content/plugins/flattrss/button-compact-static-100x17.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.tolleiv.de/2010/05/tiny-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crawler 3.1 release + podcast</title>
		<link>http://blog.tolleiv.de/2010/04/crawler-3-1-release-and-podcast/</link>
		<comments>http://blog.tolleiv.de/2010/04/crawler-3-1-release-and-podcast/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 22:35:20 +0000</pubDate>
		<dc:creator>tolleiv</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[crawler]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[typo3]]></category>

		<guid isPermaLink="false">http://blog.tolleiv.de/?p=416</guid>
		<description><![CDATA[Nearly a month after version 3.0.5, we published 3.1.0  [...]]]></description>
			<content:encoded><![CDATA[<p>Nearly a month after version 3.0.5, we published 3.1.0 of the well known crawler extension today. The main work for that step was related to several bugfixes, a better scheduler integration, some CLI-API enhancements, better testcases and (finally) some documentation updates. Most kudos go to Michael Klapper who took over the responsibility for this release and who also fixed a decent amount of bugs.<br />
You can download the extension in the <a href="http://typo3.org/extensions/repository/view/crawler/current/">TER </a> and hopefully this time OpenOffice didn&#8217;t trick us again and you&#8217;ll be able to see a shiny new extension manual on typo3.org as well.</p>
<p>Besides that, Kasper just released the podcast with me talking about version 3.0 of the crawler and about further improvements for the staticpub extension. You&#8217;ll find that on <a href="http://typo3.org/podcasts/kasper">typo3.org/podcasts/kasper</a>.</p>
<script type="text/javascript">
var flattr_wp_ver = '0.9.11';
var flattr_uid = '23199';
var flattr_url = 'http://blog.tolleiv.de';
var flattr_lng = 'en_GB';
var flattr_cat = 'text';
var flattr_tag = 'blog,wordpress,rss,feed';
var flattr_btn = 'large';
var flattr_tle = 'the fancy part of the web';
var flattr_dsc = 'is elsewhere - this is just about all sorts of web related work with a small factor of fanciness';
</script>
<script src="http://api.flattr.com/button/load.js?v=0.2" type="text/javascript"></script> <p>Feel free to Flattr this post at <a href="http://flattr.com/" title="Flattr" target="_blank">flattr.com</a>, if you like it.</p> <p><a href="http://flattr.com/" title="Flattr" target="_blank"><img src="http://blog.tolleiv.de/wp-content/plugins/flattrss/button-compact-static-100x17.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.tolleiv.de/2010/04/crawler-3-1-release-and-podcast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TemplaVoila 1.4.2 released</title>
		<link>http://blog.tolleiv.de/2010/03/templavoila-1-4-2-released/</link>
		<comments>http://blog.tolleiv.de/2010/03/templavoila-1-4-2-released/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 23:39:53 +0000</pubDate>
		<dc:creator>tolleiv</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[templavoila]]></category>
		<category><![CDATA[typo3]]></category>

		<guid isPermaLink="false">http://blog.tolleiv.de/?p=375</guid>
		<description><![CDATA[Yesterday the 2nd team release of TemplaVoila was uploa [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday the 2nd team release of TemplaVoila was uploaded into the <a title="TemplaVoila in the TER" href="http://typo3.org/extensions/repository/view/templavoila/current/" target="_blank">TER</a>. It&#8217;s basically a maintenance release which fixes more than 100 bugs. But since we haven&#8217;t been that straight distinguishing between bug and usability feature, you&#8217;ll see a couple of new things within this release.</p>
<p>The high level release notes are:</p>
<ul>
<li> page module is now customizable with CSS and JavaScript</li>
<li> handling of static data structures are improved and fully working now</li>
<li> wizards are improved, new page wizard is more explaining</li>
<li> visual cleanups</li>
<li> new hooks for eTypes (elements added by mapping interface)</li>
<li> new classes for preview in page module, easy to override by extensions</li>
<li> added missing localisations</li>
<li> enhanced drag-and-drop in page module</li>
<li> over 100 Bugs are fixed</li>
<li> updated manual</li>
</ul>
<p>During the installation your TYPO3 Extension Manager will ask to perform a couple of database upgrades. These upgrades aren&#8217;t really critical because they just enlarge some database fields, which will make sure that your data really fit&#8217;s in.</p>
<p>Just to point one thing out &#8211; especially the page module has been improved to be more flexible in certain parts.</p>
<p>These lines of TSConfig can be used to add CSS or JavaScript into the page module and enable easy customizations:</p>
<pre name="code" class="php">mod.web_txtemplavoilaM1.stylesheet = ../fileadmin/css/tvpagemodule.css

mod.web_txtemplavoilaM1.javascript {
  file1 = ../fileadmin/templates/js/jquery.js
  file2 = ../fileadmin/templates/css/backend.js
}</pre>
<p> Further customizations is provided using the &#8220;<strong>mod.web_txtemplavoilaM1.blindIcons</strong>&#8221; configuration or with individual content preview classes (configured though &#8220;<strong>$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['templavoila']['mod1']['renderPreviewContent']</strong>&#8221; &#8211; see ext_localconf.php).</p>
<p>We haven&#8217;t discussed what the direction for the next versions really looks like. From my perspective better TYPO3 integration, some kind of code cleanup and also the integration of some features which arise with TYPO3 4.4 will be somehow on our schedule. But since <a href="http://blog.tolleiv.de/2010/03/re-farewell-templavoila/">TemplaVoila isn&#8217;t a one man show anymore</a>, this isn&#8217;t just my decision and in addition I&#8217;d like to encourage everyone to send feedback, bugfixes or new features just to give us an impression what you like or dislike in the current version.</p>
<p>Last but not least, I&#8217;d like to thank everyone who was somehow involved in the release, especially Steffen Kamper who shared lot of inspiration and who has spent many hours to debug and fix some really tricky issues.</p>
 <p>Feel free to Flattr this post at <a href="http://flattr.com/" title="Flattr" target="_blank">flattr.com</a>, if you like it.</p> <p><a href="http://flattr.com/" title="Flattr" target="_blank"><img src="http://blog.tolleiv.de/wp-content/plugins/flattrss/button-compact-static-100x17.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.tolleiv.de/2010/03/templavoila-1-4-2-released/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Re: Farewell, TemplaVoila!</title>
		<link>http://blog.tolleiv.de/2010/03/re-farewell-templavoila/</link>
		<comments>http://blog.tolleiv.de/2010/03/re-farewell-templavoila/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 23:04:08 +0000</pubDate>
		<dc:creator>tolleiv</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[templavoila]]></category>
		<category><![CDATA[typo3]]></category>

		<guid isPermaLink="false">http://blog.tolleiv.de/?p=356</guid>
		<description><![CDATA[Dmitry decided to leave the TemplaVoilà project today  [...]]]></description>
			<content:encoded><![CDATA[<p>Dmitry decided to leave the TemplaVoilà project today and he handed the extension-leadership to me. Since this is a very abrupt change and since there was lot&#8217;s of (mis)communication involved I&#8217;d like to use this blogpost to answer his <a href="http://dmitry-dulepov.com/article/farewell-templavoila.html">&#8220;Farewell, TemplaVoila!&#8221;</a> post (he turned off the commenting function).</p>
<p>As you might know Steffen Kamper and I joined the TemplaVoilà team some time ago and since Dmitry wasn&#8217;t very motivated to maintain the extension anymore, we took over and tried to make TemplaVoilà ready for TYPO3 4.3 <em>(see Dmitry&#8217;s clarification below)</em>. We also tried to get rid of the over 250 listed bugs from bugs.typo3.org. This went fine for quite some time and we released version 1.4.0 and 1.4.1 in November parallel to TYPO3 4.3. Unfortunately the release come a little too fast for us and a couple of major bugs couldn&#8217;t be fixed by that time. After that release we had a meeting with Dmitry and we all agreed to release 1.4.2 in the beginning of January. We found and fixed tons of bugs and also implemented long awaited features in the meantime. We also had the luck that others found new motivation and started to send feedback and started to test TemplaVoilà with us. (Special thanks to Uschi, Jeff and Ron).<br />
Three weeks ago we decided that the current state is &#8220;ready to release&#8221; and we told Dmitry that it&#8217;s up to him to release 1.4.2. Quite some time passed by and today he used several channels (Twitter, Facebook and Newsgroups) to tell the world what he found:</p>
<blockquote><p><em>No TV 1.4.2 release soon. Found a bug in page module with unlinking in 1 minute after starting tests. I am severely disappointed by this <img src='http://blog.tolleiv.de/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </em></p></blockquote>
<p>He was right &#8211; a very obvious bug showed up in the page-module within TYPO3 4.2. Unfortunately nobody saw it and it also seems that some of us are still unable to reproduce it. Anyways &#8212; in my opinion &#8212; he choose the wrong way to communicate that. Instead of talking to Steffen and me, he decided to talk to anyone else. I wrote him a mail and told him that I didn&#8217;t like the way he brought this up and asked for a Skype meeting to discuss how to proceed. After serveral emails back and forth and after others joined the communication, Dmitry decided (without anyone of us asking for it) to leave the team and hand over the leadership. To make it clear to everyone: the discussion started because of one JavaScript error and a few icons in the backend which he didn&#8217;t like very much. The Skype meeting never happend &#8211; although it would have saved lot&#8217;s of time and confusion for all of us.</p>
<p>I&#8217;m not very happy with his decision, because this leaves lot&#8217;s of questions and because we loose a very diligent developer. But it seems that there&#8217;s currently no way to convince him that he might be wrong. </p>
<p>As team Steffen and I will try to continue the development and improvement of TemplaVoilà, especially because it&#8217;s one of the most important benefits TYPO3 can offer. I ask everyone to join and contribute some time for testing or feedback. I dislike Dmitry&#8217;s approach to fork TemplaVoila and host it somewhere else <em>(see Dmitry&#8217;s clarification below)</em>. I&#8217;m inviting him to rejoin the team at any time and work in a constructive way with us. I&#8217;m still convinced that all this just happend because miscommunication and not because of &#8220;real&#8221; issues.</p>
<p>&#8212;<br />
In addition it also seems that others offended Dmitry and asked him <em>not to stop the process anymore</em> &#8211; I understand his distraction. He did a very good job in the past, he was open for our improvements and his biggest concern was quality not power or money or anything. Being offended for something you do in your freetime without any payment and being offended by people, who earn money from their clients with your (free) work, is always distracting. Please think about that in future communications with any open source software developer.</p>
<p>&#8212;<br />
If you wonder how to get in touch with us: http://bugs.typo3.org lists all known bugs and their status. Report new bugs there or try to add new information to existing ones. Team discussion, in regards to fixed bugs or new features, happens, compareable to the <a href="http://typo3.org/teams/core/core-mailinglist-rules/">TYPO3 Core</a>, in the &#8220;typo3.team.templavoila&#8221; list on &#8220;lists.typo3.org&#8221;. If you need regular feedback or help with TemplaVoilà please use the &#8220;typo3.projects.templavoila&#8221; list.</p>
<p>&#8212;<br />
* Update 05.03.2010: After I posted that the link to that blogpost on Facebook, Dmitry commented it and just to be fair, that&#8217;s what he said:</p>
<blockquote><p><em>Thanks for your post. It is fair and explains the situation well. I would only clarify two moments: (1) I am not forking TV but creating a version for myself. I do not plan to release it to TER or anywhere. It is a TV for me as personally I like it (2) &#8220;Dmitry wasn’t very motivated to maintain the extension anymore&#8221; is not exactly so, rather to my taste TV already did all it had to do. I invited others to move TV further because I did not need anything else from it. Thanks again.</em></p></blockquote>
<script type="text/javascript">
var flattr_wp_ver = '0.9.11';
var flattr_uid = '23199';
var flattr_url = 'http://blog.tolleiv.de';
var flattr_lng = 'en_GB';
var flattr_cat = 'text';
var flattr_tag = 'blog,wordpress,rss,feed';
var flattr_btn = 'large';
var flattr_tle = 'the fancy part of the web';
var flattr_dsc = 'is elsewhere - this is just about all sorts of web related work with a small factor of fanciness';
</script>
<script src="http://api.flattr.com/button/load.js?v=0.2" type="text/javascript"></script> <p>Feel free to Flattr this post at <a href="http://flattr.com/" title="Flattr" target="_blank">flattr.com</a>, if you like it.</p> <p><a href="http://flattr.com/" title="Flattr" target="_blank"><img src="http://blog.tolleiv.de/wp-content/plugins/flattrss/button-compact-static-100x17.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.tolleiv.de/2010/03/re-farewell-templavoila/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Handling data in TYPO3 with tcemain</title>
		<link>http://blog.tolleiv.de/2010/03/handling-data-in-typo3-with-tcemain/</link>
		<comments>http://blog.tolleiv.de/2010/03/handling-data-in-typo3-with-tcemain/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 07:05:16 +0000</pubDate>
		<dc:creator>tolleiv</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[typo3]]></category>

		<guid isPermaLink="false">http://blog.tolleiv.de/?p=312</guid>
		<description><![CDATA[TYPO3 is (by definition) a powerful tool when it comes  [...]]]></description>
			<content:encoded><![CDATA[<p>TYPO3 is (by definition) a powerful tool when it comes to data. Besides creating, updating and deleting data there are also localizing and versioning, logging and even rollbacks. All this is provided through the GUI of TYPO3 and all the technical stuff in working under the hood of TYPO3 for nearly every piece of data. But what if you&#8217;re asked to write a script which imports or updates data, how can you make sure that all this is done in a TYPO3 compatible way?</p>
<p>The lazy programmers approach is to write up SQL, but that&#8217;s not what&#8217;s recommended if you still want the full TYPO3 featureset to be available for you (without reinventing the wheel). In this case the TYPO3 core class tslib_tcemain (short tcemain) is what you&#8217;re looking for. For the mentioned tasks there are two main functions relevant &#8211; <strong>process_cmdmap()</strong> and <strong>process_datamap()</strong>. The <strong>process_cmdmap()</strong> performs actions like &#8220;move&#8221;, &#8220;copy&#8221;, &#8220;localize&#8221;, &#8220;version&#8221; (create, stage, swap, flush), &#8220;delete&#8221; and &#8220;undelete&#8221;. The <strong>process_datamap()</strong> does the rest &#8211; creating records, updating datafields. Controlling both of them is done with configuration arrays and that&#8217;s how it looks like**:</p>
<p><strong>Creating a record*: </strong></p>
<pre name="code" class="php">$data = array();
$data['tt_content']['NEW'] = array(
	'pid' => 100,
	'header' => 'A new thing'
);

$tce = t3lib_div::makeInstance ('t3lib_TCEmain');
$tce->start ($data, array());
$tce->process_datamap ();

echo "The new element has the uid ".$tce->substNEWwithIDs['NEW'];
</pre>
<p>Creates a new tt_content record on page 100 with the header set to &#8220;A new thing&#8221;. </p>
<p><strong>Updating data*:</strong></p>
<pre name="code" class="php">$data = array();
$data['tt_content']['110'] = array(
	'header' => 'A really new thing'
);

$tce = t3lib_div::makeInstance ('t3lib_TCEmain');
$tce->start ($data, array());
$tce->process_datamap ();</pre>
<p>Updates the header field of the content element with the uid 110 to &#8220;A really new thing&#8221;.</p>
<p><strong>Move data from one page to another*:</strong></p>
<pre name="code" class="php">$cmd = array();
$cmd['tt_content']['110']['move'] = 101;

$tce = t3lib_div::makeInstance ('t3lib_TCEmain');
$tce->start (array(), $cmd);
$tce->process_cmdmap ();</pre>
<p>Moves the tt_content record with the uid 110 to the page 101.</p>
<p><strong>Copy data from one page to another*:</strong></p>
<pre name="code" class="php">$cmd = array();
$cmd['tt_content']['110']['copy'] = 101;

$tce = t3lib_div::makeInstance ('t3lib_TCEmain');
$tce->start (array(), $cmd);
$tce->process_cmdmap ();</pre>
<p>Copythe tt_content record with the uid 110 to the page 101.</p>
<p><strong>Localize your record*:</strong></p>
<pre name="code" class="php">$cmd = array();
$cmd['tt_content']['110']['localize'] = 5;

$tce = t3lib_div::makeInstance ('t3lib_TCEmain');
$tce->start (array(), $cmd);
$tce->process_cmdmap ();</pre>
<p>This creates a localization for the language 5 of the tt_content record with uid 110 (assuming that the tt_content record 110 is a default language record).</p>
<p><strong>Delete*:</strong></p>
<pre name="code" class="php">$cmd = array();
$cmd['tt_content']['110']['delete'] = true;

$tce = t3lib_div::makeInstance ('t3lib_TCEmain');
$tce->start (array(), $cmd);
$tce->process_cmdmap ();</pre>
<p>Deletes the tt_content record with the uid 110.</p>
<p><strong>Undelete*:</strong></p>
<pre name="code" class="php">$cmd = array();
$cmd['tt_content']['110']['undelete'] = true;

$tce = t3lib_div::makeInstance ('t3lib_TCEmain');
$tce->start (array(), $cmd);
$tce->process_cmdmap ();</pre>
<p>Restores the tt_content record with the uid 110 &#8211; if it&#8217;s deleted.</p>
<p>&#8212;-</p>
<p>* Running the codes requires a TYPO3 backend context with a logged in backend user who has the right to perform all these actions. In addition tcemain has some configuration options to change the behaviour of the actions, e.g. &#8220;$enableLogging&#8221; or &#8220;$bypassWorkspaceRestrictions&#8221; &#8211; they come with useful defaults but you might need to change them in certain situations ~ so looking into the code documentation might save you some time.</p>
<p>**  I left out the &#8220;version&#8221; part since this requires some more explanation than just a few lines of code.</p>
 <p>Feel free to Flattr this post at <a href="http://flattr.com/" title="Flattr" target="_blank">flattr.com</a>, if you like it.</p> <p><a href="http://flattr.com/" title="Flattr" target="_blank"><img src="http://blog.tolleiv.de/wp-content/plugins/flattrss/button-compact-static-100x17.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.tolleiv.de/2010/03/handling-data-in-typo3-with-tcemain/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>crawler extension version 3.0.5 released</title>
		<link>http://blog.tolleiv.de/2010/02/crawler-extension-3-0-5/</link>
		<comments>http://blog.tolleiv.de/2010/02/crawler-extension-3-0-5/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 15:36:56 +0000</pubDate>
		<dc:creator>tolleiv</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[crawler]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[typo3]]></category>

		<guid isPermaLink="false">http://blog.tolleiv.de/?p=351</guid>
		<description><![CDATA[Quite some time after the 4.3 release of TYPO3, we publ [...]]]></description>
			<content:encoded><![CDATA[<p>Quite some time after the 4.3 release of TYPO3, we published the necessary compatibility version of the crawler extension. Besides the compatibility fixes for TYPO3 and also for PHP 5.3 we also included some handy features:</p>
<p>First of all there&#8217;s now, besides the CLI interface, also a full integration with the scheduler extension, which is available in TYPO3 4.3. This enables to setup crawler runs and manage all crawler releated tasks through the TYPO3 backend.</p>
<p>The &#8220;crawler_flush&#8221; interface was added to the CLI (and scheduler). It helps to clean up the crawler queue and enables to remove finished or unfinished entries.</p>
<p>In addition the CLI was cleaned up a little bit and behaves more intuitive in most situations. Also the help pages should now really tell you what options you have.</p>
<p>And last but not least we&#8217;ve added the possibility to avoid an additional HTTP request and have the crawler rendering the page directly.</p>
<p>Big kudos for their work and their support goes especially to Mick, Fabrizio and Timo from AOE media.</p>
<script type="text/javascript">
var flattr_wp_ver = '0.9.11';
var flattr_uid = '23199';
var flattr_url = 'http://blog.tolleiv.de';
var flattr_lng = 'en_GB';
var flattr_cat = 'text';
var flattr_tag = 'blog,wordpress,rss,feed';
var flattr_btn = 'large';
var flattr_tle = 'the fancy part of the web';
var flattr_dsc = 'is elsewhere - this is just about all sorts of web related work with a small factor of fanciness';
</script>
<script src="http://api.flattr.com/button/load.js?v=0.2" type="text/javascript"></script> <p>Feel free to Flattr this post at <a href="http://flattr.com/" title="Flattr" target="_blank">flattr.com</a>, if you like it.</p> <p><a href="http://flattr.com/" title="Flattr" target="_blank"><img src="http://blog.tolleiv.de/wp-content/plugins/flattrss/button-compact-static-100x17.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.tolleiv.de/2010/02/crawler-extension-3-0-5/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
