<?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>Jeff Segars &#187; TYPO3 Extensions</title>
	<atom:link href="http://jeffsegars.com/category/ext/feed/" rel="self" type="application/rss+xml" />
	<link>http://jeffsegars.com</link>
	<description>Web Development with TYPO3</description>
	<lastBuildDate>Tue, 23 Mar 2010 19:09:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>IP-based Frontend Accounts</title>
		<link>http://jeffsegars.com/2008/06/24/ip-based-frontend-accounts/</link>
		<comments>http://jeffsegars.com/2008/06/24/ip-based-frontend-accounts/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 03:35:59 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[TYPO3 Core]]></category>
		<category><![CDATA[TYPO3 Extensions]]></category>

		<guid isPermaLink="false">http://jeffsegars.com/?p=15</guid>
		<description><![CDATA[Several days ago, I made reference to the amazing depth of of TYPO3. &#160;Even after using the content management system day in a day out for more than 3 years, I&#8217;m still uncovering new features all the time. The latest to add to my list is the ability to automatically add visitors to a frontend [...]]]></description>
			<content:encoded><![CDATA[<p>Several days ago, I made <a href="http://jeffsegars.com/2008/06/01/hidden-gems-in-typo3/" >reference</a> to the amazing depth of of TYPO3. &nbsp;Even after using the content management system day in a day out for more than 3 years, I&#8217;m still uncovering new features all the time. The latest to add to my list is the ability to automatically add visitors to a frontend usergroup and filter content based only on an IP address.</p>
<p><span id="more-15"></span>A client and friend of <a title="Web-Empowered Church" href="http://webempoweredchurch.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/webempoweredchurch.com');">WEC</a>&nbsp;runs a website that provides premium content behind a subscription. &nbsp;Users can register for accounts to access this content, which works with the standard TYPO3 access controls for frontend users and groups. In addition to these individual subscribers who sign up on their own, libraries can subscribe to this content and make it available to anyone who logs on while at the library.</p>
<p>Our job was to come up with a way to transparently make this content available to libraries while also providing the TYPO3 administrators an easy way to add new libraries and provide content to them.</p>
<p>The first part of our task turned out to be yet another hidden gem inside TYPO3 as API-level support for IP-based Frontend Groups already existed. &nbsp;By adding the following code to localconf.php, any visitor matching the IP mask (192.168.*, 127.*) will automatically be treated as part of the frontend group with a UID of 3.</p>
<p><code></p>
<pre> $GLOBALS['TYPO3_CONF_VARS']['FE']['IPmaskMountGroups'][] = array('192.168.*, 127.*,3);</pre>
<p></code></p>
<p>From this static definition, its pretty clear to see how you could also write the value dynamically based on database records. &nbsp;In our case, we used the TSFE&#8217;s initFEUser hook to get our code running early in the page rendering process.</p>
<p><code></p>
<pre>
// get where clause
$where = 'disabled = 0 AND deleted=0 AND (('.time().' > starttime AND '.time().' < endtime) OR (starttime = 0 AND endtime = 0) OR (starttime = 0 AND '.time().' < endtime) OR ('.time().' > starttime AND endtime = 0))';

// get all account records from the db
$res = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('*', 'tx_weciplogin_accounts', $where);

// loop through results
foreach( $res as $account ) {

	// explode the fe user groups into an array and iterate over them
	foreach( explode(',', $account['feusergroup']) as $groupid ) {
		// add masks to typo3 conf vars
		$GLOBALS['TYPO3_CONF_VARS']['FE']['IPmaskMountGroups'][] = array($account['ip'], $groupid);
	}
}
</pre>
<p></code></p>
<p>With the actual group assignment out the way, it was simply a matter of building a user interface so that the TYPO3 administrators could easily manage library subscriptions. &nbsp;In the screenshot below, we see an IP-based frontend account that is active for one year. Any visitor matching the IP mask will automatically be treated as a member of the &#8220;Registered Users&#8221; group and see content specific to that group.</p>
<p><span style="color: #551a8b;"><span style="text-decoration: underline;"><a href="http://jeffsegars.com/wp-content/uploads/2008/06/autologin.png" ></a><a href="http://jeffsegars.com/wp-content/uploads/2008/06/autologin.png" ><img class="alignnone size-full wp-image-16" title="Backend User Interface" src="http://jeffsegars.com/wp-content/uploads/2008/06/autologin.png" alt="" width="500" height="319" /></a></span></span></p>
<p>(Special thanks to <a href="http://blog.zerodeviation.net/" onclick="javascript:pageTracker._trackPageview('/outbound/article/blog.zerodeviation.net');">Christoph</a>&nbsp;for his help with this extension. &nbsp;I know he loves it when I finally blog and its about something that he already knows all about)</p>
]]></content:encoded>
			<wfw:commentRss>http://jeffsegars.com/2008/06/24/ip-based-frontend-accounts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hidden Gems in TYPO3</title>
		<link>http://jeffsegars.com/2008/06/01/hidden-gems-in-typo3/</link>
		<comments>http://jeffsegars.com/2008/06/01/hidden-gems-in-typo3/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 04:05:02 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[TYPO3 Core]]></category>
		<category><![CDATA[TYPO3 Extensions]]></category>

		<guid isPermaLink="false">http://jeffsegars.com/?p=14</guid>
		<description><![CDATA[Before I started using TYPO3 (way back in the 3.5 days), I had started down the path of creating my own Content Management System. I quickly realized there were smart people who had more complex projects than I did who were also nice enough to open-source their work and make it available to the world. [...]]]></description>
			<content:encoded><![CDATA[<p>Before I started using TYPO3 (way back in the <a href="http://freshmeat.net/projects/typo3/?branch_id=10861&amp;release_id=118480" onclick="javascript:pageTracker._trackPageview('/outbound/article/freshmeat.net');">3.5</a> days), I had started down the path of creating my own Content Management System. I quickly realized there were smart people who had more complex projects than I did who were also nice enough to open-source their work and make it available to the world. From that point forward, the idea of rolling my own CMS lost its appeal.</p>
<p>As I continue to work in TYPO3 today, I&#8217;m still amazed at the depth of the feature set. I&#8217;ll feel like I&#8217;ve gone deep into the TYPO3 core or pushed the boundaries of extension development, but when a new project comes along, I&#8217;ll invariably find new features already implemented that I had no idea about.</p>
<p>These aren&#8217;t the kind of features that show up in a list on <a href="http://cmsmatrix.org/matrix/cms-matrix?func=viewDetail;listingId=1023" onclick="javascript:pageTracker._trackPageview('/outbound/article/cmsmatrix.org');">CMS Matrix</a>, but instead the things you&#8217;d never think about when making an initial decision on a Content Management System. They&#8217;re the things that keep me from ever thinking about developing my own CMS.</p>
<p>As I continue working in TYPO3, I&#8217;ll be posting these hidden gems as I come across them. Â Some may be geared toward editors, others toward developers, and some may be obvious to everyone but me. Â As a whole, they&#8217;re what give TYPO3 its amazing depth and flexibility.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeffsegars.com/2008/06/01/hidden-gems-in-typo3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>RealURL Made Easy?</title>
		<link>http://jeffsegars.com/2008/05/30/realurl-made-easy/</link>
		<comments>http://jeffsegars.com/2008/05/30/realurl-made-easy/#comments</comments>
		<pubDate>Fri, 30 May 2008 13:53:56 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[TYPO3 Extensions]]></category>

		<guid isPermaLink="false">http://jeffsegars.com/?p=13</guid>
		<description><![CDATA[If you&#8217;ve ever ventured into the land of custom RealURL configurations, RealURL and easy are probably not two words that you associate with one another. Â The extension has plenty of power but it takes some time to get your head around all the configuration options. Dmitry Dulepov (RealURL developer) has started a tutorial-style series called [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve ever ventured into the land of custom RealURL configurations, RealURL and easy are probably not two words that you associate with one another. Â The extension has plenty of power but it takes some time to get your head around all the configuration options. <a href="http://typo3bloke.net" onclick="javascript:pageTracker._trackPageview('/outbound/article/typo3bloke.net');">Dmitry Dulepov</a> (RealURL developer) has started a tutorial-style series called <a title="RealURL Made Easy" href="http://typo3bloke.net/post-details/archive/2008/may/30/realurl_made_easy_part_1/" onclick="javascript:pageTracker._trackPageview('/outbound/article/typo3bloke.net');">RealURL Made Easy</a> that should be very helpful.</p>
<p>If you haven&#8217;t checked RealURL out in a while, its also worth noting that Dmitry has added a very nice autoconfiguration feature to RealURL. Â The <a href="http://typo3.org/extensions/repository/view/wec_config/2.0.0/" onclick="javascript:pageTracker._trackPageview('/outbound/article/typo3.org');">WEC Config extension</a>Â takes advantage of this and configures RealURL for many popular TYPO3 extensions.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeffsegars.com/2008/05/30/realurl-made-easy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An Introduction</title>
		<link>http://jeffsegars.com/2008/01/16/an-introduction/</link>
		<comments>http://jeffsegars.com/2008/01/16/an-introduction/#comments</comments>
		<pubDate>Wed, 16 Jan 2008 06:15:17 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[TYPO3 Core]]></category>
		<category><![CDATA[TYPO3 Extensions]]></category>
		<category><![CDATA[Web-Empowered Church]]></category>

		<guid isPermaLink="false">http://jeffsegars.com/wordpress/2008/01/16/an-introduction/</guid>
		<description><![CDATA[So it appears that I&#8217;ve finally thrown in the towel and joined the blogosphere. I&#8217;m sure you&#8217;ve been anxiously awaiting this day, but what could have sparked a development of this magnitude? (For those of who you don&#8217;t know me, let me make it clear that this is firmly tongue in cheek) Let&#8217;s start from [...]]]></description>
			<content:encoded><![CDATA[<p>So it appears that I&#8217;ve finally thrown in the towel and joined the blogosphere.  I&#8217;m sure you&#8217;ve been anxiously awaiting this day, but what could have sparked a development of this magnitude?</p>
<p>(For those of who you don&#8217;t know me, let me make it clear that this is firmly tongue in cheek)</p>
<p>Let&#8217;s start from the top. My name is Jeff Segars and I&#8217;m a web developer with the <a href="http://webempoweredchurch.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/webempoweredchurch.com');">Web-Empowered Church</a> ministry. WEC develops open-source software for churches using the <a href="http://typo3.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/typo3.com');">TYPO3 Content Management System</a>. I spend the bulk of my time developing TYPO3 extensions and working as a member of the TYPO3 Core Development Team.</p>
<p>I plan to keep this blog narrowly focused on web development within TYPO3.  I&#8217;ll throw in the occasional release announcement or status report from WEC, but the bulk of the content around here will be the nitty gritty details of TYPO3.  Sounds exciting, I know!</p>
<p>(Yes, I do realize that I&#8217;m blogging about TYPO3 from WordPress.Â  Hope to remedy that soon but there&#8217;s no denying its a quicker option to get something up and running with a decent template)</p>
]]></content:encoded>
			<wfw:commentRss>http://jeffsegars.com/2008/01/16/an-introduction/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
