<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5997589132291828604</id><updated>2012-02-21T04:49:19.607+01:00</updated><category term='zedseries_lib'/><category term='ZedSeriesUi'/><category term='extensions'/><category term='developers'/><category term='tutorials'/><category term='zedseries_maps'/><category term='ZedseriesWizard'/><category term='tips and tricks'/><category term='options_callback'/><category term='zedseries_imex'/><category term='zedseries_help_system'/><category term='dca'/><category term='zedseries_commenteverything'/><category term='zedseries_listing'/><category term='announcements'/><title type='text'>Development with Contao cms</title><subtitle type='html'>articles, tutorials, trick and tips and more …</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://zedseries.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://zedseries.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>ga.n</name><uri>http://www.blogger.com/profile/09566514372664225429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>27</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5997589132291828604.post-8832243700360970303</id><published>2011-11-29T12:45:00.001+01:00</published><updated>2011-11-29T12:47:10.129+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zedseries_lib'/><category scheme='http://www.blogger.com/atom/ns#' term='tips and tricks'/><title type='text'>Quick tip: easy writing of informative fields with ZedSeriesUi</title><content type='html'>&lt;p&gt;The Data Container Array (a.k.a. dca) of Contao cms allows to define custom fields through the &lt;a href="http://www.contao.org/callbacks.html"&gt;input_field_callback&lt;/a&gt; entry. A common usage scenario is providing informative contents to your users. This can be accomplished easily using the ZedSeriesUi class (that is included in &lt;a href="http://www.zedseries.com/zedseries-library-extension-for-contao.html" target="_blank"&gt;ZedSeries Library for Contao cms&lt;/a&gt;).&lt;/p&gt; &lt;p&gt;Define your informative field as input_field_callback:&lt;/p&gt; &lt;p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:800dc71a-efdf-4092-8ac3-8d3255e94525" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: php;wrap-lines:false;"&gt;&amp;lt;?php&lt;br /&gt;&lt;br /&gt;$GLOBALS['TL_DCA']['tl_dummy']['fields']['my_info_field'] = array(&lt;br /&gt;				     'input_field_callback' =&amp;gt; array('tl_dummy', 'myInfoField')&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;?&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Write your callback&lt;/p&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:fe1eae32-66ac-4470-9fbb-4f28a0c01e7a" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: php;"&gt;&amp;lt;?php &lt;br /&gt;&lt;br /&gt;class tl_dummy {&lt;br /&gt;&lt;br /&gt;    public function myInfoField($dc) {&lt;br /&gt;        $ui = new ZedSeriesUi();&lt;br /&gt;        return $ui-&amp;gt;ifcMessage('My content', 'zsui_info');&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;This will output a nice informative message&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img src="http://www.webpagescreenshot.info/img/70267-1129201114259pm.png" width="640" height="184"&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Feel free to comment below if you have further questions.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5997589132291828604-8832243700360970303?l=zedseries.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zedseries.blogspot.com/feeds/8832243700360970303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zedseries.blogspot.com/2011/11/quick-tip-easy-writing-of-informative.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/8832243700360970303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/8832243700360970303'/><link rel='alternate' type='text/html' href='http://zedseries.blogspot.com/2011/11/quick-tip-easy-writing-of-informative.html' title='Quick tip: easy writing of informative fields with ZedSeriesUi'/><author><name>ga.n</name><uri>http://www.blogger.com/profile/09566514372664225429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5997589132291828604.post-6791675398991258365</id><published>2011-11-25T23:39:00.001+01:00</published><updated>2011-11-25T23:46:46.258+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='developers'/><title type='text'>How to create a custom insert tags for Contao</title><content type='html'>&lt;p&gt;The Contao cms supports dynamic content integration through the so called "insert-tags". Contao has &lt;a href="http://www.contao.org/insert-tags.html"&gt;a lot of built in "insert-tags"&lt;/a&gt; but sometimes when writing custom extensions may be the need to create a custom one.&lt;/p&gt; &lt;a name='more'&gt;&lt;/a&gt; &lt;h2&gt;Our custom “insert tags”&lt;/h2&gt; &lt;p&gt;For the purpose of this tutorial we will create an extension for Contao that that provides two “insert tags” in order to display:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;The ip address of the visitor when called as&lt;strong&gt; {{mytag::ip_address}}&lt;/strong&gt;  &lt;li&gt;The current page title when called as &lt;strong&gt;{{mytag::page_title}}&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;em&gt;please note that the above functionalities are provided by the default {{env::ip}} and {{env::page_title}} “insert tags”.&lt;/em&gt;&lt;/p&gt; &lt;h2&gt;Prepare the directory structure And files&lt;/h2&gt; &lt;p&gt;Create the following files and directory under &lt;strong&gt;TL_ROOT/system/modules &lt;/strong&gt;&lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:6db592fc-848e-4381-8ecf-0dccad3d61ed" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: xml;"&gt;[D]: directory - [F]: file&lt;br /&gt;----------------------------------------------&lt;br /&gt;[D] my_inserttags/&lt;br /&gt;        [D] config/&lt;br /&gt;                [F] config.php&lt;br /&gt;        [F] MyInsertTags.php&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;h2&gt;Let’s start&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;Contao provides the insert-tags functionality through &lt;a href="http://www.contao.org/hooks.html#replaceInsertTags"&gt;the replaceInsertTags hook&lt;/a&gt;, so the creation of a custom "insert tags" is a simple two step operation:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Put the following code into my_inserttags/config/&lt;strong&gt;config.php&lt;/strong&gt; &lt;/p&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:c8774591-9b20-4164-a356-b9b82058a533" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: php;"&gt;&amp;lt;?php&lt;br /&gt;$GLOBALS['TL_HOOKS']['replaceInsertTags'][] = array('MyInsertTags', 'outputTagContent');&lt;br /&gt;?&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Put the following code into my_inserttags/MyInsertTags.php&lt;/p&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:0d853980-ebf5-4a65-8108-58a66d92bff8" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: php;"&gt;&amp;lt;?php&lt;br /&gt;&lt;br /&gt;class MyInsertTags extends Controller {&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    public function outputTagContent($strTag) {&lt;br /&gt;    &lt;br /&gt;        /**&lt;br /&gt;         * we need to run our function only if the $strTag argument is one of:&lt;br /&gt;         * mytag::ip_address&lt;br /&gt;         * or&lt;br /&gt;         * mytag::page_title&lt;br /&gt;         */&lt;br /&gt;        &lt;br /&gt;        $arrParts = explode('::', $strTag);&lt;br /&gt;        &lt;br /&gt;        /**&lt;br /&gt;         * returning false means that our function can not recognize the tag&lt;br /&gt;         * so Contao will try if the next hook applies&lt;br /&gt;         */&lt;br /&gt;&lt;br /&gt;        if ($arrParts[0] != 'mytag') {&lt;br /&gt;            return false;&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        switch ($arrParts[1]) {&lt;br /&gt;            &lt;br /&gt;            case 'ip_address':&lt;br /&gt;                &lt;br /&gt;                /**&lt;br /&gt;                 * here goes the code that match our mytag::ip_address tag&lt;br /&gt;                 */&lt;br /&gt;                &lt;br /&gt;                return $this-&amp;gt;Environment-&amp;gt;ip;&lt;br /&gt;            break;&lt;br /&gt;            case 'page_title':&lt;br /&gt;&lt;br /&gt;                /**&lt;br /&gt;                 * here goes the code that match our mytag::page_title tag&lt;br /&gt;                 */&lt;br /&gt;&lt;br /&gt;                return $GLOBALS['objPage']-&amp;gt;pageTitle;&lt;br /&gt;            break;&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        /**&lt;br /&gt;         * mytag::something is still an unrecognized tag&lt;br /&gt;         */&lt;br /&gt;        &lt;br /&gt;        return false;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;h2&gt;&lt;br&gt;We are done&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;Our estension is ready to run. We can test it by creating a content element through the Contao backend and put the following lines in it:&lt;/p&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:e3c626ee-817b-4025-9c3c-f6396b30257b" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: text;"&gt;&lt;br /&gt;You ip address is: {{mytag::ip_address}}&lt;br /&gt;&lt;br /&gt;The page title is: {{mytag::page_title}}&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;If you have questions or comments do not hesitate to comment below.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5997589132291828604-6791675398991258365?l=zedseries.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zedseries.blogspot.com/feeds/6791675398991258365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zedseries.blogspot.com/2011/11/how-to-create-custom-insert-tags-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/6791675398991258365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/6791675398991258365'/><link rel='alternate' type='text/html' href='http://zedseries.blogspot.com/2011/11/how-to-create-custom-insert-tags-for.html' title='How to create a custom insert tags for Contao'/><author><name>ga.n</name><uri>http://www.blogger.com/profile/09566514372664225429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5997589132291828604.post-6622033013649947500</id><published>2011-11-11T07:55:00.001+01:00</published><updated>2011-11-11T07:55:37.723+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='announcements'/><title type='text'>ZedSeries bug tracker changes</title><content type='html'>&lt;p&gt;The ZedSeries bug tracker located at dev.zedseries.com no longer allows anonymously bug reporting. This is due to two main reasons:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Anonymous reporter does not receive update of the ticket status through email this lead them to “forgot” about the report they did. Especially if an answer to the ticket come after some time (e.g. one week)&lt;/li&gt; &lt;li&gt;There are some annoying spammer out there&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;However there is no need to register if you only want to view a ticket.&lt;/p&gt; &lt;p&gt;For any questions do not hesitate to comment below.&lt;/p&gt; &lt;p&gt;Thanks.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5997589132291828604-6622033013649947500?l=zedseries.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zedseries.blogspot.com/feeds/6622033013649947500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zedseries.blogspot.com/2011/11/zedseries-bug-tracker-changes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/6622033013649947500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/6622033013649947500'/><link rel='alternate' type='text/html' href='http://zedseries.blogspot.com/2011/11/zedseries-bug-tracker-changes.html' title='ZedSeries bug tracker changes'/><author><name>ga.n</name><uri>http://www.blogger.com/profile/09566514372664225429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5997589132291828604.post-9208221298178312460</id><published>2011-07-02T07:37:00.000+02:00</published><updated>2011-07-02T07:45:21.414+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zedseries_imex'/><category scheme='http://www.blogger.com/atom/ns#' term='announcements'/><title type='text'>What’s new in ZedSeries Im.Ex. 0.8.0</title><content type='html'>&lt;p&gt;Just released version 0.8.0, main features:&lt;/p&gt; &lt;p&gt;- direct upload to contaotemplates.com through the Im.Ex. center&lt;/p&gt; &lt;p&gt;- ability to mark packages as private so noone except allowed members can access it.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5997589132291828604-9208221298178312460?l=zedseries.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zedseries.blogspot.com/feeds/9208221298178312460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zedseries.blogspot.com/2011/07/whats-new-in-zedseries-imex-080.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/9208221298178312460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/9208221298178312460'/><link rel='alternate' type='text/html' href='http://zedseries.blogspot.com/2011/07/whats-new-in-zedseries-imex-080.html' title='What’s new in ZedSeries Im.Ex. 0.8.0'/><author><name>ga.n</name><uri>http://www.blogger.com/profile/09566514372664225429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5997589132291828604.post-6833871258893536582</id><published>2011-05-15T18:24:00.002+02:00</published><updated>2011-11-25T22:18:04.297+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zedseries_lib'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorials'/><title type='text'>ConfigWizard available in version 1.5.0</title><content type='html'>&lt;p&gt;Version 1.5.0 of ZedSeries Library features a ConfigWizard class that lets developers quickly implement &lt;strong&gt;custom config options for&lt;/strong&gt; their &lt;strong&gt;Contao extensions&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;Config options are managed through a section/key/value schema.&lt;/p&gt; &lt;p&gt;In the following example we’ll manage two configuration options for a virtual extension. We’ll choose to assign to this configuration the name ‘dummy_ext’ (it will be our “section” name). Our two configuration options will be named option_string and option_flag.&lt;/p&gt; &lt;a name='more'&gt;&lt;/a&gt; &lt;h3&gt;Setting up the dca&lt;/h3&gt; &lt;p&gt;First of all we define our two field in the tl_zedseries_config dca.&lt;/p&gt; &lt;p&gt;Fields must be defined through the &lt;a href="http://www.contao.org/reference.html#fields"&gt;standard Contao notation&lt;/a&gt; as if they were standard database fields. &lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;The only difference is the key of the “fields” array that must be prefix’ed with the section name: so the entry for the option_string field will be dummy_ext_options_string and the entry for the option_flag will be dummy_ext_option_flag&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;The option_string will be a TextWidget, the option_flag will be a CheckBoxWidget field.&lt;/p&gt; &lt;p&gt;Create the &lt;strong&gt;system/modules/dummy_ext/dca/tl_zedseries_config.php&lt;/strong&gt; file and put the following lines:&lt;br&gt;&lt;br&gt;&lt;em&gt;please note that in the example below the labels for each fields are autoloaded from the tl_zedseries_config language file&lt;/em&gt;&lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:7006461f-17bd-4b28-bffe-c91ceeb2ea55" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: php;"&gt;&amp;lt;?php&lt;br /&gt;&lt;br /&gt;$GLOBALS['TL_DCA']['tl_zedseries_config']['fields']['dummy_ext_option_string'] = array('label' = &amp;gt;$GLOBALS['TL_LANG']['tl_zedseries_config']['dummy_ext_option_string'],  'inputType' =&amp;gt; 'text', 'eval' =&amp;gt; array('mandatory'=&amp;gt;true)); &lt;br /&gt;&lt;br /&gt;$GLOBALS['TL_DCA']['tl_zedseries_config']['fields']['dummy_ext_option_flag'] = array('label' =&amp;gt; &amp;amp;$GLOBALS['TL_LANG']['tl_zedseries_config']['dummy_ext_option_flag'], 'inputType' =&amp;gt; 'checkbox'); &lt;br /&gt;&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;&lt;br /&gt;&lt;h3&gt;Setting up the backend menu entry&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;Add this code to &lt;strong&gt;system/modules/dummy_ext/config/config.php:&lt;/strong&gt;&lt;/p&gt;&lt;pre class="brush: php; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: true; smart-tabs: true; tab-size: 4; toolbar: true;"&gt;&amp;lt;?php&lt;br /&gt;&lt;br /&gt;array_insert($GLOBALS['BE_MOD']['content'], 9, array( 'CustomConfiguration' =&amp;gt;array( 'callback' =&amp;gt; 'DummyExtConfig' ) ) ); &lt;br /&gt;&lt;br /&gt;?&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;then put in &lt;strong&gt;system/modules/dummy_ext/DummyExtConfig.php&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;pre class="brush: php; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: true; smart-tabs: true; tab-size: 4; toolbar: true;"&gt;&amp;lt;?php&lt;br /&gt;&lt;br /&gt;class DummyExtConfig extends ZedSeriesConfigWizard { &lt;br /&gt;&lt;br /&gt;     public function getSection() { &lt;br /&gt;&lt;br /&gt;         return 'dummy_ext'; &lt;br /&gt;&lt;br /&gt;     } &lt;br /&gt;&lt;br /&gt;     public function getTitle() { &lt;br /&gt;&lt;br /&gt;         return 'Configuration for dummy extension';&lt;br /&gt;&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;     public function getLogo() { &lt;br /&gt;        return 'system/modules/dummy_ext/media/images/config_logo.png'; &lt;br /&gt;&lt;br /&gt;    } &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;?&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;h3&gt;Retrieve settings&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;Settings can be retrieved using:&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;the ZedSeriesConfig::getValue($section, $k) static method, that returns the value for the specified section/key &lt;br /&gt;&lt;li&gt;the ZedSeriesConfig::getValues($section) static method that returns an associative array containing the keys and values for the specified section &lt;br /&gt;&lt;li&gt;the {{zcfg::_section_::_key_}} insert-tags&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;&lt;br /&gt;&lt;h3&gt;Conclusion&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;The above is only a quick example, feel free to comment below for any doubts or questions&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5997589132291828604-6833871258893536582?l=zedseries.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zedseries.blogspot.com/feeds/6833871258893536582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zedseries.blogspot.com/2011/05/configwizard-available-in-version-150.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/6833871258893536582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/6833871258893536582'/><link rel='alternate' type='text/html' href='http://zedseries.blogspot.com/2011/05/configwizard-available-in-version-150.html' title='ConfigWizard available in version 1.5.0'/><author><name>ga.n</name><uri>http://www.blogger.com/profile/09566514372664225429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5997589132291828604.post-3622480465721268941</id><published>2011-03-21T07:02:00.001+01:00</published><updated>2011-03-21T07:02:20.658+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zedseries_maps'/><category scheme='http://www.blogger.com/atom/ns#' term='announcements'/><title type='text'>What’s new on ZedSeries Maps 1.2.0</title><content type='html'>&lt;p&gt;ZedSeries Maps 1.2.0 contains the following changes:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;ability to show the infowindow of the map center after map loads &lt;/li&gt; &lt;li&gt;a new item type was added: “Directions item” let you define some starting points that will be shown in the "Get directions" form&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Take a look at the new features in the &lt;a href="http://demo.zedseries.com/mapview-module-demo-all.html?utm_source=blog&amp;amp;utm_medium=post&amp;amp;utm_campaign=zedseries_blog"&gt;demo page of ZedSeries Maps&lt;/a&gt;&lt;/p&gt; &lt;p&gt;If you wish to have a preview of all the features of ZedSeries Maps download the &lt;a href="http://www.zedseries.com/download.html?utm_source=blog&amp;amp;utm_medium=post&amp;amp;utm_campaign=zedseries_blog"&gt;user guide&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5997589132291828604-3622480465721268941?l=zedseries.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zedseries.blogspot.com/feeds/3622480465721268941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zedseries.blogspot.com/2011/03/whats-new-on-zedseries-maps-120.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/3622480465721268941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/3622480465721268941'/><link rel='alternate' type='text/html' href='http://zedseries.blogspot.com/2011/03/whats-new-on-zedseries-maps-120.html' title='What’s new on ZedSeries Maps 1.2.0'/><author><name>ga.n</name><uri>http://www.blogger.com/profile/09566514372664225429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5997589132291828604.post-6218476754600257047</id><published>2011-03-20T18:22:00.001+01:00</published><updated>2011-03-20T18:22:26.309+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zedseries_lib'/><category scheme='http://www.blogger.com/atom/ns#' term='announcements'/><category scheme='http://www.blogger.com/atom/ns#' term='developers'/><title type='text'>ZedSeries Library documentation (API)</title><content type='html'>&lt;p&gt;The documentation for the ZedSeries Library extension (zedseries_lib) is available at &lt;a href="http://api.zedseries.com"&gt;http://api.zedseries.com&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5997589132291828604-6218476754600257047?l=zedseries.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zedseries.blogspot.com/feeds/6218476754600257047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zedseries.blogspot.com/2011/03/zedseries-library-documentation-api.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/6218476754600257047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/6218476754600257047'/><link rel='alternate' type='text/html' href='http://zedseries.blogspot.com/2011/03/zedseries-library-documentation-api.html' title='ZedSeries Library documentation (API)'/><author><name>ga.n</name><uri>http://www.blogger.com/profile/09566514372664225429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5997589132291828604.post-2723803360989741390</id><published>2010-11-02T11:57:00.002+01:00</published><updated>2011-03-20T08:47:31.106+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='zedseries_help_system'/><title type='text'>What’s new in ZedSeries Help System 2.0</title><content type='html'>ZedSeries Help System for Contao cms&amp;nbsp; is a valuable tool that allows you to easily create user guides.&lt;br&gt;Through full integration with Contao you can associate a particular paragraph in a specific context, eg you can create a link into the “global operations menu” of the “news module” and bind it to a paragraph that explains the “news module”.&lt;br&gt;&lt;br&gt; &lt;a name='more'&gt;&lt;/a&gt;&lt;br&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://lh3.ggpht.com/_UYsnhDLAa2g/TM_udHqPW1I/AAAAAAAAABc/0mUN2HJBV9M/image%5B38%5D.png?imgmax=800" width="546" height="176"&gt; &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;For more information you can &lt;a href="http://www.zedseries.com/download.html"&gt;download the user guide of ZedSeries Help System&lt;/a&gt;.&lt;br&gt;Version 2.0 is actually in rc1, these are the major improvements of this release:&lt;br&gt; &lt;h2&gt;Preview&lt;/h2&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_UYsnhDLAa2g/TM_udnAlIXI/AAAAAAAAABk/iOvl06TkWDk/image%5B39%5D.png?imgmax=800" width="533" height="23"&gt; &lt;br&gt;Books can now be previewed before publishing, simply click on the icon and a popup with the book content will be opened.&lt;br&gt; &lt;h2&gt;Direct access to the filemanager&lt;/h2&gt;When editing paragraphs you can open the Contao filemanager inside an inline popup&lt;br&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_UYsnhDLAa2g/TM_ueDqlXQI/AAAAAAAAABM/Kkh44qzr4Xg/image%5B30%5D.png?imgmax=800" width="370" height="39"&gt; &lt;br&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_UYsnhDLAa2g/TM_ue_vfSBI/AAAAAAAAABs/FR5XtiFNSY4/image%5B40%5D.png?imgmax=800" width="527" height="303"&gt; &lt;br&gt; &lt;h2&gt;New image selector&lt;/h2&gt;the old image selector has been replaced by an improved version with a better preview.&lt;br&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_UYsnhDLAa2g/TM_uf8S-auI/AAAAAAAAAB0/AQb4D5tbz3o/image%5B41%5D.png?imgmax=800" width="525" height="356"&gt; &lt;br&gt;&lt;br&gt; &lt;h2&gt;Paragraphs selector restyled&lt;/h2&gt;A little descrption was added after the buttons&lt;br&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_UYsnhDLAa2g/TM_ugaU3m8I/AAAAAAAAABY/mjzNYx472ww/image%5B36%5D.png?imgmax=800" width="360" height="266"&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5997589132291828604-2723803360989741390?l=zedseries.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zedseries.blogspot.com/feeds/2723803360989741390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zedseries.blogspot.com/2010/11/whats-new-in-zedseries-help-system-20.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/2723803360989741390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/2723803360989741390'/><link rel='alternate' type='text/html' href='http://zedseries.blogspot.com/2010/11/whats-new-in-zedseries-help-system-20.html' title='What’s new in ZedSeries Help System 2.0'/><author><name>ga.n</name><uri>http://www.blogger.com/profile/09566514372664225429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_UYsnhDLAa2g/TM_udHqPW1I/AAAAAAAAABc/0mUN2HJBV9M/s72-c/image%5B38%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5997589132291828604.post-5634901160572265646</id><published>2010-07-25T13:35:00.000+02:00</published><updated>2011-03-20T08:49:07.562+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tutorials'/><title type='text'>How to create an extension for Contao starting from a Language Pack</title><content type='html'>&lt;blockquote&gt; &lt;p&gt;&lt;em&gt;This tutorial is tailored for windows users, I’m sure that users of other operating system know how to adapt it to their needs :)&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;A few days ago I’ve released a command line script that aims to build a Contao extension starting from a language pack.&lt;/p&gt; &lt;p&gt;The project page is located at &lt;a href="http://bitbucket.org/zedseries/contao_languagepack_builder/"&gt;http://bitbucket.org/zedseries/contao_languagepack_builder/&lt;/a&gt;, the script can be downloaded from &lt;a title="http://bitbucket.org/zedseries/contao_languagepack_builder/get/v1.0.1.stable.zip" href="http://bitbucket.org/zedseries/contao_languagepack_builder/get/v1.0.1.stable.zip"&gt;http://bitbucket.org/zedseries/contao_languagepack_builder/get/v1.0.1.stable.zip&lt;/a&gt;&lt;/p&gt; &lt;h2&gt;Requirements&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;Php executable installed on your system (The script is written in php, so you must have a php cli installation to run it) &lt;br&gt;If you do not have a php executable installed on your system, you can download a copy for windows at &lt;a title="http://www.php.net/get/php-5.2.14-Win32.zip/from/a/mirror" href="http://www.php.net/get/php-5.2.14-Win32.zip/from/a/mirror"&gt;http://www.php.net/get/php-5.2.14-Win32.zip/from/a/mirror&lt;/a&gt;)  &lt;li&gt;Some basic knowledge of the command line  &lt;li&gt;An account on Contao.org (if you are a translator you can use your translator username) &lt;/li&gt;&lt;/ul&gt; &lt;a name='more'&gt;&lt;/a&gt; &lt;ul&gt;&lt;/ul&gt; &lt;h2&gt;Getting started&lt;/h2&gt; &lt;ol&gt; &lt;li&gt;Create a folder into the drive C:\ and name it contao_language_extension  &lt;li&gt;Download the &lt;a href="http://bitbucket.org/zedseries/contao_languagepack_builder/get/v1.0.1.stable.zip"&gt;zip file containing the command line script&lt;/a&gt; and unzip it into the above dir  &lt;li&gt;Download the language pack from the Contao.org website (&lt;a title="http://www.contao.org/download.html#translations" href="http://www.contao.org/download.html#translations"&gt;http://www.contao.org/download.html#translations&lt;/a&gt;) and put it (&lt;strong&gt;without unzipping&lt;/strong&gt;) into the folder created in step 1.  &lt;li&gt;Create a folder (that will contain the extension built by the script) named &lt;strong&gt;out&lt;/strong&gt;. &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;If you have something like this:&lt;/p&gt; &lt;p&gt;&lt;a href="http://developmentwithtypolight.files.wordpress.com/2010/07/directory_schema.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="directory_schema" border="0" alt="directory_schema" src="http://developmentwithtypolight.files.wordpress.com/2010/07/directory_schema_thumb.png" width="667" height="278"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;you can go on :)&lt;/p&gt; &lt;h2&gt;Customize the extension&lt;/h2&gt; &lt;p&gt;Create a copy of C:\contao_language_extension\contao_languagepack_builder\package\package.xml.sample and rename it to package.xml.&lt;/p&gt; &lt;p&gt;Edit the package.xml (will looks like this):&lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:7c050543-bff4-4709-a3ee-81a81637d8d6" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; word-wrap: break-word; white-space: pre-wrap; overflow: auto"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #ff00ff"&gt;xml version="1.0" encoding="utf-8"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;?&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;!&lt;/span&gt;&lt;span style="color: #ff00ff"&gt;DOCTYPE typolightpackage&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;extension &lt;/span&gt;&lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="%languagepack_name%"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; date&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="%today%"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;author &lt;/span&gt;&lt;span style="color: #ff0000"&gt;user&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="__YOUR_ACCOUNT_NAME_AT_CONTAO"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="__YOUR_NAME__"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;copyright&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;__YOUR_COPYRIGHT_NOTICE__&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;copyright&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;license&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;LGPL&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;license&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;classification &lt;/span&gt;&lt;span style="color: #ff0000"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="free"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; category&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="other"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;release &lt;/span&gt;&lt;span style="color: #ff0000"&gt;version&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="%version_number%"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; build&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="0"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; date&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="%today%"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;language &lt;/span&gt;&lt;span style="color: #ff0000"&gt;code&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="en"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;translator &lt;/span&gt;&lt;span style="color: #ff0000"&gt;user&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="__YOUR_ACCOUNT_NAME_AT_CONTAO"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="__YOUR_NAME__"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;searchtags&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;languagepack,core translation&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;searchtags&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;%langname% Language Pack&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;teaser&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;__ENTER_A_TEASER__&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;teaser&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;description&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;__ENTER_A_DESCRIPTION__&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;description&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;releasenotes&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;%release_notes%&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;releasenotes&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;manual &lt;/span&gt;&lt;span style="color: #ff0000"&gt;link&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="__YOUR_WEBSITE__"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;language&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;extension&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;and provide the missing information, below you will find the package.xml used by the Italian Contao Community:&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:1ed4055d-9814-4c5c-b1a9-8876d0aada8a" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; word-wrap: break-word; white-space: pre-wrap; overflow: auto"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #ff00ff"&gt;xml version="1.0" encoding="utf-8"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;?&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;!&lt;/span&gt;&lt;span style="color: #ff00ff"&gt;DOCTYPE typolightpackage&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;extension &lt;/span&gt;&lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="%languagepack_name%"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; date&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="%today%"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;author &lt;/span&gt;&lt;span style="color: #ff0000"&gt;user&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="contaocms.it"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Italian Contao Community"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;copyright&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;(c) Italian Contao Community&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;copyright&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;license&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;LGPL&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;license&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;classification &lt;/span&gt;&lt;span style="color: #ff0000"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="free"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; category&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="translation"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;release &lt;/span&gt;&lt;span style="color: #ff0000"&gt;version&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="%version_number%"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; build&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="0"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; date&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="%today%"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;language &lt;/span&gt;&lt;span style="color: #ff0000"&gt;code&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="en"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;translator &lt;/span&gt;&lt;span style="color: #ff0000"&gt;user&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="contaocms.it"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Italian Contao Community"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;searchtags&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;languagepack,core translation&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;searchtags&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;%langname% Language Pack&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;teaser&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;The Italian translation by contaocms.it community&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;teaser&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;description&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;The Italian translation of core modules&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;description&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;releasenotes&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;%release_notes%&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;releasenotes&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;manual &lt;/span&gt;&lt;span style="color: #ff0000"&gt;link&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="http://www.contaocms.it"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;language&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;extension&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;The script will take care of:&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;ul&gt;&lt;br&gt;&lt;br /&gt;&lt;li&gt;Package name &lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;li&gt;Version &lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;li&gt;Release notes &lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;Please do not modify the values between % symbol (e.g. %version_number%)&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;h2&gt;Create the extension on the Contao repository&lt;/h2&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;Please note that this is a one-time operation, you need to accomplish it only the first time you create the extension&lt;/p&gt;&lt;br&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;Go to the &lt;a href="http://www.contao.org/extension-list.html"&gt;extension list page on Contao.org&lt;/a&gt; and click on “Manage extensions” (be sure to login first)&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://developmentwithtypolight.files.wordpress.com/2010/07/image6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://developmentwithtypolight.files.wordpress.com/2010/07/image_thumb6.png" width="644" height="354"&gt;&lt;/a&gt; &lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;then click on the “Add extension” button&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://developmentwithtypolight.files.wordpress.com/2010/07/image7.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://developmentwithtypolight.files.wordpress.com/2010/07/image_thumb7.png" width="644" height="142"&gt;&lt;/a&gt; &lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;Fill in the fields as illustrated below and click on the “Add extension” button&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://developmentwithtypolight.files.wordpress.com/2010/07/image8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://developmentwithtypolight.files.wordpress.com/2010/07/image_thumb8.png" width="644" height="212"&gt;&lt;/a&gt; &lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;The extension is now listed in your extension list.&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;h2&gt;Build the extension&lt;/h2&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;Open the command line window. In Windows 2000 and XP, select &lt;em&gt;Start, Programs&lt;/em&gt; (&lt;em&gt;All Programs&lt;/em&gt; in XP)&lt;em&gt;, Accessories, Command Prompt&lt;/em&gt;. Alternatively, you can open the window by choosing &lt;em&gt;Start, Run&lt;/em&gt;, typing &lt;strong&gt;command&lt;/strong&gt; (in Windows 98 and Me) or &lt;strong&gt;cmd&lt;/strong&gt; (in 2000 and XP), and pressing &lt;strong&gt;&amp;lt;Enter&amp;gt;&lt;/strong&gt;.&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;Type the following command into the window&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:0b5e246c-5c57-4e3f-92b1-1d6e4a59edf3" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; overflow: visible"&gt;&lt;span style="color: #000000"&gt;c:&lt;/span&gt;&lt;span style="color: #000000"&gt;\&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;c:&lt;/span&gt;&lt;span style="color: #000000"&gt;\&lt;/span&gt;&lt;span style="color: #000000"&gt;php5&lt;/span&gt;&lt;span style="color: #000000"&gt;\&lt;/span&gt;&lt;span style="color: #000000"&gt;php&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;exe c:&lt;/span&gt;&lt;span style="color: #000000"&gt;\&lt;/span&gt;&lt;span style="color: #000000"&gt;contao_language_extension&lt;/span&gt;&lt;span style="color: #000000"&gt;\&lt;/span&gt;&lt;span style="color: #000000"&gt;contao_languagepack_builder&lt;/span&gt;&lt;span style="color: #000000"&gt;\&lt;/span&gt;&lt;span style="color: #000000"&gt;build_languagepack&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;php c:&lt;/span&gt;&lt;span style="color: #000000"&gt;\&lt;/span&gt;&lt;span style="color: #000000"&gt;contao_language_extension&lt;/span&gt;&lt;span style="color: #000000"&gt;\&lt;/span&gt;&lt;span style="color: #000000"&gt;TYPOlight-Italian-v24&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;zip c:&lt;/span&gt;&lt;span style="color: #000000"&gt;\&lt;/span&gt;&lt;span style="color: #000000"&gt;contao_language_extension&lt;/span&gt;&lt;span style="color: #000000"&gt;\&lt;/span&gt;&lt;span style="color: #000000"&gt;out&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;You will be prompted with a summary screen:&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:56267ef4-5816-47cf-a395-99a41546163f" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; overflow: auto"&gt;&lt;span style="color: #000000"&gt;Contao Language Pack builder by zedseries.com&lt;br&gt;====================&lt;br&gt;A Contao extension will be created with the following settings:&lt;br&gt;&lt;br&gt;sourceFile        :   c:\contao_language_extension\TYPOlight-Italian-v24.zip&lt;br&gt;destinationDir    :   c:\contao_language_extension\out&lt;br&gt;languageName      :   italian&lt;br&gt;versionNo         :   010000249&lt;br&gt;&lt;br&gt;Do you wish to continue (y/n)?&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;Just type “y” to go on.&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;A new fill will be created into the &lt;strong&gt;out&lt;/strong&gt;&amp;nbsp; folder&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:83037fb8-b915-43d7-8b3d-95985ecd3147" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; overflow: auto"&gt;&lt;span style="color: #000000"&gt;C:&lt;/span&gt;&lt;span style="color: #000000"&gt;\&lt;/span&gt;&lt;span style="color: #000000"&gt;CONTAO_LANGUAGE_EXTENSION&lt;br&gt;¦   TYPOlight-Italian-v24&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;zip&lt;br&gt;¦&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;---contao_languagepack_builder&lt;br&gt;¦   ¦   &lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;hgignore&lt;br&gt;¦   ¦   &lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;hg_archival&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;txt&lt;br&gt;¦   ¦   build_languagepack&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;php&lt;br&gt;¦   ¦   CHANGELOG&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;txt&lt;br&gt;¦   ¦   README&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;txt&lt;br&gt;¦   ¦&lt;br&gt;¦   &lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;---lib&lt;br&gt;¦   ¦       cmd_class&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;php&lt;br&gt;¦   ¦       utils&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;php&lt;br&gt;¦   ¦       zip&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;php&lt;br&gt;¦   ¦&lt;br&gt;¦   &lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;---package&lt;br&gt;¦           package&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;xml&lt;br&gt;¦           package&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;xml&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;sample&lt;br&gt;¦&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;---out&lt;br&gt;        TYPOlight_italian_languagepack_010000249&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;zip&lt;br&gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;h2&gt;Upload the extension to the repository&lt;/h2&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.contao.org/manage-extensions.html"&gt;Go to the manage extensions page on Contao.org&lt;/a&gt; click on the “Upload package” button, then click the “Browse” button and select the file in the &lt;strong&gt;out&lt;/strong&gt; folder. Once selected click on the Upload package button.&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;h2&gt;Publish the release&lt;/h2&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;The final step is to publish the release, at &lt;a href="http://www.youtube.com/watch?v=L_IphZYBY_8#t=3m08s"&gt;http://www.youtube.com/watch?v=L_IphZYBY_8#t=3m08s&lt;/a&gt; you will find a video tutorial on how to accomplish this step.&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;h2&gt;Need help?&lt;/h2&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;Feel free to comment below if you need further assistance.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5997589132291828604-5634901160572265646?l=zedseries.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zedseries.blogspot.com/feeds/5634901160572265646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zedseries.blogspot.com/2010/07/how-to-create-extension-for-contao.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/5634901160572265646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/5634901160572265646'/><link rel='alternate' type='text/html' href='http://zedseries.blogspot.com/2010/07/how-to-create-extension-for-contao.html' title='How to create an extension for Contao starting from a Language Pack'/><author><name>ga.n</name><uri>http://www.blogger.com/profile/09566514372664225429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5997589132291828604.post-6363972374279977833</id><published>2010-07-19T10:26:00.000+02:00</published><updated>2011-03-20T08:50:01.565+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='developers'/><category scheme='http://www.blogger.com/atom/ns#' term='dca'/><title type='text'>Let users find custom templates with Contao 2.9</title><content type='html'>&lt;blockquote&gt; &lt;p&gt;This article has developers as audience, if you came here wondering why your custom template doesn’t get listed, please contact the author of the extension and tell him about this article :)&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;From version 2.9 Contao introduces the concept to pick templates from different directories and subdirectories.&lt;/p&gt; &lt;p&gt;Contao 2.9 introduces also the concept of themes, and let users assign a directory of templates to a theme. &lt;a href="http://www.contao.org/news/items/contao-2_9_RC1.html"&gt;You can read the full announcement here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;If an user put a custom template into a subdirectory of the main templates dir, some extensions will not show it.&lt;/p&gt; &lt;p&gt;Every developers should update their extensions to reflect the above changes, here I will propose a cross-version solution to solve this problem.&lt;/p&gt; &lt;p&gt;If your extension uses a custom template, you will have a line like this in your d.c.a (let me tell we are talking about the tl_example dca):&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:78fc6ac7-013e-4258-9e7b-73bfbdb7879d" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; word-wrap: break-word; white-space: pre-wrap; overflow: auto"&gt;&lt;span style="color: #800080"&gt;$GLOBALS&lt;/span&gt;&lt;span style="color: #000000"&gt;[‘TL_DCA’][‘tl_example’][‘fields’][‘my_template_field’] &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;array&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;br&gt;    ‘inputType’ &lt;/span&gt;&lt;span style="color: #000000"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt; ‘select’&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;    ‘options’ &lt;/span&gt;&lt;span style="color: #000000"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$this&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;getTemplateGroup(‘my_prefix’)&lt;br&gt;);&lt;br&gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;in order to list the templates that exists in the template folder assigned to a theme, you must make the following changes:&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;Create a class wherever you want&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;(the “Contao way”&amp;nbsp; of doing it is to create a class named as the dca inside the same file.)&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp; &lt;/p&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:f35ec7fb-9a81-49f1-8705-d7a4dffb9d29" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; word-wrap: break-word; white-space: pre-wrap; overflow: auto"&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt; tl_example &lt;/span&gt;&lt;span style="color: #0000ff"&gt;extends&lt;/span&gt;&lt;span style="color: #000000"&gt; Backend {&lt;br&gt;    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&lt;span style="color: #000000"&gt; __construct() {&lt;br&gt;        parent&lt;/span&gt;&lt;span style="color: #000000"&gt;::&lt;/span&gt;&lt;span style="color: #000000"&gt;__construct();&lt;br&gt;    }&lt;br&gt;&lt;br&gt;    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&lt;span style="color: #000000"&gt; listTemplates(&lt;/span&gt;&lt;span style="color: #800080"&gt;$dc&lt;/span&gt;&lt;span style="color: #000000"&gt;) {&lt;br&gt;        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #008080"&gt;version_compare&lt;/span&gt;&lt;span style="color: #000000"&gt;(VERSION&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;BUILD&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;2.9.0&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;)) {&lt;br&gt;            &lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$this&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;getTemplateGroup(‘my_prefix’&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$dc&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;activeRecord&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;pid);&lt;br&gt;        } &lt;/span&gt;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;span style="color: #000000"&gt; {&lt;br&gt;            &lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$this&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;getTemplateGroup(‘my_prefix’);&lt;br&gt;        }&lt;br&gt;    }&lt;br&gt;}&lt;br&gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;then change the field’s entry in your dca to take the list of templates from the above function:&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp; &lt;/p&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:6a98b318-8719-4708-80f4-c5d5a9c23b5e" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; word-wrap: break-word; white-space: pre-wrap; overflow: auto"&gt;&lt;span style="color: #800080"&gt;$GLOBALS&lt;/span&gt;&lt;span style="color: #000000"&gt;[‘TL_DCA’][‘tl_example’][‘fields’][‘my_template_field’] &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;array&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;br&gt;    ‘inputType’ &lt;/span&gt;&lt;span style="color: #000000"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt; ‘select’&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;    ‘options_callback’ &lt;/span&gt;&lt;span style="color: #000000"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;array&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;tl_example&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;listTemplates&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br&gt;);&lt;br&gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;These changes will make you extension compatible with Contao 2.9 and mantain the compatibilty with older versions.&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;Please comment below if you find errors or you simply&amp;nbsp; want to say something :)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5997589132291828604-6363972374279977833?l=zedseries.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zedseries.blogspot.com/feeds/6363972374279977833/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zedseries.blogspot.com/2010/07/let-users-find-custom-templates-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/6363972374279977833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/6363972374279977833'/><link rel='alternate' type='text/html' href='http://zedseries.blogspot.com/2010/07/let-users-find-custom-templates-with.html' title='Let users find custom templates with Contao 2.9'/><author><name>ga.n</name><uri>http://www.blogger.com/profile/09566514372664225429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5997589132291828604.post-4036863975221073603</id><published>2010-07-11T13:46:00.000+02:00</published><updated>2011-03-20T08:51:05.662+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='announcements'/><title type='text'>Just published api.zedseries.com</title><content type='html'>&lt;p&gt;I have just uploaded the documentation for &lt;a href="http://www.zedseries.com/zedseries-library-extension-for-contao.html"&gt;ZedSeries Library&lt;/a&gt; to &lt;a href="http://api.zedseries.com"&gt;http://api.zedseries.com&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Feel free to comment below if you find errors or if you have suggestions to improve it.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5997589132291828604-4036863975221073603?l=zedseries.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zedseries.blogspot.com/feeds/4036863975221073603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zedseries.blogspot.com/2010/07/just-published-apizedseriescom.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/4036863975221073603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/4036863975221073603'/><link rel='alternate' type='text/html' href='http://zedseries.blogspot.com/2010/07/just-published-apizedseriescom.html' title='Just published api.zedseries.com'/><author><name>ga.n</name><uri>http://www.blogger.com/profile/09566514372664225429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5997589132291828604.post-2599672953548337125</id><published>2010-07-05T21:42:00.000+02:00</published><updated>2011-03-20T08:52:45.730+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='zedseries_listing'/><title type='text'>ZedSeries Listing Tutorial (part #1)</title><content type='html'>&lt;p&gt;Today was released ZedSeries Listing 1.6.0.stable, it is compatible with Contao 2.9 and is shipped with an inline guide. The following tutorial is taken from the inline guide. The project page is located at &lt;a title="http://www.zedseries.com/zedseries-listing-extension-for-typolight.html" href="http://www.zedseries.com/zedseries-listing-extension-for-typolight.html"&gt;http://www.zedseries.com/zedseries-listing-extension-for-typolight.html&lt;/a&gt;. The issues are managed through bitbucket at &lt;a href="http://bitbucket.org/zedseries/zedseries_listing/issues/"&gt;http://bitbucket.org/zedseries/zedseries_listing/issues/&lt;/a&gt;. &lt;a href="http://www.contao.org/extension-list/view/zedseries_listing.10060009.en.html"&gt;You can also visit the project page of ZedSeries Listing on Contao.org website&lt;/a&gt;.&lt;/p&gt; &lt;a name='more'&gt;&lt;/a&gt; &lt;p&gt;In order to show how ZedSeries Listing module works we are going to build a Faq Listing/Viewer. We will create the following three modules:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;F.A.Q. Categories listing (will show a list of F.A.Q. categories)  &lt;li&gt;F.A.Q. listing (will show a list of F.A.Q. belonging to the selected category)  &lt;li&gt;F.A.Q. details (will show the answer of a specific F.A.Q.) &lt;/li&gt;&lt;/ul&gt; &lt;h2&gt;Getting Started&lt;/h2&gt; &lt;p&gt;In order to follow this tutorial you need at least:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;some F.A.Q., so you'll have to go to the FAQ module and create some categories and then some faq.  &lt;li&gt;three pages that will contain the above modules &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;and you need to be able to do some operations (e.g. module creation) because this steps are not explained.&lt;/p&gt; &lt;h2&gt;Basic styling with CSS&lt;/h2&gt; &lt;p&gt;ZedSeries Listing comes with an example stylesheet, you can find it in the contrib folder of zedseries_listing directory.&lt;/p&gt; &lt;p&gt;The quickest way to incorporate it, is to add the following line:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;link rel="stylesheet" href="system/modules/zedseries_listing/contrib/zedseries_listing_style.css" media="screen" /&amp;gt;&lt;br&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;to the "Additional head tags" section of your layout&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;h2&gt;F.A.Q. Categories listing&lt;/h2&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;This module will show a list of all F.A.Q. categories.&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;Our listing will contain the id, title and headline of each f.a.q. category sorted by title and without pagination. We link each faq category to another listing module with an url like this: (assuming that we have a category which title is "faq-category" with id 1)&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;http://www.example.com/faq-listing-page/i/&lt;strong&gt;1&lt;/strong&gt;/t/&lt;strong&gt;faq-category&lt;/strong&gt;.html&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;We'll add the ability to search by title.&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;h3&gt;F.A.Q. Categories listing configuration&lt;/h3&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;Create a new module of type "ZedSeries Listing" and fill in the fields as illustrated below:&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://developmentwithtypolight.files.wordpress.com/2010/07/image.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://developmentwithtypolight.files.wordpress.com/2010/07/image_thumb.png" width="590" height="762"&gt;&lt;/a&gt; &lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;The result (once you have put the module inside an article) should be something like this:&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://developmentwithtypolight.files.wordpress.com/2010/07/image1.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://developmentwithtypolight.files.wordpress.com/2010/07/image_thumb1.png" width="421" height="193"&gt;&lt;/a&gt; &lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;Now it's time to create our &lt;a href="http://127.0.01/typolight/tl_imex_demosite/system/html/zhs-book-fb6db0a1a4c71959c5ff9f7e893a5662/zedseries_help_system_book/131.text.html#par151"&gt;F.A.Q. Listing module&lt;/a&gt;&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;h3&gt;F.A.Q. Listing&lt;/h3&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;Our F.A.Q. Listing module will display all the F.A.Q. that belong to a selected category.&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;Our list will be searchable for a specific question.&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;This time we'll add a "condition" to show only the faq of a specific category. The condition will be:&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;pre&gt;&lt;code&gt;pid={{request::i}}&lt;br&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;since in the database the pid field of table tl_faq is associated with the id field of the tl_faq_category table.&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;We use the {{request::i}} insert tag to retrieve the "i" param from the url. If you followed the &lt;a href="http://127.0.01/typolight/tl_imex_demosite/system/html/zhs-book-fb6db0a1a4c71959c5ff9f7e893a5662/zedseries_help_system_book/131.text.html#par133"&gt;previous step&lt;/a&gt; you know that the i url name is associated with the field "id" of tl_faq_category.&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;We'll link this module to another module with an url like this: (assuming that we have a faq which alias is "our-faq-question")&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;http://www.example.com/faq-details-page/question/&lt;strong&gt;our-faq-question&lt;/strong&gt;.html&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;Create a module and fill in as illustrated below:&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://developmentwithtypolight.files.wordpress.com/2010/07/image2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://developmentwithtypolight.files.wordpress.com/2010/07/image_thumb2.png" width="590" height="627"&gt;&lt;/a&gt; &lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;The result will be something like this:&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://developmentwithtypolight.files.wordpress.com/2010/07/image3.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://developmentwithtypolight.files.wordpress.com/2010/07/image_thumb3.png" width="421" height="170"&gt;&lt;/a&gt; &lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;h3&gt;F.A.Q. Details module&lt;/h3&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;This module will show the selected question and the answer. It is the simplest module of our tutorial since we have to select the fields we want to show and the "source" listing module.&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;Create a module of type "ZedSeries Listing Details" and fill in as illustrated below:&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://developmentwithtypolight.files.wordpress.com/2010/07/image4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://developmentwithtypolight.files.wordpress.com/2010/07/image_thumb4.png" width="590" height="290"&gt;&lt;/a&gt; &lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;The result will be something like this:&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://developmentwithtypolight.files.wordpress.com/2010/07/image5.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://developmentwithtypolight.files.wordpress.com/2010/07/image_thumb5.png" width="417" height="76"&gt;&lt;/a&gt; &lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;h3&gt;Final notes&lt;/h3&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;ZedSeries Listing module is a powerful module that speed up data listing with a litte effort (you have to deal with fields, table and url schema).&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;Every output generated by the ZedSeries Listing modules can be customized, take a look at &lt;a href="http://developmentwithtypolight.wordpress.com/2009/10/26/zedseries-listing-how-to-use-helper-in-template-writing/"&gt;How to use helper in template writing&lt;/a&gt;&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;However this topic will be covered in the next version of this guide.&lt;/strong&gt;&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;If you want to get notified about the updates of this guide you can follow the &lt;a href="http://twitter.com/zedserieslab"&gt;zedserieslab's tweets&lt;/a&gt;&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;Feel free to comment below if you have any questions.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5997589132291828604-2599672953548337125?l=zedseries.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zedseries.blogspot.com/feeds/2599672953548337125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zedseries.blogspot.com/2010/07/zedseries-listing-tutorial-part-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/2599672953548337125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/2599672953548337125'/><link rel='alternate' type='text/html' href='http://zedseries.blogspot.com/2010/07/zedseries-listing-tutorial-part-1.html' title='ZedSeries Listing Tutorial (part #1)'/><author><name>ga.n</name><uri>http://www.blogger.com/profile/09566514372664225429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5997589132291828604.post-3845108064976778721</id><published>2010-02-28T21:40:00.000+01:00</published><updated>2011-03-20T08:54:12.805+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zedseries_commenteverything'/><title type='text'>An overview of ZedSeries CommentEverything</title><content type='html'>&lt;a href="http://www.zedseries.com/zedseries-comment-everything-extension-for-typolight.html"&gt;ZedSeries CommentEverything&lt;/a&gt; is an &lt;a href="http://www.zedseries.com"&gt;open source extension for TYPOlight cms provided by zedseries.com&lt;/a&gt; improves the comments&amp;nbsp; default&amp;nbsp; module&amp;nbsp;&amp;nbsp;&amp;nbsp; providing the ability to setup a 'topic' for each content element;&lt;br&gt;&lt;br&gt;Offers, also, the possibility to setup a relation between the topic and any table in your TYPOlight installation.&lt;br&gt;&lt;br&gt;The screenshot below show how appears the comments module (after users have made a comment) used by default in the F.A.Q. module&lt;br&gt;&lt;br&gt;&lt;a href="http://www.zedseries.com/zedseries-comment-everything-extension-for-typolight.html"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="faq_comments_default" border="0" alt="faq_comments_default" src="http://developmentwithtypolight.files.wordpress.com/2010/02/faq_comments_default.png" width="510" height="244"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;As you can see there is no way to know that F.A.Q. 1 (listed in the filters bar) is related to the “Question #1”, this can be ok if you do not have many faq or if you have just some comments.&lt;br&gt;&lt;br&gt;Using ZedSeriesCommentEverything you have more control on the comments of your website. It adds a new filter on the comments module so you can filter only the comments about a topic.&lt;br&gt;&lt;br&gt;&lt;a href="http://developmentwithtypolight.files.wordpress.com/2010/02/faq_comments_commenteverything.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="faq_comments_commenteverything" border="0" alt="faq_comments_commenteverything" src="http://developmentwithtypolight.files.wordpress.com/2010/02/faq_comments_commenteverything_thumb.png" width="514" height="248"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;“Question #1” is more readable than “Parent ID 1” isn’t it? :)&lt;br&gt; &lt;h2&gt;How to setup ZedSeriesCommentEverything&lt;/h2&gt;&lt;br&gt;The extension replaces the content element “comments” so don’t expect to find additional entries in your “content elements” list: just use a “content element” of type “comments”.&lt;br&gt;&lt;br&gt;You can setup the (new) comments element with or without a database table relation.&lt;br&gt;&lt;br&gt;Database table relations are useful if you want to bind&amp;nbsp; comments with existing data such as the f.a.q. example above. To add a relation just enter the topic and specify the field of which table will match the topic. Then you have to specify a field that will be used as label on the filters panel.&lt;br&gt;&lt;br&gt;The (new) comments element can be set up with a topic that is not related to existing data. A tipical usage could be to setup a `shoutbox`on your website.&lt;br&gt;&lt;br&gt;In this article we are going to show how to setup a (new) comments content element in both cases.&lt;br&gt; &lt;h2&gt;Setup with a relation to existing data&lt;/h2&gt;&lt;br&gt;In order to reproduce the example above (comments related to the faq) set the “content element” as follow: dynamic&lt;br&gt;&lt;br&gt;&lt;a href="http://developmentwithtypolight.files.wordpress.com/2010/02/faq_setup_comments_ce.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="faq_setup_comments_ce" border="0" alt="faq_setup_comments_ce" src="http://developmentwithtypolight.files.wordpress.com/2010/02/faq_setup_comments_ce_thumb.png" width="523" height="313"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;To give it a try, just put it in the same article in which you put the faq reader.&lt;br&gt;&lt;br&gt;(If you are wondering about the ”{{request::}}” “insert tag” it is bundled with zedseries_lib)&lt;br&gt; &lt;h2&gt;Setup up as a shoutbox&lt;/h2&gt;&lt;br&gt;Another way of using the (new) comments content element is to use it to put comments to a specific section of your website (e.g. the layout, a restricted member area section … and so on).&lt;br&gt;&lt;br&gt;Create a (new) comments content element and specify a topic leaving blank the “Foreign key” and “Show field” fields.&lt;br&gt;&lt;br&gt;&lt;a href="http://developmentwithtypolight.files.wordpress.com/2010/02/commenteverything_shoutbox_setup.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="commenteverything_shoutbox_setup" border="0" alt="commenteverything_shoutbox_setup" src="http://developmentwithtypolight.files.wordpress.com/2010/02/commenteverything_shoutbox_setup_thumb.png" width="528" height="200"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;Once your users add comments you can filter it using the MyShoutbox filter as “Related topic”.&lt;br&gt;&lt;br&gt;&lt;a href="http://developmentwithtypolight.files.wordpress.com/2010/02/commenteverything_shoutbox_filter.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="commenteverything_shoutbox_filter" border="0" alt="commenteverything_shoutbox_filter" src="http://developmentwithtypolight.files.wordpress.com/2010/02/commenteverything_shoutbox_filter_thumb.png" width="532" height="352"&gt;&lt;/a&gt;&lt;br&gt; &lt;h2&gt;That’s all&lt;/h2&gt;&lt;br&gt;&lt;a href="http://www.zedseries.com/zedseries-comment-everything-extension-for-typolight.html"&gt;ZedSeries CommentEverything&lt;/a&gt; can be installed through the TYPOlight repository catalog browser.&lt;br&gt;&lt;br&gt;You can find it quickly searching for “comment topic” tag-&lt;br&gt;&lt;br&gt;If you need help or have some questions please post a comment.   &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5997589132291828604-3845108064976778721?l=zedseries.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zedseries.blogspot.com/feeds/3845108064976778721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zedseries.blogspot.com/2010/02/overview-of-zedseries-commenteverything.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/3845108064976778721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/3845108064976778721'/><link rel='alternate' type='text/html' href='http://zedseries.blogspot.com/2010/02/overview-of-zedseries-commenteverything.html' title='An overview of ZedSeries CommentEverything'/><author><name>ga.n</name><uri>http://www.blogger.com/profile/09566514372664225429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5997589132291828604.post-8768381177080042982</id><published>2010-02-27T21:46:00.000+01:00</published><updated>2011-03-20T08:55:20.061+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='announcements'/><category scheme='http://www.blogger.com/atom/ns#' term='zedseries_listing'/><title type='text'>ZedSeries Listing v. 1.6.x: search system improved</title><content type='html'>&lt;p&gt;From version 1.6.x (currently in rc1) ZedSeries Listing introduces a new search system to improve the search experience of the users of your website.&lt;/p&gt; &lt;p&gt;Basically it allows users to select more than just one field.&lt;/p&gt; &lt;p&gt;The new interface is composed by two select and one text field&lt;/p&gt; &lt;p&gt;&lt;a href="http://developmentwithtypolight.files.wordpress.com/2010/02/zedseries_listing_search_ui.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="zedseries_listing_search_ui" border="0" alt="zedseries_listing_search_ui" src="http://developmentwithtypolight.files.wordpress.com/2010/02/zedseries_listing_search_ui_thumb.png" width="360" height="164"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Compared to the previous interface now user can choose not only the field to filter but also the comparison operator. Multiple conditions can be added easily clicking on the green plus sign or deleted clicking on the red x.&lt;/p&gt; &lt;p&gt;Currently the supported operators are the following:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;equal  &lt;li&gt;greater than  &lt;li&gt;equal or greater then  &lt;li&gt;lower than  &lt;li&gt;equal or lower than  &lt;li&gt;starts with  &lt;li&gt;contains  &lt;li&gt;ends with &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Next release will contain the option to show only selected operators.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5997589132291828604-8768381177080042982?l=zedseries.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zedseries.blogspot.com/feeds/8768381177080042982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zedseries.blogspot.com/2010/02/zedseries-listing-v-16x-search-system.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/8768381177080042982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/8768381177080042982'/><link rel='alternate' type='text/html' href='http://zedseries.blogspot.com/2010/02/zedseries-listing-v-16x-search-system.html' title='ZedSeries Listing v. 1.6.x: search system improved'/><author><name>ga.n</name><uri>http://www.blogger.com/profile/09566514372664225429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5997589132291828604.post-6872931277621210317</id><published>2010-02-25T13:00:00.000+01:00</published><updated>2011-03-20T08:57:17.798+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ZedSeriesUi'/><category scheme='http://www.blogger.com/atom/ns#' term='zedseries_lib'/><category scheme='http://www.blogger.com/atom/ns#' term='developers'/><title type='text'>ZedSeriesUI: how to output nice messages in your backend modules</title><content type='html'>&lt;p&gt;Sometimes you need to show some messages coming from your own backend module. In these cases usage of a template would be only a waste of time.&lt;/p&gt; &lt;p&gt;ZedSeriesUI satisfies these needs.&lt;/p&gt; &lt;p&gt;With ZedSeriesUi output your message will be easily as writing these lines:&lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:48edefe0-a0d8-4070-9c15-0bc7a9115311" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; font-family: tahoma; font-size: 12px; overflow: auto"&gt;&lt;span style="color: #000000"&gt;        &lt;/span&gt;&lt;span style="color: #800080"&gt;$ui&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; ZedSeriesUi();&lt;br&gt;&lt;br&gt;&lt;br&gt;        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;  &lt;/span&gt;&lt;span style="color: #800080"&gt;$ui&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;title(&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;Operation completed&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br&gt;               &lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #800080"&gt;$ui&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;box(&lt;br&gt;                         &lt;/span&gt;&lt;span style="color: #800080"&gt;$ui&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;beLink(&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;Go back to the main module.&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;do=myModule&amp;amp;key=MyModule&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br&gt;                );&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;the result will be graphically&amp;nbsp; integrated with TYPOlight default theme:&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://developmentwithtypolight.files.wordpress.com/2010/02/zedseriesui_box1.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="zedseriesui_box" border="0" alt="zedseriesui_box" src="http://developmentwithtypolight.files.wordpress.com/2010/02/zedseriesui_box_thumb1.png" width="487" height="147"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;Another useful function, if you need to build a list from custom data, is the&amp;nbsp; listingContainer function that along with the listingItem, can produce output like this:&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://developmentwithtypolight.files.wordpress.com/2010/02/zedseriesui_listingcontainer2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="zedseriesui_listingcontainer" border="0" alt="zedseriesui_listingcontainer" src="http://developmentwithtypolight.files.wordpress.com/2010/02/zedseriesui_listingcontainer_thumb2.png" width="485" height="295"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;The above result can be produced with the following code:&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:7580fb34-f12e-441e-a875-9f092652d1ce" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; font-family: tahoma; font-size: 11px; overflow: auto"&gt;&lt;span style="color: #000000"&gt;        &lt;/span&gt;&lt;span style="color: #800080"&gt;$ui&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; ZedSeriesUi();&lt;br&gt;&lt;br&gt;        &lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt; just a fake data array&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;        &lt;/span&gt;&lt;span style="color: #800080"&gt;$items&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #008080"&gt;range&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #000000"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;15&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br&gt;&lt;br&gt;        &lt;/span&gt;&lt;span style="color: #800080"&gt;$listingItems&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;array&lt;/span&gt;&lt;span style="color: #000000"&gt;();&lt;br&gt;&lt;br&gt;        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #800080"&gt;$items&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;as&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$item&lt;/span&gt;&lt;span style="color: #000000"&gt;) {&lt;br&gt;           &lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt; collect them using listingItem&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;            &lt;/span&gt;&lt;span style="color: #800080"&gt;$listingItems&lt;/span&gt;&lt;span style="color: #000000"&gt;[] &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$ui&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;listingItem(&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;List item #&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #800080"&gt;$item&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$ui&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;beLink(&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;edit&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;do=MyModule&amp;amp;key=MyFunction&amp;amp;id=&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #800080"&gt;$item&lt;/span&gt;&lt;span style="color: #000000"&gt;));&lt;br&gt;        }&lt;br&gt;        &lt;br&gt;        &lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt; then return it inside a listingContainer&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$ui&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;listingContainer(&lt;/span&gt;&lt;span style="color: #008080"&gt;implode&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;\n&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$listingItems&lt;/span&gt;&lt;span style="color: #000000"&gt;));&lt;br&gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;ZedSeriesUI is distributed inside the &lt;a href="http://www.zedseries.com/zedseries-library-extension-for-typolight.html"&gt;ZedSeries Library extension for TYPOlight cms&lt;/a&gt;&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;ZedSeriesUI is a young project but it will grow in the next releases of ZedSeriesLibrary&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;Do not forget to add the proper ‘&amp;lt;requiredextension name=”zedseries_lib” … /&amp;gt;’ in the package.xml of your extension&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;Issues of the ZedSeries Library extension are managed through bitbucket at: &lt;a href="http://bitbucket.org/zedseries/zedseries_lib/issues/"&gt;http://bitbucket.org/zedseries/zedseries_lib/issues/&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5997589132291828604-6872931277621210317?l=zedseries.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zedseries.blogspot.com/feeds/6872931277621210317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zedseries.blogspot.com/2010/02/zedseriesui-how-to-output-nice-messages.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/6872931277621210317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/6872931277621210317'/><link rel='alternate' type='text/html' href='http://zedseries.blogspot.com/2010/02/zedseriesui-how-to-output-nice-messages.html' title='ZedSeriesUI: how to output nice messages in your backend modules'/><author><name>ga.n</name><uri>http://www.blogger.com/profile/09566514372664225429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5997589132291828604.post-747271644145619144</id><published>2010-02-22T12:37:00.000+01:00</published><updated>2011-03-20T08:58:28.175+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='extensions'/><title type='text'>tl_debug: An useful extension for debugging TYPOlight</title><content type='html'>&lt;p&gt;Project:&amp;nbsp; &lt;a title="http://www.cyberspectrum.de/" href="http://www.cyberspectrum.de/"&gt;http://www.cyberspectrum.de/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Project webSvn page: (&lt;a title="http://websvn.cyberspectrum.de/wsvn/tl_debug/" href="http://websvn.cyberspectrum.de/wsvn/tl_debug/"&gt;http://websvn.cyberspectrum.de/wsvn/tl_debug/&lt;/a&gt;)&lt;/p&gt; &lt;p&gt;tl_debug enable using firePhp from inside your TYPOlight extension.&lt;/p&gt; &lt;h2&gt;Installation&lt;/h2&gt; &lt;p&gt;You can download the source through svn.&lt;/p&gt; &lt;p&gt;At this time the most recent version is available doing a checkout at &lt;a title="http://websvn.cyberspectrum.de/wsvn/tl_debug/tags/0.5.0" href="http://websvn.cyberspectrum.de/wsvn/tl_debug/tags/0.5.0"&gt;http://websvn.cyberspectrum.de/wsvn/tl_debug/tags/0.5.0&lt;/a&gt;&lt;/p&gt; &lt;p&gt;If you are not familiar with svn you can use tools like TortoiseSVN&amp;nbsp; (&lt;a title="http://tortoisesvn.net/downloads" href="http://tortoisesvn.net/downloads"&gt;http://tortoisesvn.net/downloads&lt;/a&gt;)&lt;/p&gt; &lt;p&gt;&lt;a href="http://developmentwithtypolight.files.wordpress.com/2010/02/debugger_be_link.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="debugger_be_link" border="0" alt="debugger_be_link" align="right" src="http://developmentwithtypolight.files.wordpress.com/2010/02/debugger_be_link_thumb.png" width="177" height="135"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Once downloaded the source you must copy the directory contained in system/modules (z___debug and debug) to your system/modules installation (i.e. TL_ROOT/system/modules/). Then a “developers” section appears to backend menu: click on “Debugger” to open the tl_debug settings panel.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;In order to display the log messages you need the Firebug add on for Firefox (at least version 1.5.0 &lt;a title="http://getfirebug.com/releases/firebug/1.5X/" href="http://getfirebug.com/releases/firebug/1.5X/"&gt;http://getfirebug.com/releases/firebug/1.5X/&lt;/a&gt;) and the firePHP plugin for FireBug &lt;a title="https://addons.mozilla.org/en-US/firefox/addon/6149&lt;br /&gt;" href="https://addons.mozilla.org/en-US/firefox/addon/6149"&gt;https://addons.mozilla.org/en-US/firefox/addon/6149 &lt;br&gt;&lt;/a&gt;&lt;/p&gt; &lt;h2&gt;Usage &lt;/h2&gt; &lt;p&gt;Be sure to enable the debug in the backend module (Debugger) and set the options related to error level and database query you wish to log. You can log hooks on database queries coming from specific modules. It is a great tool.&lt;/p&gt; &lt;p&gt;Usage is simple as adding these lines where you need to debug:&lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:dc0f803c-89b1-44a4-9703-7ed5f666fe8e" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; font-family: tahoma; font-size: 12px; overflow: auto"&gt;&lt;span style="color: #008000"&gt;/*&lt;/span&gt;&lt;span style="color: #008000"&gt;*&lt;br&gt; * $channel is one of ('log', 'info', 'error', 'warn')&lt;br&gt; * $label is a custom label&lt;br&gt; * $message is the message you want to show&lt;br&gt; &lt;/span&gt;&lt;span style="color: #008000"&gt;*/&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #800080"&gt;$GLOBALS&lt;/span&gt;&lt;span style="color: #000000"&gt;[&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;TL_CONFIG&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;][&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;debugMode&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;])&lt;br&gt;    &lt;/span&gt;&lt;span style="color: #800080"&gt;$GLOBALS&lt;/span&gt;&lt;span style="color: #000000"&gt;[&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;TL_DEBUG&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;][&lt;/span&gt;&lt;span style="color: #800080"&gt;$channel&lt;/span&gt;&lt;span style="color: #000000"&gt;][&lt;/span&gt;&lt;span style="color: #800080"&gt;$label&lt;/span&gt;&lt;span style="color: #000000"&gt;] &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$message&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br&gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;This is the results on message logged with channel ‘log’ label ‘Hello’ and message ‘World!’;&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;i.e.&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:50d34f25-ebaa-45e0-8542-45ee275a5dad" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; font-family: tahoma; font-size: 12px; overflow: auto"&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #800080"&gt;$GLOBALS&lt;/span&gt;&lt;span style="color: #000000"&gt;[&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;TL_CONFIG&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;][&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;debugMode&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;])&lt;br&gt;    &lt;/span&gt;&lt;span style="color: #800080"&gt;$GLOBALS&lt;/span&gt;&lt;span style="color: #000000"&gt;[&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;TL_DEBUG&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;][&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;log&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;][&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;hello&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;]&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;world!&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br&gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://developmentwithtypolight.files.wordpress.com/2010/02/debugger_firebug.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="debugger_firebug" border="0" alt="debugger_firebug" src="http://developmentwithtypolight.files.wordpress.com/2010/02/debugger_firebug_thumb.png" width="390" height="139"&gt;&lt;/a&gt; &lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;I hope you enjoy it!&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;thank you to qrczak for letting me know this project.&lt;/em&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5997589132291828604-747271644145619144?l=zedseries.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zedseries.blogspot.com/feeds/747271644145619144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zedseries.blogspot.com/2010/02/tldebug-useful-extension-for-debugging.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/747271644145619144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/747271644145619144'/><link rel='alternate' type='text/html' href='http://zedseries.blogspot.com/2010/02/tldebug-useful-extension-for-debugging.html' title='tl_debug: An useful extension for debugging TYPOlight'/><author><name>ga.n</name><uri>http://www.blogger.com/profile/09566514372664225429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5997589132291828604.post-5430059348692436117</id><published>2009-12-15T10:40:00.000+01:00</published><updated>2011-11-25T21:13:27.923+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='developers'/><category scheme='http://www.blogger.com/atom/ns#' term='tips and tricks'/><title type='text'>Quick tip: how to change page title in a frontend module or template</title><content type='html'>&lt;p&gt;A common needs while working with Contao is to set the page title from a frontend module or inside a template.&lt;/p&gt; &lt;a name='more'&gt;&lt;/a&gt; &lt;p&gt;&lt;strong&gt;For modules&lt;/strong&gt;:&lt;/p&gt; &lt;p&gt;&lt;pre class="brush: php; auto-links: true; collapse: false; first-line: 1; gutter: true; highlight: [4]; html-script: false; light: false; ruler: true; smart-tabs: true; tab-size: 4; toolbar: true;"&gt;class MyModule extends Module {&lt;br /&gt;    protected function compile() {&lt;br /&gt;        // ... your code ...&lt;br /&gt;        $GLOBALS['objPage']-&amp;gt;pageTitle = 'My custom title';&lt;br /&gt;        // ... your code ...&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;For templates:&lt;/strong&gt;&lt;/p&gt;&lt;pre class="brush: php; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: true; smart-tabs: true; tab-size: 4; toolbar: true;"&gt;&amp;lt;?php $GLOBALS['objPage']-&amp;gt;pageTitle = 'My custom title'; ?&amp;gt;&lt;/pre&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5997589132291828604-5430059348692436117?l=zedseries.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zedseries.blogspot.com/feeds/5430059348692436117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zedseries.blogspot.com/2009/12/quick-tip-how-to-change-page-title-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/5430059348692436117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/5430059348692436117'/><link rel='alternate' type='text/html' href='http://zedseries.blogspot.com/2009/12/quick-tip-how-to-change-page-title-in.html' title='Quick tip: how to change page title in a frontend module or template'/><author><name>ga.n</name><uri>http://www.blogger.com/profile/09566514372664225429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5997589132291828604.post-2185489957903778742</id><published>2009-11-06T08:54:00.000+01:00</published><updated>2011-03-20T09:01:50.540+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='tips and tricks'/><title type='text'>Quick tip: How to remove .html extension from url with TYPOlight</title><content type='html'>&lt;p&gt;A quick tutorial showing how to remove “.html” suffix from the url of your website&amp;nbsp; &lt;/p&gt; &lt;ol&gt; &lt;li&gt;Go to “Settings” (it’s under “System” section), make sure to set: &lt;/li&gt;&lt;/ol&gt; &lt;ul&gt; &lt;li&gt;URL suffix: empty the field  &lt;li&gt;Rewrite URLs: checked  &lt;li&gt;Disable page alias usage: unchecked &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Open the “.htaccess”&amp;nbsp; (it is located into the root of your website) and replace the line containing&lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:13e8af12-5610-4b02-b580-361615773598" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; font-family: tahoma; font-size: 12px; overflow: auto"&gt;&lt;span style="color: #000000"&gt;RewriteRule .*\.html$ index.php &lt;/span&gt;&lt;span style="color: #800000; font-weight: bold"&gt;[&lt;/span&gt;&lt;span style="color: #800000"&gt;L&lt;/span&gt;&lt;span style="color: #800000; font-weight: bold"&gt;]&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;with:&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:b30cb4de-401b-4f85-85a1-cd45798de4e0" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; font-family: tahoma; font-size: 12px; overflow: auto"&gt;&lt;span style="color: #000000"&gt;RewriteRule .* index.php &lt;/span&gt;&lt;span style="color: #800000; font-weight: bold"&gt;[&lt;/span&gt;&lt;span style="color: #800000"&gt;L&lt;/span&gt;&lt;span style="color: #800000; font-weight: bold"&gt;]&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;That’s all.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5997589132291828604-2185489957903778742?l=zedseries.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zedseries.blogspot.com/feeds/2185489957903778742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zedseries.blogspot.com/2009/11/quick-tip-how-to-remove-html-extension.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/2185489957903778742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/2185489957903778742'/><link rel='alternate' type='text/html' href='http://zedseries.blogspot.com/2009/11/quick-tip-how-to-remove-html-extension.html' title='Quick tip: How to remove .html extension from url with TYPOlight'/><author><name>ga.n</name><uri>http://www.blogger.com/profile/09566514372664225429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5997589132291828604.post-8805395433940427314</id><published>2009-10-29T08:04:00.001+01:00</published><updated>2011-03-20T09:03:27.446+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='developers'/><category scheme='http://www.blogger.com/atom/ns#' term='options_callback'/><category scheme='http://www.blogger.com/atom/ns#' term='dca'/><title type='text'>Select configuration: Manage options</title><content type='html'>&lt;a href="http://dev.typolight.org/repositories/entry/typolight/tags/typolight-2.7.5/system/modules/backend/SelectMenu.php#L29" target="_blank"&gt;SelectMenu&lt;/a&gt; is a powerful widget that let user choose a value from a select box.&lt;br&gt;to use it in your &lt;a href="http://www.typolight.org/dca.html" target="_blank"&gt;Data Container Array&lt;/a&gt; please add&lt;br&gt; &lt;div style="padding-bottom: 0pt; margin: 0pt; padding-left: 0pt; padding-right: 0pt; display: inline; float: none; padding-top: 0pt" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:09449b19-984d-40ca-aefc-616a24507a57" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: white; font-family: tahoma; font-size: 12px; overflow: auto"&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;my_field&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;array&lt;/span&gt;&lt;span style="color: black"&gt;(&lt;br&gt;&lt;/span&gt;&lt;span style="color: green"&gt;//&lt;/span&gt;&lt;span style="color: green"&gt; ... field configuration entries&lt;/span&gt;&lt;span style="color: green"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;    &lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;inputType&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;select&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;,&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: green"&gt;//&lt;/span&gt;&lt;span style="color: green"&gt; ... field configuration entries&lt;/span&gt;&lt;span style="color: green"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;);&lt;/span&gt;&lt;/pre&gt;&lt;br&gt;&lt;/div&gt;&lt;br&gt;to the &lt;a href="http://www.typolight.org/reference.html#fields" target="_blank"&gt;field configuration&lt;/a&gt; as ‘select’ is the corresponding alias for the SelectMenu widget&lt;br&gt;&lt;br&gt;It features data retrieving from the following sources:&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;an array &lt;br&gt;&lt;br /&gt;&lt;li&gt;a foreign field from a custom table &lt;br&gt;&lt;br /&gt;&lt;li&gt;a custom callback &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h2&gt;&lt;/h2&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;h2&gt;Using array as source&lt;/h2&gt;Define the options array&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0pt; margin: 0pt; padding-left: 0pt; padding-right: 0pt; display: inline; float: none; padding-top: 0pt" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:ea8e1a4f-fb7b-48bf-80f1-84a354a961a0" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: white; font-family: tahoma; font-size: 12px; overflow: auto"&gt;&lt;span style="color: black"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: black"&gt;php&lt;br&gt;&lt;/span&gt;&lt;span style="color: purple"&gt;$myOptions&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;=&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;array&lt;/span&gt;&lt;span style="color: black"&gt;(&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;a&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;label a&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;,&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;b&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;label b&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;);&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: purple"&gt;$GLOBALS&lt;/span&gt;&lt;span style="color: black"&gt;[&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;TL_DCA&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;][&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;my_dca&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;] &lt;/span&gt;&lt;span style="color: black"&gt;=&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;array&lt;/span&gt;&lt;span style="color: black"&gt;(&lt;br&gt;&lt;/span&gt;&lt;span style="color: green"&gt;//&lt;/span&gt;&lt;span style="color: green"&gt; other sections like palettes etc.&lt;/span&gt;&lt;span style="color: green"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;    &lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;fields&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;array&lt;/span&gt;&lt;span style="color: black"&gt;(&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;my_field&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;array&lt;/span&gt;&lt;span style="color: black"&gt;(&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;inputType&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;select&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;,&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;options&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;     &lt;/span&gt;&lt;span style="color: black"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: purple"&gt;$myOptions&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;)&lt;/span&gt;&lt;span style="color: black"&gt;,&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: green"&gt;//&lt;/span&gt;&lt;span style="color: green"&gt; ... other fields&lt;/span&gt;&lt;span style="color: green"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;    )&lt;br&gt;);&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;?&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0pt; margin: 0pt; padding-left: 0pt; padding-right: 0pt; display: inline; float: none; padding-top: 0pt" id="scid:DFDE9937-D816-47f4-A306-7B60D5CE5AC0:ee5d0c23-010a-4657-86a0-a9c4e1bfbfcc" class="wlWriterSmartContent"&gt;&lt;pre class="brush: php; gutter: true; first-line: 1; tab-size: 4;  toolbar: true;  highlight: 2,12 ;"&gt;&lt;/pre&gt;&lt;/div&gt;the resulting html will be:&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0pt; margin: 0pt; padding-left: 0pt; padding-right: 0pt; display: inline; float: none; padding-top: 0pt" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:af54c203-f3c7-4b83-84e1-5d8219740873" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: white; font-family: tahoma; font-size: 12px; overflow: auto"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;select &lt;/span&gt;&lt;span style="color: red"&gt;name&lt;/span&gt;&lt;span style="color: blue"&gt;="wselectmenu"&lt;/span&gt;&lt;span style="color: red"&gt; id&lt;/span&gt;&lt;span style="color: blue"&gt;="ctrl_wselectmenu"&lt;/span&gt;&lt;span style="color: red"&gt; class&lt;/span&gt;&lt;span style="color: blue"&gt;="tl_select mandatory"&lt;/span&gt;&lt;span style="color: red"&gt; onfocus&lt;/span&gt;&lt;span style="color: blue"&gt;="Backend.getScrollOffset();"&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;option &lt;/span&gt;&lt;span style="color: red"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;="a"&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt;label a&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon"&gt;option&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;option &lt;/span&gt;&lt;span style="color: red"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;="b"&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt;label b&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon"&gt;option&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon"&gt;select&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;h3&gt;Grouping options&lt;/h3&gt;Options can be grouped by putting them as array element, starting from the code above:&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0pt; margin: 0pt; padding-left: 0pt; padding-right: 0pt; display: inline; float: none; padding-top: 0pt" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:a4e68a0c-750d-4c18-86d3-f27ede34051f" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: white; font-family: tahoma; font-size: 12px; overflow: auto"&gt;&lt;span style="color: purple"&gt;$myOptions&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;=&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;array&lt;/span&gt;&lt;span style="color: black"&gt;(&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;my_group&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;array&lt;/span&gt;&lt;span style="color: black"&gt;(&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;a&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;label a&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;,&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;b&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;label b&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;)&lt;br&gt;);&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;will be rendered as:&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0pt; margin: 0pt; padding-left: 0pt; padding-right: 0pt; display: inline; float: none; padding-top: 0pt" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:b570892a-3f92-4f9e-8797-df589eb8dd59" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: white; font-family: tahoma; white-space: pre-wrap; font-size: 12px; overflow: auto"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;select &lt;/span&gt;&lt;span style="color: red"&gt;name&lt;/span&gt;&lt;span style="color: blue"&gt;="wselectmenu"&lt;/span&gt;&lt;span style="color: red"&gt; id&lt;/span&gt;&lt;span style="color: blue"&gt;="ctrl_wselectmenu"&lt;/span&gt;&lt;span style="color: red"&gt; class&lt;/span&gt;&lt;span style="color: blue"&gt;="tl_select mandatory"&lt;/span&gt;&lt;span style="color: red"&gt; onfocus&lt;/span&gt;&lt;span style="color: blue"&gt;="Backend.getScrollOffset();"&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;optgroup &lt;/span&gt;&lt;span style="color: red"&gt;label&lt;/span&gt;&lt;span style="color: blue"&gt;="&amp;amp;nbsp;my_group"&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;option &lt;/span&gt;&lt;span style="color: red"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;="a"&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt;label a&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon"&gt;option&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;option &lt;/span&gt;&lt;span style="color: red"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;="b"&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt;label b&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon"&gt;option&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon"&gt;optgroup&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon"&gt;select&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;h3&gt;Labelling the group&lt;/h3&gt;Labels can be managed through an array; e.g.:&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0pt; margin: 0pt; padding-left: 0pt; padding-right: 0pt; display: inline; float: none; padding-top: 0pt" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:9b7eff52-14da-4edb-943a-46e03b35507b" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: white; overflow: auto"&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;my_field&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;array&lt;/span&gt;&lt;span style="color: black"&gt;(&lt;br&gt;&lt;/span&gt;&lt;span style="color: green"&gt;//&lt;/span&gt;&lt;span style="color: green"&gt; ... other field entries&lt;/span&gt;&lt;span style="color: green"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;   &lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;options&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;     &lt;/span&gt;&lt;span style="color: black"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: purple"&gt;$myOptions&lt;/span&gt;&lt;span style="color: black"&gt;,&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;reference&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;   &lt;/span&gt;&lt;span style="color: black"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: purple"&gt;$GLOBALS&lt;/span&gt;&lt;span style="color: black"&gt;[&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;TL_LANG&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;][&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;tl_dev_sandbox&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;][&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;optionsLabel&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;]&lt;br&gt;&lt;/span&gt;&lt;span style="color: green"&gt;//&lt;/span&gt;&lt;span style="color: green"&gt; ... other field entries&lt;/span&gt;&lt;span style="color: green"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;);&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;the reference array can be put into languages/your_language_code/your_dca_name dir (e.g. languages/en/tl_dev_sandbox.php for english and tl_dev_sandbox table) so it will be loaded when your dca is loaded.&lt;br&gt;&lt;br /&gt;&lt;blockquote&gt;this the method used by TYPOlight core extensions and it makes translations in other languages easy.&lt;/blockquote&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0pt; margin: 0pt; padding-left: 0pt; padding-right: 0pt; display: inline; float: none; padding-top: 0pt" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:07b943e1-f6cf-4ec6-a494-022208fa0cda" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: white; font-family: tahoma; font-size: 12px; overflow: auto"&gt;&lt;span style="color: purple"&gt;$GLOBALS&lt;/span&gt;&lt;span style="color: black"&gt;[&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;TL_LANG&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;][&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;tl_dev_sandbox&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;][&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;optionsLabel&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;]&lt;/span&gt;&lt;span style="color: black"&gt;=&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;array&lt;/span&gt;&lt;span style="color: black"&gt;(&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;my_group&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;label for my group&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;,&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;);&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;the resulting html will be:&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0pt; margin: 0pt; padding-left: 0pt; padding-right: 0pt; display: inline; float: none; padding-top: 0pt" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:9842181a-5692-413e-9735-848142b0dbe7" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: white; font-family: tahoma; font-size: 12px; overflow: auto"&gt;&lt;span style="color: black"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: black"&gt;select name&lt;/span&gt;&lt;span style="color: black"&gt;=&lt;/span&gt;&lt;span style="color: black"&gt;"&lt;/span&gt;&lt;span style="color: black"&gt;wselectmenu&lt;/span&gt;&lt;span style="color: black"&gt;"&lt;/span&gt;&lt;span style="color: black"&gt; id&lt;/span&gt;&lt;span style="color: black"&gt;=&lt;/span&gt;&lt;span style="color: black"&gt;"&lt;/span&gt;&lt;span style="color: black"&gt;ctrl_wselectmenu&lt;/span&gt;&lt;span style="color: black"&gt;"&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;class&lt;/span&gt;&lt;span style="color: black"&gt;=&lt;/span&gt;&lt;span style="color: black"&gt;"&lt;/span&gt;&lt;span style="color: black"&gt;tl_select mandatory&lt;/span&gt;&lt;span style="color: black"&gt;"&lt;/span&gt;&lt;span style="color: black"&gt; onfocus&lt;/span&gt;&lt;span style="color: black"&gt;=&lt;/span&gt;&lt;span style="color: black"&gt;"&lt;/span&gt;&lt;span style="color: black"&gt;Backend.getScrollOffset();&lt;/span&gt;&lt;span style="color: black"&gt;"&lt;/span&gt;&lt;span style="color: black"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: black"&gt;optgroup label&lt;/span&gt;&lt;span style="color: black"&gt;=&lt;/span&gt;&lt;span style="color: black"&gt;"&lt;/span&gt;&lt;span style="color: black"&gt;&amp;amp;nbsp;label for my group&lt;/span&gt;&lt;span style="color: black"&gt;"&lt;/span&gt;&lt;span style="color: black"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: black"&gt;option value&lt;/span&gt;&lt;span style="color: black"&gt;=&lt;/span&gt;&lt;span style="color: black"&gt;"&lt;/span&gt;&lt;span style="color: black"&gt;a&lt;/span&gt;&lt;span style="color: black"&gt;"&lt;/span&gt;&lt;span style="color: black"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt;label a&lt;/span&gt;&lt;span style="color: black"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: black"&gt;option&lt;/span&gt;&lt;span style="color: black"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: black"&gt;option value&lt;/span&gt;&lt;span style="color: black"&gt;=&lt;/span&gt;&lt;span style="color: black"&gt;"&lt;/span&gt;&lt;span style="color: black"&gt;b&lt;/span&gt;&lt;span style="color: black"&gt;"&lt;/span&gt;&lt;span style="color: black"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt;label b&lt;/span&gt;&lt;span style="color: black"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: black"&gt;option&lt;/span&gt;&lt;span style="color: black"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: black"&gt;optgroup&lt;/span&gt;&lt;span style="color: black"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: black"&gt;select&lt;/span&gt;&lt;span style="color: black"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;h3&gt;Using the reference array to label the whole select items&lt;/h3&gt;Using the code above we manage the labels for options through the $myOptions array (‘a’ =&amp;gt; ‘label a’)&amp;nbsp; while the groups labels are managed through the reference array.&lt;br&gt;Applying a small change we can manage all the select items (groups and options) with the reference array.&lt;br&gt;change the $myOptions array so it will looks like:&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0pt; margin: 0pt; padding-left: 0pt; padding-right: 0pt; display: inline; float: none; padding-top: 0pt" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:45338009-c3f9-4551-9250-63de220fcb19" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: white; font-family: tahoma; font-size: 12px; overflow: auto"&gt;&lt;span style="color: purple"&gt;$myOptions&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;=&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;array&lt;/span&gt;&lt;span style="color: black"&gt;(&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;my_group&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;array&lt;/span&gt;&lt;span style="color: black"&gt;(&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;a&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;,&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;b&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;)&lt;br&gt;);&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;then add the missing entries to the reference array&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0pt; margin: 0pt; padding-left: 0pt; padding-right: 0pt; display: inline; float: none; padding-top: 0pt" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:e863562b-6fb5-4540-afdc-0ab5cb5c1128" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: white; font-family: tahoma; font-size: 12px; overflow: auto"&gt;&lt;span style="color: purple"&gt;$GLOBALS&lt;/span&gt;&lt;span style="color: black"&gt;[&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;TL_LANG&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;][&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;tl_dev_sandbox&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;][&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;optionsLabel&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;] &lt;/span&gt;&lt;span style="color: black"&gt;=&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;array&lt;/span&gt;&lt;span style="color: black"&gt;(&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;my_group&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;label for my group&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;,&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;a&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;              &lt;/span&gt;&lt;span style="color: black"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;label for option a&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;,&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;b&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;             &lt;/span&gt;&lt;span style="color: black"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;label for option b&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;);&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;h2&gt;Querying the database to populate the options&lt;/h2&gt;This is useful when you have a foreignKey relationship with another table (e.g. the tl_article table refers to tl_user to associate its own author).&lt;br&gt;To use this feature just specify the table and field from which you want to populate the selectbox&lt;br&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;b&gt;please note:&lt;/b&gt;&lt;br&gt;table &lt;b&gt;must&lt;/b&gt; have a field named id. For each row retrieved the id will be used as value and the field will be used as label.&lt;/blockquote&gt;e.g. the following &lt;a href="http://www.typolight.org/reference.html#fields" target="_blank"&gt;field configuration&lt;/a&gt; entry:&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0pt; margin: 0pt; padding-left: 0pt; padding-right: 0pt; display: inline; float: none; padding-top: 0pt" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:a0c084ea-85bd-4255-a67b-1e2d363cd5be" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: white; overflow: auto"&gt;&lt;span style="color: black"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;my_field&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;array&lt;/span&gt;&lt;span style="color: black"&gt;(&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;inputType&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;select&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;,&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;foreignKey&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;tl_user.name&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;,&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;)&lt;br&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;will populate a select with id as values and name as labels querying the table tl_user.&lt;br&gt;&lt;br /&gt;&lt;h2&gt;Using custom callback to generate the options&lt;/h2&gt;Sometime you need more control on options. Luckily the options can be generated through a custom callback.&lt;br&gt;Create the callback:&lt;br&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;b&gt;please note:&lt;/b&gt;&lt;br&gt;the standard way used by TYPOlight core extensions when dealing with callback is to create a class named as the dca and put it into the dca file. The callback class will extends &lt;a href="http://dev.typolight.org/repositories/entry/typolight/tags/typolight-2.7.5/system/modules/backend/Backend.php#L29" target="_blank"&gt;Backend&lt;/a&gt;.&lt;/blockquote&gt;&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0pt; margin: 0pt; padding-left: 0pt; padding-right: 0pt; display: inline; float: none; padding-top: 0pt" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:39a2f6bc-c9db-4117-bbfb-37cafcdb437b" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: white; font-family: tahoma; font-size: 12px; overflow: auto"&gt;&lt;span style="color: black"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;class&lt;/span&gt;&lt;span style="color: black"&gt; tl_dev_sandbox &lt;/span&gt;&lt;span style="color: blue"&gt;extends&lt;/span&gt;&lt;span style="color: black"&gt; Backend {&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: green"&gt;/*&lt;/span&gt;&lt;span style="color: green"&gt;**&lt;br&gt;* since Backend::__construct is protected we must&lt;br&gt;* redefine it as public&lt;br&gt;&lt;/span&gt;&lt;span style="color: green"&gt;*/&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;function&lt;/span&gt;&lt;span style="color: black"&gt; __construct() {&lt;br&gt;parent&lt;/span&gt;&lt;span style="color: black"&gt;::&lt;/span&gt;&lt;span style="color: black"&gt;__construct();    &lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;function&lt;/span&gt;&lt;span style="color: black"&gt; generateOptions() {&lt;br&gt;&lt;/span&gt;&lt;span style="color: green"&gt;//&lt;/span&gt;&lt;span style="color: green"&gt; you can use the logic explained above to create groups&lt;/span&gt;&lt;span style="color: green"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;        &lt;br&gt;&lt;/span&gt;&lt;span style="color: purple"&gt;$myOptions&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;=&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;array&lt;/span&gt;&lt;span style="color: black"&gt;();&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: green"&gt;//&lt;/span&gt;&lt;span style="color: green"&gt; fill in the myOptions array&lt;br&gt;&lt;br&gt;// this is useless but you can query the database or read data from somewhere&lt;/span&gt;&lt;span style="color: green"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;        &lt;/span&gt;&lt;span style="color: purple"&gt;$myOptions&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;=&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;array&lt;/span&gt;&lt;span style="color: black"&gt;(&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;a&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;,&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;b&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;);&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;return&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: purple"&gt;$myOptions&lt;/span&gt;&lt;span style="color: black"&gt;;&lt;br&gt;}&lt;br&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;then change your &lt;a href="http://www.typolight.org/reference.html#fields" target="_blank"&gt;field configuration&lt;/a&gt;:&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0pt; margin: 0pt; padding-left: 0pt; padding-right: 0pt; display: inline; float: none; padding-top: 0pt" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:f1e82460-2032-42d3-a798-334fc59ffbfa" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: white; font-family: microsoft sans serif; font-size: 12px; overflow: auto"&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;my_field&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;array&lt;/span&gt;&lt;span style="color: black"&gt;(&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;inputType&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;select&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;,&lt;/span&gt;&lt;span style="color: black"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;options_callback&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;     &lt;/span&gt;&lt;span style="color: black"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: blue"&gt;array&lt;/span&gt;&lt;span style="color: black"&gt;(&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;tl_dev_sandbox&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;,&lt;/span&gt;&lt;span style="color: black"&gt; &lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;generateOptions&lt;/span&gt;&lt;span style="color: black"&gt;'&lt;/span&gt;&lt;span style="color: black"&gt;)&lt;br&gt;)&lt;br&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;That’s it. If you have questions please comment below.&lt;br /&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5997589132291828604-8805395433940427314?l=zedseries.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zedseries.blogspot.com/feeds/8805395433940427314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zedseries.blogspot.com/2009/10/select-configuration-manage-options.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/8805395433940427314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/8805395433940427314'/><link rel='alternate' type='text/html' href='http://zedseries.blogspot.com/2009/10/select-configuration-manage-options.html' title='Select configuration: Manage options'/><author><name>ga.n</name><uri>http://www.blogger.com/profile/09566514372664225429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5997589132291828604.post-4970103818543455360</id><published>2009-10-28T09:59:00.000+01:00</published><updated>2011-03-20T09:07:00.011+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='zedseries_help_system'/><category scheme='http://www.blogger.com/atom/ns#' term='announcements'/><title type='text'>ZedSeries Help System released</title><content type='html'>&lt;p&gt;Hi all,&lt;/p&gt; &lt;p&gt;&lt;br&gt;today I've released ZedSeries Help System, an extension that let developers creating manuals of their own extensions and distributing them with the extension. It is available in the official repository so can be installed through the Extension Catalog &lt;/p&gt; &lt;a name='more'&gt;&lt;/a&gt; &lt;p&gt;In other words if you are a developer and are you looking for a way to document your extension I suggest you to give a try at ZedSeriesHelpSystem &lt;img title="Wink" alt=";)" src="http://www.typolight-community.org/images/smilies/icon_e_wink.gif"&gt;. &lt;br&gt;&lt;/p&gt; &lt;p&gt;The included "inline" manual is (of course) built with ZedSeries Help System, this way the application itself is a demo of some ways of integrating inline help. &lt;br&gt;&lt;/p&gt; &lt;p&gt;from the description of extension: &lt;br&gt;(&lt;a href="http://www.typolight.org/extension-list/view/zedseries_help_system.10000009.en.html"&gt;http://www.typolight.org/extension-list ... 09.en.html&lt;/a&gt;) &lt;br&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;ZedSeries Help System provides a quick and easy way to build and manage an help system for TYPOlight extensions. Create a powerful help system that incorporates context-sensitive help.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;br&gt;The project changelog is managed through bitbucket (&lt;a href="http://bitbucket.org/zedseries/zedseries_help_system/"&gt;http://bitbucket.org/zedseries/zedseries_help_system/&lt;/a&gt;) &lt;br&gt;If you have questions, doubts, feature requests, bug reports etc. please let me know creating a new issue at &lt;a href="http://bitbucket.org/zedseries/zedseries_help_system/issues/new/"&gt;http://bitbucket.org/zedseries/zedseries_help_system/issues/new/&lt;/a&gt; .&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5997589132291828604-4970103818543455360?l=zedseries.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zedseries.blogspot.com/feeds/4970103818543455360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zedseries.blogspot.com/2009/10/zedseries-help-system-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/4970103818543455360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/4970103818543455360'/><link rel='alternate' type='text/html' href='http://zedseries.blogspot.com/2009/10/zedseries-help-system-released.html' title='ZedSeries Help System released'/><author><name>ga.n</name><uri>http://www.blogger.com/profile/09566514372664225429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5997589132291828604.post-6325369937077598577</id><published>2009-10-27T18:56:00.001+01:00</published><updated>2011-03-20T08:42:41.671+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='developers'/><category scheme='http://www.blogger.com/atom/ns#' term='zedseries_listing'/><title type='text'>ZedSeries Listing new class available in version 1.5</title><content type='html'>Starting from version 1.5 ZedSeries Listing features a class that let you create listing with a few lines of code:&lt;br /&gt;&lt;div class="wlWriterEditableSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:e7a66814-e02f-488e-8429-5313bb466160" style="display: inline; float: none; margin: 0; padding: 0;"&gt;&lt;pre style="background-color: white; font-family: Tahoma; font-size: 12px; overflow: auto;"&gt;&lt;span style="color: black;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: black;"&gt;php&lt;br /&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;//&lt;/span&gt;&lt;span style="color: green;"&gt; put this inside your Module's compile method to give a quick try&lt;br /&gt;&lt;br /&gt;// in this example we'll query the tl_page table&lt;br /&gt;// we pass $this-&amp;gt;Template to assign vars to current template&lt;br /&gt;&lt;br /&gt;// set "tl_page" as namespace&lt;/span&gt;&lt;span style="color: green;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: purple;"&gt;$l&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;new&lt;/span&gt;&lt;span style="color: black;"&gt; ZedSeriesListing(&lt;/span&gt;&lt;span style="color: black;"&gt;'&lt;/span&gt;&lt;span style="color: black;"&gt;tl_page&lt;/span&gt;&lt;span style="color: black;"&gt;'&lt;/span&gt;&lt;span style="color: black;"&gt;);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;//&lt;/span&gt;&lt;span style="color: green;"&gt; you can set "frontend module" params through php code&lt;/span&gt;&lt;span style="color: green;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: purple;"&gt;$l&lt;/span&gt;&lt;span style="color: black;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: black;"&gt;setFields(&lt;/span&gt;&lt;span style="color: black;"&gt;'&lt;/span&gt;&lt;span style="color: black;"&gt;id,pageTitle,language&lt;/span&gt;&lt;span style="color: black;"&gt;'&lt;/span&gt;&lt;span style="color: black;"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: purple;"&gt;$l&lt;/span&gt;&lt;span style="color: black;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: black;"&gt;setSearchFields(&lt;/span&gt;&lt;span style="color: black;"&gt;'&lt;/span&gt;&lt;span style="color: black;"&gt;pageTitle&lt;/span&gt;&lt;span style="color: black;"&gt;'&lt;/span&gt;&lt;span style="color: black;"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: purple;"&gt;$l&lt;/span&gt;&lt;span style="color: black;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: black;"&gt;setWhere(&lt;/span&gt;&lt;span style="color: black;"&gt;'&lt;/span&gt;&lt;span style="color: black;"&gt;published = 1&lt;/span&gt;&lt;span style="color: black;"&gt;'&lt;/span&gt;&lt;span style="color: black;"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: purple;"&gt;$l&lt;/span&gt;&lt;span style="color: black;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: black;"&gt;setSorting(&lt;/span&gt;&lt;span style="color: black;"&gt;'&lt;/span&gt;&lt;span style="color: black;"&gt;tstamp DESC&lt;/span&gt;&lt;span style="color: black;"&gt;'&lt;/span&gt;&lt;span style="color: black;"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: purple;"&gt;$l&lt;/span&gt;&lt;span style="color: black;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: black;"&gt;setPaging(&lt;/span&gt;&lt;span style="color: black;"&gt;5&lt;/span&gt;&lt;span style="color: black;"&gt;);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: purple;"&gt;$l&lt;/span&gt;&lt;span style="color: black;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: black;"&gt;query();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;//&lt;/span&gt;&lt;span style="color: green;"&gt; $this-&amp;gt;Template is created automatically by the (Backend|Frontend)Module&lt;/span&gt;&lt;span style="color: green;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: purple;"&gt;$lt&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;new&lt;/span&gt;&lt;span style="color: black;"&gt; ZedSeriesListingTemplate(&lt;/span&gt;&lt;span style="color: purple;"&gt;$l&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: purple;"&gt;$this&lt;/span&gt;&lt;span style="color: black;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Template);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: purple;"&gt;$lt&lt;/span&gt;&lt;span style="color: black;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: black;"&gt;assignListingVars();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: purple;"&gt;$lt&lt;/span&gt;&lt;span style="color: black;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: black;"&gt;assignSearchVars();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: purple;"&gt;$lt&lt;/span&gt;&lt;span style="color: black;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: black;"&gt;assignPaginationVars();&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5997589132291828604-6325369937077598577?l=zedseries.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zedseries.blogspot.com/feeds/6325369937077598577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zedseries.blogspot.com/2009/10/zedseries-listing-new-class-available.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/6325369937077598577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/6325369937077598577'/><link rel='alternate' type='text/html' href='http://zedseries.blogspot.com/2009/10/zedseries-listing-new-class-available.html' title='ZedSeries Listing new class available in version 1.5'/><author><name>ga.n</name><uri>http://www.blogger.com/profile/09566514372664225429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5997589132291828604.post-6045757225668389107</id><published>2009-10-27T18:17:00.000+01:00</published><updated>2011-03-20T09:16:30.539+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='announcements'/><category scheme='http://www.blogger.com/atom/ns#' term='developers'/><category scheme='http://www.blogger.com/atom/ns#' term='zedseries_listing'/><title type='text'>ZedSeries Listing: template changes from version 1.5</title><content type='html'>&lt;p&gt;Starting from version 1.5 the zslist_default.tpl has changed. So if you upgrade your &lt;a href="http://www.zedseries.com/zedseries-listing-module.html"&gt;ZedSeries Listing&lt;/a&gt; extension (that is highly recommended) you need to apply the following changes to templates/zslist_default.tpl.&lt;/p&gt; &lt;p&gt;Please upgrade your template in this way: (remove the lines starting with a dash and add the ones which start with a plus sign)&lt;/p&gt; &lt;p&gt;&lt;code style="font-size: 10px"&gt;&lt;/code&gt;&lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:698e308e-c051-4204-a2fe-4b2f6a82c5d5" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; font-family: tahoma; font-size: 12px; overflow: auto"&gt;&lt;span style="color: #000000"&gt;-&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;input &lt;/span&gt;&lt;span style="color: #ff0000"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="hidden"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;ns; ?&amp;gt;_order_by"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;order_by; ?&amp;gt;"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;-&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;input &lt;/span&gt;&lt;span style="color: #ff0000"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="hidden"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;ns; ?&amp;gt;_sort"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;sort; ?&amp;gt;"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;-&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;input &lt;/span&gt;&lt;span style="color: #ff0000"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="hidden"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;ns; ?&amp;gt;_per_page"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;per_page; ?&amp;gt;"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;-&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;select &lt;/span&gt;&lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;ns; ?&amp;gt;_search"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; class&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="select"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;+&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;input &lt;/span&gt;&lt;span style="color: #ff0000"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="hidden"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;nsorderby; ?&amp;gt;"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;Input-&amp;gt;get($this-&amp;gt;nsorderby); ?&amp;gt;"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;+&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;input &lt;/span&gt;&lt;span style="color: #ff0000"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="hidden"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;nsdirsort; ?&amp;gt;"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;Input-&amp;gt;get($this-&amp;gt;nsdirsort); ?&amp;gt;"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;+&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;input &lt;/span&gt;&lt;span style="color: #ff0000"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="hidden"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;nsperpage; ?&amp;gt;"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;per_page; ?&amp;gt;"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;+&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;select &lt;/span&gt;&lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;nssearch; ?&amp;gt;"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; class&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="select"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;-&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;input &lt;/span&gt;&lt;span style="color: #ff0000"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="text"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;ns; ?&amp;gt;_for"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; class&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="text"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;for; ?&amp;gt;"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;+&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;input &lt;/span&gt;&lt;span style="color: #ff0000"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="text"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;nsfor; ?&amp;gt;"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; class&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="text"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;for; ?&amp;gt;"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;-&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;input &lt;/span&gt;&lt;span style="color: #ff0000"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="hidden"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;ns; ?&amp;gt;_order_by"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;order_by; ?&amp;gt;"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;-&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;input &lt;/span&gt;&lt;span style="color: #ff0000"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="hidden"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;ns; ?&amp;gt;_sort"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;sort; ?&amp;gt;"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;-&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;input &lt;/span&gt;&lt;span style="color: #ff0000"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="hidden"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;ns; ?&amp;gt;_search"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;search; ?&amp;gt;"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;-&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;input &lt;/span&gt;&lt;span style="color: #ff0000"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="hidden"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;ns; ?&amp;gt;_for"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;for; ?&amp;gt;"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;-&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;select &lt;/span&gt;&lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;ns; ?&amp;gt;_per_page"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; class&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="select"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;-  &lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;option &lt;/span&gt;&lt;span style="color: #ff0000"&gt;value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="10"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;lt;?php if ($this-&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;per_page == 10): ?&amp;gt; selected="selected"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #ff00ff"&gt;php endif; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;?&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;10&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;option&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;-  &lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;option &lt;/span&gt;&lt;span style="color: #ff0000"&gt;value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="20"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;lt;?php if ($this-&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;per_page == 20): ?&amp;gt; selected="selected"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #ff00ff"&gt;php endif; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;?&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;20&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;option&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;-  &lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;option &lt;/span&gt;&lt;span style="color: #ff0000"&gt;value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="50"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;lt;?php if ($this-&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;per_page == 50): ?&amp;gt; selected="selected"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #ff00ff"&gt;php endif; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;?&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;50&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;option&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;-  &lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;option &lt;/span&gt;&lt;span style="color: #ff0000"&gt;value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="100"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;lt;?php if ($this-&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;per_page == 100): ?&amp;gt; selected="selected"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #ff00ff"&gt;php endif; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;?&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;100&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;option&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;-  &lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;option &lt;/span&gt;&lt;span style="color: #ff0000"&gt;value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="250"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;lt;?php if ($this-&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;per_page == 250): ?&amp;gt; selected="selected"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #ff00ff"&gt;php endif; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;?&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;250&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;option&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;-  &lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;option &lt;/span&gt;&lt;span style="color: #ff0000"&gt;value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="500"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;lt;?php if ($this-&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;per_page == 500): ?&amp;gt; selected="selected"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #ff00ff"&gt;php endif; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;?&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;500&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;option&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;+&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;input &lt;/span&gt;&lt;span style="color: #ff0000"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="hidden"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;nsorderby; ?&amp;gt;"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;Input-&amp;gt;get($this-&amp;gt;nsorderby); ?&amp;gt;"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;+&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;input &lt;/span&gt;&lt;span style="color: #ff0000"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="hidden"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;nsdirsort; ?&amp;gt;"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;Input-&amp;gt;get($this-&amp;gt;nsdirsort); ?&amp;gt;"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;+&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;input &lt;/span&gt;&lt;span style="color: #ff0000"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="hidden"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;nssearch; ?&amp;gt;"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;search; ?&amp;gt;"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;+&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;input &lt;/span&gt;&lt;span style="color: #ff0000"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="hidden"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;nsfor; ?&amp;gt;"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;for; ?&amp;gt;"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;+&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;select &lt;/span&gt;&lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $this-&amp;gt;nsperpage; ?&amp;gt;"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; class&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="select"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;+&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #ff00ff"&gt;php echo $this-&amp;gt;perPage_fields; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;?&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;-    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;td &lt;/span&gt;&lt;span style="color: #ff0000"&gt;class&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="body &amp;lt;?php echo $this-&amp;gt;col_last; ?&amp;gt; col_last"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;a &lt;/span&gt;&lt;span style="color: #ff0000"&gt;href&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $row['details_href']; ?&amp;gt;"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;img &lt;/span&gt;&lt;span style="color: #ff0000"&gt;src&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="system/modules/zedseries_listing/media/images/details.gif"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; alt&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=""&lt;/span&gt;&lt;span style="color: #ff0000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;a&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;td&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;+    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;td &lt;/span&gt;&lt;span style="color: #ff0000"&gt;class&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="body col_last"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;a &lt;/span&gt;&lt;span style="color: #ff0000"&gt;href&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="&amp;lt;?php echo $row['details_href']; ?&amp;gt;"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;img &lt;/span&gt;&lt;span style="color: #ff0000"&gt;src&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="system/modules/zedseries_listing/media/images/details.gif"&lt;/span&gt;&lt;span style="color: #ff0000"&gt; alt&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=""&lt;/span&gt;&lt;span style="color: #ff0000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;a&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;td&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;These changes are very easy to apply but if you need help try asking below. Thank you.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5997589132291828604-6045757225668389107?l=zedseries.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zedseries.blogspot.com/feeds/6045757225668389107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zedseries.blogspot.com/2009/10/zedseries-listing-template-changes-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/6045757225668389107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/6045757225668389107'/><link rel='alternate' type='text/html' href='http://zedseries.blogspot.com/2009/10/zedseries-listing-template-changes-from.html' title='ZedSeries Listing: template changes from version 1.5'/><author><name>ga.n</name><uri>http://www.blogger.com/profile/09566514372664225429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5997589132291828604.post-6096615923581100016</id><published>2009-10-27T09:34:00.000+01:00</published><updated>2011-03-20T09:12:04.092+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zedseries_lib'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='developers'/><category scheme='http://www.blogger.com/atom/ns#' term='ZedseriesWizard'/><title type='text'>Validators in ZedSeriesWizard</title><content type='html'>&lt;p&gt;About writing validators using ZedSeriesWizard&lt;/p&gt; &lt;a name='more'&gt;&lt;/a&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;note&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;before reading this be sure to read and understand &lt;a href="http://developmentwithtypolight.wordpress.com/2009/10/27/getting-started-with-zedserieswizard/"&gt;Getting started with ZedSeriesWizard&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;h2&gt;Built-in validators&lt;/h2&gt; &lt;p&gt;Since ZedSeriesWizard uses standard TYPOlight widgets we can take advantage of them. Please refer to &lt;a title="http://www.typolight.org/reference.html#evaluation" href="http://www.typolight.org/reference.html#evaluation"&gt;http://www.typolight.org/reference.html#evaluation&lt;/a&gt; (rgxp section) for a list of built-in validators.&lt;/p&gt; &lt;h2&gt;Custom validators&lt;/h2&gt; &lt;p&gt;Sometimes the built-in validators does not fulfill our requirements, fortunately we can specify custom validators. We are going to add the following condition to &lt;a href="http://developmentwithtypolight.wordpress.com/2009/10/27/getting-started-with-zedserieswizard/"&gt;MyFirstWizard&lt;/a&gt;:&lt;/p&gt; &lt;p&gt;These are our validation requirements:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;The fullname must begins with an "a"  &lt;li&gt;The age must be in the range 20, 25  &lt;li&gt;The email must not ends with a .info domain &lt;/li&gt;&lt;/ul&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;note&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;if you think these requirements are eccentric, I agree with you :)&lt;/p&gt;&lt;/blockquote&gt; &lt;h2&gt;Adding validators to MyFirstWizard&lt;/h2&gt; &lt;p&gt;First of all let's create our validator class:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;methods used for validation have the following signature:&lt;/p&gt; &lt;p&gt;public function myValidatorMethod(Widget $w) &lt;/p&gt; &lt;p&gt;take a look at &lt;a title="http://api.typolight.org/" href="http://api.typolight.org/"&gt;http://api.typolight.org/&lt;/a&gt; for more information about the Widget class&lt;/p&gt;&lt;/blockquote&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:18c2de2d-f8ed-4528-a55f-be64cef1dad3" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; font-family: tahoma; font-size: 12px; overflow: auto"&gt;&lt;span style="color: #000000"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #000000"&gt;php&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt; MyFirstWizardValidator {&lt;br&gt;&lt;br&gt;    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&lt;span style="color: #000000"&gt; validateName(Widget &lt;/span&gt;&lt;span style="color: #800080"&gt;$w&lt;/span&gt;&lt;span style="color: #000000"&gt;) {&lt;br&gt;        &lt;/span&gt;&lt;span style="color: #800080"&gt;$firstLetter&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #008080"&gt;substr&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #800080"&gt;$w&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;value&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br&gt;&lt;br&gt;        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #008080"&gt;strtolower&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #800080"&gt;$firstLetter&lt;/span&gt;&lt;span style="color: #000000"&gt;) &lt;/span&gt;&lt;span style="color: #000000"&gt;!=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;a&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;) {&lt;br&gt;           &lt;/span&gt;&lt;span style="color: #800080"&gt;$w&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;addError(&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;Fullname must begins with a&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br&gt;        }&lt;br&gt;    }&lt;br&gt;&lt;br&gt;    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&lt;span style="color: #000000"&gt; ageCheck(Widget &lt;/span&gt;&lt;span style="color: #800080"&gt;$w&lt;/span&gt;&lt;span style="color: #000000"&gt;) {&lt;br&gt;        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #800080"&gt;$w&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;value &lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;20&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;||&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$w&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;value &lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;25&lt;/span&gt;&lt;span style="color: #000000"&gt; ) {&lt;br&gt;           &lt;/span&gt;&lt;span style="color: #800080"&gt;$w&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;addError(&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;Your age does not fulfill the requirements&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br&gt;        }&lt;br&gt;    }&lt;br&gt;&lt;br&gt;    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&lt;span style="color: #000000"&gt; validateEmail(Widget &lt;/span&gt;&lt;span style="color: #800080"&gt;$w&lt;/span&gt;&lt;span style="color: #000000"&gt;) {&lt;br&gt;        &lt;/span&gt;&lt;span style="color: #800080"&gt;$emailParts&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #008080"&gt;explode&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$w&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;value);&lt;br&gt;        &lt;/span&gt;&lt;span style="color: #800080"&gt;$domain&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #008080"&gt;array_pop&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #800080"&gt;$emailParts&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br&gt;&lt;br&gt;        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #800080"&gt;$domain&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;==&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;info&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;) {&lt;br&gt;           &lt;/span&gt;&lt;span style="color: #800080"&gt;$w&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;addError(&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;email with domain ".info" are not allowed&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br&gt;        }&lt;br&gt;    }&lt;br&gt;&lt;br&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;Now it is time to write MyFirstWizard-&amp;gt;getValidators in order to use the MyFirstWizardValidator class.&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;getValidators may returns an associative array where the keys are the fields that must be validated and the values are array callback (like the ones used in DCA, e.g. options_callback)&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:a25bd253-8446-4684-b039-77a79138eef2" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; font-family: tahoma; font-size: 12px; overflow: auto"&gt;&lt;span style="color: #000000"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #000000"&gt;php&lt;br&gt;  &lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt; inside MyFirstWizard class ...&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;  &lt;/span&gt;&lt;span style="color: #0000ff"&gt;protected&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&lt;span style="color: #000000"&gt; getValidators() {&lt;br&gt;      &lt;/span&gt;&lt;span style="color: #800080"&gt;$objValidator&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; MyFirstWizardValidator();&lt;br&gt;&lt;br&gt;      &lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;array&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;br&gt;                  &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;fullname&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;array&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #800080"&gt;$objValidator&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;validateName&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;                  &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;age&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;      &lt;/span&gt;&lt;span style="color: #000000"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;array&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #800080"&gt;$objValidator&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;ageCheck&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;                  &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;email&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #000000"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;array&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #800080"&gt;$objValidator&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;validateEmail&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br&gt;             );&lt;br&gt;  }&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;That is! Our wizard now features custom validation.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5997589132291828604-6096615923581100016?l=zedseries.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zedseries.blogspot.com/feeds/6096615923581100016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zedseries.blogspot.com/2009/10/validators-in-zedserieswizard.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/6096615923581100016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/6096615923581100016'/><link rel='alternate' type='text/html' href='http://zedseries.blogspot.com/2009/10/validators-in-zedserieswizard.html' title='Validators in ZedSeriesWizard'/><author><name>ga.n</name><uri>http://www.blogger.com/profile/09566514372664225429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5997589132291828604.post-8890601486081584298</id><published>2009-10-27T09:09:00.000+01:00</published><updated>2011-03-20T09:11:34.916+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zedseries_lib'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='developers'/><category scheme='http://www.blogger.com/atom/ns#' term='ZedseriesWizard'/><title type='text'>Customizing a wizard</title><content type='html'>&lt;p&gt;Learn how to customize wizards created with &lt;a href="http://www.zedseries.com/ZedSeriesLibrary.html"&gt;ZedSeriesWizard&lt;/a&gt;&lt;/p&gt; &lt;a name='more'&gt;&lt;/a&gt; &lt;h2&gt;How to define settings with ZedSeriesWizardHelper&lt;/h2&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;note &lt;/strong&gt;&lt;/p&gt;&lt;strong&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;before reading this be sure to read and understand &lt;a href="http://developmentwithtypolight.wordpress.com/2009/10/27/getting-started-with-zedserieswizard/"&gt;Getting started with ZedSeriesWizard&lt;/a&gt;&lt;/p&gt;&lt;/strong&gt;&lt;/blockquote&gt; &lt;p&gt;ZedSeriesWizardHelper uses it's getSettings() method in order to apply settings to the wizard; this method must return either a string or a ZedSeriesIniConfigWizard instance. If a string is returned ZedSeriesWizard will look for a file named "string_returned".ini.php (e.g. myconfig.ini.php) in the zedseries_lib/wzconfig/ directory and creates a ZedSeriesIniConfigWizard instance reading settings from it.&lt;/p&gt; &lt;h2&gt;ZedSeriesIniConfigWizard&lt;/h2&gt; &lt;p&gt;This class let us customize the wizard, basically you can:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;choose to display a header with a logo inside (or even without the logo :D)  &lt;li&gt;load css and javascript ; different files can be specified for front end and backend  &lt;li&gt;choose whether to show a progress bar during wizard run (i.e. step 1 of 3)  &lt;li&gt;specify a different template  &lt;li&gt;modify the "next" "previous" and "finish" labels (with i18n support) &lt;/li&gt;&lt;/ul&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;tip&lt;/strong&gt; &lt;br&gt;please refer to "ZedSeriesWizard Settings" for an explanation of each directive&lt;/p&gt;&lt;/blockquote&gt; &lt;h2&gt;Returning an object&lt;/h2&gt; &lt;p&gt;We override ZedSeriesWizardHelper's getSettings method to change our settings in order to show a progress bar when the wizard is created in front end mode.&lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:dfc60acd-b6d5-4303-9fb2-c1e3ecf99306" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; font-family: tahoma; font-size: 12px; overflow: auto"&gt;&lt;span style="color: #000000"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #000000"&gt;php &lt;br&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt; ... inside MyFirstWizard class &lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;protected&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&lt;span style="color: #000000"&gt; getSettings() { &lt;br&gt;  &lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt; create a new instance and load default settings &lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;  &lt;/span&gt;&lt;span style="color: #800080"&gt;$cfg&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; ZedSeriesIniConfigWizard(&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;wizard&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;); &lt;br&gt;  &lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt; change the display"ProgressBar" entry from the "fe" section &lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;  &lt;/span&gt;&lt;span style="color: #800080"&gt;$cfg&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;fe__displayProgressBar &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;span style="color: #000000"&gt;; &lt;br&gt;  &lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$cfg&lt;/span&gt;&lt;span style="color: #000000"&gt;; &lt;br&gt;} &lt;br&gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;h2&gt;Load settings from external file&lt;/h2&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;The getSettings() method can also returns a string, in this case we must create a file named "string_returned" inside the zedseries_lib/wzconfig/ directory.&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;So create the zedseries_lib/wzconfig/myconfig.ini.php and put there the following code:&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:359147f6-f1ad-4414-b7db-0712db7fa87d" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; font-family: tahoma; font-size: 12px; overflow: auto"&gt;&lt;span style="color: #000000"&gt;;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #000000"&gt;php &lt;/span&gt;&lt;span style="color: #0000ff"&gt;exit&lt;/span&gt;&lt;span style="color: #000000"&gt;; &lt;/span&gt;&lt;span style="color: #000000"&gt;?&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;br&gt;[fe] &lt;br&gt;displayProgressBar &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;span style="color: #000000"&gt;; &lt;br&gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;then modify the getSettings() method in this way:&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:ac6b2c4b-4608-4e64-a7e0-5f0a7d4341cb" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; font-family: tahoma; font-size: 12px; overflow: auto"&gt;&lt;span style="color: #000000"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #000000"&gt;php &lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;protected&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&lt;span style="color: #000000"&gt; getSettings() { &lt;br&gt;  &lt;/span&gt;&lt;span style="color: #008000"&gt;/*&lt;/span&gt;&lt;span style="color: #008000"&gt; the wizard will search for a file named "myconfig.ini.php" &lt;br&gt;  * into the "zedseries_lib/wzconfig/" directory. &lt;/span&gt;&lt;span style="color: #008000"&gt;*/&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;br&gt;  &lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;myconfig&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;; &lt;br&gt;} &lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;?&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;h2&gt;Taking more control&lt;/h2&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;If you need to:&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;ul&gt;&lt;br&gt;&lt;br /&gt;&lt;li&gt;specify the directory from which load the ini files &lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;li&gt;share your settings between different wizards &lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;it's time to extend the ZedSeriesIniConfigWizard class. &lt;br&gt;&lt;br&gt;So, create your own config class&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:3b4d461b-d657-4d78-a3c7-e827d9c3998b" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; overflow: auto"&gt;&lt;span style="color: #000000"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #000000"&gt;php&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt; MyConfigClass &lt;/span&gt;&lt;span style="color: #0000ff"&gt;extends&lt;/span&gt;&lt;span style="color: #000000"&gt; ZedSeriesIniConfigWizard {&lt;br&gt;    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;protected&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$strDir&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;/system/modules/mymodule/&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br&gt;}&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;?&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;and modify the getSettings method to reflect the above changes&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:97a6846f-c7df-4893-bb41-db2b5bcca0c0" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; overflow: auto"&gt;&lt;span style="color: #000000"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #000000"&gt;php&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;protected&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&lt;span style="color: #000000"&gt; getSettings() {&lt;br&gt;    &lt;/span&gt;&lt;span style="color: #008000"&gt;/*&lt;/span&gt;&lt;span style="color: #008000"&gt; this time the wizard will search for a file named "myconfig.ini.php"&lt;br&gt;    * into the "mymodule/wzconfig/" directory. &lt;/span&gt;&lt;span style="color: #008000"&gt;*/&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;    &lt;br&gt;    &lt;/span&gt;&lt;span style="color: #800080"&gt;$cfg&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; MyConfigClass(&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;myconfig&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br&gt;    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$cfg&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br&gt;}&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;?&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;h2&gt;Custom configuration without external file&lt;/h2&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;You can specify your own configuration settings directly into the config class&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:87e0fcbb-c881-41fd-b21a-c3b1e87c06ec" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; overflow: auto"&gt;&lt;span style="color: #000000"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #000000"&gt;php&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt; MyConfigClass &lt;/span&gt;&lt;span style="color: #0000ff"&gt;extends&lt;/span&gt;&lt;span style="color: #000000"&gt; ZedSeriesIniConfigWizard {&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&lt;span style="color: #000000"&gt; __construct(&lt;/span&gt;&lt;span style="color: #800080"&gt;$filename&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;wizard&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;) {&lt;br&gt;    &lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt; load the filename&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;    parent&lt;/span&gt;&lt;span style="color: #000000"&gt;::&lt;/span&gt;&lt;span style="color: #000000"&gt;__construct(&lt;/span&gt;&lt;span style="color: #800080"&gt;$filename&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br&gt;    &lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt; apply the changes&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #800080"&gt;$this&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;fe__displayProgressBar &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br&gt;}&lt;br&gt;}&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;?&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;h2&gt;Configuration settings&lt;/h2&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;Here is a list of all sections of a config ini file with explanation of each entry. Remember that you can set every entry in your config class just using the syntax&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;$configInstance-&amp;gt;section__entry (e.g. $configInstance-&amp;gt;fe__displayProgressBar if you want to change the progress bar behaviour)&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;h3&gt;be&lt;/h3&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; these directives will be applied only when TYPOlight runs in backend (TL_MODE is be)&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="2" width="659"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br&gt;&lt;br /&gt;&lt;tr&gt;&lt;br&gt;&lt;br /&gt;&lt;td valign="top" width="200"&gt;useHeader&lt;/td&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;td valign="top" width="457"&gt;whether to show an header before the widgets&lt;/td&gt;&lt;br&gt;&lt;/tr&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;tr&gt;&lt;br&gt;&lt;br /&gt;&lt;td valign="top" width="200"&gt;title&lt;/td&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;td valign="top" width="457"&gt;title to display in header (ignored if useHeader is false)&lt;/td&gt;&lt;br&gt;&lt;/tr&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;tr&gt;&lt;br&gt;&lt;br /&gt;&lt;td valign="top" width="200"&gt;logo&lt;/td&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;td valign="top" width="457"&gt;logo to display in header (ignored if useHeader is false)&lt;/td&gt;&lt;br&gt;&lt;/tr&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;tr&gt;&lt;br&gt;&lt;br /&gt;&lt;td valign="top" width="200"&gt;css&lt;/td&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;td valign="top" width="457"&gt;a comma separated list of css files to load&lt;/td&gt;&lt;br&gt;&lt;/tr&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;tr&gt;&lt;br&gt;&lt;br /&gt;&lt;td valign="top" width="200"&gt;js&lt;/td&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;td valign="top" width="457"&gt;a comma separated list of javascript files to load&lt;/td&gt;&lt;br&gt;&lt;/tr&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;tr&gt;&lt;br&gt;&lt;br /&gt;&lt;td valign="top" width="200"&gt;template&lt;/td&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;td valign="top" width="457"&gt;template used for rendering the wizard, its behaviour is the same as TYPOlight module's template&lt;/td&gt;&lt;br&gt;&lt;/tr&gt;&lt;br&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;h3&gt;fe&lt;/h3&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; these directives will be applied only when TYPOlight runs in frontend (TL_MODE is fe) and are the same of be ones.&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;h3&gt;wizard&lt;/h3&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; wizard section contains directives that changes the way ZedSeriesWizard works&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="2" width="707"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br&gt;&lt;br /&gt;&lt;tr&gt;&lt;br&gt;&lt;br /&gt;&lt;td valign="top" width="200"&gt;showAllWidgets&lt;/td&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;td valign="top" width="505"&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;if true every step displays the widgets beloging of the previous step in disabled state&lt;/p&gt;&lt;br&gt;&lt;/td&gt;&lt;br&gt;&lt;/tr&gt;&lt;br&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;h3&gt;form&lt;/h3&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;in the form section can be specified attributes you want to render in the html tag form, please enter as name=value&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;e.g.&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;if you enter&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:59e0597f-b8d4-4988-93de-8991dfbf50d4" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; overflow: auto"&gt;&lt;span style="color: #000000"&gt;class=stdform&lt;br&gt;target=_blank&lt;br&gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;the form will be rendered as&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:e8ab7236-e260-48b1-8ba7-e3a7c3cf4051" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; overflow: auto"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;form &lt;/span&gt;&lt;span style="color: #ff0000"&gt;class&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=”stdform” &lt;/span&gt;&lt;span style="color: #ff0000"&gt;target&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=”_blank”&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;h3&gt;labels&lt;/h3&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;labels section allows you to quickly override default label for buttons&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="2" width="711"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br&gt;&lt;br /&gt;&lt;tr&gt;&lt;br&gt;&lt;br /&gt;&lt;td valign="top" width="200"&gt;next&lt;/td&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;td valign="top" width="509"&gt;label for the “next” button&lt;/td&gt;&lt;br&gt;&lt;/tr&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;tr&gt;&lt;br&gt;&lt;br /&gt;&lt;td valign="top" width="200"&gt;prev&lt;/td&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;td valign="top" width="509"&gt;label for the “previous” button&lt;/td&gt;&lt;br&gt;&lt;/tr&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;tr&gt;&lt;br&gt;&lt;br /&gt;&lt;td valign="top" width="200"&gt;finish&lt;/td&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;td valign="top" width="509"&gt;label for the “finish” button&lt;/td&gt;&lt;br&gt;&lt;/tr&gt;&lt;br&gt;&lt;/tbody&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5997589132291828604-8890601486081584298?l=zedseries.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zedseries.blogspot.com/feeds/8890601486081584298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zedseries.blogspot.com/2009/10/customizing-wizard.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/8890601486081584298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/8890601486081584298'/><link rel='alternate' type='text/html' href='http://zedseries.blogspot.com/2009/10/customizing-wizard.html' title='Customizing a wizard'/><author><name>ga.n</name><uri>http://www.blogger.com/profile/09566514372664225429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5997589132291828604.post-3054182496718786159</id><published>2009-10-27T06:47:00.000+01:00</published><updated>2011-03-20T09:12:49.492+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zedseries_lib'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='developers'/><category scheme='http://www.blogger.com/atom/ns#' term='ZedseriesWizard'/><title type='text'>Getting started with ZedSeriesWizard</title><content type='html'>&lt;p&gt;How to create a simple wizard using ZedSeries Library extension for TYPOlight webCMS&lt;/p&gt;  &lt;a name='more'&gt;&lt;/a&gt;  &lt;blockquote&gt; &lt;p&gt;&lt;br&gt;Before reading this you must have a (almost basic) knowledge of how to create extension for TYPOlight.&lt;/p&gt; &lt;p&gt;Please refer to "How to create a custom module" at &lt;a href="http://dev.typolight.org/wiki/typolight/TutorialsExtension"&gt;http://dev.typolight.org/wiki/typolight/TutorialsExtension&lt;/a&gt; for more information about module creation&lt;/p&gt;&lt;/blockquote&gt; &lt;h2&gt;Our first wizard&lt;/h2&gt; &lt;p&gt;A wizard is composed by a set of steps that, once completed, will end in an action.&lt;/p&gt; &lt;p&gt;We'll create our first wizard prompting user for name, age and email address; our wizard will contains the following steps:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;print a welcome message  &lt;li&gt;ask for name and age  &lt;li&gt;ask for email address  &lt;li&gt;display a "thank you" message &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;To build our wizard we can use standard TYPOlight widget as:&lt;/p&gt; &lt;p&gt;FormExplanation: used in steps 1 and 4 to display the messages &lt;br&gt;FormTextField: used in steps 2 and 3 to collect name and email &lt;br&gt;SelectMenu: used in step 2 to let user choose his age from a set of predefined values&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;Some notes on widget:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;AFAIK there is no explicit documentation for Widget class. Luckily we can use the same options used in writing DCA fields definition&lt;/p&gt; &lt;p&gt;Take a look at &lt;a href="http://www.typolight.org/developers-guide.html"&gt;Learn how to develop for TYPOlight - TYPOlight Open Source CMS&lt;/a&gt; on typolight.org for more informations about writing a &lt;strong&gt;D&lt;/strong&gt;ata &lt;strong&gt;C&lt;/strong&gt;onfiguration &lt;strong&gt;A&lt;/strong&gt;rray&lt;/p&gt;&lt;/blockquote&gt; &lt;h2&gt;ZedSeriesWizardHelper class&lt;/h2&gt; &lt;p&gt;&lt;a href="http://www.zedseries.com/ZedSeriesLibrary.html"&gt;ZedSeries Library&lt;/a&gt; comes with the ZedSeriesWizardHelper class that can be used to quickly setup our wizard. This is an abstract class that contains only one abstract mehotd: getSteps. As the name suggests the getSteps method must returns an array of steps to perform in order to complete the wizard. Each step is an array of widgets to display.&lt;/p&gt; &lt;p&gt;The name of our class will be MyFirstWizard: we are going to extend the ZedSeriesWizardHelper class so we only need to implement the getSteps method.&lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:e41775d2-af64-49e5-94a5-85dd29321ce8" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; font-family: tahoma; font-size: 12px; overflow: auto"&gt;&lt;span style="color: #000000"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #000000"&gt;php&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt; MyFirstWizard &lt;/span&gt;&lt;span style="color: #0000ff"&gt;extends&lt;/span&gt;&lt;span style="color: #000000"&gt; ZedSeriesWizardHelper {&lt;br&gt;&lt;br&gt;    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;protected&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&lt;span style="color: #000000"&gt; getSteps() {&lt;br&gt;    &lt;br&gt;        &lt;/span&gt;&lt;span style="color: #800080"&gt;$steps&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;array&lt;/span&gt;&lt;span style="color: #000000"&gt;();&lt;br&gt;        &lt;br&gt;        &lt;/span&gt;&lt;span style="color: #800080"&gt;$steps&lt;/span&gt;&lt;span style="color: #000000"&gt;[&lt;/span&gt;&lt;span style="color: #000000"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;] &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;array&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;br&gt;        &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; FormExplanation is a frontend widget used by TYPOlight form generator&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;        &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; is located in TL_ROOT/system/modules/frontend/ directory&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; FormExplanation(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;array&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;text&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;Welcome to our first wizard click next to begin&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;))&lt;br&gt;        );&lt;br&gt;        &lt;/span&gt;&lt;span style="color: #800080"&gt;$steps&lt;/span&gt;&lt;span style="color: #000000"&gt;[&lt;/span&gt;&lt;span style="color: #000000"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;] &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;array&lt;/span&gt;&lt;span style="color: #000000"&gt;();&lt;br&gt;        &lt;br&gt;        &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; this time we'll use Controller prepareForWidget method (through ZedSeriesControllerUtils)&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;        &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; to create our input text, prepareForWidget allow us to use the same field's configuration options used in dca&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;        &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; please refer to http://api.typolight.org/Controller/Controller.html#prepareForWidget&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;        &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; for more information about parameters&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;        &lt;br&gt;        &lt;/span&gt;&lt;span style="color: #800080"&gt;$steps&lt;/span&gt;&lt;span style="color: #000000"&gt;[&lt;/span&gt;&lt;span style="color: #000000"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;][] &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; FormTextField(&lt;br&gt;                &lt;/span&gt;&lt;span style="color: #800080"&gt;$this&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;cu&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;prepareForWidget(&lt;br&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;array&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;br&gt;                    &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;label&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;array&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;Full name&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;Please enter your name&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;                    &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;eval&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;array&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;mandatory&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br&gt;                    )&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;fullname&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;                )&lt;br&gt;            );&lt;br&gt;        &lt;br&gt;        &lt;/span&gt;&lt;span style="color: #800080"&gt;$ageOptions&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #008080"&gt;array_combine&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #008080"&gt;range&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #000000"&gt;17&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;42&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #008080"&gt;range&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #000000"&gt;17&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;42&lt;/span&gt;&lt;span style="color: #000000"&gt;));&lt;br&gt;        &lt;br&gt;        &lt;/span&gt;&lt;span style="color: #800080"&gt;$steps&lt;/span&gt;&lt;span style="color: #000000"&gt;[&lt;/span&gt;&lt;span style="color: #000000"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;][] &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; SelectMenu(&lt;br&gt;            &lt;/span&gt;&lt;span style="color: #800080"&gt;$this&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;cu&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;prepareForWidget(&lt;br&gt;                &lt;/span&gt;&lt;span style="color: #0000ff"&gt;array&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;br&gt;                &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;label&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;array&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;Age&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;Please Enter your age&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;                &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;options&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$ageOptions&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;                &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;eval&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;array&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;mandatory&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br&gt;                )&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;br&gt;                &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;age&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;            )&lt;br&gt;        );&lt;br&gt;        &lt;br&gt;        &lt;/span&gt;&lt;span style="color: #800080"&gt;$steps&lt;/span&gt;&lt;span style="color: #000000"&gt;[&lt;/span&gt;&lt;span style="color: #000000"&gt;2&lt;/span&gt;&lt;span style="color: #000000"&gt;] &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;array&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;br&gt;            &lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; FormTextField(&lt;br&gt;                &lt;/span&gt;&lt;span style="color: #800080"&gt;$this&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;cu&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;prepareForWidget(&lt;br&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;array&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;br&gt;                    &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;label&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;array&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;Email&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;Please enter your email address&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;                    &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;eval&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;array&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;mandatory&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;rgxp&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;email&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br&gt;                    )&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;br&gt;                    &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;email&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;                )&lt;br&gt;            )&lt;br&gt;        );&lt;br&gt;        &lt;/span&gt;&lt;span style="color: #800080"&gt;$steps&lt;/span&gt;&lt;span style="color: #000000"&gt;[&lt;/span&gt;&lt;span style="color: #000000"&gt;3&lt;/span&gt;&lt;span style="color: #000000"&gt;] &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;array&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;br&gt;            &lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; FormExplanation(&lt;br&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;array&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;text&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;Thank you, click finish to end the wizard&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br&gt;                )&lt;br&gt;        );&lt;br&gt;        &lt;br&gt;        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$steps&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br&gt;    }&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;h2&gt;Running the wizard inside TYPOlight&lt;/h2&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;Ok, we have our wizard but how we can run it?&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;There are two ways:&lt;/strong&gt;&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;ol&gt;&lt;br&gt;&lt;br /&gt;&lt;li&gt;as standalone script after initializing the TYPOlight engine: pretty useless, but useful if you want to try your wizard quickly. &lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;li&gt;inside a&amp;nbsp; (Backend|Frontend)Module using the "generate" method &lt;br&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;1st way:&lt;/strong&gt;&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;create a file named MyFirstRun.php and place it inside your TL_ROOT&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;paste the code below&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:81c7714e-1b04-446e-8ad2-a76ec191c798" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; font-family: tahoma; font-size: 12px; overflow: auto"&gt;&lt;span style="color: #000000"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #000000"&gt;php&lt;br&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;define&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;TL_MODE&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;FE&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;require_once&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;system/initialize.php&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;/*&lt;/span&gt;&lt;span style="color: #008000"&gt;*&lt;br&gt;* put here the MyFirstWizard class code&lt;br&gt;*&lt;br&gt;* class MyFirstWizard extends ....&lt;br&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;*/&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #800080"&gt;$obj&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; MyFirstWizard();&lt;br&gt;&lt;/span&gt;&lt;span style="color: #800080"&gt;$data&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$obj&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;run();&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;echo&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$data&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br&gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;then open &lt;a href="http://yourhost/path/to/typolight/MyFirstRun.php"&gt;http://yourhost/path/to/typolight/MyFirstRun.php&lt;/a&gt; and play with wizard going back and forth&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;2nd way:&lt;/strong&gt;&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;override your module "generate" method in this way:&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:1ee890c8-d4bd-4ccd-8a76-10c5f871ec3b" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; font-family: tahoma; font-size: 12px; overflow: auto"&gt;&lt;span style="color: #000000"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #000000"&gt;php&lt;br&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&lt;span style="color: #000000"&gt; generate() {&lt;br&gt;    &lt;/span&gt;&lt;span style="color: #800080"&gt;$wz&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; MyFirstWizard();&lt;br&gt;    &lt;/span&gt;&lt;span style="color: #800080"&gt;$data&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$wz&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;run();&lt;br&gt;    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$data&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br&gt;}&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;?&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;then access your module and play with the wizard as usual&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;h2&gt;Array?&lt;/h2&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;If you follows the above directions after hitting the "Finish" button, you've got "Array" on your screen&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;As you may guessed the ZedSeriesWizardHelper's run method return an array with the data entered when user completes the wizard&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;The ZedSeriesWizardHelper class has a "completed" property that can be used to detect if the wizard was completed:&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:5429b527-a3c1-41eb-b417-72a65900c583" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; overflow: auto"&gt;&lt;span style="color: #000000"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #000000"&gt;php&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #800080"&gt;$wz&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; MyFirstWizard();&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #800080"&gt;$data&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$wz&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;run();&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;/*&lt;/span&gt;&lt;span style="color: #008000"&gt; if $wz-&amp;gt;completed == false $data contains the wizard html output&lt;br&gt;&lt;br&gt;if (!$wz-&amp;gt;completed) { &lt;br&gt;    // use return if you are inside the generate method of a module&lt;br&gt;    # return $data; &lt;br&gt;    echo $data;&lt;br&gt;} else {&lt;br&gt;    // $data is an associative array containing the entered user data&lt;br&gt;    print_r($data);&lt;br&gt;}&lt;br&gt;&lt;br&gt;?&amp;gt;&lt;br&gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;h2&gt;The next steps&lt;/h2&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;In following articles we extend our Wizard adding some validators and learning how to customize it.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5997589132291828604-3054182496718786159?l=zedseries.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zedseries.blogspot.com/feeds/3054182496718786159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zedseries.blogspot.com/2009/10/getting-started-with-zedserieswizard.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/3054182496718786159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/3054182496718786159'/><link rel='alternate' type='text/html' href='http://zedseries.blogspot.com/2009/10/getting-started-with-zedserieswizard.html' title='Getting started with ZedSeriesWizard'/><author><name>ga.n</name><uri>http://www.blogger.com/profile/09566514372664225429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5997589132291828604.post-4870314566060657241</id><published>2009-10-26T18:58:00.000+01:00</published><updated>2011-03-20T09:13:46.885+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='developers'/><category scheme='http://www.blogger.com/atom/ns#' term='tips and tricks'/><category scheme='http://www.blogger.com/atom/ns#' term='zedseries_listing'/><title type='text'>ZedSeries Listing: How to use helper in template writing</title><content type='html'>&lt;p&gt;&lt;a href="http://www.zedseries.com/zedseries-listing-module.html"&gt;ZedSeries Listing&lt;/a&gt; set a template variable named fh that can be used for&amp;nbsp; better customize our listing template.&lt;/p&gt; &lt;p&gt;A little example for clarifying how the help can be used:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;For the following example we assume that we are querying the pageTitle,language and tstamp fields from tl_page to show some pages of our website with creation date.&lt;/p&gt;&lt;/blockquote&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:bde21969-fc7e-4548-b805-2bbfa770874f" class="wlWriterSmartContent"&gt;&lt;pre style="background-color: #ffffff; font-family: tahoma; font-size: 12px; overflow: auto"&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;div&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #000000"&gt;php &lt;/span&gt;&lt;span style="color: #0000ff"&gt;echo&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$this&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;cssID; &lt;/span&gt;&lt;span style="color: #000000"&gt;?&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #000000"&gt;php &lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #800080"&gt;$this&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;style)&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;?&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;style&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;?php echo &lt;/span&gt;&lt;span style="color: #800080"&gt;$this&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;style; ?&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #000000"&gt;php &lt;/span&gt;&lt;span style="color: #0000ff"&gt;endif&lt;/span&gt;&lt;span style="color: #000000"&gt;; &lt;/span&gt;&lt;span style="color: #000000"&gt;?&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #000000"&gt;php &lt;/span&gt;&lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #800080"&gt;$this&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;tbody &lt;/span&gt;&lt;span style="color: #0000ff"&gt;as&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$class&lt;/span&gt;&lt;span style="color: #000000"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #800080"&gt;$row&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;?&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;p&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;small&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #000000"&gt;php &lt;/span&gt;&lt;span style="color: #0000ff"&gt;echo&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$this&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;thead[&lt;/span&gt;&lt;span style="color: #800080"&gt;$this&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;fh&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;pageTitle][&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;link&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;]; &lt;/span&gt;&lt;span style="color: #000000"&gt;?&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000"&gt;small&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #000000"&gt;php &lt;/span&gt;&lt;span style="color: #0000ff"&gt;echo&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$row&lt;/span&gt;&lt;span style="color: #000000"&gt;[&lt;/span&gt;&lt;span style="color: #800080"&gt;$this&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;fh&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;pageTitle][&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;content&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;]; &lt;/span&gt;&lt;span style="color: #000000"&gt;?&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000"&gt;p&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;p&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;small&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Created on&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000"&gt;small&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #000000"&gt;php &lt;/span&gt;&lt;span style="color: #0000ff"&gt;echo&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #008080"&gt;date&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;Y-m-d H:i:s&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$row&lt;/span&gt;&lt;span style="color: #000000"&gt;[&lt;/span&gt;&lt;span style="color: #800080"&gt;$this&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;fh&lt;/span&gt;&lt;span style="color: #000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;tstamp][&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;raw&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;]); &lt;/span&gt;&lt;span style="color: #000000"&gt;?&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000"&gt;p&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;hr &lt;/span&gt;&lt;span style="color: #000000"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #000000"&gt;php &lt;/span&gt;&lt;span style="color: #0000ff"&gt;endforeach&lt;/span&gt;&lt;span style="color: #000000"&gt;; &lt;/span&gt;&lt;span style="color: #000000"&gt;?&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000"&gt;div&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;As shown above we can use $this-&amp;gt;fh-&amp;gt;%fieldname% to refer to our fields: so we can displays them without worrying about select order.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5997589132291828604-4870314566060657241?l=zedseries.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zedseries.blogspot.com/feeds/4870314566060657241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zedseries.blogspot.com/2009/10/zedseries-listing-how-to-use-helper-in.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/4870314566060657241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/4870314566060657241'/><link rel='alternate' type='text/html' href='http://zedseries.blogspot.com/2009/10/zedseries-listing-how-to-use-helper-in.html' title='ZedSeries Listing: How to use helper in template writing'/><author><name>ga.n</name><uri>http://www.blogger.com/profile/09566514372664225429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5997589132291828604.post-2026570399558296817</id><published>2009-10-26T13:50:00.000+01:00</published><updated>2011-03-20T09:14:22.581+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='announcements'/><title type='text'>New posts are coming</title><content type='html'>Hi all,&lt;br&gt;&lt;br&gt;I am moving all the articles from zedseries.com here. This place will also contain articles tips and tricks on development with TYPOlight webCMS.&lt;br&gt;&lt;br&gt;Hope you enjoy it.   &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5997589132291828604-2026570399558296817?l=zedseries.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zedseries.blogspot.com/feeds/2026570399558296817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zedseries.blogspot.com/2009/10/new-posts-are-coming.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/2026570399558296817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5997589132291828604/posts/default/2026570399558296817'/><link rel='alternate' type='text/html' href='http://zedseries.blogspot.com/2009/10/new-posts-are-coming.html' title='New posts are coming'/><author><name>ga.n</name><uri>http://www.blogger.com/profile/09566514372664225429</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
