From 033c30744574fa56219d892b606656673c5d8b54 Mon Sep 17 00:00:00 2001 From: Roland Gruber Date: Sun, 11 Dec 2011 13:36:34 +0000 Subject: [PATCH] added labeledURI --- lam/lib/modules/inetOrgPerson.inc | 114 +++++++++++++++++++++++++++--- 1 file changed, 103 insertions(+), 11 deletions(-) diff --git a/lam/lib/modules/inetOrgPerson.inc b/lam/lib/modules/inetOrgPerson.inc index 50d6a1e7..0b165910 100644 --- a/lam/lib/modules/inetOrgPerson.inc +++ b/lam/lib/modules/inetOrgPerson.inc @@ -115,7 +115,7 @@ class inetOrgPerson extends baseModule implements passwordService { $return['attributes'] = array('uid', 'cn', 'employeeType', 'givenName', 'jpegPhoto', 'mail', 'manager', 'mobile', 'title', 'telephoneNumber', 'facsimileTelephoneNumber', 'street', 'postOfficeBox', 'postalCode', 'postalAddress', 'sn', 'userPassword', 'description', 'homePhone', 'roomNumber', 'businessCategory', 'l', 'st', 'physicalDeliveryOfficeName', - 'carLicense', 'departmentNumber', 'o', 'employeeNumber', 'initials', 'registeredAddress'); + 'carLicense', 'departmentNumber', 'o', 'employeeNumber', 'initials', 'registeredAddress', 'labeledURI'); // self service search attributes $return['selfServiceSearchAttributes'] = array('uid', 'mail', 'cn', 'surname', 'givenName', 'employeeNumber'); // self service field settings @@ -125,7 +125,7 @@ class inetOrgPerson extends baseModule implements passwordService { 'postalCode' => _('Postal code'), 'postOfficeBox' => _('Post office box'), 'jpegPhoto' => _('Photo'), 'homePhone' => _('Home telephone number'), 'roomNumber' => _('Room number'), 'carLicense' => _('Car license'), 'location' => _('Location'), 'state' => _('State'), 'officeName' => _('Office name'), 'businessCategory' => _('Business category'), - 'departmentNumber' => _('Department(s)'), 'initials' => _('Initials'), 'title' => _('Job title')); + 'departmentNumber' => _('Department(s)'), 'initials' => _('Initials'), 'title' => _('Job title'), 'labeledURI' => _('Web site')); // profile elements $profileElements = array(); if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideStreet')) { @@ -158,6 +158,9 @@ class inetOrgPerson extends baseModule implements passwordService { if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideEMailAddress')) { $profileElements[] = new htmlTableExtendedInputField(_('Email address'), 'inetOrgPerson_mail', null, 'mail'); } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideLabeledURI')) { + $profileElements[] = new htmlTableExtendedInputField(_('Web site'), 'inetOrgPerson_labeledURI', null, 'labeledURIList'); + } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideDepartments')) { $profileElements[] = new htmlTableExtendedInputField(_('Department(s)'), 'inetOrgPerson_departmentNumber', null, 'departmentNumber'); } @@ -233,31 +236,31 @@ class inetOrgPerson extends baseModule implements passwordService { $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hidePostOfficeBox', false, _('Post office box'), null, false)); $configContainerOptions->addElement(new htmlOutputText(' ')); $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hidePostalCode', false, _('Postal code'), null, false)); - $configContainerOptions->addNewLine(); - $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideLocation', false, _('Location'), null, false)); $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideLocation', false, _('Location'), null, false)); + $configContainerOptions->addNewLine(); $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideState', false, _('State'), null, false)); $configContainerOptions->addElement(new htmlOutputText(' ')); $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hidePostalAddress', false, _('Postal address'), null, false)); $configContainerOptions->addElement(new htmlOutputText(' ')); $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideRegisteredAddress', false, _('Registered address'), null, false)); - $configContainerOptions->addNewLine(); + $configContainerOptions->addElement(new htmlOutputText(' ')); $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideOfficeName', false, _('Office name'), null, false)); $configContainerOptions->addElement(new htmlOutputText(' ')); $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideRoomNumber', false, _('Room number'), null, false)); - $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addNewLine(); $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideTelephoneNumber', false, _('Telephone number'), null, false)); $configContainerOptions->addElement(new htmlOutputText(' ')); $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideHomeTelephoneNumber', false, _('Home telephone number'), null, false)); - $configContainerOptions->addNewLine(); + $configContainerOptions->addElement(new htmlOutputText(' ')); $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideMobileNumber', false, _('Mobile number'), null, false)); $configContainerOptions->addElement(new htmlOutputText(' ')); $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideFaxNumber', false, _('Fax number'), null, false)); $configContainerOptions->addElement(new htmlOutputText(' ')); $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideEMailAddress', false, _('Email address'), null, false)); - $configContainerOptions->addElement(new htmlOutputText(' ')); - $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideJobTitle', false, _('Job title'), null, false)); $configContainerOptions->addNewLine(); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideJobTitle', false, _('Job title'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideCarLicense', false, _('Car license'), null, false)); $configContainerOptions->addElement(new htmlOutputText(' ')); $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideEmployeeType', false, _('Employee type'), null, false)); @@ -273,6 +276,8 @@ class inetOrgPerson extends baseModule implements passwordService { $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideEmployeeNumber', false, _('Employee number'), null, false)); $configContainerOptions->addElement(new htmlOutputText(' ')); $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideInitials', false, _('Initials'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideLabeledURI', false, _('Web site'), null, false)); $configContainer->addElement($configContainerOptions, true); if (isset($_SESSION['conf_config'])) { // add password hash type if posixAccount is inactive @@ -438,6 +443,14 @@ class inetOrgPerson extends baseModule implements passwordService { 'example' => _('user@company.com') ); } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideLabeledURI')) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_labeledURI', + 'description' => _('Web site'), + 'help' => 'labeledURIList', + 'example' => _('http://www.company.com') + ); + } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideRoomNumber')) { $return['upload_columns'][] = array( 'name' => 'inetOrgPerson_roomNumber', @@ -544,6 +557,9 @@ class inetOrgPerson extends baseModule implements passwordService { if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideEMailAddress')) { $return['PDF_fields']['mail'] = _('Email address'); } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideLabeledURI')) { + $return['PDF_fields']['labeledURI'] = _('Web site'); + } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideJobTitle')) { $return['PDF_fields']['title'] = _('Job title'); } @@ -641,6 +657,14 @@ class inetOrgPerson extends baseModule implements passwordService { "Headline" => _("Email address"), "Text" => _("The user's email address.") . ' ' . _('Multiple values are separated by semicolon.') ), + 'labeledURI' => array( + "Headline" => _("Web site"), + "Text" => _("The user's web site or any other comment (e.g. http://www.company.com).") + ), + 'labeledURIList' => array( + "Headline" => _("Web site"), + "Text" => _("The user's web site or any other comment (e.g. http://www.company.com).") . ' ' . _('Multiple values are separated by semicolon.') + ), 'cn' => array ( "Headline" => _("Common name"), "Text" => _("This is the natural name of the user. If empty, the first and last name is used.") @@ -901,6 +925,20 @@ class inetOrgPerson extends baseModule implements passwordService { } $this->attributes['postalAddress'] = array_values($this->attributes['postalAddress']); } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideLabeledURI')) { + $labeledURICounter = 0; + while (isset($_POST['labeledURI' . $labeledURICounter])) { + $this->attributes['labeledURI'][$labeledURICounter] = $_POST['labeledURI' . $labeledURICounter]; + if ($this->attributes['labeledURI'][$labeledURICounter] == '') { + unset($this->attributes['labeledURI'][$labeledURICounter]); + } + $labeledURICounter++; + } + if (isset($_POST['addLabeledURI'])) { + $this->attributes['labeledURI'][] = ''; + } + $this->attributes['labeledURI'] = array_values($this->attributes['labeledURI']); + } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideRegisteredAddress')) { $addressCounter = 0; while (isset($_POST['registeredAddress' . $addressCounter])) { @@ -1160,7 +1198,7 @@ class inetOrgPerson extends baseModule implements passwordService { if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideTelephoneNumber') || !$this->isBooleanConfigOptionSet('inetOrgPerson_hideHomeTelephoneNumber') || !$this->isBooleanConfigOptionSet('inetOrgPerson_hideMobileNumber') || !$this->isBooleanConfigOptionSet('inetOrgPerson_hideFaxNumber') - || !$this->isBooleanConfigOptionSet('inetOrgPerson_hideEMailAddress')) { + || !$this->isBooleanConfigOptionSet('inetOrgPerson_hideEMailAddress') || !$this->isBooleanConfigOptionSet('inetOrgPerson_hideLabeledURI')) { $fieldContainer->addElement(new htmlSubTitle(_('Contact data')), true); } @@ -1189,7 +1227,33 @@ class inetOrgPerson extends baseModule implements passwordService { if (isset($this->attributes['mail'][0])) $email = implode('; ', $this->attributes['mail']); $fieldContainer->addElement(new htmlTableExtendedInputField(_('Email address'), 'mail', $email, 'mail'), true); } - + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideLabeledURI')) { + $labeledURI = array(); + if (isset($this->attributes['labeledURI'][0])) { + $labeledURI = $this->attributes['labeledURI']; + } + if (sizeof($labeledURI) == 0) { + $labeledURI[] = ''; + } + $labeledURILabel = new htmlOutputText(_('Web site')); + $labeledURILabel->alignment = htmlElement::ALIGN_TOP; + $fieldContainer->addElement($labeledURILabel); + $labeledURIContainer = new htmlGroup(); + for ($i = 0; $i < sizeof($labeledURI); $i++) { + $labeledURIContainer->addElement(new htmlInputField('labeledURI' . $i, $labeledURI[$i])); + if ($i < (sizeof($labeledURI) - 1)) { + $labeledURIContainer->addElement(new htmlOutputText('
', false)); + } + else { + $labeledURIContainer->addElement(new htmlButton('addLabeledURI', 'add.png', true)); + } + } + $fieldContainer->addElement($labeledURIContainer); + $labeledURIHelp = new htmlHelpLink('labeledURI'); + $labeledURIHelp->alignment = htmlElement::ALIGN_TOP; + $fieldContainer->addElement($labeledURIHelp, true); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideJobTitle') || !$this->isBooleanConfigOptionSet('inetOrgPerson_hideCarLicense') || !$this->isBooleanConfigOptionSet('inetOrgPerson_hideEmployeeType') || !$this->isBooleanConfigOptionSet('inetOrgPerson_hideBusinessCategory') || !$this->isBooleanConfigOptionSet('inetOrgPerson_hideDepartments') || !$this->isBooleanConfigOptionSet('inetOrgPerson_hideManager')) { @@ -1421,6 +1485,10 @@ class inetOrgPerson extends baseModule implements passwordService { if (isset($this->attributes['initials'][0])) { $initials = implode(', ', $this->attributes['initials']); } + $labeledURI = ''; + if (isset($this->attributes['labeledURI'][0])) { + $labeledURI = implode(', ', $this->attributes['labeledURI']); + } $return = array( get_class($this) . '_description' => array('' . _('Description') . '' . $description . ''), @@ -1450,6 +1518,7 @@ class inetOrgPerson extends baseModule implements passwordService { get_class($this) . '_o' => array('' . _('Organisation') . '' . $o . ''), get_class($this) . '_employeeNumber' => array('' . _('Employee number') . '' . $employeeNumber . ''), get_class($this) . '_initials' => array('' . _('Initials') . '' . $initials . ''), + get_class($this) . '_labeledURI' => array('' . _('Web site') . '' . $labeledURI . ''), ); if (isset($this->attributes['departmentNumber'])) { $return[get_class($this) . '_departmentNumber'] = array('' . _('Department(s)') . '' . implode(', ', $this->attributes['departmentNumber']) . ''); @@ -1481,6 +1550,10 @@ class inetOrgPerson extends baseModule implements passwordService { $mailList = preg_split('/;[ ]*/', $profile['inetOrgPerson_mail'][0]); $this->attributes['mail'] = $mailList; } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideLabeledURI') && isset($profile['inetOrgPerson_labeledURI'][0])) { + $labeledURIList = preg_split('/;[ ]*/', $profile['inetOrgPerson_labeledURI'][0]); + $this->attributes['labeledURI'] = $labeledURIList; + } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideTelephoneNumber') && isset($profile['inetOrgPerson_telephoneNumber'][0])) { $telephoneNumberList = preg_split('/;[ ]*/', $profile['inetOrgPerson_telephoneNumber'][0]); $this->attributes['telephoneNumber'] = $telephoneNumberList; @@ -1827,6 +1900,10 @@ class inetOrgPerson extends baseModule implements passwordService { } } } + // labeledURI + if ($rawAccounts[$i][$ids['inetOrgPerson_labeledURI']] != "") { + $partialAccounts[$i]['labeledURI'] = preg_split('/;[ ]*/', $rawAccounts[$i][$ids['inetOrgPerson_labeledURI']]); + } if (!in_array('posixAccount', $selectedModules)) { // cn if ($rawAccounts[$i][$ids['inetOrgPerson_cn']] != "") { @@ -1898,6 +1975,13 @@ class inetOrgPerson extends baseModule implements passwordService { new htmlTableExtendedInputField(_('Email address'), 'inetOrgPerson_mail', $mail) )); } + if (in_array('labeledURI', $fields)) { + $labeledURI = ''; + if (isset($attributes['labeledURI'][0])) $labeledURI = implode('; ', $attributes['labeledURI']); + $return['labeledURI'] = new htmlTableRow(array( + new htmlTableExtendedInputField(_('Web site'), 'inetOrgPerson_labeledURI', $labeledURI) + )); + } if (in_array('telephoneNumber', $fields)) { $telephoneNumber = ''; if (isset($attributes['telephoneNumber'][0])) $telephoneNumber = $attributes['telephoneNumber'][0]; @@ -2101,6 +2185,14 @@ class inetOrgPerson extends baseModule implements passwordService { } elseif (isset($attributes['mail'])) unset($attributesNew['mail']); } + // labeledURI + if (in_array('labeledURI', $fields)) { + $attributeNames[] = 'labeledURI'; + if (isset($_POST['inetOrgPerson_labeledURI']) && ($_POST['inetOrgPerson_labeledURI'] != '')) { + $attributesNew['labeledURI'] = preg_split('/;[ ]*/', $_POST['inetOrgPerson_labeledURI']); + } + elseif (isset($attributes['labeledURI'])) unset($attributesNew['labeledURI']); + } // telephone number if (in_array('telephoneNumber', $fields)) { $attributeNames[] = 'telephoneNumber';