    <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/">
     <channel>
        <title>MirageLab :: labCategories Support Forum</title>
        <link>http://www.miragelab.com/</link>
        <description>Lex Informatica</description>
        <dc:language>en-us</dc:language> 
        <dc:creator>SaintEgo</dc:creator> 
        <admin:generatorAgent rdf:resource="http://www.xaraya.org" /> 
        <admin:errorReportsTo rdf:resource="mailto:cdavidkraeft@miragelab.com" /> 
       <sy:updatePeriod>hourly</sy:updatePeriod> 
       <sy:updateFrequency>1</sy:updateFrequency> 
       <docs>http://backend.userland.com/rss</docs>
<item>
<title>Adding a list of categories under an existing category</title>
<link>http://www.miragelab.com/forums/topic/303</link>
<pubDate>Tue, 28 Sep 2004 03:21:00 GMT</pubDate>
<content:encoded><![CDATA[ If you have a group of categories that you want to make child categories of an existing category, first locate the category that you wish to move it under. Make sure that there are no child categories under it (or you will have to move them first).<br />
<br />
Now edit parent category of the master category for your list. Change it's parent category to reflect the parent of the category you want to move it under.<br />
<br />
Then move the child categories of the existing category into the one that you just moved.<br />
<br />
You can then delete the existing category and copy it's name to the one you moved.<br />
<br />
Don't forget to double check any config areas (like labDossier) that are set to the old category, since they sync to the category ID, not it's name.[addsig] ]]></content:encoded>
<description>If you have a group of categories that you want to make child categories of an existing category, first locate the category that you wish to move it under. Make sure that there are no child categories under it (or you will have to move them first).&lt;br /&gt;
&lt;br /&gt;
Now edit parent category of the master category for your list. Change it's parent category to reflect the parent of the category you want to move it under.&lt;br /&gt;
&lt;br /&gt;
Then move the child categories of the existing category into the one that you just moved.&lt;br /&gt;
&lt;br /&gt;
You can then delete the existing category and copy it's name to the one you moved.&lt;br /&gt;
&lt;br /&gt;
Don't forget to double check any config areas (like labDossier) that are set to the old category, since they sync to the category ID, not it's name.[addsig]</description>
<content:format rdf:resource="http://www.w3.org/1999/xhtml" />
</item>
<item>
<title>The (--+ style) in the treedata</title>
<link>http://www.miragelab.com/forums/topic/283</link>
<pubDate>Fri, 23 Jul 2004 10:36:00 GMT</pubDate>
<content:encoded><![CDATA[ Hi St.Ego,

I can't understand the (--+) style in the treedata. I have made the following:
Installed the module, then imported the labAccounting.php file.

Now:
Why is Site Topics displayed with --+ and labAccounting only with +
Why is Account Types displayed with --+ and Transaction Types only with +

and so on. Seems to be no rule for these signs, though the indentation is always correct.

Thomas[addsig] ]]></content:encoded>
<description>Hi St.Ego,

I can't understand the (--+) style in the treedata. I have made the following:
Installed the module, then imported the labAccounting.php file.

Now:
Why is Site Topics displayed with --+ and labAccounting only with +
Why is Account Types displayed with --+ and Transaction Types only with +

and so on. Seems to be no rule for these signs, though the indentation is always correct.

Thomas[addsig]</description>
<content:format rdf:resource="http://www.w3.org/1999/xhtml" />
</item>
<item>
<title>how to integrate labCategories:</title>
<link>http://www.miragelab.com/forums/topic/213</link>
<pubDate>Fri, 14 May 2004 21:43:00 GMT</pubDate>
<content:encoded><![CDATA[ labCategories_user_modify is the first half of labCategories integration.

make sure that labCategories/pnuser.php is loaded, then assign the results of labCategories_user_modify to a variable.

It will return a dropdown (and a text field, if specified) containing all of the subcategories of the cid passed (all are returned if no cid is passed).

The field name, cid, and default cid can all be passed. If newfieldname is passed, you can allow spot creation of new categories.



which brings us to the second half of labCategories integration:

if you specified a newfieldname value, you will have a variable of that name returned. in your form processing gui function (ex: mymodule_admin_create). the only code that is needed here is to check if that variable is empty.

if it is not, send it to labCategories_adminapi_create as the &quot;name&quot; variable so that it gets added. take the returned ID and overwrite the ID returned by the form with it before writing changes.

that's the quick and dirty version. any questions?
[addsig] ]]></content:encoded>
<description>labCategories_user_modify is the first half of labCategories integration.

make sure that labCategories/pnuser.php is loaded, then assign the results of labCategories_user_modify to a variable.

It will return a dropdown (and a text field, if specified) containing all of the subcategories of the cid passed (all are returned if no cid is passed).

