123 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			HTML
		
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			HTML
		
	
	
	
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 | |
| <html>
 | |
| <head>
 | |
|   <title>Module HowTo - Advanced upload options</title>
 | |
|   <link rel="stylesheet" type="text/css" href="style/layout.css">
 | |
| </head>
 | |
| <body>
 | |
| <div style="text-align: center;">
 | |
| <h1>Module HowTo - Advanced upload options<br>
 | |
| </h1>
 | |
| <div style="text-align: left;"><br>
 | |
| The <span style="font-style: italic;">ieee802Device</span> module only
 | |
| needs the basic upload functions for its functionality.<br>
 | |
| However there are more possibilities for the modules to control the
 | |
| file upload.<br>
 | |
| </div>
 | |
| <div style="text-align: left;"><br>
 | |
| <h2>1. Module order<br>
 | |
| </h2>
 | |
| Your module might depend on the input values of another module. In this
 | |
| case you probably want that your module is called as the second one.<br>
 | |
| <br>
 | |
| You can define dependencies to other modules with the function <span
 | |
|  style="font-weight: bold;">get_uploadPreDepends()</span> or <span
 | |
|  style="font-weight: bold;">meta['upload_preDepends']</span>.<br>
 | |
| <br>
 | |
| <span style="font-weight: bold; text-decoration: underline;">Example:</span><br
 | |
|  style="font-weight: bold; text-decoration: underline;">
 | |
| <br>
 | |
| The <span style="font-style: italic;">sambaGroupMapping</span> module
 | |
| needs the group name to set the default <span
 | |
|  style="font-style: italic;">displayName</span>. Therefore it depends
 | |
| on the <span style="font-style: italic;">posixGroup</span> module<br>
 | |
| <br>
 | |
| <table style="width: 100%; text-align: left;" class="mod-code"
 | |
|  border="0" cellpadding="2" cellspacing="2">
 | |
|   <tbody>
 | |
|     <tr>
 | |
|       <td style="vertical-align: top;">    /**<br>
 | |
|     * Returns meta data that is interpreted by parent
 | |
| class<br>
 | |
|     *<br>
 | |
|     * @return array array with meta data<br>
 | |
|     */<br>
 | |
|    <span style="font-weight: bold;"> function</span>
 | |
| get_metaData() {<br>
 | |
|         $return = array();<br>
 | |
|         // upload dependencies<br>
 | |
|         $return[<span
 | |
|  style="color: rgb(255, 0, 0);">'upload_preDepends'</span>] =
 | |
| array('posixGroup');<br>
 | |
|         [...]<br>
 | |
|       </td>
 | |
|     </tr>
 | |
|   </tbody>
 | |
| </table>
 | |
| <br>
 | |
| <br>
 | |
| <h2>2. Upload post actions<br>
 | |
| </h2>
 | |
| If your module does not only create an account but relates the account
 | |
| with other existing LDAP entries you can do these modifications after
 | |
| the account was created.<br>
 | |
| This is useful for adding users to groups or setting quotas.<br>
 | |
| <br>
 | |
| You have to implement the function <span style="font-weight: bold;">doUploadPostActions()</span>
 | |
| in your module. Since post actions are very special there is no <span
 | |
|  style="font-style: italic;">meta data</span> for this.<br>
 | |
| <br>
 | |
| <span style="font-weight: bold; text-decoration: underline;">Example:</span><br
 | |
|  style="font-weight: bold; text-decoration: underline;">
 | |
| <br>
 | |
| The <span style="font-style: italic;">posixAccount</span> module
 | |
| offers to put the user account in additional groups. This is done in
 | |
| the post actions.<br>
 | |
| <br>
 | |
| <table style="width: 100%; text-align: left;" class="mod-code"
 | |
|  border="0" cellpadding="2" cellspacing="2">
 | |
|   <tbody>
 | |
|     <tr>
 | |
|       <td style="vertical-align: top;">    /**<br>
 | |
|     * This function executes one post upload action.<br>
 | |
|     *<br>
 | |
|     * @param array $data array containing one account in
 | |
| each element<br>
 | |
|     * @param array $ids array(<column_name> =>
 | |
| <column number>)<br>
 | |
|     * @param array $failed list of accounts which were
 | |
| not created successfully<br>
 | |
|     * @param array $temp variable to store temporary
 | |
| data between two post actions<br>
 | |
|     * @return array current status<br>
 | |
|     * <br> array (<br>
 | |
|     * <br>  'status' => 'finished' |
 | |
| 'inProgress'<br>
 | |
|     * <br>  'progress' => 0..100<br>
 | |
|     * <br>  'errors' => array (<array
 | |
| of parameters for StatusMessage>)<br>
 | |
|     * <br> )<br>
 | |
|     */<br>
 | |
|     <span style="font-weight: bold;">function</span> <span
 | |
|  style="color: rgb(255, 0, 0);">doUploadPostActions</span>($data, $ids,
 | |
| $failed, &$temp) {<br>
 | |
|          [...]<br>
 | |
|     }<br>
 | |
|       </td>
 | |
|     </tr>
 | |
|   </tbody>
 | |
| </table>
 | |
| <br>
 | |
| Please make sure that the actions in one call of <span
 | |
|  style="font-weight: bold;">doUploadPostActions()</span> are not very
 | |
| time consuming (only one LDAP operation). Your function will be called
 | |
| repeatedly until you give back the status "finished".<br>
 | |
| This allows LAM to avoid running longer than the maximum execution time
 | |
| by sending meta refreshes to the browser.<br>
 | |
| <span style="font-weight: bold;"></span>
 | |
| <h2><span style="font-weight: bold;"></span></h2>
 | |
| </div>
 | |
| </div>
 | |
| </body>
 | |
| </html>
 |