<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.0.11" -->
<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/"
	>

<channel>
	<title>Rego's Everyday Life</title>
	<link>http://blogs.igalia.com/mrego</link>
	<description>A weblog about my work at Igalia</description>
	<pubDate>Thu, 09 Oct 2008 22:32:39 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.11</generator>
	<language>en</language>
			<item>
		<title>T3CON08: First Day</title>
		<link>http://blogs.igalia.com/mrego/2008/10/09/t3con08-first-day/</link>
		<comments>http://blogs.igalia.com/mrego/2008/10/09/t3con08-first-day/#comments</comments>
		<pubDate>Thu, 09 Oct 2008 21:34:42 +0000</pubDate>
		<dc:creator>Manuel Rego Casasnovas</dc:creator>
		
		<category>TYPO3</category>

		<category>English</category>

		<category>Planet</category>

		<guid isPermaLink="false">http://blogs.igalia.com/mrego/2008/10/09/t3con08-first-day/</guid>
		<description><![CDATA[Hello from Berlin  .
I&#8217;m in the TYPO3 Conference, today I&#8217;ve attended two tutorials: development with FLOW3 and a workshop for creating TYPO3 websites.

Robert Lemke was the author of the first tutorial, it showed a mixing of his podcasts about FLOW3. The great new was that there is already implemented a complete blog system like [...]]]></description>
			<content:encoded><![CDATA[<p>Hello from Berlin <img src='http://blogs.igalia.com/mrego/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
<p>I&#8217;m in the <a href="http://t3con08.typo3.org/">TYPO3 Conference</a>, today I&#8217;ve attended two tutorials: <a href="http://t3con08.typo3.org/presentations/accepted_tutorials.html?tx_ptconference_pi4[showUid]=44&#038;cHash=9942134bf7">development with FLOW3</a> and a <a href="http://t3con08.typo3.org/presentations/accepted_tutorials.html?tx_ptconference_pi4[showUid]=14&#038;cHash=d885657a77">workshop for creating TYPO3 websites</a>.</p>
<p><a id="more-33"></a></p>
<p><a href="http://www.robertlemke.de/">Robert Lemke</a> was the author of the first tutorial, it showed a mixing of <a href="http://typo3.org/podcasts/robert/">his podcasts about FLOW3</a>. The great new was that <strong>there is already implemented a complete blog system like <a href="http://buzz.typo3.org/">buzz.typo3.org</a> with FLOW3 using the content repository</strong> as persistence mechanism (quite interesting see that actually some stuff works). However the main problem is still performance (Robert said that it shouldn&#8217;t be difficult to fix) but the development context is currently very slow. Some brief comments about this tutorial:</p>
<ul>
<li>Classes define actions, methods that are going to be called from outside.</li>
<li>All objects are single instantiations (<a href="http://en.wikipedia.org/wiki/Singleton_pattern">Singleton Pattern</a>) if you don&#8217;t mark them as prototype.</li>
<li>If you depends on another class you should use <a href="http://en.wikipedia.org/wiki/Dependency_injection">Dependency Injection</a> defining a method that is going to be called automatically when the class is instantiated.</li>
<li>He gave an overview about <a href="http://en.wikipedia.org/wiki/Domain-driven_design">Domain Driven Design</a>, in a roughly way we can talk about 3 concepts: entities (objects), values (immutable objects) and aggregates (entities that are going to be searched).</li>
<li>Talking about persistence we need a repository for each aggregate, if we extend the basic repository we&#8217;ll have common methods to add, remove, find, &#8230; (other entities will be stored transparently). The content repository need that the type of class attributes is specified through comments.</li>
<li>Finally he talked about <a href="http://en.wikipedia.org/wiki/REST">REST</a> services, and all repositories are going to be services that will be called automatically to the concrete method depending if there is or not some GET parameter or if there is some POST parameter.</li>
</ul>
<p>The second tutorial was a workshop from <a href="http://jweiland.net/">jweiland.net</a>, they gave some useful receipts that can be applied in any TYPO3 projects. They talked about a <strong>tool to clean TYPO3 installations</strong>, it seems very useful because in big projects usually you don&#8217;t know how file you need or not in your filesystem, they don&#8217;t say the name of the tool but I can guess that it&#8217;s the <code>cli_dispatch.phpsh</code> script (<a href="http://typofree.org/article/archive/2008/june/title/typo3-housekeeping/">more info</a>) I have to test it!. Other comments:</p>
<ul>
<li>Use <a href="http://en.wikipedia.org/wiki/Utf-8">UTF-8</a> for the database from the beginning (it&#8217;s always good to remember).</li>
<li>For TypoScript they recommend to create a library in a system folder that could be used in other projects (exporting/importing), these TypoScript templates will be used with Basic Templates and defining constants.</li>
<li>Moreover it&#8217;s possible to detect syntax errors in TypoScript using the Object Browser and the Template Analyzer.</li>
</ul>
<p>I&#8217;ve enjoyed this first day so I&#8217;m going to rest to be prepared for tomorrow.</p>
<p>PS: I&#8217;ve met some people from Colombia (<a href="http://www.nivel7.net/">Nivel Siete</a>) and we&#8217;ve been talking Spanish in Berlin <img src='http://blogs.igalia.com/mrego/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/mrego/2008/10/09/t3con08-first-day/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MyTime 0.2 - Remote storage</title>
		<link>http://blogs.igalia.com/mrego/2008/10/03/mytime-02-remote-storage/</link>
		<comments>http://blogs.igalia.com/mrego/2008/10/03/mytime-02-remote-storage/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 09:39:43 +0000</pubDate>
		<dc:creator>Manuel Rego Casasnovas</dc:creator>
		
		<category>Online Desktop</category>

		<category>English</category>

		<category>Planet</category>

		<category>GNOME</category>

		<category>MyTime</category>

		<guid isPermaLink="false">http://blogs.igalia.com/mrego/2008/10/03/mytime-02-remote-storage/</guid>
		<description><![CDATA[We&#8217;ve just released the new version of MyTime the main new feature is that now the information about applications use registered by MyTime is stored remotely, so you can use MyTime in different computers and share the same data.
If you want to use this new feature you&#8217;ll need an account at Box.net, a web service [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve just released the <a href="https://sourceforge.net/project/showfiles.php?group_id=229352&#038;package_id=277852&#038;release_id=630381">new version of MyTime</a> the main new feature is that now the information about applications use registered by MyTime is stored remotely, so you can use MyTime in different computers and share the same data.</p>
<p>If you want to use this new feature you&#8217;ll need an account at <a href="http://www.box.net">Box.net</a>, a web service that allows users to store files online, and set this account at MyTime preferences.</p>
<p>Moreover MyTime 0.2 is integrated with <a href="http://live.gnome.org/OnlineDesktop">Online Desktop</a> because it&#8217;s using the Online Desktop account system to store the Box.net account. We&#8217;ve developed a library (<code><a href="http://mytime.svn.sourceforge.net/viewvc/mytime/trunk/libmytime-common/">libmytime-common</a></code>) that has the responsibility to manage the account data depending on if there&#8217;s an Online Desktop session, when it uses the Online Desktop account system, or not, then it uses the <a href="http://live.gnome.org/GnomeKeyring">GNOME Keyring</a>.</p>
<p>Feel free to test this new release, we&#8217;ll be glad if you give us your feedback.</p>
<p>PS: <a href="http://linux.softpedia.com/get/Desktop-Environment/Tools/MyTime-41357.shtml">MyTime is on Softpedia</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/mrego/2008/10/03/mytime-02-remote-storage/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MyTime 0.1</title>
		<link>http://blogs.igalia.com/mrego/2008/09/17/mytime-01/</link>
		<comments>http://blogs.igalia.com/mrego/2008/09/17/mytime-01/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 10:41:02 +0000</pubDate>
		<dc:creator>Manuel Rego Casasnovas</dc:creator>
		
		<category>Online Desktop</category>

		<category>English</category>

		<category>Planet</category>

		<category>GNOME</category>

		<category>MyTime</category>

		<guid isPermaLink="false">http://blogs.igalia.com/mrego/2008/09/17/mytime-01/</guid>
		<description><![CDATA[Today we&#8217;ve published the first release of this project MyTime 0.1. As you already know MyTime shows information about which applications you have been used on your computer.
You can download the Debian packages to test it, any comment or suggestion will be welcomed.
In future releases we&#8217;re going to add support to store information recorded by [...]]]></description>
			<content:encoded><![CDATA[<p>Today we&#8217;ve published the first release of this project <strong>MyTime 0.1</strong>. <a href="http://blogs.igalia.com/mrego/2008/05/30/mytime-free-software-to-improve-time-management/">As you already know</a> MyTime shows information about which applications you have been used on your computer.</p>
<p>You can <a href="http://community.igalia.com/twiki/bin/view/MyTime/ProjectDownloadStable"><strong>download</strong> the Debian packages</a> to test it, any comment or suggestion will be welcomed.</p>
<p>In future releases we&#8217;re going to add support to store information recorded by MyTime on a Web Service, in order to can query this information from any computer. Moreover we&#8217;ll try to use <a href="http://live.gnome.org/OnlineDesktop">Online Desktop</a> to store the data needed to login at Web Service.</p>
<p>You can read more information about this project at <a href="http://mytime.igalia.com">MyTime home page</a> and return your feedback using different resources (<a href="http://sourceforge.net/mail/?group_id=229352">mailing lists</a>, <a href="http://sourceforge.net/forum/?group_id=229352">forums</a>, <a href="http://sourceforge.net/tracker/?group_id=229352">tracker</a>, &#8230;) at <a href="http://sourceforge.net/projects/mytime/">SourceForge.net page</a>.</p>
<p>We hope you enjoy this application and find it useful <img src='http://blogs.igalia.com/mrego/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
<p>PS: MyTime is now translated to Spanish and Galician.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/mrego/2008/09/17/mytime-01/feed/</wfw:commentRss>
		</item>
		<item>
		<title>gl_transstat: translate pages and records in an easy way on TYPO3</title>
		<link>http://blogs.igalia.com/mrego/2008/06/20/gl_transstat-translate-pages-and-records-in-an-easy-way-on-typo3/</link>
		<comments>http://blogs.igalia.com/mrego/2008/06/20/gl_transstat-translate-pages-and-records-in-an-easy-way-on-typo3/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 10:41:36 +0000</pubDate>
		<dc:creator>Manuel Rego Casasnovas</dc:creator>
		
		<category>TYPO3</category>

		<category>English</category>

		<category>Planet</category>

		<guid isPermaLink="false">http://blogs.igalia.com/mrego/2008/06/20/gl_transstat-translate-pages-and-records-in-an-easy-way-on-typo3/</guid>
		<description><![CDATA[gl_transstat is a great TYPO3 extension developed by my workmate Diego that allows create translations of pages and records on TYPO3 very easily and keep track of translation status of them.
This extension is very useful for multilanguage websites improving work efficiency in tasks related with internationalization and localization.
Last days I&#8217;ve been working on this extension, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://typo3.org/extensions/repository/view/gl_transstat/current/" title="Translation Status (gl_transstat)">gl_transstat</a> is a great <a href="http://typo3.org/extensions/" title="TYPO3 Extensions Repository">TYPO3 extension</a> developed by my workmate <a href="http://blogs.igalia.com/dpino/" title="Diego's blog">Diego</a> that allows create translations of pages and records on <a href="http://typo3.org" alt="TYPO3 developers homepage">TYPO3</a> very easily and keep track of translation status of them.</p>
<p>This extension is very useful for multilanguage websites improving work efficiency in tasks related with internationalization and localization.</p>
<p>Last days I&#8217;ve been working on this extension, and I&#8217;ve done some changes to add new features that make this extension more powerful. The main modifications are:</p>
<ul>
<li>Added the possibility to create translations for more than one page or record at the same time.</li>
<li>Support to translate records of any table.</li>
<li>Use generic configuration variables.</li>
</ul>
<p><img id="image27" src="http://blogs.igalia.com/mrego/wp-content/uploads/2008/06/gl_transstat_screenshot.png" alt="gl_transstat screenshot on TYPO3 4.2" /></p>
<p>You can download the last release 1.2.2 directly from <a href="http://typo3.org/extensions/repository/view/gl_transstat/current/" title="Translation Status (gl_transstat)">TER</a> or if you like you can download the source code from the <a href="https://forxa.mancomun.org/scm/?group_id=65" title="gl_transstat's SVN">SVN repository</a>:<br />
<code>svn checkout https://forxa.mancomun.org/svn/gltransstat</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/mrego/2008/06/20/gl_transstat-translate-pages-and-records-in-an-easy-way-on-typo3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MyTime: free software to improve time management</title>
		<link>http://blogs.igalia.com/mrego/2008/05/30/mytime-free-software-to-improve-time-management/</link>
		<comments>http://blogs.igalia.com/mrego/2008/05/30/mytime-free-software-to-improve-time-management/#comments</comments>
		<pubDate>Fri, 30 May 2008 14:22:29 +0000</pubDate>
		<dc:creator>Manuel Rego Casasnovas</dc:creator>
		
		<category>Online Desktop</category>

		<category>English</category>

		<category>Planet</category>

		<category>GNOME</category>

		<category>MyTime</category>

		<guid isPermaLink="false">http://blogs.igalia.com/mrego/2008/05/30/mytime-free-software-to-improve-time-management/</guid>
		<description><![CDATA[This week we&#8217;ve released MyTime project, this project try to be a system to monitoring your time while you&#8217;re using a computer, providing a graphical user interface that generates different kind of charts with information about what applications you use in your computer.
Moreover in the following phases we&#8217;re going to try to integrate this project [...]]]></description>
			<content:encoded><![CDATA[<p>This week we&#8217;ve released <a href="http://community.igalia.com/twiki/bin/view/MyTime/" title="MyTime home page">MyTime project</a>, this project try to be a system to monitoring your time while you&#8217;re using a computer, providing a graphical user interface that generates different kind of charts with information about what applications you use in your computer.</p>
<p>Moreover in the following phases we&#8217;re going to try to integrate this project with <a href="http://live.gnome.org/OnlineDesktop" title="Online Desktop home page">Online Desktop</a> trying to store information about application use remotely so that you can query information about your time everywhere.</p>
<p>The project is been developed by some people from <a href="http://www.igalia.com/engineering/" title "Igalia engineering group">Igalia engineering group</a>: <a href="http://blogs.igalia.com/aalvarez/" title="Antonio's blog">Antonio</a>, <a href="http://blogs.igalia.com/dpino/" title="Diego's blog">Diego</a>, <a href="http://blogs.igalia.com/eocanha/" title="Quique's blog">Quique</a>, Iván, <a href="http://blogs.igalia.com/chema/" title="Chema's blog">Chema</a>, <a href="http://blogs.igalia.com/ltilve/" title="Loren's blog">Loren</a>, <a href="http://blogs.igalia.com/xavi/" title="Xavi's blog">Xavi</a> and me.</p>
<p>Among other technologies MyTime uses:</p>
<ul>
<li><a href="www.gtk.org" title="GTK+ home page">GTK+</a> and <a href="http://glade.gnome.org/" title="Glade home page">Glade</a> for the graphical interface.</li>
<li><a href="http://library.gnome.org/devel/gobject/stable/" title="GObject Reference Manual">GObject</a> for data server and model logic implementation.</li>
<li><a href="http://www.freedesktop.org/wiki/Software/dbus" title="D-Bus home page">D-Bus</a> usage for communication between components.</li>
<li><a href="http://www.sqlite.org/" title="SQLite home page">SQLite</a> database system for local data management.</li>
</ul>
<p>You can read more information about the project in <a href="http://community.igalia.com/twiki/bin/view/MyTime/" title="MyTime home page">its home page</a> at <a href="http://community.igalia.com/twiki/bin/view" title="community.igalia.com">Igalia community</a>. Furthermore the project has its own <a href="http://sourceforge.net/projects/mytime/" title="MyTime page at SourceForge.net">page at SourceForge.net</a> where you can find mailing lists, forums, and SVN repository of the project.</p>
<p>There&#8217;re a lot of things todo, however feel free to test <a href="http://community.igalia.com/twiki/bin/view/MyTime/" title="MyTime home page">MyTime</a> and give us your feedback, we&#8217;ll be very happy. <img src='http://blogs.igalia.com/mrego/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>We&#8217;ll keep you informed of news in this project.</p>
<p><img id="image25" src="http://blogs.igalia.com/mrego/wp-content/uploads/2008/05/screenshot-mytime-split-pie.png" alt="MyTime Screenshot" title="MyTime Screenshot" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/mrego/2008/05/30/mytime-free-software-to-improve-time-management/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FORMidable: Starting Collaboration</title>
		<link>http://blogs.igalia.com/mrego/2008/04/30/formidable-starting-collaboration/</link>
		<comments>http://blogs.igalia.com/mrego/2008/04/30/formidable-starting-collaboration/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 15:14:53 +0000</pubDate>
		<dc:creator>Manuel Rego Casasnovas</dc:creator>
		
		<category>TYPO3</category>

		<category>English</category>

		<category>Planet</category>

		<guid isPermaLink="false">http://blogs.igalia.com/mrego/2008/04/30/formidable-starting-collaboration/</guid>
		<description><![CDATA[This week I&#8217;ve started my collaboration with FORMidable, a TYPO3 extension.
If you develop TYPO3 extensions, specially frontend forms, you should test the extension called Ameos FORMidable (ameos_formidable), with this extension you can develop TYPO3 extensions very fast. After more than one year developing TYPO3 applications, I think that FORMidable is an essential TYPO3 extension; I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>This week I&#8217;ve started my collaboration with <a href="http://formidable.typo3.ug/" title="TYPO3 FORMidable - Rapid Application Development Framework for TYPO3">FORMidable</a>, a <a href="http://typo3.org" title="TYPO3">TYPO3</a> extension.</p>
<p>If you develop TYPO3 extensions, specially frontend forms, you should test the extension called <strong><a href="http://typo3.org/extensions/repository/view/ameos_formidable/current/">Ameos FORMidable (<code>ameos_formidable</code>)</a></strong>, with this extension you can develop TYPO3 extensions very fast. After more than one year developing TYPO3 applications, I think that FORMidable is an essential TYPO3 extension; I&#8217;ve fallen in love with it. <img src='http://blogs.igalia.com/mrego/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Furthermore FORMidable actually is a free software project, at <a href="http://formidable.typo3.ug/" title="TYPO3 Formidable - Rapid Application Development Framework for TYPO3">project&#8217;s homepage</a> there&#8217;re links to <a href="http://wiki.typo3.org/index.php/Formidable_documentation" title="FORMidable Documentation">documentation</a>, <a href="http://sourceforge.net/projects/formidable/" title="FORMidable SVN">SVN</a>, a lot of examples, and <a href="http://lists.netfielders.de/pipermail/typo3-project-formidable/" title="FORMIdable Mailing List">mailing list</a>. In this list you can ask, suggest, send patches, etc. and somebody from FORMidable community is going to try to help you, besides <a href="http://www.ameos.com/" title="FORMIdable authors">FORMidable authors</a> accept patches to improve FORMidable or fix some bugs; I&#8217;ve sent several patches and they&#8217;ve added my modifications to project.</p>
<p>This post has only the purpose to announce that I&#8217;ve published <a href="http://formidable.typo3.ug/typo3-form-news/news/0026-forms-inside-a-renderlet-lister/start/1209564124/back/2.html" title="Forms inside a Renderlet Lister">my first article</a> at <a href="http://formidable.typo3.ug/" title="FORMidable web page">FORMidable web page</a>.</p>
<p>Finally I&#8217;d like to thank to FORMidable development team, specially to Jerome Schneider, for give me the opportunity to collaborate in this great project and for accept my ideas and patches trying to improve FORMidable.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/mrego/2008/04/30/formidable-starting-collaboration/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Testing Online Desktop on Hardy Heron: Quick Guide</title>
		<link>http://blogs.igalia.com/mrego/2008/04/28/compile-online-desktop-on-hardy-heron-quick-guide/</link>
		<comments>http://blogs.igalia.com/mrego/2008/04/28/compile-online-desktop-on-hardy-heron-quick-guide/#comments</comments>
		<pubDate>Mon, 28 Apr 2008 16:09:55 +0000</pubDate>
		<dc:creator>Manuel Rego Casasnovas</dc:creator>
		
		<category>Online Desktop</category>

		<category>English</category>

		<category>Planet</category>

		<category>GNOME</category>

		<guid isPermaLink="false">http://blogs.igalia.com/mrego/2008/04/28/compile-online-desktop-on-hardy-heron-quick-guide/</guid>
		<description><![CDATA[
I&#8217;ve been testing Online Desktop the last days on an Ubuntu distribution.


I&#8217;ve followed the instructions from OnlineDesktop/Jhbuild, but with these instructions you need to compile 101 modules, it&#8217;s quite slow, moreover you can find some problems in different modules that aren&#8217;t stables. I need to upgrade to Hardy Heron 8.04 to can finish my compilation.


However, [...]]]></description>
			<content:encoded><![CDATA[<p>
I&#8217;ve been testing <a href="http://live.gnome.org/OnlineDesktop" title="GNOME Online Desktop project homepage">Online Desktop</a> the last days on an Ubuntu distribution.
</p>
<p>
I&#8217;ve followed the instructions from <a href="http://live.gnome.org/OnlineDesktop/Jhbuild" title="OnlineDesktop/Jhbuild instructions">OnlineDesktop/Jhbuild</a>, but with these instructions you need to compile 101 modules, it&#8217;s quite slow, moreover you can find some problems in different modules that aren&#8217;t stables. I need to upgrade to Hardy Heron 8.04 to can finish my compilation.
</p>
<p>
However, thanks to <a href="http://blogs.igalia.com/dape/" title="Dape's blog">Dape</a>, I&#8217;ve found another solution to test Online Desktop faster only compiling 6 modules: <tt>hippo-canvas</tt>, <tt>local-export-daemon</tt>, <tt>desktop-data-model</tt>, <tt>online-desktop</tt>, <tt>bigboard</tt> and <tt>mugshot-client</tt>.<br />
Maybe this isn&#8217;t the best way to test Online Desktop, but it&#8217;s very quickly for a simple test.
</p>
<p>
Next I&#8217;m going to relate instructions needed to test Online Desktop on an Ubuntu Hardy Heron distribution.
</p>
<p><a id="more-16"></a></p>
<p>
First at all I have to say you that you should use a new user to compile Online Desktop. I usually use <tt>sux</tt> when I&#8217;m compiling:<br />
<code><br />
sux - newuser<br />
</code>
</p>
<p>
Furthermore we should install dependencies before start to compile to avoid future problems. Dependencies from <a href="http://live.gnome.org/JhbuildDependencies/Ubuntu" title="Ubuntu Jhbuild dependencies">Ubuntu Jhbuild dependencies</a>:<br />
<code><br />
sudo apt-get install gnome-common build-essential doxygen subversion automake1.4 automake1.7 automake1.8 cvs git-core docbook docbook-utils docbook-xsl flex bison texinfo python2.5-dev lynx mono-gmcs libtiff4-dev libxtst-dev libgdbm-dev libxml-simple-perl libelfg0-dev libcupsys2-dev libldap2-dev libexchange-storage1.2-dev libxmu-dev libpam0g-dev libgpgme11-dev libfreetype6-dev libpng12-dev libxrender-dev libxi-dev libexpat1-dev libbz2-dev firefox-dev libxcursor-dev guile-1.8-dev libxdamage-dev libxcomposite-dev libmono-cairo2.0-cil xnest libxft-dev libloudmouth1-0 libloudmouth1-dev libxss-dev libxkbfile-dev libjasper-dev libnl-dev ppp-dev libdv4-dev uuid-dev libpcre3-dev libsqlite3-dev libpurple-dev libcurl4-gnutls-dev xulrunner-1.9-dev gtk-doc-tools libgnome-desktop-dev automake</code>
</p>
<p>
And some new packages, because we&#8217;re going to compile a few modules and need some packages:<br />
<code><br />
sudo apt-get install python-cairo-dev python-gtk2-dev libhippocanvas-dev python-hippocanvas libgtk2.0-dev python-gtk2-dev libpanelappletmm-2.6-dev libpanel-applet2-dev libsoup2.4-dev python-gnome2-dev libcroco3-dev<br />
</code>
</p>
<p>
Firstly you need to install <a href="http://live.gnome.org/OnlineDesktop/Jhbuild">Jhbuild</a>, I paste here instructions from <a href="http://live.gnome.org/OnlineDesktop/Jhbuild" title="OnlineDesktop/Jhbuild instructions">OnlineDesktop/Jhbuild</a>. First create a folder <code>od</code> and the structure needed:<br />
<code><br />
mkdir ~/od<br />
cd ~/od<br />
mkdir checkout<br />
mkdir install<br />
mkdir -p install/var/lib/dbus<br />
ln -s /var/lib/dbus/machine-id install/var/lib/dbus<br />
</code>
</p>
<p>
Now get and install <a href="http://live.gnome.org/OnlineDesktop/Jhbuild">Jhbuild</a>:<br />
<code><br />
cd ~/od<br />
svn co http://svn.gnome.org/svn/jhbuild/trunk jhbuild<br />
cd jhbuild<br />
./autogen.sh ; make ; make install<br />
</code>
</p>
<p>
At this moment we need a file <tt>~/.jhbuildrc</tt> with the next content:</p>
<pre>
# -*- mode: python -*-

# if you have a GNOME svn account, uncomment this line
#repos['svn.gnome.org'] = 'svn+ssh://user@svn.gnome.org/svn/'

moduleset = 'online-desktop'

modules = [ 'meta-online-desktop' ]

# This will take a long time, and conflicts with the jhbuild cairo
skip = ['mozilla']

# what directory should the source be checked out to?
checkoutroot = os.path.expanduser('~/od/checkout')

# the prefix to configure/install modules to (must have write access)
prefix = os.path.expanduser('~/od/install')

# Use system libraries for the builds
addpath('PKG_CONFIG_PATH', os.path.join(os.sep, 'usr', 'lib', 'pkgconfig'))
addpath('PKG_CONFIG_PATH', os.path.join(os.sep, 'usr', 'share', 'pkgconfig'))

# Look in /usr/share for icons, D-BUS service files, etc
addpath('XDG_DATA_DIRS', '/usr/share')
# Look in /etc/xdg for system-global autostart files
addpath('XDG_CONFIG_DIRS', '/etc/xdg')

# We need to add the gtk-2.0 directory explicitly to the Python path since '.pth'
# files (here pygtk.pth) only work properly in system directories
import re, sys
python_version = sys.version.split()[0]
python_version = re.sub(r"^(d+.d+).d+$", r"1", python_version)
lib_packages = os.path.join(prefix, 'lib', 'python' + python_version, 'site-packages')
lib64_packages = os.path.join(prefix, 'lib64', 'python' + python_version, 'site-packages')
if lib64_packages in sys.path:
    addpath('PYTHONPATH', os.path.join(lib64_packages, 'gtk-2.0'))
else:
    addpath('PYTHONPATH', os.path.join(lib_packages, 'gtk-2.0'))

# Rebuild faster
os.environ['INSTALL'] = os.path.expanduser('~/bin/install-check')

# Use the standard system bus
os.environ['DBUS_SYSTEM_BUS_ADDRESS'] = 'unix:path=/var/run/dbus/system_bus_socket'

os.environ['UNDER_JHBUILD'] = 'true'

# Flags needed to 'pyorbit'
os.environ['CFLAGS'] = '-lz'

# Params for mugshot-client
module_autogenargs['mugshot-client'] = autogenargs + ' --with-gecko-sdk=/usr/lib/xulrunner/sdk/ --with-gecko-idl=/usr/lib/xulrunner/sdk/idl/'
</pre>
</p>
<p>
You have to check which <tt>jhbuild</tt> you&#8217;re going to execute, you have to use <tt>~/bin/jhbuild</tt>.
</p>
<p>
Before to compile the modules we need to do:<br />
<code><br />
jhbuild -m bootstrap buildone waf<br />
</code>
</p>
<p>
Then we are going to compile these few modules:<br />
<code><br />
jhbuild buildone -a hippo-canvas local-export-daemon desktop-data-model online-desktop bigboard mugshot-client<br />
</code>
</p>
<p>
To test an Online Desktop session we have to create a file <tt>/usr/local/bin/run-online-desktop</tt> with the next content:</p>
<pre>
if [ -x $HOME/bin/jhbuild ] ; then
   exec $HOME/bin/jhbuild run dbus-launch --exit-with-session od-session
else
   zenity --error --text="No JHBuild session found for user $USER"
   exit 1
fi
</pre>
</p>
<p>
And make it executable:<br />
<code><br />
chmod a+x /usr/local/bin/run-online-desktop<br />
</code>
</p>
<p>
Now we have to create another file <tt>/usr/share/gdm/BuiltInSessions/online-desktop-jhbuild.desktop</tt>:</p>
<pre>
[Desktop Entry]
Encoding=UTF-8
Name=Online Desktop (JHBuild)
Comment=JHBuild of Online Desktop
Exec=/usr/local/bin/run-online-desktop
Icon=
Type=Application
</pre>
</p>
<p>
Finally we can start a new session with the user that we&#8217;ve compiled Online Desktop and test it (maybe when you start an Online Desktop session at first time you have to close and restart the GNOME session to see that Big Board knows that you are logged in Online Desktop).
</p>
<p><a class="imagelink" href="http://blogs.igalia.com/mrego/wp-content/uploads/2008/04/screenshot-online-desktop.png" title="Screenshot Online Desktop"><img id="image22" src="http://blogs.igalia.com/mrego/wp-content/uploads/2008/04/screenshot-online-desktop.thumbnail.png" alt="Screenshot Online Desktop" title="Screenshot Online Desktop" /></a></p>
<p>
I hope these instructions are complete, but if you find any problem or error please tell me and I&#8217;ll update this post. Moreover you can find some solutions for your problems at <a href="http://live.gnome.org/JhbuildIssues/" title="Jhbuild Issues">Jhbuild Issues</a>.
</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/mrego/2008/04/28/compile-online-desktop-on-hardy-heron-quick-guide/feed/</wfw:commentRss>
		</item>
		<item>
		<title>O Galego en TYPO3 III</title>
		<link>http://blogs.igalia.com/mrego/2008/04/24/o-galego-en-typo3-iii/</link>
		<comments>http://blogs.igalia.com/mrego/2008/04/24/o-galego-en-typo3-iii/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 18:40:59 +0000</pubDate>
		<dc:creator>Manuel Rego Casasnovas</dc:creator>
		
		<category>TYPO3</category>

		<category>Galego</category>

		<category>Planet</category>

		<guid isPermaLink="false">http://blogs.igalia.com/mrego/2008/04/24/o-galego-en-typo3-iii/</guid>
		<description><![CDATA[TYPO3 4.2 foi lanzado onte, o que implica que o galego xa está soportado no core de TYPO3.
Dende este momento calquera que se descargue a versión actual de TYPO3 poderá ter un sitio web funcionando en galego coma un idioma máis.
Se queremos ter o backend de TYPO3 en galego tan só temos que seguir os [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://typo3.org/news-single-view/?tx_newsimporter_pi1[showItem]=0&#038;tx_newsimporter_pi1[feed]=10&#038;cHash=c5554a06e2" title="TYPO3 4.2">TYPO3 4.2 foi lanzado onte</a>, o que implica que o galego xa está soportado no core de <a href="http://typo3.org/" title="TYPO3">TYPO3</a>.</p>
<p>Dende este momento calquera que se descargue a versión actual de TYPO3 poderá ter un sitio web funcionando en galego coma un idioma máis.</p>
<p>Se queremos ter o backend de TYPO3 en galego tan só temos que seguir os seguintes pasos:</p>
<ul>
<li>Acceder ó módulo <em>Ext Manager (Adm. de Extensións)</em></li>
<li>Seleccionar a opción <em>Translation handling</em></li>
<li>Seleccionar o idioma <em>Galician - [Galician]</em></li>
<li>Premer en <em>Save selection</em></li>
<li>Premer en <em>Update from repository</em></li>
</ul>
<p><a class="imagelink" href="http://blogs.igalia.com/mrego/wp-content/uploads/2008/04/screenshot-ext-manager1.png" title="Como descargar a tradución do galego para o backend de TYPO3"><img id="image20" src="http://blogs.igalia.com/mrego/wp-content/uploads/2008/04/screenshot-ext-manager1.thumbnail.png" alt="Como descargar a tradución do galego para o backend de TYPO3" title="Como descargar a tradución do galego para o backend de TYPO3" /></a></p>
<p>Unha vez feito isto poderíamos escoller o galego como idioma de backend:</p>
<ul>
<li>Ir ó módulo <em>User settings (Configuración)</em></li>
<li>Seleccionar <em>Galcian - [Galician]</em> no campo <em>Language (Lingua)</em></li>
<li>Premer en <em>Save configuration (Gardar configuración)</em></li>
</ul>
<p><a class="imagelink" href="http://blogs.igalia.com/mrego/wp-content/uploads/2008/04/screenshot-user-settings.png" title="Como establecer o galego como idioma de backend en TYPO3"><img id="image21" src="http://blogs.igalia.com/mrego/wp-content/uploads/2008/04/screenshot-user-settings.thumbnail.png" alt="Como establecer o galego como idioma de backend en TYPO3" title="Como establecer o galego como idioma de backend en TYPO3" /></a></p>
<p>Ademáis está dispoñible a extensión <a href="http://typo3.org/extensions/repository/view/static_info_tables_gl/current/" title="Static Info Tables (gl) - static_info_tables_gl">Static Info Tables (gl) - <code>static_info_tables_gl</code></a>, que proporciona a tradución ó galego das táboas estáticas de TYPO3.</p>
<p>Para rematar quero lembrar que, <a href="http://blogs.igalia.com/mrego/2007/11/20/o-galego-en-typo3-ii/" title="O Galego en TYPO3 II">como xa sabedes</a>, o galego ten unha conta no <a href="http://translation.typo3.org/" title="Servidor de traducións de TYPO3">servidor de traducións de TYPO3</a>, polo que calquera <a href="http://wiki.typo3.org/index.php/Galician-Translation-Team" title="Equipo de tradución do galego">colaboración</a> para seguir coa tradución de TYPO3 ó galego será benvida.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/mrego/2008/04/24/o-galego-en-typo3-iii/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Galician in TYPO3 III</title>
		<link>http://blogs.igalia.com/mrego/2008/04/24/galician-in-typo3-iii/</link>
		<comments>http://blogs.igalia.com/mrego/2008/04/24/galician-in-typo3-iii/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 18:40:52 +0000</pubDate>
		<dc:creator>Manuel Rego Casasnovas</dc:creator>
		
		<category>TYPO3</category>

		<category>English</category>

		<category>Planet</category>

		<guid isPermaLink="false">http://blogs.igalia.com/mrego/2008/04/24/galician-in-typo3-iii/</guid>
		<description><![CDATA[TYPO3 4.2 was released yesterday, it means that Galician is already supported inside TYPO3 core.
Since this moment everyone that download TYPO3 current version may have a website working in Galician as a language more.
If we want to have TYPO3 backend in Galician just have to follow next steps:

Access to Ext Manager module
Select option Translation handling
Select [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://typo3.org/news-single-view/?tx_newsimporter_pi1[showItem]=0&#038;tx_newsimporter_pi1[feed]=10&#038;cHash=c5554a06e2" title="TYPO3 4.2">TYPO3 4.2 was released yesterday</a>, it means that Galician is already supported inside <a href="http://typo3.org/" title="TYPO3">TYPO3</a> core.</p>
<p>Since this moment everyone that download TYPO3 current version may have a website working in Galician as a language more.</p>
<p>If we want to have TYPO3 backend in Galician just have to follow next steps:</p>
<ul>
<li>Access to <em>Ext Manager</em> module</li>
<li>Select option <em>Translation handling</em></li>
<li>Select language <em>Galician - [Galician]</em></li>
<li>Click on <em>Save selection</em></li>
<li>Click on <em>Update from repository</em></li>
</ul>
<p><a class="imagelink" href="http://blogs.igalia.com/mrego/wp-content/uploads/2008/04/screenshot-ext-manager1.png" title="How to download Galician translation for TYPO3 backend"><img id="image20" src="http://blogs.igalia.com/mrego/wp-content/uploads/2008/04/screenshot-ext-manager1.thumbnail.png" alt="How to download Galician translation for TYPO3 backend" title="How to download Galician translation for TYPO3 backend" /></a></p>
<p>Then we may choose select Galician as backend language:</p>
<ul>
<li>Go to <em>User settings</em> module</li>
<li>Select <em>Galcian - [Galician]</em> on field <em>Language</em></li>
<li>Click on <em>Save configuration</em></li>
</ul>
<p><a class="imagelink" href="http://blogs.igalia.com/mrego/wp-content/uploads/2008/04/screenshot-user-settings.png" title="How to set Galician as TYPO3 backend language"><img id="image21" src="http://blogs.igalia.com/mrego/wp-content/uploads/2008/04/screenshot-user-settings.thumbnail.png" alt="How to set Galician as TYPO3 backend language" title="How to set Galician as TYPO3 backend language" /></a></p>
<p>Moreover it&#8217;s available the extension <a href="http://typo3.org/extensions/repository/view/static_info_tables_gl/current/" title="Static Info Tables (gl) - static_info_tables_gl">Static Info Tables (gl) - <code>static_info_tables_gl</code></a>, that provides Galician translation for TYPO3 static tables.</p>
<p>Finally I&#8217;d like to remerber that, <a href="http://blogs.igalia.com/mrego/2007/11/20/galician-in-typo3-ii/" title="Galician in TYPO3 II">as you know</a>, Galician language has an account at <a href="http://translation.typo3.org/" title="TYPO3 translation server">TYPO3 translation server</a>, so that any <a href="http://wiki.typo3.org/index.php/Galician-Translation-Team" title="Galician Translation Team">collaboration</a> to follow with TYPO3 translation to Galician will be welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/mrego/2008/04/24/galician-in-typo3-iii/feed/</wfw:commentRss>
		</item>
		<item>
		<title>TYPO3 Extensions Configuration</title>
		<link>http://blogs.igalia.com/mrego/2008/04/01/typo3-extensions-configuration/</link>
		<comments>http://blogs.igalia.com/mrego/2008/04/01/typo3-extensions-configuration/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 15:58:59 +0000</pubDate>
		<dc:creator>Manuel Rego Casasnovas</dc:creator>
		
		<category>TYPO3</category>

		<category>English</category>

		<category>Planet</category>

		<guid isPermaLink="false">http://blogs.igalia.com/mrego/2008/04/01/typo3-extensions-configuration/</guid>
		<description><![CDATA[This post try to explain how to develop TYPO3 extensions as flexible as possible, TYPO3 provides us with several mechanism to do it. Furthermore I&#8217;m going to show a very useful function to read every possible configuration variable on a TYPO3 extension.
There is different ways to configure a TYPO3 extension (from more general to more [...]]]></description>
			<content:encoded><![CDATA[<p>This post try to explain how to develop TYPO3 extensions as flexible as possible, TYPO3 provides us with several mechanism to do it. Furthermore I&#8217;m going to show a very useful function to read every possible configuration variable on a TYPO3 extension.</p>
<p>There is different ways to configure a TYPO3 extension (from more general to more concrete), and I&#8217;m going to explain how to use them:</p>
<ul>
<li>
		1. Generic Variables (<tt>ext_conf_template.txt</tt>)
	</li>
<li>
		2. <tt>TYPO3_CONF_VARS</tt>
	</li>
<li>
		3. Plugin Configuration</p>
<ul>
<li>
				a) TypoScript
			</li>
<li>
				b) FlexForms
			</li>
</ul>
</li>
</ul>
<p><a id="more-15"></a></p>
<p><strong>1. Generic Variables (<tt>ext_conf_template.txt</tt>)</strong></p>
<p>For extension configuration variables we can use the file <strong><tt>ext_conf_template.txt</tt></strong> file, variables stored here are common to whole extension. Plugins, modules and classes can read these configuration variables.</p>
<p>For example, if in one extension you have a database table we usually use an extension configuration variable to save PID for the records of this table. The file <strong><tt>ext_conf_template.txt</tt></strong> would be (<a href="http://typo3.org/documentation/document-library/core-documentation/doc_core_tstemplates/0.0.1/view/2/5/" title="ext_conf_template.txt syntax">see more</a>):</p>
<pre>
# cat=basic/int; type=int; label=Parent page uid (PID) for records of <tt>myTable</tt>
myTablePID = 0
</pre>
<p>And you can read this information in your source code with:</p>
<pre>
<span style="color: #5555ff;">$confArray</span><span style="color: #000000;"> = </span><span style="color: #000080;">unserialize</span><span style="color: #000000;">(</span><span style="color: #5555ff;">$GLOBALS</span><span style="color: #000000;">[</span><span style="color: #dd0000;">&#8216;TYPO3_CONF_VARS&#8217;</span><span style="color: #000000;">][</span><span style="color: #dd0000;">&#8216;EXT&#8217;</span><span style="color: #000000;">][</span><span style="color: #dd0000;">&#8216;extConf&#8217;</span><span style="color: #000000;">][your-extension-</span><span style="color: #000080;">key</span><span style="color: #000000;">]);</span>

<span style="color: #000080;">echo</span><span style="color: #000000;"> </span><span style="color: #5555ff;">$confArray</span><span style="color: #000000;">[</span><span style="color: #dd0000;">&#8216;myTablePID&#8217;</span><span style="color: #000000;">];</span>
</pre>
<p><strong>2. <tt>TYPO3_CONF_VARS</tt></strong></p>
<p>We can use <strong><tt>TYPO3_CONF_VARS</tt></strong> array to store extension configuration variables too. We set these variables directly at file <tt>ext_localconf.php</tt>:</p>
<pre>
<span style="color: #5555ff;">$TYPO3_CONF_VARS</span><span style="color: #000000;">[</span><span style="color: #dd0000;">&#8216;EXTCONF&#8217;</span><span style="color: #000000;">][</span><span style="color: #5555ff;">$_EXTKEY</span><span style="color: #000000;">][</span><span style="color: #dd0000;">&#8216;myVariable&#8217;</span><span style="color: #000000;">] = </span><span style="color: #dd0000;">&#8216;myValue&#8217;</span><span style="color: #000000;">;</span>
</pre>
<p>And we&#8217;d can read these variables where we want. Moreover these variables could be modified from <tt>ext_localconf.php</tt> files of other extensions loaded later than our extension.</p>
<p><strong>3. Plugins Configuration</strong></p>
<p>TYPO3 has two more ways to configure plugins (frontend applications developed in a extension):</p>
<p><strong>a) TypoScript</strong></p>
<p>We can use directly <strong>TypoScript</strong> inside a template <em>Setup</em> on module <em>Template</em>. With a simple <strong>TypoScript</strong> code:</p>
<pre>
plugin.tx_myextension_pi1.myVar = value
</pre>
<p>We can set a value for the variable <tt>myVar</tt> that we are going to receive in our plugin as the second parameter of <tt>main</tt> method.</p>
<p><strong>b) FlexForms</strong></p>
<p>In addition we use <strong>FlexForms</strong> in order to add specific configuration to frontend plugins. And we usually defines a sheet to override extension configuration. The basic <strong>FlexForm</strong> for our plugins are something like this (<a href="http://typo3.org/documentation/document-library/core-documentation/doc_core_api/4.1.0/view/7/1/" title="FlexForms syntax">see more</a>):</p>
<pre>
<span style="font-weight: bold;color: #000000;">&lt;T3DataStructure&gt;</span>
<span style="color: #000000;">   </span><span style="font-weight: bold;color: #000000;">&lt;meta&gt;</span>
<span style="color: #000000;">      </span><span style="font-weight: bold;color: #000000;">&lt;langDisable&gt;</span><span style="color: #000000;">1</span><span style="font-weight: bold;color: #000000;">&lt;/langDisable&gt;</span>

<span style="color: #000000;">   </span><span style="font-weight: bold;color: #000000;">&lt;/meta&gt;</span>
<span style="color: #000000;">   </span><span style="font-weight: bold;color: #000000;">&lt;sheets&gt;</span>
<span style="color: #000000;">      </span><span style="font-weight: bold;color: #000000;">&lt;sOverride&gt;</span>
<span style="color: #000000;">         </span><span style="font-weight: bold;color: #000000;">&lt;ROOT&gt;</span>
<span style="color: #000000;">            </span><span style="font-weight: bold;color: #000000;">&lt;TCEforms&gt;</span>
<span style="color: #000000;">               </span><span style="font-weight: bold;color: #000000;">&lt;sheetTitle&gt;</span><span style="color: #000000;">Override Extension Configuration</span><span style="font-weight: bold;color: #000000;">&lt;/sheetTitle&gt;</span>

<span style="color: #000000;">            </span><span style="font-weight: bold;color: #000000;">&lt;/TCEforms&gt;</span>
<span style="color: #000000;">            </span><span style="font-weight: bold;color: #000000;">&lt;type&gt;</span><span style="color: #000000;">array</span><span style="font-weight: bold;color: #000000;">&lt;/type&gt;</span>
<span style="color: #000000;">            </span><span style="font-weight: bold;color: #000000;">&lt;el&gt;</span>
<span style="color: #000000;">               </span><span style="font-weight: bold;color: #000000;">&lt;myTablePID&gt;</span>
<span style="color: #000000;">                  </span><span style="font-weight: bold;color: #000000;">&lt;TCEforms&gt;</span>

<span style="color: #000000;">                     </span><span style="font-weight: bold;color: #000000;">&lt;label&gt;</span><span style="color: #000000;">PID for myTable records</span><span style="font-weight: bold;color: #000000;">&lt;/label&gt;</span>
<span style="color: #000000;">                     </span><span style="font-weight: bold;color: #000000;">&lt;config&gt;</span>
<span style="color: #000000;">                        </span><span style="font-weight: bold;color: #000000;">&lt;type&gt;</span><span style="color: #000000;">group</span><span style="font-weight: bold;color: #000000;">&lt;/type&gt;</span>
<span style="color: #000000;">                        </span><span style="font-weight: bold;color: #000000;">&lt;internal_type&gt;</span><span style="color: #000000;">db</span><span style="font-weight: bold;color: #000000;">&lt;/internal_type&gt;</span>

<span style="color: #000000;">                        </span><span style="font-weight: bold;color: #000000;">&lt;allowed&gt;</span><span style="color: #000000;">pages</span><span style="font-weight: bold;color: #000000;">&lt;/allowed&gt;</span>
<span style="color: #000000;">                        </span><span style="font-weight: bold;color: #000000;">&lt;size&gt;</span><span style="color: #000000;">1</span><span style="font-weight: bold;color: #000000;">&lt;/size&gt;</span>
<span style="color: #000000;">                        </span><span style="font-weight: bold;color: #000000;">&lt;maxitems&gt;</span><span style="color: #000000;">1</span><span style="font-weight: bold;color: #000000;">&lt;/maxitems&gt;</span>
<span style="color: #000000;">                        </span><span style="font-weight: bold;color: #000000;">&lt;minitems&gt;</span><span style="color: #000000;">0</span><span style="font-weight: bold;color: #000000;">&lt;/minitems&gt;</span>

<span style="color: #000000;">                        </span><span style="font-weight: bold;color: #000000;">&lt;show_thumbs&gt;</span><span style="color: #000000;">1</span><span style="font-weight: bold;color: #000000;">&lt;/show_thumbs&gt;</span>
<span style="color: #000000;">                     </span><span style="font-weight: bold;color: #000000;">&lt;/config&gt;</span>
<span style="color: #000000;">                  </span><span style="font-weight: bold;color: #000000;">&lt;/TCEforms&gt;</span>
<span style="color: #000000;">               </span><span style="font-weight: bold;color: #000000;">&lt;/myTablePID&gt;</span>
<span style="color: #000000;">            </span><span style="font-weight: bold;color: #000000;">&lt;/el&gt;</span>

<span style="color: #000000;">         </span><span style="font-weight: bold;color: #000000;">&lt;/ROOT&gt;</span>
<span style="color: #000000;">      </span><span style="font-weight: bold;color: #000000;">&lt;/sOverride&gt;</span>
<span style="color: #000000;">   </span><span style="font-weight: bold;color: #000000;">&lt;/sheets&gt;</span>
<span style="font-weight: bold;color: #000000;">&lt;/T3DataStructure&gt;</span>
</pre>
<p>And to read this variables we use:</p>
<pre>
<span style="color: #5555ff;">$this</span><span style="color: #000000;">-&gt;pi_initPIflexForm();</span>
<span style="color: #5555ff;">$this</span><span style="color: #000000;">-&gt;pi_getFFvalue(</span><span style="color: #5555ff;">$this</span><span style="color: #000000;">-&gt;cObj-&gt;data[</span><span style="color: #dd0000;">&#8216;pi_flexform&#8217;</span><span style="color: #000000;">], </span><span style="color: #dd0000;">&#8216;myTablePID&#8217;</span><span style="color: #000000;">);</span>
</pre>
<p><strong>Init function</strong></p>
<p>Finally we&#8217;ve developed a function <strong><tt>init</tt></strong> to use in every plugin that we develop, this function reads all configuration variables and stores its in an array <tt>$this->conf</tt>. Next the source code of this function:</p>
<pre>
<span style="color: #000000;">   </span><span style="font-style: italic;color: #0000ff;">/**</span>
<span style="font-style: italic;color: #0000ff;">    * Init Function: here all the needed configuration values are stored in class variables</span>

<span style="font-style: italic;color: #0000ff;">    *</span>
<span style="font-style: italic;color: #0000ff;">    * </span><span style="font-weight: bold;color: #ca60ca;">@param</span><span style="font-style: italic;color: #0000ff;">    </span><span style="font-weight: bold;color: #0095ff;">array </span><span style="font-style: italic;color: #0000ff;">  $conf: configuration array from TS</span>
<span style="font-style: italic;color: #0000ff;">    * </span><span style="font-weight: bold;color: #ca60ca;">@return</span><span style="font-style: italic;color: #0000ff;">   void</span>

<span style="font-style: italic;color: #0000ff;">    */</span>
<span style="color: #000000;">   </span><span style="font-weight: bold;color: #000000;">function</span><span style="color: #000000;"> init(</span><span style="color: #5555ff;">$conf</span><span style="color: #000000;">) {</span>
<span style="color: #000000;">      </span><span style="color: #5555ff;">$this</span><span style="color: #000000;">-&gt;conf = </span><span style="color: #5555ff;">$conf</span><span style="color: #000000;">; </span><span style="font-style: italic;color: #808080;">// Store configuration</span>

<span style="color: #000000;">      </span><span style="color: #5555ff;">$this</span><span style="color: #000000;">-&gt;pi_setPiVarDefaults(); </span><span style="font-style: italic;color: #808080;">// Set default piVars from TS</span>
<span style="color: #000000;">      </span><span style="color: #5555ff;">$this</span><span style="color: #000000;">-&gt;pi_initPIflexForm(); </span><span style="font-style: italic;color: #808080;">// Init FlexForm configuration for plugin</span>

<span style="color: #000000;">      </span><span style="font-style: italic;color: #808080;">// Read extension configuration</span>
<span style="color: #000000;">      </span><span style="color: #5555ff;">$extConf</span><span style="color: #000000;"> = </span><span style="color: #000080;">unserialize</span><span style="color: #000000;">(</span><span style="color: #5555ff;">$GLOBALS</span><span style="color: #000000;">[</span><span style="color: #dd0000;">&#8216;TYPO3_CONF_VARS&#8217;</span><span style="color: #000000;">][</span><span style="color: #dd0000;">&#8216;EXT&#8217;</span><span style="color: #000000;">][</span><span style="color: #dd0000;">&#8216;extConf&#8217;</span><span style="color: #000000;">][</span><span style="color: #5555ff;">$this</span><span style="color: #000000;">-&gt;extKey]);</span>

<span style="color: #000000;">      </span><span style="color: #a1a100;">if</span><span style="color: #000000;"> (</span><span style="color: #000080;">is_array</span><span style="color: #000000;">(</span><span style="color: #5555ff;">$extConf</span><span style="color: #000000;">)) {</span>
<span style="color: #000000;">         </span><span style="color: #5555ff;">$conf</span><span style="color: #000000;"> = t3lib_div::</span><span style="color: #000080;">array_merge</span><span style="color: #000000;">(</span><span style="color: #5555ff;">$extConf</span><span style="color: #000000;">, </span><span style="color: #5555ff;">$conf</span><span style="color: #000000;">);</span>

<span style="color: #000000;">      }</span>

<span style="color: #000000;">      </span><span style="font-style: italic;color: #808080;">// Read TYPO3_CONF_VARS configuration</span>
<span style="color: #000000;">      </span><span style="color: #5555ff;">$varsConf</span><span style="color: #000000;"> = </span><span style="color: #5555ff;">$GLOBALS</span><span style="color: #000000;">[</span><span style="color: #dd0000;">&#8216;TYPO3_CONF_VARS&#8217;</span><span style="color: #000000;">][</span><span style="color: #dd0000;">&#8216;EXTCONF&#8217;</span><span style="color: #000000;">][</span><span style="color: #5555ff;">$this</span><span style="color: #000000;">-&gt;extKey];</span>

<span style="color: #000000;">      </span><span style="color: #a1a100;">if</span><span style="color: #000000;"> (</span><span style="color: #000080;">is_array</span><span style="color: #000000;">(</span><span style="color: #5555ff;">$varsConf</span><span style="color: #000000;">)) {</span>

<span style="color: #000000;">         </span><span style="color: #5555ff;">$conf</span><span style="color: #000000;"> = t3lib_div::</span><span style="color: #000080;">array_merge</span><span style="color: #000000;">(</span><span style="color: #5555ff;">$varsConf</span><span style="color: #000000;">, </span><span style="color: #5555ff;">$conf</span><span style="color: #000000;">);</span>

<span style="color: #000000;">      }</span>

<span style="color: #000000;">      </span><span style="font-style: italic;color: #808080;">// Read FlexForm configuration</span>
<span style="color: #000000;">      </span><span style="color: #a1a100;">if</span><span style="color: #000000;"> (</span><span style="color: #5555ff;">$this</span><span style="color: #000000;">-&gt;cObj-&gt;data[</span><span style="color: #dd0000;">&#8216;pi_flexform&#8217;</span><span style="color: #000000;">][</span><span style="color: #dd0000;">&#8216;data&#8217;</span><span style="color: #000000;">]) {</span>

<span style="color: #000000;">         </span><span style="color: #a1a100;">foreach</span><span style="color: #000000;"> (</span><span style="color: #5555ff;">$this</span><span style="color: #000000;">-&gt;cObj-&gt;data[</span><span style="color: #dd0000;">&#8216;pi_flexform&#8217;</span><span style="color: #000000;">][</span><span style="color: #dd0000;">&#8216;data&#8217;</span><span style="color: #000000;">] </span><span style="color: #a1a100;">as</span><span style="color: #000000;"> </span><span style="color: #5555ff;">$sheetName</span><span style="color: #000000;"> =&gt; </span><span style="color: #5555ff;">$sheet</span><span style="color: #000000;">) {</span>

<span style="color: #000000;">            </span><span style="color: #a1a100;">foreach</span><span style="color: #000000;"> (</span><span style="color: #5555ff;">$sheet</span><span style="color: #000000;"> </span><span style="color: #a1a100;">as</span><span style="color: #000000;"> </span><span style="color: #5555ff;">$langName</span><span style="color: #000000;"> =&gt; </span><span style="color: #5555ff;">$lang</span><span style="color: #000000;">) {</span>
<span style="color: #000000;">               </span><span style="color: #a1a100;">foreach</span><span style="color: #000000;">(</span><span style="color: #000080;">array_keys</span><span style="color: #000000;">(</span><span style="color: #5555ff;">$lang</span><span style="color: #000000;">) </span><span style="color: #a1a100;">as</span><span style="color: #000000;"> </span><span style="color: #5555ff;">$key</span><span style="color: #000000;">) {</span>

<span style="color: #000000;">                  </span><span style="color: #5555ff;">$flexFormConf</span><span style="color: #000000;">[</span><span style="color: #5555ff;">$key</span><span style="color: #000000;">] = </span><span style="color: #5555ff;">$this</span><span style="color: #000000;">-&gt;pi_getFFvalue(</span><span style="color: #5555ff;">$this</span><span style="color: #000000;">-&gt;cObj-&gt;data[</span><span style="color: #dd0000;">&#8216;pi_flexform&#8217;</span><span style="color: #000000;">], </span>
<span style="color: #000000;">                                                             </span><span style="color: #5555ff;">$key</span><span style="color: #000000;">, </span><span style="color: #5555ff;">$sheetName</span><span style="color: #000000;">, </span><span style="color: #5555ff;">$langName</span><span style="color: #000000;">);</span>

<span style="color: #000000;">                  </span><span style="color: #a1a100;">if</span><span style="color: #000000;"> (!</span><span style="color: #5555ff;">$flexFormConf</span><span style="color: #000000;">[</span><span style="color: #5555ff;">$key</span><span style="color: #000000;">]) {</span>
<span style="color: #000000;">                     </span><span style="color: #000080;">unset</span><span style="color: #000000;">(</span><span style="color: #5555ff;">$flexFormConf</span><span style="color: #000000;">[</span><span style="color: #5555ff;">$key</span><span style="color: #000000;">]);</span>

<span style="color: #000000;">                  }</span>
<span style="color: #000000;">               }</span>
<span style="color: #000000;">            }</span>
<span style="color: #000000;">         }</span>
<span style="color: #000000;">      }</span>

<span style="color: #000000;">      </span><span style="color: #a1a100;">if</span><span style="color: #000000;"> (</span><span style="color: #000080;">is_array</span><span style="color: #000000;">(</span><span style="color: #5555ff;">$flexFormConf</span><span style="color: #000000;">)) {</span>

<span style="color: #000000;">         </span><span style="color: #5555ff;">$conf</span><span style="color: #000000;"> = t3lib_div::</span><span style="color: #000080;">array_merge</span><span style="color: #000000;">(</span><span style="color: #5555ff;">$conf</span><span style="color: #000000;">, </span><span style="color: #5555ff;">$flexFormConf</span><span style="color: #000000;">);</span>
<span style="color: #000000;">      }</span>

<span style="color: #000000;">      </span><span style="color: #5555ff;">$this</span><span style="color: #000000;">-&gt;conf = </span><span style="color: #5555ff;">$conf</span><span style="color: #000000;">;</span>

<span style="color: #000000;">   }</span>
</pre>
<p>I think that this function can be very useful when you develop a TYPO3 extension.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/mrego/2008/04/01/typo3-extensions-configuration/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