The field name, cid, and default cid can all be passed. If newfieldname is passed, you can allow spot creation of new categories.



which brings us to the second half of labCategories integration:

if you specified a newfieldname value, you will have a variable of that name returned. in your form processing gui function (ex: mymodule_admin_create). the only code that is needed here is to check if that variable is empty.

if it is not, send it to labCategories_adminapi_create as the &quot;name&quot; variable so that it gets added. take the returned ID and overwrite the ID returned by the form with it before writing changes.

that's the quick and dirty version. any questions?
[addsig]</description>
<content:format rdf:resource="http://www.w3.org/1999/xhtml" />
</item>
<item>
<title>labCategories Information and Resources</title>
<link>http://www.miragelab.com/forums/topic/258</link>
<pubDate>Wed, 07 Apr 2004 07:20:00 GMT</pubDate>
<content:encoded><![CDATA[ Product Page: [url=http://www.miragelab.com/index.php?module=ContentExpress&amp;func=display&amp;ceid=29]here[/url]
Chart of Accounts Demo: [url=http://demo.miragelab.com/index.php?module=labAccounting]here[/url] (username: demo, password: demo)
Download: [url=Downloads+index-req-getit-lid-26.phtml]here[/url]
Forum: [url=phpBB_14+index-action-viewforum-forum-14.phtml]current page[/url]
FAQ: [url=modules.php?op=modload&amp;name=FAQ&amp;file=index&amp;myfaq=yes&amp;id_cat=10&amp;categories=labCategories&amp;parent_id=5]here[/url]

[addsig] ]]></content:encoded>
<description>Product Page: [url=http://www.miragelab.com/index.php?module=ContentExpress&amp;func=display&amp;ceid=29]here[/url]
Chart of Accounts Demo: [url=http://demo.miragelab.com/index.php?module=labAccounting]here[/url] (username: demo, password: demo)
Download: [url=Downloads+index-req-getit-lid-26.phtml]here[/url]
Forum: [url=phpBB_14+index-action-viewforum-forum-14.phtml]current page[/url]
FAQ: [url=modules.php?op=modload&amp;amp;name=FAQ&amp;amp;file=index&amp;amp;myfaq=yes&amp;amp;id_cat=10&amp;amp;categories=labCategories&amp;amp;parent_id=5]here[/url]

[addsig]</description>
<content:format rdf:resource="http://www.w3.org/1999/xhtml" />
</item>
<item>
<title>labCategories implementation</title>
<link>http://www.miragelab.com/forums/topic/257</link>
<pubDate>Wed, 07 Apr 2004 07:15:00 GMT</pubDate>
<content:encoded><![CDATA[ How to use in other modules (labAccounting example):
Form field:
<pre>
    $accountcid = pnModGetVar('labAccounting', 'accountcid');
    if(pnModLoad('labCategories', 'user') &amp;&amp; $accountcid &gt; 0) {
        
        $accttypeidfield = pnModFunc('labCategories',
                             'user',
                             'modify',
                             array('cid' =&gt; $accountcid,
                                   'fieldname' =&gt; &quot;accttypeid&quot;,
                                   'newfieldname' =&gt; &quot;newaccttype&quot;,
                                   'verbiage' =&gt; &quot;Account Type&quot;,
                                   'defaultcid' =&gt; $account['accttypeid']));
                                   
        $row = array();
        $output-&gt;SetOutputMode(_PNH_RETURNOUTPUT);
        $row[] = $output-&gt;Text(_LAB_ACCOUNTTYPE);
        $row[] = $output-&gt;Text($accttypeidfield);
        $output-&gt;SetOutputMode(_PNH_KEEPOUTPUT);
        $output-&gt;TableAddrow($row, 'left');
    }
</pre>
Form handler function code:
<pre>
    if(!empty($newaccttype) &amp;&amp; pnModAPILoad('labCategories', 'admin')) {
        $accttypeid = pnModAPIFunc('labCategories', 'admin', 'create', array('name' =&gt; $newaccttype, 'parent_id' =&gt; pnModGetVar('labAccounting', 'accountcid')));
    }
</pre>[addsig] ]]></content:encoded>
<description>How to use in other modules (labAccounting example):
Form field:
&lt;pre&gt;
    $accountcid = pnModGetVar('labAccounting', 'accountcid');
    if(pnModLoad('labCategories', 'user') &amp;&amp; $accountcid &gt; 0) {
        
        $accttypeidfield = pnModFunc('labCategories',
                             'user',
                             'modify',
                             array('cid' =&gt; $accountcid,
                                   'fieldname' =&gt; &quot;accttypeid&quot;,
                                   'newfieldname' =&gt; &quot;newaccttype&quot;,
                                   'verbiage' =&gt; &quot;Account Type&quot;,
                                   'defaultcid' =&gt; $account['accttypeid']));
                                   
        $row = array();
        $output-&gt;SetOutputMode(_PNH_RETURNOUTPUT);
        $row[] = $output-&gt;Text(_LAB_ACCOUNTTYPE);
        $row[] = $output-&gt;Text($accttypeidfield);
        $output-&gt;SetOutputMode(_PNH_KEEPOUTPUT);
        $output-&gt;TableAddrow($row, 'left');
    }
&lt;/pre&gt;
Form handler function code:
&lt;pre&gt;
    if(!empty($newaccttype) &amp;&amp; pnModAPILoad('labCategories', 'admin')) {
        $accttypeid = pnModAPIFunc('labCategories', 'admin', 'create', array('name' =&gt; $newaccttype, 'parent_id' =&gt; pnModGetVar('labAccounting', 'accountcid')));
    }
&lt;/pre&gt;[addsig]</description>
<content:format rdf:resource="http://www.w3.org/1999/xhtml" />
</item>
<item>
<title>jscalendar in labCategories</title>
<link>http://www.miragelab.com/forums/topic/256</link>
<pubDate>Wed, 07 Apr 2004 07:12:00 GMT</pubDate>
<content:encoded><![CDATA[ An example use of this feature is as follows:
<pre>
    if(pnModLoad('labCategories', 'calendar')) {
        $row[] = pnModFunc('labCategories',
                        'calendar',
                        'make',
                        array('inputfield' =&gt; 'opendate',
                            'defaultdate' =&gt; $account['opendate'],
                            'triggerbutton' =&gt; '...'));
    } else {
        $row[] = $output-&gt;FormText('opendate', date(&quot;Y-m-d&quot;,strtotime($account['opendate'])), 20, 32);
    }
</pre>[addsig] ]]></content:encoded>
<description>An example use of this feature is as follows:
&lt;pre&gt;
    if(pnModLoad('labCategories', 'calendar')) {
        $row[] = pnModFunc('labCategories',
                        'calendar',
                        'make',
                        array('inputfield' =&gt; 'opendate',
                            'defaultdate' =&gt; $account['opendate'],
                            'triggerbutton' =&gt; '...'));
    } else {
        $row[] = $output-&gt;FormText('opendate', date(&quot;Y-m-d&quot;,strtotime($account['opendate'])), 20, 32);
    }
&lt;/pre&gt;[addsig]</description>
<content:format rdf:resource="http://www.w3.org/1999/xhtml" />
</item>
<item>
<title>what can labCategories do for a module?</title>
<link>http://www.miragelab.com/forums/topic/214</link>
<pubDate>Mon, 08 Dec 2003 07:43:00 GMT</pubDate>
<content:encoded><![CDATA[ It provides ordering capabilities where most proprietary category systems have none. If you access the module's admin page, you can change the sequence of categories among their own siblings, or even promote a category as a sibling of it's parent or a child of one of it's siblings.

labCategories also cuts down on the dev time for a new module. an advanced system is provided that all modules can (and may eventually) tie in to for simplicity.

you can also re-use the same category list between modules using labCategories such that any change to the list affects all associated modules. drastically reduces deployment time.[addsig] ]]></content:encoded>
<description>It provides ordering capabilities where most proprietary category systems have none. If you access the module's admin page, you can change the sequence of categories among their own siblings, or even promote a category as a sibling of it's parent or a child of one of it's siblings.

labCategories also cuts down on the dev time for a new module. an advanced system is provided that all modules can (and may eventually) tie in to for simplicity.

you can also re-use the same category list between modules using labCategories such that any change to the list affects all associated modules. drastically reduces deployment time.[addsig]</description>
<content:format rdf:resource="http://www.w3.org/1999/xhtml" />
</item>
<item>
<title>module resources</title>
<link>http://www.miragelab.com/forums/topic/212</link>
<pubDate>Mon, 08 Dec 2003 07:27:00 GMT</pubDate>
<content:encoded><![CDATA[ labCategories will be supported:

* here, for general public access to report bugs, fixes, usage, kudos, etc.
* by a module FAQ (premium user and client access)
* by the Trouble Ticket system for MirageLab (again, premium and client access only)
* with downloads available from MirageLab for registered users.
* in the MirageLab Module Library as a centralizing resource.[addsig] ]]></content:encoded>
<description>labCategories will be supported:

* here, for general public access to report bugs, fixes, usage, kudos, etc.
* by a module FAQ (premium user and client access)
* by the Trouble Ticket system for MirageLab (again, premium and client access only)
* with downloads available from MirageLab for registered users.
* in the MirageLab Module Library as a centralizing resource.[addsig]</description>
<content:format rdf:resource="http://www.w3.org/1999/xhtml" />
</item>
   </channel>
</rss>
