PHP Classes

File: htdocs/add_value_form.php

Recommend this page to a friend!
  Classes of ask sa sa   PHP LDAP admin   htdocs/add_value_form.php   Download  
File: htdocs/add_value_form.php
Role: Example script
Content type: text/plain
Description: Example script
Class: PHP LDAP admin
Perform operations to administer a LDAP server
Author: By
Last change:
Date: 1 year ago
Size: 6,214 bytes
 

Contents

Class file image Download
<?php
/**
 * Displays a form to allow the user to enter a new value to add
 * to the existing list of values for a multi-valued attribute.
 *
 * @package phpLDAPadmin
 * @subpackage Page
 */

/**
 */

require './common.php';

# The DN and ATTR we are working with.
$request = array();
$request['dn'] = get_request('dn','GET',true);
$request['attr'] = get_request('attr','GET',true);

# Check if the entry exists.
if (! $request['dn'] || ! $app['server']->dnExists($request['dn']))
   
error(sprintf(_('The entry (%s) does not exist.'),$request['dn']),'error','index.php');

$request['page'] = new TemplateRender($app['server']->getIndex(),get_request('template','REQUEST',false,null));
$request['page']->setDN($request['dn']);
$request['page']->accept(true);
$request['template'] = $request['page']->getTemplate();

/*
if ($request['attribute']->isReadOnly())
    error(sprintf(_('The attribute (%s) is in readonly mode.'),$request['attr']),'error','index.php');
*/

# Render the form
if (! strcasecmp($request['attr'],'objectclass') || get_request('meth','REQUEST') != 'ajax') {
   
# Render the form.
   
$request['page']->drawTitle(sprintf('%s <b>%s</b> %s <b>%s</b>',_('Add new'),htmlspecialchars($request['attr']),_('value to'),htmlspecialchars(get_rdn($request['dn']))));
   
$request['page']->drawSubTitle();

    if (!
strcasecmp($request['attr'],'objectclass')) {
        echo
'<form action="cmd.php" method="post" class="new_value" id="entry_form">';
        echo
'<div>';
        echo
'<input type="hidden" name="cmd" value="add_oclass_form" />';

    } else {
        echo
'<form action="cmd.php" method="post" class="new_value" id="entry_form" enctype="multipart/form-data" 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" />';
    }

   
printf('<input type="hidden" name="server_id" value="%s" />',$app['server']->getIndex());
   
printf('<input type="hidden" name="dn" value="%s" />',htmlspecialchars($request['dn']));
    echo
'</div>';

    echo
'<table class="forminput" border="0" style="margin-left: auto; margin-right: auto;">';
    echo
'<tr>';

   
$request['attribute'] = $request['template']->getAttribute($request['attr']);
   
$request['count'] = $request['attribute']->getValueCount();

    if (
$request['count']) {
       
printf('<td class="top">%s <b>%s</b> %s <b>%s</b>:</td>',
           
_('Current list of'),$request['count'],_('values for attribute'),$request['attribute']->getFriendlyName());

        echo
'<td>';

       
# Display current attribute values
       
echo '<table border="0"><tr><td>';
        for (
$i=0;$i<$request['count'];$i++) {
            if (
$i > 0)
                echo
'<br/>';
           
$request['page']->draw('CurrentValue',$request['attribute'],$i);
           
$request['page']->draw('HiddenValue',$request['attribute'],$i);
        }
        echo
'</td></tr></table>';

        echo
'</td>';

    } else {
       
printf('<td>%s <b>%s</b>.</td>',
           
_('No current value for attribute'),$request['attribute']->getFriendlyName());
        echo
'<td><br /><br /></td>';
    }

    echo
'</tr>';

    echo
'<tr>';
   
printf('<td class="top">%s</td>',_('Enter the value(s) you would like to add:'));
    echo
'<td>';

    if (!
strcasecmp($request['attr'],'objectclass')) {
       
# If our attr is an objectClass, fetch all available objectClasses and remove those from the list that are already defined in the entry
       
$socs = $app['server']->SchemaObjectClasses();

        foreach (
$request['attribute']->getValues() as $oclass)
            unset(
$socs[strtolower($oclass)]);

       
# Draw objectClass selection
       
echo '<table border="0">';
        echo
'<tr><td>';
        echo
'<select name="new_values[objectclass][]" multiple="multiple" size="15">';
        foreach (
$socs as $name => $oclass) {
           
# Exclude any structural ones, that are not in the heirachy, as they'll only generate an LDAP_OBJECT_CLASS_VIOLATION
           
if (($oclass->getType() == 'structural') && ! $oclass->isRelated($request['attribute']->getValues()))
                continue;

           
printf('<option value="%s">%s</option>',$oclass->getName(false),$oclass->getName(false));
        }
        echo
'</select>';
        echo
'</td></tr><tr><td>';

        echo
'<br />';
       
printf('<input id="save_button" type="submit" value="%s" %s />',
           
_('Add new ObjectClass'),
            (
isAjaxEnabled() ? sprintf('onclick="return ajSUBMIT(\'BODY\',document.getElementById(\'entry_form\'),\'%s\');"',_('Updating Object')) : ''));
        echo
'</td></tr></table>';
        echo
'</td>';
        echo
'</tr>';

        if (
$_SESSION[APPCONFIG]->getValue('appearance','show_hints'))
           
printf('<tr><td colspan="2"><small><br /><img src="%s/light.png" alt="Hint" /><span class="hint">%s</span></small></td></tr>',
               
IMGDIR,_('Note: You may be required to enter new attributes that these objectClass(es) require'));

        echo
'</table>';
        echo
'</form>';

    } else {
       
# Draw a blank field
       
echo '<table border="0"><tr><td>';
       
$request['page']->draw('FormValue',$request['attribute'],$request['count']);
        echo
'</td></tr><tr><td>';

       
$sattr = $app['server']->getSchemaAttribute($request['attr']);

        if (
$sattr->getDescription())
           
printf('<small><b>%s:</b> %s</small><br />',_('Description'),$sattr->getDescription());

        if (
$sattr->getType())
           
printf('<small><b>%s:</b> %s</small><br />',_('Syntax'),$sattr->getType());

        if (
$sattr->getMaxLength())
           
printf('<small><b>%s:</b> %s %s</small><br />',
               
_('Maximum Length'),number_format($sattr->getMaxLength()),_('characters'));

        echo
'<br />';
       
printf('<input type="submit" id="save_button" name="submit" value="%s" />',_('Add New Value'));
        echo
'</td></tr></table>';

        echo
'</td></tr>';
        echo
'</table>';
        echo
'</form>';
    }

} else {
    if (
is_null($attribute = $request['template']->getAttribute($request['attr']))) {
       
$request['template']->addAttribute($request['attr'],array('values'=>array()));
       
$attribute = $request['template']->getAttribute($request['attr']);
       
$attribute->show();

        echo
'<table class="entry" cellspacing="0" align="center" border="0">';
       
$request['page']->draw('Template',$attribute);
       
$request['page']->draw('Javascript',$attribute);
        echo
'</table>';

    } else {
       
$request['count'] = $attribute->getValueCount();
       
$request['page']->draw('FormReadWriteValue',$attribute,$request['count']);
    }
}
?>