PHP Classes

File: htdocs/add_attr_form.php

Recommend this page to a friend!
  Classes of ask sa sa   PHP LDAP admin   htdocs/add_attr_form.php   Download  
File: htdocs/add_attr_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,339 bytes
 

Contents

Class file image Download
<?php
/**
 * Displays a form for adding an attribute/value to an LDAP entry.
 *
 * @package phpLDAPadmin
 * @subpackage Page
 */

/**
 */

require './common.php';

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

# 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();

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

    echo
'<div style="text-align: center;">';
    if (
count($request['template']->getAvailAttrs())) {
       
# If we have more than the configured entries, we'll separate our input to the old ways.
       
if (count($request['template']->getAvailAttrs()) > $_SESSION[APPCONFIG]->getValue('appearance','max_add_attrs')) {
           
$attr = array();
           
$attr['avail'] = array();
           
$attr['binary'] = array();

            foreach (
$request['template']->getAvailAttrs() as $attribute)
                if (
$app['server']->isAttrBinary($attribute->getName()))
                   
array_push($attr['binary'],$attribute);
                else
                   
array_push($attr['avail'],$attribute);

            if (
count($attr['avail']) > 0) {
                echo
'<br />';
                echo
_('Add new attribute');
                echo
'<br />';
                echo
'<br />';

                echo
'<form action="cmd.php" method="post">';
                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
'<select name="single_item_attr">';

                foreach (
$attr['avail'] as $attribute) {
                   
# Is there a user-friendly translation available for this attribute?
                   
if ($attribute->haveFriendlyName())
                       
$attr_display = sprintf('%s (%s)',$attribute->getFriendlyName(),$attribute->getName(false));
                    else
                       
$attr_display = $attribute->getName(false);

                   
printf('<option value="%s">%s</option>',htmlspecialchars($attribute->getName()),$attr_display);
                }

                echo
'</select>';

                echo
'<input type="text" name="single_item_value" size="20" />';
               
printf('<input type="submit" name="submit" value="%s" class="update_dn" />',_('Add'));
                echo
'</div>';
                echo
'</form>';

            } else {
                echo
'<br />';
               
printf('<small>(%s)</small>',_('no new attributes available for this entry'));
            }

            if (
count($attr['binary']) > 0) {
                echo
'<br />';
                echo
_('Add new binary attribute');
                echo
'<br />';
                echo
'<br />';

                echo
'<!-- Form to add a new BINARY attribute to this entry -->';
                echo
'<form action="cmd.php" method="post" enctype="multipart/form-data">';
                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" />',$request['dn']);
                echo
'<input type="hidden" name="binary" value="true" />';

                echo
'<select name="single_item_attr">';

                foreach (
$attr['binary'] as $attribute) {
                   
# Is there a user-friendly translation available for this attribute?
                   
if ($attribute->haveFriendlyName())
                       
$attr_display = sprintf('%s (%s)',$attribute->getFriendlyName(),$attribute->getName(false));
                    else
                       
$attr_display = $attribute->getName(false);

                   
printf('<option value="%s">%s</option>',htmlspecialchars($attribute->getName()),$attr_display);
                }

                echo
'</select>';

                echo
'<input type="file" name="single_item_value" size="20" />';
               
printf('<input type="submit" name="submit" value="%s" class="update_dn" />',_('Add'));

                if (!
ini_get('file_uploads'))
                   
printf('<br /><small><b>%s</b></small><br />',
                       
_('Your PHP configuration has disabled file uploads. Please check php.ini before proceeding.'));

                else
                   
printf('<br /><small><b>%s: %s</b></small><br />',_('Maximum file size'),ini_get('upload_max_filesize'));

                echo
'</div>';
                echo
'</form>';

            } else {
                echo
'<br />';
               
printf('<small>(%s)</small>',_('no new binary attributes available for this entry'));
            }

        } else {
            echo
'<br />';

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

            echo
'<table class="entry" cellspacing="0" align="center" border="0">';

            foreach (
$request['template']->getAvailAttrs() as $attribute)
               
$request['page']->draw('Template',$attribute);

           
$request['page']->drawFormSubmitButton();
            echo
'</table>';

           
$request['page']->drawFormEnd();
        }

    } else {
       
printf('<small>(%s)</small>',_('no new attributes available for this entry'));
    }

    echo
'</div>';

# The ajax addition (it is going into an existing TemplateRendered page
} else {
   
# Put our DIV there for the callback
   
echo '<fieldset>';
   
printf('<legend>%s</legend>',_('Add Attribute'));
    echo
'<div id="ajADDATTR">';
    echo
'<table class="entry" cellspacing="0" align="center" border="0">';
    echo
'<td valign="top" align="center">';

   
printf('<select name="attr" onchange="ajDISPLAY(\'%s\',\'cmd=add_value_form&server_id=%s&dn=%s&attr=\'+this.value,\'%s\',\'append\');">',
       
'ADDATTR',$app['server']->getIndex(),$request['template']->getDNEncode(),_('Please Wait'));

   
printf('<option value="%s">%s</option>','','');
    foreach (
$request['template']->getAvailAttrs() as $attribute)
       
printf('<option value="%s">%s</option>',htmlspecialchars($attribute->getName()),$attribute->getFriendlyName());

    echo
'</select>';

    echo
'</td>';
    echo
'</table>';
    echo
'</div>';
    echo
'</fieldset>';
}
?>