2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< ? php  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  This  class  will  render  the  creation  or  editing  of  an  LDAP  entry . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ author  The  phpLDAPadmin  development  team 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ package  phpLDAPadmin 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  TemplateRender  class 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ package  phpLDAPadmin 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ subpackage  Templates 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  TemplateRender  extends  PageRender  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# Page number
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									private  $pagelast ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** CORE FUNCTIONS **/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  Initialise  and  Render  the  TemplateRender 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									public  function  accept ( $norender = false )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s:%s</font><br />' , time (), __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP || DEBUGTMPSUB )  printf ( '<font size=-2>* %s [Visit-Start:%s]</font><br />' , __METHOD__ , get_class ( $this )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$tree  =  get_cached_item ( $this -> server_id , 'tree' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( !  $tree ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$tree  =  Tree :: getInstance ( $this -> server_id ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$treeitem  =  $tree -> getEntry ( $this -> dn ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# If we have a DN, and no template_id, see if the tree has one from last time
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $this -> dn  &&  is_null ( $this -> template_id )  &&  $treeitem  &&  $treeitem -> getTemplate ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> template_id  =  $treeitem -> getTemplate (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# Check that we have a valid template, or present a selection
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# @todo change this so that the modification templates rendered are the ones for the objectclass of the dn.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( !  $this -> template_id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> template_id  =  $this -> getTemplateChoice (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $treeitem ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$treeitem -> setTemplate ( $this -> template_id ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> page  =  get_request ( 'page' , 'REQUEST' , false , 1 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $this -> template_id )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( !  $this -> template ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												parent :: accept (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> url_base  =  sprintf ( 'server_id=%s&dn=%s' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$this -> getServerID (), $this -> template -> getDNEncode ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> layout [ 'hint' ]  =  sprintf ( '<td class="icon"><img src="%s/light.png" alt="%s" /></td><td colspan="3"><span class="hint">%%s</span></td>' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												IMGDIR , _ ( 'Hint' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> layout [ 'action' ]  =  '<td class="icon"><img src="%s/%s" alt="%s" /></td><td><a href="cmd.php?%s" title="%s">%s</a></td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> layout [ 'actionajax' ]  =  '<td class="icon"><img src="%s/%s" alt="%s" /></td><td><a href="cmd.php?%s" title="%s" onclick="return ajDISPLAY(\'BODY\',\'%s\',\'%s\');">%s</a></td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											# If we dont want to render this template automatically, we'll return here.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( $norender ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> visitStart (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											foreach  ( $this -> template -> getAttributes ( true )  as  $attribute )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												# Evaluate our defaults
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( $attribute -> getAutoValue ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$this -> get ( 'Default' , $attribute , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$this -> template -> getContainer ()  ?  $this -> template -> getContainer ()  :  $this -> getServer () -> getContainerPath ( $this -> template -> getDN ()), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														'autovalue' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												# If this is the default template, we should mark all our attributes to show().
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  (( $this -> template -> getID ()  ==  'none' )  &&  ( !  $attribute -> isInternal ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													&&  (( $this -> template -> getContext ()  ==  'edit'  &&  $this -> template -> getID ()  ==  'none' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														||  ( $this -> template -> getContext ()  ==  'create'  &&  $attribute -> getName ()  !=  'objectclass' ))) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$attribute -> show (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( DEBUGTMP || DEBUGTMPSUB )  printf ( '<font size=-2>* %s [Visit-End:%s]</font><br />' , __METHOD__ , get_class ( $this )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> visitEnd (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  getDefaultAttribute ( $attribute , $container , $type )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										switch  ( $type )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'autovalue' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$autovalue  =  $attribute -> getAutoValue (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'helpervalue' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$autovalue  =  $attribute -> getHelperValue (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											default : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												system_message ( array ( 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-08 08:29:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													'title' => ( 'Unknown Default Attribute context' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													'body' => sprintf ( '%s (<b>%s</b>)' ,( 'A call was made to getDefaultAttribute() with an unkown context' ), $type ), 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
													'type' => 'warn' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$args  =  explode ( ';' , $autovalue [ 'args' ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$server  =  $this -> getServer (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$vals  =  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										switch  ( $autovalue [ 'function' ])  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  Function  enables  normal  PHP  functions  to  be  called  to  evaluate  a  value . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  eg :  = php . Function ( date ; dmY ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  All  arguments  will  be  passed  to  the  function ,  and  its  value  returned . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  If  this  used  used  in  a  POST  context ,  the  attribute  values  can  be  used  as  arguments . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  Mandatory  Arguments : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  *  arg  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *    -  php  Function  to  call 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  Additional  arguments  will  be  passed  to  the  function . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'Function' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$function  =  array_shift ( $args ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( count ( $args )  &&  count ( $args )  >  1 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													system_message ( array ( 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-08 08:29:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
														'title' => ( 'Too many arguments' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														'body' => sprintf ( '%s (<b>%s</b>)' ,( 'Function() only takes two arguments and more than two were specified' ), count ( $args )), 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
														'type' => 'warn' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$function_args  =  explode ( ',' , $args [ 0 ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( function_exists ( $function )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$vals  =  call_user_func_array ( $function , $function_args ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													system_message ( array ( 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-08 08:29:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
														'title' => ( 'Function doesnt exist' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														'body' => sprintf ( '%s (<b>%s</b>)' ,( 'An attempt was made to call a function that doesnt exist' ), $function ), 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
														'type' => 'warn' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  GetNextNumber  will  query  the  LDAP  server  and  calculate  the  next  number  based  on  the  query 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  eg :  <! [ CDATA [ = php . GetNextNumber ( / ; gidNumber ; false ;( & ( objectClass = posixGroup )); * 2 , + 1000 )]] > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  Mandatory  Arguments : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  *  arg  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *    -  " $ "  =>  'auto_number' , 'search_base'  in  config  file 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *    -  " / " , " . " , " .. "  =>  get  container  parent  as  usual 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  *  arg  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *    -  attribute  to  query  for 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  Optional  Arguments : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  *  arg  2  ( pool  mechanism  only ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *    -  " true "  increments  attribute  by  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *    -  " false "  do  nothing 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  *  arg  3  ( pool  mechanism  only ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *    -  ldap  filter  ( must  match  one  entry  only  in  container ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  *  arg  4 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *    -  calculus  on  number ,  eg : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *    -  * 2 , + 1000  =>  number  =  ( 2 * number )  +  1000 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  *  arg  5 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *    -  Min  number 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'GetNextNumber' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												# If the attribute already has values, we'll return
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( $type  ==  'autovalue'  &&  $attribute -> getValues ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( $args [ 0 ]  ==  '$' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$args [ 0 ]  =  $server -> getValue ( $this -> server_id , 'auto_number' , 'search_base' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$container  =  $server -> getContainerPath ( $container , $args [ 0 ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$vals  =  get_next_number ( $container , $args [ 1 ], 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													( !  empty ( $args [ 2 ])  &&  ( $args [ 2 ]  ==  'false' ))  ?  false  :  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													( !  empty ( $args [ 3 ]))  ?  $args [ 3 ]  :  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													( !  empty ( $args [ 5 ]))  ?  $args [ 5 ]  :  null ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												# Operate calculus on next number.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( !  empty ( $args [ 4 ]))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$mod  =  explode ( ',' , $args [ 4 ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$next_number  =  $vals ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													foreach  ( $mod  as  $calc )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$operand  =  $calc { 0 }; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$operator  =  substr  ( $calc , 1 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														switch  ( $operand )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															case  '*' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																$next_number  =  $next_number  *  $operator ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															case  '+' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																$next_number  =  $next_number  +  $operator ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															case  '-' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																$next_number  =  $next_number  -  $operator ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															case  '/' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																$next_number  =  $next_number  /  $operator ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$vals  =  $next_number ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  PickList  will  query  the  LDAP  server  and  provide  a  select  list  of  values 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  MultiList  will  query  the  LDAP  server  and  provide  a  multi  select  list  of  values 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  eg :  <! [ CDATA [ = php . MultiList ( / ;( objectClass = posixAccount ); uid )]] > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  eg :  <! [ CDATA [ = php . MultiList ( / ;( & ( objectClass = posixAccount )( uid = groupA * )); uid ; % cn / U %  ( % gidNumber % ); memberUid ; dmdName = users ; root  =>  cn = root , nobody  =>  cn = nobody ; gidNumber ; 10 )]] > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  Mandatory  Arguments : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  *  arg  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *    -  container ,  to  query  from  current  position 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *    -  " / " , " . " , " .. "  =>  get  container  parent  as  usual 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  *  arg  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *    -  LDAP  filter .  May  include  '%attr%' ,  it  will  be  expanded . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  *  arg2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *    -  list  attribute  key 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  Optional  Arguments : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  *  arg3 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *    -  select  display  ( plus  modifier  / C :  Capitalize ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *    -  replaced  by  % arg  2 %  if  not  given 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  *  arg  4 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *    -  the  value  furnished  in  output  -  must  be  attribute  id .  replaced  by  arg  2  if  not  given 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  *  arg  5 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *    -  container  override 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  *  arg  6 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *    -  csv  list  (,  separator )  of  added  values .  syntax :  key  =>  display_attribute = value ,  key ... 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  *  arg  7 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *    -  csv  list  (,  separator )  of  sort  attributes  ( less  to  more  important ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  *  arg  8  ( for  MultiList ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *    -  size  of  displayed  list  ( default :  10  lines ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'MultiList' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'PickList' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												# arg5 overrides our container
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( empty ( $args [ 5 ])) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$container  =  $server -> getContainerPath ( $container , $args [ 0 ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$container  =  $args [ 5 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												# Process filter (arg 1), eventually replace %attr% by it's value set in a previous page.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												preg_match_all ( '/%(\w+)(\|.+)?(\/[lUC])?%/U' , $args [ 1 ], $filtermatchall ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												//print_r($matchall); // -1 = highlevel match, 1 = attr, 2 = subst, 3 = mod
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( isset ( $_REQUEST [ 'form' ]))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$formvalues  =  array_change_key_case ( $_REQUEST [ 'form' ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													foreach  ( $filtermatchall [ 1 ]  as  $arg )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$value  =  $formvalues [ strtolower ( $arg )]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$args [ 1 ]  =  preg_replace ( " /%( $arg )( \ |.+)?( \ /[lU])?%/U " , $value , $args [ 1 ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( empty ( $args [ 3 ])) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$args [ 3 ]  =  " % { $args [ 2 ] } % " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												preg_match_all ( '/%(\w+)(\|.+)?(\/[lUC])?%/U' , $args [ 3 ], $matchall ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												//print_r($matchall); // -1 = highlevel match, 1 = attr, 2 = subst, 3 = mod
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$attrs  =  array_unique ( array_merge ( $matchall [ 1 ], array ( $args [ 2 ]))); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												# arg7 is sort attributes
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( isset ( $args [ 7 ]))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$sort_attrs  =  explode ( ',' , $args [ 7 ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$attrs  =  array_unique ( array_merge ( $attrs , $sort_attrs )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$picklistvalues  =  return_ldap_hash ( $container , $args [ 1 ], $args [ 2 ], $attrs ,( isset ( $args [ 7 ])  &&  ( $args [ 7 ]))  ?  $sort_attrs  :  false ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												# arg6 is a set of fixed values to add to search result
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( isset ( $args [ 6 ]))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$fixedvalues  =  explode ( ',' , $args [ 6 ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													foreach  ( $fixedvalues  as  $fixedvalue )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														if  ( empty ( $fixedvalue )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															continue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$fixedvalue  =  preg_split ( '/=\>/' , $fixedvalue ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$displayvalue  =  explode ( '=' , $fixedvalue [ 1 ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$newvalue [ trim ( $fixedvalue [ 0 ])]  =  array ( $args [ 2 ] => trim ( $fixedvalue [ 0 ]), trim ( $displayvalue [ 0 ]) => trim ( $displayvalue [ 1 ])); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$picklistvalues  =  array_merge ( $picklistvalues , $newvalue ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$vals  =  array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												foreach  ( $picklistvalues  as  $key  =>  $values )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$display  =  $args [ 3 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													foreach  ( $matchall [ 1 ]  as  $key  =>  $arg )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														if  ( isset ( $values [ $arg ])) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															$disp_val  =  $values [ $arg ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															$disp_val  =  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														if  ( is_array ( $disp_val )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															$disp_val  =  $disp_val [ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														if  ( $matchall [ 3 ][ $key ]) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															switch  ( $matchall [ 3 ][ $key ])  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																case  '/l' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																# lowercase
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																	if  ( function_exists ( 'mb_convert_case' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																		$disp_val  =  mb_convert_case ( $disp_val , MB_CASE_LOWER , 'utf-8' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																	else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																		$disp_val  =  strtolower ( $disp_val ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																	break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																case  '/U' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																# uppercase
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																	if  ( function_exists ( 'mb_convert_case' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																		$disp_val  =  mb_convert_case ( $disp_val , MB_CASE_UPPER , 'utf-8' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																	else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																		$disp_val  =  strtoupper ( $disp_val ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																		break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																case  '/C' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																# capitalize
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																	if  ( function_exists ( 'mb_convert_case' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																		$disp_val  =  mb_convert_case ( $disp_val , MB_CASE_TITLE , 'utf-8' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																	else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																		$disp_val  =  ucfirst ( $disp_val ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																	break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																default : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																	break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														# make value a substring of
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														preg_match_all ( '/^\|([0-9]*)-([0-9]*)$/' , trim ( $matchall [ 2 ][ $key ]), $substrarray ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														if  (( isset ( $substrarray [ 1 ][ 0 ])  &&  $substrarray [ 1 ][ 0 ])  ||  ( isset ( $substrarray [ 2 ][ 0 ])  &&  $substrarray [ 2 ][ 0 ]))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															$begin  =  $substrarray [ 1 ][ 0 ]  ?  $substrarray [ 1 ][ 0 ]  :  '0' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															$end  =  $substrarray [ 2 ][ 0 ]  ?  $substrarray [ 2 ][ 0 ]  :  strlen ( $disp_val ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															if  ( function_exists ( 'mb_substr' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																$disp_val  =  mb_substr ( $disp_val , $begin , $end , 'utf-8' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																$disp_val  =  substr ( $disp_val , $begin , $end ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$display  =  preg_replace ( " /%( $arg )( \ |.+)?( \ /[lUC])?%/U " , $disp_val , $display ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													if  ( !  isset ( $picklist [ $values [ $args [ 2 ]]]))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$vals [ $values [ $args [ 2 ]]]  =  $display ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$picklist [ $values [ $args [ 2 ]]]  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  PasswordEncryptionTypes  will  return  a  list  of  our  support  password  encryption  types 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  eg :  = php . PasswordEncryptionTypes () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  This  function  doesnt  use  any  arguments 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'PasswordEncryptionTypes' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$vals  =  password_types (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  RandomPassword  will  create  a  random  password  for  the  value . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  eg :  = php . RandomPassword () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  When  calling  the  attribute  Javascript  it  will  generate  a  random  password . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 *  This  function  doesnt  use  any  arguments 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'RandomPassword' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										switch  ( $type )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'autovalue' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( !  is_array ( $vals )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$attribute -> autoValue ( array ( $vals )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$attribute -> autoValue ( $vals ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'helpervalue' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												return  $vals ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  Set  the  mode  of  the  TemplateRender 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  Applicable  modes  are  " create "  or  " edit " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  getMode ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $this -> dn ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  'modification' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										elseif  ( $this -> container ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  'creation' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										elseif  ( get_request ( 'create_base' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  'creation' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_dump_backtrace ( sprintf ( 'Unknown mode for %s' , __METHOD__ ), 1 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  Return  the  container  for  this  mode 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  getModeContainer ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										switch  ( $this -> getMode ())  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'creation' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												return  $this -> container ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'modification' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												return  $this -> dn ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											default : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												return  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  Is  the  default  template  enabled ? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  haveDefaultTemplate ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $_SESSION [ APPCONFIG ] -> getValue ( 'appearance' , 'disable_default_template' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  Present  a  list  of  available  templates  for  creating  and  editing  LDAP  entries 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawTemplateChoice ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> drawTitle (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> drawSubTitle (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										switch  ( $this -> getMode ())  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'creation' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$msg  =  _ ( 'Select a template for the creation process' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'modification' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$msg  =  _ ( 'Select a template to edit the entry' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$avail_templates  =  $this -> getTemplates (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$templates  =  $avail_templates -> getTemplates ( $this -> getMode (), $this -> getModeContainer ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<h3 style="text-align: center;">%s</h3>' , $msg ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$href_parms  =  array_to_query_string ( $_GET , array ( 'meth' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<form id="template_choice_form" action="cmd.php?%s" method="post">' , htmlspecialchars ( $href_parms )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( count ( $_POST ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<div>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											foreach  ( $_POST  as  $p  =>  $v ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												printf ( '<input type="hidden" name="%s" value="%s" />' , $p , $v ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '</div>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  " \n \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<table class="forminput" width="100%" border="0">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<td class="heading" style="vertical-align: top">%s:</td>' , _ ( 'Templates' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<table>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$i  =  - 1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$nb_templates  =  count ( $templates ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $this -> haveDefaultTemplate ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$nb_templates ++ ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										foreach  ( $templates  as  $name  =>  $details )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$i ++ ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$isInValid  =  $details -> isInValid (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											# Balance the columns properly
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  (( $nb_templates  %  2  ==  0  &&  $i  ==  intval ( $nb_templates  /  2 ))  || 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												( $nb_templates  %  2  ==  1  &&  $i  ==  intval ( $nb_templates  /  2 )  +  1 ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												echo  '</table></td><td><table>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( $isInValid ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												printf ( '<td class="icon"><img src="%s/disabled.png" alt="Disabled" /></td>' , IMGDIR ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( isAjaxEnabled ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													printf ( '<td><input type="radio" name="template" value="%s" id="%s" onclick="return ajDISPLAY(\'BODY\',\'%s&template=%s\',\'%s\');" /></td>' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														htmlspecialchars ( $details -> getID ()), htmlspecialchars ( $details -> getID ()), htmlspecialchars ( $href_parms ), $details -> getID (), str_replace ( '\'' , '\\\'' , _ ( 'Retrieving DN' ))); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													printf ( '<td><input type="radio" name="template" value="%s" id="%s" onclick="document.getElementById(\'template_choice_form\').submit()" /></td>' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														htmlspecialchars ( $details -> getID ()), htmlspecialchars ( $details -> getID ())); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<td class="icon"><label for="%s"><img src="%s" alt="" /></label></td>' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $details -> getID ()), $details -> getIcon ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<td class="label"><label for="%s">' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $details -> getID ())); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( $isInValid ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												printf ( '<span id="%s" style="color: gray"><acronym title="%s">' , htmlspecialchars ( $details -> getID ()), _ ( $isInValid )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  _ ( $details -> getTitle ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( $isInValid ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												echo  '</acronym></span>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '</label></td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '</tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# Default template
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $this -> haveDefaultTemplate ())  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$i ++ ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											# Balance the columns properly
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  (( $nb_templates  %  2  ==  0  &&  $i  ==  intval ( $nb_templates  /  2 ))  || 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												( $nb_templates  %  2  ==  1  &&  $i  ==  intval ( $nb_templates  /  2 )  +  1 ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												echo  '</table></td><td><table>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( isAjaxEnabled ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												printf ( '<td><input type="radio" name="template" value="none" id="none" onclick="return ajDISPLAY(\'BODY\',\'%s&template=%s\',\'%s\');" /></td>' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													htmlspecialchars ( $href_parms ), 'none' , str_replace ( '\'' , '\\\'' , _ ( 'Retrieving DN' ))); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												echo  '<td><input type="radio" name="template" value="none" id="none" onclick="document.getElementById(\'template_choice_form\').submit()" /></td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<td class="icon"><label for="none"><img src="%s/ldap-default.png" alt="" /></label></td>' , IMGDIR ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<td class="label"><label for="none">%s</label></td>' , _ ( 'Default' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '</tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</table>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</td></tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</table>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</form>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** VISIT METHODS **/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  This  function  will  setup  our  template  object  ( read  LDAP  for  current  values ,  read  $_REQUEST  for  new  values ,  etc ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  so  that  it  can  be  rendered . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									private  function  visitStart ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# If we have a DN, then we are an editing template
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $this -> dn ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> template -> setDN ( $this -> dn ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# Else if we have a container, we are a creating template
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										elseif  ( $this -> container  ||  get_request ( 'create_base' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> template -> setContainer ( $this -> container ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_dump_backtrace ( 'Dont know what type of template we are - no DN or CONTAINER?' , 1 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# Header
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> drawHeader (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									private  function  visitEnd ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										foreach  ( $this -> template -> getAttributesShown ()  as  $attribute ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( $attribute -> getPage ()  >  $this -> pagelast ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$this -> pagelast  =  $attribute -> getPage (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $this -> template -> getContext ()  ==  'create' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> drawStepTitle ( $this -> page ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> drawStepFormStart ( $this -> page ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> drawStepForm ( $this -> page ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> drawStepFormEnd (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  elseif  ( $this -> template -> getContext ()  ==  'copyasnew' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> drawStepFormStart ( $this -> page ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<input type="hidden" name="container" value="%s" />' , $this -> template -> getContainer ( false )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<div><table>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> drawRDNChooser (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '</table></div>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> drawForm ( true ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> drawStepFormSubmitButton ( $this -> page ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											# Draw internal attributes
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( get_request ( 'show_internal_attrs' , 'REQUEST' ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												echo  '<table class="entry" cellspacing="0" border="0" style="margin-left: auto; margin-right: auto;">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$this -> drawInternalAttributes (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												echo  '</table><br/>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> drawFormStart (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											# To support our AJAX add Attribute
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<div id="ajADD" style="display: %s"></div>' , 'none' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> drawForm (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> drawStepFormEnd (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** PAGE DRAWING METHODS **/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									private  function  drawHeader ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# Title
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> drawTitle (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( get_request ( 'create_base' )) 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-13 18:30:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											$this -> drawSubTitle ( sprintf ( '<b>%s</b>: %s' ,( 'Creating Base DN' ), $this -> template -> getDN ())); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> drawSubTitle (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# Menu
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> drawMenu (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									public  function  drawTitle ( $title = null )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( is_null ( $title )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											switch  ( $this -> getMode ())  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												case  'creation' : 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-12 19:23:27 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													$title  =  _ ( 'Create object' ); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
													break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												case  'modification' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$title  =  htmlspecialchars ( get_rdn ( $this -> dn )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												default : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$title  =  'Title' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										parent :: drawTitle ( $title ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									public  function  drawSubTitle ( $subtitle = null )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $subtitle ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  parent :: drawSubTitle ( $subtitle ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										switch  ( $this -> getMode ())  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'creation' : 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-12 19:23:27 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$subtitle  =  sprintf ( '%s: <b>%s</b>' , 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
													_ ( 'Container' ), htmlspecialchars ( $this -> container )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( $this -> template_id )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$subtitle  .=  '<br />' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$subtitle  .=  sprintf ( '%s: <b>%s</b>' , _ ( 'Template' ), $this -> template -> getID ()  !=  'none'  ?  $this -> template -> getTitle ()  :  _ ( 'Default' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													if  ( $this -> template -> getName ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$subtitle  .=  sprintf ( ' (<b>%s</b>)' , $this -> template -> getName ( false )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'modification' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$subtitle  =  sprintf ( '%s: <b>%s</b>' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													_ ( 'DN' ), htmlspecialchars ( $this -> dn )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										parent :: drawSubTitle ( $subtitle ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** PAGE ENTRY MENU **/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									private  function  drawMenu ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# We only have a menu for editing entries.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $this -> template -> getContext ()  ==  'edit' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<table class="menu" width="100%" border="0">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$menuitem_number  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											foreach  ( array ( 'entryrefresh' , 'showinternal' , 'switchtemplate' , 'entryexport' , 'entrycopy' , 'entrydelete' , 'entryrename' , 'entrycompare' , 'childcreate' , 'addattr' , 'msgdel' , 'childview' , 'childexport' , 'msgschema' , 'msgro' , 'msgmodattr' )  as  $item )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$item  =  $this -> getMenuItem ( $item ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( $item )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$endofrow  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$start  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$it  =  '' ;  // menu item
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$ms  =  '' ;  // item message
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													if  ( is_array ( $item )  &&  count ( $item )  >  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$it  =  $item [ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														if  ( count ( $item )  >  1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															$ms  =  $item [ 1 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$it  =  $item ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													if  ( $it )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$menuitem_number ++ ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														echo  $it ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														if  ( $ms )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															if  (( $menuitem_number  %  2 )  ==  1 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																$menuitem_number ++ ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																echo  '<td colspan="2"> </td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																$endofrow  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																$start  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															if  ( $endofrow ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																print  $ms ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																echo  " </tr><tr> $ms " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															echo  '</tr><tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															$endofrow  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															$start  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															if  ( $menuitem_number  >  1  &&  ( $menuitem_number  %  2 )  ==  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																echo  '</tr><tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																$endofrow  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																$start  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													}  elseif  ( $ms )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														if  (( $menuitem_number  %  2 )  ==  1 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															$menuitem_number ++ ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															echo  '<td colspan="2"> </td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															$endofrow  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															$start  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														if  ( $endofrow  ||  $start ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															print  $ms ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															echo  " </tr><tr> $ms " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														echo  '</tr><tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$endofrow  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$start  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  (( $menuitem_number  %  2 )  ==  1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												echo  '<td> </td><td> </td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												echo  '<td> </td><td> </td><td> </td><td> </td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '</tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '</table>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** PAGE ENTRY MENU ITEMS **/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									private  function  getMenuItem ( $i )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s (%s)</font><br />' , __METHOD__ , $i ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										switch  ( $i )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'entryrefresh' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( $_SESSION [ APPCONFIG ] -> isCommandAvailable ( 'cmd' , 'entry_refresh' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  $this -> getMenuItemRefresh (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'switchtemplate' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( $_SESSION [ APPCONFIG ] -> isCommandAvailable ( 'cmd' , 'switch_template' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  $this -> getMenuItemSwitchTemplate (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'entryexport' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( $_SESSION [ APPCONFIG ] -> isCommandAvailable ( 'script' , 'export_form' )  &&  $_SESSION [ APPCONFIG ] -> isCommandAvailable ( 'script' , 'export' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  $this -> getMenuItemExportBase (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'entrycopy' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( $_SESSION [ APPCONFIG ] -> isCommandAvailable ( 'script' , 'copy_form' )  &&  $_SESSION [ APPCONFIG ] -> isCommandAvailable ( 'script' , 'copy' )  &&  !  $this -> template -> isReadOnly ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  $this -> getMenuItemMove (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'showinternal' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( $_SESSION [ APPCONFIG ] -> isCommandAvailable ( 'cmd' , 'entry_internal_attributes_show' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  $this -> getMenuItemInternalAttributes (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'entrydelete' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( $_SESSION [ APPCONFIG ] -> isCommandAvailable ( 'script' , 'delete_form' )  &&  $_SESSION [ APPCONFIG ] -> isCommandAvailable ( 'script' , 'delete' )  &&  !  $this -> template -> isReadOnly ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  $this -> getMenuItemDelete (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'entryrename' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( $_SESSION [ APPCONFIG ] -> isCommandAvailable ( 'script' , 'rename_form' )  &&  $_SESSION [ APPCONFIG ] -> isCommandAvailable ( 'script' , 'rename' )  &&  !  $this -> template -> isReadOnly ())  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													# Check if any of the RDN's are read only.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$rdnro  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													foreach  ( $this -> template -> getRDNAttributeName ()  as  $attr )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$attribute  =  $this -> template -> getAttribute ( $attr ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														if  ( $attribute  &&  $attribute -> isVisible ()  &&  !  $attribute -> isReadOnly ())  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															$rdnro  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													if  ( !  $rdnro ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														return  $this -> getMenuItemRename (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												return  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'msgdel' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( $_SESSION [ APPCONFIG ] -> getValue ( 'appearance' , 'show_hints' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													&&  $_SESSION [ APPCONFIG ] -> isCommandAvailable ( 'script' , 'delete_form' )  &&  $_SESSION [ APPCONFIG ] -> isCommandAvailable ( 'script' , 'delete' )  &&  !  $this -> template -> isReadOnly ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  array ( '' , $this -> getDeleteAttributeMessage ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'entrycompare' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( $_SESSION [ APPCONFIG ] -> isCommandAvailable ( 'script' , 'compare_form' )  &&  $_SESSION [ APPCONFIG ] -> isCommandAvailable ( 'script' , 'compare' )  &&  !  $this -> template -> isReadOnly ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  $this -> getMenuItemCompare (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'childcreate' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( $_SESSION [ APPCONFIG ] -> isCommandAvailable ( 'script' , 'create' )  &&  !  $this -> template -> isReadOnly ()  &&  !  $this -> template -> isNoLeaf ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  $this -> getMenuItemCreate (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'addattr' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( $_SESSION [ APPCONFIG ] -> isCommandAvailable ( 'script' , 'add_attr_form' )  &&  !  $this -> template -> isReadOnly ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  $this -> getMenuItemAddAttribute (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'childview' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'childexport' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												static  $children_count  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												static  $more_children  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$tree  =  get_cached_item ( $this -> getServerID (), 'tree' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$tree_item  =  $tree -> getEntry ( $this -> template -> getDN ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( !  $tree_item )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$tree -> addEntry ( $this -> template -> getDN ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$tree_item  =  $tree -> getEntry ( $this -> template -> getDN ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( $children_count  ===  false )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													# Visible children in the tree
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$children_count  =  count ( $tree_item -> getChildren ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													# Is there filtered children ?
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$more_children  =  $tree_item -> isSizeLimited (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													if  ( !  $children_count  ||  !  $more_children )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														# All children in ldap
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$all_children  =  $this -> getServer () -> getContainerContents ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															$this -> template -> getDN (), null , $children_count + 1 , '(objectClass=*)' , $_SESSION [ APPCONFIG ] -> getValue ( 'deref' , 'view' ), null ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$more_children  =  ( count ( $all_children )  >  $children_count ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( $children_count  >  0  ||  $more_children )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													if  ( $children_count  <=  0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$children_count  =  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													if  ( $more_children ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$children_count  .=  '+' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													if  ( $i  ==  'childview' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														return  $this -> getMenuItemShowChildren ( $children_count ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													elseif  ( $i  ==  'childexport'  &&  $_SESSION [ APPCONFIG ] -> isCommandAvailable ( 'script' , 'export_form' )  &&  $_SESSION [ APPCONFIG ] -> isCommandAvailable ( 'script' , 'export' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														return  $this -> getMenuItemExportSub (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														return  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												}  else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'msgschema' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( $_SESSION [ APPCONFIG ] -> getValue ( 'appearance' , 'show_hints' )  &&  $_SESSION [ APPCONFIG ] -> isCommandAvailable ( 'script' , 'schema' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  array ( '' , $this -> getViewSchemaMessage ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'msgro' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( $this -> template -> isReadOnly ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  array ( '' , $this -> getReadOnlyMessage ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'msgmodattr' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$modified_attrs  =  array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$modified  =  get_request ( 'modified_attrs' , 'REQUEST' , false , array ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												foreach  ( $this -> template -> getAttributes ( true )  as  $attribute ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													if  ( in_array ( $attribute -> getName (), $modified )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														array_push ( $modified_attrs , $attribute -> getFriendlyName ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( count ( $modified_attrs )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  array ( '' , $this -> getModifiedAttributesMessage ( $modified_attrs )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											default : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  getDeleteAttributeMessage ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $_SESSION [ APPCONFIG ] -> isCommandAvailable ( 'script' , 'delete_attr' )  &&  !  $this -> template -> isReadOnly ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  sprintf ( $this -> layout [ 'hint' ], _ ( 'Hint: To delete an attribute, empty the text field and click save.' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  getModifiedAttributesMessage ( & $modified_attributes )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return  sprintf ( $this -> layout [ 'hint' ], 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											( count ( $modified_attributes )  ==  1 )  ? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											sprintf ( _ ( 'An attribute (%s) was modified and is highlighted below.' ), implode ( '' , $modified_attributes ))  : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											sprintf ( _ ( 'Some attributes (%s) were modified and are highlighted below.' ), implode ( ', ' , $modified_attributes ))); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  getReadOnlyMessage ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return  sprintf ( $this -> layout [ 'hint' ], _ ( 'Viewing entry in read-only mode.' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  getViewSchemaMessage ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-07-08 08:29:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										return  sprintf ( $this -> layout [ 'hint' ],( 'Hint: To view the schema for an attribute, click the attribute name.' )); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** PAGE ENTRY MENU ITEMS DETAILS **/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									private  function  getMenuItemRefresh ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$href  =  sprintf ( 'cmd=template_engine&%s&junk=%s' , $this -> url_base , random_junk ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( isAjaxEnabled ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  sprintf ( $this -> layout [ 'actionajax' ], IMGDIR , 'refresh.png' , _ ( 'Refresh' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), _ ( 'Refresh this entry' ), htmlspecialchars ( $href ), str_replace ( '\'' , '\\\'' , _ ( 'Reloading' )), _ ( 'Refresh' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  sprintf ( $this -> layout [ 'action' ], IMGDIR , 'refresh.png' , _ ( 'Refresh' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), _ ( 'Refresh this entry' ), _ ( 'Refresh' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  getMenuItemSwitchTemplate ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$href  =  sprintf ( 'cmd=template_engine&%s&template=' , $this -> url_base ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( isAjaxEnabled ()) 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-08 08:29:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											return  sprintf ( $this -> layout [ 'actionajax' ], IMGDIR , 'switch.png' ,( 'Switch Template' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ),( 'Change to another template' ), htmlspecialchars ( $href ), str_replace ( '\'' , '\\\'' ,( 'Loading' )),( 'Switch Template' )); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-08 08:29:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											return  sprintf ( $this -> layout [ 'action' ], IMGDIR , 'switch.png' ,( 'Switch Template' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ),( 'Change to another template' ),( 'Switch Template' )); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  getMenuItemExportBase ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$href  =  sprintf ( 'cmd=export_form&%s&scope=base' , $this -> url_base ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( isAjaxEnabled ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  sprintf ( $this -> layout [ 'actionajax' ], IMGDIR , 'export.png' , _ ( 'Export' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), _ ( 'Save a dump of this object' ), htmlspecialchars ( $href ), str_replace ( '\'' , '\\\'' , _ ( 'Loading' )), _ ( 'Export' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  sprintf ( $this -> layout [ 'action' ], IMGDIR , 'export.png' , _ ( 'Export' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), _ ( 'Save a dump of this object' ), _ ( 'Export' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									private  function  getMenuItemMove ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$href  =  sprintf ( 'cmd=copy_form&%s' , $this -> url_base ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( isAjaxEnabled ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  sprintf ( $this -> layout [ 'actionajax' ], IMGDIR , 'cut.png' , _ ( 'Cut' ), 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-12 19:23:27 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), _ ( 'Copy or move this entry' ), 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), str_replace ( '\'' , '\\\'' , _ ( 'Loading' )), _ ( 'Copy or move this entry' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  sprintf ( $this -> layout [ 'action' ], IMGDIR , 'cut.png' , _ ( 'Cut' ), 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-12 19:23:27 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), _ ( 'Copy or move this entry' ), 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
												_ ( 'Copy or move this entry' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  getMenuItemInternalAttributes ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( get_request ( 'show_internal_attrs' , 'REQUEST' ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$href  =  sprintf ( 'cmd=template_engine&%s&junk=' , $this -> url_base , random_junk ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  sprintf ( $this -> layout [ 'action' ], IMGDIR , 'tools-no.png' , _ ( 'Hide' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), '' , _ ( 'Hide internal attributes' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$href  =  sprintf ( 'cmd=template_engine&show_internal_attrs=true&%s' , $this -> url_base ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  sprintf ( $this -> layout [ 'action' ], IMGDIR , 'tools.png' , _ ( 'Show' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), '' , _ ( 'Show internal attributes' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									private  function  getMenuItemDelete ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$href  =  sprintf ( 'cmd=delete_form&%s' , $this -> url_base ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( isAjaxEnabled ()) 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-15 18:10:43 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											return  sprintf ( $this -> layout [ 'actionajax' ], IMGDIR , 'trash.png' ,( 'Trash' ), 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), _ ( 'You will be prompted to confirm this decision' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), str_replace ( '\'' , '\\\'' , _ ( 'Loading' )), _ ( 'Delete this entry' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-15 18:10:43 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											return  sprintf ( $this -> layout [ 'action' ], IMGDIR , 'trash.png' ,( 'Trash' ), 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), _ ( 'You will be prompted to confirm this decision' ), _ ( 'Delete this entry' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  getMenuItemRename ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$href  =  sprintf ( 'cmd=rename_form&%s&template=%s' , $this -> url_base , $this -> template -> getID ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( isAjaxEnabled ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  sprintf ( $this -> layout [ 'actionajax' ], IMGDIR , 'rename.png' , _ ( 'Rename' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), _ ( 'Rename this entry' ), htmlspecialchars ( $href ), str_replace ( '\'' , '\\\'' , _ ( 'Loading' )), _ ( 'Rename' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  sprintf ( $this -> layout [ 'action' ], IMGDIR , 'rename.png' , _ ( 'Rename' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), _ ( 'Rename this entry' ), _ ( 'Rename' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  getMenuItemCompare ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$href  =  sprintf ( 'cmd=compare_form&%s' , $this -> url_base ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( isAjaxEnabled ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  sprintf ( $this -> layout [ 'actionajax' ], IMGDIR , 'compare.png' , _ ( 'Compare' ), 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-12 19:23:27 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), _ ( 'Compare this DN with another' ), 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), str_replace ( '\'' , '\\\'' , _ ( 'Loading' )), _ ( 'Compare with another entry' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  sprintf ( $this -> layout [ 'action' ], IMGDIR , 'compare.png' , _ ( 'Compare' ), 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-12 19:23:27 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), _ ( 'Compare this DN with another' ), _ ( 'Compare with another entry' )); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  getMenuItemCreate ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$href  =  sprintf ( 'cmd=template_engine&server_id=%s&container=%s' , $this -> getServerID (), $this -> template -> getDNEncode ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( isAjaxEnabled ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  sprintf ( $this -> layout [ 'actionajax' ], IMGDIR , 'create.png' , _ ( 'Create' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), _ ( 'Create a child entry' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), str_replace ( '\'' , '\\\'' , _ ( 'Loading' )), _ ( 'Create a child entry' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  sprintf ( $this -> layout [ 'action' ], IMGDIR , 'create.png' , _ ( 'Create' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), _ ( 'Create a child entry' ), _ ( 'Create a child entry' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  getMenuItemAddAttribute ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( !  $this -> template -> getAvailAttrs ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$href  =  sprintf ( 'cmd=add_attr_form&%s' , $this -> url_base ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$layout  =  '<td class="icon"><img src="%s/%s" alt="%s" /></td><td><a href="cmd.php?%s" title="%s" onclick="getDiv(\'ADD\').style.display = \'block\';return ajDISPLAY(\'ADD\',\'%s\',\'%s\');">%s</a></td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( isAjaxEnabled ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  sprintf ( $layout , IMGDIR , 'add.png' , _ ( 'Add' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), _ ( 'Add new attribute to this object' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), str_replace ( '\'' , '\\\'' , _ ( 'Add new attribute' )), _ ( 'Add new attribute' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  sprintf ( $this -> layout [ 'action' ], IMGDIR , 'add.png' , _ ( 'Add' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), _ ( 'Add new attribute to this object' ), _ ( 'Add new attribute' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  getMenuItemShowChildren ( $children_count )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$href  =  sprintf ( 'cmd=query_engine&server_id=%s&filter=%s&base=%s&scope=one&query=none&size_limit=0&search=true' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> getServerID (), rawurlencode ( 'objectClass=*' ), $this -> template -> getDNEncode ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( isAjaxEnabled ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  sprintf ( $this -> layout [ 'actionajax' ], IMGDIR , 'children.png' , _ ( 'Children' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), _ ( 'View the children of this object' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), str_replace ( '\'' , '\\\'' , _ ( 'Loading' )), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												( $children_count  ==  1 )  ?  _ ( 'View 1 child' )  :  sprintf ( _ ( 'View %s children' ), $children_count )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  sprintf ( $this -> layout [ 'action' ], IMGDIR , 'children.png' , _ ( 'Children' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), _ ( 'View the children of this object' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												( $children_count  ==  1 )  ?  _ ( 'View 1 child' )  :  sprintf ( _ ( 'View %s children' ), $children_count )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  getMenuItemExportSub ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$href  =  sprintf ( 'cmd=export_form&%s&scope=%s' , $this -> url_base , 'sub' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( isAjaxEnabled ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  sprintf ( $this -> layout [ 'actionajax' ], IMGDIR , 'export.png' , _ ( 'Save' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), _ ( 'Save a dump of this object and all of its children' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), str_replace ( '\'' , '\\\'' , _ ( 'Loading' )), _ ( 'Export subtree' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  sprintf ( $this -> layout [ 'action' ], IMGDIR , 'export.png' , _ ( 'Save' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), _ ( 'Save a dump of this object and all of its children' ), _ ( 'Export subtree' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** CHOOSERS **/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  RDN  Chooser 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawRDNChooser ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( !  count ( $this -> template -> getRDNAttrs ()))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<tr><th colspan="2">%s</th></tr>' , 'RDN' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<tr><td class="value" colspan="2" style="text-align: center;"><select name="rdn_attribute[]" id="rdn_attribute" />' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<option value="">%s</option>' , _ ( 'select the rdn attribute' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( $_SESSION [ APPCONFIG ] -> getValue ( 'appearance' , 'rdn_all_attrs' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$allattrs  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$allattrs  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											foreach  ( $this -> template -> getAttributes ( $allattrs )  as  $attr )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$n  =  $attr -> getName ( false ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( $attr -> getName ()  !=  'objectclass' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$m  =  $attr -> getFriendlyName (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$b  =  ' ' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													printf ( '<option value="%s">%s%s(%s)</option>' , $n , $m , $b , $n ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '</select></td></tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<tr><td colspan="2">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											foreach  ( $this -> template -> getRDNAttrs ()  as  $rdn ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												printf ( '<input type="hidden" name="rdn_attribute[]" value="%s" id="rdn_attribute"/>' , htmlspecialchars ( $rdn )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( get_request ( 'create_base' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												echo  '<input type="hidden" name="create_base" value="true" />' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '</td></tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  Container  Chooser 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawContainerChooser ( $default_container )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<td class="heading">%s</td>' , _ ( 'Container' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( get_request ( 'create_base' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '%s<input type="hidden" name="container" size="40" value="%s" />' , $default_container , htmlspecialchars ( $default_container )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<input type="text" name="container" size="40" value="%s" />' , htmlspecialchars ( $default_container )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											draw_chooser_link ( 'entry_form' , 'container' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  Object  Class  Chooser 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawObjectClassChooser ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$socs  =  $this -> getServer () -> SchemaObjectClasses (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( !  $socs ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$socs  =  array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<tr>' ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-14 18:29:11 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										printf ( '<td class="heading">%s</td>' , _ ( 'Object classes' )); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										echo  '<td><select name="new_values[objectclass][]" multiple="multiple" size="15">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										foreach  ( $socs  as  $name  =>  $oclass )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( !  strcasecmp ( 'top' , $name )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												continue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<option %s value="%s">%s</option>' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												( $oclass -> getType ()  ==  'structural' )  ?  'style="font-weight: bold" '  :  '' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $oclass -> getName ( false )), $oclass -> getName ( false )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</select>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $_SESSION [ APPCONFIG ] -> getValue ( 'appearance' , 'show_hints' ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<tr><td> </td><td><small><img src="%s/light.png" alt="Hint" /><span class="hint">' , IMGDIR ); 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-13 18:30:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											echo  _ ( 'Hint: You must choose exactly one structural object class (shown in bold above)' ); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											echo  '</span></small><br /></td></tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** INTERNAL ATTRIBUTES **/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawInternalAttributes ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $this -> template -> getAttributesInternal ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											foreach  ( $this -> template -> getAttributesInternal ()  as  $attribute ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$this -> draw ( 'Internal' , $attribute ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<tr><td>(%s)<br/></td></tr>' , _ ( 'No internal attributes' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawInternalAttribute ( $attribute )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> draw ( 'Template' , $attribute ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** FORM METHODS **/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									public  function  drawFormStart ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<form action="cmd.php" method="post" enctype="multipart/form-data" id="entry_form" onsubmit="return submitForm(this)">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<div>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $_SESSION [ APPCONFIG ] -> getValue ( 'confirm' , 'update' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<input type="hidden" name="cmd" value="update_confirm" />' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<input type="hidden" name="cmd" value="update" />' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</div>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawForm ( $nosubmit = false )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<div>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<input type="hidden" name="server_id" value="%s" />' , $this -> getServerID ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<input type="hidden" name="dn" value="%s" />' , $this -> template -> getDNEncode ( false )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<input type="hidden" name="template" value="%s" />' , $this -> template -> getID ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</div>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<table class="entry" cellspacing="0" border="0" style="margin-left: auto; margin-right: auto;">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> drawShownAttributes (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( !  $nosubmit ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> drawFormSubmitButton (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</table>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<div> ' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> drawHiddenAttributes (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</div>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									public  function  drawFormEnd ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# Include the RDN details to support creating the base
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( get_request ( 'create_base' ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( get_request ( 'rdn' ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$rdn  =  explode ( '=' , get_request ( 'rdn' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												echo  '<div>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												printf ( '<input type="hidden" name="new_values[%s][]" value="%s" />' , $rdn [ 0 ], $rdn [ 1 ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												printf ( '<input type="hidden" name="rdn_attribute[]" value="%s" />' , $rdn [ 0 ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												echo  '</div>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</form>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# Javascript
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> drawJavascript (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# For debugging, show the template object.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( !  $_SESSION [ APPCONFIG ] -> getValue ( 'appearance' , 'hide_debug_info' )  &&  get_request ( 'debug' , 'GET' ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  " \n \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<img src="%s/plus.png" alt="Plus" onclick="if (document.getElementById(\'DEBUGtemplate\').style.display == \'none\') { document.getElementById(\'DEBUGtemplate\').style.display = \'block\' } else { document.getElementById(\'DEBUGtemplate\').style.display = \'none\' };"/>' , IMGDIR ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<div id="DEBUGtemplate" style="display: none">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<fieldset>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<legend>DEBUG: %s</legend>' , $this -> template -> getDescription ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<textarea cols="120" rows="20">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_dump ( $this ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '</textarea>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '</fieldset>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '</div>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									public  function  drawFormSubmitButton ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( !  $this -> template -> isReadOnly ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											// @todo cant use AJAX here, it affects file uploads.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<tr><td colspan="2" style="text-align: center;"><input type="submit" id="create_button" name="submit" value="%s" /></td></tr>' , 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-21 17:50:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												_ ( 'Update object' )); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** STEP FORM METHODS **/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									private  function  drawStepTitle ( $page )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP || DEBUGTMPSUB )  printf ( '<font size=-2>* %s [templateNAME:%s]</font><br />' , __METHOD__ , $this -> template -> getName ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# The default template needs to ask the user for objectClasses.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $this -> template -> isType ( 'default' ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											# The default template only uses 2 pages
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> pagelast  =  2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<h4 style="text-align: center;">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '%s: ' , sprintf ( _ ( 'Step %s of %s' ), $page , $this -> pagelast )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( $page  ==  1 ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-02-08 19:12:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												echo  _ ( 'Container and object classes' ); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												echo  _ ( 'Specify attributes and values' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '</h4>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  elseif  ( $this -> template -> getDescription ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<h4 style="text-align: center;">%s (%s)</h4>' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												_ ( $this -> template -> getDescription ()), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												sprintf ( _ ( 'Step %s of %s' ), $page , $this -> pagelast )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									private  function  drawStepFormStart ( $page )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  (( $this -> template -> isType ( 'default' )  &&  $this -> template -> getContext ()  ==  'create'  &&  $page  ==  1 )  ||  $page  <  $this -> pagelast )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<form action="cmd.php?cmd=template_engine" method="post" enctype="multipart/form-data" id="entry_form" onsubmit="return submitForm(this)">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<div>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<form action="cmd.php" method="post" enctype="multipart/form-data" id="entry_form" onsubmit="return submitForm(this)">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<div>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( $_SESSION [ APPCONFIG ] -> getValue ( 'confirm' , 'create' )  &&  !  get_request ( 'create_base' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												echo  '<input type="hidden" name="cmd" value="create_confirm" />' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												echo  '<input type="hidden" name="cmd" value="create" />' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawStepForm ( $page )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<input type="hidden" name="server_id" value="%s" />' , $this -> getServerID ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<input type="hidden" name="template" value="%s" />' , $this -> template -> getID ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<input type="hidden" name="page" value="%s" />' , $page + 1 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( get_request ( 'create_base' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<input type="hidden" name="create_base" value="true" />' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> drawHiddenAttributes (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $this -> template -> isType ( 'default' )  &&  $page  ==  1 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												echo  '</div>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												echo  '<table class="forminput" border="0" style="margin-left: auto; margin-right: auto;">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$this -> drawContainerChooser ( $this -> template -> getContainer ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$this -> drawObjectClassChooser (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<input type="hidden" name="container" value="%s" />' , $this -> template -> getContainerEncode ( false )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '</div>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<table class="entry" cellspacing="0" border="0" style="margin-left: auto; margin-right: auto;">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> drawRDNChooser (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( $this -> template -> isType ( 'default' )  &&  $this -> template -> getContext ()  ==  'create' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$this -> drawStepFormDefaultAttributes (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$this -> drawShownAttributes (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> drawStepFormSubmitButton ( $page ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</table>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									private  function  drawStepFormEnd ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> drawFormEnd (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									private  function  drawStepFormSubmitButton ( $page )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $page  <  $this -> pagelast ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-14 19:44:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											printf ( '<td> </td><td><input type="submit" id="create_button" value="%s >>" /></td>' , _ ( 'Proceed' )); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											// @todo cant use AJAX here, it affects file uploads.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<td style="text-align: center;"><input type="submit" id="create_button" name="submit" value="%s" /></td>' , 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-12 19:23:27 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												_ ( 'Create object' )); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										echo  '</tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  Given  our  known  objectClass  in  the  template ,  this  will  render  the  required  MAY  and  optional  MUST  attributes 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									private  function  drawStepFormDefaultAttributes ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# Put required attributes first
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$attrs  =  array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$attrs [ 'required' ]  =  array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$attrs [ 'optional' ]  =  array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										foreach  ( $this -> template -> getAttributes ( true )  as  $attribute )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											# Skip the objectclass attribute, we already know it in a default creation form.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( $attribute -> getName ()  ==  'objectclass' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												continue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( $attribute -> isRequired ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												array_push ( $attrs [ 'required' ], $attribute ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											elseif  ( !  $attribute -> getValues ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												array_push ( $attrs [ 'optional' ], $attribute ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-07-14 19:44:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										printf ( '<tr><th colspan="2">%s</th></tr>' , _ ( 'Required attributes' )); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										if  ( count ( $attrs [ 'required' ])) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											foreach  ( $attrs [ 'required' ]  as  $attribute ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$this -> draw ( 'Template' , $attribute ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<tr class="noinput"><td colspan="2" style="text-align: center;">(%s)</td></tr>' , _ ( 'none' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-07-14 18:29:11 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										printf ( '<tr><th colspan="2">%s</th></tr>' , _ ( 'Optional attributes' )); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										if  ( count ( $attrs [ 'optional' ])) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											foreach  ( $attrs [ 'optional' ]  as  $attribute ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$this -> draw ( 'Template' , $attribute ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<tr class="noinput"><td colspan="2" style="text-align: center;">(%s)</td></tr>' , _ ( 'none' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** DRAW ATTRIBUTES **/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									private  function  drawShownAttributes ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										foreach  ( $this -> template -> getAttributesShown ()  as  $attribute ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  (( $attribute -> getPage ()  ==  $this -> page )  &&  ( $attribute -> isRequired ()  ||  $attribute -> isMay ()))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$this -> draw ( 'Template' , $attribute ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** DRAW PAGE JAVACRIPT */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawJavascript ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<!-- START: %s -->' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<script type="text/javascript" src="%sTemplateRender.js"></script>' , JSDIR ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<script type="text/javascript" src="%stoAscii.js"></script>' , JSDIR ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<script type="text/javascript" src="%sdnChooserPopup.js"></script>' , JSDIR ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<!-- START: MAIN FORM VALIDATION: %s -->' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< script  type = " text/javascript " >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function  validateForm ( silence )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									var  i  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									var  valid  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									var  components  =  null ; ' . " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										foreach  ( $this -> template -> getAttributes ( true )  as  $attribute )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( $attribute -> isVisible ()  &&  ( $attribute -> getOnchange ())  ||  $attribute -> isRequired ())  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												echo  ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									components  =  getAttributeComponents ( " new " , " '. $attribute->getName ().' " ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									for  ( i  =  0 ;  i  <  components . length ;  i ++ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( window . validate_ '.$attribute->getName().' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											valid  =  ( ! validate_ '.$attribute->getName().' ( components [ i ], silence )  ||  ! valid )  ?  false  :  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# If we displayed the RDN chooser...
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( !  count ( $this -> template -> getRDNAttrs ())) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '       valid = (!document.getElementById(\'rdn_attribute\').value || !valid) ? false : true;' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  valid ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								</ script > ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<!-- END: MAIN FORM VALIDATION: %s -->' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> drawTemplateJavascript (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# For DateAttributes, we need to set some defaults for the js_calendar.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<!-- START: GLOBAL SETTINGS FOR THE js_calendar -->' . " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<script type="text/javascript">' . " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  'var defaults = new Array();' . " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( 'var default_date_format = "%s";' , $_SESSION [ APPCONFIG ] -> getValue ( 'appearance' , 'date' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</script>' . " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<!-- END: GLOBAL SETTINGS FOR THE js_calendar -->' . " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										foreach  ( $this -> template -> getAttributesShown ()  as  $attribute ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> draw ( 'Javascript' , $attribute ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// @todo We need to sleep here a little bit, because our JS may not have loaded yet.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  ' < script  type = " text/javascript " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( typeof  getAttributeComponents  ==  " undefined " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											setTimeout ( " isJSComplete() " , 1000 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											validateForm ( true ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										function  isJSComplete ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( typeof  getAttributeComponents  ==  " undefined " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												alert ( " Our Javascript didnt load in time, you may need to reload this page " ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												// Sometimes the alert gives us enough time!
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( typeof  getAttributeComponents  !=  " undefined " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													alert ( " Dont bother, our JS is loaded now! " ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											validateForm ( true ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</ script > ' . " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<!-- END: %s -->' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  Javascript  Functions 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									private  function  drawTemplateJavascript ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<!-- START: ONCHANGE PROCESSING %s -->' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										foreach  ( $this -> template -> getAttributes ( true )  as  $attribute ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( $onchange  =  $attribute -> getOnChange ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( is_array ( $onchange )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													foreach  ( $onchange  as  $value ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$this -> template -> OnChangeAdd ( $attribute -> getName (), $value ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$this -> template -> OnChangeAdd ( $attribute -> getName (), $onchange ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<!-- END: ONCHANGE PROCESSING %s -->' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<!-- START: %s -->' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< script  type = " text/javascript " >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var  attrTrace ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function  fill ( id , value )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									attrTrace  =  new  Array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									fillRec ( id , value ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function  fillRec ( id , value )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( attrTrace [ id ]  ==  1 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										var  pre  =  " " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										var  suf  =  " " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										var  i ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										attrTrace [ id ]  =  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										pla_setComponentValue ( pla_getComponentById ( id ), value ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// here comes template-specific implementation,generated by php
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( false )  {} ' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										foreach  ( $this -> template -> getAttributes ( true )  as  $attribute )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( $attribute -> isVisible ()  &&  ( $attribute -> getOnchange ())  ||  $attribute -> isRequired ())  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$attr  =  $attribute -> getName (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												printf ( " 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else  if  (( i  =  id . indexOf ( '_%s_' ))  >=  0 )  { " , $attr );
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												echo  " 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											pre  =  id . substring ( 0 , i + 1 ); " ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												printf ( " 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											suf  =  id . substring ( i  +  1  +  '%s' . length , id . length ); \n " , $attr );
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$this -> draw ( 'FillJavascript' , $attribute , 'id' , 'value' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( isset ( $attribute -> js [ 'autoFill' ])) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													echo  $attribute -> js [ 'autoFill' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												echo  " 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} \n " ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  ' } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								</ script > ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<!-- END: %s -->' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** ATTRIBUTE TITLE **/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawTitleAttribute ( $attribute )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  (( $this -> template -> getContext ()  ==  'edit' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											&&  ( $attribute -> hasBeenModified ()  ||  in_array ( $attribute -> getName (), get_request ( 'modified_attrs' , 'REQUEST' , false , array ())))) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<tr class="updated">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<td class="title">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> draw ( 'Name' , $attribute ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<td class="note">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# Setup the $attr_note, which will be displayed to the right of the attr name (if any)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $_SESSION [ APPCONFIG ] -> getValue ( 'appearance' , 'show_attribute_notes' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> draw ( 'Notes' , $attribute ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** ATTRIBUTE LINE **/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawStartValueLineAttribute ( $attribute )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  (( $this -> template -> getContext ()  ==  'edit' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											&&  ( $attribute -> hasBeenModified ()  ||  in_array ( $attribute -> getName (), get_request ( 'modified_attrs' , 'REQUEST' , false , array ())))) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<tr class="updated">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<td class="value" colspan="2">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawEndValueLineAttribute ( $attribute )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $attribute -> getSpacer ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<tr class="spacer"><td colspan="3"> </td></tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  (( $this -> template -> getContext ()  ==  'edit' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											&&  ( $attribute -> hasBeenModified ()  ||  in_array ( $attribute -> getName (), get_request ( 'modified_attrs' , 'REQUEST' , false , array ())))) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<tr class="updated"><td class="bottom" colspan="2"></td></tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawTemplateAttribute ( $attribute )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> draw ( 'Title' , $attribute ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> draw ( 'TemplateValues' , $attribute ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawTemplateValuesAttribute ( $attribute )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s:%s</font><br />' , time (), __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> draw ( 'StartValueLine' , $attribute ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# Draws values
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$value_count  =  $attribute -> getValueCount (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										for  ( $i = 0 ; $i < $value_count ; $i ++ ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> draw ( 'Value' , $attribute , $i ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( !  $attribute -> isInternal ())  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$blankvalue_count  =  $attribute -> getMaxValueCount (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( $blankvalue_count  <  0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$blankvalue_count  =  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$blankvalue_count  -=  $value_count ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											for  ( $j = 0 ; $j < $blankvalue_count ; $j ++ ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$this -> draw ( 'Value' , $attribute , $i + $j ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  (( $value_count  ==  $blankvalue_count )  ||  ( $value_count  &&  $blankvalue_count  <  1 )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$this -> draw ( 'Menu' , $attribute ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> draw ( 'EndValueLine' , $attribute ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** DRAW ICONS FOR ATTRIBUTES VALUES **/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawIconAttribute ( $attribute , $val )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( is_dn_string ( $val )  ||  $this -> getServer () -> isDNAttr ( $attribute -> getName ())) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> draw ( 'DnValueIcon' , $attribute , $val ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										elseif  ( is_mail_string ( $val )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> draw ( 'MailValueIcon' , $attribute , $val ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										elseif  ( is_url_string ( $val )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> draw ( 'UrlValueIcon' , $attribute , $val ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( $icon  =  $attribute -> getIcon ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												printf ( '<img src="%s" alt="Icon" style="float: right;" /> ' , $icon ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawDnValueIconAttribute ( $attribute , $val )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( strlen ( $val )  <=  0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<img src="%s/ldap-alias.png" alt="Go" style="float: right;" /> ' , IMGDIR ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										elseif  ( $this -> getServer () -> dnExists ( $val )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<a href="cmd.php?cmd=template_engine&server_id=%s&dn=%s" title="%s %s"><img src="%s/ldap-alias.png" alt="Go" /></a> ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$this -> getServerID (), rawurlencode ( $val ), _ ( 'Go to' ), $val , IMGDIR ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-13 18:30:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											printf ( '<a title="%s %s"><img src="%s/nogo.png" alt="Go" /></a> ' , _ ( 'DN does not exist' ), $val , IMGDIR ); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawMailValueIconAttribute ( $attribute , $val )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-07-13 18:30:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$img  =  sprintf ( '<img src="%s/mail.png" alt="%s" style="float: right;" />' , IMGDIR , _ ( 'Email' )); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										if  ( strlen ( $val )  <=  0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  $img ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<a href="mailto:%s">%s</a>' , htmlspecialchars ( $val ), $img ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  ' ' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawUrlValueIconAttribute ( $attribute , $val )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$img  =  sprintf ( '<img src="%s/ldap-dc.png" alt="%s" style="float: right;" />' , IMGDIR , _ ( 'URL' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$url  =  explode ( ' +' , $val , 2 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( strlen ( $val )  <=  0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  $img ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<a href="%s" onclick="target=\'new\';">%s</a>' , htmlspecialchars ( $url [ 0 ]), $img ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  ' ' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** DEFAULT ATTRIBUTE RENDERING **/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** javacript */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawJavascriptAttribute ( $attribute )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( !  $attribute -> needJS ())  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<!-- NO JS REQUIRED FOR %s -->' , $attribute -> getName ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<!-- START: ATTRIBUTE %s (%s)-->' , __METHOD__ , $attribute -> getName ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<script type="text/javascript">' . " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '// focus' . " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $attribute -> needJS ( 'focus' ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( 'function focus_%s(component) {' , $attribute -> getName ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> draw ( 'FocusJavascript' , $attribute , 'component' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  " }; \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '// blur' . " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $attribute -> needJS ( 'blur' ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( 'function blur_%s(component) {' , $attribute -> getName ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> draw ( 'BlurJavascript' , $attribute , 'component' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  " }; \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '// validate' . " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( 'function validate_%s(component,silence) {' , $attribute -> getName ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $attribute -> needJS ( 'validate' ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '	var valid = true;' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> draw ( 'ValidateJavascript' , $attribute , 'component' , 'silence' , 'valid' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '	if (valid) { component.style.backgroundColor = "white"; component.style.color = "black"; }' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '	else { component.style.backgroundColor = \'#FFFFA0\'; component.style.color = "black"; }' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '	return valid;' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '	return true;' . " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '}' . " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</script>' . " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<!-- END: ATTRIBUTE %s (%s)-->' , __METHOD__ , $attribute -> getName ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  getFocusJavascriptAttribute ( $attribute , $component )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  getBlurJavascriptAttribute ( $attribute , $component )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$j  =  " \t " . 'fill(' . $component . '.id,pla_getComponentValue(' . $component . '));' . " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$j  .=  " \t " . 'validate_' . $attribute -> getName () . '(' . $component . ',false);' . " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return  $j ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawFocusJavascriptAttribute ( $attribute , $component )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  $this -> get ( 'FocusJavascript' , $attribute , $component ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawBlurJavascriptAttribute ( $attribute , $component )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  $this -> get ( 'BlurJavascript' , $attribute , $component ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawFillJavascriptAttribute ( $attribute , $component_id , $component_value )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $attribute -> needJS ( 'validate' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( " \t validate_%s(pla_getComponentById(%s),true); \n " , $attribute -> getName (), $component_id ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawValidateJavascriptAttribute ( $attribute , $component , $silence , $var_valid )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( 'var vals = getAttributeValues("new","%s");' , $attribute -> getName ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  'if (vals.length <= 0) {' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '%s = false;' , $var_valid ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( 'alertError("%s: %s",%s);' , _ ( 'This attribute is required' ), $attribute -> getFriendlyName (), $silence ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '}' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( 'var comp = getAttributeComponents("new","%s");' , $attribute -> getName ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  'for (var i = 0; i < comp.length; i++) {' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( 'comp[i].style.backgroundColor = "%s";' , $var_valid  ?  'white'  :  '#FFFFA0' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '}' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** ATTRIBUTE MENU **/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawMenuAttribute ( $attribute )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$result  =  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$item  =  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										foreach  ( array ( 'add' , 'modify' , 'rename' )  as  $action ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( $item  =  $this -> get ( 'MenuItem' , $attribute , $action )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$result  .=  sprintf ( '<div class="add_value">%s</div>' , $item ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( !  $result ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<table class="entry" border="0"><tr><td style="width: 25px;"> </td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<td>%s</td>' , $result ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</tr></table>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  getMenuItemAttribute ( $attribute , $action )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# If there is no DN, then this is a creating entry.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  (( $this -> template -> getContext ()  ==  'create' )  ||  $this -> template -> isReadOnly ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										switch  ( $action )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'add' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( $attribute -> isVisible ()  &&  !  $attribute -> isReadOnly () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													&&  $_SESSION [ APPCONFIG ] -> isCommandAvailable ( 'script' , 'add_value_form' ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													if  ( $attribute -> haveMoreValues ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														return  $this -> get ( 'AddValueMenuItem' , $attribute ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												return  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'modify' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( in_array ( $attribute -> getName (), arrayLower ( $_SESSION [ APPCONFIG ] -> getValue ( 'modify_member' , 'groupattr' ))))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													if  ( $attribute -> isVisible ()  &&  !  $attribute -> isReadOnly ()  &&  !  $attribute -> isRDN () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														&&  $_SESSION [ APPCONFIG ] -> isCommandAvailable ( 'script' , 'modify_member_form' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														return  $this -> get ( 'ModifyMemberMenuItem' , $attribute ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												return  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'rename' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( $attribute -> isVisible ()  &&  $attribute -> isRDN ()  &&  !  $attribute -> isReadOnly () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													&&  $_SESSION [ APPCONFIG ] -> isCommandAvailable ( 'script' , 'rename_form' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													&&  $_SESSION [ APPCONFIG ] -> isCommandAvailable ( 'script' , 'rename' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  $this -> get ( 'RenameMenuItem' , $attribute ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												return  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											default : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  getAddValueMenuItemAttribute ( $attribute )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$href_parm  =  htmlspecialchars ( sprintf ( 'cmd=add_value_form&server_id=%s&dn=%s&attr=%s' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> getServerID (), $this -> template -> getDNEncode (), rawurlencode ( $attribute -> getName ( false )))); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( isAjaxEnabled ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  sprintf ( '(<a href="cmd.php?%s" title="%s %s" onclick="return ajDISPLAY(\'ADDVALUE%s\',\'%s&raw=1\',\'%s\',1);">%s</a>)' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$href_parm , _ ( 'Add an additional value to attribute' ), $attribute -> getName ( false ), $attribute -> getName (), 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-12 19:23:27 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$href_parm , str_replace ( '\'' , '\\\'' , _ ( 'Add an additional value to attribute' )), _ ( 'add value' )); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  sprintf ( '(<a href="cmd.php?%s" title="%s %s">%s</a>)' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$href_parm , _ ( 'Add an additional value to attribute' ), $attribute -> getName ( false ), _ ( 'add value' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  getAddValueMenuItemObjectClassAttribute ( $attribute )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$href_parm  =  htmlspecialchars ( sprintf ( 'cmd=add_value_form&server_id=%s&dn=%s&attr=%s' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> getServerID (), $this -> template -> getDNEncode (), rawurlencode ( $attribute -> getName ( false )))); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( isAjaxEnabled ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  sprintf ( '(<a href="cmd.php?%s" title="%s %s" onclick="return ajDISPLAY(\'BODY\',\'%s\',\'%s\');">%s</a>)' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$href_parm , _ ( 'Add an additional value to attribute' ), $attribute -> getName ( false ), 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-12 19:23:27 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$href_parm , str_replace ( '\'' , '\\\'' , _ ( 'Add an additional value to attribute' )), _ ( 'add value' )); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  sprintf ( '(<a href="cmd.php?%s" title="%s %s">%s</a>)' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$href_parm , _ ( 'Add an additional value to attribute' ), $attribute -> getName ( false ), _ ( 'add value' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  getModifyMemberMenuItemAttribute ( $attribute )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$href  =  sprintf ( 'cmd=modify_member_form&server_id=%s&dn=%s&attr=%s' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> getServerID (), $this -> template -> getDNEncode (), rawurlencode ( $attribute -> getName ())); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( isAjaxEnabled ()) 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-13 18:30:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											return  sprintf ( '(<a href="cmd.php?%s" onclick="return ajDISPLAY(\'BODY\',\'%s\',\'%s\');">%s</a>)' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), str_replace ( '\'' , '\\\'' , _ ( 'Modify group members' )), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												_ ( 'Modify group members' )); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-13 18:30:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											return  sprintf ( '(<a href="cmd.php?%s">%s</a>)' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $href ), _ ( 'Modify group members' )); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  getRenameMenuItemAttribute ( $attribute )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$href  =  sprintf ( 'cmd.php?cmd=rename_form&server_id=%s&dn=%s&template=%s' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> getServerID (), $this -> template -> getDNEncode (), $this -> template -> getID ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return  sprintf ( '<small>(<a href="%s">%s</a>)</small>' , htmlspecialchars ( $href ), _ ( 'rename' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** values **/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawValueAttribute ( $attribute , $i )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $attribute -> isMultiple ()  &&  $i  >  0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$val  =  $attribute -> getValue ( $i ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $attribute -> isVisible ())  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<table cellspacing="0" cellpadding="0" width="100%" border="0"><tr><td class="icon" style="width: 25px;">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> draw ( 'Icon' , $attribute , $val ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '</td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<td valign="top">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $attribute -> isInternal ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> draw ( 'FormReadOnlyValue' , $attribute , $i ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> draw ( 'FormValue' , $attribute , $i ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $attribute -> isVisible ())  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '</td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<td valign="top" style="text-align: right;">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> draw ( 'RequiredSymbol' , $attribute ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '</td></tr></table>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# @todo for userPasswords, we need to capture the default value of select lists, without specifying <default>
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawHelperAttribute ( $attribute , $i )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$params  =  $attribute -> getHelper (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# We take the first <id> only
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$id  =  isset ( $params [ 'id' ])  ?  $params [ 'id' ]  :  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( is_array ( $id ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											system_message ( array ( 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-08 08:29:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												'title' => ( 'Too many arguments' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												'body' => sprintf ( '%s (<b>%s</b>)' ,( 'Helper attribute has too many ID values, only the first one is used' ), count ( $id )), 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
												'type' => 'warn' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$id  =  $id [ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# We take the first <display> only
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$display  =  isset ( $params [ 'display' ])  ?  $params [ 'display' ]  :  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( is_array ( $display ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											system_message ( array ( 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-08 08:29:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												'title' => ( 'Too many arguments' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												'body' => sprintf ( '%s (<b>%s</b>)' ,( 'Helper attribute has too many DISPLAY values, only the first one is used' ), count ( $display )), 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
												'type' => 'warn' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$display  =  $display [ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# We take the first <default> only
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$default  =  isset ( $params [ 'default' ])  ?  $params [ 'default' ]  :  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( is_array ( $default ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											system_message ( array ( 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-08 08:29:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												'title' => ( 'Too many arguments' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												'body' => sprintf ( '%s (<b>%s</b>)' ,( 'Helper attribute has too many DISPLAY values, only the first one is used' ), count ( $default )), 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
												'type' => 'warn' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$default  =  $default [ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $attribute -> getHelperValue ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$vals  =  $this -> get ( 'Default' , $attribute , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$this -> template -> getContainer ()  ?  $this -> template -> getContainer ()  :  $this -> getServer () -> getContainerPath ( $this -> template -> getDN ()), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												'helpervalue' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$vals  =  isset ( $params [ 'value' ])  ?  $params [ 'value' ]  :  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $this -> template -> getContext ()  ==  'create' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$dn  =  $this -> template -> getContainer (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$dn  =  $this -> template -> getDN (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( is_array ( $vals )  &&  count ( $vals )  >  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$found  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<select name="%s[%s][%s]" id="%s_%s_%s">' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$id , htmlspecialchars ( $attribute -> getName ()), $i , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$id , htmlspecialchars ( $attribute -> getName ()), $i ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											foreach  ( $vals  as  $v )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												printf ( '<option value="%s" %s>%s</option>' , $v ,( $v  ==  $default )  ?  'selected="selected"'  :  '' , $v ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( $v  ==  $default ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$found  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( !  $found ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												printf ( '<option value="%s" selected="selected">%s</option>' , $default , $default  ?  $default  :  ' ' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '</select>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											# Vals must be an empty array.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( is_array ( $vals )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$vals  =  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<input type="text" name="%s[%s][%s]" id="%s_%s_%s" value="%s" size="4" />' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$id , htmlspecialchars ( $attribute -> getName ()), $i , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$id , htmlspecialchars ( $attribute -> getName ()), $i , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												htmlspecialchars ( $vals )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $display )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<div class="helper">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<span class="hint">%s</span>' , $display ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '</div>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawRequiredSymbolAttribute ( $attribute )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $attribute -> isRequired ()  &&  !  $attribute -> isReadOnly ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '*' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** BINARY ATTRIBUTE RENDERING **/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									#@todo do we need a $this->drawJavascriptAttribute($attribute) here too ?
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawJavascriptBinaryAttribute ( $attribute )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# If there are no values, then this javascript doesnt need to be drawn.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( !  $attribute -> getValues ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										static  $drawn  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# This JS may have been rendered by multiple Binary attributes
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $drawn ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$drawn  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<!-- START: BINARY ATTRIBUTE %s (%s)-->' , __METHOD__ , $attribute -> getName ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<!-- This form is submitted by JavaScript when the user clicks "Delete attribute" on a binary attribute -->' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<form id="delete_attribute_form" action="cmd.php?cmd=delete_attr" method="post">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<input type="hidden" name="server_id" value="%s" />' , $this -> getServerID ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<input type="hidden" name="dn" value="%s" />' , $this -> template -> getDNEncode ( false )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<input type="hidden" name="template" value="%s" />' , $this -> template -> getID ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<input type="hidden" name="attr" value="FILLED IN BY JAVASCRIPT" />' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<input type="hidden" name="index" value="FILLED IN BY JAVASCRIPT" />' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</form>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< script  type = " text/javascript " >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function  deleteAttribute ( attrName , friendlyName , i )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2011-07-14 19:44:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( confirm ( " '._('Really delete value from this attribute?').' " ))  { 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										document . getElementById ( \ ' delete_attribute_form\ ' ) . attr . value  =  attrName ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										document . getElementById ( \ ' delete_attribute_form\ ' ) . index . value  =  i ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										document . getElementById ( \ ' delete_attribute_form\ ' ) . submit (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								</ script > ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<!-- END: BINARY ATTRIBUTE %s (%s)-->' , __METHOD__ , $attribute -> getName ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** DATE ATTRIBUTE RENDERING **/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawJavaScriptDateAttribute ( $attribute )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<!-- START: DATE ATTRIBUTE %s (%s)-->' , __METHOD__ , $attribute -> getName ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> drawJavaScriptAttribute ( $attribute ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										static  $drawn  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# This JS may have been rendered by multiple Date attributes
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( !  $drawn )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<script type="text/javascript" src="%sjscalendar/lang/calendar-en.js"></script>' , JSDIR ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<script type="text/javascript" src="%sjscalendar/calendar-setup.js"></script>' , JSDIR ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<script type="text/javascript" src="%sdate_selector.js"></script>' , JSDIR ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$drawn  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$config  =  array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$config [ 'date' ]  =  array_change_key_case ( $_SESSION [ APPCONFIG ] -> getValue ( 'appearance' , 'date_attrs' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$config [ 'time' ]  =  array_change_key_case ( $_SESSION [ APPCONFIG ] -> getValue ( 'appearance' , 'date_attrs_showtime' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$config [ 'format' ]  =  $_SESSION [ APPCONFIG ] -> getValue ( 'appearance' , 'date' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( isset ( $config [ 'date' ][ $attribute -> getName ()])) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$config [ 'format' ]  =  $config [ 'date' ][ $attribute -> getName ()]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										for  ( $i = 0 ; $i <= $attribute -> getValueCount (); $i ++ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<script type="text/javascript">defaults[\'new_values_%s_%s\'] = \'%s\';</script>' , $attribute -> getName (), $i , $config [ 'format' ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( in_array_ignore_case ( $attribute -> getName (), array_keys ( $config [ 'time' ]))  &&  ( $config [ 'time' ][ $attribute -> getName ()])) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												printf ( '<script type="text/javascript">defaults[\'f_time_%s_%s\'] = \'%s\';</script>' , $attribute -> getName (), $i , 'true' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<!-- END: DATE ATTRIBUTE %s (%s)-->' , __METHOD__ , $attribute -> getName ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  Draws  an  HTML  date  selector  button  which ,  when  clicked ,  pops  up  a  date  selector  dialog . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawSelectorPopupDateAttribute ( $attribute , $i )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<a href="javascript:dateSelector(\'%s_%s\');" title="%s"><img src="%s/calendar.png" alt="Calendar" class="chooser" id="f_trigger_%s_%s" style="cursor: pointer;" /></a>' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$attribute -> getName (), $i , _ ( 'Click to popup a dialog to select a date graphically' ), IMGDIR , $attribute -> getName (), $i ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** DN ATTRIBUTES **/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawIconDnAttribute ( $attribute , $val )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> draw ( 'DnValueIcon' , $attribute , $val ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** OBJECT CLASS ATTRIBUTE **/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawIconObjectClassAttribute ( $attribute , $val )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** PASSWORD ATTRIBUTES **/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawJavascriptPasswordAttribute ( $attribute )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										static  $drawn  =  array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# This JS may have been rendered by multiple Binary attributes
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( isset ( $drawn [ $attribute -> getName ()])  &&  $drawn [ $attribute -> getName ()]) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$drawn [ $attribute -> getName ()]  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<!-- START: PASSWORD ATTRIBUTE %s (%s)-->' , __METHOD__ , $attribute -> getName ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> drawJavascriptAttribute ( $attribute ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# Add the javascript so we can call check password later.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< script  type = " text/javascript " >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									function  passwordComparePopup ( component_id , attr )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										mywindow  =  open ( \ ' password_checker . php\ ' , \ ' myname\ ' , \ ' resizable = no , width = 500 , height = 200 , scrollbars = 1 \ ' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										mywindow . location . href  =  \ ' password_checker . php ? componentid = \ ' + component_id + \ ' & attr = \ ' + attr ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( mywindow . opener  ==  null )  mywindow . opener  =  self ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								</ script > ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<!-- END: PASSWORD ATTRIBUTE %s (%s)-->' , __METHOD__ , $attribute -> getName ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawCheckLinkPasswordAttribute ( $attribute , $component_id )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<small><a href="javascript:passwordComparePopup(\'%s\',\'%s\')">%s...</a></small><br />' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$component_id , $attribute -> getName (), _ ( 'Check password' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** RANDOM PASSWORD **/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  This  will  draw  the  javascript  that  displays  to  the  user  the  random  password  generated 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  @ todo  This  function  doesnt  work  well  if  there  are  more  than  1  RandomPasswordAttributes  on  the  form  for  the  same  attribute  ( unlikely  situation ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawJavascriptRandomPasswordAttribute ( $attribute )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( " \n <!-- START: %s --> \n " , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> drawJavascriptPasswordAttribute ( $attribute ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$pwd  =  password_generate (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$pwd  =  str_replace ( " \\ " , " \\ \\ " , $pwd ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$pwd  =  str_replace ( " ' " , " \\ ' " , $pwd ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( " \n <!-- %s --> \n " , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<script type="text/javascript">' . " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  'var i = 0;' . " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( 'var component = document.getElementById(\'new_values_%s_\'+i);' , $attribute -> getName ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  'while (component) {' . " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '	if (!component.value) {' . " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '		component.value = \'%s\';' , $pwd ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-12 19:23:27 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										printf ( '		alert(\'%s:\n%s\');' ,( 'A random password was generated for you' ), $pwd ); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '	};' . " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '	i++;' . " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '	component = document.getElementById(\'new_values_%s_\'+i);' , $attribute -> getName ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# It seems that JS gets stuck in a loop if there isnt a command here? - normally this alert isnt shown.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( 'alert("It seems another element was found, PLA hasnt been configured for this situation Component: "+component.value+" I:"+i);' , $attribute -> getName ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '}' . " \n " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</script>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( " \n <!-- END: %s --> \n " , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawDefaultHelperPasswordAttribute ( $attribute , $i )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$id  =  'enc' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $val  =  $attribute -> getValue ( $i )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$default  =  get_enc_type ( $val ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$default  =  $this -> getServer () -> getValue ( 'appearance' , 'password_hash' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( !  $attribute -> getPostValue ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<input type="hidden" name="post_value[%s][]" value="%s" />' , $attribute -> getName (), $i ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<select name="%s[%s][%s]" id="%s_%s_%s">' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$id , htmlspecialchars ( $attribute -> getName ()), $i , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$id , htmlspecialchars ( $attribute -> getName ()), $i ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										foreach  ( password_types ()  as  $v  =>  $display ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<option value="%s" %s>%s</option>' , $v ,( $v  ==  $default )  ?  'selected="selected"'  :  '' , $display ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</select>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawDefaultHelperSambaPasswordAttribute ( $attribute , $i )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$id  =  'enc' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( !  $attribute -> getPostValue ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<input type="hidden" name="post_value[%s][]" value="%s" />' , $attribute -> getName (), $i ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										switch  ( $attribute -> getName ())  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'sambalmpassword'  :  $enc  =  'lm' ;  break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'sambantpassword'  :  $enc  =  'nt' ;  break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											default : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												return  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<input type="hidden" name="%s[%s][%s]" id="%s_%s_%s" value="%s" />' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$id , htmlspecialchars ( $attribute -> getName ()), $i , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$id , htmlspecialchars ( $attribute -> getName ()), $i , $enc ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** SELECTION ATTRIBUTE RENDERING **/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  drawIconSelectionAttribute ( $attribute , $val )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( !  $attribute -> isMultiple ()  ||  $attribute -> isReadOnly ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$this -> drawIconAttribute ( $attribute , $val ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									protected  function  getMenuItemSelectionAttribute ( $attribute , $i )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUG_ENABLED  &&  (( $fargs = func_get_args ()) || $fargs = 'NOARGS' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											debug_log ( 'Entered (%%)' , 129 , 0 , __FILE__ , __LINE__ , __METHOD__ , $fargs ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( DEBUGTMP )  printf ( '<font size=-2>%s</font><br />' , __METHOD__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										switch  ( $i )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'add' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( !  $attribute -> isMultiple ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  $this -> getMenuItemAttribute ( $attribute , $i ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'modify' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												return  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											default : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												return  $this -> getMenuItemAttribute ( $attribute , $i ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								?>