| 
						 
							
							
							
						 
					 | 
				
			
			 | 
			 | 
			
				@ -1,9 +1,18 @@
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				<?php
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				namespace LAM\SCHEMA;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				use \htmlResponsiveRow;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				use \htmlSpacer;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				use \htmlLink;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				use \htmlStatusMessage;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				use \htmlResponsiveTable;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				use \htmlOutputText;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				use \htmlGroup;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				use \htmlSelect;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				use \htmlDiv;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				use \htmlSubTitle;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				/*
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				$Id$
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  Copyright (C) 2004 David Smith
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  modified to fit for LDAP Account Manager 2005 - 2017 Roland Gruber
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  Copyright (C) 2018 Roland Gruber
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  This program is free software; you can redistribute it and/or modify
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  it under the terms of the GNU General Public License as published by
 | 
			
		
		
	
	
		
			
				
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@ -26,7 +35,6 @@ $Id$
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				 * Displays the LDAP schema of the server
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				 *
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				 * @package tools
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				 * @author David Smith
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				 * @author Roland Gruber
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				 */
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
	
		
			
				
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@ -48,396 +56,317 @@ checkIfToolIsActive('toolSchemaBrowser');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				setlanguage();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				include '../main_header.php';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				include '../../lib/adminHeader.inc';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				echo "<div class=\"user-bright smallPaddingContent\">\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				$view = isset( $_GET['view'] ) ? $_GET['view'] : 'objectClasses';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				$viewvalue = isset( $_GET['viewvalue'] ) ? $_GET['viewvalue'] : null;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if( trim( $viewvalue ) == "" )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    $viewvalue = null;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if( ! is_null( $viewvalue ) )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    $viewed = false;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				?>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				<br />
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				<center><big>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					<?php echo ( $view=='objectClasses' ?
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						_('Object classes') :
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						'<a href="?view=objectClasses">' . _('Object classes').'</a>' ); ?>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						|
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					<?php echo ( $view=='attributes' ?
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						_('Attribute types'):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						'<a href="?view=attributes">' .	_('Attribute types').'</a>' ); ?>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						|
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					<?php echo ( $view=='syntaxes' ?
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						_('Syntaxes') :
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						'<a href="?view=syntaxes">' . _('Syntaxes').'</a>' ); ?>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						|
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					<?php echo ( $view=='matching_rules' ?
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						_('Matching rules') :
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						'<a href="?view=matching_rules">' . _('Matching rules').'</a>' ); ?>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				</big></center>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				<br />
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				<?php flush(); ?>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				<?php
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if( $view == 'syntaxes' ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$highlight_oid = isset( $_GET['highlight_oid'] ) ? $_GET['highlight_oid'] : false;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					echo "\n\n<table class=\"schema_attr\" width=\"100%\">\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					echo "<tr><th>" . _('Syntax OID') . "</th><th>" . _('Description') . "</th></tr>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					flush();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$counter=1;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$schema_syntaxes = get_schema_syntaxes(null);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					if( ! $schema_syntaxes ) StatusMessage("ERROR", _("Unable to retrieve schema!"), "");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					foreach( $schema_syntaxes as $syntax ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$counter++;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$oid =  htmlspecialchars( $syntax->getOID() );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$desc = htmlspecialchars( $syntax->getDescription() );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if( $highlight_oid && $highlight_oid == $oid )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							echo "<tr class=\"highlight\">";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							echo "<tr class=\"" . ($counter%2==0?'even':'odd'). "\">";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td><a name=\"$oid\">$oid</a></td><td>$desc</td></tr>\n\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					echo "</table>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				} elseif( $view == 'attributes' ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					flush();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$schema_attrs = get_schema_attributes(null);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$schema_object_classes = get_schema_objectclasses(null);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					if( ! $schema_attrs || ! $schema_object_classes )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						StatusMessage("ERROR", _("Unable to retrieve schema!"), "");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					?>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					<small><?php echo _('Jump to an attribute type'); ?>:</small>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					<form action="schema.php" method="get"><input type="hidden" name="view" value="<?php echo $view; ?>" />
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        <select name="viewvalue" onChange="submit()">
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					<option value=""> - all -</option>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					<?php foreach( $schema_attrs as $attr ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    echo( '<option value="'
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                         .$attr->getName()
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                         .'" '
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                         .( 0 == strcasecmp( $attr->getName(), $viewvalue ) ? ' selected ' : '' )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                         .'>'
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                         . $attr->getName()
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						         .'</option>' . "\n" );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					 } ?>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					</select><input type="submit" value="<?php echo _('Go'); ?>" /></form>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					<br />
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					<table class="schema_attr" width="100%">
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					<?php
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    foreach( $schema_attrs  as $attr ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					  if ( is_null( $viewvalue ) || 0 == strcasecmp( $viewvalue, $attr->getName() ) ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        if( ! is_null( $viewvalue ) )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            $viewed = true;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						flush();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<tr><th colspan=\"2\">" . $attr->getName() . "</th></tr>\n\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$counter = 0;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>"._('Description')."</td>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>" . ( $attr->getDescription() === null ? '('._('No description').')' : $attr->getDescription() ). "</td>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "</tr>\n\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td><acronym title=\"Object Identier\">"._('OID')."</acronym></td>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>" .  $attr->getOID() . "</td>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "</tr>\n\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo '<td>'._('Obsolete')."?</td>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>" . ( $attr->getIsObsolete() ? '<b>' . _('Yes') . '</b>' : _('No') ) . "</td>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "</tr>\n\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>"._('Inherits from')."</td>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if( $attr->getSupAttribute() === null )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							echo '('._('none').')';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							echo "<a href=\"?view=$view&viewvalue=" . strtolower( $attr->getSupAttribute() ) . "\">" . $attr->getSupAttribute()  . "</a></td>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "</tr>\n\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>"._('Equality')."</td>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>" .  ( $attr->getEquality() === null ? '('._('not specified').')' : "<a href=\"?view=matching_rules&viewvalue=".$attr->getEquality()."\">".$attr->getEquality()."</a>" ) . "</td>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "</tr>\n\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>"._('Ordering')."</td>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>" .  ( $attr->getOrdering() === null? '('._('not specified').')' : $attr->getOrdering() ) . "</td>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "</tr>\n\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>"._('Substring Rule')."</td>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>" .  ( $attr->getSubstr() === null? '('._('not specified').')' : $attr->getSubstr() ) . "</td>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "</tr>\n\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>"._('Syntax')."</td>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if( null !== $attr->getType() ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							echo "<a href=\"?view=syntaxes&highlight_oid=";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							echo $attr->getSyntaxOID() . "#" .  $attr->getSyntaxOID();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							echo "\">" . $attr->getType() . " (" . $attr->getSyntaxOID() . ")</a>";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						} else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							echo $attr->getSyntaxOID();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "</td>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "</tr>\n\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>"._('Single valued')."</td>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>" .  ( $attr->getIsSingleValue() ? _('Yes') : _('No') ) . "</td>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "</tr>\n\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>"._('Collective')."?</td>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>" .  ( $attr->getIsCollective() ? _('Yes') : _('No') ) . "</td>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "</tr>\n\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>"._('User modification')."</td>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>" . ( $attr->getIsNoUserModification() ? _('No') : _('Yes') ) . "</td>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "</tr>\n\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>"._('Usage')."</td>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>" .  ( $attr->getUsage() ? $attr->getUsage() : '('._('not specified').')' ) . "</td>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "</tr>\n\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>"._('Maximum length')."</td>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if ( $attr->getMaxLength() === null ) { echo '('._('not applicable').')';}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						  echo number_format( $attr->getMaxLength() ) ." ";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						  if (  $attr->getMaxLength()>1) {echo _('characters');}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						  else { echo _('character')  ;}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					                        }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "</td>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "</tr>\n\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>"._('Aliases')."</td>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if( count( $attr->getAliases() ) == 0 )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							echo '('._('none').')';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							foreach( $attr->getAliases() as $alias_attr_name )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								echo "<a href=\"?view=attributes&viewvalue=" . $alias_attr_name. "\">$alias_attr_name</a> ";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "</td>";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "</tr>\n\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>"._('Used by object classes')."</td>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if( count( $attr->getUsedInObjectClasses() ) == 0 )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							echo '('._('none').')';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							foreach( $attr->getUsedInObjectClasses() as $used_in_oclass)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								echo "<a href=\"?view=objectClasses&viewvalue=" .
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									$used_in_oclass. "\">$used_in_oclass</a> ";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "</td>";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "</tr>\n\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						flush();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					  }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					echo "</table>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				} elseif( $view == 'matching_rules' ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        $schema_matching_rules = get_schema_matching_rules(null);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					echo '<small>' . _('Jump to a matching rule').'</small><br />';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					echo '<form  action="schema.php" method="get">';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        echo '<input type="hidden" name="view" value="matching_rules" />';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        echo '<select name="viewvalue" onChange="submit()">';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        echo '<option value=""> - all -</option>';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						foreach( $schema_matching_rules as $rule ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						  echo '<option value="'.$rule->getName().'"'.($rule->getName()==$viewvalue? ' selected ': '').'>'.$rule->getName().'</option>';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        echo '</select>';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				       	echo '<input type="submit" value="'._('Go').'" />';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					echo '</form>';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					echo "\n\n<table class=\"schema_attr\" width=\"100%\">\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					echo "<tr><th>" . _('Matching rule OID') . "</th><th>" . _('Name') . "</th><th>"._('Used by attributes')."</th></tr>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					flush();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$counter=1;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$schema_matching_rules = get_schema_matching_rules(null);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					if( ! $schema_matching_rules ) StatusMessage("ERROR", _("Unable to retrieve schema!"), "");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					foreach( $schema_matching_rules as $rule ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$counter++;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$oid = htmlspecialchars( $rule->getOID() );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$desc = htmlspecialchars( $rule->getName() );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if ( $viewvalue === null || $viewvalue==($rule->getName() )) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        if( ! is_null( $viewvalue ) )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            $viewed = true;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if( null !== $rule->getDescription() )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$desc .= ' (' . $rule->getDescription() . ')';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if( true === $rule->getIsObsolete() )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$desc .= ' <span style="color:red">' . _('Obsolete') . '</span>';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<tr class=\"" . ($counter%2==0?'even':'odd'). "\">";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>$oid</td>";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>$desc</td>";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "<td>";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if( count( $rule->getUsedByAttrs() ) == 0 ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							echo "<center>(" . _('none') . ")</center><br /><br />\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						} else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							echo "<table><tr><td style=\"text-align: right\"><form action=\"schema.php\" method=\"get\">";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							echo "<input type=\"hidden\" name=\"view\" value=\"attributes\" />";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							echo "<select style=\"width: 150px; color:black; background-color: #eee\" size=\"4\" name=\"viewvalue\">\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							foreach( $rule->getUsedByAttrs() as $attr )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								echo "<option>$attr</option>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							echo "</select><br /><input type=\"submit\" value=\""._('Go')."\" /></form></td></tr></table>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo "</td></tr>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						  }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					echo "</table>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				} elseif( $view == 'objectClasses' ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					flush();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$schema_oclasses = get_schema_objectclasses(null);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					if( ! $schema_oclasses ) StatusMessage("ERROR", _("Unable to retrieve schema!"), "");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					?>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					<small><?php echo _('Jump to an object class'); ?>:</small>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					<form action="schema.php" method="get"><input type="hidden" name="view" value="<?php echo $view; ?>" />
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					<select name="viewvalue"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					onChange="submit()">
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        <option value=""> - all - </option>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					<?php foreach( $schema_oclasses as $name => $oclass ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						echo '<option value="'
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						     .$oclass->getName()
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                     .'"'
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                     . ( 0 == strcasecmp( $oclass->getName(), $viewvalue ) ? ' selected ':'')
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                     .'>'.$oclass->getName()
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						     .'</option>';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					 } ?>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        </select><input type="submit" value="<?php echo _('Go'); ?>" />
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        </form>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        <?php flush(); ?>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    <?php foreach( $schema_oclasses as $name => $oclass ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        foreach( $oclass->getSupClasses() as $parent_name ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            $parent_name = $parent_name;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if( isset( $schema_oclasses[ $parent_name ] ) ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                $schema_oclasses[ $parent_name ]->addChildObjectClass( $oclass->getName() );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    } ?>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					<br />
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					<?php foreach( $schema_oclasses as $name => $oclass ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					  if ( $viewvalue === null || 0 == strcasecmp( $viewvalue, $oclass->getName() ) ){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        if( ! is_null( $viewvalue ) )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            $viewed = true;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        ?>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						<h4 class="schema_oclass"><?php echo $oclass->getName(); ?></h4>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						<h4 class="schema_oclass_sub"><?php echo _('OID'); ?>: <b><?php echo $oclass->getOID(); ?></b></h4>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						<?php if( $oclass->getDescription() ) { ?>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							<h4 class="schema_oclass_sub"><?php echo _('Description'); ?>: <b><?php echo $oclass->getDescription(); ?></b></h4>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						<?php } ?>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						<h4 class="schema_oclass_sub"><?php echo _('Type'); ?>: <b><?php echo $oclass->getType(); ?></b></h4>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						<?php if( $oclass->getIsObsolete() === true ) { ?>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							<h4 class="schema_oclass_sub"><?php echo _('This object class is obsolete.'); ?></h4>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						<?php } ?>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						<h4 class="schema_oclass_sub"><?php echo _('Inherits from'); ?>: <b><?php
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if( count( $oclass->getSupClasses() ) == 0 )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							echo "(" . _('none') . ")";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							foreach( $oclass->getSupClasses() as $i => $object_class ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								echo '<a title="' . _('Jump to an object class') . ' "
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									href="?view='.$view.'&viewvalue='.htmlspecialchars( $object_class ) ;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								echo '">' . htmlspecialchars( $object_class ) . '</a>';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								if( $i < count( $oclass->getSupClasses() ) - 1 )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									echo ', ';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						?></b></h4>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						<h4 class="schema_oclass_sub"><?php echo _('Parent to'); ?>: <b><?php
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        if( 0 == strcasecmp( $oclass->getName(), 'top' ) )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            echo "(<a href=\"schema.php?view=objectClasses\">all</a>)";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						elseif( count( $oclass->getChildObjectClasses() ) == 0 )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							echo "(" . _('none') . ")";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							foreach( $oclass->getChildObjectClasses() as $i => $object_class ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								echo '<a title="' . _('Jump to an object class') . ' "
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									href="?view='.$view.'&viewvalue='.htmlspecialchars( $object_class ) ;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								echo '">' . htmlspecialchars( $object_class ) . '</a>';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								if( $i < count( $oclass->getChildObjectClasses() ) - 1 )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									echo ', ';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						?></b></h4>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						<table width="100%" class="schema_oclasses">
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						<tr>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							<th width="50%"><b><?php echo _('Required attributes'); ?></b></th>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							<th width="50%"><b><?php echo _('Optional attributes'); ?></b></th>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						</tr>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						<tr>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							<td>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							<?php if( count( $oclass->getMustAttrs($schema_oclasses) ) > 0 ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								echo '<ul class="schema">';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								foreach( $oclass->getMustAttrs($schema_oclasses) as $attr ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									echo "<li><a href=\"?view=attributes&viewvalue=";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									echo rawurlencode( $attr->getName()  ). "\">" . htmlspecialchars($attr->getName());
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									echo "</a>";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									if( $attr->getSource() != $oclass->getName() )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										echo "<br /><small>  ("._('Inherited from')." ";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										echo "<a href=\"?view=objectClasses&viewvalue=" . $attr->getSource()  . "\">" . $attr->getSource() . "</a>";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										echo ")</small>";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									echo "</li>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								echo "</ul>";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							} else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								echo "<center>(" . _('none') . ")</center>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							?>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						</td>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						<td width="50%">
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						<?php
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if( count( $oclass->getMayAttrs($schema_oclasses) ) > 0 ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							echo '<ul class="schema">';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							foreach( $oclass->getMayAttrs($schema_oclasses) as $attr ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								echo "<li><a href=\"?view=attributes&viewvalue=";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								echo rawurlencode( $attr->getName() ) . "\">" . htmlspecialchars($attr->getName() );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								echo "</a>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								if( $attr->getSource() != $oclass->getName() )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									echo "<br /><small>   ("._('Inherited from')." ";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									echo "<a href=\"?view=objectClasses&viewvalue=" . $attr->getSource()  . "\">" . $attr->getSource() . "</a>";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									echo ")</small>";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								echo "</li>";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							echo "</ul>";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							echo "<center>(" . _('none') . ")</center>\n";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					?>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					</td>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					</tr>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					</table>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					<?php }  } /* End foreach objectClass */ ?>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				<?php } /* End else (displaying objectClasses */ ?>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				<?php
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if( ! is_null( $viewvalue ) && ! $viewed ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    StatusMessage("ERROR",  sprintf( _('No such schema item: "%s"'), htmlspecialchars( $viewvalue ) ) );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				$availableViews = array('objectClass', 'attribute', 'syntax', 'rule');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				$selectedView = 'objectClass';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if (!empty($_GET['display']) && in_array($_GET['display'], $availableViews)) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$selectedView = $_GET['display'];
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				$tabindex = 1;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				$row = new htmlResponsiveRow();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				$row->addVerticalSpacer('2rem');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				$row->add(new htmlSpacer('1rem', '1px'), 0, 2);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				$row->add(new htmlLink(_('Object classes'), 'schema.php'), 12, 2, 2, 'font-big text-center');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				$row->add(new htmlLink(_('Attribute types'), 'schema.php?display=attribute'), 12, 2, 2, 'font-big text-center');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				$row->add(new htmlLink(_('Syntaxes'), 'schema.php?display=syntax'), 12, 2, 2, 'font-big text-center');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				$row->add(new htmlLink(_('Matching rules'), 'schema.php?display=rule'), 12, 2, 2, 'font-big text-center');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				$row->add(new htmlSpacer('1rem', '1px'), 0, 2);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				$row->addVerticalSpacer('2rem');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if ($selectedView === 'syntax') {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					displaySyntaxList($row);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				elseif( $selectedView == 'attribute' ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					displayAttributeList($row);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				elseif ($selectedView === 'rule') {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					displayRuleList($row);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				elseif( $selectedView == 'objectClass' ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					displayObjectClassList($row);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				parseHtml(null, $row, array(), false, $tabindex, 'user');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				echo '</div>';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				include '../../lib/adminFooter.inc';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				/**
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				 * Displays the syntax list.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				 *
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				 * @param htmlResponsiveRow $row row
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				 */
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				function displaySyntaxList(&$row) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$schema_syntaxes = get_schema_syntaxes(null);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					if (!$schema_syntaxes) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$row->add(new htmlStatusMessage("ERROR", _("Unable to retrieve schema!")), 12);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						return;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$data = array();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$labels = array(_('Syntax OID'), _('Description'));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$pos = 0;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$highlighted = array();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					foreach( $schema_syntaxes as $syntax ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$oid = new htmlOutputText($syntax->getOID());
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$description = new htmlOutputText($syntax->getDescription());
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$data[] = array($oid, $description);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if (!empty($_GET['sel']) && ($syntax->getOID() === $_GET['sel'])) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$highlighted[] = $pos;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$pos++;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$row->add(new htmlResponsiveTable($labels, $data, $highlighted), 12);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				/**
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				 * Displays the matching rule list.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				 *
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				 * @param htmlResponsiveRow $row row
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				 */
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				function displayRuleList(&$row) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    $rules = get_schema_matching_rules(null);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					if (!$rules) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$row->add(new htmlStatusMessage("ERROR", _("Unable to retrieve schema!")), 12);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						return;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    $row->addLabel(new htmlOutputText(_('Jump to a matching rule')));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    $availableRules = array('');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    foreach ($rules as $rule) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$availableRules[] = $rule->getName();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    $selectedRule = array();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    if (!empty($_GET['sel']) && in_array($_GET['sel'], $availableRules)) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    	$selectedRule[] = $_GET['sel'];
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    $ruleSelect = new htmlSelect('lam-schema-select', $availableRules, $selectedRule);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    $ruleSelect->addDataAttribute('display', 'rule');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$row->addField($ruleSelect);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$row->addVerticalSpacer('1rem');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$labels = array(_('Matching rule OID'), _('Name'), _('Used by attributes'));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$data = array();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					foreach ($rules as $rule) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if (!empty($selectedRule) && !in_array($rule->getName(), $selectedRule)) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							continue;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$oid = new htmlOutputText($rule->getOID());
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$name = $rule->getName();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if (!empty($rule->getDescription())) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$name .= ' (' . $rule->getDescription() . ')';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if ($rule->getIsObsolete()) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$name .= ' (' . _('Obsolete') . ')';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$nameText = new htmlOutputText($name);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$attributes = new htmlGroup();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						foreach ($rule->getUsedByAttrs() as $attr) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$attributes->addElement(new htmlDiv(null, new htmlLink($attr, 'schema.php?display=attribute&sel=' . $attr)));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$data[] = array($oid, $nameText, new htmlDiv(null, $attributes, array('smallScroll')));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$row->add(new htmlResponsiveTable($labels, $data), 12);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				/**
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				 * Displays the object class list.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				 *
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				 * @param htmlResponsiveRow $row row
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				 */
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				function displayObjectClassList(&$row) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$objectClasses = get_schema_objectclasses(null);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					if (!$objectClasses) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$row->add(new htmlStatusMessage("ERROR", _("Unable to retrieve schema!")), 12);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						return;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    $row->addLabel(new htmlOutputText(_('Jump to an object class')));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    $availableClasses = array(_('all') => '');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    foreach ($objectClasses as $objectClass) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$availableClasses[$objectClass->getName()] = $objectClass->getName();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    $selectedClass = array();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    if (isset($_GET['sel']) && (empty($_GET['sel']) || array_key_exists(strtolower($_GET['sel']), $objectClasses))) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    	$selectedClass[0] = $_GET['sel'];
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    if (empty($selectedClass) && (sizeof($objectClasses) > 0)) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    	// select first class by default
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    	$selectedClassNames = array_keys($objectClasses);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    	$selectedClass[0] = $selectedClassNames[0];
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    $classSelect = new htmlSelect('lam-schema-select', $availableClasses, $selectedClass);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    $classSelect->addDataAttribute('display', 'objectClass');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    $classSelect->setHasDescriptiveElements(true);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    $classSelect->setSortElements(false);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$row->addField($classSelect);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$row->addVerticalSpacer('1rem');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					// fill child object classes
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					foreach ($objectClasses as $name => $objectClass) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if (!empty($objectClass->getSupClasses())) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							foreach ($objectClass->getSupClasses() as $subClass) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								if (!isset($objectClasses[strtolower($subClass)])) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									continue;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								$objectClasses[strtolower($subClass)]->addChildObjectClass($name);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					foreach ($objectClasses as $name => $objectClass) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if (!empty($selectedClass[0]) && ($name !== strtolower($selectedClass[0]))) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							continue;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$row->add(new htmlSubTitle($name), 12);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$row->addLabel(new htmlOutputText(_('OID')), 'bold-mobile-only');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$row->addField(new htmlOutputText($objectClass->getOID()));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if (!empty($objectClass->getDescription())) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addLabel(new htmlOutputText(_('Description')), 'bold-mobile-only');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addField(new htmlOutputText($objectClass->getDescription()));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$row->addLabel(new htmlOutputText(_('Type')), 'bold-mobile-only');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$row->addField(new htmlOutputText($objectClass->getType()));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if ($objectClass->getIsObsolete()) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addLabel(new htmlOutputText(_('Obsolete')));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addField(new htmlOutputText(_('yes')));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if (!empty($objectClass->getSupClasses())) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addLabel(new htmlOutputText(_('Inherits from')), 'bold-mobile-only');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$subClasses = new htmlGroup();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							foreach ($objectClass->getSupClasses() as $subClass) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								$subClasses->addElement(new htmlDiv(null, new htmlLink($subClass, 'schema.php?display=objectClass&sel=' . rawurlencode($subClass))));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addField($subClasses);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if (!empty($objectClass->getChildObjectClasses())) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addLabel(new htmlOutputText(_('Parent to')), 'bold-mobile-only');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$subClasses = new htmlGroup();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							foreach ($objectClass->getChildObjectClasses() as $subClass) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								$subClasses->addElement(new htmlDiv(null, new htmlLink($subClass, 'schema.php?display=objectClass&sel=' . rawurlencode($subClass))));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addField($subClasses);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if (!empty($objectClass->getMustAttrs())) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addLabel(new htmlOutputText(_('Required attributes')), 'bold-mobile-only');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$attributes = new htmlGroup();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							foreach ($objectClass->getMustAttrs() as $attribute) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								$attributes->addElement(new htmlDiv(null, new htmlLink($attribute->getName(), 'schema.php?display=attribute&sel=' . rawurlencode($attribute->getName()))));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addField($attributes);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if (!empty($objectClass->getMayAttrs())) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addLabel(new htmlOutputText(_('Optional attributes')), 'bold-mobile-only');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$attributes = new htmlGroup();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							foreach ($objectClass->getMayAttrs() as $attribute) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								$attributes->addElement(new htmlDiv(null, new htmlLink($attribute->getName(), 'schema.php?display=attribute&sel=' . rawurlencode($attribute->getName()))));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addField($attributes);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				/**
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				 * Displays the attributes list.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				 *
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				 * @param htmlResponsiveRow $row row
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				 */
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				function displayAttributeList($row) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$attributes = get_schema_attributes(null);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					if (!$attributes) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$row->add(new htmlStatusMessage("ERROR", _("Unable to retrieve schema!")), 12);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						return;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$row->addLabel(new htmlOutputText(_('Jump to an attribute type')));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$availableAttributes = array(_('all') => '');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					foreach ($attributes as $attribute) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$availableAttributes[$attribute->getName()] = $attribute->getName();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$selectedAttribute = array();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					if (isset($_GET['sel']) && (empty($_GET['sel']) || array_key_exists(strtolower($_GET['sel']), $attributes))) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$selectedAttribute[0] = $_GET['sel'];
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					if (empty($selectedAttribute) && (sizeof($availableAttributes) > 0)) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						// select first attribute by default
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$attributeNames = array_keys($availableAttributes);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$selectedAttribute[0] = $attributeNames[1];
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$attributeSelect = new htmlSelect('lam-schema-select', $availableAttributes, $selectedAttribute);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$attributeSelect->addDataAttribute('display', 'attribute');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$attributeSelect->setHasDescriptiveElements(true);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$attributeSelect->setSortElements(false);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$row->addField($attributeSelect);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$row->addVerticalSpacer('1rem');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					foreach ($attributes as $name => $attribute) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if (!empty($selectedAttribute[0]) && ($name !== strtolower($selectedAttribute[0]))) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							continue;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$row->add(new htmlSubTitle($name), 12);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if (!empty($attribute->getDescription())) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addLabel(new htmlOutputText(_('Description')), 'bold-mobile-only');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addField(new htmlOutputText($attribute->getDescription()));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$row->addLabel(new htmlOutputText(_('OID')), 'bold-mobile-only');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$row->addField(new htmlOutputText($attribute->getOID()));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if ($attribute->getIsObsolete()) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addLabel(new htmlOutputText(_('Obsolete')), 'bold-mobile-only');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addField(new htmlOutputText(_('yes')));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if (!empty($attribute->getSupAttribute())) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addLabel(new htmlOutputText(_('Inherits from')), 'bold-mobile-only');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addField(new htmlOutputText($attribute->getSupAttribute()));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if (!empty($attribute->getEquality())) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addLabel(new htmlOutputText(_('Equality')), 'bold-mobile-only');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addField(new htmlLink($attribute->getEquality(), 'schema.php?display=rule&sel=' . rawurldecode($attribute->getEquality())));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if (!empty($attribute->getOrdering())) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addLabel(new htmlOutputText(_('Ordering')), 'bold-mobile-only');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addField(new htmlLink($attribute->getOrdering(), 'schema.php?display=rule&sel=' . rawurldecode($attribute->getOrdering())));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if (!empty($attribute->getSubstr())) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addLabel(new htmlOutputText(_('Substring Rule')), 'bold-mobile-only');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addField(new htmlLink($attribute->getSubstr(), 'schema.php?display=rule&sel=' . rawurldecode($attribute->getSubstr())));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if (!empty($attribute->getSyntaxOID())) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addLabel(new htmlOutputText(_('Syntax')), 'bold-mobile-only');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addField(new htmlLink($attribute->getSyntaxOID(), 'schema.php?display=syntax&sel=' . rawurldecode($attribute->getSyntaxOID())));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$row->addLabel(new htmlOutputText(_('Single valued')), 'bold-mobile-only');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$row->addField(new htmlOutputText($attribute->getIsSingleValue() ? _('yes') : _('no')));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$row->addLabel(new htmlOutputText(_('Collective')), 'bold-mobile-only');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$row->addField(new htmlOutputText($attribute->getIsCollective() ? _('yes') : _('no')));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$row->addLabel(new htmlOutputText(_('User modification')), 'bold-mobile-only');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						$row->addField(new htmlOutputText($attribute->getIsNoUserModification() ? _('no') : _('yes')));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if (!empty($attribute->getUsage())) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addLabel(new htmlOutputText(_('Usage')), 'bold-mobile-only');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addField(new htmlOutputText($attribute->getUsage()));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if (!empty($attribute->getMaxLength())) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addLabel(new htmlOutputText(_('Maximum length')), 'bold-mobile-only');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addField(new htmlOutputText($attribute->getMaxLength()));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if (!empty($attribute->getAliases())) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addLabel(new htmlOutputText(_('Aliases')), 'bold-mobile-only');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$aliases = new htmlGroup();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							foreach ($attribute->getAliases() as $alias) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								$aliases->addElement(new htmlDiv(null, new htmlLink($alias, 'schema.php?display=attribute&sel=' . rawurlencode($alias))));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addField($aliases);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if (!empty($attribute->getUsedInObjectClasses())) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addLabel(new htmlOutputText(_('Used by object classes')), 'bold-mobile-only');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$objectClasses = new htmlGroup();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							foreach ($attribute->getUsedInObjectClasses() as $objectClass) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								$objectClasses->addElement(new htmlDiv(null, new htmlLink($objectClass, 'schema.php?display=objectClass&sel=' . rawurlencode($objectClass))));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							$row->addField($objectClasses);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				include '../main_footer.php';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				?>
 | 
			
		
		
	
	
		
			
				
					| 
						 
							
							
							
						 
					 | 
				
			
			 | 
			 | 
			
				
 
 |