<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.8.0-dev (info@mypapit.net)" -->
<rss version="2.0"  xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Site Articles</title>
        <description><![CDATA[Site content updates and changes.]]></description>
        <link>http://rocketdms.co.nz/</link>
        <lastBuildDate>Sun, 20 May 2012 20:18:47 GMT</lastBuildDate>
        <generator>FeedCreator 1.8.0-dev (info@mypapit.net)</generator>
		<atom:link href="http://rocketdms.co.nz/index.php?option=com_ninjarsssyndicator&amp;feed_id=3&amp;format=raw" rel="self" type="application/rss+xml" />        <item>
            <title>Global Settings</title>
            <link>http://rocketdms.co.nz/index.php/component/content/article/902-technical/158-global-settings</link>
            <description><![CDATA[<p>&nbsp;</p><table border="0"> <tbody>  <tr><td>disable_commit_log</td><td>1 = Disable the log entry popup on commits.</td></tr>   <tr><td>allow_empty_commit_log</td><td>1 = Allow empty strings in the log entry popup.</td></tr>   <tr><td>autocapture_by_month</td><td>Date format string. If set autocapture will create folders based upon the resulting date string.</td></tr>  <tr><td>exclusive_open</td><td>1 = Enables the exclusive open mode. Without exclusive open standard behaviour is standard subversion with any working copies allowed to be open and edited. Merging is done by subversion.</td></tr>  <tr><td>exclusive_open_override</td><td>1 = If exclusive_open is enabled this option allows a user to open anyway but with a warning.</td></tr>  <tr><td>use_win_file_templates</td><td>1 = Include local windows PC installed file templates in the New  Document templates list. Without this option only use the contents of the configured templates folder.</td></tr>  <tr><td>wip_expire_days</td><td>n = Number of days after which work in progress on document open tracking is purged/ignored. System default is 7 days.</td></tr>     </tbody></table>]]></description>
            <author> mike@kereru.com (Mike Bennett)</author>
            <pubDate>Thu, 03 May 2012 01:27:10 GMT</pubDate>
            <guid isPermaLink="false">http://rocketdms.co.nz/index.php/component/content/article/902-technical/158-global-settings</guid>
        </item>
        <item>
            <title>Hints</title>
            <link>http://rocketdms.co.nz/index.php/component/content/article/913-plugins/157-hints</link>
            <description><![CDATA[<p>Use the PHP require() and include() functions. This will allow you to build entire apps in a third-party IDE instead of using the minimal built-in plugin editor.</p>]]></description>
            <author> mike@kereru.com (Mike Bennett)</author>
            <pubDate>Sat, 29 Oct 2011 03:05:12 GMT</pubDate>
            <guid isPermaLink="false">http://rocketdms.co.nz/index.php/component/content/article/913-plugins/157-hints</guid>
        </item>
        <item>
            <title>Function Reference</title>
            <link>http://rocketdms.co.nz/index.php/component/content/article/913-plugins/156-functions</link>
            <description><![CDATA[<p>There is a growing list of functions that are available for use within plugins. These provide hooks into existing RocketDMS code and functionality and can be used within any of your plugins. </p>  <hr width="100%" size="2" /><h4>plugin::add_pick_list($code,$list)   <font color="#FF9900"> [OBSOLETE, USE plugin::return_pick_list() instead] </font></h4> <p><strike>Create a pick list. This will be a 1-tiered combo with all items listed. </strike></p> <p><strike>Creates  and populates a pick-list for use in document tags. This function will  do the same thing that you can do via the Config program, Settings tab,  Document tags sub-tab. </strike></p><p><strike><br /></strike></p> <p><strike><strong>$code</strong> = String, Pick list code.</strike></p> <p><strike><strong>$list</strong> = Array, pick list contents :</strike></p>    <blockquote><pre><strike>$list = array();<br />foreach ( [some loop condition] ) {<br />	$list[] = array(<br />				'value'=>[value to store in document tag],<br />				'label'=>[value to display in pick list]<br />			);<br />}</strike><br /></pre> </blockquote><p> </p> <hr width="100%" size="2" /><h4>plugin::add_pick_list_grouped($code,$list)  <font color="#FF9900">[OBSOLETE, USE plugin::return_pick_list() instead] </font></h4> <p><strike>Create a grouped pick list. This will be a 2-tiered combo with all items grouped by the first character of the label. </strike></p> <p><strike>Creates and populates a pick-list for use in document tags. This function will do the same thing that you can do via the Config program, Settings tab, Document tags sub-tab. </strike></p> <p><strike><strong>$code</strong> = String, Pick list code.</strike></p> <p><strike><strong>$list</strong> = Array, pick list contents :</strike></p>   <blockquote><pre><strike>$list = array();<br />foreach ( [some loop condition] ) {<br />	$list[] = array(<br />				'value'=>[value to store in document tag],<br />				'label'=>[value to display in pick list]<br />			);<br />}</strike><br /></pre> </blockquote><p> </p> <hr width="100%" size="2" /><h4>plugin::alert($msg)</h4> <p>Message popup on the screen. User clicks OK to close the dialogue and continue.</p><p> </p><hr width="100%" size="2" /><h4>plugin::choose_file($caption,$path,$filter)</h4> <p>File open dialogue. Returns empty string on cancel.</p><p>Returns: String or FALSE if cancelled. </p><p> </p> <hr width="100%" size="2" /><h4>plugin::clear_pick_list($code)</h4> <p>Clears the contents from a pick list of the given $code.</p><p> </p> <hr width="100%" size="2" /><h4>plugin::debug()</h4> <p>Displays  debug information. Helpful for testing and development of plugins but  should be removed or commented out when not being used. Also triggered  by the Debug checkbox on the settings tab of the plugin workbench.</p><p> </p> <hr width="100%" size="2" /><h4>plugin::err($msg)</h4> <p>Creates a modal error message popup on the screen. User clicks OK to close the dialogue and continue.</p><p> </p> <hr width="100%" size="2" /><h4>plugin::explorer($file (optional))</h4> <p>Open a Windows explorer. If file specified then opens with that file selected.</p><p> </p> <hr width="100%" size="2" /><h4>plugin::file_list($path)</h4> <p>List of files in given path/folder.</p><p>Returns: Array </p><p> </p><hr width="100%" size="2" /><p><strong>plugin::folder_add($docstore_path,$folder)</strong></p><p>Add a new folder to the document store.</p><p><strong>$docstore_path</strong> = String, Full path to an existing folder in the document store. Starts with forward slash, all forward slashes. eg. <u>/Pikaia/Invoices</u></p><p><strong>$folder</strong> = String, Name of folder to add under the given $docstore_path.</p><p> </p><hr width="100%" size="2" /><p><strong>plugin::form($form_title, $fields, $field_size, $defaults, $comment,$types)</strong></p><p>Design and present a pop-up form to get input from the user. Returns an array of entered data. Very handy!</p><p><strong>$form_title</strong> = String, Title displayed in pop-up for window title bar.</p><p><strong>$fields</strong> = Array of strings listing all of the form field labels. The array order sets the order of the form fields.</p><p><strong>$field_size</strong> = Array of integers listing the size of each entry field.</p><p><strong>$defaults</strong> = (optional) Array of mixed default values for each form field.</p><p><strong>$types</strong> = (optional) Array of string giving the data type of each field. Can be on of 'string', 'password', 'checkbox'. Defaults to string.</p><p><strong>$comment</strong> = (optional) String of text to display on the form.</p><p>Returns: Array of FALSE if cancelled </p><p> Example:</p><blockquote><pre>$title = 'Credit while attending outside training/meeting.';<br /><br />$comment = "\n\nThis form is good for one class, one day, one time frame.\n<br />You will get credit for all training and incidents within the time frame you specified <br />for that given day.\n\nA separate form will be requird for multiples times in one-day <br />or multiple days in a month.\n\n";<br /><br />$fields = array(<br />			'Date of Attendance', <br />			'Time of Attendance (from)', <br />			'Time of Attendance (to)', <br />			'Type of Event', <br />			'Location', <br />			'Reason', <br />			'Name'<br />			);<br /><br />$size = array(80, 80, 80, 400, 400, 400, 400);<br />$defaults = array('','','','','','','');<br /><br />// Repeat until user cancels or we have validated input<br />while (TRUE) {<br /><br />    // Form displayed<br />    $data = plugin::form($title, $fields, $size, $defaults,$comment);<br /><br />    // Returns FALSE if cancelled<br />    if ( $data === FALSE ) {<br />        // exit<br />        return;<br />    }</pre><pre><br />    // Validate returned data<br />    $date = $data[0];<br />    $time_from = $data[1];<br />    $time_to = $data[2];<br />    $type = $data[3];<br />    $location = $data[4];<br />    $reason = $data[5];<br />    $name = $data[6];<br />    <br />    // Set defaults to what was entered by the user. <br />    //Ensures data that they entered is re-displyed for editing.<br />    $defaults = $data;<br />    <br />    if ( $date == '' ) {<br />        // Error message popup<br />        plugin::err('Date required');<br />        // Try again        <br />        continue;<br />    }</pre><pre><br />    // If we get to here then data is valid, break out of the loop<br />    break;<br /><br />}</pre><pre> </pre></blockquote><hr width="100%" size="2" /><strong>plugin::ini_read($var) </strong><p>Arbitrary settings or values that can be saved and read locally on user pc. Used to save individual user settings.</p><p>Returns: Mixed</p> <hr width="100%" size="2" /><h4>plugin::ini_write($var,$val)</h4> <p>Arbitrary settings or values that can be saved and read locally on user pc. Used to save individual user settings.</p><p> </p> <hr width="100%" size="2" /><h4>plugin::message($msg)</h4> <p>Creates a modal message popup on the screen. User clicks OK to close the dialogue and continue.</p><p> </p><hr width="100%" size="2" /><h4>plugin::return_pick_list($list)</h4> <p>Create a pick list. This will be a 1-tiered combo with all items listed. </p> <p>Creates   and populates a pick-list for use in document tags. </p><p>To use this feature: </p><ol><li>Save/Edit a copy of the plugin using the Plugin Workbench. On the Settings tab ensure that 'Run for pick lists' is checked.</li><li>Take a note of the plugin name.</li><li>Open the Configuration Program, Settings Tab, Document Tags sub-tab.</li><li>Select or add a document tag that will be a pick list.</li><li>In the Pick List frame select the 'Plugin' radio button.</li><li>Select this plugin in the 'Plugin Name' combo.</li><li>Save.</li></ol><p>You have now linked the plugin to that document tag. Whenever anyone edits the contents of that tag this plugin will be<br />called to generate a pick list of options that the user can choose from. </p><p><strong>$list</strong> = Array, pick list contents.</p><p>Example:</p><blockquote><pre>$list = array();<br />foreach ( [some loop condition] ) {<br />	$list[] = array(<br />				'value'=>[value to store in document tag],<br />				'label'=>[value to display in pick list]<br />			);<br />}<br /></pre> </blockquote><p> </p><hr width="100%" size="2" /><p><strong>plugin::set_order($list,$headings,$title,$win_name)</strong></p><p>Pop-up dialogue to display a list of items and let the user manually sort the list into any order.</p><p><strong>$list</strong> = Array of arrays . List of rows to sort. Each row may have multiple columns.</p><p><strong>$headings</strong> = (optional) Array of strings used as column headings.  </p><p><strong>$title</strong> = (optional) String for pop-up dialogue window title.</p><p><strong>$win_name</strong> = (optional) String used internally as an identifier for the pop-up. Used to save and restore pop-up window size and position.</p><p>Returns: Array or FALSE if cancelled. </p><p>Example:</p><blockquote><pre>$headings = array('Value','Size','Code');      // Defines number of columns<br />$list = array();<br />$list[] =  array('A',345,'c1');<br />$list[] =  array('B',2,'c99');<br />$list[] =  array('C',99,'c1');<br />$list[] =  array('D',99,'c1');<br />$list[] =  array('E',99,'c1');<br />$list[] =  array('F',99,'c1');<br />$list[] =  array('G',99,'c1');<br />$ordered_list = plugin::set_order($list,$headings,'Sort those arrays');<br /> <br /></pre></blockquote><p> </p> <hr width="100%" size="2" /><h4>plugin::setting_read($var)</h4> <p>Arbitrary settings or values that can be saved and read across <span style="text-decoration: underline">all users </span>and plugins. Can be used as a way of sending data between plugins. See also ini_read.</p><p>Returns: Mixed</p><p> </p> <hr width="100%" size="2" /><h4>plugin::setting_write($var,$val)</h4> <p>Arbitrary settings or values that can be saved and read across <span style="text-decoration: underline">all users </span>and plugins. Can be used as a way of sending data between plugins. See also ini_read.</p><p> </p><hr width="100%" size="2" /><p><strong>plugin::start_wait($cmd,$params)</strong></p><p>Shell command and wait for completion.</p><p><strong>$cmd</strong> = String command to run.</p><p><strong>$params</strong> = (optional) String command line parameters.</p><p> </p><hr width="100%" size="2" /><p><strong>plugin::start_no_wait($cmd,$params)</strong></p> <p>Shell command in background. Continue without waiting for completion.</p><p><strong>$cmd</strong> = String command to run.</p><p><strong>$params</strong> = (optional) String command line parameters.</p><p> </p> <hr width="100%" size="2" /><h4>plugin::string($title,$label,$prompt,$default,$err_msg,$width)</h4> <p>Get a string input from the user.</p><p>Returns: String</p><p> </p> <hr width="100%" size="2" /><h4>plugin::yes_no($question,$caption)</h4> <p>Ask user a Yes/No question. Returns TRUE/FALSE..</p> <p>Returns: TRUE|FALSE</p><p> </p><hr width="100%" size="2" /> <p> </p>]]></description>
            <author> mike@kereru.com (Mike Bennett)</author>
            <pubDate>Sat, 29 Oct 2011 03:03:53 GMT</pubDate>
            <guid isPermaLink="false">http://rocketdms.co.nz/index.php/component/content/article/913-plugins/156-functions</guid>
        </item>
        <item>
            <title>Examples</title>
            <link>http://rocketdms.co.nz/index.php/component/content/article/913-plugins/155-examples</link>
            <description><![CDATA[<hr width="100%" size="2" /><h3>Hello World</h3> <p>Copy this into the <u>Plugin PHP Script</u> area. </p> <pre>echo "Hello world"; <br /> </pre> <p>Click on the Run/Test button.  </p><p> You should see <u>Hello world</u> displayed in the console area. </p> <p> Now include the plugin::debug() funciton to see debug informaiton  and a list of data that is available to use in your plugins. </p> <pre> <br />plugin::debug(); <br />echo "Hello world"; <br /> </pre>  <p> Click on the Run/Test button. </p> <p> You will now see the debugger pop-up window. The <u>Input</u> section contains values that you can copy and paste into your plugin. </p><hr width="100%" size="2" /><h3>Using Supplied Values</h3> <p>There is a PHP array , $p, made available to all plugins. This array  will contain data and document information that can be used by the  plugins. Use the <strong>plugin::debug()</strong> function to see the $p array contents.  Here is an example plugin that uses some of the supplied values from the debugger pop-up and displays them in a pop-up message.</p> <pre> <br />$msg = "Database DSN : ".$p['dsn']."\n\n"; $msg .= "My briefcase is folder : ".$p['briefcase']['root']; <br />plugin::message($msg); <br /> </pre> <p> </p> <p> Click on the Run/Test button. </p><p> </p><hr width="100%" size="2" /><h3>Populate a Pick List</h3><p> </p><pre>echo "Populating pick list : ".$p['plugin']['params']['selection_code']."\n";</pre><pre>// Array of pick list (selection) contents.<br />$pick_list = array();<br />$pick_list[] = array('value'=>'mike','label'=>'Mike');<br />$pick_list[] = array('value'=>'sally','label'=>'Sally');<br />$pick_list[] = array('value'=>'george','label'=>'George');<br />$pick_list[] = array('value'=>'mary','label'=>'Mary');<br /><br />// Replace the pick list contents<br />plugin::return_pick_list($pick_list);</pre><p> </p><hr width="100%" size="2" /><h3>More Examples ....<br /></h3><p>Download and import these into your plugin workbench. There you can modify and experiment with these examples.</p><p><a href="http://rocketdms.co.nz/index.php/downloads?func=download&fileid=11">Hello World PHP Gtk</a> : How to open a window.</p><p><a href="http://rocketdms.co.nz/index.php/downloads?func=download&fileid=12">Message of the Day</a> : Display a message to all users when they first start the RocketDMS program.</p><p><a href="http://rocketdms.co.nz/index.php/downloads?func=download&fileid=13">Simple Form</a> : Pop-up window with a form to get user input.</p><p><a href="http://rocketdms.co.nz/index.php/downloads?func=download&fileid=14">Restrict Folders </a>:  Illustrates how to restrict the running of plugins to certain document store folders.</p><p><a href="http://rocketdms.co.nz/index.php/downloads?func=download&fileid=15">Calculator in Toolbar</a> :  User selects their own calculator program. Calculator tool added to document list toolbar.</p><p> </p><p> </p><hr width="100%" size="2" />]]></description>
            <author> mike@kereru.com (Mike Bennett)</author>
            <pubDate>Sat, 29 Oct 2011 03:02:45 GMT</pubDate>
            <guid isPermaLink="false">http://rocketdms.co.nz/index.php/component/content/article/913-plugins/155-examples</guid>
        </item>
        <item>
            <title>Controls</title>
            <link>http://rocketdms.co.nz/index.php/component/content/article/913-plugins/154-controls</link>
            <description><![CDATA[<ul> <li>New : Reset the Plugin workbench to develop a new plugin.</li> <li>Open : Open and load an existing plugin from the RocketDMS database for editing and testing.</li> <li>Save : Save open plugin back to the RocketDMS database.</li> <li>Delete : Delete the currently loaded plugin.</li> <li>Run/Test : Run the plugin. Also see the <strong>plugin::debug()</strong> function below.</li> <li>Save-as File : Save a copy of the plugin source code into a file.</li> <li>Open File : Load plugin source code from a local file.</li> <li>Export : Export the plugin and all settings for the plugin to an 'Atom' file. These are used for backup, distributing and sharing plugins.</li> <li>Import : Import a plugin form an 'Atom' file.</li> </ul>]]></description>
            <author> mike@kereru.com (Mike Bennett)</author>
            <pubDate>Sat, 29 Oct 2011 03:01:06 GMT</pubDate>
            <guid isPermaLink="false">http://rocketdms.co.nz/index.php/component/content/article/913-plugins/154-controls</guid>
        </item>
        <item>
            <title>References and Links</title>
            <link>http://rocketdms.co.nz/index.php/component/content/article/913-plugins/153-references-and-links</link>
            <description><![CDATA[<p><a href="http://www.php.net/docs.php" target="_blank">PHP User Guide</a> : PHP Manuals and reference.</p> <p><a href="http://gtk.php.net/docs.php" target="_blank">PHP-GTK User Guide</a> : PHP-GTK Reference.</p> <p><a href="http://www.kksou.com/php-gtk2/sample-codes/" target="_blank">PHP-GTK Cookbook Samples</a> : Many examples of php-gtk scripts. These examples can be pasted as-is as a RocketDMS plugin.</p>]]></description>
            <author> mike@kereru.com (Mike Bennett)</author>
            <pubDate>Fri, 28 Oct 2011 22:02:52 GMT</pubDate>
            <guid isPermaLink="false">http://rocketdms.co.nz/index.php/component/content/article/913-plugins/153-references-and-links</guid>
        </item>
        <item>
            <title>Overview</title>
            <link>http://rocketdms.co.nz/index.php/component/content/article/913-plugins/152-overview</link>
            <description><![CDATA[<p>Plugins allow your own programmers to add and modify RocketDMS functionality. Plugins are PHP scripts that you can create.</p> <p>Plugins make a PHP5 interpreter along with the complete PHP-GTK2 gui programming environment available to you.</p> <p>The scope for extending and customising RocketDMS is vast.</p> <p><span style="font-weight: bold">PHP</span> is the programming language used for RocketDMS. All plugins are to be written in PHP. To write plugins in other languages create a small PHP wrapper to run your plugin in a shell.</p> <p><span style="font-weight: bold">PHP-GTK</span> is a binding of PHP to the <a href="http://www.gtk.org/" target="_blank">GTK libraries</a>. All PHP-GTK functions are avalable to your plugins. This allows you to build GUI plugins and forms.</p>]]></description>
            <author> mike@kereru.com (Mike Bennett)</author>
            <pubDate>Fri, 28 Oct 2011 22:01:22 GMT</pubDate>
            <guid isPermaLink="false">http://rocketdms.co.nz/index.php/component/content/article/913-plugins/152-overview</guid>
        </item>
        <item>
            <title>Introduction</title>
            <link>http://rocketdms.co.nz/index.php/component/content/article/913-plugins/151-introduction</link>
            <description><![CDATA[<p>The RocketDMS plugin system very powerful. If you know  the basics of programming with the PHP programming language then you should have no trouble extending the functionality of RocketDMS yourself. </p> <p> This system also gives us the ability to customise RocketDMS for you. We can do  this very inexpensively as we do not need to re-compile or re-distribute new program versions to do this. Contact <a href="http://rocketdms.co.nz/mailto:mike@rocketdms.co.nz">mike@rocketdms.co.nz</a> </p>]]></description>
            <author> mike@kereru.com (Mike Bennett)</author>
            <pubDate>Fri, 28 Oct 2011 22:00:04 GMT</pubDate>
            <guid isPermaLink="false">http://rocketdms.co.nz/index.php/component/content/article/913-plugins/151-introduction</guid>
        </item>
        <item>
            <title>User Install and Training</title>
            <link>http://rocketdms.co.nz/index.php/user-install-training</link>
            <description><![CDATA[<h2>Installation</h2><p>Remote or on-site installation.We will install and configure the user RocketDMS program on their PC. </p><p>For remote installation our <a href="http://rocketdms.co.nz/index.php/remote-support" target="_blank">remote support program</a>  must be able to run on the PC being installed and connect to our  server.  This program makes a single outgoing connection on TCP port  5602. Alternatively you can choose and supply your own desktop sharing  system. </p><p>For on-site installation you must cover reasonable travel and accommodation costs.   </p><h2>Training</h2><p>Training is a one hour course for up to 3 users at a time using a shared desktop PC and voice. Each course can be tailored for your organisation. At the end of the course each user will be able to use all of the main features of RocketDMS with confidence.</p><p>Does not include communication costs such as phone calls and desktop sharing systems. </p><h2>Support </h2><p>Users (or a technical support person on behalf of that user) may contact us at any time with questions problems, big or small. We will raise a support ticket and make sure that the issue is resolved as quickly as we can. </p><p>The support packages gives you <u>3 tickets a calendar month</u>.  </p><p> </p>]]></description>
            <author> mike@kereru.com (Mike Bennett)</author>
            <pubDate>Sun, 03 Apr 2011 20:57:46 GMT</pubDate>
            <guid isPermaLink="false">http://rocketdms.co.nz/index.php/user-install-training</guid>
        </item>
        <item>
            <title>Document Store In The Cloud</title>
            <link>http://rocketdms.co.nz/index.php/docstore-in-cloud</link>
            <description><![CDATA[<p>Make your life easier.</p><p>No document store or database setup. Subscribe to our cloud service and we will supply you with a document store server via the Internet.</p>]]></description>
            <author> mike@kereru.com (Mike Bennett)</author>
            <pubDate>Sun, 03 Apr 2011 20:57:46 GMT</pubDate>
            <guid isPermaLink="false">http://rocketdms.co.nz/index.php/docstore-in-cloud</guid>
        </item>
    </channel>
</rss>

