<?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>Blog for the Web Programmers &#187; Extension Programming</title>
	<atom:link href="http://blog.chandanweb.com/topics/typo3/extension-programming/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.chandanweb.com</link>
	<description>A useful blog with code assitance on Typo3, Drupal, PHP, Apache, OpenSSL and PHP Frameworks</description>
	<lastBuildDate>Wed, 25 Jan 2012 08:35:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>How to Customize RTE for table fields in Typo3 Extensions ?</title>
		<link>http://blog.chandanweb.com/typo3/how-to-customize-rte-for-table-fields-in-typo3-extensions</link>
		<comments>http://blog.chandanweb.com/typo3/how-to-customize-rte-for-table-fields-in-typo3-extensions#comments</comments>
		<pubDate>Wed, 07 Sep 2011 05:49:42 +0000</pubDate>
		<dc:creator>Ganybhat</dc:creator>
				<category><![CDATA[Extension Programming]]></category>
		<category><![CDATA[Typo3]]></category>
		<category><![CDATA[customise]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[RTE]]></category>

		<guid isPermaLink="false">http://blog.chandanweb.com/?p=306</guid>
		<description><![CDATA[In the ext_localconf.php file of the extension, add the below code. t3lib_extMgm::addUserTSConfig(&#8216; page.RTE.config.your_table_name.field_name.showButtons = bold, italic, orderedlist, unorderedlist &#8216;);]]></description>
			<content:encoded><![CDATA[<p>In the ext_localconf.php file of the extension, add the below code.</p>
<blockquote><p>t3lib_extMgm::addUserTSConfig(&#8216;<br />
page.RTE.config.your_table_name.field_name.showButtons = bold, italic, orderedlist, unorderedlist<br />
&#8216;);</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.chandanweb.com/typo3/how-to-customize-rte-for-table-fields-in-typo3-extensions/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to get an old TYPO3 Extension from Repository</title>
		<link>http://blog.chandanweb.com/typo3/how-to-get-an-old-typo3-extension-from-repository</link>
		<comments>http://blog.chandanweb.com/typo3/how-to-get-an-old-typo3-extension-from-repository#comments</comments>
		<pubDate>Fri, 03 Jun 2011 08:27:00 +0000</pubDate>
		<dc:creator>spabhat</dc:creator>
				<category><![CDATA[Extension Programming]]></category>
		<category><![CDATA[Typo3]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[old extension]]></category>
		<category><![CDATA[typo3 repository]]></category>

		<guid isPermaLink="false">http://blog.chandanweb.com/typo3/how-to-get-an-old-typo3-extension-from-repository</guid>
		<description><![CDATA[In some cases we may need to get an old TYPO3 extension, this may be for several reasons. In order to do this, we can follow any of the following methods: METHOD 1: Go to http://www.typo3.org/extensions then search for your extension, say tt_news Just copy yhe download link of the t3x file, and now my [...]]]></description>
			<content:encoded><![CDATA[<p>In some cases we may need to get an old TYPO3 extension, this may be for several reasons.</p>
<p>In order to do this, we can follow any of the following methods:</p>
<p><strong>METHOD 1:</strong></p>
<ol>
<li>Go to <a href="http://www.typo3.org/extensions">http://www.typo3.org/extensions</a> then search for your extension, say tt_news <br/></li>
<li>Just copy yhe download link of the t3x file, and now my link looked as below: <a href="http://typo3.org/fileadmin/ter/t/t/tt_news_3.0.1.t3x">http://typo3.org/fileadmin/ter/t/t/tt_news_3.0.1.t3x</a> <br/></li>
<li>We need the version 2.5.2, so change the version number of above URL to as follows: <br/><a href="http://typo3.org/fileadmin/ter/t/t/tt_news_2.5.2.t3x">http://typo3.org/fileadmin/ter/t/t/tt_news_2.5.2.t3x</a> <br/></li>
</ol>
<p><strong>METHOD 2:</strong></p>
<p>This is one way, the other way is when we use the update manager within TYPO3 BE, we get a drop down to select the version, and load it&#8217;s detail. Then we can install/update the necessary version. Sometimes the drop down may not have the needed version, so Method 1 may work in such cases!</p>
<p><strong>METHOD3:</strong></p>
<p>Most extensions were also under version control on typo3 forge, even here we can get the old files. We may however get some files/updates/changes that were not really published to the Extension Repository. So this may be slightly risky as well. Generally the first two methods are much more easier.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chandanweb.com/typo3/how-to-get-an-old-typo3-extension-from-repository/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to find and change TYPO3 settings.</title>
		<link>http://blog.chandanweb.com/typo3/how-to-find-and-change-typo3-settings</link>
		<comments>http://blog.chandanweb.com/typo3/how-to-find-and-change-typo3-settings#comments</comments>
		<pubDate>Fri, 06 May 2011 12:00:00 +0000</pubDate>
		<dc:creator>spabhat</dc:creator>
				<category><![CDATA[Extension Programming]]></category>
		<category><![CDATA[Typo3]]></category>
		<category><![CDATA[typoscript]]></category>
		<category><![CDATA[customize typo3 settings]]></category>
		<category><![CDATA[debug TYPO3 settings]]></category>
		<category><![CDATA[find typo3 setings]]></category>

		<guid isPermaLink="false">http://blog.chandanweb.com/typo3/how-to-find-and-change-typo3-settings</guid>
		<description><![CDATA[This is a small reference to give an idea on how to find a TYPO3 setting that can be changed, and how to change it. Easy: go to BE Click the Configuration module in left menu bar Now use the drop down at the top, and select TYPO3_CONF_VARS. Search for what you need Click on [...]]]></description>
			<content:encoded><![CDATA[<p>This is a small reference to give an idea on how to find a TYPO3 setting that can be changed, and how to change it.</p>
<p>Easy:</p>
<ol>
<li>go to BE</li>
<li>Click the <strong>Configuration module</strong> in left menu bar</li>
<li>Now use the drop down at the top, and select TYPO3_CONF_VARS.</li>
<li>Search for what you need</li>
<li>Click on the needed title</li>
<li>Now you get a array like this: <br/>$TYPO3_CONF_VARS['EXTCONF']['cachecleaner']['tables']['cache_pages']['expireField'] = &#8216;expires&#8217;; <br/></li>
<li>Change this in your extension (in a PHP file) and include this file in ext_localconf.php <br/>OR Directly write inside ext_localconf.php (well this may not be very clean)</li>
</ol>
<p><strong>NOTE:</strong> The <strong>CONFIGURATION Module</strong> is like a TREE browser which lists all kind of available configurations available in TYPO3. <br/>So we have endless chance to change and customize almost anything here!</p>
<p>NOTE2: The TYPO3 Configuration Module is also a place where you can see the current configuration that is in use. <br/>This can be used for wide range of debugging, such as:</p>
<ol>
<li>To analyze if a HOOK/XCLASS has been declared or not</li>
<li>To see if the configuration we specified has been really recognized by TYPO3</li>
</ol>
<p>ENJOY!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chandanweb.com/typo3/how-to-find-and-change-typo3-settings/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding new fields to existing TYPO3 tables at desired location.</title>
		<link>http://blog.chandanweb.com/typo3/adding-new-fields-to-existing-typo3-tables-at-desired-location</link>
		<comments>http://blog.chandanweb.com/typo3/adding-new-fields-to-existing-typo3-tables-at-desired-location#comments</comments>
		<pubDate>Fri, 06 May 2011 10:28:00 +0000</pubDate>
		<dc:creator>spabhat</dc:creator>
				<category><![CDATA[Extension Programming]]></category>
		<category><![CDATA[Typo3]]></category>
		<category><![CDATA[Extension Development]]></category>
		<category><![CDATA[New fields]]></category>

		<guid isPermaLink="false">http://blog.chandanweb.com/typo3/adding-new-fields-to-existing-typo3-tables-at-desired-location</guid>
		<description><![CDATA[NOTE: This post is intended to add a new field to an existing TYPO3 table at any desired position. Kickstarter is initially used to add the new field, then we will use fthe following trick to add our new field to a desired location. GOAL: Add new field called company name, after the subheader field [...]]]></description>
			<content:encoded><![CDATA[<p>NOTE: This post is intended to add a new field to an existing TYPO3 table at any desired position. <br/>Kickstarter is initially used to add the new field, then we will use fthe following trick to add our new field to a desired location. <br/></p>
<p><strong>GOAL:</strong> Add new field called company name, after the subheader field for tt_news of type &#8220;External URLS&#8221;</p>
<p><strong>STEP 1: Look into the ext_tables.php containing the following method of adding new field to TCA Array.</strong></p>
<blockquote style="MARGIN-RIGHT: 0px" dir="ltr"><p>t3lib_div::loadTCA(&#8216;tt_news&#8217;); <br/>t3lib_extMgm::addTCAcolumns(&#8216;tt_news&#8217;,$tempColumns,1); <br/>t3lib_extMgm::addToAllTCAtypes(&#8216;tt_news&#8217;,'tx_ttnews_fieldcompany;;;;1-1-1&#8242;);</p>
</blockquote>
<p><strong>STEP 2: Replace the above 3 lines as follows:</strong></p>
<blockquote style="MARGIN-RIGHT: 0px" dir="ltr"><p>t3lib_div::loadTCA(&#8216;tt_news&#8217;); <br/>t3lib_extMgm::addTCAcolumns(&#8216;tt_news&#8217;,$tempColumns,1); <br/>$TCA['tt_news']['types']['2']['showitem'] = str_replace(&#8216;short,&#8217;, &#8216;short, tx_ttnews_fieldcompany,&#8217;, $TCA['tt_news']['types']['2']['showitem']); <br/><br/></p>
</blockquote>
<p><strong>STEP 2: Alternate, using TYPO3 API (Thanks to Oliver for the code):</strong></p>
<blockquote style="MARGIN-RIGHT: 0px" dir="ltr"><p>t3lib_div::loadTCA(&#8216;tt_news&#8217;); <br/>t3lib_extMgm::addTCAcolumns(&#8216;tt_news&#8217;,$tempColumns,1); <br/>t3lib_extMgm::addToAllTCAtypes(&#8220;tt_news&#8221;,&#8221;tx_ttnews_fieldcompany;;;;1-1-1&#8243;, &#8220;&#8221;, &#8220;after:short&#8221;);</p>
</blockquote>
<p><strong>STEP 3 Clear cahce and check the news record. <br/></strong> That&#8217;s it, now clear your TYPO3 config cache, and check the record, the new field is now just after the sub header field in tt_news record of type External URL.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chandanweb.com/typo3/adding-new-fields-to-existing-typo3-tables-at-desired-location/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to utilize a hook defined in a TYPO3 Extension</title>
		<link>http://blog.chandanweb.com/typo3/how-to-utilize-a-hook-defined-in-a-typo3-extension</link>
		<comments>http://blog.chandanweb.com/typo3/how-to-utilize-a-hook-defined-in-a-typo3-extension#comments</comments>
		<pubDate>Fri, 06 May 2011 09:49:00 +0000</pubDate>
		<dc:creator>spabhat</dc:creator>
				<category><![CDATA[Extension Programming]]></category>
		<category><![CDATA[Typo3]]></category>
		<category><![CDATA[extraItemMarkerProcessor]]></category>
		<category><![CDATA[hook]]></category>
		<category><![CDATA[tt_news hook]]></category>
		<category><![CDATA[typo3 hook]]></category>

		<guid isPermaLink="false">http://blog.chandanweb.com/typo3/how-to-utilize-a-hook-defined-in-a-typo3-extension</guid>
		<description><![CDATA[This article gives a short overview on how to utilize a hook that is generally written in TYPO3 extension. We will use an available to_news hook for this. Generally TYPO3 and it&#8217;s extensions are written to be extended. Hooks are one such mechanism which helps developers to extend features of an extension without modifying/patching the [...]]]></description>
			<content:encoded><![CDATA[<p>This article gives a short overview on how to utilize a hook that is generally written in TYPO3 extension. We will use an available to_news hook for this. <br/><br/>Generally TYPO3 and it&#8217;s extensions are written to be extended. Hooks are one such mechanism which helps developers to extend features of an extension without modifying/patching the extension itself. Most well known extensions have hooks that are defined to help us easily extend it&#8217;s features. In some cases hooks my not be available at all, but we may have an XCLASS that would be of great help if a hook is not present.</p>
<p><strong>NOTE1: <br/></strong> You cannot use a hook if it is not already defined! So we can use XCLASS in such case.</p>
<p><strong>NOTE2: <br/></strong> The steps defined here uses a tt_news hook as an example, however this method would generally work on all extensions that have a hook.</p>
<p><strong>STEP 1: Check which hook to use.</strong></p>
<p>I added some new fields, and I wanted them to be displayed in list/latest and single view templates of news. <br/>I selected the &#8220;extraItemMarkerProcessor&#8221; hook that seemed to fit this need.</p>
<p><strong>STEP 2: Check the inputs we get and add appropriate function inside out class</strong></p>
<p>The hook in tt_news was defined as follows:</p>
<blockquote><p>foreach($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['tt_news']['extraItemMarkerHook'] as $_classRef) {</p>
<p>$_procObj = &amp; t3lib_div::getUserObj($_classRef); <br/>$markerArray = $_procObj-&gt;extraItemMarkerProcessor($markerArray, $row, $lConf, $this);</p>
<p>}</p>
</blockquote>
<p>So all I did was to write a class with this method/function as follows:</p>
<blockquote><p>class tx_ttnewshooks { <br/><br/>function extraItemMarkerProcessor($markerArray, $row, $lConf, $ttnews){ <br/>// MY CODE GOES HERE</p>
<p>return $markerArray;</p>
<p>}</p>
<p><br/>}</p>
</blockquote>
<p><strong>STEP 3: Include our hook</strong></p>
<p>It is now time to include our hook, so that tt_news knows that we would like to use this hook. <br/>Here is what I did:</p>
<blockquote><p><strong>A</strong>. Use kickstarter to create your extension&#8217;s skeleton, let me call this as &#8220;<strong>ttnewshooks</strong>&#8220;. <br/>ex: By adding information etc&#8230; <br/><strong>NOTE</strong>: Unfortunetely, I will not be covering how to create an extension with kickstarter.</p>
<p><strong>B</strong>. Create a new file called ext_localconf.php (if it is not already here) <br/><strong><br/>C</strong>. Add the following code inside this file: <br/><br/>&lt;?php <br/><br/>if (!defined (&#8220;TYPO3_MODE&#8221;)) die (&#8220;Access denied.&#8221;);</p>
<p>if (TYPO3_MODE!=&#8217;BE&#8217;) { <br/>require_once(t3lib_extMgm::extPath(&#8216;ttnewshooks&#8217;).&#8217;class.ttnewshooks.php&#8217;); <br/>}</p>
<p>$TYPO3_CONF_VARS['EXTCONF']['tt_news']['extraItemMarkerHook'][] = &#8216;tx_ttnewshooks&#8217;;</p>
<p>?&gt;</p>
</blockquote>
<p><strong>STEP 4: Time to check if things work. <br/></strong> Generally there should not be any issues. <br/>NOTE: Make sure that our new extension is installed, else this will never work! <br/><br/>Further Reference: <br/><a href="http://typo3.org/development/articles/how-to-use-existing-hooks/">http://typo3.org/development/articles/how-to-use-existing-hooks/</a> <br/></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chandanweb.com/typo3/how-to-utilize-a-hook-defined-in-a-typo3-extension/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to add a postUserFunc or parseFunc or binding any userFunction in TYPO3</title>
		<link>http://blog.chandanweb.com/typo3/how-to-add-a-postuserfunc-or-parsefunc-or-binding-any-userfunction-in-typo3</link>
		<comments>http://blog.chandanweb.com/typo3/how-to-add-a-postuserfunc-or-parsefunc-or-binding-any-userfunction-in-typo3#comments</comments>
		<pubDate>Thu, 05 May 2011 15:06:00 +0000</pubDate>
		<dc:creator>spabhat</dc:creator>
				<category><![CDATA[Extension Programming]]></category>
		<category><![CDATA[Typo3]]></category>
		<category><![CDATA[parseFunc]]></category>
		<category><![CDATA[postUserFunc]]></category>
		<category><![CDATA[userFunction]]></category>

		<guid isPermaLink="false">http://blog.chandanweb.com/typo3/how-to-add-a-postuserfunc-or-parsefuncin-or-any-binding-userfunction-in-typo3</guid>
		<description><![CDATA[This is one of the easiest thing that just helps us do almost anything with TYPO3 content. Well, yes, still the basic stuff we need to find out is how to get this done. Generally you might have seem in extensions that they use stdWrap, and consider you wish to process the content after the [...]]]></description>
			<content:encoded><![CDATA[<p>This is one of the easiest thing that just helps us do almost anything with TYPO3 content.</p>
<p>Well, yes, still the basic stuff we need to find out is how to get this done.</p>
<p>Generally you might have seem in extensions that they use stdWrap, and consider you wish to process the content after the stdWrap is applied.</p>
<p>ex: <br/>After generating a menu, after a news text is displayed from tt_news etc&#8230;</p>
<p>As with all my posts, I just love to keep thngs short, so I will just explain this with relation to a tt_news example:</p>
<p><strong>Step 1: Find out where you can bind your user function:</strong></p>
<p>I was in need of processing the news content to strip some special characters from word, so this is what I did.</p>
<p>I could also have used the plugin.tt_news.general_stdWrap.postUserFunc, I however did not wish to touch each field, as I only needed some selected fields to be affected. <br/>Thus, on looking into tt_news/pi/class.tx_ttnews.php I found that there is a config I can make use of that is &#8220;itemMarkerArrayFunc&#8221;.</p>
<p><strong>Step 2 : Write your user function.</strong></p>
<blockquote><p><strong>NOTE 1: <br/></strong> Write your userFunc within standard PHP tags, and save it in fileadmin, or EXT folder. <br/>ex: <br/><br/>&lt;?php <br/>//code here <br/>?&gt;</p>
<p><strong>NOTE 2: <br/></strong> Makse sure to understand what type of data is available to us, well sometimes it might be an array as in this case. <br/><br/><strong>NOTE 3: <br/></strong> Your function name should start with &#8220;<strong>user_</strong>&#8221; <br/><br/><strong>NOTE 4: <br/></strong> Your function declaration should have enough arguments, if not you might be in a surprise. <br/>Generally if you are using parseFunc of stdWrap your function may look like this: <br/>ex:</p>
<blockquote><p>function user_ProcessData($content,$config){</p>
<p>// do something with $content <br/>$modifiedContent = $content . &#8221; This is modifed&#8221;; <br/>return $modifiedContent;</p>
<p>}</p>
</blockquote>
<p><br/><br/><strong>THE USER FUNCTION</strong> <br/>In my case the function looks like this</p>
<blockquote><p>function user_ProcessData($markerArray, $conf) {</p>
<p>$str = $markerArray['###NEWS_CONTENT###']; <br/>$str = str_replace(&#8216;###CUSTOMER###&#8217;,'Customer Name&#8217;,$str); <br/>$markerArray['###NEWS_CONTENT###'] = $str ; <br/>return $markerArray;</p>
<p>}</p>
</blockquote>
</blockquote>
<p><strong>Step 3: Include this file in typo3 <br/></strong> This can be done in several ways, and here is one such method: <br/></p>
<blockquote style="MARGIN-RIGHT: 0px" dir="ltr"><p># Add the following code to the setup section of your System Template record. ( we will usually have setup and constants here in General Tab ) <br/><br/>includeLibs.itemMarkerArrayFunc = EXT:customext_libs/userNewsMarkerProcessFunc.php <br/><strong><br/># customext_libs</strong> &#8211; is the name of an extension</p>
</blockquote>
<p><strong>Step 4: Add final config, so that tt_news knows we want to make use of a parseFunc / userFunc</strong></p>
<blockquote style="MARGIN-RIGHT: 0px" dir="ltr"><p>plugin.tt_news.itemMarkerArrayFunc = user_ProcessData</p>
</blockquote>
<p><strong>Step 5: This should generally work. <br/></strong> If not please make sure you followed everything as per the above seteps!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chandanweb.com/typo3/how-to-add-a-postuserfunc-or-parsefunc-or-binding-any-userfunction-in-typo3/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to enable jQuery with powermail OR How to remove mootools or prototype from powermail, and use jQuery validation</title>
		<link>http://blog.chandanweb.com/typo3/how-to-enable-jquery-with-powermail-or-how-to-remove-mootools-or-prototype-from-powermail-and-use-jquery-validation</link>
		<comments>http://blog.chandanweb.com/typo3/how-to-enable-jquery-with-powermail-or-how-to-remove-mootools-or-prototype-from-powermail-and-use-jquery-validation#comments</comments>
		<pubDate>Fri, 17 Dec 2010 07:30:00 +0000</pubDate>
		<dc:creator>spabhat</dc:creator>
				<category><![CDATA[Extension Programming]]></category>
		<category><![CDATA[Typo3]]></category>
		<category><![CDATA[typoscript]]></category>
		<category><![CDATA[disable mootools]]></category>
		<category><![CDATA[disable prototype]]></category>
		<category><![CDATA[jquery validation]]></category>
		<category><![CDATA[powermail]]></category>

		<guid isPermaLink="false">http://blog.chandanweb.com/typo3/how-to-enable-jquery-with-powermail-or-how-to-remove-mootools-or-prototype-from-powermail-and-use-jquery-validation</guid>
		<description><![CDATA[In some cases we may wish to retain one single library throughout our site, so powermail does not have issues if we choose mootools or prototype. If we prefer jQuery, then we have some issues at present, as powermail does not yet allow us to use jQuery built in. The future version however seem to [...]]]></description>
			<content:encoded><![CDATA[<p>In some cases we may wish to retain one single library throughout our site, so powermail does not have issues if we choose mootools or prototype. <br/>If we prefer jQuery, then we have some issues at present, as powermail does not yet allow us to use jQuery built in. <br/>The future version however seem to include this feature, and we are waiting, untill then this might prove useful.</p>
<ul>
<li><strong>Step 1: Set nothing for the libraryToUse contstant</strong> (of course in constants section) <br/>plugin.powermail.libraryToUse = <br/></li>
<li><strong>Step 2: Set up a different template path for the formWrap &#8212; This is important, will explain later in Step3! <br/></strong> To do this I will copy the <strong>formwrap.html</strong> located in <strong>typo3conf/ext/powermail/templates/tmpl_formwrap.html</strong> to <strong>fileadmin/templates</strong> and set following constant. <br/>plugin.powermail.template.formWrap = fileadmin/templates/tmpl_formwrap.html <br/><br/><strong>NOTE:</strong> You may change template even in setup section, check manual or ext_typoscript_setup.txt for details. <br/></li>
<li><strong>Step 3: Remove the validation script from formwrap.html that we copied just now. <br/></strong> If you look at the tempalte file, you can see folloing <strong>JavaScript: <br/></strong> <br/>&lt;script type=&#8221;text/javascript&#8221;&gt; <br/>function formCallback(result, form) { <br/>window.status = &#8220;valiation callback for form &#8216;&#8221; + form.id + &#8220;&#8216;: result = &#8221; + result; <br/>} <br/>var valid = new Validation(&#8216;###POWERMAIL_NAME###&#8217;, {immediate : true, onFormValidate : formCallback}); <br/>&lt;/script&gt; <br/><br/><strong>Remove the above completely including &lt;script&gt; tags. <br/></strong></li>
<li><strong>Step 4: Remove automatic inclusion of JS files using TypoScript.</strong> (<strong>IMPORTANT:</strong> This must appear in the setup section) <br/>page.includeJS.file31311 &gt; <br/>page.headerData.31310 &gt; <br/></li>
</ul>
<p><strong>There you go</strong>, by now you should have disabled the output of all java scripts and inclusion of JS Libraries like mootools or prototype. <br/>Now you are free to use any library you need.</p>
<p><strong>NOTE:</strong> By now the default validation methods available in powermail are also disabled. Well we can easily use the jquery form validation!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chandanweb.com/typo3/how-to-enable-jquery-with-powermail-or-how-to-remove-mootools-or-prototype-from-powermail-and-use-jquery-validation/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Disable js_css_optimizer when using feeditadvanced</title>
		<link>http://blog.chandanweb.com/typo3/disable-js_css_optimizer-when-using-feeditadvanced</link>
		<comments>http://blog.chandanweb.com/typo3/disable-js_css_optimizer-when-using-feeditadvanced#comments</comments>
		<pubDate>Fri, 10 Dec 2010 07:30:00 +0000</pubDate>
		<dc:creator>spabhat</dc:creator>
				<category><![CDATA[Extension Programming]]></category>
		<category><![CDATA[Typo3]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[feeditadvanced]]></category>
		<category><![CDATA[js_css_optimizer]]></category>

		<guid isPermaLink="false">http://blog.chandanweb.com/typo3/disable-js_css_optimizer-when-using-feeditadvanced</guid>
		<description><![CDATA[I recently noticed that the extension feeditadvanced when used alog with js_css_optimizer gives an error stating that a CSS file is missing! This is probably caused because feeditadvanced did nt take into consideration the css files that are created by the js_css_optimizer. Normally we do not need js_css_optimizer if we would like to edit content. [...]]]></description>
			<content:encoded><![CDATA[<p>I recently noticed that the extension feeditadvanced when used alog with js_css_optimizer gives an error stating that a CSS file is missing!</p>
<p>This is probably caused because feeditadvanced did nt take into consideration the css files that are created by the js_css_optimizer.</p>
<p>Normally we do not need js_css_optimizer if we would like to edit content. So added a quick solution that disables the js_css_optimizer when using on feeditadvanced. <br/></p>
<p>You will need to edit the following file:</p>
<p>typo3conf\ext\feeditadvanced\hooks\class.tx_feeditadvanced_pagerenderer.php <br/><br/>Open this and add the following 3 lines of code inside the <strong>IF Condition</strong> of the function <strong>preProcessPageRenderer()</strong>:</p>
<blockquote><p>unset($GLOBALS['TYPO3_CONF_VARS']['FE']['cssCompressHandler']); <br/>unset($GLOBALS['TYPO3_CONF_VARS']['FE']['jsCompressHandler']); <br/>unset($GLOBALS['TYPO3_CONF_VARS']['FE']['concatenateHandler']);</p>
<p><strong>Full code for preProcessPageRenderer():</strong></p>
<p>public function preProcessPageRenderer($params, $parentObject) {</p>
<p>if ($parentObject-&gt;getConcatenateFiles() &amp;&amp; (t3lib_div::_GP(&#8216;eID&#8217;) === &#8216;feeditadvanced&#8217;) &amp;&amp; $GLOBALS['TBE_TEMPLATE']) {</p>
<p>unset($GLOBALS['TYPO3_CONF_VARS']['FE']['cssCompressHandler']); <br/>unset($GLOBALS['TYPO3_CONF_VARS']['FE']['jsCompressHandler']); <br/>unset($GLOBALS['TYPO3_CONF_VARS']['FE']['concatenateHandler']);</p>
<p><br/>$compressor = t3lib_div::makeInstance(&#8216;t3lib_compressor&#8217;); <br/>$cssOptions = array(&#8216;baseDirectories&#8217; =&gt; $GLOBALS['TBE_TEMPLATE']-&gt;getSkinStylesheetDirectories()); <br/>$params['cssFiles'] = $compressor-&gt;concatenateCssFiles($params['cssFiles'], $cssOptions); <br/>} <br/>}</p>
</blockquote>
<p>It would have been great if css files created by js_css_optimizer are used within feeditadvanced, unfortunately that is not the case at present. <br/>Till then I hope we may use the above code. <br/></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chandanweb.com/typo3/disable-js_css_optimizer-when-using-feeditadvanced/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Disable a TYPO3 extension or removing a hook specified by another extension</title>
		<link>http://blog.chandanweb.com/typo3/disable-a-typo3-extension-or-removing-a-hook-specified-by-another-extension</link>
		<comments>http://blog.chandanweb.com/typo3/disable-a-typo3-extension-or-removing-a-hook-specified-by-another-extension#comments</comments>
		<pubDate>Fri, 10 Dec 2010 07:30:00 +0000</pubDate>
		<dc:creator>spabhat</dc:creator>
				<category><![CDATA[Extension Programming]]></category>
		<category><![CDATA[Typo3]]></category>
		<category><![CDATA[feeditadvanced]]></category>
		<category><![CDATA[js_css_optimizer]]></category>
		<category><![CDATA[typo3 extension development]]></category>

		<guid isPermaLink="false">http://blog.chandanweb.com/typo3/disable-a-hook-specified-by-another-extension</guid>
		<description><![CDATA[In some cases we may need to disable some hooks that are defined by another extension. Say for example in a recent case, I had to disable js_css_optimizer when a typo3 FE editor is logged in. This was necessary as feeditadvanced was not working together with js_css_optimizer. So the moment I needed the services of [...]]]></description>
			<content:encoded><![CDATA[<p>In some cases we may need to disable some hooks that are defined by another extension. Say for example in a recent case, I had to disable js_css_optimizer when a typo3 FE editor is logged in. This was necessary as feeditadvanced was not working together with js_css_optimizer.</p>
<p>So the moment I needed the services of feeditadvanced, I had to disable js_css_optimizer, so I added the following code:</p>
<p>unset($GLOBALS['TYPO3_CONF_VARS']['FE']['cssCompressHandler']);</p>
<p>We have to make sure that we do this at correct stage, for example, if the extension we wanted to disable has already finished it&#8217;s execution, then we may not get desired result, so we may have to add another hook that executes much before the hook we wanted to remove.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chandanweb.com/typo3/disable-a-typo3-extension-or-removing-a-hook-specified-by-another-extension/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dividers to Tabs in Extensions</title>
		<link>http://blog.chandanweb.com/typo3/dividers-to-tabs-in-extensions</link>
		<comments>http://blog.chandanweb.com/typo3/dividers-to-tabs-in-extensions#comments</comments>
		<pubDate>Thu, 04 Feb 2010 06:11:11 +0000</pubDate>
		<dc:creator>spabhat</dc:creator>
				<category><![CDATA[Extension Programming]]></category>
		<category><![CDATA[Typo3]]></category>
		<category><![CDATA[--div--]]></category>
		<category><![CDATA[dividers2tabs]]></category>
		<category><![CDATA[record tabs]]></category>
		<category><![CDATA[tabs for insert records]]></category>
		<category><![CDATA[Tabs in Extensions]]></category>

		<guid isPermaLink="false">http://blog.chandanweb.com/typo3/dividers-to-tabs-in-extensions</guid>
		<description><![CDATA[This article explains how easily we can get Tabs in the content elements of type &#8220;insert records&#8221;. Generally we will need to edit tca.php and ext_tables.php. To be more specific it involves adding two parameters. 1. Specify that you are using dividers to tabs &#8220;dividersstabs&#8221; 2. Mark all tabs using &#8211;div&#8211; Let us see how. [...]]]></description>
			<content:encoded><![CDATA[<p>This article explains how easily we can get Tabs in the content elements of type &#8220;insert records&#8221;.</p>
<p>Generally we will need to edit tca.php and ext_tables.php.</p>
<p>To be more specific it involves adding two parameters.</p>
<p>1. Specify that you are using dividers to tabs &#8220;dividersstabs&#8221; <br/>2. Mark all tabs using &#8211;div&#8211;</p>
<p>Let us see how.</p>
<h4>1. Specify that you are using dividers to tabs &#8220;dividersstabs&#8221;</h4>
<p>In the TCA array first look at the start of table definition. Generally this is located</p>
<blockquote><p>EX: <br/></p>
<pre>
$TCA['tx_myext_table] = array (
        'ctrl' =&gt; array (
                'title' =&gt; 'LLL:EXT:myext/locallang_db.xml:tx_myext_table,
                'label' =&gt; 'title',
                'tstamp' =&gt; 'tstamp',
                'crdate' =&gt; 'crdate',
                'cruser_id' =&gt; 'cruser_id',
                'languageField' =&gt; 'sys_language_uid',
                'transOrigPointerField' =&gt; 'l10n_parent',
                'transOrigDiffSourceField' =&gt; 'l10n_diffsource',
                'sortby' =&gt; 'sorting',
                'delete' =&gt; 'deleted',
                'dividers2tabs' =&gt; TRUE,
                'enablecolumns' =&gt; array (
                        'disabled' =&gt; 'hidden',
                ),
                'dynamicConfigFile' =&gt; t3lib_extMgm::extPath($_EXTKEY).'tca.php',
                'iconfile' =&gt; t3lib_extMgm::extRelPath($_EXTKEY).'icon_tx_myext_table.gif',
        ),
);
</pre>
</blockquote>
<p>In the above config you can see that <strong>&#8216;dividers2tabs&#8217; is set to TRUE</strong></p>
<pre>
2. Mark all tabs using --div--
</pre>
<p>This is the step in which you would group all fields into different Tabs. This generally involves editing the TCA config usually locatd in tca.php. <br/></p>
<pre>
In tca.php, look the section showitem, and add --div--;Tab Name,
</pre>
<blockquote>
<pre>
EX:
'types' =&gt; array (
        '0' =&gt; array(
                'showitem' =&gt; '--div--;General,
                                sys_language_uid;;;;1-1-1, l10n_parent,
                                l10n_diffsource, hidden;;1,
                                --div--;Content,title;;;;3-3-3, parentid,top_page,content,
                                --div--;Header and Footer,footer,
                                background_image,background_align'
                )
),
</pre>
</blockquote>
<p>As you can see I have added 3 tabs, General, Content, Header and Footer. <br/></p>
<pre>
The idea is to add --div--; (two hypen followed by div and two hyphen and semicolon)
</pre>
<p><br/>After semicolon add the &#8220;Title of your tab&#8221; and followed by a comma. <br/></p>
<pre>
This section <strong>--div--;Tab Name,</strong> must be added just before a field, or after a field ends.
</pre>
<p>That should be it.</p>
<p>Happy coding.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chandanweb.com/typo3/dividers-to-tabs-in-extensions/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

