Compare commits

...

9 Commits

Author SHA1 Message Date
Deon George
6b8ab458ab RELEASE 1.0.1 2009-06-30 21:36:22 +10:00
Deon George
5f261ded38 RELEASE 1.0.1 2009-06-30 20:40:33 +10:00
Deon George
eccabca011 RELEASE 1.0.0 2009-06-30 20:40:03 +10:00
Deon George
c3713350e2 RELEASE 0.9.8.5 2009-06-30 20:28:51 +10:00
Deon George
c131e8b479 RELEASE 0.9.8.4 2009-06-30 20:28:19 +10:00
Deon George
a01f7c8289 RELEASE 0.9.8.3 2009-06-30 20:27:56 +10:00
Deon George
7741110caf RELEASE 0.9.8.2 2009-06-30 20:27:11 +10:00
Deon George
abc62c7fdc RELEASE 0.9.8.1 2009-06-30 20:26:45 +10:00
Deon George
fdee1bdbd1 RELEASE 0.9.8 2009-06-30 20:26:08 +10:00
243 changed files with 34997 additions and 34611 deletions

26
INSTALL
View File

@@ -1,5 +1,5 @@
For install instructions in non-English languages, see the files
in the "doc" directory.
For install instructions in non-English languages, see the wiki:
http://wiki.pldapadmin.com
* Requirements
@@ -11,27 +11,13 @@ in the "doc" directory.
1. Unpack the archive (if you're reading this, you already did that).
2. Put the resulting 'phpldapadmin' directory somewhere in your webroot.
3. Copy 'config.php.example' to 'config.php' and edit to taste.
3. Copy 'config.php.example' to 'config.php' and edit to taste (this is in the config/ directory).
4. Then, point your browser to the phpldapadmin directory.
* For additional help
See the files in the "doc" directory.
See the wiki:
http://wiki.pldapadmin.com
Join our mailing list:
https://lists.sourceforge.net/lists/listinfo/phpldapadmin-devel
* Platform specific notes
* OpenBSD with chroot'ed Apache:
For jpeg photos to work properly, you must do this:
# mkdir /var/www/tmp, and then
# chown root:daemon /var/www/tmp
# chmod 1755 /var/www/tmp
Where tmp is the $config->custom->tmpdir['jpeg'] configured in config.php
* Windows
For jpeg photos to work properly, be sure to change $config->custom->tmpdir['jpeg']
from "/tmp" to "c:\\temp" or similar.

View File

@@ -1 +1 @@
$Name: RELEASE-0_9_7_2 $
$Name: RELEASE-1_0_1 $

View File

@@ -22,7 +22,7 @@
*
* NOTE: Commented out values in this file prefixed by //, represent the
* defaults that have been defined in config_default.php.
* Commented out values prefixed by #, dont refelct their default value, you can
* Commented out values prefixed by #, dont reflect their default value, you can
* check config_default.php if you want to see what the default is.
*
* DONT change config_default.php, you changes will be lost by the next release
@@ -35,7 +35,7 @@
/*********************************************/
/* If you are asked to put pla in debug mode, this is how you do it: */
# $config->custom->debug['level'] = 2;
# $config->custom->debug['level'] = 255;
# $config->custom->debug['syslog'] = true;
# $config->custom->debug['file'] = '/tmp/pla_debug.log';
@@ -110,6 +110,50 @@ $ldapservers->SetValue($i,'server','name','My LDAP Server');
/* Use TLS (Transport Layer Security) to connect to the LDAP server. */
// $ldapservers->SetValue($i,'server','tls',false);
/************************************
* SASL Authentication *
************************************/
/* Enable SASL authentication LDAP SASL authentication requires PHP 5.x
configured with --with-ldap-sasl=DIR. If this option is disabled (ie, set to
false), then all other sasl options are ignored. */
// $ldapservers->SetValue($i,'server','sasl_auth', false);
/* SASL auth mechanism */
// $ldapservers->SetValue($i,'server','sasl_mech', "PLAIN");
/* SASL authentication realm name */
// $ldapservers->SetValue($i,'server','sasl_realm','');
# $ldapservers->SetValue($i,'server','sasl_realm',"example.com");
/* SASL authorization ID name
If this option is undefined, authorization id will be computed from bind DN,
using sasl_authz_id_regex and sasl_authz_id_replacement. */
// $ldapservers->SetValue($i,'server','sasl_authz_id', null);
/* SASL authorization id regex and replacement
When sasl_authz_id property is not set (default), phpLDAPAdmin will try to
figure out authorization id by itself from bind distinguished name (DN).
This procedure is done by calling preg_replace() php function in the
following way:
$authz_id = preg_replace($sasl_authz_id_regex,$sasl_authz_id_replacement,
$bind_dn);
For info about pcre regexes, see:
- pcre(3), perlre(3)
- http://www.php.net/preg_replace */
// $ldapservers->SetValue($i,'server','sasl_authz_id_regex',null);
// $ldapservers->SetValue($i,'server','sasl_authz_id_replacement',null);
# $ldapservers->SetValue($i,'server','sasl_authz_id_regex','/^uid=([^,]+)(.+)/i');
# $ldapservers->SetValue($i,'server','sasl_authz_id_replacement','$1');
/* SASL auth security props.
See http://beepcore-tcl.sourceforge.net/tclsasl.html#anchor5 for explanation.
*/
// $ldapservers->SetValue($i,'server','sasl_props',null);
/* If the link between your web server and this LDAP server is slow, it is
recommended that you set 'low_bandwidth' to true. This will enable
phpLDAPadmin to forego some "fancy" features to conserve bandwidth. */
@@ -239,7 +283,7 @@ $ldapservers->SetValue($i,'login','pass','');
$ldapservers->SetValue($i,'server','tls',false);
$ldapservers->SetValue($i,'server','low_bandwidth',false);
$ldapservers->SetValue($i,'appearance','password_hash','md5');
$ldapservers->SetValue($i,'login','attr','uid');
$ldapservers->SetValue($i,'login','attr','dn');
$ldapservers->SetValue($i,'login','string','');
$ldapservers->SetValue($i,'login','class','');
$ldapservers->SetValue($i,'server','read_only',false);
@@ -254,6 +298,15 @@ $ldapservers->SetValue($i,'login','anon_bind',true);
$ldapservers->SetValue($i,'custom','pages_prefix','custom_');
$ldapservers->SetValue($i,'unique_attrs','dn','');
$ldapservers->SetValue($i,'unique_attrs','pass','');
# SASL auth
$ldapservers->SetValue($i,'server','sasl_auth', true);
$ldapservers->SetValue($i,'server','sasl_mech', "PLAIN");
$ldapservers->SetValue($i,'server','sasl_realm', "EXAMPLE.COM");
$ldapservers->SetValue($i,'server','sasl_authz_id', null);
$ldapservers->SetValue($i,'server','sasl_authz_id_regex', '/^uid=([^,]+)(.+)/i');
$ldapservers->SetValue($i,'server','sasl_authz_id_replacement', '$1');
$ldapservers->SetValue($i,'server','sasl_props', null);
*/
/*********************************************/

View File

@@ -1,59 +0,0 @@
* Project Creator:
- David Smith
* Project Developers:
- Deon George Maintainer
- Xavier Renard Import/Export and Samba
- Uwe Ebel I18n
* Patch writers:
- Bayu Irawan userPassword hash, html fixes, ldap_modify fixes
- Uwe Ebel short_open_tags fix
- Andrew Tipton SUP support in schema parser
- Eigil Bjørgum UTF-8 support
- Brandon Lederer DNS entry template
Nathan Rotschafer
- Steve Rigler Password hash patch
- Chris Jackson Blowfish and md5crypt passwords
- Marius Rieder Perfected schema parser
- Nick Burch realpath() fixes for *BSD
- Matt Perlman Fix for IBM LDAP schema support
- K Yoder Predefined searches
- Piotr Tarnowski i18n fixes
- Deon George Auto-uidNumber enhancements and many fixes
- Pierre Belanger Speed-ups to auto-uidNumber
- Benjamin Drieu Syslog, Hooks and other fixes
- Samuel Tran User login restriction
- Daniel van Eeden Unicode, CSS fixes
- Piotr Tarnowski More locatisation fixes
- Tomas Kuliavas Improved password encoding functions
- Alessandro De Zorzi Enhancement with the new template engine and others
- Matt Harrington Fixes
- Jonathan Thurman Add Multiple objectClasses
- And many others, whose names are lost in the changelog. Thank you.
* Translators:
- Marius Reider, German
Uwe Ebel,
Dieter Kluenter
- Xavier Renard French
- Dave Smith English ;)
- Richard Lucassen Dutch
- Andreu Sanchez Spanish and Català
- Dmitry Gorpinenko, Russian
Aleksey Soldatov
Sergey Saukh
- Unknown Italian, Tain, Simplified Chinese
- Alexandre Maciel Portuguese (Brasilian)
Elton Schroeder Fenner (CLeGi)
- Piotr Tarnowski (DrFugazi) Polish
- Gunnar Nystrom Swedish
- VOROSBARANYI Zoltan, Hungarian
SIPOS Agnes
- Tadashi Jokagi (elf2000) Japanese
If you can help translate, please join the phpldapadmin-devel mailing list:
https://lists.sourceforge.net/mailman/listinfo/phpldapadmin-devel

View File

@@ -1,418 +0,0 @@
* Version 0.9.7, 2005-09-11
* Summary:
- Now fully supporting PHP5 - this will be the last version developed on PHP4.
- Revamped how you configure PLA - now using a config object and some checking,
- Revamped how you define LDAP servers - extending the LDAPServer object and adding some checking.
- Fixed all functions so that they now use the LDAPServer object.
- Introduced the template engine and configuration by XML files. (The old templates are still in this
version, unchanged from 0.9.6. They will be removed after this version is released.)
- Changed dependancy checking to just index.php, so that common.php executes faster.
- Minor improvements to compare.php
- Much improved debug logging
- Much improved caching
- Improved LDAP server info display
- Some code readability cleanup
- Add other fixes as per the ChangeLog (ChangeLogCVS.txt).
Thank you for everybody who has submitted fixes/enhancements/recommendations and feedback for this version.
* Version 0.9.6, 2005-04-03
* Summary:
The main goals for this version was to close all the outstanding bugs and apply all the submitted patchs
on sourceforge. All the sourceforge easy to do RFE's where also included.
* Notes:
- Added support for mulpiple Base DN's
- Added support to log for syslog (Benjamin Drieu)
- Added hooks feature to replace custom functions (Benjamin Drieu)
- Entry chooser now auto adds rdn entry for copy/move operations (wigi2)
- Initial support for AD Schema Retrieval
- Added login restriction (Samuel Tran)
- Added support to move objects (aka Copy then Delete) (wigi2)
- No longer show + next to objects that have no children in tree viewer (when hide_configuration_management=true)
- Added date evaluation to shadow attributes (shadowAccount)
- Added Enhancement to show attributes in a specifc order (Samuel Tran)
- Added Server Info OID descriptions
- Added new feature to compare two DNs
- Binary SID to text SID feature for MSAD objectSid entries.
- Added session timeout feature (Samuel Tran)
* New Languages:
- Taiwan (Anonymous)
- Simplfied Chinese (Anonymous)
* Changes:
- LDAP server configuration is being moved into an Object LDAPServer, all future interactions should
use this object class from now on.
- Some more conversions of english static text into language files.
- Some code cleanup, excess whitespace removal, etc...
- Tags for phpdoc updated.
- Added cvs header to files missing the header.
- LDIF Import function improvements (Xavier Renard)
- UniqueAttrs fix, now showing actual value (in multi value attribs) that breaches uniqueness
- Fixed check_lang_files when register_globals=off
- css fixes (Daniel van Eeden)
- More locatisation fixes (Piotr Tarnowski)
- Schema functions all use cached entries now by default
- Improved password encoding functions (Tomas Kuliavas)
- If auth_type = session, then dn and password is also blowfish encrypted
- Prettied up the icon index (Dave Smith)
- Make the rdn not editable in the default template.
* Fixes:
- password_check when magic_quotes_gpc is on.
- Misc fixes (Benjamin Drieu)
- Fix searchs when searching for values with brackets
- Unicode fixes (Daniel van Eeden)
- View jpeg photo minor security fix (Dave Smith)
- Check password link missing in read-only mode
* Sourceforge bug fixes:
1117099 1117316 1120048 1150947 1152962 1153360 1055401 1158148 1161425
* Version 0.9.5, 2004-12-17
* Notes:
This version adds substantial new features and several minor bug fixes as well as PHP5 support!
* Changes:
- Added PHP5 support using Zend1 compatibility options.
- Users can now specify a format string for custom display of DNs in the tree viewer
(see $tree_display_format in config.php.example)
- If using http auth_type, DNs and passwords are now encrypted int he cookie using blowfish.
- If base entry is missing, phpLDAPadmin will prompt you to create it and give you some
sane default values to get started.
- Added index file for viewing of all PLA icons (see phpldapadmin/images/index.php)
- Added custom country flag icons for DNs in the form "c=us"
- Added more custom icons (ipNetwork, Device, Room)
- Made it easier to create the base entry of an empty tree.
- Fixed bug related to predefined search queries with patch from Olivier Mounier
- Added a template for mozillaOrgPerson
- Improved error handling for non-existent or unreadable template files.
- "Create new" now displays at the top *and* bottom of the tree viewer list if there are
more than 10 entries in the container (make it easier for users by reducing scrolling)
- Optimized several pages by closing the session early if not needed.
- By request, reversed the order of first name / last name in the inetOrgPerson template.
- Added a login_string feature for admins who have all their users in a single container,
so they can specify a string like "uid=<username>,ou=People,dc=example,dc=com" instead
of setting up the painful login_attr stuff.
- Changed the delete button to be red (like phpMyAdmin) to make it more obvious.
- Consolidated the links at the top of the tree viewer to make better use of real estate.
- New logo!
- Patch from Dimitre to fix unique attrs enforcement.
- Templates can now redirect wherever they want using a hidden form input.
- Added a "Home" button in the tree viewer to get back to the main PLA page if desired.
- PLA now looks up the gidNumber to display group description and name in user accounst.
- Improved the hint about structural objectClasses in the custom creation template
- Added ability to purge caches (mostly just schema objects) and caches are auto-purged
when the schema is viewed in the schema browser.
- Changed the arrow icon next to objectClass values to be an information button.
- Search results can be displayed in table format now.
- Fixes to LDIF import.
- Added support for exporting to VCard 2.1 format.
- Lots of little session fixes.
- Structural objectClasses are now shown in bold in the custom creation template.
- Fixed lots of bugs, some big some minor:
1025353 1037715 1029103 1026427 1025353 1020606
1020376 1010576 1009410 1007281 1007132 1004042
1002794 1001941 1000185 999605 999170 996842
995362 995297 995296 994343 993875 992419
991891 989219 984587 983375 981283 979395
977598 974369 973520 973323 965165 964410
962074 959950 958372 957284 954453
* Version 0.9.4b, 2004-05-11
* Notes:
This follow-on release fixes one critical bug contained in 0.9.4
relating to session.auto_start and schema caching.
* Changes
- Fixed bugs (all duplicates of single bug):
947981
951003
951140
- Fixed binary attribute creation (create.php)
* Version 0.9.4a, 2004-05-08
* Notes:
This follow-on release fixes several critical bugs contained in 0.9.4.
* Changes:
- Fixed bugs:
949500 Error while adding New User Account
949500 Creating a new uid under ou=People
948695 is_executable() error using phpldapadmin - windows
948741 Level: E_WARNING
948413 Undefined variable: lang (E_NOTICE) after install
* Version 0.9.4, 2004-05-04
* Notes:
This release adds many new features and fixes many minor bugs.
General performance has improved, especially for handling large data
sets. Of particular note is that users can page through search results,
flag individual attributes as read-only, view in-line jpegPhotos in
search results, export DSML, all from the comfort of their own language.
phpLDAPadmin is now availble in 11 languages.
* Changes:
- Fixed bug 936223 by adding more robust error-handling to the binary
attr viewing code.
- Improved support for Microsoft Active Direcotry
Added many new icons and logic to detect "special" Active Directory
objects.
Fixed a bug which prevented phpLDAPadmin's tree viewer from
properly browsing an Active Directory.
- Improved support for Novell eDirectory
Added many new icons and logic to detect Novell eDirectory (NDS)
entries.
- Enhanced export form
Users can specify the type of export, line ends, search scope, and more
from one handy form similar in appearance to phpMyAdmin export forms (though
more simple). As a result, I cleaned up the links at the top of the default
mod template (removed mac | win | unix links, for example).
- Cleaned up the entry browser link
It now better aligns itself with neighboring form elements.
- Fixed several E_NOTICE bugs
- Added paging to search results Search results are now paged into groups
of 50 entries and users can step through the pages like Google. This is not
only a nicety, but with large searches users may have waited for hours for
their browser to render all the entries. That problem is fixed by paging.
- DNs are pretty-printed
DNs in the tree viewer and else-where are now "syntax-highlighted".
- Faster schema surfing
You can "jump to" schema elements without rendering all other elements in
the schema browser. This is a major speed enhancement.
- Configurable: hide "Create new"
Thanks to a patch from Deon George, users can hide the "create new" link in the
tree viewer if desired.
- DSML exports
- Various XHTML fixes supplied by Uwe Ebel.
- More binary safety:
get_object_attrs() is now completely binary safe. Developers can use it to
fetch jpegPhotos and any other binary data.
- Re-order the search criteria menu
Users can re-order the search criteria drop-down box (for simple search
form) as desired from the config.
- Obfuscated passwords with ****
Users can configure PLA to display userPasswords as ****** if desired.
- Tree browser displays child counts
We found a fast solution to display child counts below each node without
having to expand the node in the tree viewer. Works great.
- "Used by" hyperlinks
The "used by" list in matching rules are now hyper-linked to attributes in
the schema viewer.
- jpegPhotos in the search results.
When a search result includes jpegPhotos, they will be displayed inline
with other attributes. Very handy for address books!
- We can draw any jpeg now
Modified the infrastrucutre to draw any jpegPhoto attribute, regardless of
its name.
- Added a groupOfNames template
For editing groupOfNames and groupOfUniqueNames
- Fixes to the entry browser
The entry browser can be clicked and closed before it's finished loading
- Read-only attributes
Users can now mark certain attributes as read-only, and PLA will refuse to
modify them (ie, objectClasses) and display them without form input fields.
- Configurable handling of aliases and referrals
Admins can configure how phpLDAPadmin should handle aliases and
referrals with fine-grained control.
- Schema caching
Network traffic between the web server and LDAP server has been reduced
drastically and user page loads should run much faster thanks to a
two-level session-based and memory-based schema cache.
- Low bandwidth mode
Users who have a slow link between their LDAP server and web server can
run phpLDAPadmin in low-bandwidth mode to discourage excessive network
traffic.
- Fixed DN explosion
A bug in PHP's LDAP API caused common segmentation faults in
ldap_explode_dn(). We have re-implemented this function in PHP and have
eliminated all segmentation faults.
- Almost complete localization
phpLDAPadmin is 100% internationalized with the exception of creation
templates, available in 11 languages.
- Added support for IBM LDAP and ISODE M-Vault LDAP servers.
- Linkable displayed DNs
When a user views an attribute that contains a DN, an arrow will appear
to the left side. When clicked, the user is taken to the referenced DN.
- Recursive copy fliters
When users copy a sub-tree, they may apply a filter to the copy such
that only entries that match the filter will be copied.
- Auto uidNumber enhancements
Admins can now specify a DN to bind with when auto-searching for the next
available uidNumber.
- Schema code cleanups
Applied object-oriented inheritance to schema items and cleaned up
access functions. No affect on end user, just a developers' itch.
- Custom creation template usability enhancements
- Fixed session bugs
If PHP is auto-starting sessions, we will not throw errors anymore.
- Added new auth_type: http
Users can now use http auth_types for form-based logins. Their
DN/password will be stored on the server in memory rather than in
a cookie on the client.
- TLS fixes
More robust coverage. If users have configured 'tls' = true in
config.php, we use TLS for all transactions with the LDAP
server.
- Error handling fixes
pla_verbose_error() is more tolerant of crappy input (ie, bad LDAP
error codes).
- Cleaned up default mod template
Editing entries is now much cleaner-looking. Buttons at the top are
in two columns. The browser doesn't have to be full-screen anymore
to edit an entry.
- Minor cosmetic fixes to custom creation template
- Added phpDoc commentary to all functions in functions.php and
schema_functions.php, and export_functions.php. This allows us to
auto-doc the code using phpDocumentor.
* Version 0.9.3, 2003-12-19
* Notes:
This release focused almost entirely on finding and fixing bugs.
The schema viewer has also been streamlined to save bandwidth (and several
endangered species), while template configuration has been moved to its
own file located in the templates directory. Over all, phpLDAPadmin has
been made more solid thanks to testing and reporting by hundreds of users.
Thansk for all your reports! Special thanks goes out to Matt Perlman for
the IBM work-around and Uwe Ebel for the enhanced schema viewer.
* Changes:
As this was primarily a bug-fix release, here's the list of significant
fixes:
862225 an E_NOTICE on delete fixed
861730 (and many duplicates of it) an E_NOTICE on determining the
language in 'auto' lanuage mode for browsers who don't
set HTTP_ACCEPT_LANGUAGE (like Opera).
861491 (and many duplicates of it) Anonymous form-based logins
often failed due to several E_NOTICE problems.
856832 IBM LDAP servers refernece SUP attributes by OID, not name.
A patch was provided to accomodate this circumstance.
860179 Another anonymous form-based login bug.
858611 (lots of dups of this one) Fixed the error handler so that
it will not cause a "cannot send header information" message.
844547 A coulpe E_NOTICE bugs in the posix group creation template.
841816 An E_NOTICE bug during creation of an entry.
844340 A sprintf error during login
- Many many more bug fixes.
- The schema viewer was also streamlined.
- Support work-around for IBM LDAP Server was added.
* Version 0.9.2, 2003-11-14
* Notes:
This release has undergone major code hardening as we've subjected it to
the most stringent standard of PHP error reporting. The result is
fewer unhandled errors, improved usability, and better performance.
We've given more attention to internationalization as well,
and that effort is nearly 80% complete. Translators and coders are still
needed to help complete the localization effort. We've added a whole new
custom callback infrastructure that is event driven. Users can write their
own custom code to be executed as the result of LDAP events. Events include
entry creation, entry deletion, and entry modification. Users can define
custom code to execute automatically before and after each of these events.
See "custom_functions.php" for details and documentation. Lots of other new
features and bug fixes are outlined in the ChangeLog. phpLDAPadmin finally
has a roadmap included with each release. Find it in the file called "ROADMAP"
in the root of the install. This roadmap will be constantly updated to
list our goals for each release. Enjoy 0.9.2! As always, your feedback
is most welcome on the development mailing list and on the SourceForge
bug tracker.
* Changes:
- Localization work continues. About 80% complete.
- New languages: Ialian, German, Catala
- Fixed major encoding bugs. All pages are now true UTF-8 encoded
- Support for auto-determining user's language based on the browser
- Custom event callbacks infrastructure (see custom_functions.php). Users can now
define custom code to execute as a result of LDAP events (ie, new entries,
modifications, etc).
- Major code cleanup. Removed all E_NOTICE messages and enabled E_ALL error_reporting.
- Added support for smd5 and ssha passwords
- Added configurable hints throughout the application
- Added template-based entry editing. The infrastructure is now in place to use custom
templates for editing LDAP entries. No templates are being shipped with 0.9.2, but
they are on the way for 0.9.3.
- Added photo display support for non-jpegPhoto photo attributes.
- Added mass deletion. If enabled in the configuration, users can mass-delete multiple
entries from the tree browser with checkboxes.
- Much improved schema retrieval code. Now PLA uses the Root DSE (or any relevant DN)
to fetch the schema based on the RFC-complian subSchemaSubEntry value.
- Added support for viewing schema for attributes with ";" in their names (like
userCertificate;binary or sn;lang-fr)
- Schema code is 100% object oriented.
- Enhanced search code can handle large searches without running out of memory.
- Fixed minor XSS vulnerabilities in several creation templates.
- Enhanced the server information viewer to actively retrieve attributes that the server
may not give voluntarily.
- Made the tree viewer more intelligent for failed binds.
- Added better caching of the base DN for the tree viewer, which speeds up page loads
considerably with multiple servers all configured to auto-determine the base DN.
- Added intelligence around password updates on the currently logged-in user entry.
* Version 0.9.1, 2003-09-24
* Notes:
We fixed a mountain of bugs for this release and implemented the
most popular feature requests. The result is a much more robust LDAP
management tool that supports a wider range of harsh environments and spoken
languages. This release was over a month in the making and it shows. We've
had great feed back from users. Special thanks to Nick Burch, Xavier
Renard, Uwe Ebel, Schuller Tom, and Marius Reider for their code
contributions. Thanks to everyone who contributed code and bug reports!
* Changes:
- Preliminary support for LDIF imports.
- Binary attribute support for viewing, deleting, and adding.
- Users can specify attributes to hide while editing entries.
- Schema browser now displays which objectClasses each attribute is used in.
- Preliminary multi-language support (some localization, infrastructure in place).
- New template for creating posixGroup entries.
- Optional read-only mode of operation.
- Error dialog beautified.
- Localization effort begun, now available in German and French.
- New samba user template.
* Bugs fixed:
- I18n support was made more robust (UTF-8 problems fixed in *many* places).
- Improved LDIF exports with better LDIF comments and cleaner IE support.
- Cleaned up code in edit.php.
- After updates, modified attribute(s) now highlighted properly.
- Many realpath() fixes to allow symlink installs with multiple configs.
- Simple search form 'Starts with' '*' searches produced PHP error.
- Entry creation now adds the new entry to the tree browser in sorted order.
- Complete re-work of schema browser, much more efficient parser.
- Began effort to remove all E_NOTICE notices.
* Version 0.9.0, 2003-08-12
* Notes:
This is the first release of phpLDAPAdmin. It should be stable enough and
ready for use on your production LDAP servers. This is still a beta release
and the paranoid may want to wait. phpLDAPAdmin is based on an improved
version of DaveDAP 0.8.4.
* Changes:
phpLDAPAdmin was DaveDAP. Changes since DaveDAP 0.8.4 include:
- Better LDAP compliance when copying entries.
- Fixed boolean attribute support.
- jpegPhoto scaling when necessary.
- More robust schema browser.
- Added internal attributes support.
- Slightly improved look and feel.

View File

@@ -1,68 +0,0 @@
Installationsanleitung von phpldapadmin auf Deutsch
===================================================
$Header: /cvsroot/phpldapadmin/phpldapadmin/doc/INSTALL-de.txt,v 1.3 2004/03/01 19:48:58 i18phpldapadmin Exp $
Die Installationsanweisung geht davon aus das:
a) Ein Webserver (Apache, IIS, etc.)
b) PHP 4.1.0 oder neuer (mit LDAP-Support)
installiert sind und auch funktionieren
* Installation von phpLDAPadmin in vier einfachen Schritten:
1. Entpacken des Archives (wenn man diesen Text lesen kann,
dann ist das schon geschehen)
2. Das entpackte Verzeichnis phpldapadmin sollte vom webroot
aus erreicht werden
3. Kopieren der 'config.php.example' nach 'config.php'
und anpassen.
4. Mit einem Browser auf das phpldapadmin-Verzeichnis zugreifen
(wenn Sie das Verzeichnis sehen, dann bitte noch ein index.php
anhaengen)
* Browser Hinweise
phpLDAPadmin wird unter Mozilla entwickelt und sollte auch am
Besten darunter laufen. Andere Browser (bspw. Internet Explorer)
sollten ebenfalls funktionieren.
Keine Tests wurden mit dem Konqueror (oder jeder andere khtml-basierende
Browser wie Safari) oder Opera vorgenommen. Falls es zu Browser
Inkompatibilitaet kommen sollten, dann bitte einen Fehlerreport senden.
* Lizenz
Die Verwendete Lizenz ist in der Datei LICENCE zu finden
* Mitwirkende:
Projektentwickler:
Bitte in der Datei INSTALL unter 'Project Developers:' nachsehen
Patches:
Bitte in der Datei INSTALL unter 'Patch writers:' nachsehen
Uebersetzungen:
Bitte in der Datei INSTALL unter 'Translators:' nachsehen
Wer in der Uebersetzung helfen moechte sollte an der Mailingliste
phpldapadmin-devel teilnehmen:
https://lists.sourceforge.net/mailman/listinfo/phpldapadmin-devel
* Hinweise zur Konfiguration von config.php
Wer eine Benuetzerfuehrung auf Deutsch haben moechte sollte in der
config.php die Zeile
$language = 'en';
mit
$language = 'de';
abaendern. Weitere Sprachen sieht man im Unterverzeichnis 'lang'

View File

@@ -1,56 +0,0 @@
$Header: /cvsroot/phpldapadmin/phpldapadmin/doc/INSTALL-es.txt,v 1.4 2005/02/06 00:37:15 wurley Exp $
Estas instrucciones dejan por sentado que tienes una instalación
funcionando de:
a. Servidor Web (Apache, IIS, etc).
b. PHP 4.1.0 o mas nuevo (con soporte LDAP)
* Instalando phpLDAPadmin en 4 pasos muy simples:
1. Desempaqueta el archivo (si estás leyendo esto, ya lo has hecho).
2. Pon el directorio resultante 'phpldapadmin' en algún lugar de tu
directorio web raiz.
3. Copia 'config.php.example' a 'config.php' y edítalo para que se
acomode a tu configuración y tu gusto.
4. Entonces, con el navegador ve a la dirección que contiene los archivos
del directorio phpldapadmin.
* Notas del navegador
phpLDAP se desarrolló bajo Mozilla, y será donde seguramente corra mejor.
Aún así, las pruebas se han hecho bajo Internet Explorer, y tendría que funcionar
bien también. No se ha hecho ninguna prueba con Konqueror (o cualquier navegador
basado en kthml como Safari) o Opera. Si encuentras alguna incompatibilidad, por favor
háznoslo saber.
* Contribuidores
Desarrolladores del proyecto:
- David Smith Mantenedor
- Xavier Renard Master de LDIF
- Marius Rieder Master de los Esquemas
- Nate Rotschafer Encargado de los lanzamientos
Escribidores de los parches:
- Bayu Irawan userPassword hash, arreglos html, arreglos ldap_modify
- Uwe Ebel arreglo short_open_tags
- Andrew Tipton soporte SUP en el parseador del esquema
- Eigil Bjørgum soporte UTF-8
- Brandon Lederer plantilla de entrada de DNS
Nathan Rotschafer
- Steve Rigler Parche para Password hash
- Chris Jackson Contraseñas Blowfish y md5crypt
- Marius Rieder Parseador avanzado de esquema
- Nick Burch Un montón de arreglos de realpath()
Traductores:
- Uwe Ebel Alemán
- Xavier Renard Francés
- Dave Smith Inglés ;)
Si puedes ayudar a traducir, por favor apúntate a la lista de correo phpldapadmin:
https://lists.sourceforge.net/mailman/listinfo/phpldapadmin-devel

View File

@@ -1,57 +0,0 @@
$Header: /cvsroot/phpldapadmin/phpldapadmin/doc/INSTALL-fr.txt,v 1.4 2005/02/06 00:37:15 wurley Exp $
Les instructions suivantes supposent une installation en état de marche de:
a. Un serveur web (Apache, IIS, etc).
b. PHP 4.1.0 ou une version plus récente (avec le support LDAP).
* Installer phpLDAPadmin en quatre étapes simples:
1. Dé-tarrer l'archive (si vous lisez ceci, c'est que vous l'avez déjà fait).
2. Mettre le répertoire 'phpldapadmin' ainsi obtenu quelque part sous
la racine de votre serveur web.
3. Copier 'config.php.example' vers 'config.php' et éditer selon vos besoins.
4. Ensuite, pointer votre navigateur vers le répertoire phpldapadmin.
* Notes sur les navigateurs
phpLDAPadmin a été developpé avec Mozilla et fonctionnera vraisemblablement
mieux avec celui-ci. Cependant, des tests ont été effectué avec Internet Explorer
et cela devrait fonctionner également. Aucun test n'a été réalisé ni avec Konqueror
(ou un navigateur basé sur khtml comme Safari par exemple) ni avec Opera. Si
vous trouvez une incompatibilité avec votre navigateur, merci de la reporter.
* Contributions:
Developeurs:
- David Smith Maintenance
- Xavier Renard Responsable LDIF
- Marius Rieder Responsable pour les schéma LDAP
- Nate Rotschafer Directeur des releases
Auteurs de patchs:
- Bayu Irawan hachage pour le mot de passe utilisateur,
corrections html, corrections pour ldap_modiy
- Uwe Ebel Corrections pour short_open_tags
- Andrew Tipton Support pour SUP dans le parseur de schémas
- Eigil Bjørgum Support pour UTF-8
- Brandon Lederer Patron pour les entrées DNS
Nathan Rotschafer
- Steve Rigler Correction pour les hachages des mots de passe
- Chris Jackson Mots de passe Blowfish et md5crypt
- Marius Rieder Amélioration du parseur de schémas
- Nick Burch Corrections multiples pour realpath()
Traducteurs:
- Uwe Ebel & Marius Reider Allemand
- Xavier Renard Français
- Dave Smith Anglais ;)
- Richard Lucassen Néerlandais
- Andreu Sanchez Espagnol et Catalan
- Dmitry Gorpinenko Russe
- Unknown Italien
Si vous pouvez aider à traduire phpLDAPAdmin, veuillez s'il vous plaît vous abonner
à la liste de diffusion phpldapadmin-devel:
https://lists.sourceforge.net/mailman/listinfo/phpldapadmin-devel

View File

@@ -1,101 +1,2 @@
README-translation
==================
$Header: /cvsroot/phpldapadmin/phpldapadmin/doc/README-translation.txt,v 1.3 2004/06/03 12:45:21 uugdave Exp $
This readme is for translators.
phpLDAPadmin currently supports the following languages:
- en, of course
- de, german
- es, spanish
- fr, french
- it, italien
- nl, netherland
- pl, polish
- pt-br, portuguese (brazilian)
- ru, russian
- sv, swedish
* Where are the files located?
All files are in the directory:
phpldapadmin/lang/
* How are the files named?
Every language is named by its local representation. For example English is "en" and
British English is "en_GB" (though phpLDAPadmin does not have an "en_GB" translation).
* Is the location phpldapadmin/lang/ used in the application?
No, there is a Makefile in phpldapadmin/lang/ that converts the
native encoding of the language file to utf8 into the directory
phpldapadmin/lang/recoded. For example the file
phpldapadmin/lang/de.php is converted via the programm iconv to the
the encoding utf8 to the file phpldapadmin/lang/recoded/de.php.
* Is there a rule for the form of the translation?
Yes, all translation is stored in an array called lang[].
The "mother" of all translation is english (en.php).
Use your native encoding like iso8859-1 for european
or iso8859-2 for polish.
Every translated string is in single quotes "'"
Don't use html-code in the translation.
If you need to enclose text in quotes, use a double quote '"' (no escaping required).
* Why shouldn't I use html-code?
To avoid problemens wich htmlspecialchars (which coverts "<" to "&lt;", for example).
To avoid JavaScript problems.
To keep the way open for other targets like xml.
To keep the output well formed.
* How could I start?
First, the base for translation is the CVS version.
Checkout the CVS version and start your translation.
Create a file that contains your translation.
For me the easiest way was to copy the file phpldapadmin/lang/en.php
to the phpldapadmin/lang/[new-langage].php
That gives the way to put the original translation at the end
as a comment. Look at the de.php and you can see what I mean.
Add a target to Makefile so that your langugage is also converted.
* How could I verify that my translation is complete?
phpLDAPadmin contains the file phpldapadmin/check_lang_files.php
Open it in your browser and it will tell you if your lang file has any
omissions or extraneous strings.
- extra entries: if entry is not in the en.php, maybe the value was
changed in en.php or you type in a wrong key.
- missing entries: the entry is present in en.php but is missing in
the translated langugage.
* What is zz.php and the zzz.php in the phpldapadmin/lang/ directory?
Well that is not really a language. That is only for developers
and translators to make sure that all strings are translated in the
application.
The zz.php replace all characters in the lang[] to Z. That helps
in finding hardcoding translation in the the source.
The ZZZ.php helps you to find the used "key".
* How could I enable the zz and zzz language?
Well, one is to set $language to 'zz' or 'zzz' in the config.php file. That is not the
best way - but the way that always works.
Mozilla users do this:
* Click Edit->Preferences
* Option Navigator->Lanugages
Klick the button "add" and type into "Other" the
language "zz"
* With Move up / Move down you can change your priority.
* With the Button "OK" you can activate your choice.
Do the same if you want to activate/test your translation.
Please see http://wiki.pldapadmin.com/Translating now for information on
translating PLA.

File diff suppressed because it is too large Load Diff

View File

@@ -1,15 +0,0 @@
#!/bin/sh
# $Header: /cvsroot/phpldapadmin/phpldapadmin/doc/test_encoding.sh,v 1.1 2005/02/06 00:37:15 wurley Exp $
# $Id: test_encoding.sh,v 1.1 2005/02/06 00:37:15 wurley Exp $
# Written by: Daniel van Eeden <daniel_e@dds.nl>
# Purpose: test utf-8 encoding
for file in `find . -type f ! -name \*png ! -name \*jpg | egrep -v "^./lang/"`
do
output=`iconv ${file} -o /dev/null 2>&1`
err=$?
output=`echo ${output} | cut -d: -f2`
if [ ${err} != "0" ]; then
echo "${file}:${output}"
fi
done

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/add_attr.php,v 1.15.2.4 2005/10/22 14:22:47 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/add_attr.php,v 1.19 2005/12/10 10:34:54 wurley Exp $
/**
* Adds an attribute/value pair to an object
@@ -19,12 +19,11 @@
*/
require './common.php';
require TMPLDIR.'template_config.php';
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
pla_error( _('You cannot perform updates while server is in read-only mode') );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
pla_error( _('Not enough information to login to server. Please check your configuration.') );
$attr = $_POST['attr'];
$val = isset( $_POST['val'] ) ? $_POST['val'] : false;;
@@ -35,7 +34,7 @@ $encoded_dn = rawurlencode( $dn );
$encoded_attr = rawurlencode( $attr );
if( ! $is_binary_val && $val == "" ) {
pla_error( $lang['left_attr_blank'] );
pla_error( _('You left the attribute value blank. Please go back and try again.') );
}
// special case for binary attributes (like jpegPhoto and userCertificate):
@@ -44,14 +43,14 @@ if( ! $is_binary_val && $val == "" ) {
// of the attribute.
// Check to see if this is a unique Attribute
if( $badattr = checkUniqueAttr( $ldapserver, $dn, $attr, array($val) ) ) {
if ($badattr = $ldapserver->checkUniqueAttr($dn,$attr,array($val))) {
$search_href = sprintf('search.php?search=true&form=advanced&server_id=%s&filter=%s=%s',$ldapserver->server_id,$attr,$badattr);
pla_error(sprintf( $lang['unique_attr_failed'],$attr,$badattr,$dn,$search_href ) );
pla_error(sprintf( _('Your attempt to add <b>%s</b> (<i>%s</i>) to <br><b>%s</b><br> is NOT allowed. That attribute/value belongs to another entry.<p>You might like to <a href=\'%s\'>search</a> for that entry.'),$attr,$badattr,$dn,$search_href ) );
}
if( $is_binary_val ) {
if( 0 == $_FILES['val']['size'] )
pla_error( $lang['file_empty'] );
pla_error( _('The file you chose is either empty or does not exist. Please go back and try again.') );
if( ! is_uploaded_file( $_FILES['val']['tmp_name'] ) ) {
@@ -59,32 +58,32 @@ if( $is_binary_val ) {
switch($_FILES['val']['error']) {
case 0: //no error; possible file attack!
pla_error( $lang['invalid_file'] );
pla_error( _('Security error: The file being uploaded may be malicious.') );
break;
case 1: //uploaded file exceeds the upload_max_filesize directive in php.ini
pla_error( $lang['uploaded_file_too_big'] );
pla_error( _('The file you uploaded is too large. Please check php.ini, upload_max_size setting') );
break;
case 2: //uploaded file exceeds the MAX_FILE_SIZE directive specified in the html form
pla_error( $lang['uploaded_file_too_big'] );
pla_error( _('The file you uploaded is too large. Please check php.ini, upload_max_size setting') );
break;
case 3: //uploaded file was only partially uploaded
pla_error( $lang['uploaded_file_partial'] );
pla_error( _('The file you selected was only partially uploaded, likley due to a network error.') );
break;
case 4: //no file was uploaded
pla_error( $lang['left_attr_blank'] );
pla_error( _('You left the attribute value blank. Please go back and try again.') );
break;
default: //a default error, just in case! :)
pla_error( $lang['invalid_file'] );
pla_error( _('Security error: The file being uploaded may be malicious.') );
break;
}
else
pla_error( $lang['invalid_file'] );
pla_error( _('Security error: The file being uploaded may be malicious.') );
}
$file = $_FILES['val']['tmp_name'];
@@ -118,14 +117,14 @@ elseif (strcasecmp($attr,'sambaLMPassword') == 0) {
}
$new_entry = array( $attr => $val );
$result = @ldap_mod_add( $ldapserver->connect(), $dn, $new_entry );
$result = $ldapserver->attrModify($dn,$new_entry);
if ($result)
header(sprintf('Location: edit.php?server_id=%s&dn=%s&modified_attrs[]=%s',
header(sprintf('Location: template_engine.php?server_id=%s&dn=%s&modified_attrs[]=%s',
$ldapserver->server_id,$encoded_dn,$encoded_attr));
else
pla_error( $lang['failed_to_add_attr'],$ldapserver->error(),$ldapserver->errno() );
pla_error( _('Failed to add the attribute.'),$ldapserver->error(),$ldapserver->errno() );
/**
* Check if we need to append the ;binary option to the name

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/add_attr_form.php,v 1.12.2.1 2005/10/16 20:19:16 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/add_attr_form.php,v 1.14 2005/12/10 10:34:54 wurley Exp $
/**
* Displays a form for adding an attribute/value to an LDAP entry.
@@ -17,9 +17,9 @@
require './common.php';
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
pla_error( _('You cannot perform updates while server is in read-only mode') );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
pla_error( _('Not enough information to login to server. Please check your configuration.') );
$dn = $_GET['dn'];
$encoded_dn = rawurlencode( $dn );
@@ -31,12 +31,12 @@ include './header.php'; ?>
<body>
<h3 class="title"><?php echo sprintf( $lang['add_new_attribute'], htmlspecialchars( $rdn ) ); ?></b></h3>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $ldapserver->name; ?></b> &nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name']; ?>: <b><?php echo htmlspecialchars( ( $dn ) ); ?></b></h3>
<h3 class="title"><?php echo sprintf( _('Add new attribute'), htmlspecialchars( $rdn ) ); ?></b></h3>
<h3 class="subtitle"><?php echo _('Server'); ?>: <b><?php echo $ldapserver->name; ?></b> &nbsp;&nbsp;&nbsp; <?php echo _('Distinguished Name'); ?>: <b><?php echo htmlspecialchars( ( $dn ) ); ?></b></h3>
<?php $attrs = get_object_attrs( $ldapserver, $dn );
<?php $attrs = $ldapserver->getDNAttrs($dn);
$oclasses = get_object_attr( $ldapserver, $dn, 'objectClass' );
$oclasses = $ldapserver->getDNAttr($dn,'objectClass');
if( ! is_array( $oclasses ) )
$oclasses = array( $oclasses );
@@ -59,7 +59,7 @@ sort( $avail_attrs );
$avail_binary_attrs = array();
foreach( $avail_attrs as $i => $attr ) {
if( is_attr_binary( $ldapserver, $attr ) ) {
if ($ldapserver->isAttrBinary($attr)) {
$avail_binary_attrs[] = $attr;
unset( $avail_attrs[ $i ] );
}
@@ -70,7 +70,7 @@ foreach( $avail_attrs as $i => $attr ) {
<center>
<?php echo $lang['add_new_attribute'];
<?php echo _('Add new attribute');
if( is_array( $avail_attrs ) && count( $avail_attrs ) > 0 ) { ?>
@@ -104,20 +104,20 @@ if( is_array( $avail_attrs ) && count( $avail_attrs ) > 0 ) { ?>
</select>
<input type="text" name="val" size="20" />
<input type="submit" name="submit" value="<?php echo $lang['add']; ?>" class="update_dn" />
<input type="submit" name="submit" value="<?php echo _('Add'); ?>" class="update_dn" />
</form>
<?php } else { ?>
<br />
<br />
<small>(<?php echo $lang['no_new_attrs_available']; ?>)</small>
<small>(<?php echo _('no new attributes available for this entry'); ?>)</small>
<br />
<br />
<?php } ?>
<?php echo $lang['add_new_binary_attr'];
<?php echo _('Add new binary attribute');
if( count( $avail_binary_attrs ) > 0 ) { ?>
<!-- Form to add a new BINARY attribute to this entry -->
@@ -152,13 +152,13 @@ if( count( $avail_binary_attrs ) > 0 ) { ?>
</select>
<input type="file" name="val" size="20" />
<input type="submit" name="submit" value="<?php echo $lang['add']; ?>" class="update_dn" />
<input type="submit" name="submit" value="<?php echo _('Add'); ?>" class="update_dn" />
<?php if( ! ini_get( 'file_uploads' ) )
echo "<br><small><b>" . $lang['warning_file_uploads_disabled'] . "</b></small><br>";
echo "<br><small><b>" . _('Your PHP configuration has disabled file uploads. Please check php.ini before proceeding.') . "</b></small><br>";
else
echo "<br><small><b>" . sprintf( $lang['max_file_size'], ini_get( 'upload_max_filesize' ) ) . "</b></small><br>";
echo "<br><small><b>" . sprintf( _('Maximum file size: %s'), ini_get( 'upload_max_filesize' ) ) . "</b></small><br>";
?>
</form>
@@ -167,7 +167,7 @@ if( count( $avail_binary_attrs ) > 0 ) { ?>
<br />
<br />
<small>(<?php echo $lang['no_new_binary_attrs_available']; ?>)</small>
<small>(<?php echo _('no new binary attributes available for this entry'); ?>)</small>
<?php } ?>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/add_oclass.php,v 1.16.2.1 2005/10/09 09:07:21 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/add_oclass.php,v 1.18 2005/12/10 10:34:54 wurley Exp $
/**
* Adds an objectClass to the specified dn.
@@ -22,9 +22,9 @@
require './common.php';
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
pla_error( _('You cannot perform updates while server is in read-only mode') );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
pla_error( _('Not enough information to login to server. Please check your configuration.') );
$dn = rawurldecode( $_POST['dn'] );
$new_oclass = unserialize( rawurldecode( $_POST['new_oclass'] ) );
@@ -32,7 +32,7 @@ $new_attrs = $_POST['new_attrs'];
$encoded_dn = rawurlencode( $dn );
if( is_attr_read_only( $ldapserver, 'objectClass' ) )
if ($ldapserver->isAttrReadOnly('objectClass'))
pla_error( "ObjectClasses are flagged as read only in the phpLDAPadmin configuration." );
$new_entry = array();
@@ -45,20 +45,20 @@ if( is_array( $new_attrs ) && count( $new_attrs ) > 0 )
foreach( $new_attrs as $attr => $val ) {
// Check to see if this is a unique Attribute
if( $badattr = checkUniqueAttr( $ldapserver, $dn, $attr, array($val) ) ) {
if ($badattr = $ldapserver->checkUniqueAttr($dn,$attr,array($val))) {
$search_href = sprintf('search.php?search=true&form=advanced&server_id=%s&filter=%s=%s',
$ldapserver->server_id,$attr,$badattr);
pla_error(sprintf( $lang['unique_attr_failed'],$attr,$badattr,$dn,$search_href ) );
pla_error(sprintf( _('Your attempt to add <b>%s</b> (<i>%s</i>) to <br><b>%s</b><br> is NOT allowed. That attribute/value belongs to another entry.<p>You might like to <a href=\'%s\'>search</a> for that entry.'),$attr,$badattr,$dn,$search_href ) );
}
$new_entry[ $attr ] = $val;
}
$add_res = @ldap_mod_add( $ldapserver->connect(), $dn, $new_entry );
$add_res = $ldapserver->attrModify($dn,$new_entry);
if (! $add_res)
pla_error($lang['could_not_perform_ldap_mod_add'],$ldapserver->error(),$ldapserver->errno());
pla_error(_('Could not perform ldap_mod_add operation.'),$ldapserver->error(),$ldapserver->errno());
else
header(sprintf('Location: edit.php?server_id=%s&dn=%s&modified_attrs[]=objectclass',$ldapserver->server_id,$encoded_dn));
header(sprintf('Location: template_engine.php?server_id=%s&dn=%s&modified_attrs[]=objectclass',$ldapserver->server_id,$encoded_dn));
?>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/add_oclass_form.php,v 1.20.2.3 2005/10/22 11:55:31 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/add_oclass_form.php,v 1.24 2005/12/10 10:34:54 wurley Exp $
/**
* This page may simply add the objectClass and take you back to the edit page,
@@ -23,12 +23,12 @@
require './common.php';
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
pla_error( _('You cannot perform updates while server is in read-only mode') );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
pla_error( _('Not enough information to login to server. Please check your configuration.') );
if (! isset($_POST['new_oclass']))
pla_error( $lang['no_objectclasses_selected']);
if (! isset($_REQUEST['new_oclass']))
pla_error( _('You did not select any ObjectClasses for this object. Please go back and do so.'));
$new_oclass = $_REQUEST['new_oclass'];
$dn = rawurldecode( $_REQUEST['dn'] );
@@ -38,7 +38,7 @@ $encoded_dn = rawurlencode( $dn );
* If it hasn't, present a form to have the user enter values for all the
* newly required attrs. */
$entry = get_object_attrs( $ldapserver, $dn, true );
$entry = $ldapserver->getDNAttrs($dn,true);
$current_attrs = array();
foreach( $entry as $attr => $junk )
@@ -85,15 +85,15 @@ if( count( $needed_attrs ) > 0 ) {
include './header.php'; ?>
<body>
<h3 class="title"><?php echo $lang['new_required_attrs']; ?></h3>
<h3 class="subtitle"><?php echo $lang['requires_to_add'] . ' ' . count($needed_attrs) .
' ' . $lang['new_attributes']; ?></h3>
<h3 class="title"><?php echo _('New Required Attributes'); ?></h3>
<h3 class="subtitle"><?php echo _('This action requires you to add') . ' ' . count($needed_attrs) .
' ' . _('new attributes'); ?></h3>
<small>
<?php echo $lang['new_required_attrs_instructions'];
echo ' ' . count( $needed_attrs ) . ' ' . $lang['new_attributes'] . ' ';
echo $lang['that_this_oclass_requires']; ?>
<?php echo _('Instructions: In order to add these objectClass(es) to this entry, you must specify');
echo ' ' . count( $needed_attrs ) . ' ' . _('new attributes') . ' ';
echo _('that this objectClass requires. You can do so in this form.'); ?>
</small>
@@ -106,7 +106,7 @@ if( count( $needed_attrs ) > 0 ) {
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<table class="edit_dn" cellspacing="0">
<tr><th colspan="2"><?php echo $lang['new_required_attrs']; ?></th></tr>
<tr><th colspan="2"><?php echo _('New Required Attributes'); ?></th></tr>
<?php foreach( $needed_attrs as $count => $attr ) { ?>
@@ -117,7 +117,7 @@ if( count( $needed_attrs ) > 0 ) {
</table>
<br />
<br />
<center><input type="submit" value="<?php echo $lang['add_oclass_and_attrs']; ?>" /></center>
<center><input type="submit" value="<?php echo _('Add ObjectClass and Attributes'); ?>" /></center>
</form>
</body>
@@ -125,12 +125,12 @@ if( count( $needed_attrs ) > 0 ) {
<?php } else {
$add_res = @ldap_mod_add( $ldapserver->connect(), $dn, array( 'objectClass' => $new_oclass ) );
$add_res = $ldapserver->attrModify($dn,array('objectClass'=>$new_oclass));
if (! $add_res)
pla_error("Could not perform ldap_mod_add operation.",
$ldapserver->error(),$ldapserver->errno());
else
header(sprintf('Location: edit.php?server_id=%s&dn=%s&modified_attrs[]=objectClass',
header(sprintf('Location: template_engine.php?server_id=%s&dn=%s&modified_attrs[]=objectClass',
$ldapserver->server_id,$encoded_dn));
}

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/add_value.php,v 1.18.2.1 2005/10/09 09:07:21 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/add_value.php,v 1.20 2005/12/10 10:34:54 wurley Exp $
/**
* Adds a value to an attribute for a given dn.
@@ -22,9 +22,9 @@
require './common.php';
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
pla_error( _('You cannot perform updates while server is in read-only mode') );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
pla_error( _('Not enough information to login to server. Please check your configuration.') );
$attr = $_POST['attr'];
$new_value = $_POST['new_value'];
@@ -34,8 +34,8 @@ $is_binary_val = isset( $_POST['binary'] ) ? true : false;
$encoded_dn = rawurlencode( $dn );
$encoded_attr = rawurlencode( $attr );
if( is_attr_read_only( $ldapserver, $attr ) )
pla_error(sprintf($lang['attr_is_read_only'],htmlspecialchars( $attr )));
if ($ldapserver->isAttrReadOnly($attr))
pla_error(sprintf(_('The attribute "%s" is flagged as read-only in the phpLDAPadmin configuration.'),htmlspecialchars( $attr )));
// special case for binary attributes:
// we must go read the data from the file.
@@ -52,9 +52,9 @@ if( $is_binary_val ) {
$new_entry = array( $attr => $new_value );
// Check to see if this is a unique Attribute
if( $badattr = checkUniqueAttr( $ldapserver, $dn, $attr, $new_entry ) ) {
if ($badattr = $ldapserver->checkUniqueAttr($dn,$attr,$new_entry)) {
$search_href = sprintf('search.php?search=true&form=advanced&server_id=%s&filter=%s=%s',$ldapserver->server_id,$attr,$badattr);
pla_error(sprintf( $lang['unique_attr_failed'],$attr,$badattr,$dn,$search_href ) );
pla_error(sprintf( _('Your attempt to add <b>%s</b> (<i>%s</i>) to <br><b>%s</b><br> is NOT allowed. That attribute/value belongs to another entry.<p>You might like to <a href=\'%s\'>search</a> for that entry.'),$attr,$badattr,$dn,$search_href ) );
}
// Call the custom callback for each attribute modification
@@ -62,13 +62,13 @@ if( $badattr = checkUniqueAttr( $ldapserver, $dn, $attr, $new_entry ) ) {
if( run_hook ( 'pre_attr_add', array ( 'server_id' => $ldapserver->server_id, 'dn' => $dn, 'attr_name' => $attr,
'new_value' => $new_entry ) ) ) {
$add_result = @ldap_mod_add( $ldapserver->connect(), $dn, $new_entry );
$add_result = $ldapserver->attrModify($dn,$new_entry);
if (! $add_result)
pla_error($lang['could_not_perform_ldap_mod_add'],
pla_error(_('Could not perform ldap_mod_add operation.'),
$ldapserver->error(),$ldapserver->errno());
}
header(sprintf('Location: edit.php?server_id=%s&dn=%s&modified_attrs[]=%s',
header(sprintf('Location: template_engine.php?server_id=%s&dn=%s&modified_attrs[]=%s',
$ldapserver->server_id,$encoded_dn,$encoded_attr));
?>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/add_value_form.php,v 1.32.2.2 2005/10/16 20:19:16 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/add_value_form.php,v 1.36 2005/12/17 00:00:11 wurley Exp $
/**
* Displays a form to allow the user to enter a new value to add
@@ -18,194 +18,182 @@
require './common.php';
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
if ($ldapserver->isReadOnly())
pla_error(_('You cannot perform updates while server is in read-only mode'));
if (! $ldapserver->haveAuthInfo())
pla_error(_('Not enough information to login to server. Please check your configuration.'));
$attr = $_GET['attr'];
$dn = isset( $_GET['dn'] ) ? $_GET['dn'] : null;
$encoded_dn = rawurlencode( $dn );
$encoded_attr = rawurlencode( $attr );
$dn = isset($_GET['dn']) ? $_GET['dn'] : null;
$encoded_dn = rawurlencode($dn);
$encoded_attr = rawurlencode($attr);
if (! is_null($dn))
$rdn = get_rdn( $dn );
$rdn = get_rdn($dn);
else
$rdn = null;
$current_values = get_object_attr( $ldapserver, $dn, $attr );
$num_current_values = ( is_array($current_values) ? count($current_values) : 0 );
$is_object_class = ( 0 == strcasecmp( $attr, 'objectClass' ) ) ? true : false;
$is_jpeg_photo = is_jpeg_photo( $ldapserver, $attr ); //( 0 == strcasecmp( $attr, 'jpegPhoto' ) ) ? true : false;
$current_values = $ldapserver->getDNAttr($dn,$attr);
if ($current_values)
$num_current_values = (is_array($current_values) ? count($current_values) : 1);
else
$num_current_values = 0;
if( $is_object_class ) {
// fetch all available objectClasses and remove those from the list that are already defined in the entry
$is_object_class = (strcasecmp($attr, 'objectClass') == 0) ? true : false;
if ($is_object_class) {
# fetch all available objectClasses and remove those from the list that are already defined in the entry
$schema_oclasses = $ldapserver->SchemaObjectClasses();
foreach( $current_values as $oclass )
unset( $schema_oclasses[ strtolower( $oclass ) ] );
foreach($current_values as $oclass)
unset($schema_oclasses[strtolower($oclass)]);
} else {
$schema_attr = $ldapserver->getSchemaAttribute($attr);
}
include './header.php'; ?>
include './header.php';
<body>
echo '<body>';
printf('<h3 class="title">%s <b>%s</b> %s <b>%s</b></h3>',
_('Add new'),htmlspecialchars($attr),_('value to'),htmlspecialchars($rdn));
printf('<h3 class="subtitle">%s <b>%s</b> &nbsp;&nbsp;&nbsp; %s: <b>%s</b></h3>',
_('Server'),$ldapserver->name,_('Distinguished Name'),htmlspecialchars($dn));
<h3 class="title">
<?php echo $lang['add_new']; ?>
<b><?php echo htmlspecialchars($attr); ?></b>
<?php echo $lang['value_to']; ?>
<b><?php echo htmlspecialchars($rdn); ?></b></h3>
printf('%s <b>%s</b> %s <b>%s</b>:',
_('Current list of'),$num_current_values,_('values for attribute'),htmlspecialchars($attr));
<h3 class="subtitle">
<?php echo $lang['server']; ?>:
<b><?php echo $ldapserver->name; ?></b> &nbsp;&nbsp;&nbsp;
<?php echo $lang['distinguished_name']; ?>: <b><?php echo htmlspecialchars( $dn ); ?></b></h3>
if ($num_current_values) {
if ($ldapserver->isJpegPhoto($attr)) {
<?php echo $lang['current_list_of']; ?> <b><?php echo $num_current_values; ?></b>
<?php echo $lang['values_for_attribute']; ?> <b><?php echo htmlspecialchars($attr); ?></b>:
echo '<table><tr><td>';
draw_jpeg_photos($ldapserver, $dn, $attr, false);
echo '</td></tr></table>';
<?php if ($num_current_values) { ?>
<?php if( $is_jpeg_photo ) { ?>
# <!-- Temporary warning until we find a way to add jpegPhoto values without an INAPROPRIATE_MATCHING error -->
printf('<p><small>%s</small></p>',
_('Note: You will get an "inappropriate matching" error if you have not setup an EQUALITY rule on your LDAP server for this attribute.'));
# <!-- End of temporary warning -->
<table><tr><td>
<?php draw_jpeg_photos( $ldapserver, $dn, $attr, false ); ?>
</td></tr></table>
} elseif ($ldapserver->isAttrBinary($attr)) {
echo '<ul>';
<!-- Temporary warning until we find a way to add jpegPhoto values without an INAPROPRIATE_MATCHING error -->
<p><small>
<?php echo $lang['inappropriate_matching_note']; ?>
</small></p>
<!-- End of temporary warning -->
if (is_array($vals)) {
for ($i=1; $i<=count($vals); $i++) {
$href = sprintf('download_binary_attr.php?server_id=%s&amp;dn=%s&amp;attr=%s&amp;value_num=%s',
$ldapserver->server_id,$encoded_dn,$attr,$i-1);
<?php } else if( is_attr_binary( $ldapserver, $attr ) ) { ?>
<ul>
printf('<li><a href="%s"><img src="images/save.png" />%s (%s)</a></li>',
$href,_('download value'),$i);
}
<?php if( is_array( $vals ) ) {
} else {
$href = sprintf('download_binary_attr.php?server_id=%s&amp;dn=%s&amp;attr=%s',
$ldapserver->server_id,$encoded_dn,$attr);
printf('<li><a href="%s"><img src="images/save.png" />%s</a></li>',
$href,_('download value'));
}
for( $i=1; $i<=count($vals); $i++ ) {
$href = sprintf('download_binary_attr.php?server_id=%s&amp;dn=%s&amp;attr=%s&amp;value_num=%s',
$ldapserver->server_id,$encoded_dn,$attr,$i-1); ?>
<li><a href="<?php echo $href; ?>"><img src="images/save.png" /> <?php echo $lang['download_value'] . ' ' . $i; ?>)</a></li>
<?php }
echo '</ul>';
# <!-- Temporary warning until we find a way to add jpegPhoto values without an INAPROPRIATE_MATCHING error -->
printf('<p><small>%s</small></p>',
_('Note: You will get an "inappropriate matching" error if you have not setup an EQUALITY rule on your LDAP server for this attribute.'));
# <!-- End of temporary warning -->
} else {
$href = sprintf('download_binary_attr.php?server_id=%s&amp;dn=%s&amp;attr=%s',$ldapserver->server_id,$encoded_dn,$attr); ?>
<li><a href="<?php echo $href; ?>"><img src="images/save.png" /> <?php echo $lang['download_value']; ?></a></li>
<?php } ?>
echo '<ul class="current_values">';
</ul>
<!-- Temporary warning until we find a way to add jpegPhoto values without an INAPROPRIATE_MATCHING error -->
<p><small>
<?php echo $lang['inappropriate_matching_note']; ?>
</small></p>
<!-- End of temporary warning -->
if (is_array($current_values)) {
if (strcasecmp($attr,'userPassword') == 0) {
foreach ($current_values as $key => $value) {
if (obfuscate_password_display(get_enc_type($value)))
echo '<li><nobr>'.preg_replace('/./','*',$value).'<br /></li>';
else
echo '<li><nobr>'.htmlspecialchars($value).'<br /></li>';
}
<?php } else { ?>
} else {
foreach ($current_values as $val)
printf('<li><nobr>%s</nobr></li>',htmlspecialchars($val));
}
<ul class="current_values">
} else {
printf('<li><nobr>%s</nobr></li>',htmlspecialchars($current_values));
}
<?php if( is_array( $current_values ) ) /*$num_current_values > 1 )*/ {
echo '</ul>';
}
} else {
echo '<br /><br />';
}
foreach( $current_values as $val ) { ?>
<li><nobr><?php echo htmlspecialchars(($val)); ?></nobr></li>
<?php } ?>
echo _('Enter the value you would like to add:');
echo '<br /><br />';
<?php } else { ?>
<li><nobr><?php echo htmlspecialchars(($current_values)); ?></nobr></li>
<?php } ?>
if ($is_object_class) {
echo '<form action="add_oclass_form.php" method="post" class="new_value">';
printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
printf('<input type="hidden" name="dn" value="%s" />',$encoded_dn);
</ul>
echo '<select name="new_oclass[]" multiple="true" size="15">';
foreach ($schema_oclasses as $name => $oclass) {
# exclude any structural ones, as they'll only generate an LDAP_OBJECT_CLASS_VIOLATION
if ($oclass->getType() == 'structural')
continue;
<?php } ?>
<?php } else { ?>
<br />
<br />
<?php } ?>
printf('<option value="%s">%s</option>',$oclass->getName(),$oclass->getName());
}
echo '</select>';
<?php echo $lang['enter_value_to_add']; ?>
<br />
<br />
echo '<br />';
printf('<input type="submit" value="%s" />',_('Add new ObjectClass'));
echo '<br />';
<?php if( $is_object_class ) { ?>
if ($config->GetValue('appearance','show_hints'))
printf('<small><br /><img src="images/light.png" /><span class="hint">%s</span></small>',
_('Note: You may be required to enter new attributes that these objectClass(es) require'));
<form action="add_oclass_form.php" method="post" class="new_value">
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<input type="hidden" name="dn" value="<?php echo $encoded_dn; ?>" />
<select name="new_oclass[]" multiple="true" size="15">
} else {
echo '<form action="add_value.php" method="post" class="new_value" name="new_value_form">';
<?php foreach( $schema_oclasses as $name => $oclass ) {
if ($ldapserver->isAttrBinary($attr))
echo 'enctype="multipart/form-data"';
// exclude any structural ones, as they'll only generate an LDAP_OBJECT_CLASS_VIOLATION
if ($oclass->getType() == "structural") continue; ?>
printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
printf('<input type="hidden" name="dn" value="%s" />',$encoded_dn);
printf('<input type="hidden" name="attr" value="%s" />',$encoded_attr);
<option value="<?php echo $oclass->getName(); ?>"><?php echo $oclass->getName(); ?></option>
if ($ldapserver->isAttrBinary($attr)) {
echo '<input type="file" name="new_value" />';
echo '<input type="hidden" name="binary" value="true" />';
<?php } ?>
} else {
if ($ldapserver->isMultiLineAttr($attr)) {
echo '<textarea name="new_value" rows="3" cols="30"></textarea>';
} else {
printf('<input type="text"%s name="new_value" size="40" value="" />',
($schema_attr->getMaxLength() ? sprintf(' maxlength="%s"',$schema_attr->getMaxLength()) : ''));
</select>
<br />
<input type="submit" value="<?php echo $lang['add_new_objectclass']; ?>" />
# draw the "browse" button next to this input box if this attr houses DNs:
if ($ldapserver->isDNAttr($attr))
draw_chooser_link("new_value_form.new_value", false);
}
}
<br />
<?php if ($config->GetValue('appearance','show_hints')) { ?>
<small>
<br />
<img src="images/light.png" /><span class="hint"><?php echo $lang['new_required_attrs_note']; ?></span>
</small>
<?php }
printf('<input type="submit" name="submit" value="%s" />',_('Add New Value'));
echo '<br />';
} else { ?>
if ($schema_attr->getDescription())
printf('<small><b>%s:</b> %s</small><br />',_('Description'),$schema_attr->getDescription());
<form action="add_value.php" method="post" class="new_value" name="new_value_form"<?php
if( is_attr_binary( $ldapserver, $attr ) ) echo "enctype=\"multipart/form-data\""; ?>>
if ($schema_attr->getType())
printf('<small><b>%s:</b> %s</small><br />',_('Syntax'),$schema_attr->getType());
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<input type="hidden" name="dn" value="<?php echo $encoded_dn; ?>" />
<input type="hidden" name="attr" value="<?php echo $encoded_attr; ?>" />
if ($schema_attr->getMaxLength())
printf('<small><b>%s:</b> %s %s</small><br />',
_('Maximum Length'),number_format($schema_attr->getMaxLength()),_('characters'));
<?php if( is_attr_binary( $ldapserver, $attr ) ) { ?>
<input type="file" name="new_value" />
<input type="hidden" name="binary" value="true" />
<?php } else {
if( is_multi_line_attr( $attr, $ldapserver->server_id ) ) { ?>
<textarea name="new_value" rows="3" cols="30"></textarea>
<?php } else { ?>
<input type="text" <?php if( $schema_attr->getMaxLength() ) echo "maxlength=\"" . $schema_attr->getMaxLength() . "\" "; ?>name="new_value" size="40" value="" />
<?php // draw the "browse" button next to this input box if this attr houses DNs:
if( is_dn_attr( $ldapserver, $attr ) )
draw_chooser_link( "new_value_form.new_value", false ); ?>
<?php }
} ?>
<input type="submit" name="submit" value="<?php echo $lang['add_new_value']; ?>" />
<br />
<?php if( $schema_attr->getDescription() ) { ?>
<small><b><?php echo $lang['desc']; ?>:</b> <?php echo $schema_attr->getDescription(); ?></small><br />
<?php } ?>
<?php if( $schema_attr->getType() ) { ?>
<small><b><?php echo $lang['syntax']; ?>:</b> <?php echo $schema_attr->getType(); ?></small><br />
<?php } ?>
<?php if( $schema_attr->getMaxLength() ) { ?>
<small><b><?php echo $lang['maximum_length']; ?>:</b> <?php echo number_format( $schema_attr->getMaxLength() ); ?> <?php echo $lang['characters']; ?></small><br />
<?php } ?>
</form>
<?php } ?>
</body>
</html>
echo '</form>';
}
echo '</body></html>';
?>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/collapse.php,v 1.13 2005/07/22 05:55:19 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/collapse.php,v 1.14 2005/12/10 10:34:54 wurley Exp $
/**
* This script alters the session variable 'tree', collapsing it
@@ -19,24 +19,21 @@
require './common.php';
$dn = $_GET['dn'];
$encoded_dn = rawurlencode($dn);
initialize_session_tree();
if (array_key_exists($dn,$_SESSION['tree'][$ldapserver->server_id]))
unset($_SESSION['tree'][$ldapserver->server_id][$dn]);
$tree = get_cached_item($ldapserver->server_id,'tree');
$tree['browser'][$dn]['open'] = false;
set_cached_item($ldapserver->server_id,'tree','null',$tree);
/* This is for Opera. By putting "random junk" in the query string, it thinks
that it does not have a cached version of the page, and will thus
fetch the page rather than display the cached version */
$time = gettimeofday();
$random_junk = md5(strtotime('now') . $time['usec']);
$random_junk = md5(strtotime('now').$time['usec']);
/* If cookies were disabled, build the url parameter for the session id.
It will be append to the url to be redirect */
$id_session_param = "";
if (SID != "")
$id_session_param = "&".session_name()."=".session_id();
$id_session_param = '';
if (SID != '')
$id_session_param = sprintf('&%s=%s',session_name(),session_id());
header(sprintf('Location:tree.php?foo=%s#%s_%s%s',$random_junk,$ldapserver->server_id,$encoded_dn,$id_session_param));
header(sprintf('Location:tree.php?foo=%s#%s_%s%s',$random_junk,$ldapserver->server_id,rawurlencode($dn),$id_session_param));
?>

View File

@@ -1,11 +1,12 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/compare.php,v 1.10.2.3 2005/10/16 20:19:16 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/compare.php,v 1.14 2006/01/03 20:39:58 wurley Exp $
/**
* Compare two DNs - the destination DN is editable.
* @package phpLDAPadmin
*/
/**
* @todo: Must fix dc/domainComponent evaluation.
*/
require './common.php';
@@ -20,20 +21,22 @@ $server_id_src = (isset($_POST['server_id_src']) ? $_POST['server_id_src'] : '')
$server_id_dst = (isset($_POST['server_id_dst']) ? $_POST['server_id_dst'] : '');
$ldapserver_src = $ldapservers->Instance($server_id_src);
if ( ! $ldapserver_src->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
if (! $ldapserver_src->haveAuthInfo())
pla_error(_('Not enough information to login to server. Please check your configuration.'));
$ldapserver_dst = $ldapservers->Instance($server_id_dst);
if ( ! $ldapserver_src->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
if (! $ldapserver_src->haveAuthInfo())
pla_error(_('Not enough information to login to server. Please check your configuration.'));
dn_exists($ldapserver_src,$dn_src) or pla_error(sprintf($lang['no_such_entry'],pretty_print_dn($dn_src)));
dn_exists($ldapserver_dst,$dn_dst) or pla_error(sprintf($lang['no_such_entry'],pretty_print_dn($dn_dst)));
if (! $ldapserver_src->dnExists($dn_src))
pla_error(sprintf(_('No such entry: %s'),pretty_print_dn($dn_src)));
if (! $ldapserver_dst->dnExists($dn_dst))
pla_error(sprintf(_('No such entry: %s'),pretty_print_dn($dn_dst)));
$friendly_attrs = process_friendly_attr_table();
$attrs_src = get_object_attrs($ldapserver_src,$dn_src,false,$config->GetValue('deref','view'));
$attrs_dst = get_object_attrs($ldapserver_dst,$dn_dst,false,$config->GetValue('deref','view'));
$attrs_src = $ldapserver_src->getDNAttrs($dn_src,false,$config->GetValue('deref','view'));
$attrs_dst = $ldapserver_dst->getDNAttrs($dn_dst,false,$config->GetValue('deref','view'));
# Get a list of all attributes.
$attrs_all = array_keys($attrs_src);
@@ -48,18 +51,18 @@ include './header.php';
<table class="comp_dn" border=0>
<tr><td colspan=6>
<h3 class="title"><?php echo $lang['comparing']; ?></h3>
<h3 class="title"><?php echo _('Comparing the following DNs'); ?></h3>
</td></tr>
<tr>
<td colspan=2 width=20%>
<h3 class="subtitle"><?php echo $lang['attribute']; ?><br />&nbsp;</h3>
<h3 class="subtitle"><?php echo _('Attribute'); ?><br />&nbsp;</h3>
</td>
<td colspan=2 width=40%>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $ldapserver_src->name; ?></b><br /><?php echo $lang['distinguished_name'];?>: <b><?php echo htmlspecialchars(($dn_src)); ?></b></h3>
<h3 class="subtitle"><?php echo _('Server'); ?>: <b><?php echo $ldapserver_src->name; ?></b><br /><?php echo _('Distinguished Name');?>: <b><?php echo htmlspecialchars(($dn_src)); ?></b></h3>
</td>
<td colspan=2 width=40%>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $ldapserver_dst->name; ?></b><br /><?php echo $lang['distinguished_name'];?>: <b><?php echo htmlspecialchars(($dn_dst)); ?></b></h3>
<h3 class="subtitle"><?php echo _('Server'); ?>: <b><?php echo $ldapserver_dst->name; ?></b><br /><?php echo _('Distinguished Name');?>: <b><?php echo htmlspecialchars(($dn_dst)); ?></b></h3>
</td>
</tr>
<tr>
@@ -67,16 +70,16 @@ include './header.php';
<form action="compare.php" method="post" name="compare_form">
<input type="hidden" name="server_id_src" value="<?php echo $ldapserver_dst->server_id; ?>" />
<input type="hidden" name="server_id_dst" value="<?php echo $ldapserver_src->server_id; ?>" />
<input type="hidden" name="dn_src" value="<?php echo htmlspecialchars( $dn_dst ); ?>" />
<input type="hidden" name="dn_dst" value="<?php echo htmlspecialchars( $dn_src ); ?>" />
<input type="submit" value="<?php echo $lang['switch_entry']; ?>" />
<input type="hidden" name="dn_src" value="<?php echo htmlspecialchars($dn_dst); ?>" />
<input type="hidden" name="dn_dst" value="<?php echo htmlspecialchars($dn_src); ?>" />
<input type="submit" value="<?php echo _('Switch Entry'); ?>" />
</form>
</td>
</tr>
<?php
if(! $attrs_all || ! is_array($attrs_all)) {
printf('<tr><td colspan="2">(%s)</td></tr>',$lang['no_attributes']);
if (! $attrs_all || ! is_array($attrs_all)) {
printf('<tr><td colspan="2">(%s)</td></tr>',_('This entry has no attributes'));
print '</table>';
print '</html>';
die();
@@ -93,7 +96,7 @@ foreach ($attrs_all as $attr) {
continue;
# Has the config.php specified that this attribute is to be hidden or shown?
if (is_attr_hidden($ldapserver_src,$attr) || is_attr_hidden($ldapserver_dst,$attr))
if ($ldapserver_src->isAttrHidden($attr) || $ldapserver_dst->isAttrHidden($attr))
continue;
?>
@@ -121,7 +124,7 @@ foreach ($attrs_all as $attr) {
# is there a user-friendly translation available for this attribute?
if (isset($friendly_attrs[strtolower($attr)])) {
$attr_display = $friendly_attrs[strtolower($attr)];
$attr_note = sprintf('<acronym title="%s">alias</acronym>',sprintf($lang['alias_for'],$attr_display,$attr));
$attr_note = sprintf('<acronym title="%s">alias</acronym>',sprintf(_('Note: \'%s\' is an alias for \'%s\''),$attr_display,$attr));
} else {
$attr_note = '';
@@ -139,7 +142,7 @@ foreach ($attrs_all as $attr) {
$required_by .= $required . ' ';
# It seems that some LDAP servers (Domino) returns attributes in lower case?
elseif( isset($attrs_src['objectclass']) && in_array(strtolower($required),arrayLower($attrs_src['objectclass'])))
elseif (isset($attrs_src['objectclass']) && in_array(strtolower($required),arrayLower($attrs_src['objectclass'])))
$required_by .= $required . ' ';
break;
@@ -160,7 +163,7 @@ foreach ($attrs_all as $attr) {
if ($side == 'src') { ?>
<td class="attr">
<?php $schema_href="schema.php?server_id=$server_id_src&amp;view=attributes&amp;viewvalue=".real_attr_name($attr); ?>
<b><a title="<?php echo sprintf($lang['attr_name_tooltip'],$attr) ?>" href="<?php echo $schema_href; ?>"><?php echo $attr_display; ?></a></b>
<b><a title="<?php echo sprintf(_('Click to view the schema defintion for attribute type \'%s\''),$attr) ?>" href="<?php echo $schema_href; ?>"><?php echo $attr_display; ?></a></b>
</td>
<td class="attr_note">
@@ -169,7 +172,7 @@ foreach ($attrs_all as $attr) {
<?php }
if ($required_by) {
$required_note .= sprintf('<acronym title="%s">%s</acronym>',sprintf($lang['required_for'],$required_by),$lang['required']);
$required_note .= sprintf('<acronym title="%s">%s</acronym>',sprintf(_('Required attribute for objectClass(es) %s'),$required_by),_('required'));
?>
<td colspan=2 class="attr_note">
<sup><small><?php echo $required_note; ?></small></sup>
@@ -178,8 +181,8 @@ foreach ($attrs_all as $attr) {
<td colspan=2 class="attr_note">&nbsp;</td>
<?php } ?>
<?php if (is_attr_read_only($ldapserver,$attr)) { ?>
<small>(<acronym title="<?php echo $lang['read_only_tooltip']; ?>"><?php echo $lang['read_only']; ?></acronym>)</small>
<?php if ($ldapserver->isAttrReadOnly($attr)) { ?>
<small>(<acronym title="<?php echo _('This attribute has been flagged as read only by the phpLDAPadmin administrator'); ?>"><?php echo _('read only'); ?></acronym>)</small>
<?php } ?>
</td>
@@ -204,7 +207,7 @@ foreach ($attrs_all as $attr) {
print '<td colspan=2>&nbsp</td><td class="attr">';
if (! isset($attrs_src[$attr])) {
echo "<small>&lt;". $lang['no_value']."&gt;</small></td>";
echo "<small>&lt;". _('No Value')."&gt;</small></td>";
$toJump = 1;
continue;
} else
@@ -217,7 +220,7 @@ foreach ($attrs_all as $attr) {
print '<td colspan=2>&nbsp</td><td class="val">';
if (! isset($attrs_dst[$attr])) {
echo "<small>&lt;". $lang['no_value']."&gt;</small></td>";
echo "<small>&lt;". _('No Value')."&gt;</small></td>";
$toJump = 1;
continue;
} else
@@ -228,24 +231,26 @@ foreach ($attrs_all as $attr) {
}
if ($toJump) continue;
if (! is_array($vals))
$vals = array($vals);
/*
* Is this attribute a jpegPhoto?
*/
if (is_jpeg_photo($ldapserver,$attr)) {
if ($ldapserver->isJpegPhoto($attr)) {
switch ($side) {
case 'src':
// Don't draw the delete buttons if there is more than one jpegPhoto
// (phpLDAPadmin can't handle this case yet)
draw_jpeg_photos( $ldapserver, $dn_src, $attr, false );
draw_jpeg_photos($ldapserver,$dn_src,$attr,false);
break;
case 'dst':
if( $ldapserver_dst->isReadOnly() || is_attr_read_only( $ldapserver_dst, $attr ) )
draw_jpeg_photos( $ldapserver, $dn_dst, $attr, false );
if ($ldapserver_dst->isReadOnly() || $ldapserver_dst->isAttrReadOnly($attr))
draw_jpeg_photos($ldapserver,$dn_dst,$attr,false);
else
draw_jpeg_photos( $ldapserver, $dn_dst, $attr, true );
draw_jpeg_photos($ldapserver,$dn_dst,$attr,true);
break;
}
@@ -258,7 +263,7 @@ foreach ($attrs_all as $attr) {
/*
* Is this attribute binary?
*/
if( is_attr_binary( $ldapserver, $attr ) ) {
if ($ldapserver->isAttrBinary($attr)) {
switch ($side) {
case 'src':
$href = sprintf("download_binary_attr.php?server_id=%s&dn=%s&attr=%s",$ldapserver->server_id,$encoded_dn_src,$attr);
@@ -272,20 +277,20 @@ foreach ($attrs_all as $attr) {
<small>
<?php echo $lang['binary_value']; ?><br />
<?php echo _('Binary value'); ?><br />
<?php if( count( $vals ) > 1 ) { for( $i=1; $i<=count($vals); $i++ ) { ?>
<?php if (count($vals) > 1) { for($i=1; $i<=count($vals); $i++) { ?>
<a href="<?php echo $href . "&amp;value_num=$i"; ?>"><img
src="images/save.png" /> <?php echo $lang['download_value']; ?>(<?php echo $i; ?>)</a><br />
src="images/save.png" /> <?php echo _('download value'); ?>(<?php echo $i; ?>)</a><br />
<?php } } else { ?>
<a href="<?php echo $href; ?>"><img src="images/save.png" /> <?php echo $lang['download_value']; ?></a><br />
<a href="<?php echo $href; ?>"><img src="images/save.png" /> <?php echo _('download value'); ?></a><br />
<?php }
if( $side == 'dst' && ! $ldapserver_dst->isReadOnly() && ! is_attr_read_only( $ldapserver, $attr ) ) { ?>
if ($side == 'dst' && ! $ldapserver_dst->isReadOnly() && ! $ldapserver->isAttrReadOnly($attr)) { ?>
<a href="javascript:deleteAttribute( '<?php echo $attr; ?>' );" style="color:red;"><img src="images/trash.png" /> <?php echo $lang['delete_attribute']; ?></a>
<a href="javascript:deleteAttribute('<?php echo $attr; ?>');" style="color:red;"><img src="images/trash.png" /> <?php echo _('delete attribute'); ?></a>
<?php } ?>
@@ -304,22 +309,23 @@ foreach ($attrs_all as $attr) {
* simply draw the attribute values and continue.
*/
if( $side == 'dst' && ($ldapserver->isReadOnly() || is_attr_read_only( $ldapserver, $attr )) ) {
if( is_array( $vals ) ) {
foreach( $vals as $i => $val ) {
if( trim( $val ) == "" )
echo "<span style=\"color:red\">[" . $lang['empty'] . "]</span><br />\n";
if ($side == 'dst' && ($ldapserver->isReadOnly() || $ldapserver->isAttrReadOnly($attr))) {
if (is_array($vals)) {
foreach ($vals as $i => $val) {
if (trim($val) == "")
echo "<span style=\"color:red\">[" . _('empty') . "]</span><br />\n";
elseif( 0 == strcasecmp( $attr, 'userPassword' ) && $config->GetValue('appearance','obfuscate_password_display'))
echo preg_replace( '/./', '*', $val ) . "<br />";
elseif (0 == strcasecmp($attr,'userPassword') && $config->GetValue('appearance','obfuscate_password_display'))
echo preg_replace('/./','*',$val) . "<br />";
else
echo htmlspecialchars( $val ) . "<br />";
echo htmlspecialchars($val) . "<br />";
}
// @todo: redundant - $vals is always an array.
} else {
if( 0 == strcasecmp( $attr, 'userPassword' ) && $config->GetValue('appearance','obfuscate_password_display'))
echo preg_replace( '/./', '*', $vals ) . "<br />";
if (0 == strcasecmp($attr,'userPassword') && $config->GetValue('appearance','obfuscate_password_display'))
echo preg_replace('/./','*',$vals) . "<br />";
else
echo $vals . "<br />";
}
@@ -330,13 +336,13 @@ foreach ($attrs_all as $attr) {
/*
* Is this a userPassword attribute?
*/
if( ! strcasecmp( $attr, 'userpassword' ) ) {
if (! strcasecmp($attr,'userpassword')) {
$user_password = $vals[0];
$enc_type = get_enc_type( $user_password );
$enc_type = get_enc_type($user_password);
// Set the default hashing type if the password is blank (must be newly created)
if( $user_password == '' ) {
$enc_type = get_default_hash( $server_id );
if ($user_password == '') {
$enc_type = get_default_hash($server_id);
}
if ($side == 'dst') { ?>
@@ -348,17 +354,17 @@ foreach ($attrs_all as $attr) {
<?php }
if( obfuscate_password_display( $enc_type ) ) {
echo htmlspecialchars( preg_replace( "/./", "*", $user_password ) );
if (obfuscate_password_display($enc_type)) {
echo htmlspecialchars(preg_replace('/./','*',$user_password));
} else {
echo htmlspecialchars( $user_password );
echo htmlspecialchars($user_password);
} ?>
<br />
<?php if ($side == 'dst') { ?>
<input style="width: 260px" type="password" name="new_values[userpassword]" value="<?php echo htmlspecialchars( $user_password ); ?>" />
<input style="width: 260px" type="password" name="new_values[userpassword]" value="<?php echo htmlspecialchars($user_password); ?>" />
<?php echo enc_type_select_list($enc_type);
@@ -370,15 +376,15 @@ foreach ($attrs_all as $attr) {
<!--
function passwordComparePopup()
{
mywindow = open( 'password_checker.php', 'myname', 'resizable=no,width=450,height=200,scrollbars=1' );
mywindow = open('password_checker.php','myname','resizable=no,width=450,height=200,scrollbars=1');
mywindow.location.href = 'password_checker.php?hash=<?php echo base64_encode($user_password); ?>&base64=true';
if( mywindow.opener == null )
if (mywindow.opener == null)
mywindow.opener = self;
}
-->
</script>
<small><a href="javascript:passwordComparePopup()"><?php echo $lang['t_check_pass']; ?></a></small>
<small><a href="javascript:passwordComparePopup()"><?php echo _('Check password'); ?></a></small>
</td>
@@ -388,17 +394,17 @@ foreach ($attrs_all as $attr) {
/*
* Is this a boolean attribute?
*/
if( is_attr_boolean( $ldapserver, $attr) ) {
if ($ldapserver->isAttrBoolean($attr)) {
$val = $vals[0];
if ($side = 'dst') {?>
<input type="hidden" name="old_values[<?php echo htmlspecialchars( $attr ); ?>]" value="<?php echo htmlspecialchars($val); ?>" />
<input type="hidden" name="old_values[<?php echo htmlspecialchars($attr); ?>]" value="<?php echo htmlspecialchars($val); ?>" />
<select name="new_values[<?php echo htmlspecialchars( $attr ); ?>]">
<option value="TRUE"<?php echo ($val=='TRUE' ? ' selected' : ''); ?>><?php echo $lang['true']; ?></option>
<option value="FALSE"<?php echo ($val=='FALSE' ? ' selected' : ''); ?>><?php echo $lang['false']; ?></option>
<option value="">(<?php echo $lang['none_remove_value']; ?>)</option>
<select name="new_values[<?php echo htmlspecialchars($attr); ?>]">
<option value="TRUE"<?php echo ($val=='TRUE' ? ' selected' : ''); ?>><?php echo _('true'); ?></option>
<option value="FALSE"<?php echo ($val=='FALSE' ? ' selected' : ''); ?>><?php echo _('false'); ?></option>
<option value="">(<?php echo _('none, remove value'); ?>)</option>
</select>
<?php } ?>
@@ -412,28 +418,28 @@ foreach ($attrs_all as $attr) {
* End of special case attributes (non plain text).
*/
foreach( $vals as $i => $val ) {
foreach ($vals as $i => $val) {
if ($side == 'dst') {
$input_name = "new_values[" . htmlspecialchars( $attr ) . "][$i]";
$input_name = "new_values[" . htmlspecialchars($attr) . "][$i]";
// We smack an id="..." tag in here that doesn't have [][] in it to allow the
// draw_chooser_link() to identify it after the user clicks.
$input_id = "new_values_" . htmlspecialchars($attr) . "_" . $i; ?>
<!-- The old_values array will let update.php know if the entry contents changed
between the time the user loaded this page and saved their changes. -->
<input type="hidden" name="old_values[<?php echo htmlspecialchars( $attr ); ?>][<?php echo $i; ?>]" value="<?php echo htmlspecialchars($val); ?>" />
<input type="hidden" name="old_values[<?php echo htmlspecialchars($attr); ?>][<?php echo $i; ?>]" value="<?php echo htmlspecialchars($val); ?>" />
<?php }
// Is this value is a structural objectClass, make it read-only
if( 0 == strcasecmp( $attr, 'objectClass' ) ) { ?>
if (0 == strcasecmp($attr,'objectClass')) { ?>
<a title="<?php echo $lang['view_schema_for_oclass']; ?>" href="schema.php?server_id=<?php echo $ldapserver->server_id; ?>&amp;view=objectClasses&amp;viewvalue=<?php echo htmlspecialchars( $val ); ?>"><img src="images/info.png" /></a>
<a title="<?php echo _('View the schema description for this objectClass'); ?>" href="schema.php?server_id=<?php echo $ldapserver->server_id; ?>&amp;view=objectClasses&amp;viewvalue=<?php echo htmlspecialchars($val); ?>"><img src="images/info.png" /></a>
<?php $schema_object = $ldapserver->getSchemaObjectClass($val);
if ($schema_object->getType() == 'structural') {
echo "$val <small>(<acronym title=\"" . sprintf( $lang['structural_object_class_cannot_remove'] ) . "\">" . $lang['structural'] . "</acronym>)</small><br />";
echo "$val <small>(<acronym title=\"" . sprintf(_('This is a structural ObjectClass and cannot be removed.')) . "\">" . _('structural') . "</acronym>)</small><br />";
if ($side == 'dst') {?>
@@ -444,21 +450,21 @@ foreach ($attrs_all as $attr) {
}
}
if( is_dn_string( $val ) || is_dn_attr( $ldapserver, $attr ) ) { ?>
if (is_dn_string($val) || $ldapserver->isDNAttr($attr)) { ?>
<a title="<?php echo sprintf( $lang['go_to_dn'], htmlspecialchars($val) ); ?>" href="edit.php?server_id=<?php echo $ldapserver->server_id; ?>&amp;dn=<?php echo rawurlencode($val); ?>"><img style="vertical-align: top" src="images/go.png" /></a>
<a title="<?php echo sprintf(_('Go to %s'),htmlspecialchars($val)); ?>" href="template_engine.php?server_id=<?php echo $ldapserver->server_id; ?>&amp;dn=<?php echo rawurlencode($val); ?>"><img style="vertical-align: top" src="images/go.png" /></a>
<?php } elseif( is_mail_string( $val ) ) { ?>
<?php } elseif (is_mail_string($val)) { ?>
<a href="mailto:<?php echo htmlspecialchars($val); ?>"><img style="vertical-align: center" src="images/mail.png" /></a>
<?php } elseif( is_url_string( $val ) ) { ?>
<?php } elseif (is_url_string($val)) { ?>
<a href="<?php echo htmlspecialchars($val); ?>" target="new"><img style="vertical-align: center" src="images/dc.png" /></a>
<?php }
if( is_multi_line_attr( $attr, $val, $ldapserver->server_id ) ) {
if ($ldapserver->isMultiLineAttr($attr,$val)) {
if ($side == 'dst') {?>
<textarea class="val" rows="3" cols="30" name="<?php echo $input_name; ?>" id="<?php echo $input_id; ?>"><?php echo htmlspecialchars($val); ?></textarea>
@@ -480,8 +486,8 @@ foreach ($attrs_all as $attr) {
// draw a link for popping up the entry browser if this is the type of attribute
// that houses DNs.
if( is_dn_attr( $ldapserver, $attr ) )
draw_chooser_link( "edit_form.$input_id", false ); ?>
if ($ldapserver->isDNAttr($attr))
draw_chooser_link("edit_form.$input_id",false); ?>
<br />
<?php } ?>
@@ -516,23 +522,26 @@ foreach ($attrs_all as $attr) {
if (! $isOK) {
if (count($src_oclass) == 1) {
$add_href = "add_oclass_form.php?server_id=$ldapserver_dst->server_id&dn=$encoded_dn_dst&new_oclass=$src_oclass[0]";
$add_href = sprintf('add_oclass_form.php?server_id=%s&dn=%s&new_oclass=%s',
$ldapserver_dst->server_id,$encoded_dn_dst,$src_oclass[0]);
} else {
$add_href = "add_value_form.php?server_id=$ldapserver_dst->server_id&dn=$encoded_dn_dst&attr=objectClass";
$add_href = sprintf('add_value_form.php?server_id=%s&dn=%s&attr=objectClass',
$ldapserver_dst->server_id,$encoded_dn_dst);
}
if ($attr == 'objectClass')
printf('<div class="add_oclass">(<a href="%s" title="%s">%s</a>)</div>',$add_href,$lang['add_oclass_and_attrs'],$lang['add_value']);
printf('<div class="add_oclass">(<a href="%s" title="%s">%s</a>)</div>',$add_href,_('Add ObjectClass and Attributes'),_('add value'));
else
printf('<div class="add_oclass">(<a href="%s" title="%s">%s</a>)</div>',$add_href,sprintf($lang['need_oclass'], implode(" ",$src_oclass)),$lang['add_new_objectclass']);
printf('<div class="add_oclass">(<a href="%s" title="%s">%s</a>)</div>',$add_href,sprintf(_('You need one of the following ObjectClass(es) to add this attribute %s.'),implode(" ",$src_oclass)),_('Add new ObjectClass'));
} else {
if(! $schema_attr_dst->getIsSingleValue() || (! isset($vals))) {
if (! $schema_attr_dst->getIsSingleValue() || (! isset($vals))) {
$add_href = "add_value_form.php?server_id=$ldapserver_dst->server_id&dn=$encoded_dn_dst&attr=" . rawurlencode( $attr );
$add_href = sprintf('add_value_form.php?server_id=%s&dn=%s&attr=%s',
$ldapserver_dst->server_id,$encoded_dn_dst,rawurlencode($attr));
printf('<div class="add_value">(<a href="%s" title="%s">%s</a>)</div>',
$add_href,sprintf($lang['add_value_tooltip'],$attr),$lang['add_value']);
$add_href,sprintf(_('Add an additional value to attribute \'%s\''),$attr),_('add value'));
}
}
}
@@ -545,22 +554,22 @@ foreach ($attrs_all as $attr) {
</tr>
<?php } /* End foreach( $attrs as $attr => $vals ) */
<?php } /* End foreach ($attrs as $attr => $vals) */
if( ! $ldapserver_dst->isReadOnly( ) ) { ?>
if (! $ldapserver_dst->isReadOnly()) { ?>
<td colspan="2">&nbsp</td><td colspan=2><center><input type="submit" value="<?php echo $lang['save_changes']; ?>" /></center></td></tr></form>
<td colspan="2">&nbsp</td><td colspan=2><center><input type="submit" value="<?php echo _('Save Changes'); ?>" /></center></td></tr></form>
<?php } ?>
</table>
<?php /* If this entry has a binary attribute, we need to provide a form for it to submit when deleting it. */ ?>
<?php /* If this entry has a binary attribute,we need to provide a form for it to submit when deleting it. */ ?>
<script language="javascript">
//<!--
function deleteAttribute( attrName )
function deleteAttribute(attrName)
{
if( confirm( "<?php echo $lang['really_delete_attribute']; ?> '" + attrName + "'?" ) ) {
if (confirm("<?php echo _('Really delete attribute'); ?> '" + attrName + "'?")) {
document.delete_attribute_form.attr.value = attrName;
document.delete_attribute_form.submit();
}

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/compare_form.php,v 1.2 2005/07/22 05:47:43 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/compare_form.php,v 1.4 2006/04/29 06:49:31 wurley Exp $
/**
* Compares to DN entries side by side.
@@ -14,66 +14,65 @@
require './common.php';
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
if (! $ldapserver->haveAuthInfo())
pla_error(_('Not enough information to login to server. Please check your configuration.'));
$dn = (isset($_GET['dn']) ? $_GET['dn'] : '');
$encoded_dn = rawurlencode( $dn );
$rdn = get_rdn( $dn );
$container = get_container( $dn );
$attrs = get_object_attrs( $ldapserver, $dn );
$rdn = get_rdn($dn);
$select_server_html = server_select_list($ldapserver->server_id,true,'server_id_dst');
include './header.php'; ?>
include './header.php';
<body>
echo '<body>';
<h3 class="title"><?php echo $lang['compare_dn']. '&nbsp;' . $rdn; ?></h3>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $ldapserver->name; ?></b>
<?php if ($dn) { ?>
&nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name']?>: <b><?php echo $dn; ?></b>
<?php } ?>
</h3>
printf('<h3 class="title">%s %s</h3>',_('Compare another DN with'),htmlspecialchars($rdn));
printf('<h3 class="subtitle">%s: <b>%s</b>',_('Server'),$ldapserver->name);
if ($dn)
printf('&nbsp;&nbsp;&nbsp;%s: <b>%s</b>',_('Distinguished Name'),htmlspecialchars($dn));
echo '</h3>';
echo "\n";
<center>
<?php echo $lang['compare']; ?> <b><?php echo htmlspecialchars( $rdn ); ?></b> <?php echo $lang['with']; ?>:<br />
<br />
echo '<center>';
printf('%s <b>%s</b> %s<br />',_('Compare'),htmlspecialchars($rdn),_('with '));
<form action="compare.php" method="post" name="compare_form">
<input type="hidden" name="server_id_src" value="<?php echo $ldapserver->server_id; ?>" />
echo '<form action="compare.php" method="post" name="compare_form">';
printf('<input type="hidden" name="server_id_src" value="%s" />',$ldapserver->server_id);
echo "\n";
<table style="border-spacing: 10px">
<tr>
<?php if (! $dn) { ?>
<td><acronym title="<?php echo $lang['compf_dn_tooltip']; ?>"><?php echo $lang['compf_source_dn']; ?></acronym>:</td>
<td>
<input type="text" name="dn_src" size="45" value="<?php echo htmlspecialchars( $dn ); ?>" />
<?php draw_chooser_link( 'compare_form.dn_src', 'true', $rdn ); ?></td>
</td>
<?php } else { ?>
<input type="hidden" name="dn_src" value="<?php echo htmlspecialchars( $dn ); ?>" />
<?php } ?>
</tr>
<tr>
<td><acronym title="<?php echo $lang['compf_dn_tooltip']; ?>"><?php echo $lang['copyf_dest_dn']; ?></acronym>:</td>
<td>
<input type="text" name="dn_dst" size="45" value="" />
<?php draw_chooser_link( 'compare_form.dn_dst', 'true', '' ); ?></td>
</td>
</tr>
echo '<table style="border-spacing: 10px">';
echo "\n";
echo '<tr><td>';
<tr>
<td><?php echo $lang['copyf_dest_server']?>:</td>
<td><?php echo $select_server_html; ?></td>
</tr>
if (! $dn) {
printf('<acronym title="%s">%s</acronym>:',_('Compare this DN with another'),_('Source DN'));
echo '</td><td>';
printf('<input type="text" name="dn_src" size="45" value="%s" />',htmlspecialchars($dn));
draw_chooser_link('compare_form.dn_src','true',$rdn);
<tr>
<td colspan="2" align="right"><input type="submit" value="<?php echo $lang['compare']; ?>" /></td>
</tr>
</table>
</form>
</center>
</body>
</html>
} else
printf('<input type="hidden" name="dn_src" value="%s" />',htmlspecialchars($dn));
echo '</td></tr>';
echo "\n";
echo '<tr>';
printf('<td><acronym title="%s">%s</acronym>:</td>',_('Compare this DN with another'),_('Destination DN'));
echo '<td>';
echo '<input type="text" name="dn_dst" size="45" value="" />';
draw_chooser_link('compare_form.dn_dst','true','');
echo '</td>';
echo '</tr>';
echo "\n";
printf('<tr><td>%s:</td><td>%s</td></tr>',_('Destination Server'),$select_server_html);
echo "\n";
printf('<tr><td colspan="2" align="right"><input type="submit" value="%s" /></td></tr>',_('Compare'));
echo "\n";
echo '</table>';
echo '</form>';
echo '</center>';
echo '</body>';
echo '</html>';
?>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/copy.php,v 1.35.2.1 2005/10/09 09:07:21 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/copy.php,v 1.39 2006/01/03 20:39:58 wurley Exp $
/**
* Copies a given object to create a new one.
@@ -23,31 +23,30 @@ $ldapserver_src = $ldapservers->Instance($server_id_src);
$ldapserver_dst = $ldapservers->Instance($server_id_dst);
if ($ldapserver_dst->isReadOnly())
pla_error($lang['copy_server_read_only']);
pla_error(_('Destination server is currently READ-ONLY.'));
if (! $ldapserver_src->haveAuthInfo() || ! $ldapserver_dst->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
pla_error(_('Not enough information to login to server. Please check your configuration.'));
$dn_src = $_POST['old_dn'];
$dn_dst = $_POST['new_dn'];
$do_recursive = (isset($_POST['recursive']) && $_POST['recursive'] == 'on') ? true : false;
$do_remove = (isset($_POST['remove']) && $_POST['remove'] == 'yes') ? true : false;
$encoded_dn = rawurlencode($dn_src);
include './header.php';
# Error checking
if (0 == strlen(trim($dn_dst)))
pla_error($lang['copy_dest_dn_blank']);
pla_error(_('You left the destination DN blank.'));
if (pla_compare_dns($dn_src,$dn_dst) == 0 && $server_id_src == $server_id_dst)
pla_error($lang['copy_source_dest_dn_same']);
pla_error(_('The source and destination DN are the same.'));
if (dn_exists($ldapserver_dst,$dn_dst))
pla_error(sprintf($lang['copy_dest_already_exists'],pretty_print_dn($dn_dst)));
if ($ldapserver_dst->dnExists($dn_dst))
pla_error(sprintf(_('The destination entry (%s) already exists.'),pretty_print_dn($dn_dst)));
if (! dn_exists($ldapserver_dst,get_container($dn_dst)))
pla_error(sprintf($lang['copy_dest_container_does_not_exist'],pretty_print_dn(get_container($dn_dst))));
if (! $ldapserver_dst->dnExists(get_container($dn_dst)))
pla_error(sprintf(_('The destination container (%s) does not exist.'),pretty_print_dn(get_container($dn_dst))));
if ($do_recursive) {
$filter = isset($_POST['filter']) ? $_POST['filter'] : '(objectClass=*)';
@@ -55,16 +54,16 @@ if ($do_recursive) {
# Build a tree similar to that of the tree browser to give to r_copy_dn
$snapshot_tree = array();
print '<body>';
printf('<h3 class="title">%s%s</h3>',$lang['copy_copying'],htmlspecialchars($dn_src));
printf('<h3 class="subtitle">%s</h3>',$lang['copy_recursive_copy_progress']);
printf('<h3 class="title">%s%s</h3>',_('Copying '),htmlspecialchars($dn_src));
printf('<h3 class="subtitle">%s</h3>',_('Recursive copy progress'));
print '<br /><br />';
print '<small>';
print $lang['copy_building_snapshot'];
print _('Building snapshot of tree to copy... ');
flush();
$snapshot_tree = build_tree($ldapserver_src,$dn_src,array(),$filter);
printf('<span style="color:green">%s</span><br />',$lang['success']);
printf('<span style="color:green">%s</span><br />',_('Success'));
flush();
# Prevent script from bailing early on a long delete
@@ -78,63 +77,29 @@ if ($do_recursive) {
}
if ($copy_result) {
$edit_url = sprintf('edit.php?server_id=%s&dn=%s',$server_id_dst,rawurlencode($dn_dst));
$edit_url = sprintf('template_engine.php?server_id=%s&amp;dn=%s',$server_id_dst,rawurlencode($dn_dst));
$new_rdn = get_rdn($dn_dst);
$container = get_container($dn_dst);
if (array_key_exists('tree',$_SESSION)) {
# do we not have a tree and tree icons yet? Build a new ones.
initialize_session_tree();
$tree = $_SESSION['tree'];
$tree_icons = $_SESSION['tree_icons'];
printf('<center>%s<a href="%s">%s</a></center>',_('Copy successful! Would you like to '),$edit_url,_('view the new entry'));
echo '<!-- refresh the tree view (with the new DN renamed) and redirect to the edit_dn page -->';
echo '<script type="text/javascript" language="javascript">parent.left_frame.location.reload();</script>';
echo '</body></html>';
if (isset($tree[$server_id_dst][$container])) {
$tree[$server_id_dst][$container][] = $dn_dst;
sort($tree[$server_id_dst][$container]);
$tree_icons[$server_id_dst][$dn_dst] = get_icon($ldapserver_dst,$dn_dst);
$_SESSION['tree'] = $tree;
$_SESSION['tree_icons'] = $tree_icons;
session_write_close();
}
}
?>
<center>
<?php printf('%s<a href="%s">%s</a>',$lang['copy_successful_like_to'],$edit_url,$lang['copy_view_new_entry']) ?>
</center>
<!-- refresh the tree view (with the new DN renamed)
and redirect to the edit_dn page -->
<script language="javascript">
parent.left_frame.location.reload();
</script>
</body>
</html>
<?php
if ($do_remove) {
sleep(2);
$delete_url = sprintf('delete_form.php?server_id=%s&dn=%s',$server_id_dst,rawurlencode($dn_src));
?>
<!-- redirect to the delete form -->
<script language="javascript">
parent.right_frame.location="<?php echo $delete_url; ?>"
</script>
<?php }
} else {
exit;
echo '<!-- redirect to the delete form -->';
printf('<script type="text/javascript" language="javascript">parent.right_frame.location="%s" </script>',$delete_url);
}
}
function r_copy_dn($ldapserver_src,$ldapserver_dst,$tree,$root_dn,$dn_dst) {
function r_copy_dn($ldapserver_src,$ldapserver_dst,$snapshottree,$root_dn,$dn_dst) {
if (DEBUG_ENABLED)
debug_log('r_copy_dn: Entered with (%s,%s,%s,%s,%s)',2,
$ldapserver_src->server_id,$ldapserver_dst->server_id,serialize($tree),$root_dn,$dn_dst);
debug_log('r_copy_dn: Entered with (%s,%s,%s,%s,%s)',1,
$ldapserver_src->server_id,$ldapserver_dst->server_id,$snapshottree,$root_dn,$dn_dst);
global $lang;
printf('<nobr>%s %s...',$lang['copy_copying'],htmlspecialchars($root_dn));
printf('<nobr>%s %s...',_('Copying '),htmlspecialchars($root_dn));
flush();
$copy_result = copy_dn($ldapserver_src,$ldapserver_dst,$root_dn,$dn_dst);
@@ -142,15 +107,15 @@ function r_copy_dn($ldapserver_src,$ldapserver_dst,$tree,$root_dn,$dn_dst) {
if (! $copy_result)
return false;
printf('<span style="color:green">%s</span></nobr><br />',$lang['success']);
printf('<span style="color:green">%s</span></nobr><br />',_('Success'));
flush();
$children = isset($tree[$root_dn]) ? $tree[$root_dn] : null;
$children = isset($snapshottree[$root_dn]) ? $snapshottree[$root_dn] : null;
if (is_array($children) && count($children) > 0) {
foreach($children as $child_dn) {
$child_rdn = get_rdn($child_dn);
$new_dest_dn = sprintf('%s,%s',$child_rdn,$dn_dst);
r_copy_dn($ldapserver_src,$ldapserver_dst,$tree,$child_dn,$new_dest_dn);
r_copy_dn($ldapserver_src,$ldapserver_dst,$snapshottree,$child_dn,$new_dest_dn);
}
} else {
@@ -162,12 +127,10 @@ function r_copy_dn($ldapserver_src,$ldapserver_dst,$tree,$root_dn,$dn_dst) {
function copy_dn($ldapserver_src,$ldapserver_dst,$dn_src,$dn_dst) {
if (DEBUG_ENABLED)
debug_log('copy_dn: Entered with (%s,%s,%s,%s)',2,
debug_log('copy_dn: Entered with (%s,%s,%s,%s)',17,
$ldapserver_src->server_id,$ldapserver_dst->server_id,$dn_src,$dn_dst);
global $lang;
$new_entry = get_object_attrs($ldapserver_src,$dn_src);
$new_entry = $ldapserver_src->getDNAttrs($dn_src);
# modify the prefix-value (ie "bob" in cn=bob) to match the destination DN's value.
$rdn_attr = substr($dn_dst,0,strpos($dn_dst,'='));
@@ -179,16 +142,16 @@ function copy_dn($ldapserver_src,$ldapserver_dst,$dn_src,$dn_dst) {
unset($new_entry['dn']);
# Check the user-defined custom call back first
if (true === run_hook('pre_entry_create',
if (run_hook('pre_entry_create',
array ('server_id'=>$ldapserver_dst->server_id,'dn'=>$dn_dst,'attrs'=>$new_entry))) {
$add_result = @ldap_add($ldapserver_dst->connect(),$dn_dst,$new_entry);
$add_result = $ldapserver_dst->add($dn_dst,$new_entry);
if (! $add_result) {
run_hook('post_entry_create',array('server_id'=>$ldapserver_dst->server_id,
'dn'=>$dn_dst,'attrs'=>$new_entry));
run_hook('post_entry_create',
array('server_id'=>$ldapserver_dst->server_id,'dn'=>$dn_dst,'attrs'=>$new_entry));
print '</small><br /><br />';
pla_error($lang['copy_failed'] . $dn_dst,$ldapserver_dst->error(),$ldapserver_dst->errno());
echo '</small><br /><br />';
pla_error(_('Failed to copy DN: ').$dn_dst,$ldapserver_dst->error(),$ldapserver_dst->errno());
}
return $add_result;
@@ -204,19 +167,22 @@ function copy_dn($ldapserver_src,$ldapserver_dst,$dn_src,$dn_dst) {
* @param array $tree
* @param string $filter
*/
function build_tree($ldapserver,$dn,$tree,$filter='(objectClass=*)') {
$children = get_container_contents($ldapserver,$dn,0,$filter);
function build_tree($ldapserver,$dn,$buildtree) {
if (DEBUG_ENABLED)
debug_log('build_tree: Entered with (%s,%s,%s)',1,
$ldapserver->server_id,$dn,$buildtree);
$children = $ldapserver->getContainerContents($dn,0);
if (is_array($children) && count($children) > 0) {
$tree[$dn] = $children;
$buildtree[$dn] = $children;
foreach ($children as $child_dn)
$tree = build_tree($ldapserver,$child_dn,$tree,$filter);
$buildtree = build_tree($ldapserver,$child_dn,$buildtree);
}
if (DEBUG_ENABLED)
debug_log('build_tree: Entered with (%s,%s,%s,%s), Returning (%s)',1,
$ldapserver->server_id,$dn,serialize($tree),$filter,serialize($tree));
debug_log('build_tree: Returning (%s)',1,$buildtree);
return $tree;
return $buildtree;
}
?>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/copy_form.php,v 1.24 2005/07/22 05:47:43 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/copy_form.php,v 1.27 2006/04/29 06:49:31 wurley Exp $
/**
* Copies a given object to create a new one.
@@ -17,30 +17,26 @@
require './common.php';
if ($ldapserver->isReadOnly())
pla_error($lang['no_updates_in_read_only_mode']);
pla_error(_('You cannot perform updates while server is in read-only mode'));
if (! $ldapserver->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
pla_error(_('Not enough information to login to server. Please check your configuration.'));
$dn = $_GET['dn'] ;
$encoded_dn = rawurlencode( $dn );
$rdn = get_rdn( $dn );
$container = get_container( $dn );
$attrs = get_object_attrs( $ldapserver, $dn );
$rdn = get_rdn($dn);
$attrs = $ldapserver->getDNAttrs($dn);
$select_server_html = server_select_list($ldapserver->server_id,true,'dest_server_id');
$children = get_container_contents( $ldapserver, $dn );
$children = $ldapserver->getContainerContents($dn);
include './header.php';
// Draw some javaScrpt to enable/disable the filter field if this may be a recursive copy
if( is_array( $children ) && count( $children ) > 0 ) { ?>
# Draw some javaScrpt to enable/disable the filter field if this may be a recursive copy
if (is_array($children) && count($children) > 0) { ?>
<script language="javascript">
<script type="text/javascript" language="javascript">
//<!--
function toggle_disable_filter_field( recursive_checkbox )
function toggle_disable_filter_field(recursive_checkbox)
{
if( recursive_checkbox.checked ) {
if (recursive_checkbox.checked) {
recursive_checkbox.form.remove.disabled = false;
recursive_checkbox.form.filter.disabled = false;
} else {
@@ -52,73 +48,75 @@ if( is_array( $children ) && count( $children ) > 0 ) { ?>
//-->
</script>
<?php } ?>
<?php
}
<body>
echo '<body>';
<h3 class="title"><?php echo $lang['copyf_title_copy'] . $rdn; ?></h3>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $ldapserver->name; ?></b> &nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name']?>: <b><?php echo $dn; ?></b></h3>
printf('<h3 class="title">%s %s</h3>',_('Copy'),htmlspecialchars($rdn));
printf('<h3 class="subtitle">%s: <b>%s</b> &nbsp;&nbsp;&nbsp; %s: <b>%s</b></h3>',_('Server'),$ldapserver->name,
_('Distinguished Name'),htmlspecialchars($dn));
echo "\n";
<center>
<?php echo $lang['copyf_title_copy'] ?><b><?php echo htmlspecialchars( $rdn ); ?></b> <?php echo $lang['copyf_to_new_object']?>:<br />
<br />
echo '<center>';
printf('%s <b>%s</b> %s:<br /><br />',_('Copy'),htmlspecialchars($rdn),_('to a new object'));
<form action="copy.php" method="post" name="copy_form">
<input type="hidden" name="old_dn" value="<?php echo $dn; ?>" />
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
echo '<form action="copy.php" method="post" name="copy_form">';
printf('<input type="hidden" name="old_dn" value="%s" />',htmlspecialchars($dn));
printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
echo "\n";
<table style="border-spacing: 10px">
<tr>
<td><acronym title="<?php echo $lang['copyf_dest_dn_tooltip']; ?>"><?php echo $lang['copyf_dest_dn']?></acronym>:</td>
<td>
<input type="text" name="new_dn" size="45" value="<?php echo htmlspecialchars( $dn ); ?>" />
<?php draw_chooser_link( 'copy_form.new_dn', 'true', $rdn ); ?></td>
</td>
</tr>
echo '<table style="border-spacing: 10px">';
echo "\n";
<tr>
<td><?php echo $lang['copyf_dest_server']?>:</td>
<td><?php echo $select_server_html; ?></td>
</tr>
echo '<tr>';
printf('<td><acronym title="%s">%s</acronym>:</td>',
_('The full DN of the new entry to be created when copying the source entry'),_('Destination DN'));
printf('<td><input type="text" name="new_dn" size="45" value="%s" />',htmlspecialchars($dn));
draw_chooser_link('copy_form.new_dn','true',htmlspecialchars($rdn));
echo '</td></tr>';
echo "\n";
<?php if( is_array( $children ) && count( $children ) > 0 ) { ?>
<tr>
<td><label for="recursive"><?php echo $lang['recursive_copy']; ?></label>:</td>
<td><input type="checkbox" id="recursive" name="recursive" onClick="toggle_disable_filter_field(this)" />
<small>(<?php echo $lang['copyf_recursive_copy']?>)</small></td>
</tr>
<tr>
<td><acronym title="<?php echo $lang['filter_tooltip']; ?>"><?php echo $lang['filter']; ?></acronym>:</td>
<td><input type="text" name="filter" value="(objectClass=*)" size="45" disabled />
</tr>
<tr>
<td><?php echo $lang['delete_after_copy']; ?></td>
<td><input type="checkbox" name="remove" value="yes"/ disabled>
<small>(<?php echo $lang['delete_after_copy_warn']; ?>)</small)</td>
</tr>
<?php } else { ?>
<tr>
<td><?php echo $lang['delete_after_copy']; ?></td>
<td><input type="checkbox" name="remove" value="yes"/></td>
</tr>
<?php } ?>
<tr>
<td colspan="2" align="right"><input type="submit" value="<?php echo $lang['copyf_title_copy']; ?>" /></td>
</tr>
</table>
</form>
printf('<tr><td>%s</td><td>%s</td></tr>',_('Destination Server'),$select_server_html);
echo "\n";
<script language="javascript">
//<!--
/* If the user uses the back button, this way we draw the filter field properly. */
toggle_disable_filter_field( document.copy_form.recursive );
//-->
</script>
if (is_array($children) && count($children) > 0) {
echo '<tr>';
printf('<td><label for="recursive">%s</label>:</td>',_('Recursive copy'));
echo '<td><input type="checkbox" id="recursive" name="recursive" onClick="toggle_disable_filter_field(this)" />';
printf('<small>(%s)</small></td>',_('Recursively copy all children of this object as well.'));
echo '</tr>'."\n";
<?php if ($config->GetValue('appearance','show_hints')) {?>
<small><img src="images/light.png" /><span class="hint"><?php echo $lang['copyf_note']?></span></small>
<?php } ?>
echo '<tr>';
printf('<td><acronym title="%s">%s</acronym>:</td>',_('When performing a recursive copy, only copy those entries which match this filter'),_('Filter'));
echo '<td><input type="text" name="filter" value="(objectClass=*)" size="45" disabled />';
echo '</tr>'."\n";
</center>
</body>
</html>
echo '<tr>';
printf('<td>%s</td>',_('Delete after copy (move):'));
echo '<td><input type="checkbox" name="remove" value="yes"/ disabled>';
printf('<small>(%s)</small)</td>',_('Make sure your filter (above) will select all child records.'));
echo '</tr>';
} else {
printf('<tr><td>%s</td><td><input type="checkbox" name="remove" value="yes"/></td></tr>',_('Delete after copy (move):'));
}
echo "\n";
printf('<tr><td colspan="2" align="right"><input type="submit" value="%s" /></td></tr>',_('Copy '));
echo "\n";
echo '</table></form>';
echo "\n";
echo '<script type="text/javascript" language="javascript">';
echo '<!--';
echo '/* If the user uses the back button, this way we draw the filter field properly. */';
echo 'toggle_disable_filter_field(document.copy_form.recursive);';
echo '//-->';
echo '</script>';
if ($config->GetValue('appearance','show_hints'))
printf('<small><img src="images/light.png" alt="Light" /><span class="hint">%s</span></small>',_('Hint: Copying between different servers only works if there are no schema violations'));
echo '</center></body></html>';
?>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/create.php,v 1.43.2.1 2005/10/09 09:07:21 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/create.php,v 1.46 2006/02/19 05:44:34 wurley Exp $
/**
* Creates a new object.
@@ -23,19 +23,16 @@
require './common.php';
if ($ldapserver->isReadOnly())
pla_error($lang['no_updates_in_read_only_mode']);
pla_error(_('You cannot perform updates while server is in read-only mode'));
if (! $ldapserver->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
pla_error(_('Not enough information to login to server. Please check your configuration.'));
$new_dn = isset( $_POST['new_dn'] ) ? $_POST['new_dn'] : null;
$required_attrs = isset( $_POST['required_attrs'] ) ? $_POST['required_attrs'] : false;
$object_classes = unserialize( rawurldecode( $_POST['object_classes'] ) );
$redirect = isset( $_POST['redirect'] ) ? $_POST['redirect'] : false;
$new_dn = isset($_POST['new_dn']) ? $_POST['new_dn'] : null;
$required_attrs = isset($_POST['required_attrs']) ? $_POST['required_attrs'] : false;
$object_classes = unserialize(rawurldecode($_POST['object_classes']));
$redirect = isset($_POST['redirect']) ? $_POST['redirect'] : false;
$encoded_dn = rawurlencode( $new_dn );
$container = get_container( $new_dn );
// See if there are any presubmit values to work out.
# See if there are any presubmit values to work out.
if (isset($_POST['presubmit']) && count($_POST['presubmit']) && isset($_POST['template'])) {
$templates = new Templates($ldapserver->server_id);
$template = $templates->GetTemplate($_POST['template']);
@@ -56,32 +53,38 @@ if (isset($_POST['presubmit']) && count($_POST['presubmit']) && isset($_POST['te
}
}
$vals = isset( $_POST['vals'] ) ? $_POST['vals'] : array();
$attrs = isset( $_POST['attrs'] ) ? $_POST['attrs'] : array();
$vals = isset($_POST['vals']) ? $_POST['vals'] : array();
$attrs = isset($_POST['attrs']) ? $_POST['attrs'] : array();
// build the new entry
# build the new entry
$new_entry = array();
if( isset( $required_attrs ) && is_array( $required_attrs ) ) {
foreach( $required_attrs as $attr => $val ) {
if( $val == '' )
pla_error( sprintf( $lang['create_required_attribute'], htmlspecialchars( $attr ) ) );
$new_entry[ $attr ][] = $val;
if (isset($required_attrs) && is_array($required_attrs)) {
foreach ($required_attrs as $attr => $val) {
if ($val == '')
pla_error(sprintf(_('You left the value blank for required attribute (%s).'),htmlspecialchars($attr)));
$new_entry[$attr][] = $val;
}
}
if( isset( $attrs ) && is_array( $attrs ) ) {
foreach( $attrs as $i => $attr ) {
if( is_attr_binary( $ldapserver, $attr ) ) {
if( isset( $_FILES['vals']['name'][$i] ) && $_FILES['vals']['name'][$i] != '' ) {
if (isset($attrs) && is_array($attrs)) {
foreach ($attrs as $i => $attr) {
// read in the data from the file
if ($ldapserver->isAttrBinary($attr)) {
if (isset($_FILES['vals']['name'][$i]) && $_FILES['vals']['name'][$i] != '' ) {
# read in the data from the file
$file = $_FILES['vals']['tmp_name'][$i];
$f = fopen( $file, 'r' );
$binary_data = fread( $f, filesize( $file ) );
fclose( $f );
$f = fopen($file,'r');
$binary_data = fread($f,filesize($file));
fclose($f);
$val = $binary_data;
$new_entry[ $attr ][] = $val;
$new_entry[$attr][] = $val;
} elseif (isset($_SESSION['submitform'][$attr])) {
$new_entry[$attr][] = $_SESSION['submitform'][$attr];
unset($_SESSION['submitform'][$attr]);
}
} else {
@@ -89,102 +92,69 @@ if( isset( $attrs ) && is_array( $attrs ) ) {
# If the array has blank entries, then ignore them.
foreach ($vals[$i] as $value) {
# $new_entry[$attr] = $vals[$i];
if (trim($value))
$new_entry[$attr][] = $value;
}
} else {
$val = isset( $vals[$i] ) ? $vals[$i] : '';
if( '' !== trim($val) )
$new_entry[ $attr ][] = $val;
} else {
$val = isset($vals[$i]) ? $vals[$i] : '';
if ('' !== trim($val))
$new_entry[$attr][] = $val;
}
}
}
}
$new_entry['objectClass'] = $object_classes;
if( ! in_array( 'top', $new_entry['objectClass'] ) )
if (! in_array('top',$new_entry['objectClass']))
$new_entry['objectClass'][] = 'top';
foreach( $new_entry as $attr => $vals ) {
// Check to see if this is a unique Attribute
if( $badattr = checkUniqueAttr( $ldapserver, $new_dn, $attr, $vals ) ) {
foreach ($new_entry as $attr => $vals) {
# Check to see if this is a unique Attribute
if ($badattr = $ldapserver->checkUniqueAttr($new_dn,$attr,$vals)) {
$search_href = sprintf('search.php?search=true&amp;form=advanced&amp;server_id=%s&amp;filter=%s=%s',
$ldapserver->server_id,$attr,$badattr);
pla_error(sprintf( $lang['unique_attr_failed'],$attr,$badattr,$new_dn,$search_href ) );
pla_error(sprintf(_('Your attempt to add <b>%s</b> (<i>%s</i>) to <br><b>%s</b><br> is NOT allowed. That attribute/value belongs to another entry.<p>You might like to <a href=\'%s\'>search</a> for that entry.'),$attr,$badattr,$new_dn,$search_href));
}
if( ! is_attr_binary( $ldapserver, $attr ) )
if( is_array( $vals ) )
foreach( $vals as $i => $v )
$new_entry[ $attr ][ $i ] = $v;
if (! $ldapserver->isAttrBinary($attr))
if (is_array($vals))
foreach ($vals as $i => $v)
$new_entry[$attr][$i] = $v;
else
$new_entry[ $attr ] = $vals;
$new_entry[$attr] = $vals;
}
//echo "<pre>"; var_dump( $new_dn );print_r( $new_entry ); echo "</pre>";
# Check the user-defined custom call back first
if (run_hook('pre_entry_create',array('server_id'=>$ldapserver->server_id,'dn'=>$new_dn,'attrs'=>$new_entry)))
$add_result = $ldapserver->add($new_dn,$new_entry);
// Check the user-defined custom call back first
if( true === run_hook ( 'pre_entry_create', array ( 'server_id' => $ldapserver->server_id,'dn' => $new_dn,'attrs' => $new_entry ) ) )
$add_result = @ldap_add( $ldapserver->connect(), $new_dn, $new_entry );
else {
pla_error( $lang['create_could_not_add'] );
exit;
}
if( $add_result ) {
run_hook ( 'post_entry_create', array ( 'server_id' => $ldapserver->server_id, 'dn' => $new_dn, 'attrs' => $new_entry ) );
if ($add_result) {
run_hook('post_entry_create',array('server_id'=>$ldapserver->server_id,'dn'=>$new_dn,'attrs'=>$new_entry));
if ($redirect)
$redirect_url = $redirect;
else
$redirect_url = sprintf('edit.php?server_id=%s&dn=%s',$ldapserver->server_id,rawurlencode($new_dn));
$redirect_url = sprintf('template_engine.php?server_id=%s&dn=%s',$ldapserver->server_id,rawurlencode($new_dn));
if( array_key_exists( 'tree', $_SESSION ) ) {
$tree = $_SESSION['tree'];
$tree_icons = $_SESSION['tree_icons'];
echo '<html><head>';
$tree = get_cached_item($ldapserver->server_id,'tree');
$container = get_container($new_dn);
if( isset( $tree[$ldapserver->server_id][$container] ) ) {
$tree[$ldapserver->server_id][$container][] = $new_dn;
sort( $tree[$ldapserver->server_id][$container] );
$tree_icons[$ldapserver->server_id][$new_dn] = get_icon( $ldapserver, $new_dn );
}
if ((isset($tree['browser'][$container]['open']) && $tree['browser'][$container]['open']) ||
in_array($new_dn,$ldapserver->getBaseDN())) {
$_SESSION['tree'] = $tree;
$_SESSION['tree_icons'] = $tree_icons;
session_write_close();
echo '<!-- refresh the tree view (with the new DN renamed) and redirect to the edit_dn page -->';
printf('<script language="javascript">parent.left_frame.location.reload();location.href="%s"</script>',$redirect_url);
}
?>
<html>
<head>
printf('<meta http-equiv="refresh" content="0; url=%s" />',$redirect_url);
echo '</head><body>';
printf('%s <a href="%s">%s</a>.',_('Redirecting...'),$redirect_url,_('here'));
echo '</body></html>';
<?php if (isset($tree[$ldapserver->server_id][$container]) || in_array($new_dn,$ldapserver->getBaseDN())) { ?>
<!-- refresh the tree view (with the new DN renamed)
and redirect to the edit_dn page -->
<script language="javascript">
parent.left_frame.location.reload();
location.href='<?php echo $redirect_url; ?>';
</script>
<?php } ?>
<meta http-equiv="refresh" content="0; url=<?php echo $redirect_url; ?>" />
</head>
<body>
<?php echo $lang['redirecting'] ?> <a href="<?php echo $redirect_url; ?>"><?php echo $lang['here']?></a>.
</body>
</html>
<?php } else {
pla_error( $lang['create_could_not_add'], $ldapserver->error(), $ldapserver->errno() );
} else {
pla_error(_('Could not add the object to the LDAP server.'),$ldapserver->error(),$ldapserver->errno());
}
?>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/create_form.php,v 1.30.2.1 2005/10/09 09:07:21 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/create_form.php,v 1.33 2006/01/03 20:39:58 wurley Exp $
/**
* The menu where the user chooses an RDN, Container, and Template for creating a new entry.
@@ -16,160 +16,119 @@
*/
require './common.php';
require TMPLDIR.'template_config.php';
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
if ($ldapserver->isReadOnly())
pla_error(_('You cannot perform updates while server is in read-only mode'));
if (! $ldapserver->haveAuthInfo())
pla_error(_('Not enough information to login to server. Please check your configuration.'));
$step = isset( $_REQUEST['step'] ) ? $_REQUEST['step'] : 1; // defaults to 1
$container = $_REQUEST['container'];
$server_menu_html = server_select_list($ldapserver->server_id,true);
include './header.php'; ?>
include './header.php';
<body>
echo '<body>';
<h3 class="title"><?php echo $lang['createf_create_object']?></h3>
<h3 class="subtitle"><?php echo $lang['createf_choose_temp']?></h3>
<center><h3><?php echo $lang['createf_select_temp']?></h3></center>
printf('<h3 class="title">%s</h3>',_('Create Object'));
printf('<h3 class="subtitle">%s</h3>',_('Choose a template'));
printf('<center><h3>%s</h3></center>',_('Select a template for the creation process'));
<form action="creation_template.php" method="post">
<input type="hidden" name="container" value="<?php echo htmlspecialchars( $container ); ?>" />
<table class="create">
<tr>
<td class="heading"><?php echo $lang['server']; ?>:</td>
<td><?php echo $server_menu_html; ?></td>
</tr>
echo '<form action="template_engine.php" method="post">';
printf('<input type="hidden" name="container" value="%s" />',htmlspecialchars($container));
<tr>
<td class="heading"><?php echo $lang['template']; ?>:</td>
<td>
echo '<table class="create">';
printf('<tr><td class="heading">%s:</td><td>%s</td></tr>',_('Server'),$server_menu_html);
<table class="template_display">
<tr>
<td>
<table class="templates">
echo '<tr>';
printf('<td class="heading">%s:</td>',_('Template'));
echo '<td>';
echo '<table class="template_display">';
echo '<tr><td>';
echo '<table class="templates">';
<?php
$i = -1;
if ($config->GetValue('template_engine','enable')) {
$template_xml = new Templates($ldapserver->server_id);
$template_xml = new Templates($ldapserver->server_id);
$templates = $template_xml->_template;
if ($config->GetValue('template_engine','disable_old'))
$templates = $template_xml->getTemplates();
else
$templates = array_merge($template_xml->getTemplates(),$templates);
}
# Remove non-visable templates.
foreach ($templates as $index => $template)
if (isset($template['visible']) && (! $template['visible']))
unset ($templates[$index]);
# Remove non-visable templates.
foreach ($templates as $index => $template)
if (isset($template['visible']) && (! $template['visible']))
unset ($templates[$index]);
$templates['custom']['title'] = 'Custom';
$templates['custom']['icon'] = 'images/object.png';
$count = count( $templates );
foreach( $templates as $name => $template ) {
$count = count($templates);
foreach ($templates as $name => $template) {
$i++;
# If the template doesnt have a title, we'll use the desc field.
$template['desc'] = isset($template['title']) ? $template['title'] : $template['desc'];
# Balance the columns properly
if( ( count( $templates ) % 2 == 0 && $i == intval( $count / 2 ) ) ||
( count( $templates ) % 2 == 1 && $i == intval( $count / 2 ) + 1 ) )
if ((count($templates) % 2 == 0 && $i == intval($count / 2)) ||
(count($templates) % 2 == 1 && $i == intval($count / 2) + 1))
echo "</table></td><td><table class=\"templates\">";
echo '</table></td><td><table class="templates">';
# Check and see if this template should be shown in the list
$isValid = false;
if( isset($template['regexp'] ) ) {
if( @preg_match( "/".$template['regexp']."/i", $container ) ) {
if (isset($template['regexp'])) {
if (@preg_match('/'.$template['regexp'].'/i',$container))
$isValid = true;
}
} else {
} else
$isValid = true;
if (isset($template['invalid']) && $template['invalid'])
$isValid = false;
} ?>
</td>
</tr>
echo '<tr>';
if (! $isValid || (isset($template['handler']) && ! file_exists(TMPLDIR.'creation/'.$template['handler'])))
echo '<td class="icon"><img src="images/error.png" /></td>';
else
printf('<td><input type="radio" name="template" value="%s" id="%s" %s /></td>',
htmlspecialchars($name),htmlspecialchars($name),
! $isValid ? 'disabled' : (strcasecmp('Custom',$name) ? '' : 'checked'));
<tr>
<?php
if (isset($template['invalid']) && $template['invalid'] || (isset($template['handler']) && ! file_exists(TMPLDIR.'creation/'.$template['handler']))) {
?>
<td class="icon">
<img src="images/error.png" />
</td>
<?php
} else {
?>
printf('<td class="icon"><label for="%s"><img src="%s" /></label></td>',
htmlspecialchars($name),$template['icon']);
<td>
<input type="radio" name="template" value="<?php echo htmlspecialchars($name);?>"
id="<?php echo htmlspecialchars($name); ?>"
printf('<td class="name"><label for="%s">',
htmlspecialchars($name));
<?php
if( 0 == strcasecmp( 'Custom', $name ) ) echo ' checked';
if( ! $isValid ) echo ' disabled';
?> />
if (strcasecmp('Custom', $template['desc']) == 0)
echo '<b>';
</td>
<?php
}
?>
<td class="icon">
<label for="<?php echo htmlspecialchars($name);?>">
<img src="<?php echo $template['icon']; ?>" />
</label>
</td>
<td>
<label for="<?php echo htmlspecialchars($name);?>">
<?php if( 0 == strcasecmp( 'Custom', $template['desc'] ) ) echo '<b>';
if( ! $isValid )
if (! $isValid)
if (isset($template['invalid']) && $template['invalid'])
printf('<span style="color: gray"><acronym title="%s">',$lang['template_invalid']);
printf('<span style="color: gray"><acronym title="%s">',
isset($template['invalid_reason']) ? $template['invalid_reason'] :
_('This template has been disabled in the XML file.'));
else
printf('<span style="color: gray"><acronym title="%s">',$lang['template_restricted']);
printf('<span style="color: gray"><acronym title="%s">',
_('This template is not allowed in this container.'));
echo htmlspecialchars( $template['desc'] );
echo htmlspecialchars($template['desc']);
if( ! $isValid ) echo "</acronym></span>";
if( 0 == strcasecmp( 'Custom', $template['desc'] ) ) echo '</b>'; ?>
if (! $isValid) echo '</acronym></span>';
if (strcasecmp('Custom', $template['desc']) == 0)
echo '</b>';
</label>
</td>
</tr>
echo '</label></td></tr>';
<?php } // end foreach ?>
}
</table>
</td>
</tr>
</table>
</td>
</tr>
echo '</table>';
echo '</td></tr></table>';
echo '</td></tr>';
<tr>
<td colspan="2"><center><input type="submit" name="submit" value="<?php echo $lang['proceed_gt']?>" /></center></td>
</tr>
printf('<tr><td colspan="2"><center><input type="submit" name="submit" value="%s" /></center></td></tr>',
htmlspecialchars(_('Proceed >>')));
</table>
</form>
</body>
</html>
echo '</table>';
echo '</form></body></html>';
?>

View File

@@ -1,71 +0,0 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/creation_template.php,v 1.29 2005/09/25 16:11:44 wurley Exp $
/**
* This file simply acts as a plugin grabber for the creator templates in
* the directory templates/creation/
*
* Variables that come in via common.php
* server_id
* Expected POST vars:
* template
*
* @package phpLDAPadmin
* @deprecated This file is no longer need when the template engine is up and running.
*/
/**
*/
require './common.php';
if ($config->GetValue('template_engine','enable') && (! is_numeric($_REQUEST['template']))) {
require './template_engine.php';
die();
}
require TMPLDIR.'template_config.php';
if ($ldapserver->isReadOnly())
pla_error($lang['no_updates_in_read_only_mode']);
if (! $ldapserver->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
$template = (isset($_REQUEST['template']) ? $_REQUEST['template'] : null);
! is_null($template) or pla_error($lang['ctemplate_no_template']);
if ($template == 'custom') {
foreach ($templates as $id => $template) {
if ($template['handler'] == 'custom.php') {
$template = $id;
break;
}
}
}
isset($templates[$template]) or pla_error(sprintf($lang['invalid_template'], htmlspecialchars($template)));
$template_id = $template;
$template = isset($templates[$template]) ? $templates[$template_id] : null;
if (! array_key_exists('no_header',$template)) {
include './header.php';
?>
<body>
<h3 class="title"><?php echo $lang['createf_create_object']?></h3>
<h3 class="subtitle"><?php echo $lang['ctemplate_on_server']?> '<?php echo htmlspecialchars($ldapserver->name); ?>', <?php echo $lang['using_template']?> '<?php echo htmlspecialchars($template['desc']); ?>'</h3>
<?php }
$handler = TMPLDIR.'creation/' . $template['handler'];
if (! file_exists($handler))
pla_error(sprintf($lang['template_does_not_exist'],htmlspecialchars($template['handler'])));
if (! is_readable($handler))
pla_error(sprintf($lang['template_not_readable'],htmlspecialchars($template['handler'])));
include $handler;
if (! array_key_exists('no_header',$template))
echo "</body>\n</html>";
?>

View File

@@ -1,4 +1,4 @@
/* $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/css/style.css,v 1.44 2005/03/12 14:03:36 wurley Exp $ */
/* $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/css/style.css,v 1.45 2005/12/10 10:34:54 wurley Exp $ */
span.hint {
font-size: small;
font-weight: normal;
@@ -594,6 +594,11 @@ table.create td.heading {
padding: 10px;
}
table.create td.name {
font-size: 13px;
width: 350px;
}
div.add_value {
font-size: 10pt;
margin: 0px;
@@ -632,11 +637,12 @@ p.doc {
table.export_form {
font-size: 75%;
width: 400px;
border-spacing: 10px;
border-collapse: separate;
border-spacing: 10px;
border-collapse: separate;
}
table.export_form tr td {
font-size: 13px;
text-align: left;
vertical-align: top;
padding: 4px;

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/delete.php,v 1.23.2.1 2005/10/09 09:07:21 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/delete.php,v 1.26 2005/12/17 00:00:11 wurley Exp $
/**
* Deletes a DN and presents a "job's done" message.
@@ -17,65 +17,39 @@
require './common.php';
if ($ldapserver->isReadOnly())
pla_error($lang['no_updates_in_read_only_mode']);
pla_error(_('You cannot perform updates while server is in read-only mode'));
if (! $ldapserver->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
pla_error(_('Not enough information to login to server. Please check your configuration.'));
$dn = $_POST['dn'];
$encoded_dn = rawurlencode($dn);
if (is_null($dn))
pla_error($lang['you_must_specify_a_dn']);
pla_error(_('You must specify a DN'));
dn_exists($ldapserver,$dn) or pla_error(sprintf($lang['no_such_entry'], '<b>' . pretty_print_dn($dn) . '</b>'));
// Check the user-defined custom callback first.
if (run_hook('pre_entry_delete',array('server_id' => $ldapserver->server_id,'dn' => $dn)))
$del_result = @ldap_delete($ldapserver->connect(), $dn);
if (! $ldapserver->dnExists($dn))
pla_error(sprintf(_('No such entry: %s'),'<b>'.pretty_print_dn($dn).'</b>'));
# Check the user-defined custom callback first.
if (run_hook('pre_entry_delete',array('server_id'=>$ldapserver->server_id,'dn'=>$dn)))
$del_result = $ldapserver->delete($dn);
else
pla_error(sprintf($lang['could_not_delete_entry'],'<b>'.pretty_print_dn($dn).'</b>'));
pla_error(sprintf(_('Could not delete the entry: %s'),'<b>'.pretty_print_dn($dn).'</b>'));
if ($del_result) {
# Custom callback
run_hook('post_entry_delete',array('server_id' => $ldapserver->server_id,'dn' => $dn));
run_hook('post_entry_delete',array('server_id'=>$ldapserver->server_id,'dn'=>$dn));
# kill the DN from the tree browser session variable and
# refresh the tree viewer frame (left_frame)
if (array_key_exists('tree', $_SESSION)) {
$tree = $_SESSION['tree'];
include './header.php';
echo '<body>';
if (isset($tree[$ldapserver->server_id]) && is_array($tree[$ldapserver->server_id])) {
echo '<script type="text/javascript" language="javascript">parent.left_frame.location.reload();</script>';
echo '<br /><br />';
printf('<center>'._('Entry %s deleted successfully.').'</center>','<b>'.pretty_print_dn($dn).'</b>');
echo '</body>';
# does it have children? (it shouldn't, but hey, you never know)
if (isset($tree[$ldapserver->server_id][$dn]))
unset($tree[$ldapserver->server_id][$dn]);
# search and destroy
foreach ($tree[$ldapserver->server_id] as $tree_dn => $subtree)
foreach ($subtree as $key => $sub_tree_dn)
if (0 == strcasecmp($sub_tree_dn, $dn))
unset($tree[$ldapserver->server_id][$tree_dn][$key]);
$_SESSION['tree'] = $tree;
}
session_write_close();
}
include './header.php'; ?>
<script language="javascript">
parent.left_frame.location.reload();
</script>
<br />
<br />
<center><?php echo sprintf($lang['entry_deleted_successfully'],'<b>'.pretty_print_dn($dn).'</b>'); ?></center>
<?php
} else {
pla_error(sprintf($lang['could_not_delete_entry'], '<b>' . pretty_print_dn($dn) . '</b>'),
$ldapserver->error(), $ldapserver->errno());
pla_error(sprintf(_('Could not delete the entry: %s'),'<b>'.pretty_print_dn($dn).'</b>'),
$ldapserver->error(),$ldapserver->errno());
}
echo '</html>';
?>

View File

@@ -1,13 +1,13 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/delete_attr.php,v 1.13.2.1 2005/10/09 09:07:21 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/delete_attr.php,v 1.15 2005/12/10 10:34:54 wurley Exp $
/**
* Deletes an attribute from an entry with NO confirmation.
*
* Variables that come in via common.php
* - server_id
*
* On success, redirect to edit.php
* On success, redirect to template_engine.php
* On failure, echo an error.
*
* @package phpLDAPadmin
@@ -18,30 +18,30 @@
require './common.php';
if ($ldapserver->isReadOnly())
pla_error($lang['no_updates_in_read_only_mode']);
pla_error(_('You cannot perform updates while server is in read-only mode'));
if (! $ldapserver->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
pla_error(_('Not enough information to login to server. Please check your configuration.'));
$dn = isset($_POST['dn']) ? $_POST['dn'] : null;
$attr = isset($_POST['attr']) ? $_POST['attr'] : null;
if (! $dn)
pla_error($lang['no_dn_specified']);
pla_error(_('No DN specified'));
if (! $attr)
pla_error($lang['no_attr_specified']);
pla_error(_('No attribute name specified.'));
$encoded_dn = rawurlencode($dn);
if (is_attr_read_only($ldapserver,$attr))
pla_error(sprintf($lang['attr_is_read_only'],htmlspecialchars($attr)));
if ($ldapserver->isAttrReadOnly($attr))
pla_error(sprintf(_('The attribute "%s" is flagged as read-only in the phpLDAPadmin configuration.'),htmlspecialchars($attr)));
$update_array = array();
$update_array[$attr] = array();
$res = @ldap_modify($ldapserver->connect(),$dn,$update_array);
$res = $ldapserver->modify($dn,$update_array);
if ($res) {
$redirect_url = sprintf("edit.php?server_id=%s&dn=%s",$ldapserver->server_id,$encoded_dn);
$redirect_url = sprintf('template_engine.php?server_id=%s&dn=%s',$ldapserver->server_id,$encoded_dn);
foreach($update_array as $attr => $junk)
$redirect_url .= "&modified_attrs[]=$attr";
@@ -49,6 +49,6 @@ if ($res) {
header("Location: $redirect_url");
} else {
pla_error($lang['could_not_perform_ldap_modify'],$ldapserver->error(),$ldapserver->errno());
pla_error(_('Could not perform ldap_modify operation.'),$ldapserver->error(),$ldapserver->errno());
}
?>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/delete_form.php,v 1.20 2005/07/22 05:47:44 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/delete_form.php,v 1.23 2006/04/29 06:49:31 wurley Exp $
/**
* delete_form.php
@@ -18,136 +18,136 @@
require './common.php';
if ($ldapserver->isReadOnly())
pla_error($lang['no_updates_in_read_only_mode']);
pla_error(_('You cannot perform updates while server is in read-only mode'));
if (! $ldapserver->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
pla_error(_('Not enough information to login to server. Please check your configuration.'));
$dn = $_GET['dn'];
$encoded_dn = rawurlencode( $dn );
$rdn = pla_explode_dn( $dn );
$rdn = $rdn[0];
$children = get_container_contents( $ldapserver,$dn,0,'(objectClass=*)',LDAP_DEREF_NEVER );
$children = $ldapserver->getContainerContents($dn,0,'(objectClass=*)',LDAP_DEREF_NEVER);
$has_children = count($children) > 0 ? true : false;
include './header.php'; ?>
include './header.php';
<body>
echo '<body>';
printf('<h3 class="title">'._('Delete %s').'</h3>',htmlspecialchars(get_rdn($dn)));
printf('<h3 class="subtitle">%s: <b>%s</b> &nbsp;&nbsp;&nbsp; %s: <b>%s</b></h3>',
_('Server'),$ldapserver->name,_('Distinguished Name'),htmlspecialchars($dn));
echo "\n";
<h3 class="title"><?php echo sprintf( $lang['delete_dn'], htmlspecialchars( $rdn ) ); ?></b></h3>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $ldapserver->name; ?></b> &nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name']; ?>: <b><?php echo htmlspecialchars( ( $dn ) ); ?></b></h3>
echo '<center>';
<?php if( $has_children ) { ?>
<center><b><?php echo $lang['permanently_delete_children']; ?></b><br /><br />
<?php
if ($has_children) {
printf('<b>%s</b><br /><br />',_('Permanently delete all children also?'));
flush();
# get the total number of child objects (whole sub-tree)
$s = pla_ldap_search( $ldapserver, 'objectClass=*', $dn, array('dn'), 'sub' );
$sub_tree_count = count( $s );
$s = $ldapserver->search(null,dn_escape($dn),'objectClass=*',array('dn'));
$sub_tree_count = count($s);
echo '<table class="delete_confirm">';
echo '<tr>';
echo '<td><p>';
printf(_('This entry is the root of a sub-tree containing %s entries.'),$sub_tree_count);
printf('<small>(<a href="search.php?search=true&amp;server_id=%s&amp;filter=%s&amp;base_dn=%s&amp;form=advanced&amp;scope=sub">%s</a>)</small>',
$ldapserver->server_id,rawurlencode('objectClass=*'),rawurlencode($dn),_('view entries'));
echo '<br /><br />';
printf(_('phpLDAPadmin can recursively delete this entry and all %s of its children. See below for a list of all the entries that this action will delete. Do you want to do this?'),($sub_tree_count-1));
echo '<br /><br />';
printf('<small>%s</small>',
_('Note: this is potentially very dangerous and you do this at your own risk. This operation cannot be undone. Take into consideration aliases, referrals, and other things that may cause problems.'));
echo '<br /><br />';
echo "\n";
echo '<table width="100%">';
echo '<tr>';
echo '<td><center>';
echo '<form action="rdelete.php" method="post">';
printf('<input type="hidden" name="dn" value="%s" />',htmlspecialchars($dn));
printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
printf('<input type="submit" class="scary" value="%s" />',sprintf(_('Delete all %s objects'),$sub_tree_count));
echo '</form>';
echo '</center></td>';
echo '<td><center>';
echo '<form action="template_engine.php" method="get">';
printf('<input type="hidden" name="dn" value="%s" />',htmlspecialchars($dn));
printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
printf('<input type="submit" name="submit" value="%s" class="cancel" />',_('Cancel'));
echo '</form>';
echo '</center></td>';
echo '</tr>';
echo '</table>';
echo "\n";
echo '</td>';
echo '</tr>';
echo '</table>';
echo "\n";
flush();
echo '<br /><br />';
echo _('List of entries to be deleted:');
echo '<br />';
printf('<select size="%s" multiple disabled style="background:white; color:black;width:500px" >',min(10,$sub_tree_count));
$i=0;
foreach ($s as $dn => $junk) {
$i++;
printf('<option>%s. %s</option>',$i,htmlspecialchars(dn_unescape($dn)));
}
echo '</select>';
echo "\n";
} else {
echo '<table class="delete_confirm">';
echo '<tr>';
echo '<td nowrap>';
echo _('Are you sure you want to permanently delete this object?');
echo '<br /><br />';
printf('<acronym title="%s">%s</acronym>: <b>%s</b>',_('Distinguished Name'),_('DN'),pretty_print_dn($dn));
echo '<br />';
printf('%s: <b>%s</b>',_('Server'),htmlspecialchars($ldapserver->name));
echo '<br /><br />';
echo "\n";
echo '<table width="100%">';
echo '<tr>';
echo '<td><center>';
echo '<form action="delete.php" method="post">';
printf('<input type="hidden" name="dn" value="%s" />',htmlspecialchars($dn));
printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
printf('<input type="submit" name="submit" value="%s" class="scary" />',_('Delete'));
echo '</form>';
echo '</center></td>';
echo '<td><center>';
echo '<form action="template_engine.php" method="get">';
printf('<input type="hidden" name="dn" value="%s" />',htmlspecialchars($dn));
printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
printf('<input type="submit" name="submit" value="%s" class="cancel" />',_('Cancel'));
echo '</form>';
echo '</center></td>';
echo '</tr>';
echo '</table>';
echo "\n";
echo '</td>';
echo '</tr>';
echo '</table>';
echo "\n";
}
echo '</center>';
echo '<br />';
echo '</body>';
echo '</html>';
?>
<table class="delete_confirm">
<tr>
<td>
<p>
<?php echo sprintf( $lang['entry_is_root_sub_tree'], $sub_tree_count ); ?>
<small>(<a href="search.php?search=true&amp;server_id=<?php echo $ldapserver->server_id; ?>&amp;filter=<?php echo rawurlencode('objectClass=*'); ?>&amp;base_dn=<?php echo $encoded_dn; ?>&amp;form=advanced&amp;scope=sub"><?php echo $lang['view_entries']; ?></a>)</small>
<br />
<br />
<?php echo sprintf( $lang['confirm_recursive_delete'], ($sub_tree_count-1) ); ?><br />
<br />
<small><?php echo $lang['confirm_recursive_delete_note']; ?></small>
<br />
<br />
<table width="100%">
<tr>
<td>
<center>
<form action="rdelete.php" method="post">
<input type="hidden" name="dn" value="<?php echo $dn; ?>" />
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<input type="submit" class="scary" value="<?php echo sprintf( $lang['delete_all_x_objects'], $sub_tree_count ); ?>" />
</form>
</center>
</td>
<td>
<center>
<form action="edit.php" method="get">
<input type="hidden" name="dn" value="<?php echo htmlspecialchars($dn); ?>" />
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<input type="submit" name="submit" value="<?php echo $lang['cancel']; ?>" class="cancel" />
</form>
</center>
</td>
</tr>
</table>
</td>
</tr>
</table>
<?php flush(); ?>
<br />
<br />
<?php echo $lang['list_of_entries_to_be_deleted']; ?><br />
<select size="<?php echo min( 10, $sub_tree_count );?>" multiple disabled style="background:white; color:black;width:500px" >
<?php $i=0;
foreach( $s as $dn => $junk ) {
$i++; ?>
<option><?php echo $i; ?>. <?php echo htmlspecialchars( ( $dn ) ); ?></option>
<?php } ?>
</select>
<br />
<?php } else { ?>
<center>
<table class="delete_confirm">
<tr>
<td>
<?php echo $lang['sure_permanent_delete_object']; ?><br />
<br />
<nobr><acronym title="<?php echo $lang['distinguished_name']; ?>"><?php echo $lang['dn']; ?></acronym>: <b><?php echo pretty_print_dn( $dn ); ?></b><nobr><br />
<nobr><?php echo $lang['server']; ?>: <b><?php echo htmlspecialchars($ldapserver->name); ?></b></nobr><br />
<br />
<table width="100%">
<tr>
<td>
<center>
<form action="delete.php" method="post">
<input type="hidden" name="dn" value="<?php echo htmlspecialchars($dn); ?>" />
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<input type="submit" name="submit" value="<?php echo $lang['delete']; ?>" class="scary" />
</form>
</center>
</td>
<td>
<center>
<form action="edit.php" method="get">
<input type="hidden" name="dn" value="<?php echo $dn; ?>" />
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<input type="submit" name="submit" value="<?php echo $lang['cancel']; ?>" class="cancel" />
</form>
</center>
</td>
</tr>
</table>
</td>
</tr>
</table>
</center>
<?php } ?>
</body>
</html>

View File

@@ -1,52 +0,0 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/documentation.php,v 1.9 2005/09/25 16:11:44 wurley Exp $
/**
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
//include './header.php';
echo "<body>";
$view = isset( $_GET['view'] ) ? $_GET['view'] : false;
switch( $view ) {
case 'credits':
echo "<h3 class=\"title\">phpLDAPadmin Credits</h3>";
echo "<pre>";
echo "<small>";
include DOCDIR.'CREDITS';
echo "</small>";
echo "</pre>";
echo "</body>";
echo "</html>";
exit;
break;
case 'changelog':
echo "<h3 class=\"title\">phpLDAPadmin ChangeLog</h3>";
echo "<pre>";
echo "<small>";
include DOCDIR.'ChangeLog';
echo "</small>";
echo "</pre>";
echo "</body>";
echo "</html>";
exit;
break;
}
?>
<h3 class="title">phpLDAPadmin documentation</h3>
<h3 class="subtitle">Stuff you wish you already knew.</h3>
<h2 class="doc">Extending phpLDAPadmin</h2>
<h3 class="doc">Creation Templates</h3>
<p class="doc">TODO: Write me.</p>
<h3 class="doc">Modification Templates</h3>
<p class="doc">TODO: Write me.</p>

View File

@@ -1,52 +0,0 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/donate.php,v 1.7 2005/02/26 12:35:05 wurley Exp $
/**
* @package phpLDAPadmin
*/
/**
*/
include './common.php';
include './header.php';
$donate_base_href="https://sourceforge.net/donate/index.php?group_id=61828&amp;type=0";
$amounts = array( 10, 20, 50, 100 );
?>
<body>
<h3 class="title">Donate</h3>
<br />
<br />
<br />
<p style="text-align: center"><?php echo $lang['donation_instructions']; ?></p>
<br />
<table style="width: 100%; font-size: 12px">
<tr>
<?php foreach( $amounts as $amount ) { ?>
<td align="center">
<a href="<?php echo $donate_base_href; ?>&amp;amt=<?php echo $amount; ?>" target="new">
<img src="images/paypal-donate.png"
alt="[<?php echo sprintf( $lang['donate_amount'], '$US ' . $amount ); ?>]"
title="<?php echo sprintf( $lang['donate_amount'], '$US ' . $amount ); ?>" /></a>
</td>
<?php } ?>
</tr>
<tr>
<?php foreach( $amounts as $amount ) { ?>
<td align="center"><?php echo sprintf( $lang['donate_amount'], '$' . $amount ); ?></td>
<?php } ?>
</tr>
</table>
<br />
<br />
</body>
</html>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/download_binary_attr.php,v 1.12.2.1 2005/10/09 09:07:21 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/download_binary_attr.php,v 1.14 2005/12/10 10:34:54 wurley Exp $
/**
* @package phpLDAPadmin
@@ -12,33 +12,28 @@
require './common.php';
if ($ldapserver->isReadOnly())
pla_error($lang['no_updates_in_read_only_mode']);
pla_error(_('You cannot perform updates while server is in read-only mode'));
if (! $ldapserver->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
pla_error(_('Not enough information to login to server. Please check your configuration.'));
$dn = rawurldecode($_GET['dn']);
$attr = $_GET['attr'];
# if there are multiple values in this attribute, which one do you want to see?
$value_num = isset($_GET['value_num']) ? $_GET['value_num'] : 0;
$value_num = isset($_GET['value_num']) ? $_GET['value_num'] : null;
dn_exists($ldapserver,$dn) or
pla_error(sprintf($lang['no_such_entry'],pretty_print_dn($dn)));
if (! $ldapserver->dnExists($dn))
pla_error(sprintf(_('No such entry: %s'),pretty_print_dn($dn)));
$search = @ldap_read($ldapserver->connect(),$dn,"(objectClass=*)",array($attr),0,0,0,$config->GetValue('deref','view'));
if (! $search)
pla_error($lang['error_performing_search'],$ldapserver->error(),$ldapserver->errno());
$search = $ldapserver->search(null,$dn,'(objectClass=*)',array($attr),'base',false,$config->GetValue('deref','view'));
$entry = ldap_first_entry($ldapserver->connect(),$search);
$attrs = ldap_get_attributes($ldapserver->connect(),$entry);
$attr = ldap_first_attribute($ldapserver->connect(),$entry,$attrs);
$values = ldap_get_values_len($ldapserver->connect(),$entry,$attr);
$count = $values['count'];
// Dump the binary data to the browser
header("Content-type: octet-stream");
# Dump the binary data to the browser
header('Content-type: octet-stream');
header("Content-disposition: attachment; filename=$attr");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
echo $values[$value_num];
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
if ($value_num && is_array($search[$attr][$dn]))
echo $search[$dn][$attr][$value_num];
else
echo $search[$dn][$attr];
?>

View File

@@ -1,59 +0,0 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/edit.php,v 1.56 2005/09/25 16:11:44 wurley Exp $
/**
* Displays the specified dn from the specified server for editing
* in its template as determined by get_template(). This is a simple
* shell for displaying entries. The real work is done by the templates
* found in tempaltes/modification/
*
* Variables that come in via common.php
* - server_id
* Variables that come in as GET vars:
* - dn (rawurlencoded)
* - use_default_template (optional) If set, use the default template no matter what
* - Other vars may be set and used by the modification templates
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
require TMPLDIR.'template_config.php';
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$dn = isset($_GET['dn']) ? $_GET['dn'] : false;
$dn !== false or pla_error($lang['missing_dn_in_query_string']);
$decoded_dn = rawurldecode($dn);
$encoded_dn = rawurlencode($decoded_dn);
/* Template authors may wish to present the user with a link back to the default, generic
template for editing. They may use this as the target of the href to do so.
@deprectated
*/
$default_href = sprintf("edit.php?server_id=%s&amp;dn=%s&amp;use_default_template=true",$ldapserver->server_id,$encoded_dn);
$use_default_template = isset( $_GET['use_default_template'] ) || $config->GetValue('template_engine','enable');
if( $use_default_template ) {
if ($config->GetValue('template_engine','enable'))
require './template_engine.php';
else
require TMPLDIR.'modification/default.php';
} else {
$template = get_template($ldapserver,$dn);
$template_file = TMPLDIR."modification/$template.php";
if (file_exists($template_file))
require $template_file;
else {
printf('%s <b>%s</b> %s<br />',$lang['missing_template_file'],$template_file,$lang['using_default']);
require TMPLDIR.'modification/default.php';
}
}
?>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/entry_chooser.php,v 1.26.2.1 2005/10/09 09:07:21 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/entry_chooser.php,v 1.30 2006/01/03 20:39:58 wurley Exp $
/**
* Display a selection (popup window) to pick a DN.
@@ -17,12 +17,12 @@ $rdn = isset($_GET['rdn']) ? htmlspecialchars($_GET['rdn']) : null;
include "./header.php";
printf('<h3 class="subtitle">%s</h3>',$lang['entry_chooser_title']);
printf('<h3 class="subtitle">%s</h3>',_('Entry Chooser'));
flush();
?>
<script language="javascript">
function returnDN( dn ) {
<script type="text/javascript" language="javascript">
function returnDN(dn) {
opener.document.<?php echo $return_form_element; ?>.value = dn;
close();
}
@@ -30,53 +30,53 @@ flush();
<?php
if ($container) {
printf('%s<b>%s</b>',$lang['server_colon_pare'],htmlspecialchars($ldapserver->name));
print '<br />';
printf('%s<b>%s</b>',$lang['look_in'],htmlspecialchars($container));
print '<br />';
printf('%s<b>%s</b>',_('Server: '),htmlspecialchars($ldapserver->name));
echo '<br />';
printf('%s<b>%s</b>',_('Looking in: '),htmlspecialchars($container));
echo '<br />';
}
/* Has the use already begun to descend into a specific server tree? */
if (isset($ldapserver) && $container !== false) {
if (! $ldapserver->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
pla_error(_('Not enough information to login to server. Please check your configuration.'));
$dn_list = get_container_contents($ldapserver,$container,0,'(objectClass=*)',$config->GetValue('deref','tree'));
$dn_list = $ldapserver->getContainerContents($container,0,'(objectClass=*)',$config->GetValue('deref','tree'));
sort($dn_list);
foreach ($ldapserver->getBaseDN() as $base_dn) {
if (DEBUG_ENABLED)
debug_log('entry_chooser.php: Comparing BaseDN [%s] with container [%s]',9,$base_dn,$container);
debug_log('entry_chooser.php: Comparing BaseDN [%s] with container [%s]',64,$base_dn,$container);
if (! pla_compare_dns($container,$base_dn)) {
$parent_container = false;
$up_href = sprintf('entry_chooser.php?form_element=%s&rdn=%s',$return_form_element,$rdn);
$up_href = sprintf('entry_chooser.php?form_element=%s&amp;rdn=%s',$return_form_element,$rdn);
break;
} else {
$parent_container = get_container($container);
$up_href = sprintf('entry_chooser.php?form_element=%s&rdn=%s&amp;server_id=%s&amp;container=%s',
$up_href = sprintf('entry_chooser.php?form_element=%s&amp;rdn=%s&amp;server_id=%s&amp;container=%s',
$return_form_element,$rdn,$ldapserver->server_id,rawurlencode($parent_container));
}
}
print '&nbsp;';
printf('<a href="%s" style="text-decoration:none"><img src="images/up.png"> %s</a>',$up_href,$lang['back_up_p']);
print '<br />';
echo '&nbsp;';
printf('<a href="%s" style="text-decoration:none"><img src="images/up.png" /> %s</a>',$up_href,_('Back Up...'));
echo '<br />';
if (! count($dn_list))
printf('&nbsp;&nbsp;&nbsp;(%s)<br />',$lang['no_entries']);
printf('&nbsp;&nbsp;&nbsp;(%s)<br />',_('no entries'));
else
foreach ($dn_list as $dn) {
$href = sprintf("javascript:returnDN('%s%s')",($rdn ? "$rdn," : ''),$dn);
print '&nbsp;&nbsp;&nbsp;';
printf('<a href="entry_chooser.php?server_id=%s&amp;form_element=%s&rdn=%s&amp;container=%s"><img src="images/plus.png" /></a>',
echo '&nbsp;&nbsp;&nbsp;';
printf('<a href="entry_chooser.php?server_id=%s&amp;form_element=%s&amp;rdn=%s&amp;container=%s"><img src="images/plus.png" /></a>',
$ldapserver->server_id,$return_form_element,$rdn,rawurlencode($dn));
printf('<a href="%s">%s</a>',$href,htmlspecialchars($dn));
print '<br />';
echo '<br />';
}
/* draw the root of the selection tree (ie, list all the servers) */
@@ -92,20 +92,20 @@ if (isset($ldapserver) && $container !== false) {
else {
printf('<b>%s</b>',htmlspecialchars($ldapserver->name));
print '<br />';
echo '<br />';
foreach ($ldapserver->getBaseDN() as $dn) {
if (! $dn) {
printf('<small>&nbsp;&nbsp;&nbsp;(%s)</small><br />',$lang['could_not_det_base_dn']);
printf('<small>&nbsp;&nbsp;&nbsp;(%s)</small><br />',_('Could not determine base DN'));
} else {
$href = sprintf("javascript:returnDN('%s%s')",($rdn ? "$rdn," : ''),$dn);
print '&nbsp;&nbsp;&nbsp;';
printf('<a href="entry_chooser.php?server_id=%s&amp;form_element=%s&rdn=%s&amp;container=%s"><img src="images/plus.png" /></a> ',
echo '&nbsp;&nbsp;&nbsp;';
printf('<a href="entry_chooser.php?server_id=%s&amp;form_element=%s&amp;rdn=%s&amp;container=%s"><img src="images/plus.png" /></a> ',
$ldapserver->server_id,$return_form_element,$rdn,rawurlencode($dn));
printf('<a href="%s">%s</a>',$href,htmlspecialchars($dn));
print '<br />';
echo '<br />';
}
}
}

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/expand.php,v 1.22 2005/07/22 05:47:44 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/expand.php,v 1.23 2005/12/10 10:34:54 wurley Exp $
/**
* This script alters the session variable 'tree', expanding it
@@ -18,52 +18,34 @@
*/
require './common.php';
no_expire_header();
if (! $ldapserver->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
# no expire header stuff
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
pla_error(_('Not enough information to login to server. Please check your configuration.'));
# This allows us to display large sub-trees without running out of time.
@set_time_limit( 0 );
@set_time_limit(0);
$dn = $_GET['dn'];
$encoded_dn = rawurlencode( $dn );
initialize_session_tree();
# We dont need this result, as we'll use the SESSION value when we call tree.php
$ldapserver->getContainerContents($dn,0,'(objectClass=*)',$config->GetValue('deref','tree'));
$tree = $_SESSION['tree'];
$tree_icons = $_SESSION['tree_icons'];
$tree = get_cached_item($ldapserver->server_id,'tree');
$tree['browser'][$dn]['open'] = true;
set_cached_item($ldapserver->server_id,'tree','null',$tree);
$contents = get_container_contents( $ldapserver, $dn, 0, '(objectClass=*)', $config->GetValue('deref','tree'));
usort( $contents, 'pla_compare_dns' );
$tree[$ldapserver->server_id][$dn] = $contents;
foreach( $contents as $dn )
$tree_icons[$ldapserver->server_id][$dn] = get_icon( $ldapserver, $dn );
$_SESSION['tree'] = $tree;
$_SESSION['tree_icons'] = $tree_icons;
// This is for Opera. By putting "random junk" in the query string, it thinks
// that it does not have a cached version of the page, and will thus
// fetch the page rather than display the cached version
/* This is for Opera. By putting "random junk" in the query string, it thinks
that it does not have a cached version of the page, and will thus
fetch the page rather than display the cached version */
$time = gettimeofday();
$random_junk = md5( strtotime( 'now' ) . $time['usec'] );
$random_junk = md5(strtotime('now').$time['usec']);
// If cookies were disabled, build the url parameter for the session id.
// It will be append to the url to be redirect
$id_session_param="";
if( SID != "" )
$id_session_param = "&".session_name()."=".session_id();
/* If cookies were disabled, build the url parameter for the session id.
It will be append to the url to be redirect */
$id_session_param = '';
if (SID != '')
$id_session_param = sprintf('&%s=%s',session_name(),session_id());
session_write_close();
header(sprintf('Location:tree.php?foo=%s#%s_%s%s',$random_junk,$ldapserver->server_id,$encoded_dn,$id_session_param));
header(sprintf('Location:tree.php?foo=%s#%s_%s%s',$random_junk,$ldapserver->server_id,rawurlencode($dn),$id_session_param));
?>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/export.php,v 1.15 2005/09/25 16:11:44 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/export.php,v 1.17 2005/12/17 00:00:11 wurley Exp $
/**
* @package phpLDAPadmin
@@ -13,94 +13,99 @@ ini_set('session.cache_limiter','');
require './common.php';
require LIBDIR.'export_functions.php';
// get the POST parameters
$server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : '');
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
if (! $ldapserver->haveAuthInfo())
pla_error(_('Not enough information to login to server. Please check your configuration.'));
$base_dn = isset($_POST['dn']) ? $_POST['dn']:NULL;
$format = isset( $_POST['format'] ) ? $_POST['format'] : "unix";
$format = isset($_POST['format']) ? $_POST['format'] : 'unix';
$scope = isset($_POST['scope']) ? $_POST['scope'] : 'base';
$filter = isset($_POST['filter']) ? $_POST['filter'] : 'objectclass=*';
$target = isset($_POST['target']) ? $_POST['target'] : 'display';
$save_as_file = isset( $_POST['save_as_file'] ) && $_POST['save_as_file'] == 'on';
$save_as_file = isset($_POST['save_as_file']) && $_POST['save_as_file'] == 'on';
// add system attributes if needed
$attributes = array();
if( isset( $_POST['sys_attr'] ) ){
array_push($attributes,'*');
array_push($attributes,'+');
if (isset($_POST['filter'])) {
preg_replace('/\s+/','',$_POST['filter']);
$attributes = split(',',preg_replace('/\s+/','',$_POST['attributes']));
} else {
$attributes = array();
}
isset($_POST['exporter_id']) or pla_error( $lang['must_choose_export_format'] );
$exporter_id = $_POST['exporter_id'];
isset($exporters[$exporter_id]) or pla_error( $lang['invalid_export_format'] );
# add system attributes if needed
if (isset($_POST['sys_attr'])) {
array_push($attributes,'*');
array_push($attributes,'+');
}
// Initialisation of other variables
$rdn = get_rdn( $base_dn );
$friendly_rdn = get_rdn( $base_dn, 1 );
isset($_POST['exporter_id']) or pla_error(_('You must choose an export format.'));
$exporter_id = $_POST['exporter_id'];
isset($exporters[$exporter_id]) or pla_error(_('Invalid export format'));
# Initialisation of other variables
$friendly_rdn = get_rdn($base_dn,1);
$extension = $exporters[$exporter_id]['extension'];
//set the default CRLN to Unix format
$br = "\n";
// default case not really needed
switch( $format ) {
case 'win':
$br = "\r\n";
break;
case 'mac':
$br = "\r";
break;
case 'unix':
default:
$br = "\n";
# default case not really needed
switch ($format) {
case 'win':
$br = "\r\n";
break;
case 'mac':
$br = "\r";
break;
case 'unix':
default:
$br = "\n";
}
// get the decoree,ie the source
$plaLdapExporter = new PlaLdapExporter($server_id,$filter,$base_dn,$scope,$attributes);
# get the decoree,ie the source
$plaLdapExporter = new PlaLdapExporter($ldapserver->server_id,$filter,$base_dn,$scope,$attributes);
// the decorator
// do it that way for the moment
$exporter = NULL;
# the decorator do it that way for the moment
$exporter = null;
switch($exporter_id){
case 0:
$exporter = new PlaLdifExporter($plaLdapExporter);
break;
case 1:
$exporter = new PlaDsmlExporter($plaLdapExporter);
break;
case 2:
$exporter = new PlaVcardExporter($plaLdapExporter);
break;
case 3:
$exporter = new PlaCSVExporter($plaLdapExporter);
break;
default:
// truly speaking,this default case will never be reached. See check at the bottom.
$plaLdapExporter->pla_close();
pla_error( $lang['no_exporter_found'] );
switch ($exporter_id) {
case 0:
$exporter = new PlaLdifExporter($plaLdapExporter);
break;
case 1:
$exporter = new PlaDsmlExporter($plaLdapExporter);
break;
case 2:
$exporter = new PlaVcardExporter($plaLdapExporter);
break;
case 3:
$exporter = new PlaCSVExporter($plaLdapExporter);
break;
default:
# truly speaking,this default case will never be reached. See check at the bottom.
pla_error(_('No available exporter found.'));
}
// set the CLRN
# set the CLRN
$exporter->setOutputFormat($br);
// prevent script from bailing early for long search
@set_time_limit( 0 );
if (isset($_REQUEST['compress']) && $_REQUEST['compress'] = 'on')
$exporter->compress(true);
# prevent script from bailing early for long search
@set_time_limit(0);
// send the header
if( $save_as_file )
header( "Content-type: application/download" );
# send the header
if ($save_as_file)
header('Content-type: application/download');
else
header( "Content-type: text/plain" );
header( "Content-Disposition: filename=$friendly_rdn.".$exporters[$exporter_id]['extension'] );
header( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
header( "Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT" );
header( "Cache-Control: post-check=0, pre-check=0", false );
header('Content-type: text/plain');
// and export
header(sprintf('Content-Disposition: filename="%s.%s"',$friendly_rdn,$exporters[$exporter_id]['extension'].($exporter->isCompressed()?'.gz':'')));
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: post-check=0, pre-check=0', false);
# and export
$exporter->export();
?>

View File

@@ -1,12 +1,9 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/export_form.php,v 1.22 2005/09/25 16:11:44 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/export_form.php,v 1.24 2005/12/17 00:00:11 wurley Exp $
/**
* export_form.php
* --------------------
*
* Html form to choose an export format(ldif,...)
*
* @package phpLDAPadmin
*/
/**
@@ -15,136 +12,154 @@
require './common.php';
require LIBDIR.'export_functions.php';
$server_id = isset( $_GET['server_id'] ) ? $_GET['server_id']:NULL ;
$format = isset( $_GET['format'] ) ? $_GET['format'] : get_line_end_format();
$scope = isset( $_GET['scope'] ) ? $_GET['scope'] : 'base' ;
$exporter_id = isset( $_GET['exporter_id'] ) ? $_GET['exporter_id'] : 0 ;
$dn = isset( $_GET['dn'] ) ? $_GET['dn'] : null;
$filter = isset( $_GET['filter'] ) ? $_GET['filter'] : '(objectClass=*)';
$attributes = isset( $_GET['attributes'] ) ? $_GET['attributes'] : '*';
$sys_attr = isset( $_GET['sys_attr'] ) && $_GET['sys_attr'] == 'true' ? true : false;
$format = isset($_GET['format']) ? $_GET['format'] : get_line_end_format();
$scope = isset($_GET['scope']) ? $_GET['scope'] : 'base' ;
$exporter_id = isset($_GET['exporter_id']) ? $_GET['exporter_id'] : 0 ;
$dn = isset($_GET['dn']) ? $_GET['dn'] : null;
$filter = isset($_GET['filter']) ? $_GET['filter'] : '(objectClass=*)';
$attributes = isset($_GET['attributes']) ? $_GET['attributes'] : '*';
$sys_attr = isset($_GET['sys_attr']) && $_GET['sys_attr'] == 'true' ? true : false;
$available_formats = array(
'unix' => 'UNIX (Linux, BSD)',
'mac' => 'Macintosh',
$available_formats = array (
'unix' => 'UNIX (Linux, BSD)',
'mac' => 'Macintosh',
'win' => 'Windows'
);
$available_scopes = array(
'base' => $lang['scope_base'],
'one' => $lang['scope_one'],
'sub' => $lang['scope_sub']
$available_scopes = array (
'base' => _('Base (base dn only)'),
'one' => _('One (one level beneath base)'),
'sub' => _('Sub (entire subtree)')
);
include './header.php'; ?>
include './header.php';
<body>
<h3 class="title"><?php echo $lang['export']; ?></h3>
<br />
<center>
<form name="export_form" action="export.php" method="POST">
<table class="export_form">
<tr>
<td>
<fieldset>
<legend><?php echo $lang['export']; ?></legend>
<table>
<tr>
<td><?php echo $lang['server']; ?></td>
<td><?php print server_select_list(); ?></td>
</tr>
<tr>
<td style="white-space:nowrap"><?php echo $lang['base_dn']; ?></td>
<td><nobr><input type="text" name="dn" id="dn" style="width:230px" value="<?php echo htmlspecialchars( $dn ); ?>" /> <?php draw_chooser_link( 'export_form.dn' ); ?></nobr></td>
</tr>
<tr>
<td><span style="white-space: nowrap"><?php echo $lang['search_scope']; ?></span></td>
<td>
<?php foreach( $available_scopes as $id => $desc ) {
$id = htmlspecialchars( $id );
$desc = htmlspecialchars( $desc ); ?>
echo '<body>';
printf('<h3 class="title">%s</h3>',_('Export'));
echo '<br />';
echo '<center>';
echo '<form name="export_form" action="export.php" method="post">';
echo '<table class="export_form">';
echo '<tr>';
echo '<td>';
<input type="radio" name="scope" value="<?php echo $id; ?>" id="<?php echo $id; ?>"<?php if($id==$scope) echo ' checked="true"';?> /><label for="<?php echo $id; ?>"><?php echo $desc; ?></label><br />
echo '<fieldset>';
printf('<legend>%s</legend>',_('Export'));
<?php } ?>
</td>
</tr>
<tr>
<td><?php echo $lang['search_filter']; ?></td>
<td><input type="text" name="filter" style="width:300px" value="<?php echo htmlspecialchars($filter); ?>" /></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="checkbox" name="sys_attr" id="sys_attr" <?php if( $sys_attr ) echo 'checked="true" '; ?>/> <label for="sys_attr"><?php echo $lang['include_system_attrs']; ?></label></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="checkbox" id="save_as_file" name="save_as_file" /><label for="save_as_file"><?php echo $lang['save_as_file']; ?></label></td>
</tr>
</table>
</fieldset>
</td>
</tr>
<tr>
<td>
<table style="width: 100%">
<tr><td style="width: 50%">
<fieldset style="height: 100px">
<legend><?php echo $lang['export_format']; ?></legend>
echo '<table>';
printf('<tr><td>%s</td><td>%s</td></tr>',_('Server'),server_select_list());
<?php foreach($exporters as $index => $exporter){?>
echo '<tr>';
printf('<td style="white-space:nowrap">%s</td>',_('Base DN'));
printf('<td><nobr><input type="text" name="dn" id="dn" style="width:230px" value="%s" />&nbsp;',htmlspecialchars($dn));
draw_chooser_link('export_form.dn');
echo '</nobr></td>';
echo '</tr>';
<input type="radio" name="exporter_id" value="<?php echo htmlspecialchars($index); ?>" id="<?php echo htmlspecialchars($index); ?>" <?php if($index==$exporter_id) echo ' checked="true"'; ?> />
<label for="<?php echo htmlspecialchars( $index ); ?>"><?php echo htmlspecialchars( $exporter['desc'] ); ?></label><br />
echo '<tr>';
printf('<td><span style="white-space: nowrap">%s</span></td>',_('Search Scope'));
<?php } ?>
echo '<td>';
</fieldset>
</td>
<td style="width: 50%">
<fieldset style="height: 100px">
<legend><?php echo $lang['line_ends']; ?></legend>
<?php foreach( $available_formats as $id => $desc ) {
$id = htmlspecialchars( $id );
$desc = htmlspecialchars( $desc );
?>
<input type="radio" name="format" value="<?php echo $id; ?>" id="<?php echo $id; ?>"<?php if($format==$id) echo ' checked="true"'; ?> /><label for="<?php echo $id; ?>"><?php echo $desc; ?></label><br />
foreach ($available_scopes as $id => $desc)
printf('<input type="radio" name="scope" value="%s" id="%s"%s /><label for="%s">%s</label><br />',
htmlspecialchars($id),htmlspecialchars($id),($id == $scope) ? 'checked="true"' : '',
htmlspecialchars($id),htmlspecialchars($desc));
<?php } ?>
</fieldset>
</td></tr>
</table>
</td>
</tr>
<tr>
<td colspan="2">
<center>
<input type="submit" name="target" value="<?php echo $lang['proceed_gt']; ?>" />
</center>
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
echo '</td>';
echo '</tr>';
<?php
printf('<tr><td>%s</td><td><input type="text" name="filter" style="width:300px" value="%s" /></td></tr>',
_('Search Filter'),htmlspecialchars($filter));
printf('<tr><td>%s</td><td><input type="text" name="attributes" style="width:300px" value="%s" /></td></tr>',
_('Show Attributtes'),htmlspecialchars($attributes));
printf('<tr><td>&nbsp;</td><td><input type="checkbox" name="sys_attr" id="sys_attr" %s/> <label for="sys_attr">%s</label></td></tr>',
$sys_attr ? 'checked="true" ' : '',_('Include system attributes'));
printf('<tr><td>&nbsp;</td><td><input type="checkbox" id="save_as_file" name="save_as_file" onclick="toggle_disable_field_saveas(this)" /> <label for="save_as_file">%s</label></td></tr>',
_('Save as file'));
printf('<tr><td>&nbsp;</td><td><input type="checkbox" id="compress" name="compress" disabled /> <label for="compress">%s</label></td></tr>',
_('Compress'));
echo '</table>';
echo '</fieldset>';
echo '</td>';
echo '</tr>';
echo '<tr>';
echo '<td>';
echo '<table style="width: 100%">';
echo '<tr><td style="width: 50%">';
echo '<fieldset style="height: 100px">';
printf('<legend>%s</legend>',_('Export format'));
foreach ($exporters as $index => $exporter) {
printf('<input type="radio" name="exporter_id" id="exporter_id_%s" value="%s"%s />',
htmlspecialchars($index),htmlspecialchars($index),($index==$exporter_id) ? ' checked="true"' : '');
printf('<label for="%s">%s</label><br />',
htmlspecialchars($index),htmlspecialchars($exporter['desc']));
}
echo '</fieldset>';
echo '</td>';
echo '<td style="width: 50%">';
echo '<fieldset style="height: 100px">';
printf('<legend>%s</legend>',_('Line ends'));
foreach ($available_formats as $id => $desc)
printf('<input type="radio" name="format" value="%s" id="%s"%s /><label for="%s">%s</label><br />',
htmlspecialchars($id),htmlspecialchars($id),($format==$id) ? ' checked="true"' : '',
htmlspecialchars($id),htmlspecialchars($desc));
echo '</fieldset>';
echo '</td></tr>';
echo '</table>';
echo '</td>';
echo '</tr>';
echo '<tr>';
echo '<td colspan="2">';
printf('<center><input type="submit" name="target" value="%s" /></center>',
htmlspecialchars(_('Proceed >>')));
echo '</td>';
echo '</tr>';
echo '</table>';
echo '</form>';
echo '</center>';
/**
* Helper functoin for fetching the line end format.
* @return String 'win', 'unix', or 'mac' based on the user's browser..
*/
function get_line_end_format()
{
if( is_browser_os_windows() )
return 'win';
elseif( is_browser_os_unix() )
return 'unix';
elseif( is_browser_os_mac() )
return 'mac';
else
return 'unix';
function get_line_end_format() {
if (is_browser_os_windows())
return 'win';
elseif (is_browser_os_unix())
return 'unix';
elseif (is_browser_os_mac())
return 'mac';
else
return 'unix';
}
?>
<script type="text/javascript" language="javascript">
<!--
function toggle_disable_field_saveas(id) {
if (id.checked) {
id.form.compress.disabled = false;
} else {
id.form.compress.disabled = true;
id.form.compress.checked = false;
}
}
-->
</script>
</body>
</html>

View File

@@ -1,49 +1,58 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/header.php,v 1.19.2.2 2005/10/25 20:21:15 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/header.php,v 1.24 2006/04/29 06:49:31 wurley Exp $
/**
* @package phpLDAPadmin
*/
// We want to get $language into scope in case we were included
// from within a function
global $config;
$language = isset($config) ? $language = $config->GetValue('appearance','language') : 'auto';
/* We want to get $language into scope in case we were included
from within a function */
$language = isset($config) ? $language = $config->GetValue('appearance','language') : 'auto';
// text/xml won't work with MSIE, but is very useful for debugging xhtml code.
//@header( "Content-type: text/xml; charset=\"UTF-8\"" );
@header( "Content-type: text/html; charset=\"UTF-8\"" );
# text/xml won't work with MSIE, but is very useful for debugging xhtml code.
# header('Content-type: text/xml; charset="UTF-8"');
@header('Content-type: text/html; charset="UTF-8"');
// XML version and encoding for well-behaved browsers
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
# XML version and encoding for well-behaved browsers
echo '<?xml version="1.0" encoding="utf-8"?>'."\n";
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"'."\n";
echo '"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'."\n";
printf('<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="%s" lang="%s" dir="ltr">',$language,$language);
echo "\n\n";
echo '<head>';
if (isset($config) && $pagetitle = $config->GetValue('appearance','page_title'))
printf('<title>phpLDAPadmin - %s</title>',$pagetitle);
else
echo '<title>phpLDAPadmin</title>';
printf('<link type="text/css" rel="stylesheet" href="%sstyle.css" media="screen" />',CSSDIR);
if (isset($server_id)) {
$custom_file = get_custom_file($server_id,'style.css',CSSDIR);
if (strcmp($custom_file,'style.css') != 0)
printf('<link type="text/css" rel="stylesheet" href="%s" media="screen" />',$custom_file);
}
printf('<script type="text/javascript" src="%sentry_chooser.js"></script>',JSDIR);
printf('<script type="text/javascript" src="%sie_png_work_around.js"></script>',JSDIR);
printf('<script type="text/javascript" src="%ssearch_util.js"></script>',JSDIR);
printf('<script type="text/javascript" src="%sgeneric_utils.js"></script>',JSDIR);
printf('<link type="text/css" rel="stylesheet" media="all" href="%s/jscalendar/calendar-blue.css" title="blue" />',JSDIR);
printf('<script type="text/javascript" src="%sjscalendar/calendar.js"></script>',JSDIR);
printf('<script type="text/javascript" src="%sjscalendar/lang/calendar-en.js"></script>',JSDIR);
printf('<script type="text/javascript" src="%sjscalendar/calendar-setup.js"></script>',JSDIR);
printf('<script type="text/javascript" src="%sdate_selector.js"></script>',JSDIR);
printf('<link type="text/css" rel="stylesheet" href="%s/phplayersmenu/layerstreemenu.css"></link>',JSDIR);
if (isset($meta_refresh_variable))
printf('<meta http-equiv="refresh" content="%s" />',$meta_refresh_variable);
echo '<meta http-equiv="content-type" content="text/html; charset=utf-8" />';
echo '</head>';
echo "\n\n";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $language; ?>" lang="<?php echo $language; ?>" dir="ltr">
<head>
<?php if (isset($config) && $pagetitle = $config->GetValue('appearance','page_title')) { ?>
<title>phpLDAPadmin - <?php echo $pagetitle; ?></title>
<?php } else { ?>
<title>phpLDAPadmin</title>
<?php } ?>
<link rel="stylesheet" href="<?php echo CSSDIR ?>style.css" media="screen" />
<?php if( isset( $server_id ) ) {
$custom_file = get_custom_file( $server_id, 'style.css',CSSDIR );
if( strcmp( $custom_file, 'style.css' ) != 0 ) { ?>
<link rel="stylesheet" href="<?php echo $custom_file ?>" media="screen" />
<?php }
} ?>
<script src="<?php echo JSDIR; ?>entry_chooser.js" type="text/javascript"></script>
<script src="<?php echo JSDIR; ?>ie_png_work_around.js" type="text/javascript"></script>
<script src="<?php echo JSDIR; ?>search_util.js" type="text/javascript"></script>
<script src="<?php echo JSDIR; ?>generic_utils.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" media="all" href="js/jscalendar/calendar-blue.css" title="blue" />
<script type="text/javascript" src="js/jscalendar/calendar.js"></script>
<script type="text/javascript" src="js/jscalendar/lang/calendar-en.js"></script>
<script type="text/javascript" src="js/jscalendar/calendar-setup.js"></script>
<script type="text/javascript" src="<?php echo JSDIR; ?>date_selector.js"></script>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>

BIN
htdocs/images/nogo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 B

View File

@@ -1,9 +1,8 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/index.php,v 1.39.2.3 2005/10/17 10:03:38 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/index.php,v 1.47 2006/04/29 06:49:31 wurley Exp $
/**
* @package phpLDAPadmin
* @todo: Move config.php syntax error processing to earlier.
*/
/*******************************************
@@ -23,7 +22,7 @@ define('LIBDIR','../lib/');
ini_set('display_errors',1);
error_reporting(E_ALL);
# General functions needed to proceed (pla_ldap_search(), pla_error(), get_object_attrs(), etc.)
# General functions needed to proceed.
ob_start();
if (! file_exists(LIBDIR.'functions.php')) {
ob_end_clean();
@@ -34,19 +33,24 @@ if (! is_readable(LIBDIR.'functions.php')) {
ob_end_clean();
die("Cannot read the file 'functions.php' its permissions are too strict.");
}
require LIBDIR.'functions.php';
$config_file = CONFDIR.'config.php';
ob_end_clean();
# Make sure this PHP install has gettext, we use it for language translation
if (! extension_loaded('gettext'))
die('Your install of PHP appears to be missing GETTEXT support. GETTEXT is used for language translation. Please install GETTEXT support before using phpLDAPadmin. (Dont forget to restart your web server afterwards)');
/* Helper functions.
* Our required helper functions are defined in functions.php
*/
foreach ($pla_function_files as $file_name ) {
if (! file_exists($file_name))
pla_error("Fatal error: Required file '$file_name' does not exist.");
pla_error(sprintf('Fatal error: Required file "%s" does not exist.',$file_name));
if (! is_readable($file_name))
pla_error( "Fatal error: Cannot read the file '$file_name', its permissions are too strict." );
pla_error(sprintf('Fatal error: Cannot read the file "%s", its permissions are too strict.',$file_name));
ob_start();
require $file_name;
@@ -55,62 +59,125 @@ foreach ($pla_function_files as $file_name ) {
# Configuration File check
if (! file_exists($config_file)) {
?>
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"';
echo '"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">';
<html>
<head>
<title>phpLDAPadmin - <?php echo pla_version(); ?></title>
<link rel="stylesheet" href="style.css" />
</head>
echo '<html>';
echo '<head>';
printf('<title>phpLDAPadmin - %s</title>',pla_version());
echo '<link type="text/css" rel="stylesheet" href="css/style.css" />';
echo '</head>';
<body>
<h3 class="title">Configure phpLDAPadmin</h1>
<br />
<br />
echo '<body>';
echo '<h3 class="title">Configure phpLDAPadmin</h3>';
echo '<br /><br />';
<center><?php echo $lang['need_to_configure']; ?></center>
</body>
</html>
echo '<center>';
printf(_('You need to configure phpLDAPadmin. Edit the file "%s" to do so. An example config file is provided in "%s.example".'),$config_file,$config_file);
echo '</center>';
<?php
echo '</body>';
echo '</html>';
die();
} elseif (! is_readable($config_file)) {
pla_error(sprintf('Fatal error: Cannot read your configuration file "%s", its permissions are too strict.',$config_file));
}
# Now read in config_default.php, which also reads in config.php
require LIBDIR.'config_default.php';
if (! check_config()) {
exit;
}
if (check_config()) {
print '<?xml version="1.0" encoding="utf-8"?>';
?>
echo '<?xml version="1.0" encoding="utf-8"?>'."\n";
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"'."\n";
echo ' "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">'."\n";
echo "\n";
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="no-NO">
echo '<html xmlns="http://www.w3.org/1999/xhtml" lang="no-NO">';
<?php if ($pagetitle = $config->GetValue('appearance','page_title')) { ?>
<head><title>phpLDAPadmin (<?php echo pla_version(); ?>) - <?php echo $pagetitle; ?></title></head>
<?php } else { ?>
<head><title>phpLDAPadmin - <?php echo pla_version(); ?></title></head>
<?php } ?>
if ($pagetitle = $config->GetValue('appearance','page_title'))
printf('<head><title>phpLDAPadmin (%s) - %s</title></head>',pla_version(),$pagetitle);
else
printf('<head><title>phpLDAPadmin - %s</title></head>',pla_version());
<frameset cols="<?php echo $config->GetValue('appearance','tree_width'); ?>,*">
<frame src="tree.php" name="left_frame" id="left_frame" />
<frame src="welcome.php" name="right_frame" id="right_frame" />
</frameset>
printf('<frameset cols="%s,*">',$config->GetValue('appearance','tree_width'));
echo '<frame src="tree.php" name="left_frame" id="left_frame" />';
echo '<frame src="welcome.php" name="right_frame" id="right_frame" />';
echo '</frameset>';
</html>
<?php }
echo '</html>';
/*
* Makes sure that the config file is properly setup and
* that your install of PHP can handle LDAP stuff.
*/
function check_config() {
global $lang, $config_file;
global $config_file,$config;
/* Check for syntax errors in config.php
As of php 4.3.5, this NO longer catches fatal errors :( */
ob_start();
include $config_file;
$str = ob_get_contents();
ob_end_clean();
if ($str) {
$str = strip_tags($str);
$matches = array();
preg_match('/(.*):\s+(.*):.*\s+on line (\d+)/',$str,$matches);
$error_type = $matches[1];
$error = $matches[2];
$line_num = $matches[3];
$file = file($config_file);
echo '<?xml version="1.0" encoding="utf-8"?>'."\n";
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"'."\n";
echo ' "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">'."\n";
echo "\n";
echo '<html>';
echo '<head>';
echo '<title>phpLDAPadmin Config File Error</title>';
echo '<link type="text/css" rel="stylesheet" href="css/style.css" />';
echo '</head>';
echo '<body>';
echo '<h3 class="title">Config File ERROR</h3>';
printf('<h3 class="subtitle">%s (%s) on line %s</h3>',$error_type,$error,$line_num);
echo '<center>';
printf('Looks like your config file has an ERROR on line %s.<br />',$line_num);
echo 'Here is a snippet around that line <br />';
echo '<br />'."\n";
echo '<div style="text-align: left; font-family: monospace; margin-left: 80px; margin-right: 80px; border: 1px solid black; padding: 10px;">';
for ($i = $line_num-9; $i<$line_num+5; $i++) {
if ($i+1 == $line_num)
echo '<div style="color:red;background:#fdd">';
if ($i < 0)
continue;
printf('<b>%s</b>: %s<br />',$i+1,htmlspecialchars($file[$i]));
if ($i+1 == $line_num)
echo '</div>';
}
echo '</div>';
echo '<br />';
echo 'Hint: Sometimes these errors are caused by lines <b>preceding</b> the line reported.';
echo '</center>';
echo '</body>';
echo '</html>';
return false;
}
# Now read in config_default.php, which also reads in config.php
require LIBDIR.'config_default.php';
# Make sure their PHP version is current enough
if (strcmp(phpversion(),REQUIRED_PHP_VERSION) < 0) {
@@ -120,132 +187,30 @@ function check_config() {
# Make sure this PHP install has all our required extensions
if (! extension_loaded('ldap')) {
pla_error( "Your install of PHP appears to be missing LDAP support. Please install " .
"LDAP support before using phpLDAPadmin. (Don't forget to restart your web server afterwards)");
pla_error('Your install of PHP appears to be missing LDAP support. Please install LDAP support before using phpLDAPadmin. (Dont forget to restart your web server afterwards)');
return false;
}
# Make sure that we have php-xml loaded.
if (! function_exists('xml_parser_create')) {
pla_error( "Your install of PHP appears to be missing XML support. Please install " .
"XML support before using phpLDAPadmin. (Don't forget to restart your web server afterwards)");
pla_error('Your install of PHP appears to be missing XML support. Please install XML support before using phpLDAPadmin. (Dont forget to restart your web server afterwards)');
return false;
}
# Make sure their session save path is writable, if they are using a file system session module, that is.
if ( ! strcasecmp("Files",session_module_name() && ! is_writable(realpath(session_save_path())))) {
pla_error( "Your PHP session configuration is incorrect. Please check the value of session.save_path
if ( ! strcasecmp('Files',session_module_name() && ! is_writable(realpath(session_save_path())))) {
pla_error('Your PHP session configuration is incorrect. Please check the value of session.save_path
in your php.ini to ensure that the directory specified there exists and is writable.
The current setting of \"". session_save_path() . "\" is un-writable by the web server.");
The current setting of "'.session_save_path().'" is un-writable by the web server.');
return false;
}
/* check for syntax errors in config.php */
# capture the result of including the file with output buffering
ob_start();
include $config_file;
$str = ob_get_contents();
ob_end_clean();
if( $str && false !== strpos( $str, 'error' ) ) {
$str = strip_tags( $str );
$matches = array();
preg_match( "/on line (\d+)/", $str, $matches );
$line_num = $matches[1];
$file = file($config_file);
?>
<html>
<head>
<title>phpLDAPadmin Config File Error</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<h3 class="title">Config file error</h3>
<h3 class="subtitle">Syntax error on line <?php echo $line_num; ?></h3>
<center>
Looks like your config file has a syntax error on line <?php echo $line_num; ?>.
Here is a snippet around that line
<br />
<br />
<div style="text-align: left; margin-left: 80px; margin-right: 80px; border: 1px solid black; padding: 10px;">
<tt>
<?php for( $i=$line_num-9; $i<$line_num+5; $i++ ) {
if( $i+1 == $line_num )
echo "<div style=\"color:red;background:#fdd\">";
if( $i < 0 )
continue;
echo "<b>" . ($i+1) . "</b>: " . htmlspecialchars($file[ $i ]) . "<br />";
if( $i+1 == $line_num )
echo "</div>";
}
?>
</tt>
</div>
<br />
Hint: Sometimes these errors are caused by lines <b>preceding</b> the line reported.
</body>
</html>
<?php return false;
}
/* check the existence of the servers array */
require $config_file;
if( ! isset($ldapservers) || count($ldapservers->GetServerList()) == 0) {
pla_error( "Your config.php is missing Server Definitions
Please see the sample file config.php.example ", false );
if (! isset($ldapservers) || count($ldapservers->GetServerList()) == 0) {
pla_error('Your config.php is missing Server Definitions.
Please see the sample file config/config.php.example.',false);
return false;
}
# @todo: Implement this and fix all the tests.
/*
if ( ! count($ldapservers->GetServerList())) {
pla_error( "None of the " . count($servers) . " servers in your \$servers configuration is
active in config.php. At least one of your servers must set the 'host' directive.
Example: <br><pre>\$servers['host'] = \"ldap.example.com\";<br></pre>
phpLDAPadmin cannot proceed util you correct this.", false );
return false;
}
// Check that 'base' is present on all serve entries
foreach( $servers as $id => $server ) {
if( isset( $server['host'] ) && isset( $server['name'] ) )
isset( $server['base'] )
or pla_error ( "Your configuration has an error. You omitted the 'base' directive
on server number $id. Your server entry must have a 'base' directive
even if it's empty ('')." );
}
// Check each of the servers in the servers array
foreach( $servers as $id => $server ) {
if( isset( $server['host'] ) ) {
// Make sure they specified an auth_type
if( ! isset( $server['auth_type'] ) ) {
pla_error( "Your configuration has an error. You omitted the 'auth_type' directive on server number $id
'auth_type' must be set, and it must be one of 'config', 'cookie', or 'session'.", false );
return false;
}
// Make sure they specified a correct auth_type
if( ! in_array( $server['auth_type'], array( 'config', 'cookie', 'session' ) ) ) {
global $lang;
pla_error( sprintf( $lang['error_auth_type_config'], htmlspecialchars( $server['auth_type'] ) ) );
return false;
}
}
}
*/
return true;
}
?>

View File

@@ -19,7 +19,7 @@
* than modifying calendar.js itself).
*/
// $Id: calendar-setup.js,v 1.1.2.1 2005/10/09 05:45:23 wurley Exp $
// $Id: calendar-setup.js,v 1.2 2005/10/09 11:16:50 wurley Exp $
/**
* This function "patches" an input field (or other element) to use a calendar

View File

@@ -12,7 +12,7 @@
* Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
*/
// $Id: calendar.js,v 1.1.2.1 2005/10/09 05:45:23 wurley Exp $
// $Id: calendar.js,v 1.2 2005/10/09 11:16:50 wurley Exp $
/** The Calendar object constructor. */
Calendar = function (firstDayOfWeek, dateStr, onSelected, onClose) {

View File

@@ -0,0 +1,504 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!

View File

@@ -0,0 +1,24 @@
Copyright (C) 2001-2004 Marco Pratesi
PHP Layers Menu is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
PHP Layers Menu is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
A copy of version 2.1 of the GNU Lesser General Public License
is available in the file COPYING.
Marco Pratesi
http://www.marcopratesi.it/
This is taken from phplayersmenu-3.2.0-rc

View File

@@ -0,0 +1,81 @@
.treemenudiv {
display: block;
white-space: nowrap;
padding-top: 1px;
padding-bottom: 1px;
}
.phplmnormal {
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
font-size: 13px;
color: #000000;
text-decoration: none;
}
a.phplmnormal:hover {
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
font-size: 13px;
color: #000000;
background-color: #fff0c0;
text-decoration: none;
}
a.phplm:link {
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
font-size: 13px;
color: #000000;
text-decoration: none;
}
a.phplm:visited {
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
font-size: 13px;
color: #000000;
text-decoration: none;
}
a.phplm:hover {
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
font-size: 13px;
color: #841212;
background-color: #fff0c0;
text-decoration: none;
}
a.phplm:active {
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
font-size: 13px;
color: #ff0000;
text-decoration: none;
}
a.phplmselected:link {
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
font-size: 13px;
color: #dd0000;
background-color: #ffdd76;
text-decoration: none;
}
a.phplmselected:visited {
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
font-size: 13px;
color: #dd0000;
background-color: #ffdd76;
text-decoration: none;
}
a.phplmselected:hover {
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
font-size: 13px;
color: #841212;
background-color: #fff0c0;
text-decoration: none;
}
a.phplmselected:active {
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
font-size: 13px;
color: #ff0000;
text-decoration: none;
}

View File

@@ -0,0 +1,567 @@
<?php
// vim: set expandtab tabstop=4 shiftwidth=4:
// This code that was derived from the original PHPLIB Template class
// is copyright by Kristian Koehntopp, NetUSE AG and was released
// under the LGPL.
//
// Authors: Kristian Koehntopp <kris@koehntopp.de> (original from PHPLIB)
// Bjoern Schotte <bjoern@rent-a-phpwizard.de> (PEARification)
// Martin Jansen <mj@php.net> (PEAR conformance)
//
// $Id: PHPLIB.php,v 1.2 2005/12/10 10:34:54 wurley Exp $
//
//require_once "PEAR.php";
/**
* Converted PHPLIB Template class
*
* For those who want to use PHPLIB's fine template class,
* here's a PEAR conforming class with the original PHPLIB
* template code from phplib-stable CVS. Original author
* was Kristian Koehntopp <kris@koehntopp.de>
*
* @author Bjoern Schotte <bjoern@rent-a-phpwizard.de>
* @author Martin Jansen <mj@php.net> (PEAR conformance)
* @version 1.0
*/
class Template_PHPLIB
{
/**
* If set, echo assignments
* @var bool
*/
var $debug = false;
/**
* $file[handle] = "filename";
* @var array
*/
var $file = array();
/**
* fallback paths that should be defined in a child class
* @var array
*/
var $file_fallbacks = array();
/**
* Relative filenames are relative to this pathname
* @var string
*/
var $root = "";
/*
* $_varKeys[key] = "key"
* @var array
*/
var $_varKeys = array();
/**
* $_varVals[key] = "value";
* @var array
*/
var $_varVals = array();
/**
* "remove" => remove undefined variables
* "comment" => replace undefined variables with comments
* "keep" => keep undefined variables
* @var string
*/
var $unknowns = "remove";
/**
* "yes" => halt, "report" => report error, continue, "no" => ignore error quietly
* @var string
*/
var $haltOnError = "report";
/**
* The last error message is retained here
* @var string
* @see halt
*/
var $_lastError = "";
/**
* Constructor
*
* @access public
* @param string template root directory
* @param string how to handle unknown variables
* @param array fallback paths
*/
function Template_PHPLIB($root = ".", $unknowns = "remove", $fallback="")
{
$this->setRoot($root);
$this->setUnknowns($unknowns);
if (is_array($fallback)) $this->file_fallbacks = $fallback;
}
/**
* Sets the template directory
*
* @access public
* @param string new template directory
* @return bool
*/
function setRoot($root)
{
if (!is_dir($root)) {
$this->halt("setRoot: $root is not a directory.");
return false;
}
$this->root = $root;
return true;
}
/**
* What to do with unknown variables
*
* three possible values:
*
* - "remove" will remove unknown variables
* (don't use this if you define CSS in your page)
* - "comment" will replace undefined variables with comments
* - "keep" will keep undefined variables as-is
*
* @access public
* @param string unknowns
*/
function setUnknowns($unknowns = "keep")
{
$this->unknowns = $unknowns;
}
/**
* Set appropriate template files
*
* With this method you set the template files you want to use.
* Either you supply an associative array with key/value pairs
* where the key is the handle for the filname and the value
* is the filename itself, or you define $handle as the file name
* handle and $filename as the filename if you want to define only
* one template.
*
* @access public
* @param mixed handle for a filename or array with handle/name value pairs
* @param string name of template file
* @return bool
*/
function setFile($handle, $filename = "")
{
if (!is_array($handle)) {
if ($filename == "") {
$this->halt("setFile: For handle $handle filename is empty.");
return false;
}
$this->file[$handle] = $this->_filename($filename);
} else {
reset($handle);
while (list($h, $f) = each($handle)) {
$this->file[$h] = $this->_filename($f);
}
}
}
/**
* Set a block in the appropriate template handle
*
* By setting a block like that:
*
* &lt;!-- BEGIN blockname --&gt;
* html code
* &lt;!-- END blockname --&gt;
*
* you can easily do repeating HTML code, i.e. output
* database data nice formatted into a HTML table where
* each DB row is placed into a HTML table row which is
* defined in this block.
* It extracts the template $handle from $parent and places
* variable {$name} instead.
*
* @access public
* @param string parent handle
* @param string block name handle
* @param string variable substitution name
*/
function setBlock($parent, $handle, $name = "")
{
if (!$this->_loadFile($parent)) {
$this->halt("setBlock: unable to load $parent.");
return false;
}
if ($name == "") {
$name = $handle;
}
$str = $this->getVar($parent);
$reg = "/[ \t]*<!--\s+BEGIN $handle\s+-->\s*?\n?(\s*.*?\n?)\s*<!--\s+END $handle\s+-->\s*?\n?/sm";
preg_match_all($reg, $str, $m);
$str = preg_replace($reg, "{" . "$name}", $str);
if (isset($m[1][0])) $this->setVar($handle, $m[1][0]);
$this->setVar($parent, $str);
}
/**
* Set corresponding substitutions for placeholders
*
* @access public
* @param string name of a variable that is to be defined or an array of variables with value substitution as key/value pairs
* @param string value of that variable
* @param boolean if true, the value is appended to the variable's existing value
*/
function setVar($varname, $value = "", $append = false)
{
if (!is_array($varname)) {
if (!empty($varname))
if ($this->debug) print "scalar: set *$varname* to *$value*<br>\n";
$this->_varKeys[$varname] = $this->_varname($varname);
($append) ? $this->_varVals[$varname] .= $value : $this->_varVals[$varname] = $value;
} else {
reset($varname);
while (list($k, $v) = each($varname)) {
if (!empty($k))
if ($this->debug) print "array: set *$k* to *$v*<br>\n";
$this->_varKeys[$k] = $this->_varname($k);
($append) ? $this->_varVals[$k] .= $v : $this->_varVals[$k] = $v;
}
}
}
/**
* Substitute variables in handle $handle
*
* @access public
* @param string name of handle
* @return mixed string substituted content of handle
*/
function subst($handle)
{
if (!$this->_loadFile($handle)) {
$this->halt("subst: unable to load $handle.");
return false;
}
return @str_replace($this->_varKeys, $this->_varVals, $this->getVar($handle));
}
/**
* Same as subst but printing the result
*
* @access public
* @brother subst
* @param string handle of template
* @return bool always false
*/
function pSubst($handle)
{
print $this->subst($handle);
return false;
}
/**
* Parse handle into target
*
* Parses handle $handle into $target, eventually
* appending handle at $target if $append is defined
* as TRUE.
*
* @access public
* @param string target handle to parse into
* @param string which handle should be parsed
* @param boolean append it to $target or not?
* @return string parsed handle
*/
function parse($target, $handle, $append = false)
{
if (!is_array($handle)) {
$str = $this->subst($handle);
($append) ? $this->setVar($target, $this->getVar($target) . $str) : $this->setVar($target, $str);
} else {
reset($handle);
while (list(, $h) = each($handle)) {
$str = $this->subst($h);
$this->setVar($target, $str);
}
}
return $str;
}
/**
* Same as parse, but printing it.
*
* @access public
* @brother parse
* @param string target to parse into
* @param string handle which should be parsed
* @param should $handle be appended to $target?
* @return bool
*/
function pParse($target, $handle, $append = false)
{
print $this->finish($this->parse($target, $handle, $append));
return false;
}
/**
* Return all defined variables and their values
*
* @access public
* @return array with all defined variables and their values
*/
function getVars()
{
reset($this->_varKeys);
while (list($k, ) = each($this->_varKeys)) {
$result[$k] = $this->getVar($k);
}
return $result;
}
/**
* Return one or more specific variable(s) with their values.
*
* @access public
* @param mixed array with variable names or one variable name as a string
* @return mixed array of variable names with their values or value of one specific variable
*/
function getVar($varname)
{
if (!is_array($varname)) {
if (isset($this->_varVals[$varname])) {
return $this->_varVals[$varname];
} else {
return "";
}
} else {
reset($varname);
while (list($k, ) = each($varname)) {
$result[$k] = (isset($this->_varVals[$k])) ? $this->_varVals[$k] : "";
}
return $result;
}
}
/**
* Get undefined values of a handle
*
* @access public
* @param string handle name
* @return mixed false if an error occured or the undefined values
*/
function getUndefined($handle)
{
if (!$this->_loadFile($handle)) {
$this->halt("getUndefined: unable to load $handle.");
return false;
}
preg_match_all("/{([^ \t\r\n}]+)}/", $this->getVar($handle), $m);
$m = $m[1];
if (!is_array($m)) {
return false;
}
reset($m);
while (list(, $v) = each($m)) {
if (!isset($this->_varKeys[$v])) {
$result[$v] = $v;
}
}
if (isset($result) && count($result)) {
return $result;
} else {
return false;
}
}
/**
* Finish string
*
* @access public
* @param string string to finish
* @return finished, i.e. substituted string
*/
function finish($str)
{
switch ($this->unknowns) {
case "remove":
$str = preg_replace('/{[^ \t\r\n}]+}/', "", $str);
break;
case "comment":
$str = preg_replace('/{([^ \t\r\n}]+)}/', "<!-- Template $handle: Variable \\1 undefined -->", $str);
break;
}
return $str;
}
/**
* Print variable to the browser
*
* @access public
* @param string name of variable to print
*/
function p($varname)
{
print $this->finish($this->getVar($varname));
}
/**
* Get finished variable
*
* @access public public
* @param string variable to get
* @return string string with finished variable
*/
function get($varname)
{
return $this->finish($this->getVar($varname));
}
/**
* Complete filename
*
* Complete filename, i.e. testing it for slashes
*
* @access private
* @param string filename to be completed
* @return string completed filename
*/
function _filename($filename)
{
// if (substr($filename, 0, 1) != "/") {
// $filename = $this->root."/".$filename;
// }
if (file_exists($filename)) return $filename;
if (is_array($this->file_fallbacks) && count($this->file_fallbacks) > 0) {
reset($this->file_fallbacks);
while (list(,$v) = each($this->file_fallbacks)) {
if (file_exists($v.basename($filename))) return $v.basename($filename);
}
$this->halt(sprintf("filename: file %s does not exist in the fallback paths %s.",$filename,implode(",",$this->file_fallbacks)));
return false;
} else {
$this->halt(sprintf("filename: file %s does not exist.",$filename));
return false;
}
return $filename;
}
/**
* Protect a replacement variable
*
* @access private
* @param string name of replacement variable
* @return string replaced variable
*/
function _varname($varname)
{
return "{".$varname."}";
}
/**
* load file defined by handle if it is not loaded yet
*
* @access private
* @param string handle
* @return bool FALSE if error, true if all is ok
*/
function _loadFile($handle)
{
if (isset($this->_varKeys[$handle]) and !empty($this->_varVals[$handle])) {
return true;
}
if (!isset($this->file[$handle])) {
$this->halt("loadfile: $handle is not a valid handle.");
return false;
}
$filename = $this->file[$handle];
if (function_exists("file_get_contents")) {
$str = file_get_contents($filename);
} else {
if (!$fp = @fopen($filename,"r")) {
$this->halt("loadfile: couldn't open $filename");
return false;
}
$str = fread($fp,filesize($filename));
fclose($fp);
}
if ($str=='') {
$this->halt("loadfile: While loading $handle, $filename does not exist or is empty.");
return false;
}
$this->setVar($handle, $str);
return true;
}
/**
* Error function. Halt template system with message to show
*
* @access public
* @param string message to show
* @return bool
*/
function halt($msg)
{
$this->_lastError = $msg;
if ($this->haltOnError != "no") {
// return $this->haltMsg($msg);
$this->haltMsg($msg);
}
if ($this->haltOnError == "yes") {
die("<b>Halted.</b>");
}
return false;
}
/**
* printf error message to show
*
* @access public
* @param string message to show
* @return object PEAR error object
*/
function haltMsg($msg)
{
// PEAR::raiseError(sprintf("<b>Template Error:</b> %s<br>\n", $msg));
printf("<b>Template Error:</b> %s<br>\n", $msg);
}
}
?>

View File

@@ -0,0 +1,957 @@
<?php
// PHP Layers Menu 3.2.0-rc (C) 2001-2004 Marco Pratesi - http://www.marcopratesi.it/
/**
* This file contains the code of the LayersMenuCommon class.
* @package PHPLayersMenu
*/
/**
* This is the "common" class of the PHP Layers Menu library.
*
* You need to include PEAR.php and DB.php if (and only if) you want to use the DB support provided by ths class.
*
* @version 3.2.0-rc
* @package PHPLayersMenu
*/
class LayersMenuCommon
{
/**
* The name of the package
* @access private
* @var string
*/
var $_packageName;
/**
* The version of the package
* @access private
* @var string
*/
var $version;
/**
* The copyright of the package
* @access private
* @var string
*/
var $copyright;
/**
* The author of the package
* @access private
* @var string
*/
var $author;
/**
* URL to be prepended to the menu hrefs
* @access private
* @var string
*/
var $prependedUrl = '';
/**
* Do you want that code execution halts on error?
* @access private
* @var string
*/
var $haltOnError = 'yes';
/**
* The base directory where the package is installed
* @access private
* @var string
*/
var $dirroot;
/**
* The "libjs" directory of the package
* @access private
* @var string
*/
var $libjsdir;
/**
* The directory where images related to the menu can be found
* @access private
* @var string
*/
var $imgdir;
/**
* The http path corresponding to imgdir
* @access private
* @var string
*/
var $imgwww;
/**
* The directory where icons of menu items can be found
* @access private
* @var string
*/
var $icondir;
/**
* The http path corresponding to icondir
* @access private
* @var string
*/
var $iconwww;
/**
* This array may contain width and height of all icons
* @access private
* @var integer
*/
var $iconsize = array();
/**
* If this var is false, width and height of icons have to be detected; if this var is true, width and height of icons are not detected and are retrieved from the iconsize array
* @access private
* @var boolean
*/
var $issetIconsize = false;
/**
* The directory where templates can be found
* @access private
* @var string
*/
var $tpldir;
/**
* The string containing the menu structure
* @access private
* @var string
*/
var $menuStructure;
/**
* It counts nodes for all menus
* @access private
* @var integer
*/
var $_nodesCount;
/**
* A multi-dimensional array to store informations for each menu entry
* @access private
* @var array
*/
var $tree;
/**
* A multi-dimensional array used only with the DB support; for each $menu_name, it stores the $cnt associated to each item id
*
* This array is needed for selection of the current item
* through the corresponding id (see the DB table structure)
* as, internally, items are stored, sorted and addressed in terms of $cnt
*
* @access private
* @var array
*/
var $treecnt;
/**
* The maximum hierarchical level of menu items
* @access private
* @var integer
*/
var $_maxLevel;
/**
* An array that counts the number of first level items for each menu
* @access private
* @var array
*/
var $_firstLevelCnt;
/**
* An array containing the number identifying the first item of each menu
* @access private
* @var array
*/
var $_firstItem;
/**
* An array containing the number identifying the last item of each menu
* @access private
* @var array
*/
var $_lastItem;
/**
* Data Source Name: the connection string for PEAR DB
* @access private
* @var string
*/
var $dsn = 'pgsql://dbuser:dbpass@dbhost/dbname';
/**
* DB connections are either persistent or not persistent
* @access private
* @var boolean
*/
var $persistent = false;
/**
* Name of the table storing data describing the menu
* @access private
* @var string
*/
var $tableName = 'phplayersmenu';
/**
* Name of the i18n table corresponding to $tableName
* @access private
* @var string
*/
var $tableName_i18n = 'phplayersmenu_i18n';
/**
* Names of fields of the table storing data describing the menu
*
* default field names correspond to the same field names foreseen
* by the menu structure format
*
* @access private
* @var array
*/
var $tableFields = array(
'id' => 'id',
'parent_id' => 'parent_id',
'text' => 'text',
'href' => 'href',
'title' => 'title',
'icon' => 'icon',
'target' => 'target',
'orderfield' => 'orderfield',
'expanded' => 'expanded'
);
/**
* Names of fields of the i18n table corresponding to $tableName
* @access private
* @var array
*/
var $tableFields_i18n = array(
'language' => 'language',
'id' => 'id',
'text' => 'text',
'title' => 'title'
);
/**
* A temporary array to store data retrieved from the DB and to perform the depth-first search
* @access private
* @var array
*/
var $_tmpArray = array();
/**
* The constructor method; it initializates the menu system
* @return void
*/
function LayersMenuCommon()
{
$this->_packageName = 'PHP Layers Menu';
$this->version = '3.2.0-rc';
$this->copyright = '(C) 2001-2004';
$this->author = 'Marco Pratesi - http://www.marcopratesi.it/';
$this->prependedUrl = '';
$this->dirroot = './';
$this->libjsdir = './libjs/';
$this->imgdir = './menuimages/';
$this->imgwww = 'menuimages/';
$this->icondir = './menuicons/';
$this->iconwww = 'menuicons/';
$this->tpldir = './templates/';
$this->menuStructure = '';
$this->separator = '|';
$this->_nodesCount = 0;
$this->tree = array();
$this->treecnt = array();
$this->_maxLevel = array();
$this->_firstLevelCnt = array();
$this->_firstItem = array();
$this->_lastItem = array();
}
/**
* The method to set the prepended URL
* @access public
* @return boolean
*/
function setPrependedUrl($prependedUrl)
{
// We do not perform any check
$this->prependedUrl = $prependedUrl;
return true;
}
/**
* The method to set the dirroot directory
* @access public
* @return boolean
*/
function setDirrootCommon($dirroot)
{
if (!is_dir($dirroot)) {
$this->error("setDirroot: $dirroot is not a directory.");
return false;
}
if (substr($dirroot, -1) != '/') {
$dirroot .= '/';
}
$oldlength = strlen($this->dirroot);
$foobar = strpos($this->libjsdir, $this->dirroot);
if (!($foobar === false || $foobar != 0)) {
$this->libjsdir = $dirroot . substr($this->libjsdir, $oldlength);
}
$foobar = strpos($this->imgdir, $this->dirroot);
if (!($foobar === false || $foobar != 0)) {
$this->imgdir = $dirroot . substr($this->imgdir, $oldlength);
}
$foobar = strpos($this->icondir, $this->dirroot);
if (!($foobar === false || $foobar != 0)) {
$this->icondir = $dirroot . substr($this->icondir, $oldlength);
}
$foobar = strpos($this->tpldir, $this->dirroot);
if (!($foobar === false || $foobar != 0)) {
$this->tpldir = $dirroot . substr($this->tpldir, $oldlength);
}
$this->dirroot = $dirroot;
return true;
}
/**
* The method to set the libjsdir directory
* @access public
* @return boolean
*/
function setLibjsdir($libjsdir)
{
if ($libjsdir != '' && substr($libjsdir, -1) != '/') {
$libjsdir .= '/';
}
if ($libjsdir == '' || substr($libjsdir, 0, 1) != '/') {
$foobar = strpos($libjsdir, $this->dirroot);
if ($foobar === false || $foobar != 0) {
$libjsdir = $this->dirroot . $libjsdir;
}
}
if (!is_dir($libjsdir)) {
$this->error("setLibjsdir: $libjsdir is not a directory.");
return false;
}
$this->libjsdir = $libjsdir;
return true;
}
/**
* The method to set the imgdir directory
* @access public
* @return boolean
*/
function setImgdir($imgdir)
{
if ($imgdir != '' && substr($imgdir, -1) != '/') {
$imgdir .= '/';
}
if ($imgdir == '' || substr($imgdir, 0, 1) != '/') {
$foobar = strpos($imgdir, $this->dirroot);
if ($foobar === false || $foobar != 0) {
$imgdir = $this->dirroot . $imgdir;
}
}
if (!is_dir($imgdir)) {
$this->error("setImgdir: $imgdir is not a directory.");
return false;
}
$this->imgdir = $imgdir;
return true;
}
/**
* The method to set imgwww
* @access public
* @return void
*/
function setImgwww($imgwww)
{
if ($imgwww != '' && substr($imgwww, -1) != '/') {
$imgwww .= '/';
}
$this->imgwww = $imgwww;
}
/**
* The method to set the icondir directory
* @access public
* @return boolean
*/
function setIcondir($icondir)
{
if ($icondir != '' && substr($icondir, -1) != '/') {
$icondir .= '/';
}
if ($icondir == '' || substr($icondir, 0, 1) != '/') {
$foobar = strpos($icondir, $this->dirroot);
if ($foobar === false || $foobar != 0) {
$icondir = $this->dirroot . $icondir;
}
}
if (!is_dir($icondir)) {
$this->error("setIcondir: $icondir is not a directory.");
return false;
}
$this->icondir = $icondir;
return true;
}
/**
* The method to set iconwww
* @access public
* @return void
*/
function setIconwww($iconwww)
{
if ($iconwww != '' && substr($iconwww, -1) != '/') {
$iconwww .= '/';
}
$this->iconwww = $iconwww;
}
/**
* The method to set the iconsize array
* @access public
* @return void
*/
function setIconsize($width, $height)
{
$this->iconsize['width'] = ($width == (int) $width) ? $width : 0;
$this->iconsize['height'] = ($height == (int) $height) ? $height : 0;
$this->issetIconsize = true;
}
/**
* The method to unset the iconsize array
* @access public
* @return void
*/
function unsetIconsize()
{
unset($this->iconsize['width']);
unset($this->iconsize['height']);
$this->issetIconsize = false;
}
/**
* The method to set the tpldir directory
* @access public
* @return boolean
*/
function setTpldirCommon($tpldir)
{
if ($tpldir != '' && substr($tpldir, -1) != '/') {
$tpldir .= '/';
}
if ($tpldir == '' || substr($tpldir, 0, 1) != '/') {
$foobar = strpos($tpldir, $this->dirroot);
if ($foobar === false || $foobar != 0) {
$tpldir = $this->dirroot . $tpldir;
}
}
if (!is_dir($tpldir)) {
$this->error("setTpldir: $tpldir is not a directory.");
return false;
}
$this->tpldir = $tpldir;
return true;
}
/**
* The method to read the menu structure from a file
* @access public
* @param string $tree_file the menu structure file
* @return boolean
*/
function setMenuStructureFile($tree_file)
{
if (!($fd = fopen($tree_file, 'r'))) {
$this->error("setMenuStructureFile: unable to open file $tree_file.");
return false;
}
$this->menuStructure = '';
while ($buffer = fgets($fd, 4096)) {
$buffer = ereg_replace(chr(13), '', $buffer); // Microsoft Stupidity Suppression
$this->menuStructure .= $buffer;
}
fclose($fd);
if ($this->menuStructure == '') {
$this->error("setMenuStructureFile: $tree_file is empty.");
return false;
}
return true;
}
/**
* The method to set the menu structure passing it through a string
* @access public
* @param string $tree_string the menu structure string
* @return boolean
*/
function setMenuStructureString($tree_string)
{
$this->menuStructure = ereg_replace(chr(13), '', $tree_string); // Microsoft Stupidity Suppression
if ($this->menuStructure == '') {
$this->error('setMenuStructureString: empty string.');
return false;
}
return true;
}
/**
* The method to set the value of separator
* @access public
* @return void
*/
function setSeparator($separator)
{
$this->separator = $separator;
}
/**
* The method to set parameters for the DB connection
* @access public
* @param string $dns Data Source Name: the connection string for PEAR DB
* @param bool $persistent DB connections are either persistent or not persistent
* @return boolean
*/
function setDBConnParms($dsn, $persistent=false)
{
if (!is_string($dsn)) {
$this->error('initdb: $dsn is not an string.');
return false;
}
if (!is_bool($persistent)) {
$this->error('initdb: $persistent is not a boolean.');
return false;
}
$this->dsn = $dsn;
$this->persistent = $persistent;
return true;
}
/**
* The method to set the name of the table storing data describing the menu
* @access public
* @param string
* @return boolean
*/
function setTableName($tableName)
{
if (!is_string($tableName)) {
$this->error('setTableName: $tableName is not a string.');
return false;
}
$this->tableName = $tableName;
return true;
}
/**
* The method to set the name of the i18n table corresponding to $tableName
* @access public
* @param string
* @return boolean
*/
function setTableName_i18n($tableName_i18n)
{
if (!is_string($tableName_i18n)) {
$this->error('setTableName_i18n: $tableName_i18n is not a string.');
return false;
}
$this->tableName_i18n = $tableName_i18n;
return true;
}
/**
* The method to set names of fields of the table storing data describing the menu
* @access public
* @param array
* @return boolean
*/
function setTableFields($tableFields)
{
if (!is_array($tableFields)) {
$this->error('setTableFields: $tableFields is not an array.');
return false;
}
if (count($tableFields) == 0) {
$this->error('setTableFields: $tableFields is a zero-length array.');
return false;
}
reset ($tableFields);
while (list($key, $value) = each($tableFields)) {
$this->tableFields[$key] = ($value == '') ? "''" : $value;
}
return true;
}
/**
* The method to set names of fields of the i18n table corresponding to $tableName
* @access public
* @param array
* @return boolean
*/
function setTableFields_i18n($tableFields_i18n)
{
if (!is_array($tableFields_i18n)) {
$this->error('setTableFields_i18n: $tableFields_i18n is not an array.');
return false;
}
if (count($tableFields_i18n) == 0) {
$this->error('setTableFields_i18n: $tableFields_i18n is a zero-length array.');
return false;
}
reset ($tableFields_i18n);
while (list($key, $value) = each($tableFields_i18n)) {
$this->tableFields_i18n[$key] = ($value == '') ? "''" : $value;
}
return true;
}
/**
* The method to parse the current menu structure and correspondingly update related variables
* @access public
* @param string $menu_name the name to be attributed to the menu
* whose structure has to be parsed
* @return void
*/
function parseStructureForMenu(
$menu_name = '' // non consistent default...
)
{
$this->_maxLevel[$menu_name] = 0;
$this->_firstLevelCnt[$menu_name] = 0;
$this->_firstItem[$menu_name] = $this->_nodesCount + 1;
$cnt = $this->_firstItem[$menu_name];
$menuStructure = $this->menuStructure;
/* *********************************************** */
/* Partially based on a piece of code taken from */
/* TreeMenu 1.1 - Bjorge Dijkstra (bjorge@gmx.net) */
/* *********************************************** */
while ($menuStructure != '') {
$before_cr = strcspn($menuStructure, "\n");
$buffer = substr($menuStructure, 0, $before_cr);
$menuStructure = substr($menuStructure, $before_cr+1);
if (substr($buffer, 0, 1) == '#') {
continue; // commented item line...
}
$tmp = rtrim($buffer);
$node = explode($this->separator, $tmp);
for ($i=count($node); $i<=7; $i++) {
$node[$i] = '';
}
$this->tree[$cnt]['level'] = strlen($node[0]);
$this->tree[$cnt]['text'] = $node[1];
$this->tree[$cnt]['href'] = $node[2];
$this->tree[$cnt]['title'] = $node[3];
$this->tree[$cnt]['icon'] = $node[4];
$this->tree[$cnt]['target'] = $node[5];
$this->tree[$cnt]['expanded'] = $node[6];
$this->tree[$cnt]['children'] = $node[7];
$cnt++;
}
/* *********************************************** */
$this->_lastItem[$menu_name] = count($this->tree);
$this->_nodesCount = $this->_lastItem[$menu_name];
$this->tree[$this->_lastItem[$menu_name]+1]['level'] = 0;
$this->_postParse($menu_name);
}
/**
* The method to parse the current menu table and correspondingly update related variables
* @access public
* @param string $menu_name the name to be attributed to the menu
* whose structure has to be parsed
* @param string $language i18n language; either omit it or pass
* an empty string ('') if you do not want to use any i18n table
* @return void
*/
function scanTableForMenu(
$menu_name = '', // non consistent default...
$language = ''
)
{
$this->_maxLevel[$menu_name] = 0;
$this->_firstLevelCnt[$menu_name] = 0;
unset($this->tree[$this->_nodesCount+1]);
$this->_firstItem[$menu_name] = $this->_nodesCount + 1;
/* BEGIN BENCHMARK CODE
$time_start = $this->_getmicrotime();
/* END BENCHMARK CODE */
$db = DB::connect($this->dsn, $this->persistent);
if (DB::isError($db)) {
$this->error('scanTableForMenu: ' . $db->getMessage());
}
$dbresult = $db->query('
SELECT ' .
$this->tableFields['id'] . ' AS id, ' .
$this->tableFields['parent_id'] . ' AS parent_id, ' .
$this->tableFields['text'] . ' AS text, ' .
$this->tableFields['href'] . ' AS href, ' .
$this->tableFields['title'] . ' AS title, ' .
$this->tableFields['icon'] . ' AS icon, ' .
$this->tableFields['target'] . ' AS target, ' .
$this->tableFields['expanded'] . ' AS expanded
FROM ' . $this->tableName . '
WHERE ' . $this->tableFields['id'] . ' <> 1
ORDER BY ' . $this->tableFields['orderfield'] . ', ' . $this->tableFields['text'] . ' ASC
');
$this->_tmpArray = array();
while ($dbresult->fetchInto($row, DB_FETCHMODE_ASSOC)) {
$this->_tmpArray[$row['id']]['parent_id'] = $row['parent_id'];
$this->_tmpArray[$row['id']]['text'] = $row['text'];
$this->_tmpArray[$row['id']]['href'] = $row['href'];
$this->_tmpArray[$row['id']]['title'] = $row['title'];
$this->_tmpArray[$row['id']]['icon'] = $row['icon'];
$this->_tmpArray[$row['id']]['target'] = $row['target'];
$this->_tmpArray[$row['id']]['expanded'] = $row['expanded'];
}
if ($language != '') {
$dbresult = $db->query('
SELECT ' .
$this->tableFields_i18n['id'] . ' AS id, ' .
$this->tableFields_i18n['text'] . ' AS text, ' .
$this->tableFields_i18n['title'] . ' AS title
FROM ' . $this->tableName_i18n . '
WHERE ' . $this->tableFields_i18n['id'] . ' <> 1
AND ' . $this->tableFields_i18n['language'] . ' = ' . "'$language'" . '
');
while ($dbresult->fetchInto($row, DB_FETCHMODE_ASSOC)) {
if (isset($this->_tmpArray[$row['id']])) {
$this->_tmpArray[$row['id']]['text'] = $row['text'];
$this->_tmpArray[$row['id']]['title'] = $row['title'];
}
}
}
unset($dbresult);
unset($row);
$this->_depthFirstSearch($menu_name, $this->_tmpArray, 1, 1);
/* BEGIN BENCHMARK CODE
$time_end = $this->_getmicrotime();
$time = $time_end - $time_start;
print "TIME ELAPSED = $time\n<br>";
/* END BENCHMARK CODE */
$this->_lastItem[$menu_name] = count($this->tree);
$this->_nodesCount = $this->_lastItem[$menu_name];
$this->tree[$this->_lastItem[$menu_name]+1]['level'] = 0;
$this->_postParse($menu_name);
}
function _getmicrotime()
{
list($usec, $sec) = explode(' ', microtime());
return ((float) $usec + (float) $sec);
}
/**
* Recursive method to perform the depth-first search of the tree data taken from the current menu table
* @access private
* @param string $menu_name the name to be attributed to the menu
* whose structure has to be parsed
* @param array $tmpArray the temporary array that stores data to perform
* the depth-first search
* @param integer $parent_id id of the item whose children have
* to be searched for
* @param integer $level the hierarchical level of children to be searched for
* @return void
*/
function _depthFirstSearch($menu_name, $tmpArray, $parent_id=1, $level=1)
{
reset ($tmpArray);
while (list($id, $foobar) = each($tmpArray)) {
if ($foobar['parent_id'] == $parent_id) {
unset($tmpArray[$id]);
unset($this->_tmpArray[$id]);
$cnt = count($this->tree) + 1;
$this->tree[$cnt]['level'] = $level;
$this->tree[$cnt]['text'] = $foobar['text'];
$this->tree[$cnt]['href'] = $foobar['href'];
$this->tree[$cnt]['title'] = $foobar['title'];
$this->tree[$cnt]['icon'] = $foobar['icon'];
$this->tree[$cnt]['target'] = $foobar['target'];
$this->tree[$cnt]['expanded'] = $foobar['expanded'];
$this->tree[$cnt]['children'] = $foobar['children'];
$this->treecnt[$menu_name][$id] = $cnt;
unset($foobar);
if ($id != $parent_id) {
$this->_depthFirstSearch($menu_name, $this->_tmpArray, $id, $level+1);
}
}
}
}
/**
* A method providing parsing needed after both file/string parsing and DB table parsing
* @access private
* @param string $menu_name the name of the menu for which the parsing
* has to be performed
* @return void
*/
function _postParse(
$menu_name = '' // non consistent default...
)
{
for ($cnt=$this->_firstItem[$menu_name]; $cnt<=$this->_lastItem[$menu_name]; $cnt++) { // this counter scans all nodes of the new menu
$this->tree[$cnt]['child_of_root_node'] = ($this->tree[$cnt]['level'] == 1);
$this->tree[$cnt]['parsed_text'] = stripslashes($this->tree[$cnt]['text']);
$this->tree[$cnt]['parsed_href'] = (ereg_replace(' ', '', $this->tree[$cnt]['href']) == '') ? '#' : $this->prependedUrl . $this->tree[$cnt]['href'];
$this->tree[$cnt]['parsed_title'] = ($this->tree[$cnt]['title'] == '') ? '' : ' title="' . stripslashes($this->tree[$cnt]['title']) . '"';
$fooimg = $this->icondir . $this->tree[$cnt]['icon'];
if ($this->tree[$cnt]['icon'] != '' && (substr($this->tree[$cnt]['icon'], 0, 7) == 'http://' || substr($this->tree[$cnt]['icon'], 0, 8) == 'https://')) {
$this->tree[$cnt]['parsed_icon'] = $this->tree[$cnt]['icon'];
if ($this->issetIconsize) {
$this->tree[$cnt]['iconwidth'] = $this->iconsize['width'];
$this->tree[$cnt]['iconheight'] = $this->iconsize['height'];
} else {
$foobar = getimagesize($this->tree[$cnt]['icon']);
$this->tree[$cnt]['iconwidth'] = $foobar[0];
$this->tree[$cnt]['iconheight'] = $foobar[1];
}
} elseif ($this->tree[$cnt]['icon'] != '' && file_exists($fooimg)) {
$this->tree[$cnt]['parsed_icon'] = $this->iconwww . $this->tree[$cnt]['icon'];
if ($this->issetIconsize) {
$this->tree[$cnt]['iconwidth'] = $this->iconsize['width'];
$this->tree[$cnt]['iconheight'] = $this->iconsize['height'];
} else {
$foobar = getimagesize($fooimg);
$this->tree[$cnt]['iconwidth'] = $foobar[0];
$this->tree[$cnt]['iconheight'] = $foobar[1];
}
} else {
$this->tree[$cnt]['parsed_icon'] = '';
}
$this->tree[$cnt]['parsed_target'] = ($this->tree[$cnt]['target'] == '') ? '' : ' target="' . $this->tree[$cnt]['target'] . '"';
// $this->tree[$cnt]['expanded'] = ($this->tree[$cnt]['expanded'] == '') ? 0 : $this->tree[$cnt]['expanded'];
$this->_maxLevel[$menu_name] = max($this->_maxLevel[$menu_name], $this->tree[$cnt]['level']);
if ($this->tree[$cnt]['level'] == 1) {
$this->_firstLevelCnt[$menu_name]++;
}
}
}
/**
* A method to replace strings in all URLs (hrefs) of a menu
* @access public
* @param string $menu_name the name of the menu for which the replacement
* has to be performed
* @param string $string the string to be replaced
* @param string $value the replacement string
* @return void
*/
function replaceStringInUrls($menu_name, $string, $value)
{
for ($cnt=$this->_firstItem[$menu_name]; $cnt<=$this->_lastItem[$menu_name]; $cnt++) { // this counter scans all nodes of the new menu
$this->tree[$cnt]['parsed_href'] = str_replace($string, $value, $this->tree[$cnt]['parsed_href']);
}
}
/**
* A method to set the same target for all links of a menu
* @access public
* @param string $menu_name the name of the menu for which the targets
* have to be set
* @param string $target the target to be set for all links
* of the $menu_name menu
* @return void
*/
function setLinksTargets($menu_name, $target)
{
for ($cnt=$this->_firstItem[$menu_name]; $cnt<=$this->_lastItem[$menu_name]; $cnt++) { // this counter scans all nodes of the new menu
$this->tree[$cnt]['parsed_target'] = ' target="' . $target . '"';
}
}
/**
* A method to select the current item of $menu_name in terms of $cnt, i.e., very likely, in terms of its line number in the corresponding menu structure file (excluding from the count commented out lines, if any)
* @access public
* @param string $menu_name the name of the menu for which the current item
* has to be selected
* @param integer $count the line number of the current item
* in the corresponding menu structure file
* (excluding from the count commented out lines, if any)
* @return void
*/
function setSelectedItemByCount($menu_name, $count)
{
if ($count < 1) {
$this->error("setSelectedItemByCount: the \$count argument is $count, but \$count can not be lower than 1");
return;
}
if ($count > $this->_lastItem[$menu_name] - $this->_firstItem[$menu_name] + 1) {
$this->error("setSelectedItemByCount: the \$count argument is $count and is larger than the number of items of the '$menu_name' menu");
return;
}
$cnt = $this->_firstItem[$menu_name] + $count - 1;
$this->tree[$cnt]['selected'] = true;
}
/**
* A method to select the current item of $menu_name in terms of the corresponding id (see the DB table structure); obviously, this method can be used only together with the DB support
* @access public
* @param string $menu_name the name of the menu for which the current item
* has to be selected
* @param integer $id the id of the current item in the corresponding DB table
* @return void
*/
function setSelectedItemById($menu_name, $id)
{
if (!isset($this->treecnt[$menu_name][$id])) {
$this->error("setSelectedItemById: there is not any item with \$id = $id in the '$menu_name' menu");
return;
}
$cnt = $this->treecnt[$menu_name][$id];
$this->tree[$cnt]['selected'] = true;
}
/**
* A method to select the current item of $menu_name specifying a string that occurs in the current URL
* @access public
* @param string $menu_name the name of the menu for which the current item
* has to be selected
* @param string $url a string that occurs in the current URL
* @return void
*/
function setSelectedItemByUrl($menu_name, $url)
{
for ($cnt=$this->_firstItem[$menu_name]; $cnt<=$this->_lastItem[$menu_name]; $cnt++) { // this counter scans all nodes of the new menu
if (!(strpos($this->tree[$cnt]['parsed_href'], $url) === false)) {
$this->tree[$cnt]['selected'] = true;
break;
}
}
}
/**
* A method to select the current item of $menu_name specifying a regular expression that matches (a substring of) the current URL; just the same as the setSelectedItemByUrl() method, but using eregi() instead of strpos()
* @access public
* @param string $menu_name the name of the menu for which the current item
* has to be selected
* @param string $url_eregi the regular expression that matches
* (a substring of) the current URL
* @return void
*/
function setSelectedItemByUrlEregi($menu_name, $url_eregi)
{
for ($cnt=$this->_firstItem[$menu_name]; $cnt<=$this->_lastItem[$menu_name]; $cnt++) { // this counter scans all nodes of the new menu
if (eregi($url_eregi, $this->tree[$cnt]['parsed_href'])) {
$this->tree[$cnt]['selected'] = true;
break;
}
}
}
/**
* Method to handle errors
* @access private
* @param string $errormsg the error message
* @return void
*/
function error($errormsg)
{
print "<b>LayersMenu Error:</b> $errormsg<br />\n";
if ($this->haltOnError == 'yes') {
die("<b>Halted.</b><br />\n");
}
}
} /* END OF CLASS */
?>

View File

@@ -0,0 +1,383 @@
<?php
// PHP Layers Menu 3.2.0-rc (C) 2001-2004 Marco Pratesi - http://www.marcopratesi.it/
/**
* This file contains the code of the TreeMenu class.
* @package PHPLayersMenu
*/
/**
* This is the TreeMenu class of the PHP Layers Menu library.
*
* This class depends on the LayersMenuCommon class and on the PEAR conforming version of the PHPLib Template class, i.e. on HTML_Template_PHPLIB
*
* @version 3.2.0-rc
* @package PHPLayersMenu
*/
class TreeMenu extends LayersMenuCommon
{
/**
* Type of images used for the Tree Menu
* @access private
* @var string
*/
var $treeMenuImagesType;
/**
* Prefix for filenames of images of a theme
* @access private
* @var string
*/
var $treeMenuTheme;
/**
* An array where we store the Tree Menu code for each menu
* @access private
* @var array
*/
var $_treeMenu;
/**
* The constructor method; it initializates the menu system
* @return void
*/
function TreeMenu()
{
$this->LayersMenuCommon();
$this->treeMenuImagesType = 'png';
$this->treeMenuTheme = '';
$this->_treeMenu = array();
$this->_nodesCount = 0;
$this->tree = array();
$this->_maxLevel = array();
$this->_firstLevelCnt = array();
$this->_firstItem = array();
$this->_lastItem = array();
}
/**
* The method to set the dirroot directory
* @access public
* @return boolean
*/
function setDirroot($dirroot)
{
return $this->setDirrootCommon($dirroot);
}
/**
* The method to set the type of images used for the Tree Menu
* @access public
* @return void
*/
function setTreeMenuImagesType($treeMenuImagesType)
{
$this->treeMenuImagesType = $treeMenuImagesType;
}
/**
* The method to set the prefix for filenames of images of a theme
* @access public
* @return void
*/
function setTreeMenuTheme($treeMenuTheme)
{
$this->treeMenuTheme = $treeMenuTheme;
}
/**
* Method to prepare a new Tree Menu.
*
* This method processes items of a menu to prepare and return
* the corresponding Tree Menu code.
*
* @access public
* @param string $menu_name the name of the menu whose items have to be processed
* @return string
*/
function newTreeMenu(
$menu_name = '' // non consistent default...
)
{
/* If cookies were disabled, build the url parameter for the session id.
It will be append to the url to be redirect */
$id_session_param = '';
if (SID != '')
$id_session_param = sprintf('&%s=%s',session_name(),session_id());
global $ldapserver;
if (!isset($this->_firstItem[$menu_name]) || !isset($this->_lastItem[$menu_name])) {
$this->error("newTreeMenu: the first/last item of the menu '$menu_name' is not defined; please check if you have parsed its menu data.");
return 0;
}
$this->_treeMenu[$menu_name] = '';
$img_collapse = $this->imgwww . $this->treeMenuTheme . 'tree_collapse.' . $this->treeMenuImagesType;
$alt_collapse = '--';
$img_collapse_corner = $this->imgwww . $this->treeMenuTheme . 'tree_collapse_corner.' . $this->treeMenuImagesType;
$alt_collapse_corner = '--';
$img_collapse_corner_first = $this->imgwww . $this->treeMenuTheme . 'tree_collapse_corner_first.' . $this->treeMenuImagesType;
$alt_collapse_corner_first = '--';
$img_collapse_first = $this->imgwww . $this->treeMenuTheme . 'tree_collapse_first.' . $this->treeMenuImagesType;
$alt_collapse_first = '--';
$img_corner = $this->imgwww . $this->treeMenuTheme . 'tree_corner.' . $this->treeMenuImagesType;
$alt_corner = '`-';
$img_expand = $this->imgwww . $this->treeMenuTheme . 'tree_expand.' . $this->treeMenuImagesType;
$alt_expand = '+-';
$img_expand_corner = $this->imgwww . $this->treeMenuTheme . 'tree_expand_corner.' . $this->treeMenuImagesType;
$alt_expand_corner = '+-';
$img_expand_corner_first = $this->imgwww . $this->treeMenuTheme . 'tree_expand_corner_first.' . $this->treeMenuImagesType;
$alt_expand_corner_first = '+-';
$img_expand_first = $this->imgwww . $this->treeMenuTheme . 'tree_expand_first.' . $this->treeMenuImagesType;
$alt_expand_first = '+-';
$img_folder_closed = $this->imgwww . $this->treeMenuTheme . 'tree_folder_closed.' . $this->treeMenuImagesType;
$alt_folder_closed = '->';
$img_folder_open = $this->imgwww . $this->treeMenuTheme . 'tree_folder_open.' . $this->treeMenuImagesType;
$alt_folder_open = '->';
$img_leaf = $this->imgwww . $this->treeMenuTheme . 'tree_leaf.' . $this->treeMenuImagesType;
$alt_leaf = '->';
$img_space = $this->imgwww . $this->treeMenuTheme . 'tree_space.' . $this->treeMenuImagesType;
$alt_space = ' ';
$img_split = $this->imgwww . $this->treeMenuTheme . 'tree_split.' . $this->treeMenuImagesType;
$alt_split = '|-';
$img_split_first = $this->imgwww . $this->treeMenuTheme . 'tree_split_first.' . $this->treeMenuImagesType;
$alt_split_first = '|-';
$img_vertline = $this->imgwww . $this->treeMenuTheme . 'tree_vertline.' . $this->treeMenuImagesType;
$alt_vertline = '| ';
for ($i=0; $i<=$this->_maxLevel[$menu_name]; $i++) {
$levels[$i] = 0;
}
// Find last nodes of subtrees
$last_level = $this->_maxLevel[$menu_name];
for ($i=$this->_lastItem[$menu_name]; $i>=$this->_firstItem[$menu_name]; $i--) {
if ($this->tree[$i]['level'] < $last_level) {
for ($j=$this->tree[$i]['level']+1; $j<=$this->_maxLevel[$menu_name]; $j++) {
$levels[$j] = 0;
}
}
if ($levels[$this->tree[$i]['level']] == 0) {
$levels[$this->tree[$i]['level']] = 1;
$this->tree[$i]['last_item'] = 1;
} else {
$this->tree[$i]['last_item'] = 0;
}
$last_level = $this->tree[$i]['level'];
}
$toggle = '';
$toggle_function_name = 'toggle' . $menu_name;
for ($cnt=$this->_firstItem[$menu_name]; $cnt<=$this->_lastItem[$menu_name]; $cnt++) {
if ($this->tree[$cnt]['text'] == '---') {
continue; // separators are significant only for layers-based menus
}
if (isset($this->tree[$cnt]['selected']) && $this->tree[$cnt]['selected']) {
$linkstyle = 'phplmselected';
} else {
$linkstyle = 'phplm';
}
$this->_treeMenu[$menu_name] .= '<div id="jt' . $cnt . '" class="treemenudiv">' . "\n";
// vertical lines from higher levels
for ($i=0; $i<$this->tree[$cnt]['level']-1; $i++) {
if ($levels[$i] == 1) {
$img = $img_vertline;
$alt = $alt_vertline;
} else {
$img = $img_space;
$alt = $alt_space;
}
$this->_treeMenu[$menu_name] .= '<img align="top" border="0" class="imgs" src="' . $img . '" alt="' . $alt . '" />';
}
$not_a_leaf = ($cnt<$this->_lastItem[$menu_name] && $this->tree[$cnt+1]['level']>$this->tree[$cnt]['level']) || (isset($this->tree[$cnt]['children']) && $this->tree[$cnt]['children']);
if ($this->tree[$cnt]['last_item'] == 1) {
// corner at end of subtree or t-split
if ($not_a_leaf) {
if ($cnt == $this->_firstItem[$menu_name]) {
$img = $img_collapse_corner_first;
$alt = $alt_collapse_corner_first;
$this->_treeMenu[$menu_name] .= '<a onmousedown="' . $toggle_function_name . "('" . $cnt . "')" . '"><img align="top" border="0" class="imgs" id="jt' . $cnt . 'node" src="' . $img . '" alt="' . $alt . '" /></a>';
} else {
if ($this->tree[$cnt]['last_item'] && $this->tree[$cnt]['children']) {
$img = $img_expand_corner;
$alt = $alt_expand_corner;
// @todo: nasty hack, should really do this better.
$parsed_href = preg_replace('/template_engine.php/','expand.php',$this->tree[$cnt]['parsed_href']);
$this->_treeMenu[$menu_name] .= '<a href="' . $parsed_href . '"><img align="top" border="0" class="imgs" id="jt' . $cnt . 'node" src="' . $img . '" alt="' . $alt . '" /></a>';
} else {
$img = $img_collapse_corner;
$alt = $alt_collapse_corner;
$this->_treeMenu[$menu_name] .= '<a onmousedown="' . $toggle_function_name . "('" . $cnt . "')" . '"><img align="top" border="0" class="imgs" id="jt' . $cnt . 'node" src="' . $img . '" alt="' . $alt . '" /></a>';
}
}
} else {
$this->_treeMenu[$menu_name] .= '<img align="top" border="0" class="imgs" src="' . $img_corner . '" alt="' . $alt_corner . '" />';
}
$levels[$this->tree[$cnt]['level']-1] = 0;
} else {
if ($not_a_leaf) {
if ($cnt == $this->_firstItem[$menu_name]) {
$img = $img_collapse_first;
$alt = $alt_collapse_first;
$this->_treeMenu[$menu_name] .= '<a onmousedown="' . $toggle_function_name . "('" . $cnt . "');" . '"><img align="top" border="0" class="imgs" id="jt' . $cnt . 'node" src="' . $img . '" alt="' . $alt . '" /></a>';
} else {
if (! $this->tree[$cnt]['last_item'] && $this->tree[$cnt]['children']) {
$img = $img_expand;
$alt = $alt_expand;
// @todo: nasty hack, should really do this better.
$parsed_href = preg_replace('/template_engine.php/','expand.php',$this->tree[$cnt]['parsed_href']);
$this->_treeMenu[$menu_name] .= '<a href="' . $parsed_href . '"><img align="top" border="0" class="imgs" id="jt' . $cnt . 'node" src="' . $img . '" alt="' . $alt . '" /></a>';
} else {
$img = $img_collapse;
$alt = $alt_collapse;
$this->_treeMenu[$menu_name] .= '<a onmousedown="' . $toggle_function_name . "('" . $cnt . "');" . '"><img align="top" border="0" class="imgs" id="jt' . $cnt . 'node" src="' . $img . '" alt="' . $alt . '" /></a>';
}
}
} else {
if ($cnt == $this->_firstItem[$menu_name]) {
$img = $img_split_first;
$alt = $alt_split_first;
} else {
$img = $img_split;
$alt = $alt_split;
}
$this->_treeMenu[$menu_name] .= '<img align="top" border="0" class="imgs" id="jt' . $cnt . 'node" src="' . $img . '" alt="' . $alt . '" />';
}
$levels[$this->tree[$cnt]['level']-1] = 1;
}
if ($this->tree[$cnt]['parsed_href'] == '' || $this->tree[$cnt]['parsed_href'] == '#') {
$a_href_open_img = '';
$a_href_close_img = '';
$a_href_open = '<a class="phplmnormal">';
$a_href_close = '</a>';
} else {
$a_href_open_img = '<a href="' . $this->tree[$cnt]['parsed_href'] . '"' . $this->tree[$cnt]['parsed_title'] . $this->tree[$cnt]['parsed_target'] . '>';
$a_href_close_img = '</a>';
$a_href_open = '<a name="' . sprintf('%s_%s%s',$ldapserver->server_id,rawurlencode($this->tree[$cnt]['title']),$id_session_param) . '" href="' . $this->tree[$cnt]['parsed_href'] . '"' . $this->tree[$cnt]['parsed_title'] . $this->tree[$cnt]['parsed_target'] . ' class="' . $linkstyle . '">';
$a_href_close = '</a>';
}
if ($not_a_leaf) {
// $this->_treeMenu[$menu_name] .= $a_href_open_img . '<img align="top" border="0" class="imgs" id="jt' . $cnt . 'folder" src="' . $img_folder_open . '" alt="' . $alt_folder_open . '" />' . $a_href_close_img;
$this->_treeMenu[$menu_name] .= $a_href_open_img . '<img align="top" border="0" class="imgs" id="jt' . $cnt . 'folder" src="' . ($this->tree[$cnt]['parsed_icon'] ? $this->tree[$cnt]['parsed_icon'] : $img_folder_open) . '" alt="' . $alt_folder_open . '" />' . $a_href_close_img;
} else {
if ($this->tree[$cnt]['parsed_icon'] != '') {
// $this->_treeMenu[$menu_name] .= $a_href_open_img . '<img align="top" border="0" src="' . $this->tree[$cnt]['parsed_icon'] . '" width="' . $this->tree[$cnt]['iconwidth'] . '" height="' . $this->tree[$cnt]['iconheight'] . '" alt="' . $alt_leaf . '" />' . $a_href_close_img;
$this->_treeMenu[$menu_name] .= $a_href_open_img . '<img align="top" border="0" src="' . $this->tree[$cnt]['parsed_icon'] . '" alt="' . $alt_leaf . '" />' . $a_href_close_img;
} else {
$this->_treeMenu[$menu_name] .= $a_href_open_img . '<img align="top" border="0" class="imgs" src="' . $img_leaf . '" alt="' . $alt_leaf . '" />' . $a_href_close_img;
}
}
$this->_treeMenu[$menu_name] .= '&nbsp;' . $a_href_open . $this->tree[$cnt]['text'] . $a_href_close . "\n";
$this->_treeMenu[$menu_name] .= '</div>' . "\n";
if ($cnt<$this->_lastItem[$menu_name] && $this->tree[$cnt]['level']<$this->tree[$cnt+1]['level']) {
$this->_treeMenu[$menu_name] .= '<div id="jt' . $cnt . 'son" class="treemenudiv">' . "\n";
if ($this->tree[$cnt]['expanded'] != 1) {
$toggle .= 'if (phplm_expand[' . $cnt . '] != 1) ' . $toggle_function_name . "('" . $cnt . "');\n";
} else {
$toggle .= 'if (phplm_collapse[' . $cnt . '] == 1) ' . $toggle_function_name . "('" . $cnt . "');\n";
}
}
if ($cnt>$this->_firstItem[$menu_name] && $this->tree[$cnt]['level']>$this->tree[$cnt+1]['level']) {
for ($i=max(1, $this->tree[$cnt+1]['level']); $i<$this->tree[$cnt]['level']; $i++) {
$this->_treeMenu[$menu_name] .= '</div>' . "\n";
}
}
}
/*
$this->_treeMenu[$menu_name] =
'<div class="phplmnormal">' . "\n" .
$this->_treeMenu[$menu_name] .
'</div>' . "\n";
*/
// Some (old) browsers do not support the "white-space: nowrap;" CSS property...
$this->_treeMenu[$menu_name] =
'<table cellspacing="0" cellpadding="0" border="0">' . "\n" .
'<tr>' . "\n" .
'<td class="phplmnormal" nowrap="nowrap">' . "\n" .
$this->_treeMenu[$menu_name] .
'</td>' . "\n" .
'</tr>' . "\n" .
'</table>' . "\n";
$t = new Template_PHPLIB();
$t->setFile('tplfile', $this->libjsdir . 'layerstreemenu.ijs');
$t->setVar(array(
'toggle_function_name' => $toggle_function_name,
'img_collapse' => $img_collapse,
'img_collapse_corner' => $img_collapse_corner,
'img_collapse_corner_first' => $img_collapse_corner_first,
'img_collapse_first' => $img_collapse_first,
'img_expand' => $img_expand,
'img_expand_corner' => $img_expand_corner,
'img_expand_corner_first' => $img_expand_corner_first,
'img_expand_first' => $img_expand_first,
'img_folder_closed' => $img_folder_closed,
'img_folder_open' => $img_folder_open
));
$toggle_function = $t->parse('out', 'tplfile');
$toggle_function =
'<script language="JavaScript" type="text/javascript">' . "\n" .
'<!--' . "\n" .
$toggle_function .
'// -->' . "\n" .
'</script>' . "\n";
$toggle =
'<script language="JavaScript" type="text/javascript">' . "\n" .
'<!--' . "\n" .
'if ((DOM && !Opera56 && !Konqueror22) || IE4) {' . "\n" .
$toggle .
'}' . "\n" .
'if (NS4) alert("Only the accessibility is provided to Netscape 4 on the JavaScript Tree Menu.\nWe *strongly* suggest you to upgrade your browser.");' . "\n" .
'// -->' . "\n" .
'</script>' . "\n";
$this->_treeMenu[$menu_name] = $toggle_function . "\n" . $this->_treeMenu[$menu_name] . "\n" . $toggle;
return $this->_treeMenu[$menu_name];
}
/**
* Method that returns the code of the requested Tree Menu
* @access public
* @param string $menu_name the name of the menu whose Tree Menu code
* has to be returned
* @return string
*/
function getTreeMenu($menu_name)
{
return $this->_treeMenu[$menu_name];
}
/**
* Method that prints the code of the requested Tree Menu
* @access public
* @param string $menu_name the name of the menu whose Tree Menu code
* has to be printed
* @return void
*/
function printTreeMenu($menu_name)
{
print $this->_treeMenu[$menu_name];
}
} /* END OF CLASS */
?>

View File

@@ -0,0 +1,33 @@
// PHP Layers Menu 3.2.0-rc (C) 2001-2004 Marco Pratesi - http://www.marcopratesi.it/
DOM = (document.getElementById) ? 1 : 0;
NS4 = (document.layers) ? 1 : 0;
// We need to explicitly detect Konqueror
// because Konqueror 3 sets IE = 1 ... AAAAAAAAAARGHHH!!!
Konqueror = (navigator.userAgent.indexOf('Konqueror') > -1) ? 1 : 0;
// We need to detect Konqueror 2.2 as it does not handle the window.onresize event
Konqueror22 = (navigator.userAgent.indexOf('Konqueror 2.2') > -1 || navigator.userAgent.indexOf('Konqueror/2.2') > -1) ? 1 : 0;
Konqueror30 =
(
navigator.userAgent.indexOf('Konqueror 3.0') > -1
|| navigator.userAgent.indexOf('Konqueror/3.0') > -1
|| navigator.userAgent.indexOf('Konqueror 3;') > -1
|| navigator.userAgent.indexOf('Konqueror/3;') > -1
|| navigator.userAgent.indexOf('Konqueror 3)') > -1
|| navigator.userAgent.indexOf('Konqueror/3)') > -1
)
? 1 : 0;
Konqueror31 = (navigator.userAgent.indexOf('Konqueror 3.1') > -1 || navigator.userAgent.indexOf('Konqueror/3.1') > -1) ? 1 : 0;
// We need to detect Konqueror 3.2 and 3.3 as they are affected by the see-through effect only for 2 form elements
Konqueror32 = (navigator.userAgent.indexOf('Konqueror 3.2') > -1 || navigator.userAgent.indexOf('Konqueror/3.2') > -1) ? 1 : 0;
Konqueror33 = (navigator.userAgent.indexOf('Konqueror 3.3') > -1 || navigator.userAgent.indexOf('Konqueror/3.3') > -1) ? 1 : 0;
Opera = (navigator.userAgent.indexOf('Opera') > -1) ? 1 : 0;
Opera5 = (navigator.userAgent.indexOf('Opera 5') > -1 || navigator.userAgent.indexOf('Opera/5') > -1) ? 1 : 0;
Opera6 = (navigator.userAgent.indexOf('Opera 6') > -1 || navigator.userAgent.indexOf('Opera/6') > -1) ? 1 : 0;
Opera56 = Opera5 || Opera6;
IE = (navigator.userAgent.indexOf('MSIE') > -1) ? 1 : 0;
IE = IE && !Opera;
IE5 = IE && DOM;
IE4 = (document.all) ? 1 : 0;
IE4 = IE4 && IE && !DOM;

View File

@@ -0,0 +1,70 @@
// PHP Layers Menu 3.2.0-rc (C) 2001-2004 Marco Pratesi - http://www.marcopratesi.it/
function setLMCookie(name, value)
{
document.cookie = name + '=' + value + ';path=/';
}
function getLMCookie(name)
{
foobar = document.cookie.split(name + '=');
if (foobar.length < 2) {
return null;
}
tempString = foobar[1];
if (tempString.indexOf(';') == -1) {
return tempString;
}
yafoobar = tempString.split(';');
return yafoobar[0];
}
function parseExpandString()
{
expandString = getLMCookie('phplm_expand');
phplm_expand = new Array();
if (expandString) {
expanded = expandString.split('|');
for (i=0; i<expanded.length-1; i++) {
phplm_expand[expanded[i]] = 1;
}
}
}
function parseCollapseString()
{
collapseString = getLMCookie('phplm_collapse');
phplm_collapse = new Array();
if (collapseString) {
collapsed = collapseString.split('|');
for (i=0; i<collapsed.length-1; i++) {
phplm_collapse[collapsed[i]] = 1;
}
}
}
parseExpandString();
parseCollapseString();
function saveExpandString()
{
expandString = '';
for (i=0; i<phplm_expand.length; i++) {
if (phplm_expand[i] == 1) {
expandString += i + '|';
}
}
setLMCookie('phplm_expand', expandString);
}
function saveCollapseString()
{
collapseString = '';
for (i=0; i<phplm_collapse.length; i++) {
if (phplm_collapse[i] == 1) {
collapseString += i + '|';
}
}
setLMCookie('phplm_collapse', collapseString);
}

View File

@@ -0,0 +1,52 @@
// PHP Layers Menu 3.2.0-rc (C) 2001-2004 Marco Pratesi - http://www.marcopratesi.it/
function {toggle_function_name}(nodeid)
{
if ((!DOM || Opera56 || Konqueror22) && !IE4) {
return;
}
layersMoved = 0;
parseExpandString();
parseCollapseString();
if (!IE4) {
sonLayer = document.getElementById('jt' + nodeid + 'son');
nodeLayer = document.getElementById('jt' + nodeid + 'node');
//folderLayer = document.getElementById('jt' + nodeid + 'folder');
} else {
sonLayer = document.all('jt' + nodeid + 'son');
nodeLayer = document.all('jt' + nodeid + 'node');
//folderLayer = document.all('jt' + nodeid + 'folder');
}
if (sonLayer.style.display == 'none') {
sonLayer.style.display = 'block';
if (nodeLayer.src.indexOf('{img_expand}') > -1) {
nodeLayer.src = '{img_collapse}';
} else if (nodeLayer.src.indexOf('{img_expand_first}') > -1) {
nodeLayer.src = '{img_collapse_first}';
} else if (nodeLayer.src.indexOf('{img_expand_corner}') > -1) {
nodeLayer.src = '{img_collapse_corner}';
} else {
nodeLayer.src = '{img_collapse_corner_first}';
}
//folderLayer.src = '{img_folder_open}';
phplm_expand[nodeid] = 1;
phplm_collapse[nodeid] = 0;
} else {
sonLayer.style.display = 'none';
if (nodeLayer.src.indexOf('{img_collapse}') > -1) {
nodeLayer.src = '{img_expand}';
} else if (nodeLayer.src.indexOf('{img_collapse_first}') > -1) {
nodeLayer.src = '{img_expand_first}';
} else if (nodeLayer.src.indexOf('{img_collapse_corner}') > -1) {
nodeLayer.src = '{img_expand_corner}';
} else {
nodeLayer.src = '{img_expand_corner_first}';
}
//folderLayer.src = '{img_folder_closed}';
phplm_expand[nodeid] = 0;
phplm_collapse[nodeid] = 1;
}
saveExpandString();
saveCollapseString();
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 B

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/ldif_import.php,v 1.31.2.3 2005/10/19 13:26:21 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/ldif_import.php,v 1.34 2005/12/10 10:34:54 wurley Exp $
/**
* Imports an LDIF file to the specified server_id.
@@ -15,192 +15,188 @@
require './common.php';
$server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : '');
$ldapserver = $ldapservers->Instance($server_id);
if (! $ldapserver->haveAuthInfo())
pla_error(_('Not enough information to login to server. Please check your configuration.'));
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$continuous_mode = isset($_POST['continuous_mode']) ? 1 : 0;
$continuous_mode = isset( $_POST['continuous_mode'] ) ?1:0;
$file = $_FILES['ldif_file']['tmp_name'];
$remote_file = $_FILES['ldif_file']['name'];
$file_len = $_FILES['ldif_file']['size'];
if (isset($_REQUEST['ldif']) && trim($_REQUEST['ldif'])) {
$textarealdif = $_REQUEST['ldif'];
$remote_file = 'STDIN';
$file_len = strlen($textarealdif);
is_array( $_FILES['ldif_file'] ) or pla_error( $lang['missing_uploaded_file'] );
file_exists( $file ) or pla_error( $lang['no_ldif_file_specified'] );
$file_len > 0 or pla_error( $lang['ldif_file_empty'] );
} elseif (isset($_FILES['ldif_file'])) {
$file = $_FILES['ldif_file']['tmp_name'];
$remote_file = $_FILES['ldif_file']['name'];
$file_len = $_FILES['ldif_file']['size'];
include './header.php'; ?>
is_array($_FILES['ldif_file']) or pla_error(_('Missing uploaded file.'));
file_exists($file) or pla_error(_('No LDIF file specified. Please try again.'));
$file_len > 0 or pla_error(_('Uploaded LDIF file is empty.'));
<body>
} else {
pla_error(_('You must either upload a file or provide an LDIF in the text box.'));
}
<h3 class="title"><?php echo $lang['import_ldif_file_title']; ?></h3>
<h3 class="subtitle">
<?php echo $lang['server']; ?>: <b><?php echo htmlspecialchars( $ldapserver->name ); ?></b>
<?php echo $lang['file']; ?>: <b><?php echo htmlspecialchars( $remote_file ); ?>
(<?php echo sprintf( $lang['number_bytes'], number_format( $file_len ) ); ?>)</b>
</h3>
include './header.php';
<br />
<br />
echo '<body>';
printf('<h3 class="title">%s</h3>',_('Import LDIF File'));
printf('<h3 class="subtitle">%s: <b>%s</b> %s: <b>%s (%s %s)</b></h3>',
_('Server'),htmlspecialchars($ldapserver->name),
_('File'),htmlspecialchars($remote_file),number_format($file_len),_('bytes'));
echo '<br /><br />';
<?php
require LIBDIR.'ldif_functions.php';
@set_time_limit( 0 );
@set_time_limit(0);
// String associated to the operation on the ldap server
# String associated to the operation on the ldap server
$actionString = array();
$actionString['add'] = $lang['add_action'];
$actionString['delete'] = $lang['delete_action'];
$actionString['modrdn'] = $lang['rename_action'];
$actionString['moddn'] = $lang['rename_action'];
$actionString['modify'] = $lang['modify_action'];
$actionString['add'] = _('Adding...');
$actionString['delete'] = _('Deleting...');
$actionString['modrdn'] = _('Renaming...');
$actionString['moddn'] = _('Renaming...');
$actionString['modify'] = _('Modifying...');
// String associated with error
# String associated with error
$actionErrorMsg =array();
$actionErrorMsg['add'] = $lang['ldif_could_not_add_object'];
$actionErrorMsg['delete']= $lang['ldif_could_not_delete_object'];
$actionErrorMsg['modrdn']= $lang['ldif_could_not_rename_object'];
$actionErrorMsg['moddn']= $lang['ldif_could_not_rename_object'];
$actionErrorMsg['modify']= $lang['ldif_could_not_modify_object'];
$actionErrorMsg['add'] = _('Could not add object:');
$actionErrorMsg['delete']= _('Could not delete object:');
$actionErrorMsg['modrdn']= _('Could not rename object:');
$actionErrorMsg['moddn']= _('Could not rename object:');
$actionErrorMsg['modify']= _('Could not modify object:');
// get the connection
//$ds = pla_ldap_connect( $server_id );
//pla_ldap_connection_is_error( $ds );
# instantiate the reader
if (isset($textarealdif))
$ldifReader = new LdifReaderStdIn($textarealdif,$continuous_mode);
else
$ldifReader = new LdifReader($file,$continuous_mode);
//instantiate the reader
$ldifReader = new LdifReader($file,$continuous_mode);
# instantiate the writer
$ldapWriter = new LdapWriter($ldapserver);
//instantiate the writer
$ldapWriter = new LdapWriter($ldapserver->connect());
# if ldif file has no version number, just display a warning
if (!$ldifReader->hasVersionNumber())
display_warning($ldifReader->getWarningMessage());
// if ldif file has no version number, just display a warning
if(!$ldifReader->hasVersionNumber()){
display_warning($ldifReader->getWarningMessage());
}
$i=0;
// if .. else not mandatory but should be easier to maintain
if( $continuous_mode ){
while( $ldifReader->readEntry() ){
$i++;
// get the entry.
$currentEntry = $ldifReader->fetchEntryObject();
$changeType = $currentEntry->getChangeType();
echo "<small>".$actionString[$changeType]." ".$currentEntry->dn;
# if .. else not mandatory but should be easier to maintain
if ($continuous_mode) {
while ($ldifReader->readEntry()) {
$i++;
if($ldifReader->hasRaisedException()){
echo " <span style=\"color:red;\">".$lang['failed']."</span></small><br>";
$exception = $ldifReader->getLdapLdifReaderException();
echo "<small><span style=\"color:red;\">".$lang['ldif_line_number'].": ".$exception->lineNumber."</span></small><br />";
echo "<small><span style=\"color:red;\">".$lang['ldif_line'].": ".$exception->currentLine."</span></small><br />";
echo "<small><span style=\"color:red;\">".$lang['desc'].": ".$exception->message."</span></small><br />";
}
else{
if($ldapWriter->ldapModify($currentEntry))
echo " <span style=\"color:green;\">".$lang['success']."</span></small><br>";
else{
echo " <span style=\"color:red;\">".$lang['failed']."</span></small><br>";
echo "<small><span style=\"color:red;\">Error Code: ".$ldapserver->error()."</span></small><br />";
echo "<small><span style=\"color:red;\">".$lang['desc'].": ".$ldapserver->error()."</span></small><br />";
}
}
if( 0 == $i % 5 )
flush();
}// end while
}
else{
//while we have a valid entry,
while($entry = $ldifReader->readEntry()){
$i++;
$changeType = $entry->getChangeType();
# get the entry.
$currentEntry = $ldifReader->fetchEntryObject();
$edit_href = sprintf('template_engine.php?server_id=%s&amp;dn=%s',$ldapserver->server_id,
rawurlencode($currentEntry->dn));
$changeType = $currentEntry->getChangeType();
printf('<small>%s <a href="%s">%s</a>',$actionString[$changeType],$edit_href,$entry->dn);
echo "<small>".$actionString[$changeType]." ".$entry->dn;
if($ldapWriter->ldapModify($entry)){
echo " <span style=\"color:green;\">".$lang['success']."</span></small><br>";
if( 0 == $i % 5 )
flush();
}
else{
echo " <span style=\"color:red;\">".$lang['failed']."</span></small><br><br>";
reload_left_frame();
pla_error( $actionErrorMsg[$changeType]. " " . htmlspecialchars( $entry->dn ), $ldapserver->error(), $ldapserver->errno() );
}
if ($ldifReader->hasRaisedException()) {
printf(' <span style="color:red;">%s</span></small><br />',_('Failed'));
$exception = $ldifReader->getLdapLdifReaderException();
printf(' <small><span style="color:red;">%s: %s</span></small><br />',
_('Line Number'),$exception->lineNumber);
printf(' <small><span style="color:red;">%s: %s</span></small><br />',
_('Line'),$exception->currentLine);
printf(' <small><span style="color:red;">%s: %s</span></small><br />',
_('Description'),$exception->message);
} else {
if ($ldapWriter->ldapModify($currentEntry))
printf(' <span style="color:green;">%s</span></small><br />',_('Success'));
else {
printf('<span style="color:red;">%s</span></small><br />',_('Failed'));
printf('<small><span style="color:red;">%s: %s</span></small><br />',
_('Error code'),$ldapserver->errno());
printf('<small><span style="color:red;">%s: %s</span></small><br />',
_('Description'),$ldapserver->error());
}
}
if ($i % 5 == 0)
flush();
} # end while
} else {
# while we have a valid entry,
while ($entry = $ldifReader->readEntry()) {
$i++;
$edit_href = sprintf('template_engine.php?server_id=%s&amp;dn=%s',$ldapserver->server_id,
rawurlencode($entry->dn));
$changeType = $entry->getChangeType();
printf('<small>%s <a href="%s">%s</a>',$actionString[$changeType],$edit_href,$entry->dn);
if ($ldapWriter->ldapModify($entry)) {
printf(' <span style="color:green;">%s</span></small><br />',_('Success'));
if ($i % 5 == 0)
flush();
} else {
printf(' <span style="color:red;">%s</span></small><br /><br />',_('Failed'));
reload_left_frame();
pla_error($actionErrorMsg[$changeType].' '.htmlspecialchars($entry->dn),
$ldapserver->error(),$ldapserver->errno());
}
}
# if any errors occurs during reading file ,"catch" the exception and display it here.
if ($ldifReader->hasRaisedException()) {
# get the entry which raise the exception,quick hack here
$currentEntry = $ldifReader->fetchEntryObject();
if ($currentEntry->dn != '') {
printf('<small>%s %s <span style="color:red;">%s</span></small><br />',
$actionString[$currentEntry->getChangeType()],$currentEntry->dn,_('Failed'));
}
# get the exception wich was raised
$exception = $ldifReader->getLdapLdifReaderException();
echo '<br /><br />';
display_pla_parse_error($exception,$currentEntry);
}
}
// if any errors occurs during reading file ,"catch" the exception and display it here.
if($ldifReader->hasRaisedException()){
//get the entry which raise the exception,quick hack here
$currentEntry = $ldifReader->fetchEntryObject();
if($currentEntry->dn !=""){
echo "<small>".$actionString[$currentEntry->getChangeType()]." ".$currentEntry->dn." <span style=\"color:red;\">".$lang['failed']."</span></small><br>";
}
//get the exception wich was raised
$exception = $ldifReader->getLdapLdifReaderException();
echo "<br />";
echo "<br />";
display_pla_parse_error($exception,$currentEntry);
}
}
// close the file
# close the file
$ldifReader->done();
//close the ldap connection
$ldapWriter->ldapClose();
reload_left_frame();
function reload_left_frame(){
global $server_id;
echo "<script>\r\n";
echo "parent.left_frame.document.location='refresh.php?server_id=".$server_id."';\r\n";
echo "</script>\r\n";
echo '<script type="text/javascript" language="javascript">parent.left_frame.location.reload();</script>';
}
function display_error_message($error_message){
echo "<div style=\"color:red;\"><small>".$error_message."</small></div>";
printf('<div style="color:red;"><small>%s</small></div>',$error_message);
}
function display_warning($warning){
echo "<div style=\"color:orange\"><small>".$warning."</small></div>";
printf('<div style="color:orange"><small>%s</small></div>',$warning);
}
function display_pla_parse_error($exception,$faultyEntry){
global $lang;
global $actionErrorMsg;
$errorMessage = $actionErrorMsg[$faultyEntry->getChangeType()];
global $actionErrorMsg;
print("<center>");
print("<table class=\"error\"><tr><td class=\"img\"><img src=\"images/warning.png\" /></td>");
print("<td><center><h2>".$lang['ldif_parse_error']."</h2></center>");
print("<br />");
print($errorMessage." ". $faultyEntry->dn);
print("<p>");
print("<b>".$lang['desc']."</b>: ".$exception->message);
print("</p>");
print("<p>");
print("<b>".$lang['ldif_line']."</b>: ".$exception->currentLine);
print("</p>");
print("<p>");
print("<b>".$lang['ldif_line_number']."</b>: ".$exception->lineNumber);
print("</p>");
print("<br />");
print("<p>\r\n");
print("<center>");
print("<small>");
print(sprintf($lang['ferror_submit_bug'] , get_href( 'add_bug' )));
$errorMessage = $actionErrorMsg[$faultyEntry->getChangeType()];
print("</small></center></p>");
print("<td>");
print("</tr>");
print("<center>");
echo '<center>';
echo '<table class="error"><tr><td class="img"><img src="images/warning.png" /></td>';
echo '<td>';
printf('<center><h2>%s</h2></center>',_('LDIF Parse Error'));
echo '<br />';
printf('%s %s',$errorMessage,$faultyEntry->dn);
printf('<p><b>%s</b>: %s</p>',_('Description'),$exception->message);
printf('<p><b>%s</b>: %s</p>',_('Line'),$exception->currentLine);
printf('<p><b>%s</b>: %s</p>',_('Line Number'),$exception->lineNumber);
echo '<br />';
printf('<p><center><small>%s %s</small></center></p>',
_('Is this a phpLDAPadmin bug?'),sprintf(_('If so, please <a href="%s">report it</a>.'),get_href('add_bug')));
echo '</td>';
echo '</tr>';
echo '<center>';
}
echo '</body></html>';
?>
</body>
</html>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/ldif_import_form.php,v 1.19.2.1 2005/10/19 13:26:21 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/ldif_import_form.php,v 1.21 2005/12/10 10:34:54 wurley Exp $
/**
* Displays a form to allow the user to upload and import
@@ -16,46 +16,39 @@
require './common.php';
if (! ini_get('file_uploads'))
pla_error($lang['php_upload']);
pla_error(_('Your PHP.INI does not have file_uploads = ON. Please enable file uploads in PHP.'));
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = $ldapservers->Instance($server_id);
if ($ldapserver->isReadOnly())
pla_error(_('You cannot perform updates while server is in read-only mode'));
if (! $ldapserver->haveAuthInfo())
pla_error(_('Not enough information to login to server. Please check your configuration.'));
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
include './header.php';
include './header.php'; ?>
echo '<body>';
<body>
printf('<h3 class="title">%s</h3>',_('Import LDIF File'));
printf('<h3 class="subtitle">%s: <b>%s</b></h3>',_('Server'),htmlspecialchars($ldapserver->name));
<h3 class="title"><?php echo $lang['import_ldif_file_title']?></h3>
<h3 class="subtitle"><?php echo $lang['server']?>: <b><?php echo htmlspecialchars( $ldapserver->name ); ?></b></h3>
echo '<br /><br />';
echo _('Select an LDIF file');
echo '<br /><br />';
<br />
<br />
<?php echo $lang['select_ldif_file']?><br />
<br />
echo '<form action="ldif_import.php" method="post" class="new_value" enctype="multipart/form-data">';
printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
echo '<input type="file" name="ldif_file" /> <br />';
printf('<div style="margin-top: 5px;"><input type="checkbox" name="continuous_mode" value="1" /><span style="font-size: 90%%;">%s</span></div>',_("Don't stop on errors"));
printf('<div style="margin-top:10px;"><input type="submit" value="%s" /></div>',_('Proceed >>'));
printf('<br /><small><b>%s %s</b></small><br />',_('Maximum file size'),ini_get('upload_max_filesize'));
echo '</form>';
<form action="ldif_import.php" method="post" class="new_value" enctype="multipart/form-data">
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="file" name="ldif_file" /> <br />
<div style="margin-top: 5px;"><input type="checkbox" name="continuous_mode" value="1" /><span style="font-size: 90%;"><?php echo $lang['dont_stop_on_errors']; ?></span></div>
<div style="margin-top:10px;">
<input type="submit" value="<?php echo $lang['proceed_gt']?>" />
</div>
<?php
if( ! ini_get( 'file_uploads' ) )
echo "<br /><small><b>" . $lang['warning_file_uploads_disabled'] . "</b></small><br />";
else
echo "<br /><small><b>" . sprintf( $lang['max_file_size'], ini_get( 'upload_max_filesize' ) ) . "</b></small><br />";
echo '<br /><br />';
echo _('Paste your LDIF here');
echo '<form action="ldif_import.php" method="post" class="new_value" enctype="multipart/form-data">';
echo '<textarea name="ldif" rows="10" cols="60"></textarea>';
printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
printf('<div style="margin-top: 5px;"><input type="checkbox" name="continuous_mode" value="1" /><span style="font-size: 90%%;">%s</span></div>',_("Don't stop on errors"));
printf('<div style="margin-top:10px;"><input type="submit" value="%s" /></div>',_('Proceed >>'));
echo '</form>';
echo '</body></html>';
?>
</form>
</body>
</html>

View File

@@ -1,13 +1,10 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/login.php,v 1.49.2.2 2005/10/17 10:03:38 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/login.php,v 1.54 2006/01/03 20:39:58 wurley Exp $
/**
* For servers whose auth_type is set to 'cookie' or 'session'. Pass me the login info
* and I'll write two cookies, pla_login_dn_X and pla_pass_X
* where X is the server_id. The cookie_time comes from config.php
*
* Note: this file uses ldap_connect() and ldap_bind() only for purposes
* of verifying the user-supplied DN and Password.
* For servers whose auth_type is set to 'cookie' or 'session'. Pass me the
* login info and I'll write two cookies, pla_login_dn_X and pla_pass_X where X
* is the server_id. The cookie_time comes from config.php
*
* Variables that come in via common.php
* - server_id
@@ -24,24 +21,25 @@ require './common.php';
# Prevents users from coming here without going through the proper channels
if (! isset($ldapserver))
header("Location: index.php");
header('Location: index.php');
$dn = isset($_POST['login_dn']) ? $_POST['login_dn'] : null;
$pass = isset($_POST['login_pass']) ? $_POST['login_pass'] : null;
$uid = isset($_POST['uid']) ? $_POST['uid'] : null;
$dn = isset( $_POST['login_dn'] ) ? $_POST['login_dn'] : null;
$uid = isset( $_POST['uid'] ) ? $_POST['uid'] : null;
$pass = isset( $_POST['login_pass'] ) ? $_POST['login_pass'] : null;
if ($ldapserver->isAnonBindAllowed())
$anon_bind = isset( $_POST['anonymous_bind'] ) && $_POST['anonymous_bind'] == 'on' ? true : false;
$anon_bind = isset($_POST['anonymous_bind']) && $_POST['anonymous_bind'] == 'on' ? true : false;
else
$anon_bind = false;
if( ! $anon_bind )
strlen($pass) or pla_error( $lang['password_blank'] );
if (! $anon_bind)
strlen($pass) or pla_error(_('You left the password blank.'));
$save_auth_type = $ldapserver->auth_type;
if ($anon_bind) {
if (DEBUG_ENABLED)
debug_log('Anonymous Login was posted [%s].',4,$anon_bind);
debug_log('Anonymous Login was posted [%s].',64,$anon_bind);
$dn = null;
$pass = null;
@@ -52,11 +50,11 @@ if ($anon_bind) {
} elseif ($ldapserver->isLoginAttrEnabled()) {
# Is this a login string (printf-style)
if( $ldapserver->isLoginStringEnabled() ) {
$dn = str_replace( '<username>', $uid, $ldapserver->getLoginString() );
if ($ldapserver->isLoginStringEnabled()) {
$dn = str_replace('<username>',$uid,$ldapserver->getLoginString());
if (DEBUG_ENABLED)
debug_log('LoginStringDN: [%s]',3,$dn);
debug_log('LoginStringDN: [%s]',64,$dn);
} else {
# This is a standard login_attr
@@ -65,11 +63,12 @@ if ($anon_bind) {
the DN to use when searching for the login_attr user. */
$ldapserver->auth_type = 'config';
set_error_handler( 'temp_login_error_handler' );
set_error_handler('temp_login_error_handler');
if ($ldapserver->login_dn)
$ldapserver->connect(true,false);
$ldapserver->connect(true,'user');
else
$ldapserver->connect(true,true);
$ldapserver->connect(true,'anonymous');
restore_error_handler();
if (! empty($ldapserver->login_class))
@@ -80,15 +79,14 @@ if ($anon_bind) {
# Got through each of the BASE DNs and test the login.
foreach ($ldapserver->getBaseDN() as $base_dn) {
if (DEBUG_ENABLED)
debug_log('Searching LDAP with base [%s]',9,$base_dn);
debug_log('Searching LDAP with base [%s]',64,$base_dn);
$sr = @ldap_search($ldapserver->connect(false), $base_dn, $filter, array('dn'), 0, 1);
$result = @ldap_get_entries($ldapserver->connect(false), $sr);
$dn = isset( $result[0]['dn'] ) ? $result[0]['dn'] : false;
$result = array_pop($ldapserver->search(null,$base_dn,$filter,array('dn')));
$dn = $result['dn'];
if ($dn) {
if (DEBUG_ENABLED)
debug_log('Got DN [%s] for user ID [%s]',5,$dn,$uid);
debug_log('Got DN [%s] for user ID [%s]',64,$dn,$uid);
break;
}
}
@@ -96,7 +94,7 @@ if ($anon_bind) {
# If we got here then we werent able to find a DN for the login filter.
if (! $dn)
pla_error($lang['bad_user_name_or_password']);
pla_error(_('Bad username or password. Please try again.'));
# restore the original auth_type
$ldapserver->auth_type = $save_auth_type;
@@ -105,7 +103,7 @@ if ($anon_bind) {
# We fake a 'config' server auth_type to omit duplicated code
if (DEBUG_ENABLED)
debug_log('Setting login type to CONFIG with DN [%s]',9,$dn);
debug_log('Setting login type to CONFIG with DN [%s]',64,$dn);
$save_auth_type = $ldapserver->auth_type;
$ldapserver->auth_type = 'config';
@@ -113,80 +111,66 @@ $ldapserver->login_dn = $dn;
$ldapserver->login_pass = $pass;
# Verify that dn is allowed to login
if (! userIsAllowedLogin($ldapserver,$dn))
pla_error( $lang['login_not_allowed'] );
if (! $ldapserver->userIsAllowedLogin($dn))
pla_error(_('Sorry, you are not allowed to use phpLDAPadmin with this LDAP server.'));
if (DEBUG_ENABLED)
debug_log('User is not prohibited from logging in - now bind with DN [%s]',9,$dn);
debug_log('User is not prohibited from logging in - now bind with DN [%s]',64,$dn);
# verify that the login is good
if( is_null($dn) && is_null($pass))
$ds = $ldapserver->connect(true,true,true);
if (is_null($dn) && is_null($pass))
$ds = $ldapserver->connect(true,'anonymous',true);
else
$ds = $ldapserver->connect(true,false,true);
$ds = $ldapserver->connect(true,'user',true);
if (DEBUG_ENABLED)
debug_log('Connection returned [%s]',9,$ds);
debug_log('Connection returned [%s]',64,$ds);
if (! is_resource($ds)) {
if ($anon_bind)
pla_error($lang['could_not_bind_anon']);
pla_error(_('Could not bind anonymously to server.'),null,null,true);
else
pla_error($lang['bad_user_name_or_password']);
pla_error(_('Bad username or password. Please try again.'),null,null,true);
syslog_notice("Authentification FAILED for $dn");
}
$ldapserver->auth_type = $save_auth_type;
set_login_dn($ldapserver,$dn,$pass,$anon_bind) or pla_error( $lang['could_not_set_cookie'] );
$ldapserver->setLoginDN($dn,$pass,$anon_bind) or pla_error(_('Could not set cookie.'));
set_lastactivity($ldapserver);
initialize_session_tree();
$_SESSION['tree'][$ldapserver->server_id] = array();
$_SESSION['tree_icons'][$ldapserver->server_id] = array();
if(! $anon_bind) {
if (! $anon_bind) {
syslog_notice("Authentification successful for $dn");
}
session_write_close();
pla_session_close();
include './header.php';
?>
echo '<body>';
<body>
echo '<script type="text/javascript" language="javascript">';
if ($anon_bind && $config->GetValue('appearance','anonymous_bind_redirect_no_tree'))
printf("parent.location.href='search.php?server_id=%s'",$ldapserver->server_id);
else
echo 'parent.left_frame.location.reload();';
echo '</script>';
<script language="javascript">
<?php if ($anon_bind && $config->GetValue('appearance','anonymous_bind_redirect_no_tree')) { ?>
parent.location.href='search.php?server_id=<?php echo $ldapserver->server_id; ?>'
<?php } else { ?>
parent.left_frame.location.reload();
<?php } ?>
</script>
echo '<center><br /><br /><br />';
printf(_('Successfully logged into server <b>%s</b>').'<br />',htmlspecialchars($ldapserver->name));
<center>
<br />
<br />
<br />
<?php echo sprintf($lang['successfully_logged_in_to_server'],htmlspecialchars($ldapserver->name)); ?><br />
<?php if($anon_bind) { ?>
(<?php echo $lang['anonymous_bind']; ?>)
<?php } ?>
<br />
</center>
if ($anon_bind)
printf('(%s)',_('Anonymous Bind'));
</body>
</html>
echo '<br /></center>';
echo '</body></html>';
<?php
/**
* Only gets called when we fail to login.
*/
function temp_login_error_handler($errno,$errstr,$file,$lineno) {
global $lang;
if (ini_get('error_reporting') == 0 || error_reporting() == 0)
return;
pla_error($lang['could_not_connect']."<br /><br />".htmlspecialchars($errstr));
pla_error(_('Could not connect to LDAP server.').'<br /><br />'.htmlspecialchars($errstr));
}
?>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/login_form.php,v 1.25 2005/07/22 05:47:44 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/login_form.php,v 1.27 2005/12/17 00:00:11 wurley Exp $
/**
* Displays the login form for a server for users who specify 'cookie' or 'session' for their auth_type.
@@ -17,15 +17,17 @@
require './common.php';
if (! $ldapserver->auth_type)
pla_error($lang['error_auth_type_config']);
pla_error(_('Error: You have an error in your config file. The only three allowed values
for auth_type in the $servers section are \'session\', \'cookie\', and \'config\'. You entered \'%s\',
which is not allowed. '));
if (! in_array($ldapserver->auth_type, array('cookie','session')))
pla_error(sprintf($lang['unknown_auth_type'],htmlspecialchars($ldapserver->auth_type)));
pla_error(sprintf(_('Unknown auth_type: %s'),htmlspecialchars($ldapserver->auth_type)));
include './header.php'; ?>
<body>
<?php if( $ldapserver->isAnonBindAllowed() ) { ?>
<script language="javascript">
<script type="text/javascript" language="javascript">
<!--
function toggle_disable_login_fields( anon_checkbox )
{
@@ -41,14 +43,14 @@ include './header.php'; ?>
</script>
<?php } ?>
<h3 class="title"><?php printf($lang['authenticate_to_server'],$ldapserver->name); ?></h3>
<h3 class="title"><?php printf(_('Authenticate to server %s'),$ldapserver->name); ?></h3>
<br />
<?php if (! isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != 'on') { ?>
<center>
<span style="color:red">
<acronym title="<?php echo $lang['not_using_https']; ?>">
<?php echo $lang['warning_this_web_connection_is_unencrypted']; ?>
<acronym title="<?php echo _('You are not using \'https\'. Web browser will transmit login information in clear text.'); ?>">
<?php echo _('Warning: This web connection is unencrypted.'); ?>
</acronym>
</span>
<br />
@@ -69,7 +71,7 @@ include './header.php'; ?>
<?php if( $ldapserver->isAnonBindAllowed() ) { ?>
<tr>
<td colspan="2"><small><label for="anonymous_bind_checkbox"><?php echo $lang['anonymous_bind']; ?></label></small> <input type="checkbox" name="anonymous_bind" onclick="toggle_disable_login_fields(this)" id="anonymous_bind_checkbox"/></td>
<td colspan="2"><small><label for="anonymous_bind_checkbox"><?php echo _('Anonymous Bind'); ?></label></small> <input type="checkbox" name="anonymous_bind" onclick="toggle_disable_login_fields(this)" id="anonymous_bind_checkbox"/></td>
</tr>
<?php } ?>
@@ -77,9 +79,9 @@ include './header.php'; ?>
<td><small>
<?php
if ($ldapserver->isLoginAttrEnabled())
echo $lang['user_name'];
echo _('User name');
else
echo $lang['login_dn'];
echo _('Login DN');
?>
</small></td>
@@ -87,12 +89,12 @@ else
</tr>
<tr>
<td><small><?php echo $lang['password']; ?></small></td>
<td><small><?php echo _('Password'); ?></small></td>
<td><input type="password" size="40" value="" name="login_pass" /></td>
</tr>
<tr>
<td colspan="2"><center><input type="submit" name="submit" value="<?php echo $lang['authenticate']; ?>" /></center></td>
<td colspan="2"><center><input type="submit" name="submit" value="<?php echo _('Authenticate'); ?>" /></center></td>
</tr>
</table>
</center>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/logout.php,v 1.17 2005/09/25 16:11:44 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/logout.php,v 1.19 2005/12/17 00:00:11 wurley Exp $
/**
* For servers whose auth_type is set to 'cookie' or 'session'. Pass me
@@ -16,27 +16,33 @@
require './common.php';
if (! $ldapserver->haveAuthInfo())
pla_error($lang['no_one_logged_in']);
pla_error(_('No one is logged in to that server.'));
if (in_array($ldapserver->auth_type, array('cookie','session'))) {
syslog_notice (sprintf("Logout for %s",get_logged_in_dn($ldapserver)));
unset_login_dn($ldapserver) or pla_error($lang['could_not_logout']);
syslog_notice (sprintf('Logout for %s',$ldapserver->getLoggedInDN()));
$ldapserver->unsetLoginDN() or pla_error(_('Could not logout.'));
unset_lastactivity($ldapserver);
if (isset($_SESSION['cache'][$ldapserver->server_id]['tree'])) {
unset($_SESSION['cache'][$ldapserver->server_id]['tree']);
}
pla_session_close();
} else
pla_error(sprintf($lang['unknown_auth_type'], htmlspecialchars($ldapserver->auth_type)));
pla_error(sprintf(_('Unknown auth_type: %s'), htmlspecialchars($ldapserver->auth_type)));
include './header.php';
?>
<script language="javascript">
<body>
<script type="text/javascript" language="javascript">
parent.left_frame.location.reload();
</script>
<center>
<br />
<br />
<?php echo sprintf($lang['logged_out_successfully'],htmlspecialchars($ldapserver->name)); ?><br />
<?php echo sprintf(_('Logged out successfully from server <b>%s</b>'),htmlspecialchars($ldapserver->name)); ?><br />
</center>
</body>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/mass_delete.php,v 1.13.2.1 2005/10/09 09:07:21 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/mass_delete.php,v 1.16 2005/12/17 00:00:11 wurley Exp $
/**
* Enables user to mass delete multiple entries using checkboxes.
@@ -21,59 +21,60 @@
require './common.php';
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_deletes_in_read_only_mode'] );
pla_error(_('Unable to delete, server is in READY-ONLY mode.'));
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
pla_error(_('Not enough information to login to server. Please check your configuration.'));
$confirmed = isset($_POST['confirmed']) ? true : false;
isset($_POST['mass_delete']) or
pla_error(_('Error calling mass_delete.php. Missing mass_delete in POST vars.'));
$confirmed = isset( $_POST['confirmed'] ) ? true : false;
isset( $_POST['mass_delete'] ) or
pla_error( $lang['error_calling_mass_delete'] );
$mass_delete = $_POST['mass_delete'];
is_array( $mass_delete ) or
pla_error( $lang['mass_delete_not_array'] );
is_array($mass_delete) or
pla_error(_('mass_delete POST var is not an array.'));
$ldapserver->isMassDeleteEnabled() or
pla_error( $lang['mass_delete_not_enabled'] );
pla_error(_('Mass deletion is not enabled. Please enable it in config.php before proceeding.'));
require './header.php';
echo "<body>\n";
echo "<h3 class=\"title\">" . $lang['mass_deleting'] . "</h3>\n";
echo '<body>';
printf('<h3 class="title">%s</h3>',_('Mass Deleting'));
if( $confirmed == true ) {
echo "<h3 class=\"subtitle\">" . sprintf( $lang['mass_delete_progress'], $ldapserver->name ) . "</h3>\n";
echo "<blockquote>";
echo "<small>\n";
if ($confirmed == true) {
printf('<h3 class="subtitle">'._('Deletion progress on server "%s"').'</h3>',$ldapserver->name);
echo '<blockquote>';
echo '<small>';
$successfully_delete_dns = array();
$failed_dns = array();
if( ! is_array( $mass_delete ) )
pla_error( $lang['malformed_mass_delete_array'] );
if (! is_array($mass_delete))
pla_error(_('Malformed mass_delete array.'));
if( count( $mass_delete ) == 0 ) {
echo "<br />";
echo "<center>" . $lang['no_entries_to_delete'] . "</center>";
if (count($mass_delete) == 0) {
echo '<br />';
printf('<center>%s</center>',_('You did not select any entries to delete.'));
die();
}
foreach( $mass_delete as $dn => $junk ) {
echo sprintf( $lang['deleting_dn'], htmlspecialchars($dn) );
// @todo: Should sort these entries, so that they are deleted in order, if a user selects children.
foreach ($mass_delete as $dn => $junk) {
printf(_('Deleting %s'),htmlspecialchars($dn));
flush();
if( true === run_hook ( 'pre_entry_delete', array ( 'server_id' => $ldapserver->server_id, 'dn' => $dn ) ) ) {
$success = @ldap_delete( $ldapserver->connect(), $dn );
if(run_hook('pre_entry_delete',array('server_id'=>$ldapserver->server_id,'dn'=>$dn))) {
$success = $ldapserver->delete($dn);
if( $success ) {
run_hook ( 'post_entry_delete', array ( 'server_id' => $ldapserver->server_id, 'dn' => $dn ) );
if ($success) {
run_hook('post_entry_delete',array('server_id'=>$ldapserver->server_id,'dn'=>$dn));
echo " <span style=\"color:green\">" . $lang['success'] . "</span>.<br />\n";
printf(' <span style="color:green">%s</span>.<br />',_('Success'));
$successfully_delete_dns[] = $dn;
} else {
echo " <span style=\"color:red\">" . $lang['failed'] . "</span>.\n";
echo "(" . $ldapserver->error() . ")<br />\n";
printf(' <span style="color:red">%s</span>.<br /> (%s)<br />',_('Failed'),$ldapserver->error());
$failed_dns[] = $dn;
}
}
@@ -81,73 +82,37 @@ if( $confirmed == true ) {
flush();
}
echo "<blockquote>";
echo "</small>\n";
echo '<blockquote>';
echo '</small>';
$failed_count = count( $failed_dns );
$total_count = count( $mass_delete );
$failed_count = count($failed_dns);
$total_count = count($mass_delete);
if( $failed_count > 0 ) {
echo "<span style=\"color: red; font-weight: bold;\">\n";
echo sprintf( $lang['total_entries_failed'], $failed_count, $total_count ) . "</span>\n";
if ($failed_count > 0)
printf('<span style="color: red; font-weight: bold;">'._('%s of %s entries failed to be deleted.').'</span>',$failed_count,$total_count);
else
printf('<span style="color: green; font-weight: bold;">%s</span>',_('All entries deleted successfully.'));
} else {
echo "<span style=\"color: green; font-weight: bold;\">\n";
echo $lang['all_entries_successful'] . "</span>\n";
}
// kill the deleted DNs from the tree browser session variable and
// refresh the tree viewer frame (left_frame)
if( array_key_exists( 'tree', $_SESSION ) ) {
$tree = $_SESSION['tree'];
foreach( $successfully_delete_dns as $dn ) {
// does it have children? (it shouldn't, but hey, you never know)
if( isset( $tree[$ldapserver->server_id][$dn] ) )
unset( $tree[$ldapserver->server_id][$dn] );
// search and destroy
foreach( $tree[$ldapserver->server_id] as $tree_dn => $subtree )
foreach( $subtree as $key => $sub_tree_dn )
if( 0 == strcasecmp( $sub_tree_dn, $dn ) )
unset( $tree[$ldapserver->server_id][$tree_dn][$key] );
}
$_SESSION['tree'] = $tree;
session_write_close(); ?>
<script language="javascript">
parent.left_frame.location.reload();
</script>
<?php }
echo '<script language="javascript">parent.left_frame.location.reload();</script>';
} else {
$n = count( $mass_delete );
echo "<h3 class=\"subtitle\">" . sprintf( $lang['confirm_mass_delete'], $n, $ldapserver->name ) . "</h3>\n"; ?>
$n = count($mass_delete);
printf('<h3 class="subtitle">'._('Confirm mass delete of %s entries on server %s').'</h3>',$n,$ldapserver->name);
<center>
echo'<center>';
printf(_('Do you really want to delete %s %s %s'),
($n == 1? _('this') : _('these')),$n,($n == 1 ? _('entry') : _('entries')));
Do you really want to delete
<?php echo ($n==1?'this':'these') . ' ' . $n . ' ' . ($n==1?'entry':'entries'); ?>?
echo '<form action="mass_delete.php" method="post">';
echo '<input type="hidden" name="confirmed" value="true" />';
printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
<form action="mass_delete.php" method="post">
<input type="hidden" name="confirmed" value="true" />
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
echo '<table><tr><td><ol>';
foreach ($mass_delete as $dn => $junk)
printf('<input type="hidden" name="mass_delete[%s]" value="on" /><li>%s</li>',htmlspecialchars($dn),htmlspecialchars($dn));
echo '</ol></td></tr></table>';
<table><tr><td>
<ol>
<?php foreach( $mass_delete as $dn => $foo ) {
echo "<input type=\"hidden\" name=\"mass_delete[" . htmlspecialchars($dn) . "]\" value=\"on\" />\n";
echo "<li>" . htmlspecialchars( $dn ) . "</li>\n";
} ?>
</ol>
</td></tr></table>
<input class="scary" type="submit" value=" <?php echo $lang['yes_delete']; ?> " /></center>
</form>
<?php }
printf('<input class="scary" type="submit" value="%s" /></center>',_('Yes, delete!'));
echo '</form>';
}
?>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/password_checker.php,v 1.8 2005/07/23 17:02:54 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/password_checker.php,v 1.9 2005/12/10 10:34:54 wurley Exp $
/**
* @package phpLDAPadmin
@@ -23,17 +23,17 @@ if( isset( $_REQUEST['base64'] ) ) {
$enc_type = get_enc_type( $hash );
?>
<h3 class="subtitle"><?php echo $lang['password_checker_tool']; ?></h3>
<h3 class="subtitle"><?php echo _('Password Checker Tool'); ?></h3>
<form style="margin: 0" action="password_checker.php" method="post">
<input type="hidden" name="action" value="compare" />
<table style="border-spacing: 10px">
<tr>
<td><?php echo $lang['compare']; ?></td>
<td><?php echo _('Compare'); ?></td>
<td><input type="<?php echo ( $enc_type ? 'text' : 'password' ); ?>" name="hash" style="width: 300px" value="<?php echo htmlspecialchars($hash); ?>" /></td>
</tr>
<tr>
<td><?php echo $lang['to']; ?></td>
<td><?php echo _('To'); ?></td>
<td><input type="password" style="width: 300px" name="check_password" value="<?php echo htmlspecialchars($check_password); ?>" /></td>
</tr>
<tr>
@@ -42,9 +42,9 @@ $enc_type = get_enc_type( $hash );
<?php if( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'compare' ) {
echo "&nbsp;&nbsp;&nbsp;&nbsp;<b>";
if( password_check( $hash, $check_password) )
echo "<span style=\"color: green\">" . $lang['passwords_match'] . "</span>";
echo "<span style=\"color: green\">" . _('Passwords match!') . "</span>";
else
echo "<span style=\"color: red\">" . $lang['passwords_do_not_match'] . "</span>";
echo "<span style=\"color: red\">" . _('Passwords do not match!') . "</span>";
echo "</b>";
} ?>
</td>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/purge_cache.php,v 1.6 2005/07/22 06:12:51 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/purge_cache.php,v 1.8 2005/12/17 00:00:11 wurley Exp $
/**
* @package phpLDAPadmin
@@ -10,34 +10,29 @@
require './common.php';
include './header.php';
$purge_session_keys = array('cache','tree','tree_icons');
?>
$purge_session_keys = array('cache');
<body>
<h3 class="title">Purging Caches</h3>
<br />
<br />
<br />
<center>
echo '<body>';
echo '<h3 class="title">Purging Caches</h3><br /><br /><br />';
<?php
$size = 0;
foreach ($purge_session_keys as $key) {
if (isset($_SESSION[$key])) {
$size += strlen(serialize($_SESSION[$key]));
unset($_SESSION[$key]);
}
if (isset($_SESSION[$key])) {
$size += strlen(serialize($_SESSION[$key]));
unset($_SESSION[$key]);
}
}
pla_session_close();
session_write_close();
echo '<center>';
if (! $size)
echo $lang['no_cache_to_purge'];
echo _('No cache to purge.');
else
echo sprintf($lang['done_purging_caches'],number_format($size));
?>
printf(_('Purged %s bytes of cache.'),number_format($size));
</center>
</body>
</html>
echo '</center>';
echo '<!-- refresh the tree view (with the new DN renamed)and redirect to the edit_dn page -->';
echo '<script type="text/javascript" language="javascript">parent.left_frame.location.reload();</script>';
echo '</body></html>';
?>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/rdelete.php,v 1.22.2.1 2005/10/09 09:07:21 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/rdelete.php,v 1.24 2005/12/10 10:34:54 wurley Exp $
/**
* Recursively deletes the specified DN and all of its children
@@ -17,114 +17,74 @@
require './common.php';
if ($ldapserver->isReadOnly())
pla_error($lang['no_updates_in_read_only_mode']);
pla_error(_('You cannot perform updates while server is in read-only mode'));
if (! $ldapserver->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
pla_error(_('Not enough information to login to server. Please check your configuration.'));
$dn = $_POST['dn'];
$encoded_dn = rawurlencode($dn);
$rdn = get_rdn($dn);
if (! $dn)
pla_error($lang['you_must_specify_a_dn']);
pla_error(_('You must specify a DN'));
dn_exists($ldapserver,$dn) or pla_error(sprintf($lang['no_such_entry'],htmlspecialchars($dn)));
if (! $ldapserver->dnExists($dn))
pla_error(sprintf(_('No such entry: %s'),htmlspecialchars($dn)));
include './header.php';
echo "<body>\n";
echo "<h3 class=\"title\">".sprintf($lang['deleting_dn'],htmlspecialchars($rdn))."</h3>\n";
echo "<h3 class=\"subtitle\">".$lang['recursive_delete_progress']."</h3>";
echo "<br /><br />";
echo "<small>\n";
echo '<body>';
printf('<h3 class="title">'._('Deleting %s').'</h3>',htmlspecialchars(get_rdn($dn)));
printf('<h3 class="subtitle">%s</h3>',_('Recursive delete progress'));
echo '<br /><br />';
echo '<small>';
flush();
// prevent script from bailing early on a long delete
# prevent script from bailing early on a long delete
@set_time_limit(0);
$del_result = pla_rdelete($ldapserver,$dn);
echo "</small><br />\n";
echo '</small><br />';
if ($del_result) {
# kill the DN from the tree browser session variable and
# refresh the tree viewer frame (left_frame)
if (array_key_exists('tree',$_SESSION)) {
$tree = $_SESSION['tree'];
# does it have children? (it shouldn't, but hey, you never know)
if (isset($tree[$ldapserver->server_id][$dn]))
unset($tree[$ldapserver->server_id][$dn]);
# Get a tree in the session if not already gotten
initialize_session_tree();
# search and destroy from the tree sesssion
foreach ($tree[$ldapserver->server_id] as $tree_dn => $subtree)
foreach ($subtree as $key => $sub_tree_dn)
if (0 == strcasecmp($sub_tree_dn,$dn))
unset($tree[$ldapserver->server_id][$tree_dn][$key]);
}
$_SESSION['tree'] = $tree;
session_write_close();
?>
<script language="javascript">
parent.left_frame.location.reload();
</script>
<?php
echo sprintf($lang['entry_and_sub_tree_deleted_successfully'],'<b>'.htmlspecialchars($dn).'</b>');
echo '<script language="javascript">parent.left_frame.location.reload();</script>';
printf(_('Entry %s and sub-tree deleted successfully.'),'<b>'.htmlspecialchars($dn).'</b>');
} else {
pla_error(sprintf($lang['could_not_delete_entry'],htmlspecialchars($dn)),
pla_error(sprintf(_('Could not delete the entry: %s'),htmlspecialchars($dn)),
$ldapserver->error(),$ldapserver->errno());
}
exit;
function pla_rdelete($ldapserver,$dn) {
global $lang;
$children = get_container_contents($ldapserver,$dn);
$children = $ldapserver->getContainerContents($dn);
if (! is_array($children) || count($children) == 0) {
echo "<nobr>".sprintf($lang['deleting_dn'],htmlspecialchars($dn))."...";
printf('<nobr>'._('Deleting %s').'...',htmlspecialchars($dn));
flush();
if (run_hook('pre_entry_delete',array('server_id' => $ldapserver->server_id,'dn' => $dn)))
if (@ldap_delete($ldapserver->connect(),$dn)) {
run_hook ('post_entry_delete',
array('server_id' => $ldapserver->server_id,'dn' => $dn));
echo " <span style=\"color:green\">".$lang['success']."</span></nobr><br />\n";
if (run_hook('pre_entry_delete',array('server_id'=>$ldapserver->server_id,'dn'=>$dn)))
if ($ldapserver->delete($dn)) {
run_hook('post_entry_delete',array('server_id'=>$ldapserver->server_id,'dn'=>$dn));
printf(' <span style="color:green">%s</span></nobr><br />',_('Success'));
return true;
} else {
pla_error(sprintf($lang['failed_to_delete_entry'],htmlspecialchars($dn)),
pla_error(sprintf(_('Failed to delete entry %s'),htmlspecialchars($dn)),
$ldapserver->error(),$ldapserver->errno());
}
} else {
foreach ($children as $child_dn) {
foreach ($children as $child_dn)
pla_rdelete($ldapserver,$child_dn);
}
echo "<nobr>".sprintf($lang['deleting_dn'],htmlspecialchars($dn))."...";
printf('<nobr>'._('Deleting %s').'...',htmlspecialchars($dn));
flush();
if (true === run_hook ('pre_entry_delete',array('server_id' => $ldapserver->server_id,'dn' => $dn)))
if (@ldap_delete($ldapserver->connect(),$dn)) {
run_hook ('post_entry_delete',
array('server_id' => $ldapserver->server_id,'dn' => $dn));
echo " <span style=\"color:green\">".$lang['success']."</span></nobr><br />\n";
if (run_hook('pre_entry_delete',array('server_id'=>$ldapserver->server_id,'dn'=>$dn)))
if ($ldapserver->delete($dn)) {
run_hook('post_entry_delete',array('server_id'=>$ldapserver->server_id,'dn'=>$dn));
printf(' <span style="color:green">%s</span></nobr><br />',_('Success'));
return true;
} else {
pla_error(sprintf($lang['failed_to_delete_entry'],htmlspecialchars($dn)),
pla_error(sprintf(_('Failed to delete entry %s'),htmlspecialchars($dn)),
$ldapserver->error(),$ldapserver->errno());
}
}

View File

@@ -1,6 +1,6 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/refresh.php,v 1.15 2005/07/22 05:51:57 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/refresh.php,v 1.17 2005/12/17 00:00:11 wurley Exp $
/**
* This script alters the session variable 'tree', by re-querying
* the LDAP server to grab the contents of every expanded container.
@@ -11,41 +11,16 @@
* @package phpLDAPadmin
*/
/**
* @todo: Change this to just refresh all the open entries.
*/
require './common.php';
if (! isset($ldapserver) || ! array_key_exists('tree',$_SESSION))
header("Location: tree.php");
if (! isset($ldapserver))
header('Location: tree.php');
$tree = $_SESSION['tree'];
$tree_icons = $_SESSION['tree_icons'];
# Get the icon for the base object(s) for this server
foreach ($ldapserver->getBaseDN() as $base_dn)
$tree_icons[$ldapserver->server_id][$base_dn] = get_icon($ldapserver,$base_dn);
# get all the icons and container contents for all expanded entries
if (isset($tree[$ldapserver->server_id]) && is_array($tree[$ldapserver->server_id])) {
foreach ($tree[$ldapserver->server_id] as $dn => $children) {
$tree[$ldapserver->server_id][$dn] = get_container_contents($ldapserver,$dn,0,'(objectClass=*)',
$config->GetValue('deref','tree'));
if (is_array($tree[$ldapserver->server_id][$dn])) {
foreach ($tree[$ldapserver->server_id][$dn] as $child_dn)
$tree_icons[$ldapserver->server_id][$child_dn] = get_icon($ldapserver,$child_dn);
sort($tree[$ldapserver->server_id][$dn]);
}
}
} else {
header(sprintf('Location: tree.php#%s',$ldapserver->server_id));
}
$_SESSION['tree'] = $tree;
$_SESSION['tree_icons'] = $tree_icons;
session_write_close();
unset($_SESSION['cache'][$ldapserver->server_id]['tree']);
pla_session_close();
header(sprintf('Location: tree.php#%s',$ldapserver->server_id));
?>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/rename.php,v 1.27.2.2 2005/10/16 21:04:51 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/rename.php,v 1.30 2005/12/10 10:34:54 wurley Exp $
/**
* Renames a DN to a different name.
@@ -18,106 +18,60 @@
require './common.php';
if ($ldapserver->isReadOnly())
pla_error($lang['no_updates_in_read_only_mode']);
pla_error(_('You cannot perform updates while server is in read-only mode'));
if (! $ldapserver->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
pla_error(_('Not enough information to login to server. Please check your configuration.'));
$dn = ($_POST['dn']);
$new_rdn = ($_POST['new_rdn']);
if (! $ldapserver->isBranchRenameEnabled()) {
$children = get_container_contents($ldapserver,$dn);
$children = $ldapserver->getContainerContents($dn);
if (count($children) > 0)
pla_error($lang['non_leaf_nodes_cannot_be_renamed']);
pla_error(_('You cannot rename an entry which has children entries (eg, the rename operation is not allowed on non-leaf entries)'));
}
$new_rdn = ($_POST['new_rdn']);
$container = get_container($dn);
$new_dn = sprintf('%s,%s',$new_rdn,$container);
if ($new_dn == $dn)
pla_error($lang['no_rdn_change']);
pla_error(_('You did not change the RDN'));
$old_dn_attr = explode('=',$dn);
$old_dn_attr = $old_dn_attr[0];
$old_dn_value = pla_explode_dn($dn);
$old_dn_value = explode('=',$old_dn_value[0],2);
$old_dn_value = $old_dn_value[1];
$new_dn_value = explode('=',$new_rdn,2);
if (count($new_dn_value) != 2 || ! isset($new_dn_value[1]))
pla_error($lang['invalid_rdn']);
pla_error(_('Invalid RDN value'));
$new_dn_attr = $new_dn_value[0];
$new_dn_value = $new_dn_value[1];
$success = run_hook ('pre_rename_entry', array ('server_id' => $ldapserver->server_id,
'old_dn' => $dn, 'new_dn' => $new_dn_value ) );
$success = run_hook('pre_rename_entry',array('server_id'=>$ldapserver->server_id,'old_dn'=>$dn,'new_dn'=>$new_dn_value));
if ($success) {
$success = false;
$deleteoldrdn = $old_dn_attr == $new_dn_attr;
if (! @ldap_rename($ldapserver->connect(), $dn, $new_rdn, $container, $deleteoldrdn ) ) {
pla_error($lang['could_not_rename'],
$ldapserver->error(),
$ldapserver->errno(), false );
} else
$success = true;
$success = $ldapserver->rename($dn,$new_rdn,$container,$deleteoldrdn);
} else {
pla_error($lang['could_not_rename'] );
pla_error(_('Could not rename the entry') );
}
if ($success ) {
run_hook ('post_rename_entry', array ('server_id' => $ldapserver->server_id, 'old_dn' => $dn,
'new_dn' => $new_dn_value ) );
if ($success) {
run_hook('post_rename_entry',array('server_id'=>$ldapserver->server_id,'old_dn'=>$dn,'new_dn'=>$new_dn_value));
if (array_key_exists('tree', $_SESSION ) ) {
$tree = $_SESSION['tree'];
$tree_icons = $_SESSION['tree_icons'];
$old_dn = $dn;
$edit_url = sprintf('template_engine.php?server_id=%s&dn=%s',$ldapserver->server_id,rawurlencode($new_dn));
// gotta search the whole tree for the entry (must be a leaf node since RDN changes
// cannot occur on parents)
foreach ($tree[$ldapserver->server_id] as $parent_dn => $children ) {
foreach ($children as $i => $child_dn ) {
if (0 == strcasecmp($child_dn, $old_dn ) )
$tree[$ldapserver->server_id][$parent_dn][$i] = $new_dn;
}
}
echo '<html><head>';
echo '<!-- refresh the tree view (with the new DN renamed) and redirect to the edit_dn page -->';
printf('<script language="javascript">parent.left_frame.location.reload();location.href="%s";</script>',$edit_url);
echo "<!-- If the JavaScript didn't work, here's a meta tag to do the job -->";
printf('<meta http-equiv="refresh" content="0; url=%s" />',$edit_url);
echo '</head><body>';
// Update the icon tree to reflect the change (remove the old DN and add the new one)
$tree_icons[ $ldapserver->server_id ][ $new_dn ] = $tree_icons[ $ldapserver->server_id ][ $old_dn ];
unset($tree_icons[ $ldapserver->server_id ][ $old_dn ] );
$_SESSION['tree'] = $tree;
$_SESSION['tree_icons'] = $tree_icons;
session_write_close();
$edit_url = sprintf('edit.php?server_id=%s&dn=%s',$ldapserver->server_id,rawurlencode("$new_rdn,$container"));
?>
<html>
<head>
<!-- refresh the tree view (with the new DN renamed)
and redirect to the edit_dn page -->
<script language="javascript">
parent.left_frame.location.reload();
location.href='<?php echo $edit_url; ?>';
</script>
<!-- If the JavaScript didn't work, here's a meta tag to do the job -->
<meta http-equiv="refresh" content="0; url=<?php echo $edit_url; ?>" />
</head>
<body>
<?php echo $lang['redirecting']; ?> <a href="<?php echo $edit_url; ?>"><?php echo $lang['here']; ?></a>
</body>
</html>
<?php }
printf('%s <a href="%s">%s</a>',_('Redirecting...'),$edit_url,_('here'));
echo '</body></html>';
}
?>

View File

@@ -1,6 +1,6 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/rename_form.php,v 1.8 2005/07/22 05:51:57 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/rename_form.php,v 1.10 2006/04/29 06:49:31 wurley Exp $
/**
* Displays a form for renaming an LDAP entry.
*
@@ -17,29 +17,25 @@
require './common.php';
if ($ldapserver->isReadOnly())
pla_error($lang['no_updates_in_read_only_mode']);
pla_error(_('You cannot perform updates while server is in read-only mode'));
if (! $ldapserver->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
pla_error(_('Not enough information to login to server. Please check your configuration.'));
$dn = $_GET['dn'];
$encoded_dn = rawurlencode( $dn );
$rdn = get_rdn( $dn );
$rdn = get_rdn($dn);
include './header.php'; ?>
include './header.php';
<body>
echo '<body>';
printf('<h3 class="title">%s <b>%s</b></h3>',_('Rename Entry'),htmlspecialchars($rdn));
printf('<h3 class="subtitle">%s: <b>%s</b> &nbsp;&nbsp;&nbsp; %s: <b>%s</b></h3>',
_('Server'),$ldapserver->name,_('Distinguished Name'),htmlspecialchars($dn));
<h3 class="title"><?php echo sprintf( $lang['rename_entry'], htmlspecialchars( $rdn ) ); ?></b></h3>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $ldapserver->name; ?></b> &nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name']; ?>: <b><?php echo htmlspecialchars( ( $dn ) ); ?></b></h3>
<br />
<center>
<form action="rename.php" method="post" class="edit_dn" />
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<input type="hidden" name="dn" value="<?php echo $dn; ?>" />
<input type="text" name="new_rdn" size="30" value="<?php echo htmlspecialchars( ( $rdn ) ); ?>" />
<input class="update_dn" type="submit" value="<?php echo $lang['rename']; ?>" />
</form>
</center>
</body>
</html>
echo '<br /><center><form action="rename.php" method="post" class="edit_dn" />';
printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
printf('<input type="hidden" name="dn" value="%s" />',htmlspecialchars($dn));
printf('<input type="text" name="new_rdn" size="30" value="%s" />',htmlspecialchars($rdn));
printf('<input class="update_dn" type="submit" value="%s" />',_('Rename'));
echo '</form></center>';
echo '</body></html>';
?>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/schema.php,v 1.60.2.1 2005/10/16 20:19:16 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/schema.php,v 1.64 2006/01/03 20:39:58 wurley Exp $
/**
* Displays the schema for the specified server_id
@@ -19,7 +19,7 @@
require './common.php';
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
pla_error( _('Not enough information to login to server. Please check your configuration.') );
$view = isset($_GET['view']) ? $_GET['view'] : 'objectClasses';
$viewvalue = isset($_GET['viewvalue']) ? $_GET['viewvalue'] : null;
@@ -32,39 +32,39 @@ if (! is_null($viewvalue))
include './header.php';
$schema_error_str = sprintf('%s <b>%s</b>.<br /><br /></center>%s<ul><li>%s</li><li>%s</li><li>%s</li><li>%s</li></ul>',
$lang['could_not_retrieve_schema_from'],htmlspecialchars($ldapserver->name),
$lang['reasons_for_error'],$lang['schema_retrieve_error_1'],
$lang['schema_retrieve_error_2'],$lang['schema_retrieve_error_3'],
$lang['schema_retrieve_error_4']);
_('Could not retrieve schema from'),htmlspecialchars($ldapserver->name),
_('This could happen for several reasons, the most probable of which are:'),_('The server does not fully support the LDAP protocol.'),
_('Your version of PHP does not correctly perform the query.'),_('phpLDAPadmin doesn\'t know how to fetch the schema for your server.'),
_('Or lastly, your LDAP server doesnt provide this information.'));
?>
<body>
<h3 class="title"><?php echo $lang['schema_for_server']; ?>
<h3 class="title"><?php echo _('Schema for server'); ?>
<b><?php echo htmlspecialchars($ldapserver->name); ?></b></h3>
<br />
<center>
<?php echo ( $view=='objectClasses' ?
$lang['objectclasses'] :
_('ObjectClasses') :
sprintf('<a href="?server_id=%s&amp;view=%s">%s</a>',
$ldapserver->server_id,'objectClasses',$lang['objectclasses'])); ?>
$ldapserver->server_id,'objectClasses',_('ObjectClasses'))); ?>
|
<?php echo ( $view=='attributes' ?
$lang['attribute_types']:
_('Attribute Types'):
sprintf('<a href="?server_id=%s&amp;view=%s">%s</a>',
$ldapserver->server_id,'attributes',$lang['attribute_types'])); ?>
$ldapserver->server_id,'attributes',_('Attribute Types'))); ?>
|
<?php echo ( $view=='syntaxes' ?
$lang['syntaxes'] :
_('Syntaxes') :
sprintf('<a href="?server_id=%s&amp;view=%s">%s</a>',
$ldapserver->server_id,'syntaxes',$lang['syntaxes'])); ?>
$ldapserver->server_id,'syntaxes',_('Syntaxes'))); ?>
|
<?php echo ( $view=='matching_rules' ?
$lang['matchingrules'] :
_('Matching Rules') :
sprintf('<a href="?server_id=%s&amp;view=%s">%s</a>',
$ldapserver->server_id,'matching_rules',$lang['matchingrules'])); ?>
$ldapserver->server_id,'matching_rules',_('Matching Rules'))); ?>
</center>
<br />
@@ -76,7 +76,7 @@ switch($view) {
$highlight_oid = isset($_GET['highlight_oid']) ? $_GET['highlight_oid'] : false;
print '<table class="schema_attr" width="100%">';
printf('<tr><th>%s</th><th>%s</th></tr>',$lang['syntax_oid'],$lang['desc']);
printf('<tr><th>%s</th><th>%s</th></tr>',_('Syntax OID'),_('Description'));
$counter = 1;
@@ -95,42 +95,38 @@ switch($view) {
else
printf('<tr class="%s">',$counter%2==0?'even':'odd');
printf('<td><a name="%s">%s</a></td><td>%s</td></tr>',$oid,$oid,$desc);
printf('<td>%s</td><td>%s</td></tr>',$oid,$desc);
}
print '</table>';
break;
case 'attributes':
$schema_attrs = $ldapserver->SchemaAttributes(null,true);
$schema_object_classes = $ldapserver->SchemaObjectClasses(null,true);
$schema_attrs = $ldapserver->SchemaAttributes();
$schema_object_classes = $ldapserver->SchemaObjectClasses();
if (! $schema_attrs || ! $schema_object_classes)
pla_error($schema_error_str);
?>
<small><?php echo $lang['jump_to_attr']; ?>:</small>
<form>
<input type="hidden" name="view" value="<?php echo $view; ?>" />
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<select name="viewvalue" onChange="submit()">
<option value=""> - all -</option>
printf('<small>%s:</small>',_('Jump to an attribute type'));
echo '<form action="schema.php" method="get">';
printf('<input type="hidden" name="view" value="%s" />',$view);
printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
<?php
foreach ($schema_attrs as $attr) {
echo '<select name="viewvalue" onChange="submit()">';
echo '<option value=""> - all -</option>';
foreach ($schema_attrs as $name => $attr)
printf('<option value="%s" %s>%s</option>',
$attr->getName(),
(! strcasecmp($attr->getName(),$viewvalue) ? 'selected' : ''),$attr->getName());
}
?>
$name,$name == $viewvalue ? 'selected ': '',$attr->getName());
</select>
<input type="submit" value="<?php echo $lang['go']; ?>" /></form>
echo '</select>';
<br />
<table class="schema_attr" width="100%">
printf('<input type="submit" value="%s" /></form>',_('Go'));
echo '<br />';
echo '<table class="schema_attr" width="100%">';
<?php
foreach ($schema_attrs as $attr) {
if (is_null($viewvalue) || ! strcasecmp($viewvalue,$attr->getName())) {
if (! is_null($viewvalue))
@@ -145,34 +141,35 @@ switch($view) {
array('desc','obsolete','inherits','equality','ordering','substring_rule','syntax',
'single_valued','collective','user_modification','usage','maximum_length',
'aliases','used_by_objectclasses'
)
as $item) {
) as $item) {
printf('<tr class="%s">',++$counter%2 ? 'odd' : 'even');
printf('<td>%s</td>',$lang[$item]);
switch ($item) {
case 'desc':
printf('<td>%s</td>',_('Description'));
printf('<td>%s</td>',
is_null($attr->getDescription()) ?
'('.$lang['no_description'].')' : $attr->getDescription());
'('._('no description').')' : $attr->getDescription());
print '</tr>';
printf('<tr class="%s">',++$counter%2 ? 'odd' : 'even');
printf('<td><acronym title="Object Identier">%s</acronym></td>',$lang['oid']);
echo '<td><acronym title="Object Identier">OID</acronym></td>';
printf('<td>%s</td>',$attr->getOID());
break;
case 'obsolete':
printf('<td>%s</td>',$attr->getIsObsolete() ? '<b>'.$lang['yes'].'</b>' : $lang['no']);
printf('<td>%s</td>',_('Obsolete'));
printf('<td>%s</td>',$attr->getIsObsolete() ? '<b>'._('Yes').'</b>' : _('No'));
break;
case 'inherits':
printf('<td>%s</td>',_('Inherits from'));
print '<td>';
if (is_null($attr->getSupAttribute()))
printf('(%s)',$lang['none']);
printf('(%s)',_('none'));
else
printf('<a href="?server_id=%s&amp;view=%s&amp;viewvalue=%s">%s</a>',
@@ -183,23 +180,27 @@ switch($view) {
break;
case 'equality':
printf('<td>%s</td>',_('Equality'));
printf('<td>%s</td>',
is_null($attr->getEquality()) ? '('.$lang['not_specified'].')' :
is_null($attr->getEquality()) ? '('._('not specified').')' :
sprintf('<a href="?server_id=%s&amp;view=matching_rules&amp;viewvalue=%s">%s</a>',
$ldapserver->server_id,$attr->getEquality(),$attr->getEquality()));
break;
case 'ordering':
printf('<td>%s</td>',_('Ordering'));
printf('<td>%s</td>',
is_null($attr->getOrdering()) ? '('.$lang['not_specified'].')' : $attr->getOrdering());
is_null($attr->getOrdering()) ? '('._('not specified').')' : $attr->getOrdering());
break;
case 'substring_rule':
printf('<td>%s</td>',_('Substring Rule'));
printf('<td>%s</td>',
is_null($attr->getSubstr()) ? '('.$lang['not_specified'].')' : $attr->getSubstr());
is_null($attr->getSubstr()) ? '('._('not specified').')' : $attr->getSubstr());
break;
case 'syntax':
printf('<td>%s</td>',_('Syntax'));
print '<td>';
if (is_null($attr->getType())) {
@@ -216,58 +217,65 @@ switch($view) {
break;
case 'single_valued':
printf('<td>%s</td>',$attr->getIsSingleValue() ? $lang['yes'] : $lang['no']);
printf('<td>%s</td>',_('Single Valued'));
printf('<td>%s</td>',$attr->getIsSingleValue() ? _('Yes') : _('No'));
break;
case 'collective':
printf('<td>%s</td>',$attr->getIsCollective() ? $lang['yes'] : $lang['no']);
printf('<td>%s</td>',_('Collective'));
printf('<td>%s</td>',$attr->getIsCollective() ? _('Yes') : _('No'));
break;
case 'user_modification':
printf('<td>%s</td>',$attr->getIsNoUserModification() ? $lang['no'] : $lang['yes']);
printf('<td>%s</td>',_('User Modification'));
printf('<td>%s</td>',$attr->getIsNoUserModification() ? _('No') : _('Yes'));
break;
case 'usage':
printf('<td>%s</td>',$attr->getUsage() ? $attr->getUsage() : '('.$lang['not_specified'].')');
printf('<td>%s</td>',_('Usage'));
printf('<td>%s</td>',$attr->getUsage() ? $attr->getUsage() : '('._('not specified').')');
break;
case 'maximum_length':
printf('<td>%s</td>',_('Maximum Length'));
print '<td>';
if ( is_null($attr->getMaxLength()))
echo '('.$lang['not_applicable'].')';
echo '('._('not applicable').')';
else
printf('%s %s',number_format($attr->getMaxLength()),
$attr->getMaxLength()>1 ? $lang['characters'] : $lang['character']);
$attr->getMaxLength()>1 ? _('characters') : _('character'));
print '</td>';
break;
case 'aliases':
printf('<td>%s</td>',_('Aliases'));
print '<td>';
if (count($attr->getAliases()) == 0)
echo '('.$lang['none'].')';
echo '('._('none').')';
else
foreach ($attr->getAliases() as $alias_attr_name)
printf('<a href="?server_id=%s&amp;view=attributes&amp;viewvalue=%s">%s</a>',
$ldapserver->server_id,$alias_attr_name,$alias_attr_name);
$ldapserver->server_id,strtolower($alias_attr_name),$alias_attr_name);
print '</td>';
break;
case 'used_by_objectclasses':
printf('<td>%s</td>',_('Used by objectClasses'));
print '<td>';
if (count($attr->getUsedInObjectClasses()) == 0)
echo '('.$lang['none'].')';
echo '('._('none').')';
else
foreach ($attr->getUsedInObjectClasses() as $used_in_oclass)
printf('<a href="?server_id=%s&amp;view=objectClasses&amp;viewvalue=%s">%s</a> ',
$ldapserver->server_id,$used_in_oclass,$used_in_oclass);
$ldapserver->server_id,strtolower($used_in_oclass),$used_in_oclass);
print '</td>';
break;
@@ -288,14 +296,14 @@ switch($view) {
if (! $schema_matching_rules)
pla_error($schema_error_str);
printf('<small>%s</small><br />',$lang['jump_to_matching_rule']);
printf('<small>%s</small><br />',_('Jump to a matching rule'));
print '<form get="?">';
printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
print '<input type="hidden" name="view" value="matching_rules" />';
print '<form action="schema.php" method="get">';
printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
print '<input type="hidden" name="view" value="matching_rules" />';
print '<select name="viewvalue" onChange="submit()">';
print '<option value=""> - all -</option>';
print '<select name="viewvalue" onChange="submit()">';
print '<option value=""> - all -</option>';
foreach ($schema_matching_rules as $rule)
printf('<option value="%s" %s>%s</option>',
@@ -303,14 +311,14 @@ switch($view) {
($rule->getName() == $viewvalue ? 'selected': ''),
$rule->getName());
print '</select>';
print '</select>';
printf('<input type="submit" value="%s" />',$lang['go']);
printf('<input type="submit" value="%s" />',_('Go'));
print '</form>';
print '<table class="schema_attr" width="100%">';
printf('<tr><th>%s</th><th>%s</th><th>%s</th></tr>',
$lang['matching_rule_oid'],$lang['name'],$lang['used_by_attributes']);
_('Matching Rule OID'),_('Name'),_('Used by Attributes'));
$counter = 1;
@@ -328,7 +336,7 @@ switch($view) {
$desc .= sprintf(' (%s)',$rule->getDescription());
if ( $rule->getIsObsolete())
$desc .= sprintf(' <span style="color:red">%s</span>',$lang['obsolete']);
$desc .= sprintf(' <span style="color:red">%s</span>',_('Obsolete'));
printf('<tr class="%s">',$counter%2 ? 'odd' : 'even');
printf('<td>%s</td>',$oid);
@@ -337,11 +345,11 @@ switch($view) {
print '<td>';
if (count($rule->getUsedByAttrs()) == 0) {
printf('<center>(%s)</center><br /><br />',$lang['none']);
printf('<center>(%s)</center><br /><br />',_('none'));
} else {
print '<table><tr><td style="text-align: right">';
print '<form>';
print '<form action="schema.php" method="get">';
printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
print '<input type="hidden" name="view" value="attributes" />';
@@ -350,7 +358,7 @@ switch($view) {
printf('<option>%s</option>',$attr);
print '</select><br />';
printf('<input type="submit" value="%s" />',$lang['go']);
printf('<input type="submit" value="%s" />',_('Go'));
print '</form>';
print '</td></tr></table>';
}
@@ -363,181 +371,148 @@ switch($view) {
break;
case 'objectClasses':
$schema_oclasses = $ldapserver->SchemaObjectClasses(null,true);
$schema_oclasses = $ldapserver->SchemaObjectClasses();
if (! $schema_oclasses)
pla_error($schema_error_str);
?>
<small><?php echo $lang['jump_to_objectclass']; ?>:</small>
<form>
<input type="hidden" name="view" value="<?php echo $view; ?>" />
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<select name="viewvalue" onChange="submit()">
<option value=""> - all - </option>
printf('<small>%s:</small>',_('Jump to an objectClass'));
<?php
foreach( $schema_oclasses as $name => $oclass ) {
echo '<form action="schema.php" method="get">';
printf('<input type="hidden" name="view" value="%s" />',$view);
printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
echo '<select name="viewvalue" onChange="submit()">';
echo '<option value=""> - all - </option>';
foreach ($schema_oclasses as $name => $oclass)
printf('<option value="%s" %s>%s</option>',
$oclass->getName(),
(strcasecmp($oclass->getName(),$viewvalue) == 0 ? ' selected ':''),
$oclass->getName());
$name,$name == $viewvalue ? 'selected ': '',$oclass->getName());
}
?>
echo '</select>';
</select>
<input type="submit" value="<?php echo $lang['go']; ?>" />
</form>
printf('<input type="submit" value="%s" />',_('Go'));
echo '</form>';
<br />
echo '<br />';
<?php
flush();
foreach ($schema_oclasses as $name => $oclass) {
foreach ($oclass->getSupClasses() as $parent_name) {
if (isset($schema_oclasses[$parent_name]))
$schema_oclasses[$parent_name]->addChildObjectClass($oclass->getName());
}
if ( is_null($viewvalue) || ! strcasecmp($viewvalue,$oclass->getName())) {
if ( ! is_null($viewvalue))
if (is_null($viewvalue) || ($viewvalue == $name)) {
if (! is_null($viewvalue))
$viewed = true;
?>
<h4 class="oclass"><a name="<?php echo $name; ?>"><?php echo $oclass->getName(); ?></a></h4>
<h4 class="oclass_sub"><?php echo $lang['OID']; ?>: <b><?php echo $oclass->getOID(); ?></b></h4>
printf('<h4 class="oclass"><a name="%s">%s</a></h4>',$name,$oclass->getName());
printf('<h4 class="oclass_sub">%s: <b>%s</b></h4>',_('OID'),$oclass->getOID());
<?php if ($oclass->getDescription()) { ?>
<h4 class="oclass_sub"><?php echo $lang['desc']; ?>: <b><?php echo $oclass->getDescription(); ?></b></h4>
<?php } ?>
if ($oclass->getDescription())
printf('<h4 class="oclass_sub">%s: <b>%s</b></h4>',_('Description'),$oclass->getDescription());
<h4 class="oclass_sub"><?php echo $lang['type']; ?>: <b><?php echo $oclass->getType(); ?></b></h4>
printf('<h4 class="oclass_sub">%s: <b>%s</b></h4>',_('Type'),$oclass->getType());
<?php if ( $oclass->getIsObsolete()) { ?>
<h4 class="oclass_sub"><?php echo $lang['is_obsolete']; ?></h4>
<?php } ?>
<h4 class="oclass_sub"><?php echo $lang['inherits']; ?>: <b>
<?php
if ($oclass->getIsObsolete())
printf('<h4 class="oclass_sub">%s</h4>',_('This objectClass is obsolete.'));
printf('<h4 class="oclass_sub">%s: <b>',_('Inherits from'));
if (count($oclass->getSupClasses()) == 0)
printf('(%s)',$lang['none']);
printf('(%s)',_('none'));
else
foreach ($oclass->getSupClasses() as $i => $object_class) {
printf('<a title="%s" href="?server_id=%s&amp;view=%s&amp;viewvalue=%s">%s</a>',
$lang['jump_to_this_oclass'],$ldapserver->server_id,$view,htmlspecialchars($object_class),
_('Jump to this objectClass definition'),
$ldapserver->server_id,$view,strtolower(htmlspecialchars($object_class)),
htmlspecialchars($object_class));
if ($i < count($oclass->getSupClasses()) - 1)
print ', ';
echo ', ';
}
?>
</b></h4>
<h4 class="oclass_sub"><?php echo $lang['parent_to']; ?>: <b>
<?php
echo '</b></h4>';
printf('<h4 class="oclass_sub">%s: <b>',_('Parent to'));
if (strcasecmp($oclass->getName(),'top') == 0)
printf('(<a href="schema.php?view=objectClasses&amp;server_id=%s">all</a>)',$ldapserver->server_id);
elseif (count($oclass->getChildObjectClasses()) == 0)
printf('(%s)',$lang['none']);
printf('(%s)',_('none'));
else
foreach ($oclass->getChildObjectClasses() as $i => $object_class) {
printf('<a title="%s" href="?server_id=%s&view=%s&amp;viewvalue=%s">%s</a>',
$lang['jump_to_this_oclass'],$ldapserver->server_id,$view,htmlspecialchars($object_class),
printf('<a title="%s" href="?server_id=%s&amp;view=%s&amp;viewvalue=%s">%s</a>',
_('Jump to this objectClass definition'),
$ldapserver->server_id,$view,strtolower(htmlspecialchars($object_class)),
htmlspecialchars($object_class));
if ( $i < count($oclass->getChildObjectClasses()) - 1)
print ', ';
echo ', ';
}
?>
echo '</b></h4>';
</b></h4>
echo '<table width="100%" class="schema_oclasses">';
echo '<tr>';
printf('<th width="50%%"><b>%s</b></th>',_('Required Attributes'));
printf('<th width="50%%"><b>%s</b></th>',_('Optional Attributes'));
echo '</tr>';
<table width="100%" class="schema_oclasses">
<tr>
<th width="50%"><b><?php echo $lang['required_attrs']; ?></b></th>
<th width="50%"><b><?php echo $lang['optional_attrs']; ?></b></th>
</tr>
<tr>
<td>
<?php
echo '<tr>';
echo '<td>';
if (count($oclass->getMustAttrs($schema_oclasses)) > 0) {
print '<ul class="schema">';
echo '<ul class="schema">';
foreach ($oclass->getMustAttrs($schema_oclasses) as $attr) {
print '<li>';
echo '<li>';
printf('<a href="?server_id=%s&amp;view=attributes&amp;viewvalue=%s">%s</a>',
$ldapserver->server_id,rawurlencode($attr->getName()),htmlspecialchars($attr->getName()));
$ldapserver->server_id,rawurlencode(strtolower($attr->getName())),htmlspecialchars($attr->getName()));
if ($attr->getSource() != $oclass->getName()) {
printf('<br /><small>&nbsp;&nbsp;(%s ',$lang['inherited_from']);
printf('<a href="?server_id=%s&amp;view=objectClasses&amp;viewvalue=">%s</a>',
$ldapserver->server_id,$attr->getSource(),$attr->getSource());
print ')</small>';
echo '<br />';
printf('<small>&nbsp;&nbsp;(%s <a href="?server_id=%s&amp;view=objectClasses&amp;viewvalue=%s">%s</a>)</small>',
_('Inherited from'),$ldapserver->server_id,strtolower($attr->getSource()),$attr->getSource());
}
print '</li>';
echo '</li>';
}
print '</ul>';
echo '</ul>';
} else
printf('<center>(%s)</center>',$lang['none']);
printf('<center>(%s)</center>',_('none'));
?>
</td>
<td width="50%">
echo '</td>';
echo '<td width="50%">';
<?php
if (count($oclass->getMayAttrs($schema_oclasses)) > 0) {
print '<ul class="schema">';
echo '<ul class="schema">';
foreach ($oclass->getMayAttrs($schema_oclasses) as $attr) {
print '<li>';
echo '<li>';
printf('<a href="?server_id=%s&amp;view=attributes&amp;viewvalue=%s">%s</a>',
$ldapserver->server_id,rawurlencode($attr->getName()),htmlspecialchars($attr->getName()));
$ldapserver->server_id,rawurlencode(strtolower($attr->getName())),htmlspecialchars($attr->getName()));
if ($attr->getSource() != $oclass->getName()) {
printf('<br /><small>&nbsp;&nbsp; (%s ',$lang['inherited_from']);
printf('<a href="?server_id=%s&amp;view=objectClasses&amp;viewvalue=%s">%s</a>',
$ldapserver->server_id,$attr->getSource(),$attr->getSource());
print ')</small>';
echo '<br />';
printf('<small>&nbsp;&nbsp; (%s <a href="?server_id=%s&amp;view=objectClasses&amp;viewvalue=%s">%s</a>)</small>',
_('Inherited from'),$ldapserver->server_id,strtolower($attr->getSource()),$attr->getSource());
}
print '</li>';
echo '</li>';
}
print '</ul>';
echo '</ul>';
} else
printf('<center>(%s)</center>',$lang['none']);
?>
printf('<center>(%s)</center>',_('none'));
</ul>
</td>
</tr>
</table>
<?php
echo '</td>';
echo '</tr>';
echo '</table>';
}
} /* End foreach objectClass */
break;
}
if (! is_null( $viewvalue ) && ! $viewed)
pla_error(sprintf($lang['no_such_schema_item'],htmlspecialchars($viewvalue)));
if (! is_null($viewvalue) && ! $viewed)
pla_error(sprintf(_('No such schema item: "%s"'),htmlspecialchars($viewvalue)));
?>
</body>
</html>
echo '</body>';
echo '</html>';

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/search.php,v 1.71.2.2 2005/11/08 08:09:41 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/search.php,v 1.76 2006/04/29 06:49:31 wurley Exp $
/**
* Perform LDAP searches and draw the advanced/simple search forms
@@ -18,166 +18,148 @@
/**
*/
define('SIZE_LIMIT_EXCEEDED',4);
require './common.php';
if( isset($ldapserver) && ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
if (isset($ldapserver) && ! $ldapserver->haveAuthInfo())
pla_error(_('Not enough information to login to server. Please check your configuration.'));
// Output format, table or list?
$result_formats = array( 'list', 'table' );
$format = isset( $_GET['format'] ) ? $_GET['format'] : $config->GetValue('search','display');
# Output format, table or list?
$result_formats = array('list','table');
$format = isset($_GET['format']) ? $_GET['format'] : $config->GetValue('search','display');
if( ! in_array( $format, $result_formats ) )
if (! in_array($format,$result_formats))
$format = 'list';
// build the server drop-down html and JavaScript array (for base_dns)
# build the server drop-down html and JavaScript array (for base_dns)
$js_on_change_string = '';
if( isset( $_GET['form'] ) && $_GET['form'] == 'advanced' )
if (isset($_GET['form']) && $_GET['form'] == 'advanced')
$js_on_change_string =
'onChange="document.forms[0].base_dn.value=servers[document.forms[0].server_id.value].base_dn"';
if (isset($ldapserver)) {
$server_menu_html = server_select_list($ldapserver->server_id,true,'server_id',$js_on_change_string);
$server_info_list = server_info_list();
$server_menu_html = server_select_list($ldapserver->server_id,true,'server_id',$js_on_change_string);
$server_info_list = server_info_list();
}
$filter = isset( $_GET['filter'] ) ? clean_search_vals($_GET['filter']) : null;
$attr = isset( $_GET['attribute'] ) ? $_GET['attribute'] : null;
$filter = isset($_GET['filter']) ? clean_search_vals($_GET['filter']) : null;
$attr = isset($_GET['attribute']) ? $_GET['attribute'] : null;
// grab the base dn for the search
if( isset( $_GET['base_dn'] ) && $_GET['base_dn'] ) {
# grab the base dn for the search
if (isset($_GET['base_dn']) && $_GET['base_dn']) {
$base_dn = $_GET['base_dn'];
$base_dn_is_invalid = false;
$base_dn_does_not_exist = false;
if( trim( $base_dn ) )
if( ! is_dn_string( $base_dn ) )
if (trim($base_dn))
if (! is_dn_string($base_dn))
$base_dn_is_invalid = true;
elseif( ! dn_exists( $ldapserver, $base_dn ) )
elseif (! $ldapserver->dnExists($base_dn))
$base_dn_does_not_exist = true;
$base_dns = array($base_dn);
} else
if (isset($ldapserver))
$base_dns = $ldapserver->getBaseDN();
$criterion = isset( $_GET['criterion'] ) ? $_GET['criterion'] : null;
$criterion = isset($_GET['criterion']) ? $_GET['criterion'] : null;
if (isset($_GET['form']))
$_SESSION['form'] = $_GET['form'];
$form = isset( $_SESSION['form'] ) ? $_SESSION['form'] : null;
$scope = isset( $_GET['scope'] ) ? $_GET['scope'] : 'sub';
$form = isset($_SESSION['form']) ? $_SESSION['form'] : null;
$scope = isset($_GET['scope']) ? $_GET['scope'] : 'sub';
include './header.php';
?>
<body>
<center>
echo '<body><center>';
<?php
if( $form == 'advanced' ) {
if ($form == 'advanced')
require LIBDIR.'search_form_advanced.php';
} elseif( $form == 'predefined' ) {
elseif ($form == 'predefined')
require LIBDIR.'search_form_predefined.php';
} else /* Draw simple search form */ {
// process_config();
# Draw simple search form
else
require LIBDIR.'search_form_simple.php';
}
?>
</center>
<?php
echo '</center>';
flush();
if( isset( $_GET['search'] ) ) {
if( $form == 'advanced' ) {
if (isset( $_GET['display_attrs'])) {
if (isset($_GET['search'])) {
if ($form == 'advanced') {
if (isset($_GET['display_attrs']))
$search_result_attributes = explode(',',rawurldecode(preg_replace('/\s+/','',rawurldecode($_GET['display_attrs']))));
} else {
else
$search_result_attributes = $config->GetValue('search','result_attributes');
}
// $search_result_attributes = isset( $_GET['display_attrs'] ) ?
// rawurldecode( $_GET['display_attrs'] ) : ( isset( $search_result_attributes ) ?
// $search_result_attributes : "dn, cn" );
//process_config();
} else {
$search_result_attributes = $config->GetValue('search','result_attributes');
}
// do we have enough authentication information for the specified server_id
if( ! $ldapserver->haveAuthInfo() ) {
# do we have enough authentication information for the specified server_id
if (! $ldapserver->haveAuthInfo()) {
$login_url = sprintf('login_form.php?server_id=%s&amp;redirect=%s',
$ldapserver->server_id,rawurlencode($_SERVER['REQUEST_URI'])); ?>
<center>
<br />
<?php echo $lang['you_have_not_logged_into_server']; ?><br />
<a href="<?php echo $login_url; ?>"><?php echo $lang['click_to_go_to_login_form']; ?></a>.
</center>
$ldapserver->server_id,rawurlencode($_SERVER['REQUEST_URI']));
<?php
printf('<center><br />%s <br /><a href="%s">%s</a>.</center>',
_('You have not logged into the selected server yet, so you cannot perform searches on it.'),$login_url,_('Click here to go to the login form'));
exit;
}
if( isset( $_GET['predefined'] ) ) {
if (isset($_GET['predefined'])) {
$predefined = $_GET['predefined'];
if( is_numeric( $predefined ) ) {
$query = get_cleaned_up_predefined_search( $predefined );
if (is_numeric($predefined)) {
$query = get_cleaned_up_predefined_search($predefined);
$search_result_attributes = explode(', ',$query['attributes']);
$search_attributes_display = $search_result_attributes;
$search_attributes = $search_result_attributes;
//process_config();
$filter = $query['filter'];
$scope = $query['scope'];
if (is_array($query['base']))
if (! trim($query['base']))
$query['base'] = $ldapserver->getBaseDN();
elseif (is_array($query['base']))
$base_dns = $query['base'];
else
$base_dns = array($query['base']);
$ldapserver = $ldapservers->Instance($query['server']);
}
} else {
$predefined = '';
}
if( $filter ) {
// if they are using the simple search form, build an LDAP search filter from their input
if( $form == 'simple' & ! is_numeric( $predefined ) ) {
if ($filter) {
# if they are using the simple search form, build an LDAP search filter from their input
if ($form == 'simple' & ! is_numeric($predefined)) {
switch( $criterion ) {
switch ($criterion) {
case 'starts with':
// to fix bug 789113
if( $filter == "*" )
$filter = "";
if ($filter == '*')
$filter = '';
$filter = "($attr=$filter*)";
break;
case 'contains':
// to fix bug 789113
if( $filter == "*" )
if ($filter == '*')
$filter = "($attr=*)";
else
$filter = "($attr=*$filter*)";
break;
case 'ends with':
// to fix bug 789113
if( $filter == "*" )
$filter = "";
if ($filter == '*')
$filter = '';
$filter = "($attr=*$filter)";
break;
@@ -191,201 +173,190 @@ if( isset( $_GET['search'] ) ) {
break;
default:
pla_error( $lang['unrecognized_criteria_option'] .
htmlspecialchars( $criterion ) .
$lang['if_you_want_to_add_criteria'] );
pla_error(_('Unrecognized criteria option: ').htmlspecialchars($criterion)._('If you want to add your own criteria to the list. Be sure to edit search.php to handle them. Quitting.'));
}
}
echo "<center>" . $lang['searching'] . "</center>\n";
printf('<center>%s</center>',_('Searching...'));
flush();
// prevent script from bailing early on a long delete
@set_time_limit( 0 );
# prevent script from bailing early on a long delete
@set_time_limit(0);
$size_limit = $config->GetValue('search','size_limit');
// Sanity check
if( $size_limit < 1 )
# Sanity check
if ($size_limit < 1)
$size_limit = 1;
$page = isset( $_GET['page'] ) ? $_GET['page'] : 0;
$page = isset($_GET['page']) ? $_GET['page'] : 0;
$time_start = utime();
$time_elapsed = 0;
foreach ($base_dns as $base_dn) {
if (! dn_exists( $ldapserver, $base_dn ) ) {
if (DEBUG_ENABLED)
debug_log('BaseDN [%s] skipped as it doesnt exist in [%s].',1,
if (! $ldapserver->dnExists($base_dn)) {
if (DEBUG_ENABLED)
debug_log('BaseDN [%s] skipped as it doesnt exist in [%s].',64,
$base_dn,$ldapserver->server_id);
continue;
} else {
if (DEBUG_ENABLED)
debug_log('Search with base DN [%s]',9,$base_dn);
if (DEBUG_ENABLED)
debug_log('Search with base DN [%s]',64,$base_dn);
}
if( $scope == 'base' )
$results = @ldap_read( $ldapserver->connect(false), $base_dn, $filter, $search_result_attributes,
0, 0, 0, $config->GetValue('deref','search') );
$results = $ldapserver->search(null,dn_escape($base_dn),$filter,$search_result_attributes,$scope,true,$config->GetValue('deref','search'));
elseif( $scope == 'one' )
$results = @ldap_list( $ldapserver->connect(false), $base_dn, $filter, $search_result_attributes,
0, 0, 0, $config->GetValue('deref','search') );
if ((! $results) && $ldapserver->errno())
pla_error(_('Encountered an error while performing search.'),$ldapserver->error(),$ldapserver->errno());
else // scope == 'sub'
$results = @ldap_search( $ldapserver->connect(false), $base_dn, $filter, $search_result_attributes,
0, 0, 0, $config->GetValue('deref','search') );
$errno = $ldapserver->errno();
$errno = @ldap_errno( $ldapserver->connect(false) );
$time_end = utime();
$time_elapsed += round($time_end-$time_start,2);
$count = count($results);
if( ! $results ) {
pla_error( $lang['error_performing_search'],
$ldapserver->error(), $ldapserver->errno() );
}
$time_end = utime();
$time_elapsed += round( $time_end - $time_start, 2 );
$count = @ldap_count_entries( $ldapserver->connect(), $results );
$start_entry = $page * $size_limit;
$end_entry = min( $start_entry + $size_limit + 1, $count+1 );
?>
$start_entry = $page * $size_limit;
$end_entry = min($start_entry+$size_limit+1,$count+1);
?>
<table class="search_header">
<tr>
<td style="vertical-align: top">
<nobr><?php echo $lang['entries_found'] . ' &nbsp;<b>' . number_format( $count ) ?></b>&nbsp;</nobr>
<small><nobr>(<?php echo $time_elapsed; ?> <?php echo $lang['seconds']; ?>)</nobr></small>
<nobr><?php echo _('Entries found: ') . ' &nbsp;<b>' . number_format($count) ?></b>&nbsp;</nobr>
<nobr><small>(<?php echo $time_elapsed; ?> <?php echo _('seconds'); ?>)</small></nobr>
</td>
<td style="text-align: right">
<small>
<nobr>
<small>
<?php
printf('[ <a href="export_form.php?server_id=%s&amp;scope=%s&amp;dn=%s&amp;filter=%s&amp;attributes=%s" /><img src="images/save.png" /> %s</a> ]',
$ldapserver->server_id,$scope,urlencode($base_dn),urlencode($filter),urlencode(join(', ',$search_result_attributes)),$lang['export_results']);
printf('[ <a href="export_form.php?server_id=%s&amp;scope=%s&amp;dn=%s&amp;filter=%s&amp;attributes=%s"><img src="images/save.png" alt="Save" /> %s</a> ]',
$ldapserver->server_id,htmlspecialchars($scope),urlencode($base_dn),urlencode($filter),
urlencode(join(', ',$search_result_attributes)),_('export results'));
printf('[ <img src="images/rename.png" /> %s:',$lang['format']);
printf('[ <img src="images/rename.png" /> %s:',_('Format'));
foreach( $result_formats as $f ) {
echo '&nbsp;';
foreach ($result_formats as $f) {
echo '&nbsp;';
if( $format == $f ) {
echo '<b>' . $lang[$f] . '</b>';
if ($format == $f) {
printf('<b>%s</b>',_($f));
} else {
$php_self = $_SERVER['PHP_SELF'];
$query_string = array_to_query_string( $_GET, array( 'format' ) );
$query_string .= "&amp;format=$f";
echo "<a href=\"$php_self?$query_string\">" . $lang[$f] . "</a>";
} else {
$query_string = array_to_query_string($_GET,array('format'));
$query_string .= "&amp;format=$f";
printf('<a href="search.php?%s">%s</a>',$query_string,_($f));
}
}
} ?>
?>
]
</small>
</nobr>
<?php if( $form == 'simple' || $form == 'predefined' ) { ?>
<br /><nobr><small><?php echo $lang['filter_performed']; ?>
<?php echo htmlspecialchars( $filter ); ?></small></nobr>
<?php } ?>
<?php if ($form == 'simple' || $form == 'predefined') { ?>
<br /><nobr><small><?php echo _('Base DN: '); ?>
<b><?php echo htmlspecialchars($base_dn); ?></b></small></nobr>
<br /><nobr><small><?php echo _('Filter performed: '); ?>
<b><?php echo htmlspecialchars($filter); ?></b></small></nobr>
<?php } ?>
</td>
</tr>
</table>
<?php
// The LDAP error code for the size limit exceeded error.
define( 'SIZE_LIMIT_EXCEEDED', 4 );
if( $errno && $errno == SIZE_LIMIT_EXCEEDED ) {
echo "<br /><center><small style=\"color:red; white-space: nowrap\">" . $lang['size_limit_exceeded'] . "</small></center><br />\n";
}
# The LDAP error code for the size limit exceeded error.
if ($errno && $errno == SIZE_LIMIT_EXCEEDED)
printf('<br /><center><small style="color:red; white-space: nowrap">%s</small></center><br />',_('Notice, search size limit exceeded.'));
// Draw the paging links
$pager_html = '';
$total_pages = $count / $size_limit;
$results_per_page = $size_limit;
# Draw the paging links
$pager_html = '';
$total_pages = $count / $size_limit;
$results_per_page = $size_limit;
if( $count > $size_limit ) {
echo sprintf( $lang['showing_results_x_through_y'], "<b>" . number_format($start_entry+1) . "</b>", "<b>" . number_format($end_entry-1) . "</b>" ) . "<br />\n";
if ($count > $size_limit) {
printf(_('Showing results %s through %s.').'<br />',
'<b>'.number_format($start_entry+1).'</b>','<b>'.number_format($end_entry-1).'</b>');
$php_self = $_SERVER['PHP_SELF'];
if( $page != 0 ) {
$query_string = array_to_query_string( $_GET, array( 'page' ) );
$query_string .= '&page=' . ($page-1);
$pager_html .= "<a title=\"" . sprintf( $lang['page_n'],$page ) . "\" href=\"$php_self?$query_string\">&lsaquo;&lsaquo;</a>";
} else {
$pager_html .= "&lsaquo;&lsaquo;";
}
$pager_html .= '&nbsp;&nbsp;';
// for large search results where we page beyone the first 20 pages,
// print elipsis instead of making the pager be super wide.
$elipsis_printed = false;
for( $i=0; $i<$count; $i+=$size_limit ) {
$page_num = $i/$size_limit;
if( $count > $size_limit * 20 && abs( $page_num - $page ) > 10 ) {
if( ! $elipsis_printed ) {
$pager_html .= '...&nbsp;&nbsp;';
$elipsis_printed = true;
}
} else if( $page == $page_num ) {
$pager_html .= '<b>' . ($page_num + 1) . '</b>';
$pager_html .= '&nbsp;&nbsp;';
$elipsis_printed = false;
if ($page != 0) {
$query_string = array_to_query_string($_GET,array('page'));
$query_string .= '&page=' . ($page-1);
$pager_html .= sprintf('<a title="'._('Page %d').'" href="search.php?%s">&lsaquo;&lsaquo;</a>',$page,$query_string);
} else {
$query_string = array_to_query_string( $_GET, array( 'page' ) );
$query_string .= '&page=' . $page_num;
$pager_html .= "<a href=\"$php_self?$query_string\">" . ($page_num+1) . "</a>";
$pager_html .= '&nbsp;&nbsp;';
$elipsis_printed = false;
$pager_html .= "&lsaquo;&lsaquo;";
}
$pager_html .= '&nbsp;&nbsp;';
// for large search results where we page beyone the first 20 pages,
// print elipsis instead of making the pager be super wide.
$elipsis_printed = false;
for ($i=0;$i<$count;$i+=$size_limit) {
$page_num = $i/$size_limit;
if ($count > $size_limit * 20 && abs($page_num-$page) > 10) {
if (! $elipsis_printed) {
$pager_html .= '...&nbsp;&nbsp;';
$elipsis_printed = true;
}
} elseif ($page == $page_num) {
$pager_html .= '<b>' . ($page_num + 1) . '</b>';
$pager_html .= '&nbsp;&nbsp;';
$elipsis_printed = false;
} else {
$query_string = array_to_query_string($_GET,array('page'));
$query_string .= '&page=' . $page_num;
$pager_html .= "<a href=\"search.php?$query_string\">" . ($page_num+1) . "</a>";
$pager_html .= '&nbsp;&nbsp;';
$elipsis_printed = false;
}
}
if ($page+1 < $total_pages) {
$query_string = array_to_query_string($_GET,array('page'));
$query_string .= '&page=' . ($page+1);
$pager_html .= "<a title=\"" . sprintf(_('Page %d'),($page+2))."\" href=\"search.php?$query_string\">&rsaquo;&rsaquo;</a>";
} else {
$pager_html .= "&rsaquo;&rsaquo;";
}
}
if( $page+1 < $total_pages ) {
$query_string = array_to_query_string( $_GET, array( 'page' ) );
$query_string .= '&page=' . ($page+1);
$pager_html .= "<a title=\"" . sprintf( $lang['page_n'],($page+2) ) . "\" href=\"$php_self?$query_string\">&rsaquo;&rsaquo;</a>";
if (0 == $count)
printf('<center><h2>%s</h2></center>',_('The search found no results.'));
} else {
$pager_html .= "&rsaquo;&rsaquo;";
else {
if (trim($pager_html))
printf('<center>%s</center>',$pager_html);
echo '<br />';
flush();
if ($format == 'list')
require LIBDIR.'search_results_list.php';
elseif ($format == 'table')
require LIBDIR.'search_results_table.php';
else
pla_error(sprintf(_('Unrecognized search result format: %s'),htmlspecialchars($format)));
echo '<br />';
if (trim($pager_html))
printf('<center>%s</center>',$pager_html);
}
}
if( 0 == $count )
echo '<center><h2>' . $lang['no_results'] . '</h2></center>';
printf('<br /><br /><div class="search_result"><center><small><span style="font-weight:normal;font-size:75%%;">%s <b>%s</b> %s.</span></small></center></div>',
_('Search performed by phpLDAPadmin in'),$time_elapsed,_('seconds'));
else {
echo '<center>' . $pager_html . '</center><br />';
flush();
if( $format == 'list' )
// $lang['list'] - this is here so check_lang_files doesnt prompt us to remove this $lang variable.
require LIBDIR.'search_results_list.php';
elseif( $format == 'table' )
// $lang['table'] - this is here so check_lang_files doesnt prompt us to remove this $lang variable.
require LIBDIR.'search_results_table.php';
else
pla_error( sprintf( $lang['unrecoginzed_search_result_format'], htmlspecialchars( $format ) ) );
echo '<br /><center>' . $pager_html . '</center>';
}
} ?>
<br /><br />
<div class="search_result"><center><span style="font-weight:normal;font-size:75%;">
<?php echo $lang['search_duration']; ?>
<b><?php echo $time_elapsed; ?></b> <?php echo $lang['seconds'];?>.</small></center></div>
<?php }
} ?>
</body>
</html>
}
}
echo '</body></html>';
?>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/server_info.php,v 1.21.2.1 2005/10/09 09:07:21 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/server_info.php,v 1.24 2006/04/29 06:49:31 wurley Exp $
/**
* Fetches and displays all information that it can from the specified server
@@ -47,118 +47,84 @@ $root_dse_attributes = array(
);
if (! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
pla_error( _('Not enough information to login to server. Please check your configuration.') );
# Fetch basic RootDSE attributes using the + and *.
$r = @ldap_read($ldapserver->connect(),'','objectClass=*',array('+','*'));
if (! $r)
pla_error($lang['could_not_fetch_server_info'],
$ldapserver->error(),$ldapserver->errno());
$entry = @ldap_first_entry($ldapserver->connect(),$r);
if (! $entry)
pla_error($lang['could_not_fetch_server_info'],
$ldapserver->error(),$ldapserver->errno());
$attrs = @ldap_get_attributes($ldapserver->connect(),$entry);
$count = @ldap_count_entries($ldapserver->connect(),$r);
$attrs = array_pop($ldapserver->search(null,'','objectClass=*',array('+','*'),'base'));
/* After fetching the "basic" attributes from the RootDSE, try fetching the
more advanced ones (from ths list). Add them to the list of attrs to display
if they weren't already fetched. (this was added as a work-around for OpenLDAP
on RHEL 3. */
$r2 = @ldap_read($ldapserver->connect(),'','objectClass=*',$root_dse_attributes);
if ($r2) {
$entry2 = @ldap_first_entry($ldapserver->connect(),$r);
$attrs2 = @ldap_get_attributes($ldapserver->connect(),$entry);
$attrs2 = array_pop($ldapserver->search(null,'','objectClass=*',$root_dse_attributes,'base'));
for ($i = 0; $i < $attrs2['count']; $i++) {
$attr = $attrs2[$i];
if (! isset($attrs[$attr])) {
if (is_array($attrs2))
foreach ($attrs2 as $attr => $values)
if (! isset($attrs[$attr]))
$attrs[$attr] = $attrs2[$attr];
$attrs['count']++;
$attrs[] = $attr;
}
}
}
unset($attrs2,$entry,$entry2);
include './header.php';
?>
<body>
<h3 class="title"><?php echo $lang['server_info_for'] . htmlspecialchars($ldapserver->name); ?></h3>
<h3 class="subtitle"><?php echo $lang['server_reports_following']; ?></h3>
echo '<body>';
printf('<h3 class="title">%s%s</h3>',_('Server info for: '),htmlspecialchars($ldapserver->name));
printf('<h3 class="subtitle">%s</h3>',_('Server reports the following information about itself'));
<?php if ($count == 0 || $attrs['count'] == 0) { ?>
<br />
<br />
<center><?php echo $lang['nothing_to_report']; ?></center>
<?php
if (count($attrs) == 0) {
echo '<br /><br />';
printf('<center>%s</center>',_('This server has nothing to report.'));
exit;
}
?>
<table class="edit_dn">
echo '<table class="edit_dn">';
foreach ($attrs as $attr => $values) {
if ($attr == 'dn')
continue;
<?php
for ($i = 0; $i < $attrs['count']; $i++ ) {
$attr = $attrs[$i];
$schema_href = sprintf('schema.php?server_id=%s&amp;view=attributes&amp;viewvalue=%s',$ldapserver->server_id,$attr);
?>
<tr>
<td class="attr">
<b>
<a title="<?php echo sprintf($lang['attr_name_tooltip'],$attr); ?>"
href="<?php echo $schema_href; ?>"><?php echo htmlspecialchars($attr); ?></a>
</b>
</td>
</tr>
echo '<tr><td class="attr">';
printf('<b><a title="'._('Click to view the schema defintion for attribute type \'%s\'').'" href="%s">%s</a></b>',
$attr,$schema_href,htmlspecialchars($attr));
echo '</td></tr>';
<tr>
<td class="val">
<table class="edit_dn">
echo '<tr><td class="val">';
echo '<table class="edit_dn">';
<?php
for ($j = 0; $j < $attrs[$attr]['count']; $j++) {
if (is_array($values))
foreach ($values as $value) {
$oidtext = '';
print '<tr>';
if (preg_match('/^[0-9]+\.[0-9]+/',$attrs[$attr][$j])) {
printf('<td width=5%%><acronym title="%s"><img src="images/rfc.png"></acronym></td>',
htmlspecialchars($attrs[$attr][$j]));
if (preg_match('/^[0-9]+\.[0-9]+/',$value)) {
printf('<td width=5%%><acronym title="%s"><img src="images/rfc.png" /></acronym></td>',
htmlspecialchars($value));
if ($oidtext = support_oid_to_text($attrs[$attr][$j]))
if ($oidtext = support_oid_to_text($value))
if (isset($oidtext['ref']))
printf('<td><acronym title="%s">%s</acronym></td>',$oidtext['ref'],$oidtext['title']);
else
printf('<td>%s</td>',$oidtext['title']);
else
printf('<td><small>%s</small></td>',$attrs[$attr][$j]);
if ($value)
printf('<td><small>%s</small></td>',$value);
} else {
printf('<td>%s</td>',htmlspecialchars($attrs[$attr][$j]));
printf('<td>%s</td>',htmlspecialchars($value));
}
print '</tr>';
if (isset($oidtext['desc']))
if (isset($oidtext['desc']) && trim($oidtext['desc']))
printf('<tr><td colspan=2><small>%s</small></td></tr>',$oidtext['desc']);
}
}
else
printf('<tr><td>%s</td></tr>',htmlspecialchars($values));
echo '</table>';
echo '</td></tr>';
}
echo '</table></body></html>';
?>
</table>
</td>
</tr>
<?php } ?>
</table>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -18,8 +18,6 @@ if (! isset($ldapserver))
include './header.php';
global $lang;
# If $session_timeout not defined, use ( session_cache_expire() - 1 )
$session_timeout = $ldapserver->session_timeout ? $ldapserver->session_timeout : session_cache_expire()-1;
?>
@@ -28,11 +26,11 @@ $session_timeout = $ldapserver->session_timeout ? $ldapserver->session_timeout :
<br />
<br />
<center>
<b><?php printf('%s %s %s',$lang['session_timed_out_1'],$session_timeout,$lang['session_timed_out_2']); ?></b>
<b><?php printf('%s %s %s',_('Your Session timed out after'),$session_timeout,_('min. of inactivity. You have been automatically logged out.')); ?></b>
<br />
<br />
<?php echo $lang['log_back_in']; ?><br />
<a href="login_form.php?server_id=<?php echo $ldapserver->server_id; ?>"><?php echo $lang['login_link']; ?></a>
<?php echo _('To log back in please click on the following link:'); ?><br />
<a href="login_form.php?server_id=<?php echo $ldapserver->server_id; ?>"><?php echo _('Login...'); ?></a>
</center>
</body>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/tree.php,v 1.88 2005/09/25 16:11:44 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/tree.php,v 1.91 2006/01/03 20:39:58 wurley Exp $
/**
* This script displays the LDAP tree for all the servers that you have
@@ -19,101 +19,96 @@
*/
require './common.php';
no_expire_header();
// no expire header stuff
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
// This allows us to display large sub-trees without running out of time.
# This allows us to display large sub-trees without running out of time.
@set_time_limit( 0 );
// do we not have a tree and tree icons yet? Build a new ones.
initialize_session_tree();
// get the tree and tree icons.
$tree = $_SESSION['tree'];
$tree_icons = $_SESSION['tree_icons'];
// Test to see if any have timedout.
// Initialize array of recently timed out servers
$recently_timed_out_servers = array();
// Set a default META REFRESH value in sec. before determining it
$meta_refresh_variable = ( session_cache_expire()-1 )*60;
if (isset($_SESSION['activity']['rightframe_server_id']))
$rightframe_server_id = $_SESSION['activity']['rightframe_server_id'];
$rightframerefresh = false;
foreach( $ldapservers->GetServerList() as $server_id ) {
foreach ($ldapservers->GetServerList() as $server_id) {
$ldapserver = $ldapservers->Instance($server_id);
# Test to see if we should log out the user due to the timeout.
if ($ldapserver->haveAuthInfo()) {
if ($ldapserver->haveAuthInfo() && $ldapserver->auth_type != 'config') {
/* If time out value has been reached:
- log out user
- put $server_id in array of recently timed out servers */
if (session_timed_out($ldapserver))
- log out user
- put $server_id in array of recently timed out servers */
if (session_timed_out($ldapserver)) {
array_push($recently_timed_out_servers, $server_id);
/* if the timeout value is less than the previous $meta_refresh_variable value
set $meta_refresh_variable to $ldapserver->session_timeout */
if (($ldapserver->session_timeout*60) < $meta_refresh_variable )
# If $ldapserver->server_id equal $rightframe_server_id load timeout page on right frame
if ($ldapserver->server_id == $rightframe_server_id)
$rightframerefresh = true;
/* Otherwise calculate a new refresh value. If the timeout value is less than the previous
$meta_refresh_variable value set $meta_refresh_variable to $ldapserver->session_timeout */
} else
$meta_refresh_variable = $ldapserver->session_timeout*60;
}
}
/* Close the session for faster page loading (we're done with session data anyway).
Unfortunately, now that we dont show a plus '+' for leafs in a tree, we need to keep
the session open, so that if we create an entry, it'll cause the refresh of the tree view.
Hope this doesnt affect performance...? */
// pla_session_close();
include './header.php';
echo '<body>';
if ($rightframerefresh) {
?>
<script type="text/javascript" language="javascript">
<!--
parent.right_frame.location.href = 'timeout.php?server_id=<?php echo $rightframe_server_id; ?>';
//-->
</script>
<?php
}
?>
<body>
<!-- # PHP layers menu. -->
<script type="text/javascript" language="javascript" src="js/phplayersmenu/libjs/layersmenu-browser_detection.js"></script>
<script type="text/javascript" language="javascript" src="js/phplayersmenu/libjs/layerstreemenu-cookies.js"></script>
<?php
$bug_href = get_href( 'add_bug' );
$feature_href = get_href( 'add_rfe' );
$donate_href = get_href( 'donate' );
$help_href = get_href( 'help' );
?>
printf('<h3 class="subtitle" style="margin:0px">phpLDAPadmin - %s</h3>',pla_version());
<h3 class="subtitle" style="margin:0px">phpLDAPadmin - <?php echo pla_version(); ?></h3>
echo "\n\n";
echo '<!-- Links at the top of the tree viewer -->';
echo '<table class="edit_dn_menu" width=100%><tr>';
printf('<td><img src="images/home.png" alt="%s" /></td>',_('Home'));
printf('<td width=50%%><nobr><a href="welcome.php" target="right_frame">%s</a></nobr></td>',_('Home'));
printf('<td><img src="images/trash.png" alt="%s" /></td>',_('Purge caches'));
printf('<td width=50%%><nobr><a href="purge_cache.php" target="right_frame" title="%s">%s</a></nobr></td>',_('Purge all cached data in phpLDAPadmin, including server schemas.'),_('Purge caches'));
echo '</tr><tr>';
<!-- Links at the top of the tree viewer -->
<table class="edit_dn_menu" width=100%>
<tr>
<td><img src="images/home.png" alt="<?php echo $lang['home']; ?>" /></td>
<td width=50%><nobr><a href="welcome.php" target="right_frame"><?php echo $lang['home']; ?></a></nobr></td>
<td><img src="images/trash.png" alt="<?php echo $lang['purge_cache']; ?>" /></td>
<td width=50%><nobr><a href="purge_cache.php" target="right_frame" title="<?php echo $lang['purge_cache_tooltip']; ?>"><?php echo $lang['purge_cache']; ?></a></nobr></td>
</tr>
<tr>
if (! $config->GetValue('appearance','hide_configuration_management')) {
printf('<td><img src="images/light.png" alt="%s" /></td>',_('light'));
printf('<td width=50%%><nobr><a href="%s" target="new">%s</a></nobr></td>',get_href('add_rfe'),_('Request feature'));
printf('<td><img src="images/bug.png" alt="%s" /></td>',_('bug'));
printf('<td width=50%%><nobr><a href="%s" target="new">%s</a></nobr></td>',get_href('add_bug'),_('Report a bug'));
echo '</tr><tr>';
<?php if ( ! $config->GetValue('appearance','hide_configuration_management') ) { ?>
<td><img src="images/light.png" alt="<?php echo $lang['light']; ?>" /></td>
<td width=50%><nobr><a href="<?php echo $feature_href; ?>" target="new"><?php echo $lang['request_new_feature']; ?></a></nobr></td>
<td><img src="images/bug.png" alt="<?php echo $lang['bug']; ?>" /></td>
<td width=50%><nobr><a href="<?php echo $bug_href; ?>" target="new"><?php echo $lang['report_bug']; ?></a></nobr></td>
</tr>
<tr>
<td><img src="images/smile.png" alt="<?php echo $lang['donate']; ?>" /></td>
<td width=50%><nobr><a href="<?php echo $donate_href; ?>" target="right_frame"><?php echo $lang['donate']; ?></a></nobr></td>
<?php } ?>
<td><img src="images/help.png" alt="<?php echo $lang['help']; ?>" /></td>
<td><nobr><a href="help.php" target="right_frame"><?php echo $lang['help']; ?></a></nobr></td>
</tr>
</table>
printf('<td><img src="images/smile.png" alt="%s" /></td>',_('Donate'));
printf('<td width=50%%><nobr><a href="%s" target="right_frame">%s</a></nobr></td>',get_href('donate'),_('Donate'));
}
<table class="tree" cellspacing="0">
printf('<td><img src="images/help.png" alt="%s" /></td>',_('Help'));
printf('<td><nobr><a href="help.php" target="right_frame">%s</a></nobr></td>',_('Help'));
echo '</tr></table>';
<?php
echo "\n\n";
# We want the std tree function as a fallback
require LIBDIR.'tree_functions.php';
# Are we going to use the PLM tree?
if ($config->GetValue('appearance','tree_plm')) {
require JSDIR.'phplayersmenu/lib/PHPLIB.php';
require JSDIR.'phplayersmenu/lib/layersmenu-common.inc.php';
require JSDIR.'phplayersmenu/lib/treemenu.inc.php';
}
# For each of the configured servers
foreach( $ldapservers->GetServerList() as $server_id ) {
$ldapserver = $ldapservers->Instance($server_id);
@@ -126,169 +121,5 @@ foreach( $ldapservers->GetServerList() as $server_id ) {
}
}
# Case where user not logged into any server
if ($meta_refresh_variable == 0)
$meta_refresh_variable = (session_cache_expire()-1)*60;
?>
<META HTTP-EQUIV="REFRESH" CONTENT="<?php echo $meta_refresh_variable?>">
</table>
</body>
</html>
<?php
exit;
/**
* Recursively descend on the given dn and draw the tree in html
*
* @param dn $dn Current dn.
* @param object $LDAPServer LDAPServer object
* @param int $level Level to start drawing (defaults to 0)
*/
function draw_tree_html($dn,$ldapserver,$level=0) {
global $config, $tree, $tree_icons, $lang;
$encoded_dn = rawurlencode( $dn );
$expand_href = sprintf("expand.php?server_id=%s&amp;dn=%s",$ldapserver->server_id,$encoded_dn);
$collapse_href = sprintf("collapse.php?server_id=%s&amp;dn=%s",$ldapserver->server_id,$encoded_dn);
$edit_href = sprintf("edit.php?server_id=%s&amp;dn=%s",$ldapserver->server_id,$encoded_dn);
// should never happen, but just in case
if( ! isset( $tree_icons[ $ldapserver->server_id ][ $dn ] ) )
$tree_icons[ $ldapserver->server_id ][ $dn ] = get_icon( $ldapserver, $dn );
$img_src = 'images/' . $tree_icons[ $ldapserver->server_id ][ $dn ];
$rdn = get_rdn( $dn );
echo '<tr>';
for( $i=0; $i<=$level; $i++ ) {
echo '<td class="spacer"></td>' . "\n";
}
// Shall we draw the "mass-delete" checkbox?
if( $ldapserver->isMassDeleteEnabled() ) {
printf('<td><input type="checkbox" name="mass_delete[%s]" /></td>',htmlspecialchars($dn));
}
// is this node expanded? (deciding whether to draw "+" or "-")
if( isset( $tree[$ldapserver->server_id][$dn] ) ) { ?>
<?php $child_count = number_format( count( $tree[$ldapserver->server_id][$dn] ) );
if ((! $child_count) && (! $ldapserver->isShowCreateEnabled())) { ?>
<td class="expander">
<nobr>
<img src="images/minus.png" alt="-" />
</nobr>
</td>
<?php } else { ?>
<td class="expander">
<nobr>
<a href="<?php echo $collapse_href; ?>"><img src="images/minus.png" alt="-" /></a>
</nobr>
</td>
<?php }
} else {
$size_limit = $config->GetValue('search','size_limit');
if( $ldapserver->isLowBandwidth() ) {
$child_count = null;
} else {
$child_count = count( get_container_contents( $ldapserver, $dn, $size_limit+1,
'(objectClass=*)', $config->GetValue('deref','tree')));
if( $child_count > $size_limit )
$child_count = $size_limit . '+';
}
if (($child_count === 0) && (! $ldapserver->isShowCreateEnabled())) {
// Since we know the tree is empty, we'll create a $tree object anyway, just incase we
// create something later (otherwise it doesnt cause the tree to get refreshed).
$_SESSION['tree'][$ldapserver->server_id][$dn] = array();
$_SESSION['tree_icons'][$ldapserver->server_id][$dn] = get_icon( $ldapserver, $dn ); ?>
<td class="expander">
<nobr>
<img src="images/minus.png" alt="-" />
</nobr>
</td>
<?php } else { ?>
<td class="expander">
<nobr>
<a href="<?php echo $expand_href; ?>"><img src="images/plus.png" alt="+" /></a>
</nobr>
</td>
<?php }
} ?>
<td class="icon">
<a href="<?php echo $edit_href; ?>"
target="right_frame"
name="<?php echo $ldapserver->server_id; ?>_<?php echo $encoded_dn; ?>"><img src="<?php echo $img_src; ?>" alt="img" /></a>
</td>
<td class="rdn" colspan="<?php echo (97-$level); ?>">
<nobr>
<a href="<?php echo $edit_href; ?>"
target="right_frame"><?php echo ( draw_formatted_dn( $ldapserver, $dn ) ); /*pretty_print_dn( $rdn ) );*/ ?></a>
<?php if( $child_count ) { ?>
<span class="count">(<?php echo $child_count; ?>)</span>
<?php } ?>
</nobr>
</td>
</tr>
<?php
if( isset( $tree[$ldapserver->server_id][$dn] ) && is_array( $tree[$ldapserver->server_id][$dn] ) ) {
// Draw the "create new" link at the top of the tree list if there are more than 10
// entries in the listing for this node.
if(( count( $tree[$ldapserver->server_id][$dn] ) > 10 ) && ( $ldapserver->isShowCreateEnabled() ))
draw_create_link( $ldapserver->server_id, $rdn, $level, $encoded_dn );
foreach( $tree[$ldapserver->server_id][$dn] as $dn )
draw_tree_html( $dn, $ldapserver, $level+1 );
// Always draw the "create new" link at the bottom of the listing
if( $ldapserver->isShowCreateEnabled() )
draw_create_link( $ldapserver->server_id, $rdn, $level, $encoded_dn );
}
}
/**
* Print the HTML to show the "create new entry here".
*
* @param int $server_id
* @param dn $rdn
* @param int $level
* @param dn $encoded_dn
*/
function draw_create_link( $server_id, $rdn, $level, $encoded_dn )
{
global $lang;
// print the "Create New object" link.
$create_href = sprintf("create_form.php?server_id=%s&amp;container=%s",$server_id,$encoded_dn);
$create_html = '<tr>';
for( $i=0; $i<=$level; $i++ ) {
$create_html .= '<td class="spacer"></td>';
}
$create_html .= '<td class="spacer"></td>';
$create_html .= '<td class="icon"><a href="' . $create_href .
'" target="right_frame"><img src="images/star.png" alt="' . $lang['new'] . '" /></a></td>';
$create_html .= '<td class="create" colspan="' . (97-$level) . '"><a href="' . $create_href .
'" target="right_frame" title="' . $lang['create_new_entry_in'] . ' ' . $rdn.'">' .
$lang['create_new'] . '</a></td>';
$create_html .= '</tr>';
echo $create_html;
}
echo '</body></html>';
?>

View File

@@ -1,24 +1,25 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/update.php,v 1.24.2.1 2005/10/09 09:07:21 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/update.php,v 1.28 2006/01/29 01:51:49 wurley Exp $
/**
* Updates or deletes a value from a specified attribute for a specified dn.
* Updates or deletes a value from a specified attribute for a specified dn.
*
* Variables that come in on the query string:
* - dn (rawurlencoded)
* - server_id
* - update_array (an array in the form expected by PHP's ldap_modify, except for deletions)
* (will never be empty: update_confirm.php ensures that)
* Variables that come in via common.php
* - server_id
* Variables that come in on the query string:
* - dn (rawurlencoded)
* - update_array (an array in the form expected by PHP's ldap_modify, except for deletions)
* (will never be empty: update_confirm.php ensures that)
*
* Attribute deletions:
* To specify that an attribute is to be deleted (whether multi- or single-valued),
* enter that attribute in the update array like this: attr => ''. For example, to
* delete the 'sn' attribute from an entry, the update array would look like this:
* Array (
* enter that attribute in the update array like this: attr => ''. For example, to
* delete the 'sn' attribute from an entry, the update array would look like this:
* Array (
* sn => ''
* )
*
* On success, redirect to edit.php. On failure, echo an error.
* On success, redirect to template_engine.php. On failure, echo an error.
*
* @package phpLDAPadmin
*/
@@ -27,95 +28,120 @@
require './common.php';
if ($ldapserver->isReadOnly())
pla_error($lang['no_updates_in_read_only_mode']);
if (! $ldapserver->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
$dn = $_POST['dn'];
$encoded_dn = rawurlencode($dn);
$update_array = isset($_POST['update_array']) ? $_POST['update_array'] : array();
is_array($update_array) or pla_error($lang['update_array_malformed']);
$failed_attrs = array();
run_hook ('pre_update',array ('server_id' => $ldapserver->server_id,
'dn' => $dn,'update_array' => $update_array));
// check for delete attributes (indicated by the attribute entry appearing like this: attr => ''
foreach ($update_array as $attr => $val)
if (! is_array($val))
if ($val == '')
$update_array[ $attr ] = array();
else
$update_array[ $attr ] = $val;
else
foreach ($val as $i => $v)
$update_array[ $attr ][ $i ] = $v;
// Call the custom callback for each attribute modification
// and verify that it should be modified.
foreach ($update_array as $attr_name => $val) {
// Check to see if this is a unique Attribute
if ($badattr = checkUniqueAttr($ldapserver,$dn,$attr_name,$val)) {
$search_href = sprintf('search.php?search=true&form=advanced&server_id=%s&filter=%s=%s',$ldapserver->server_id,$attr_name,$badattr);
pla_error(sprintf($lang['unique_attr_failed'],$attr_name,$badattr,$dn,$search_href));
}
if (true !== run_hook ('pre_attr_modify',array ('server_id' => $ldapserver->server_id,
'dn' => $dn,'attr_name' => $attr_name,'new_value' => $val))) {
unset($update_array[ $attr_name ]);
$failed_attrs[$attr_name] = $val;
}
elseif (is_attr_read_only($ldapserver,$attr))
pla_error(sprintf($lang['attr_is_read_only'],htmlspecialchars($attr_name)));
# If cancel was submited, got back to the edit display.
if (isset($_REQUEST['cancel'])) {
header(sprintf('Location: template_engine.php?server_id=%s&dn=%s',$ldapserver->server_id,$encoded_dn));
die();
}
if ($ldapserver->isReadOnly())
pla_error(_('You cannot perform updates while server is in read-only mode'));
if (! $ldapserver->haveAuthInfo())
pla_error(_('Not enough information to login to server. Please check your configuration.'));
$update_array = isset($_POST['update_array']) ? $_POST['update_array'] : array();
$skip_array = isset($_POST['skip_array']) ? $_POST['skip_array'] : array();
$failed_attrs = array();
if (! is_array($update_array))
pla_error(_('update_array is malformed. This might be a phpLDAPadmin bug. Please report it.'));
run_hook ('pre_update',array('server_id'=>$ldapserver->server_id,'dn'=>$dn,'update_array'=>$update_array));
# Check for delete attributes (indicated by the attribute entry appearing like this: attr => ''
foreach ($update_array as $attr => $val)
if (! is_array($val))
if (array_key_exists($attr,$skip_array))
unset($update_array[$attr]);
elseif ($val == '')
$update_array[$attr] = array();
# Skip change
else
$update_array[$attr] = $val;
else
if (array_key_exists($attr,$skip_array))
unset($update_array[$attr]);
else
foreach ($val as $i => $v)
$update_array[$attr][$i] = $v;
/* Call the custom callback for each attribute modification
and verify that it should be modified.*/
foreach ($update_array as $attr_name => $val) {
# Check to see if this is a unique Attribute
if ($badattr = $ldapserver->checkUniqueAttr($dn,$attr_name,$val)) {
$search_href = sprintf('search.php?search=true&form=advanced&server_id=%s&filter=%s=%s',
$ldapserver->server_id,$attr_name,$badattr);
pla_error(sprintf(_('Your attempt to add <b>%s</b> (<i>%s</i>) to <br><b>%s</b><br> is NOT allowed. That attribute/value belongs to another entry.<p>You might like to <a href="%s">search</a> for that entry.'),
$attr_name,$badattr,$dn,$search_href));
}
if (run_hook('pre_attr_modify',
array('server_id'=>$ldapserver->server_id,'dn'=>$dn,'attr_name'=>$attr_name,'new_value'=>$val)) !== true) {
unset($update_array[$attr_name]);
$failed_attrs[$attr_name] = $val;
} elseif ($ldapserver->isAttrReadOnly($attr))
pla_error(sprintf(_('The attribute "%s" is flagged as read-only in the phpLDAPadmin configuration.'),
htmlspecialchars($attr_name)));
}
# Perform the modification
$res = $ldapserver->modify($dn,$update_array);
if ($res) {
// Fire the post modification event to the user's custom
// callback function.
# Fire the post modification event to the user's custom callback function.
$mustRelogin = false;
foreach ($update_array as $attr_name => $val) {
run_hook ('post_attr_modify',array('server_id' => $ldapserver->server_id,
'dn' => $dn,'attr_name' => $attr_name,'new_value' => $val));
run_hook('post_attr_modify',
array('server_id'=>$ldapserver->server_id,'dn'=>$dn,'attr_name'=>$attr_name,'new_value'=>$val));
// Was this a user's password modification who is currently
// logged in? If so, they need to logout and log back in
// with the new password.
/* Was this a user's password modification who is currently
logged in? If so, they need to logout and log back in
with the new password. */
if (0 === strcasecmp($attr_name,'userPassword') &&
in_array($ldapserver->auth_type,array('cookie','session')) &&
0 === pla_compare_dns(get_logged_in_dn($ldapserver),$dn)) {
pla_compare_dns($ldapserver->getLoggedInDN(),$dn) === 0)
unset_login_dn($ldapserver);
unset_lastactivity($ldapserver);
include './header.php';
?>
<script language="javascript">
parent.left_frame.location.reload();
</script>
<br />
<center>
<b><?php echo $lang['modification_successful']; ?></b><br />
<br />
<?php echo $lang['change_password_new_login']; ?> &nbsp;
<a href="login_form.php?server_id=<?php echo $ldapserver->server_id; ?>"><?php echo $lang['login_link']; ?></a>
</center>
</body>
</html>
<?php
exit;
}
$mustRelogin = true;
}
run_hook ('post_update',array ('server_id' => $ldapserver->server_id,'dn' => $dn,'update_array' => $update_array));
$redirect_url = sprintf("edit.php?server_id=%s&dn=%s",$ldapserver->server_id,$encoded_dn);
# If the user password was changed, not tell the to relogin.
if ($mustRelogin) {
$ldapserver->unsetLoginDN();
unset_lastactivity($ldapserver);
include './header.php';
echo '<body>';
echo '<script type="text/javascript" language="javascript">';
echo 'parent.left_frame.location.reload();';
echo '</script>'."\n\n";
echo '<br />';
echo '<center>';
printf('<b>%s</b>',_('Modification successful!'));
echo '<br /><br />';
echo _('Since you changed your password, you must now login again with your new password.');
echo '<br />';
printf('<a href="login_form.php?server_id=%s">%s...</a>',$ldapserver->server_id, _('Login'));
echo '</center>';
echo '</body>';
echo '</html>';
exit;
}
$redirect_url = sprintf('template_engine.php?server_id=%s&dn=%s',$ldapserver->server_id,$encoded_dn);
foreach ($update_array as $attr => $junk)
$redirect_url .= "&modified_attrs[]=$attr";
@@ -126,7 +152,6 @@ if ($res) {
header("Location: $redirect_url");
} else {
pla_error($lang['could_not_perform_ldap_modify'],
$ldapserver->error(),$ldapserver->errno());
pla_error(_('Could not perform ldap_modify operation.'),$ldapserver->error(),$ldapserver->errno());
}
?>

View File

@@ -1,8 +1,8 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/update_confirm.php,v 1.40.2.3 2005/10/22 14:22:47 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/update_confirm.php,v 1.47 2006/05/13 12:52:26 wurley Exp $
/**
* Takes the results of clicking "Save" in edit.php and determines which
* Takes the results of clicking "Save" in template_engine.php and determines which
* attributes need to be updated (ie, which ones actually changed). Then,
* we present a confirmation table to the user outlining the changes they
* are about to make. That form submits directly to update.php, which
@@ -15,236 +15,234 @@
require './common.php';
include './header.php';
include TMPLDIR.'template_config.php';
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if ($ldapserver->isReadOnly())
pla_error(_('You cannot perform updates while server is in read-only mode'));
$dn = $_POST['dn'];
$old_values = $_POST['old_values'];
$new_values = $_POST['new_values'];
$encoded_dn = rawurlencode( $dn );
$rdn = get_rdn( $dn );
$encoded_dn = rawurlencode($dn);
$rdn = get_rdn($dn);
?>
echo '<body>';
printf('<h3 class="title">%s</h3>',htmlspecialchars($rdn));
printf('<h3 class="subtitle">%s: <b>%s</b> &nbsp;&nbsp;&nbsp; %s: <b>%s</b></h3>',
_('Server'),$ldapserver->name,_('Distinguished Name'),htmlspecialchars($dn));
echo "\n\n";
<body>
<h3 class="title"><?php echo htmlspecialchars( ( $rdn ) ); ?></h3>
<h3 class="subtitle">Server: <b><?php echo $ldapserver->name; ?></b> &nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name']; ?>: <b><?php echo htmlspecialchars( ( $dn ) ); ?></b></h3>
<?php
run_hook ( 'pre_update_array_processing', array ( 'server_id' => $ldapserver->server_id,
'dn' => $dn, 'old_values' => $old_values, 'new_values' => $new_values ) );
run_hook('pre_update_array_processing',array('server_id'=>$ldapserver->server_id,
'dn'=>$dn,'old_values'=>$old_values,'new_values'=>$new_values));
$update_array = array();
foreach( $old_values as $attr => $old_val ) {
// Did the user delete the field?
if( ! isset( $new_values[ $attr ] ) )
$update_array[ $attr ] = '';
foreach ($old_values as $attr => $old_val) {
# Did the user delete the field?
if (! isset($new_values[$attr]))
$update_array[$attr] = '';
// did the user change the field?
elseif( $old_val != $new_values[ $attr ] ) {
# Did the user change the field?
elseif ($old_val !== $new_values[$attr]) {
$new_val = $new_values[$attr];
$new_val = $new_values[ $attr ];
# Special case for userPassword attributes
if (strcasecmp($attr,'userPassword') == 0) {
foreach ($new_val as $key => $userpassword) {
if (trim($userpassword))
$new_val[$key] = password_hash($userpassword,$_POST['enc_type'][$key]);
else
unset($new_val[$key]);
}
// special case for userPassword attributes
if( 0 == strcasecmp( $attr, 'userPassword' ) && $new_val != '' ) {
$new_val = password_hash( $new_val, $_POST['enc_type'] );
$password_already_hashed = true;
// special case for samba password
} else if (( 0 == strcasecmp($attr,'sambaNTPassword')) && trim($new_val[0]) != '' ) {
# Special case for samba password
} elseif (strcasecmp($attr,'sambaNTPassword') == 0 && trim($new_val[0])) {
$sambapassword = new smbHash;
$new_val[0] = $sambapassword->nthash($new_val[0]);
// special case for samba password
} else if ((0 == strcasecmp($attr,'sambaLMPassword')) && trim($new_val[0]) != '' ) {
# Special case for samba password
} elseif (strcasecmp($attr,'sambaLMPassword') == 0 && trim($new_val[0])) {
$sambapassword = new smbHash;
$new_val[0] = $sambapassword->lmhash($new_val[0]);
}
if ($new_val == $old_val)
# Retest in case our now encoded password is the same.
if ($new_val === $old_val)
continue;
$update_array[ $attr ] = $new_val;
if ($new_val)
$update_array[$attr] = $new_val;
}
}
// special case check for a new enc_type for userPassword (not otherwise detected)
if( isset( $_POST['enc_type'] ) &&
! isset( $password_already_hashed ) &&
$_POST['enc_type'] != $_POST['old_enc_type'] &&
$_POST['enc_type'] != 'clear' &&
array_key_exists ( 'userpassword', $_POST['new_values'] ) &&
$_POST['new_values']['userpassword'] != '' ) {
# Check user password with new encoding.
if (isset($new_values['userpassword']) && is_array($new_values['userpassword'])) {
foreach ($new_values['userpassword'] as $key => $userpassword) {
if ($userpassword) {
if ($old_values['userpassword'][$key] == $new_values['userpassword'][$key] &&
get_enc_type($old_values['userpassword'][$key]) == $_POST['enc_type'][$key])
continue;
$new_password = password_hash( $_POST['new_values']['userpassword'], $_POST['enc_type'] );
$update_array[ 'userpassword' ] = $new_password;
$new_values['userpassword'][$key] = password_hash($userpassword,$_POST['enc_type'][$key]);
}
}
if ($old_values['userpassword'] != $new_values['userpassword'])
$update_array['userpassword'] = $new_values['userpassword'];
}
// strip empty vals from update_array and ensure consecutive indices for each attribute
foreach( $update_array as $attr => $val ) {
if( is_array( $val ) ) {
foreach( $val as $i => $v )
if( null == $v || 0 == strlen( $v ) )
unset( $update_array[$attr][$i] );
$update_array[$attr] = array_values( $update_array[$attr] );
# strip empty vals from update_array and ensure consecutive indices for each attribute
foreach ($update_array as $attr => $val) {
if (is_array($val)) {
foreach($val as $i => $v)
if (null == $v || 0 == strlen($v))
unset($update_array[$attr][$i]);
$update_array[$attr] = array_values($update_array[$attr]);
}
}
// at this point, the update_array should look like this (example):
// Array (
// cn => Array(
// [0] => 'Dave',
// [1] => 'Bob' )
// sn => 'Smith',
// telephoneNumber => '555-1234' )
// This array should be ready to be passed to ldap_modify()
/* At this point, the update_array should look like this (example):
Array(
cn => Array(
[0] => 'Dave',
[1] => 'Bob')
sn => 'Smith',
telephoneNumber => '555-1234')
This array should be ready to be passed to ldap_modify() */
run_hook ( 'post_update_array_processing', array ( 'server_id' => $ldapserver->server_id,
'dn' => $dn, 'update_array' => $update_array ) );
run_hook('post_update_array_processing',array('server_id'=>$ldapserver->server_id,
'dn'=>$dn,'update_array'=>$update_array));
if( count( $update_array ) > 0 ) { ?>
if (count($update_array) > 0) {
echo '<br />';
echo '<center>';
echo _('Do you want to make these changes?');
echo '<br /><br />';
<br />
<center>
<?php echo $lang['do_you_want_to_make_these_changes']; ?>
<br />
<br />
# <!-- Commit button and acompanying form -->
echo "\n\n";
echo '<form action="update.php" method="post">';
echo "\n";
echo '<table class="confirm">';
echo "\n";
<!-- Commit button and acompanying form -->
<form action="update.php" method="post">
printf('<tr><th>%s</th><th>%s</th><th>%s</th><th>%s</th></tr>',
_('Attribute'),_('Old Value'),_('New Value'),_('Skip'));
<table class="confirm">
<tr>
<th><?php echo $lang['attribute']; ?></th>
<th><?php echo $lang['old_value']; ?></th>
<th><?php echo $lang['new_value']; ?></th>
</tr>
echo "\n\n";
$counter = 0;
<?php
$counter=0;
run_hook('pre_display_update_array',array('server_id'=>$ldapserver->server_id,'dn'=>$dn,
'update_array'=>$update_array));
run_hook ( 'pre_display_update_array', array ( 'server_id' => $ldapserver->server_id, 'dn' => $dn,
'update_array' => $update_array ) );
foreach( $update_array as $attr => $new_val ) {
foreach ($update_array as $attr => $new_val) {
$counter++;
if ( ! array_key_exists ( $attr, $old_values ) or ! array_key_exists ( $attr, $new_values ) )
if (! array_key_exists($attr,$old_values) or ! array_key_exists($attr,$new_values))
continue;
?>
<tr class="<?php echo $counter%2 ? 'even' : 'odd'; ?>">
<td><b><?php echo htmlspecialchars( $attr ); ?></b></td>
<td><nobr>
printf('<tr class="%s">',$counter%2 ? 'even' : 'odd');
printf('<td><b>%s</b></td>',htmlspecialchars($attr));
echo '<td><nobr>';
if (strcasecmp($attr,'userPassword') == 0) {
foreach ($old_values[$attr] as $key => $value) {
if (obfuscate_password_display(get_enc_type($old_values[$attr][$key])))
echo preg_replace('/./','*',$old_values[$attr][$key]).'<br />';
else
echo nl2br(htmlspecialchars($old_values[$attr][$key])).'<br />';
}
} elseif (is_array($old_values[$attr]))
foreach ($old_values[$attr] as $v)
echo nl2br(htmlspecialchars($v)).'<br />';
<?php
if( is_array( $old_values[ $attr ] ) )
foreach( $old_values[ $attr ] as $v )
echo nl2br( htmlspecialchars( $v ) ) . "<br />";
else
if( 0 == strcasecmp( $attr, 'userPassword' )
&& obfuscate_password_display( get_enc_type( $old_values[ $attr ] ) ) )
echo nl2br(htmlspecialchars($old_values[$attr])).'<br />';
echo preg_replace( '/./', '*', $old_values[ $attr ] ) . "<br />";
echo '</nobr></td>';
echo '<td><nobr>';
else
echo nl2br( htmlspecialchars( $old_values[ $attr ] ) ) . "<br />";
# Is this a multi-valued attribute?
if (is_array($new_val)) {
if (strcasecmp($attr,'userPassword') == 0) {
foreach ($new_values[$attr] as $key => $value) {
if (isset($new_val[$key])) {
if (obfuscate_password_display(get_enc_type($new_val[$key])))
echo preg_replace('/./','*',$new_val[$key]).'<br />';
else
echo htmlspecialchars($new_val[$key]).'<br />';
}
}
echo "</nobr></td><td><nobr>";
} else {
// is this a multi-valued attribute?
if( is_array( $new_val ) ) {
foreach( $new_val as $i => $v ) {
if( $v == '' ) {
// remove it from the update array if it's empty
unset( $update_array[ $attr ][ $i ] );
$update_array[ $attr ] = array_values( $update_array[ $attr ] );
foreach ($new_val as $i => $v) {
if ($v == '') {
# Remove it from the update array if it's empty
unset($update_array[$attr][$i]);
$update_array[$attr] = array_values($update_array[$attr]);
} else {
echo nl2br( htmlspecialchars( $v ) ) . "<br />";
} else {
echo nl2br(htmlspecialchars($v)).'<br />';
}
}
}
// was this a multi-valued attribute deletion? If so,
// fix the $update_array to reflect that per update_confirm.php's
// expectations
if( $update_array[ $attr ] == array( 0 => '' ) || $update_array[ $attr ] == array() ) {
$update_array[ $attr ] = '';
echo '<span style="color: red">' . $lang['attr_deleted'] . '</span>';
/* was this a multi-valued attribute deletion? If so,
fix the $update_array to reflect that per update_confirm.php's
expectations */
if ($update_array[$attr] == array(0=>'') || $update_array[$attr] == array()) {
$update_array[$attr] = '';
printf('<span style="color: red">%s</span>',_('[attribute deleted]'));
}
}
elseif( $new_val != '' )
if( 0 == strcasecmp( $attr, 'userPassword' ) &&
obfuscate_password_display( get_enc_type( $new_values[ $attr ] ) ) )
} elseif ($new_val != '')
printf('<span style="color: red">%s</span>',_('[attribute deleted]'));
echo preg_replace( '/./', '*', $new_val ) . "<br />";
echo '</nobr></td>';
else
echo htmlspecialchars( $new_val ) . "<br />";
printf('<td><input name="skip_array[%s]" type="checkbox" /></td>',htmlspecialchars($attr));
echo '</tr>'."\n\n";
}
else
echo '<span style="color: red">' . $lang['attr_deleted'] . '</span>';
run_hook('post_display_update_array',array('server_id'=>$ldapserver->server_id,'dn'=>$dn,
'update_array'=>$update_array,'index'=>$counter));
echo "</nobr></td></tr>\n\n";
}
echo '</table><table class="form">';
echo '<tr>';
echo '<td>';
printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
printf('<input type="hidden" name="dn" value="%s" />',$dn);
run_hook ( 'post_display_update_array', array ( 'server_id' => $ldapserver->server_id, 'dn' => $dn,
'update_array' => $update_array, 'index' => $counter ) );
?>
foreach ($update_array as $attr => $val) {
if (is_array($val))
foreach($val as $i => $v)
printf('<input type="hidden" name="update_array[%s][%s]" value="%s" />',
htmlspecialchars($attr),$i,htmlspecialchars($v));
else
printf('<input type="hidden" name="update_array[%s]" value="%s" />',
htmlspecialchars($attr),htmlspecialchars($val));
}
</table>
<br />
printf('<input type="submit" value="%s" class="happy" />',_('Commit'));
echo '</td>';
echo '<td>';
printf('<input type="submit" name="cancel" value="%s" class="scary" />',_('Cancel'));
echo '</td>';
echo '</tr>';
echo '</table>';
echo '</form>';
echo '</center>';
<table class="form">
<tr>
<td>
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<input type="hidden" name="dn" value="<?php echo $dn; ?>" />
} else {
echo '<center>';
echo _('You made no changes');
printf(' <a href="template_engine.php?server_id=%s&amp;dn=%s">%s</a>.',
$ldapserver->server_id,$encoded_dn,_('Go back'));
echo '</center>';
}
<?php foreach( $update_array as $attr => $val ) {
if( is_array( $val ) ) {
foreach( $val as $i => $v ) { ?>
<input type="hidden" name="update_array[<?php echo htmlspecialchars( $attr ); ?>][<?php echo $i; ?>]" value="<?php echo htmlspecialchars( $v ); ?>" />
<?php }
} else { ?>
<input type="hidden" name="update_array[<?php echo htmlspecialchars( $attr ); ?>]" value="<?php echo htmlspecialchars( $val ); ?>" />
<?php }
} ?>
<input type="submit" value="<?php echo $lang['commit']; ?>" class="happy" />
</form>
</td>
<td>
<!-- Cancel button -->
<form action="edit.php" method="get">
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<input type="hidden" name="dn" value="<?php echo $dn; ?>" />
<input type="submit" value="<?php echo $lang['cancel']; ?>" class="scary" />
</form>
</td>
</tr>
</table>
</center>
</body>
<?php
} else { ?>
<center>
<?php echo $lang['you_made_no_changes']; ?>
<a href="edit.php?server_id=<?php echo $ldapserver->server_id; ?>&amp;dn=<?php echo $encoded_dn; ?>"><?php echo $lang['go_back']; ?></a>.
</center>
<?php } ?>
</form>
echo '</body>';
?>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/view_jpeg_photo.php,v 1.9 2005/07/16 03:13:54 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/view_jpeg_photo.php,v 1.10 2005/12/10 10:34:54 wurley Exp $
/**
* @package phpLDAPadmin
@@ -11,27 +11,23 @@ require './common.php';
$file = $_GET['file'];
// Security check (we don't want anyone tryting to get at /etc/passwd or something)
preg_match( "/^pla/", $file ) or
pla_error( $lang['unsafe_file_name'] . htmlspecialchars( $file ) );
/* Security check (we don't want anyone tryting to get at /etc/passwd or something)
Slashes and dots are not permitted in these names.*/
if (! preg_match('/^pla/',$file) || preg_match('/[\.\/\\\\]/',$file))
pla_error(sprintf('%s %s',_('Unsafe file name: '),htmlspecialchars($file)));
// Slashes and dots are not permitted in these names:
if( preg_match( "/[\.\/\\\\]/", $file ) )
pla_error( $lang['unsafe_file_name'] . htmlspecialchars( $file ) );
// little security measure here (prevents users from accessing
// files, like /etc/passwd for example)
$file = basename( $file );
$file = addcslashes( $file, '/\\' );
/* Little security measure here (prevents users from accessing
files, like /etc/passwd for example).*/
$file = basename(addcslashes($file,'/\\'));
$file = sprintf('%s/%s',$config->GetValue('jpeg','tmpdir'),$file);
file_exists( $file ) or
pla_error( $lang['no_such_file'] . htmlspecialchars( $_GET['file'] ) );
if (! file_exists($file))
pla_error(sprintf('%s %s',_('No such file: '),htmlspecialchars($_GET['file'])));
$f = fopen( $file, 'r' );
$jpeg = fread( $f, filesize( $file ) );
fclose( $f );
$f = fopen($file,'r');
$jpeg = fread($f,filesize($file));
fclose($f);
Header( "Content-type: image/jpeg" );
Header( "Content-disposition: inline; filename=jpeg_photo.jpg" );
Header('Content-type: image/jpeg');
Header('Content-disposition: inline; filename=jpeg_photo.jpg');
echo $jpeg;
?>

View File

@@ -1,16 +1,15 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/welcome.php,v 1.24 2005/09/25 16:11:44 wurley Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/welcome.php,v 1.25 2005/12/10 10:34:54 wurley Exp $
/**
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
include './header.php';
// include './config.php';
// Close the session for faster page loading
require './common.php';
include './header.php';
# Close the session for faster page loading
pla_session_close();
?>
@@ -19,23 +18,20 @@ pla_session_close();
<br />
<br />
<br />
<img src="images/logo.jpg" title="<?php echo $lang['pla_logo']; ?>" alt="<?php echo $lang['pla_logo']; ?>" /><br />
<img src="images/logo.jpg" title="<?php echo _('phpLDAPadmin logo'); ?>" alt="<?php echo _('phpLDAPadmin logo'); ?>" />
<br />
<?php echo $lang['welcome_note']; ?>
<br />
<?php echo _('Use the menu to the left to navigate'); ?>
<br />
<br />
<br />
<br />
<?php
if (! $config->GetValue('appearance','hide_configuration_management')) {
?>
<a href="documentation.php?view=credits"><?php echo $lang['credits']; ?></a> |
<a href="documentation.php?view=changelog"><?php echo $lang['changelog']; ?></a> |
<a href="http://wiki.pldapadmin.com/Documentation"><?php echo $lang['documentation']; ?></a> |
<a href="<?php echo get_href( 'donate' ); ?>"><?php echo $lang['donate']; ?></a>
<?php
}
?>
<?php if (! $config->GetValue('appearance','hide_configuration_management')) { ?>
<a href="<?php echo get_href('credits'); ?>"><?php echo _('Credits'); ?></a> |
<a href="<?php echo get_href('documentation'); ?>"><?php echo _('Documentation'); ?></a> |
<a href="<?php echo get_href('donate'); ?>"><?php echo _('Donate'); ?></a>
<?php } ?>
</center>
</body>

View File

@@ -1,149 +0,0 @@
#
# This Makefile (lang/Makefile) converts the source lang files to UTF8
# coding. You need iconv installed to use it.
# $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/Makefile,v 1.25 2005/02/06 00:21:30 wurley Exp $
# ToDo: detect the encoding in the "source"
#
# posible detect of the language
# echo `cat de.php | grep "logged_in_as" | sed s/".*="//g | file - | sed s/".*: "//g | sed s/" .*"//g`
#
# or
#
# maybe like this
# cat LANG.php | sed s/"^\/"//g | sed s/".*= "//g | sed s/";.*"//g | grep -v "<"| file - | sed s/".*: "//g | sed s/" .*"//g
# Where to place the recoded language files
DESTDIR=./recoded
# Path to the iconv binary
ICONV=iconv
# Path to the PHP binary
PHP=php
TARGETS=${DESTDIR}/auto.php \
${DESTDIR}/ca.php \
${DESTDIR}/cz.php \
${DESTDIR}/de.php \
${DESTDIR}/en.php \
${DESTDIR}/es.php \
${DESTDIR}/fr.php \
${DESTDIR}/hu.php \
${DESTDIR}/it.php \
${DESTDIR}/ja.php \
${DESTDIR}/nl.php \
${DESTDIR}/pl.php \
${DESTDIR}/pt-br.php \
${DESTDIR}/ru.php \
${DESTDIR}/sv.php \
${DESTDIR}/zh-cn.php \
${DESTDIR}/zh-tw.php \
${DESTDIR}/zz.php \
${DESTDIR}/zzz.php
default:
@echo "usage:"
@echo " make iconvlang - to generate the lang coding"
@echo " make iconvclean - to remove the utf8-converted file in ${DESTDIR}"
iconvlang: prepare ${TARGETS} syntax
@echo "Setting permissions..."
@chmod 644 ${TARGETS}
@echo "Done!"
syntax:
@echo "Starting syntax checking..."
@which $(PHP) >/dev/null 2>&1 || ( echo "You must have '$(PHP)' installed to use this Makefile, but I could not find it in your path!" && exit 1 )
@for i in ${TARGETS}; do ${PHP} -l $$i >/dev/null 2>&1 || ( echo "Syntax errors found in $$i!" && exit 1 ); done
@echo "Done"
prepare:
@echo "Starting prepare"
@which $(ICONV) >/dev/null 2>&1 || ( echo "You must have GNU '$(ICONV)' installed to use this Makefile, but I could not find it in your path!" && exit 1 )
@mkdir -p ${DESTDIR}
@chmod 755 ${DESTDIR}
iconvclean:
@echo "deleting files "${TARGETS}
@rm -vf ${TARGETS}
@echo "now use 'make iconvlang' to encode, otherwise you could not use phpldapadmin"
${DESTDIR}/auto.php: auto.php
@echo "Fixing encoding auto.php to UTF8 "${DESTDIR}/auto.php
@iconv -f iso8859-1 -t utf8 auto.php > ${DESTDIR}/auto.php
${DESTDIR}/ca.php: ca.php
@echo "Fixing encoding ca.php to UTF8 "${DESTDIR}/ca.php
@iconv -f iso8859-1 -t utf8 ca.php > ${DESTDIR}/ca.php
${DESTDIR}/cz.php: cz.php
@echo "Fixing encoding cz.php to UTF8 "${DESTDIR}/cz.php
@iconv -f iso8859-2 -t utf8 cz.php > ${DESTDIR}/cz.php
${DESTDIR}/de.php: de.php
@echo "Fixing encoding de.php to UTF8 "${DESTDIR}/de.php
@iconv -f iso8859-1 -t utf8 de.php > ${DESTDIR}/de.php
${DESTDIR}/en.php: en.php
@echo "Fixing encoding en.php to UTF8 "${DESTDIR}/en.php
@iconv -f iso8859-1 -t utf8 en.php > ${DESTDIR}/en.php
${DESTDIR}/es.php: es.php
@echo "Fixing encoding es.php to UTF8 "${DESTDIR}/es.php
@iconv -f iso8859-1 -t utf8 es.php > ${DESTDIR}/es.php
${DESTDIR}/fr.php: fr.php
@echo "Fixing encoding fr.php to UTF8 "${DESTDIR}/fr.php
@iconv -f iso8859-1 -t utf8 fr.php > ${DESTDIR}/fr.php
${DESTDIR}/hu.php: hu.php
@echo "Fixing encoding hu.php to UTF8 "${DESTDIR}/hu.php
#@iconv -f iso8859-2 -t utf8 hu.php > ${DESTDIR}/hu.php
cp hu.php ${DESTDIR}/.
${DESTDIR}/it.php: it.php
@echo "Fixing encoding it.php to UTF8 "${DESTDIR}/it.php
@iconv -f iso8859-1 -t utf8 it.php > ${DESTDIR}/it.php
${DESTDIR}/ja.php: ja.php
@echo "Copying only the ja.php"
@cp ja.php ${DESTDIR}/.
${DESTDIR}/nl.php: nl.php
@echo "Fixing encoding nl.php to UTF8 "${DESTDIR}/nl.php
@iconv -f iso8859-1 -t utf8 nl.php > ${DESTDIR}/nl.php
${DESTDIR}/pl.php: pl.php
@echo "Fixing encoding pl.php to UTF8 "${DESTDIR}/pl.php
@iconv -f iso8859-2 -t utf8 pl.php > ${DESTDIR}/pl.php
${DESTDIR}/pt-br.php: pt-br.php
@echo "Fixing encoding pt-br.php to UTF8 "${DESTDIR}/pt-br.php
@iconv -f iso8859-1 -t utf8 pt-br.php > ${DESTDIR}/pt-br.php
${DESTDIR}/sv.php: sv.php
@echo "Fixing encoding sv.php to UTF8 "${DESTDIR}/sv.php
@iconv -f iso8859-1 -t utf8 sv.php > ${DESTDIR}/sv.php
${DESTDIR}/ru.php: ru.php
@echo "Fixing encoding ru.php to UTF8 "${DESTDIR}/ru.php
@iconv -f utf8 -t utf8 ru.php > ${DESTDIR}/ru.php
${DESTDIR}/zh-cn.php: zh-cn.php
@echo "Copying only the zh-cn.php"
@cp zh-cn.php ${DESTDIR}/zh-cn.php
${DESTDIR}/zh-tw.php: zh-tw.php
@echo "Copying only the zh-tw.php"
@cp zh-tw.php ${DESTDIR}/zh-tw.php
# @iconv -f utf8 -t utf8 zh-tw.php ${DESTDIR}/zh-tw.php
# INTERNAL BUG COULDN CONVERT IT, SO WE COPY IT
${DESTDIR}/zz.php: zz.php
@echo "Copying only the zz.php"
@cp zz.php ${DESTDIR}/.
${DESTDIR}/zzz.php: zzz.php
@echo "Copying only the zzz.php"
@cp zzz.php ${DESTDIR}/.

View File

@@ -1,54 +0,0 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/auto.php,v 1.10 2005/02/06 00:21:30 wurley Exp $
// Language for auto-detect
// phpldapadmin/lang/auto.php in $Revision: 1.10 $
$useLang="en"; // default use english encoding, a Option in Config would be nice
// keep the beginning and ending spaces, they are used for finding the best language
$langSupport=array(" ca "=>"ca" // catalan
," ca-"=>"ca" //
," de "=>"de" // german
," de-"=>"de" // for de-at, de-ch...
," German "=>"de" // the browser Moz (1.5)submit German instead of de
," en "=>"en" // englisch
," en-"=>"en" // for en-us,en-gb,en-ca,..
," es "=>"es" // spainish
," es-"=>"es" // es-cr, es-co,....
," fr "=>"fr" // french
," fr-"=>"fr" // fr-lu,fr-ca,...
," it "=>"it" // italien
," it-"=>"it" // for it-ch (italien swiss)..
," ja "=>"ja" // japanese
," nl "=>"nl" // dutch
," nl-"=>"nl" // for ne-be, only one?
," pl "=>"pl" // polish
," pl-"=>"pl" // maybe exist
," pt "=>"pt-br" // brazilian portuguese
," pt-br"=>"pt-br" // brazilian portuguese
," ru "=>"ru" // russian
," ru-"=>"ru" // ru- exits?
," sv "=>"sv" //swedish
," sv-"=>"sv" // swedisch to
," zh-cn"=>"zh-cn" // simplified chinese
," zh-tw"=>"zh-tw" // taiwan?
);// all supported languages in this array
// test
$aHTTP_ACCEPT_LANGUAGE=" ".$HTTP_ACCEPT_LANGUAGE." ";
$aHTTP_ACCEPT_LANGUAGE=strtr($aHTTP_ACCEPT_LANGUAGE,","," ");// replace , with " "
$aHTTP_ACCEPT_LANGUAGE=strtr($aHTTP_ACCEPT_LANGUAGE,";"," ");// replace , with " "
$acceptMaxPos=strlen($aHTTP_ACCEPT_LANGUAGE);// initial value, no fit
//echo $aHTTP_ACCEPT_LANGUAGE."\n";
foreach ($langSupport as $key=>$value) {
$acceptAktPos=strpos($aHTTP_ACCEPT_LANGUAGE,$key);
if ($acceptAktPos!==false // the test contained the substring
&& ($acceptAktPos < $acceptMaxPos) // and is better than the one before
) { $useLang=$value ; $acceptMaxPos=$acceptAktPos;}
// echo "$key=>$value:$acceptAktPos,$acceptMaxPos\n";
}
//echo "used:$useLang\n";
include realpath ("$useLang".".php");// this should include from recode/ position
$language=$useLang;
//echo "language:".$langugage;
?>

View File

@@ -1,345 +0,0 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/ca.php,v 1.4 2004/03/19 20:13:09 i18phpldapadmin Exp $
// Search form
// phpldapadmin/lang/ca.php $Revision: 1.4 $
//encoding: ISO-8859-1,ca.php instalaci<63> de PHP no t<>
$lang['simple_search_form_str'] = 'Formulari de recerca sencilla';
$lang['advanced_search_form_str'] = 'Formulari de recerca avan<61>ada';
$lang['server'] = 'Servidor';
$lang['search_for_entries_whose'] = 'Buscar objectes els quals';
$lang['base_dn'] = 'Base DN';
$lang['search_scope'] = 'Abast de la recerca';
$lang['search_ filter'] = 'Filtre de Recerca';
$lang['show_attributes'] = 'Mostrar atributs';
$lang['Search'] = 'Buscar';
$lang['equals'] = 'equival';
$lang['starts_with'] = 'comen<65>a amb';
$lang['contains'] = 'cont<6E>';
$lang['ends_with'] = 'acaba amb';
$lang['sounds_like'] = 'sona com';
// Tree browser
$lang['request_new_feature'] = 'Demanar funcionalitat';
$lang['see_open_requests'] = 'Veure les peticions';
$lang['report_bug'] = 'Reportar una errada';
$lang['see_open_bugs'] = 'Veure les errades';
$lang['schema'] = 'esquema';
$lang['search'] = 'buscar';
$lang['create'] = 'crear';
$lang['info'] = 'info';
$lang['import'] = 'importar';
$lang['refresh'] = 'refrescar';
$lang['logout'] = 'sortir';
$lang['create_new'] = 'Crear Nou Objecte';
$lang['view_schema_for'] = 'Veure esquema per a';
$lang['refresh_expanded_containers'] = 'Refrescar tots els contenidors ext<78>s per a';
$lang['create_new_entry_on'] = 'Crear nou objecte a';
$lang['view_server_info'] = 'Veure informaci<63> del servidor';
$lang['import_from_ldif'] = 'Importar objectes d\'arxiu LDIF';
$lang['logout_of_this_server'] = 'Sortiu d\'aquest servidor';
$lang['logged_in_as'] = 'Conectat com: ';
$lang['read_only'] = 'inalterable';
$lang['could_not_determine_root'] = 'No s\'ha pogut determinar l\'arrel del servidor LDAP.';
$lang['ldap_refuses_to_give_root'] = 'Sembla que el servidor LDAP s\'ha configurat per no revelar la seva arrel.';
$lang['please_specify_in_config'] = 'Si us plau especif<69>cala a l\'arxiu config.php';
$lang['create_new_entry_in'] = 'Crear un nou objecte a';
$lang['login_link'] = 'Autenticaci<63>...';
// Entry display
$lang['delete_this_entry'] = 'Esborrar aquest objecte';
$lang['delete_this_entry_tooltip'] = 'Es tindr<64> que confirmar aquesta decisi<73>';
$lang['copy_this_entry'] = 'Copiar aquest objecte';
$lang['copy_this_entry_tooltip'] = 'Copiar aquest objecte per una altra localitzaci<63>, DN nou, o per un altre servidor.';
$lang['export_to_ldif'] = 'Exportar arxiu LDIF';
$lang['export_to_ldif_tooltip'] = 'Desar arxiu LDIF d\'aquest objecte';
$lang['export_subtree_to_ldif_tooltip'] = 'Desar arxiu LDIF d\'aquest objecte i tots els seus objectes fills';
$lang['export_subtree_to_ldif'] = 'Exportar arxiu LDIF de sub-estructura';
$lang['export_mac'] = 'Avan<61> de l<>nia de Macintosh';
$lang['export_win'] = 'Avan<61> de l<>nia de Windows';
$lang['export_unix'] = 'Avan<61> de l<>nia de Unix';
$lang['create_a_child_entry'] = 'Crear objecte com a fill';
$lang['add_a_jpeg_photo'] = 'Afegir jpegPhoto';
$lang['rename_entry'] = 'Renombrar objecte';
$lang['rename'] = 'Renombrar';
$lang['add'] = 'Afegir';
$lang['view'] = 'Veure';
$lang['add_new_attribute'] = 'Afegir nou atribut';
$lang['add_new_attribute_tooltip'] = 'Afegir nous atribut/valor a aquest objecte';
$lang['internal_attributes'] = 'Atributs Interns';
$lang['hide_internal_attrs'] = 'ocultar els atributs interns';
$lang['show_internal_attrs'] = 'mostrar els atributs interns';
$lang['internal_attrs_tooltip'] = 'Els atributs fixes automaticament pel servidor';
$lang['entry_attributes'] = 'Atributs de l\'objecte';
$lang['attr_name_tooltip'] = 'Fes click per veure la definici<63> de l\'esquema per tipus d\'atribut \'%s\'';
$lang['click_to_display'] = 'Fer click per a mostrar';
$lang['hidden'] = 'ocultat';
$lang['none'] = 'cap';
$lang['save_changes'] = 'Desar els canvis';
$lang['add_value'] = 'afegir valor';
$lang['add_value_tooltip'] = 'Afegir valor adicional a aquest atribut';
$lang['refresh_entry'] = 'Refrescar';
$lang['refresh_this_entry'] = 'Refrescar aquest objecte';
$lang['delete_hint'] = 'Pista: <b>Per a borrar un atribut</b>, buida el formulari de texte i fes click a Desar.';
$lang['attr_schema_hint'] = 'Pista: <b>Per veure l\'esquema d\'un atribut</b>, fes click al nom de l\'atribut.';
$lang['attrs_modified'] = 'Alguns atributs (%s) foren modificats i estan remarcats m<>s abaix.';
$lang['attr_modified'] = 'Un atribut (%s) fore modificat i est<73> remarcat m<>s abaix.';
$lang['viewing_read_only'] = 'Mostrant l\'objecte en el mode de no alterar.';
$lang['change_entry_rdn'] = 'Modificar el RDN d\'aquest objecte';
$lang['no_new_attrs_available'] = 'No hi han atributs nous disponibles per aquest objecte';
$lang['binary_value'] = 'Valor binari';
$lang['add_new_binary_attr'] = 'Afegir valor binari';
$lang['add_new_binary_attr_tooltip'] = 'Afegir atribut/valor binari d\'un arxiu';
$lang['alias_for'] = 'Sin<69>nim per a';
$lang['download_value'] = 'Descarregar valor';
$lang['delete_attribute'] = 'Esborrar atribut';
$lang['true'] = 'veritat';
$lang['false'] = 'fals';
$lang['none_remove_value'] = 'cap, esborrar valor';
$lang['really_delete_attribute'] = 'Esborrar realment l\'atribut?';
// Schema browser
$lang['the_following_objectclasses'] = 'Les seg<65>ents <b>ObjectClass</b> s<>n presents en aquest servidor LDAP.';
$lang['the_following_attributes'] = 'Les seg<65>ents <b>attributeTypes</b> s<>n presents en aquest servidor LDAP.';
$lang['the_following_matching'] = 'Les seg<65>ents <b>matching rules</b> s<>n presents en aquest servidor LDAP.';
$lang['the_following_syntaxes'] = 'Les seg<65>ents <b>sintaxis</b> s<>n presents en aquest servidor LDAP.';
$lang['jump_to_objectclass'] = 'Saltar a una ObjectClass';
$lang['jump_to_attr'] = 'Saltar a un atribut';
$lang['schema_for_server'] = 'Esquema del servidor ';
$lang['required_attrs'] = 'Atributs Requerits (MUST)';
$lang['optional_attrs'] = 'Atributs Opcionals (MAY)';
$lang['OID'] = 'OID';
$lang['desc'] = 'Descripci<63>';
$lang['name'] = 'Nom';
$lang['is_obsolete'] = 'Aquesta ObjectClass <20>s <b>obsoleta</b>';
$lang['inherits'] = 'Hereda';
$lang['jump_to_this_oclass'] = 'Saltar a aquesta ObjectClass';
$lang['matching_rule_oid'] = 'OID de Matching Rule';
$lang['syntax_oid'] = 'OID de Sintaxi';
$lang['not_applicable'] = 'no es aplicable';
$lang['not_specified'] = 'no especificada';
// Deleting entries
$lang['entry_deleted_successfully'] = 'Entrada \'%s\' esborrada correctament.';
$lang['you_must_specify_a_dn'] = 'Has d\'especificar un DN';
$lang['could_not_delete_entry'] = 'No he pogut esborrar l\'entrada: %s';
// Adding objectClass form
$lang['new_required_attrs'] = 'Nous atributs requerits';
$lang['requires_to_add'] = 'Aquesta acci<63> exigeix que s\'afegeixin';
$lang['new_attributes'] = 'nous atributs';
$lang['new_required_attrs_instructions'] = 'Instruccions: Per afegir aquesta ObjectClass a aquest objecte, s\'ha d\'especificar';
$lang['that_this_oclass_requires'] = 'que aquest ObjectClass requereix. Es pot fer amb aquest formulari.';
$lang['add_oclass_and_attrs'] = 'Afegir ObjectClass i Atributs';
// General
$lang['chooser_link_tooltip'] = 'Fer click per seleccionar un objecte gr<67>ficament';
$lang['no_updates_in_read_only_mode'] = 'No es pot modificar l\'objecte si el servidor est<73> operant en mode inalterable.';
$lang['bad_server_id'] = 'L\'identificador de servidor est<73> malament';
$lang['not_enough_login_info'] = 'No tinc suficient informaci<63> per conectar al servidor. Si us plau configurar correctament l\'arxiu config.php';
$lang['could_not_connect'] = 'No s\'ha pogut conectar al servidor LDAP';
$lang['could_not_perform_ldap_mod_add'] = 'No s\'ha pogut fer l\'operaci<63> del ldap_mod_add.';
$lang['bad_server_id_underline'] = 'L\'identificador del servidor est<73> malament: ';
$lang['success'] = 'Exit';
$lang['server_colon_pare'] = 'Servidor: ';
$lang['look_in'] = 'Buscant a: ';
$lang['missing_server_id_in_query_string'] = 'No est<73> present l\'identificador del servidor a la URL';
$lang['missing_dn_in_query_string'] = 'No est<73> present el DN a la URL';
$lang['back_up_p'] = 'Tornar a...';
$lang['no_entries'] = 'no hi han entrades';
$lang['not_logged_in'] = 'No est<73>s autenticat';
$lang['could_not_det_base_dn'] = 'No he pogut determinar la base DN';
// Add value form
$lang['add_new'] = 'Afegir';
$lang['value_to'] = 'valor a';
$lang['server'] = 'Servidor';
$lang['distinguished_name'] = 'Nom distinguit';
$lang['current_list_of'] = 'La llista actual de';
$lang['values_for_attribute'] = 'valors per a l\'atribut';
$lang['inappropriate_matching_note'] = 'Nota: Sino has configurat una regla \'EQUALITY\' al servidor LDAP, rebr<62>s un error \'inappropriate matching\'';
$lang['enter_value_to_add'] = 'Prove<76>r el valor per afegir: ';
$lang['new_required_attrs_note'] = 'Nota: Es posible que es requereixi afegir nous atributs per satisfer els requisits d\'aquesta ObjectClass';
$lang['syntax'] = 'Sintaxi';
//copy.php
$lang['copy_server_read_only'] = 'No es poden realitzar les modificacions si el servidor est<73> operant en mode inalterable';
$lang['copy_dest_dn_blank'] = 'No se emplenat el formulari de DN.';
$lang['copy_dest_already_exists'] = 'L\'entrada de dest<73> (%s) encara existeix.';
$lang['copy_dest_container_does_not_exist'] = 'El contenidor de dest<73> (%s) no existeix.';
$lang['copy_source_dest_dn_same'] = 'El DN de la font i el DN de dest<73> son els mateixos.';
$lang['copy_copying'] = 'Copiant ';
$lang['copy_recursive_copy_progress'] = 'El progr<67>s de la c<>pia recurrent';
$lang['copy_building_snapshot'] = 'Constru<72>nt la \'foto\' de l\'arbre per a copiar... ';
$lang['copy_successful_like_to'] = 'Exit! Desitges ';
$lang['copy_view_new_entry'] = 'Veure el nou objecte?';
$lang['copy_failed'] = 'Fallida al copiar DN: ';
//edit.php
$lang['missing_template_file'] = 'Error: falta la plantilla, ';
$lang['using_default'] = 'Fent anar l\'arxiu per defecte.';
//copy_form.php
$lang['copyf_title_copy'] = 'Copiar ';
$lang['copyf_to_new_object'] = 'a un objecte nou';
$lang['copyf_dest_dn'] = 'DN de dest<73>';
$lang['copyf_dest_dn_tooltip'] = 'El DN sencer de la nova entrada a ser creada quan es copii l\'entrada font';
$lang['copyf_dest_server'] = 'Servidor de dest<73>';
$lang['copyf_note'] = 'Nota: Copiar entre dos servidor funciona solsament si no hi han violacions de l\'esquema.';
$lang['copyf_recursive_copy'] = 'Esborrar tots els fills recurrentment tamb<6D>?';
//create.php
$lang['create_required_attribute'] = 'T\'has deixar el valor en blanc de l\'atribut requerit <b>%s</b>.';
$lang['create_redirecting'] = 'Redirigint';
$lang['create_here'] = 'aqu<71>';
$lang['create_could_not_add'] = 'No he pogut afegir l\'objecte al servidor LDAP.';
//create_form.php
$lang['createf_create_object'] = 'Crear Objecte';
$lang['createf_choose_temp'] = 'Escull una plantilla';
$lang['createf_select_temp'] = 'Selecciona una plantilla per al proc<6F>s de creaci<63>';
$lang['createf_proceed'] = 'Procedir';
//creation_template.php
$lang['ctemplate_on_server'] = 'Al servidor';
$lang['ctemplate_no_template'] = 'No s\'ha especificat cap plantilla a les variables del POST.';
$lang['ctemplate_config_handler'] = 'La teva configuraci<63> especifica un manejador de';
$lang['ctemplate_handler_does_not_exist'] = 'per aquesta plantilla. Per<65>, aquest manejador no existeix al directori \'plantilla/creaci<63>\'.';
// search.php
$lang['you_have_not_logged_into_server'] = 'Encara no t\'has autenticat al servidor selectionat, no pots fer cap recerca.';
$lang['click_to_go_to_login_form'] = 'Clica aqu<71> per anar al formulari d\'autenticaci<63>';
$lang['unrecognized_criteria_option'] = 'Opci<63> de criteri desconeguda: ';
$lang['if_you_want_to_add_criteria'] = 'Si vols afegir el teu propi criteri a la llista. Estigues segur d\'editar search.php per manejar-lo. Sortint.';
$lang['entries_found'] = 'Entrades trobades: ';
$lang['filter_performed'] = 'Filtre realitzat: ';
$lang['search_duration'] = 'Recerca realitzada per phpLDAPadmin a';
$lang['seconds'] = 'segons';
// search_form_advanced.php
$lang['scope_in_which_to_search'] = 'L\'abast en el que buscar';
$lang['scope_sub'] = 'Sub (tot el sub-arbre)';
$lang['scope_one'] = 'Un (un nivell per d\'avall de la base)';
$lang['scope_base'] = 'Base (sols base dn)';
$lang['standard_ldap_search_filter'] = 'Filtre de recerca est<73>ndar de LDAP. Exemple: (&(sn=Smith)(givenname=David))';
$lang['search_filter'] = 'Filtre de recerca';
$lang['list_of_attrs_to_display_in_results'] = 'Una llista d\'atributs per mostrar als resultats (separats per comes)';
$lang['show_attributes'] = 'Mostrar atributs';
// search_form_simple.php
$lang['search_for_entries_whose'] = 'Buscar entrades les quals:';
$lang['equals'] = 'sigui igual';
$lang['starts with'] = 'comenci amb';
$lang['contains'] = 'contingui';
$lang['ends with'] = 'acabi amb';
$lang['sounds like'] = 'soni com';
// server_info.php
$lang['could_not_fetch_server_info'] = 'No s\'ha pogut treure informaci<63> LDAP del servidor';
$lang['server_info_for'] = 'Informaci<63> del servidor per a: ';
$lang['server_reports_following'] = 'El servidor mostra la seg<65>ent informaci<63> sobre ell mateix';
$lang['nothing_to_report'] = 'Aquest servidor no t<> res a mostrar.';
//update.php
$lang['update_array_malformed'] = 'l\'update_array est<73> malformat. Aix<69> podria ser una errada del phpLDAPadmin. Si us plau reportala.';
$lang['could_not_perform_ldap_modify'] = 'No he pogut executar l\'operaci<63> ldap_modify.';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = 'Vols fer aquests canvis?';
$lang['attribute'] = 'Atribut';
$lang['old_value'] = 'Valor vell';
$lang['new_value'] = 'Valor nou';
$lang['attr_deleted'] = '[atribut esborrat]';
$lang['commit'] = 'Cometre';
$lang['cancel'] = 'Cancel.lar';
$lang['you_made_no_changes'] = 'No has fet cap canvi';
$lang['go_back'] = 'Tornar enrera';
// welcome.php
$lang['welcome_note'] = 'Fes anar el men<65> de l\'esquerra per a navegar';
$lang['credits'] = "Cr<EFBFBD>dits";
$lang['changelog'] = "Hist<EFBFBD>ric de canvis";
$lang['documentation'] = "Documentaci<EFBFBD>";
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Nom d\'arxiu insegur: ';
$lang['no_such_file'] = 'Arxiu no existent: ';
//function.php
$lang['auto_update_not_setup'] = 'Has activat els auto_uid_numbers per <b>%s</b> a la teva configuraci<63>,
pero no has especificat l\'auto_uid_number_mechanism. Si us plau soluciona
aquest problema.';
$lang['uidpool_not_set'] = 'Has especificat l\'<tt>auto_uid_number_mechanism</tt> com <tt>uidpool</tt>
a la teva configuraci<63> per al servidor <b>%s</b>, pero no has especificat el
audo_uid_number_uid_pool_dn. Si us plau especifica\'l avans de procedir.';
$lang['uidpool_not_exist'] = 'Sembla ser que el uidPool que has especificat a la teva configuraci<63> (<tt>%s</tt>)
no existeix.';
$lang['specified_uidpool'] = 'Has especificat l\'<tt>auto_uid_number_mechanism</tt> com <tt>search</tt> a la teva
configuraci<63> per al servidor <b>%s</b>, pero no has especificat el
<tt>auto_uid_number_search_base</tt>. Si us plau especifica\'l avans de procedir.';
$lang['auto_uid_invalid_value'] = 'Has especificat un valor no v<>lid per a l\'auto_uid_number_mechanism (<tt>%s</tt>)
a la teva configuraci<63>. Sols <tt>uidpool</tt> i <tt>search</tt> son v<>lids.
Si us plau soluciona aquest problema.';
$lang['error_auth_type_config'] = 'Error: Tens un error al teu arxiu de configuraci<63>. Els dos <20>nics valors acceptats per
\'auth_type\' a la secci<63> $servers son \'config\' i \'form\'. Tu has ficat \'%s\',
el qual no est<73> acceptat. ';
$lang['php_install_not_supports_tls'] = 'La teva instalaci<63> de PHP no soporta TLS';
$lang['could_not_start_tls'] = 'No he pogut iniciar el TLS.<br />Revisa la teva configuraci<63> del servidor LDAP.';
$lang['auth_type_not_valid'] = 'Tens un error a l\'arxiu de configuraci<63>. auth_type de %s no es v<>lid.';
$lang['ldap_said'] = '<b>LDAP digu<67></b>: %s<br /><br />';
$lang['ferror_error'] = 'Error';
$lang['fbrowse'] = 'mostrar';
$lang['delete_photo'] = 'Esborrar foto';
$lang['install_not_support_blowfish'] = 'La teva instalaci<63> de PHP no soporta el tipus d\'encriptaci<63> blowfish.';
$lang['install_no_mash'] = 'La teva instalaci<63> de PHP no t<> la funci<63> mhash(). No puc fer hash SHA.';
$lang['jpeg_contains_errors'] = 'jpegPhoto cont<6E> errors<br />';
$lang['ferror_number'] = '<b>Error n<>mero</b>: %s <small>(%s)</small><br /><br />';
$lang['ferror_discription'] = '<b>Descripci<63></b>: %s <br /><br />';
$lang['ferror_number_short'] = '<b>Error n<>mero</b>: %s<br /><br />';
$lang['ferror_discription_short'] = '<b>Descripci<63></b>: (no hi ha descripci<63>)<br />';
$lang['ferror_submit_bug'] = 'Es una errada del phpLDAPadmin? Si ho <20>s, si us plau <a href=\'%s\'>diguen\'s-ho</a>.';
$lang['ferror_unrecognized_num'] = 'N<>mero d\'error desconegut: ';
$lang['ferror_nonfatil_bug'] = '<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' />
<b>Has trobat un error fatal del phpLDAPadmin!</b></td></tr><tr><td>Error:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Arxiu:</td>
<td><b>%s</b> l<>nia <b>%s</b>, caller <b>%s</b></td></tr><tr><td>Versions:</td><td>PLA: <b>%s</b>, PHP: <b>%s</b>, SAPI: <b>%s</b>
</td></tr><tr><td>Servidor Web:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>
Env<6E>a aquesta errada fent click aqu<71></a>.</center></td></tr></table></center><br />';
$lang['ferror_congrats_found_bug'] = 'Felicitats! Has trobat una errada al phpLDAPadmin.<br /><br />
<table class=\'bug\'>
<tr><td>Error:</td><td><b>%s</b></td></tr>
<tr><td>Nivell:</td><td><b>%s</b></td></tr>
<tr><td>Arxiu:</td><td><b>%s</b></td></tr>
<tr><td>L<>nia:</td><td><b>%s</b></td></tr>
<tr><td>Caller:</td><td><b>%s</b></td></tr>
<tr><td>Versi<73> PLA:</td><td><b>%s</b></td></tr>
<tr><td>Versi<73> PHP:</td><td><b>%s</b></td></tr>
<tr><td>PHP SAPI:</td><td><b>%s</b></td></tr>
<tr><td>Servidor Web:</td><td><b>%s</b></td></tr>
</table>
<br />
Si us plau env<6E>a aquesta errada fent click abaix!';
//ldif_import_form
$lang['import_ldif_file_title'] = 'Importar arxiu LDIF';
$lang['select_ldif_file'] = 'Selecciona un arxiu LDIF:';
$lang['select_ldif_file_proceed'] = 'Procedir &gt;&gt;';
//ldif_import
$lang['add_action'] = 'Afegint...';
$lang['delete_action'] = 'Esborrant...';
$lang['rename_action'] = 'Renombrant...';
$lang['modify_action'] = 'Modificant...';
$lang['failed'] = 'fallat';
$lang['ldif_parse_error'] = 'Error de parsejat LDIF';
$lang['ldif_could_not_add_object'] = 'No he pogut afegir l\'objecte:';
$lang['ldif_could_not_rename_object'] = 'No he pogut renombrar l\'objecte:';
$lang['ldif_could_not_delete_object'] = 'No he pogut esborrar l\'objecte:';
$lang['ldif_could_not_modify_object'] = 'No he pogut modificar l\'objecte:';
$lang['ldif_line_number'] = 'L<>nia N<>mero:';
$lang['ldif_line'] = 'L<>nia:';
?>

View File

@@ -1,510 +0,0 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/cz.php,v 1.2 2004/06/01 19:39:52 i18phpldapadmin Exp $
/**
* Translated to Czech by Radek "rush" Senfeld <rush@logic.cz>
* --- INSTRUCTIONS FOR TRANSLATORS ---
*
* If you want to write a new language file for your language,
* please submit the file on SourceForge:
*
* https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498548
*
* Use the option "Check to Upload and Attach a File" at the bottom
*
* Thank you!
*
*/
// Search form
$lang['simple_search_form_str'] = 'Rychl<68> vyhled<65>v<EFBFBD>n<EFBFBD>';
$lang['advanced_search_form_str'] = 'Roz<6F><7A><EFBFBD>en<65> vyhled<65>v<EFBFBD>n<EFBFBD>';
$lang['server'] = 'Server';
$lang['search_for_entries_whose'] = 'Vyhledat objekty kde';
$lang['base_dn'] = 'V<>choz<6F> <acronym title="Distinguished Name">DN</acronym>';
$lang['search_scope'] = 'Oblast prohled<65>v<EFBFBD>n<EFBFBD>';
$lang['show_attributes'] = 'Zobrazovat atributy';
$lang['Search'] = 'Vyhledat';
$lang['predefined_search_str'] = 'Zvolte p<>eddefinovan<61> vyhled<65>v<EFBFBD>n<EFBFBD>';
$lang['predefined_searches'] = 'P<>eddefinovan<61> vyhled<65>v<EFBFBD>n<EFBFBD>';
$lang['no_predefined_queries'] = 'V config.php nejsou definov<6F>ny <20><>dn<64> dotazy.';
// Tree browser
$lang['request_new_feature'] = 'Napi<70>te si o novou funkci';
$lang['report_bug'] = 'Nahl<68>sit chybu';
$lang['schema'] = 'sch<63>ma';
$lang['search'] = 'vyhledat';
$lang['create'] = 'vytvo<76>it';
$lang['info'] = 'info';
$lang['import'] = 'import';
$lang['refresh'] = 'obnovit';
$lang['logout'] = 'odhl<68>sit se';
$lang['create_new'] = 'Vytvo<76>it nov<6F>';
$lang['view_schema_for'] = 'Zobrazit sch<63>ma pro';
$lang['refresh_expanded_containers'] = 'Obnovit v<>echny otev<65>en<65> slo<6C>ky';
$lang['create_new_entry_on'] = 'Vytvo<76>it nov<6F> objekt v';
$lang['new'] = 'nov<6F>';
$lang['view_server_info'] = 'Zobrazit serverem poskytovan<61> informace';
$lang['import_from_ldif'] = 'Importovat data ze souboru LDIF';
$lang['logout_of_this_server'] = 'Odhl<68>sit se od tohoto serveru';
$lang['logged_in_as'] = 'P<>ihl<68><6C>en jako: ';
$lang['read_only'] = 'jen pro <20>ten<65>';
$lang['read_only_tooltip'] = 'Tento atribut byl administr<74>torem phpLDAPadminu ozna<6E>en jako "jen pro <20>ten<65>".';
$lang['could_not_determine_root'] = 'Nepoda<64>ilo se zjistit ko<6B>en Va<56>eho LDAP stromu.';
$lang['ldap_refuses_to_give_root'] = 'Zd<5A> se, <20>e LDAP server je nastaven<65> tak, <20>e nezobrazuje sv<73>j ko<6B>en.';
$lang['please_specify_in_config'] = 'Nastavte ho pros<6F>m v souboru config.php';
$lang['create_new_entry_in'] = 'Vytvo<76>it nov<6F> objekt v';
$lang['login_link'] = 'P<>ihl<68>sit se...';
$lang['login'] = 'p<>ihl<68>sit';
// Entry display
$lang['delete_this_entry'] = 'Smazat tento objekt';
$lang['delete_this_entry_tooltip'] = 'Budete po<70><6F>d<EFBFBD>ni o potvrzen<65> tohoto rozhodnut<75>';
$lang['copy_this_entry'] = 'Kop<6F>rovat tento objekt';
$lang['copy_this_entry_tooltip'] = 'Okop<6F>ruje tento objekt do jin<69>ho um<75>st<73>n<EFBFBD>, nov<6F>ho DN, nebo na jin<69> server';
$lang['export'] = 'Export';
$lang['export_tooltip'] = 'Ulo<6C>it p<>epis objektu';
$lang['export_subtree_tooltip'] = 'Ulo<6C><6F> p<>epis tohoto objektu a v<>ech jeho potomk<6D>';
$lang['export_subtree'] = 'Exportovat podstrom';
$lang['create_a_child_entry'] = 'Vytvo<76>it nov<6F>ho potomka';
$lang['rename_entry'] = 'P<>ejmenovat objekt';
$lang['rename'] = 'P<>ejmenovat';
$lang['add'] = 'P<>idat';
$lang['view'] = 'Zobrazit';
$lang['view_one_child'] = 'Zobrazit potomka';
$lang['view_children'] = 'Zobrazit potomky (%s)';
$lang['add_new_attribute'] = 'P<>idat nov<6F> atribut';
$lang['add_new_objectclass'] = 'P<>idat objectClass';
$lang['hide_internal_attrs'] = 'Schovat intern<72> atributy';
$lang['show_internal_attrs'] = 'Zobrazit intern<72> atributy';
$lang['attr_name_tooltip'] = 'Klepnut<75>m zobraz<61>te defini<6E>n<EFBFBD> sch<63>ma pro atribut typu \'%s\'';
$lang['none'] = '<27><>dn<64>';
$lang['no_internal_attributes'] = '<27><>dn<64> intern<72> atributy';
$lang['no_attributes'] = 'Tento objekt nem<65> atributy';
$lang['save_changes'] = 'Ulo<6C>it zm<7A>ny';
$lang['add_value'] = 'p<>idat hodnotu';
$lang['add_value_tooltip'] = 'P<>id<69> dal<61><6C> hodnotu k atributu \'%s\'';
$lang['refresh_entry'] = 'Obnovit';
$lang['refresh_this_entry'] = 'Obnovit tento objekt';
$lang['delete_hint'] = 'Rada: <b>Pro smaz<61>n<EFBFBD> atributu</b> vypr<70>zd<7A>te textov<6F> pol<6F><6C>ko a klepn<70>te na Ulo<6C>it.';
$lang['attr_schema_hint'] = 'Rada: <b>K zobrazen<65> sch<63>mata pro atribut</b> klepn<70>te na n<>zev atributu.';
$lang['attrs_modified'] = 'N<>kter<65> atributy (%s) byly modifikov<6F>n<EFBFBD> a jsou zv<7A>razn<7A>ny dole.';
$lang['attr_modified'] = 'Atribut (%s) byl zm<7A>n<EFBFBD>n a je zv<7A>razn<7A>n dole.';
$lang['viewing_read_only'] = 'Prohl<68><6C>en<65> objekt v m<>du "pouze pro <20>ten<65>".';
$lang['no_new_attrs_available'] = 'nejsou dostupn<70> <20><>dn<64> nov<6F> atributy pro tento objekt';
$lang['no_new_binary_attrs_available'] = 'nejsou dostupn<70> <20><>dn<64> nov<6F> bin<69>rn<72> atributy pro tento objekt';
$lang['binary_value'] = 'Binarn<72> hodnota';
$lang['add_new_binary_attr'] = 'P<>idat nov<6F> binarn<72> atribut';
$lang['alias_for'] = 'Pozn<7A>mka: \'%s\' je aliasem pro \'%s\'';
$lang['download_value'] = 'st<73>hnout data';
$lang['delete_attribute'] = 'smazat atribut';
$lang['true'] = 'true';
$lang['false'] = 'false';
$lang['none_remove_value'] = '<27><>dn<64>, odebrat hodnotu';
$lang['really_delete_attribute'] = 'Skute<74>n<EFBFBD> smazat atribut';
$lang['add_new_value'] = 'P<>idat novou hodnotu';
// Schema browser
$lang['the_following_objectclasses'] = 'N<>sleduj<75>c<EFBFBD> <b>objectClass</b> jsou podporov<6F>ny t<>mto LDAP serverem.';
$lang['the_following_attributes'] = 'N<>sleduj<75>c<EFBFBD> <b>attributeType</b> jsou podporov<6F>ny t<>mto LDAP serverem.';
$lang['the_following_matching'] = 'N<>sleduj<75>c<EFBFBD> <b>krit<69>ria v<>b<EFBFBD>ru</b> jsou podporov<6F>ny t<>mto LDAP serverem.';
$lang['the_following_syntaxes'] = 'N<>sleduj<75>c<EFBFBD> <b>syntaxe</b> jsou podporov<6F>ny t<>mto LDAP serverem.';
$lang['schema_retrieve_error_1']='Server pln<6C> nepodporuje LDAP protocol.';
$lang['schema_retrieve_error_2']='Va<56>e verze PHP korektn<74> neprovede tento dotaz.';
$lang['schema_retrieve_error_3']='Nebo mo<6D>n<EFBFBD> phpLDAPadmin nev<65> jak z<>skat sch<63>ma pro V<><56> server.';
$lang['jump_to_objectclass'] = 'Jdi na objectClass';
$lang['jump_to_attr'] = 'Jdi na typ atributu';
$lang['jump_to_matching_rule'] = 'Jdi na Matching Rule';
$lang['schema_for_server'] = 'Sch<63>ma serveru';
$lang['required_attrs'] = 'Vy<56>adovan<61> atributy';
$lang['optional_attrs'] = 'Voliteln<6C> atributy';
$lang['optional_binary_attrs'] = 'Voliteln<6C> bin<69>rn<72> atributy';
$lang['OID'] = 'OID';
$lang['aliases']='Aliasy';
$lang['desc'] = 'Popis';
$lang['no_description']='<27><>dn<64> popis';
$lang['name'] = 'N<>zev';
$lang['equality']='Equality';
$lang['is_obsolete'] = 'Tato objectClass je <b>zastaral<61></b>';
$lang['inherits'] = 'Odvozeno od objectClass';
$lang['inherited_from'] = 'Odvozeno od objectClass';
$lang['parent_to'] = 'Rodi<64>ovsk<73> objectClass';
$lang['jump_to_this_oclass'] = 'Jdi na definici t<>to objectClass';
$lang['matching_rule_oid'] = 'V<>b<EFBFBD>rov<6F> krit<69>rium OID';
$lang['syntax_oid'] = 'Syntaxe OID';
$lang['not_applicable'] = 'nepou<6F>iteln<6C>';
$lang['not_specified'] = 'nespecifikovan<61>';
$lang['character']='znak';
$lang['characters']='znak<61>';
$lang['used_by_objectclasses']='Pou<6F><75>v<EFBFBD>no t<>mito objectClass';
$lang['used_by_attributes']='Pou<6F><75>vaj<61> atributy';
$lang['maximum_length']='Maxim<69>ln<6C> d<>lka';
$lang['attributes']='Typy atribut<75>';
$lang['syntaxes']='Syntaxe';
$lang['matchingrules']='Matching Rules';
$lang['oid']='OID';
$lang['obsolete']='Zastaral<61>';
$lang['ordering']='<27>azen<65>';
$lang['substring_rule']='Substring Rule';
$lang['single_valued']='Single Valued';
$lang['collective']='Collective';
$lang['user_modification']='User Modification';
$lang['usage']='Pou<6F>it<69>';
$lang['could_not_retrieve_schema_from']='Nelze z<>skat sch<63>ma z';
$lang['type']='Typ';
// Deleting entries
$lang['entry_deleted_successfully'] = 'Objekt \'%s\' byl <20>sp<73><70>n<EFBFBD> odstran<61>n.';
$lang['you_must_specify_a_dn'] = 'Mus<75>te zadat DN';
$lang['could_not_delete_entry'] = 'Nebylo mo<6D>n<EFBFBD> odstranit objekt: %s';
$lang['no_such_entry'] = 'Objekt neexistuje: %s';
$lang['delete_dn'] = 'Smazat %s';
$lang['permanently_delete_children'] = 'Odstranit tak<61> v<>echny potomky?';
$lang['entry_is_root_sub_tree'] = 'Tento objekt je ko<6B>enem podstromu, kter<65> obsahuje %s objekt<6B>.';
$lang['view_entries'] = 'zobrazit objekty';
$lang['confirm_recursive_delete'] = 'phpLDAPadmin rekurzivn<76> odstran<61> tento objekt a v<>ech jeho %s potomk<6D>. Pozorn<72> si prohl<68>dn<64>te seznam objekt<6B>, kter<65> tato operace odstran<61>. P<>ejete si pokra<72>ovat?';
$lang['confirm_recursive_delete_note'] = 'Pozn<7A>mka: tato operace m<><6D>e m<>t fat<61>ln<6C> n<>sledky a nelze ji vr<76>tit zp<7A>t. Speci<63>ln<6C> pozornost v<>nujte alias<61>m, odkaz<61>m a ostatn<74>m v<>cem, kter<65> m<><6D>ou zp<7A>sobit probl<62>my.';
$lang['delete_all_x_objects'] = 'Smazat v<>ech %s objekt<6B>';
$lang['recursive_delete_progress'] = 'Pr<50>b<EFBFBD>h rekurzivn<76>ho odstran<61>n<EFBFBD>';
$lang['entry_and_sub_tree_deleted_successfully'] = 'Objekt %s a jeho podstrom byly <20>sp<73><70>n<EFBFBD> odstran<61>ny.';
$lang['failed_to_delete_entry'] = 'Nepoda<64>ilo se odstranit objekt %s';
$lang['list_of_entries_to_be_deleted'] = 'Seznam objekt<6B> k odstran<61>n<EFBFBD>:';
$lang['sure_permanent_delete_object']='Jste si skute<74>n<EFBFBD> jisti, <20>e chcete odstranit tento objekt?';
$lang['dn'] = 'DN';
// Deleting attributes
$lang['attr_is_read_only'] = 'Atribut "%s" je v konfiguraci phpLDAPadminu ozna<6E>en jako "jen pro <20>ten<65>".';
$lang['no_attr_specified'] = 'Nebylo zad<61>no jm<6A>no atributu.';
$lang['no_dn_specified'] = 'Nebylo zad<61>no DN';
// Adding attributes
$lang['left_attr_blank'] = 'Nevyplnili jste hodnotu atributu. Vra<72>te se zp<7A>t a akci opakujte.';
$lang['failed_to_add_attr'] = 'P<>id<69>n<EFBFBD> atributu selhalo.';
$lang['file_empty'] = 'Soubor, kter<65> jste zvolili je bu<62> pr<70>zdn<64> nebo neexistuje. Vra<72>te se pros<6F>m zp<7A>t a akci opakujte.';
$lang['invalid_file'] = 'Bezpe<70>nostn<74> chyba: Soubor, kter<65> uploadujete m<><6D>e b<>t z<>vadn<64>.';
$lang['warning_file_uploads_disabled'] = 'V konfiguraci PHP jsou zak<61>z<EFBFBD>ny uploady soubor<6F>. Pro pokra<72>ov<6F>n<EFBFBD> upravte pros<6F>m php.ini.';
$lang['uploaded_file_too_big'] = 'Soubor, kter<65> se pokou<6F>eli ulo<6C>it je p<><70>li<6C> velik<69>. Upravte pros<6F>m hodnotu upload_max_size v php.ini.';
$lang['uploaded_file_partial'] = 'P<>i uploadu souboru do<64>lo z<>ejm<6A> k selh<6C>n<EFBFBD> s<>t<EFBFBD>, nebo<62> se poda<64>ilo z<>skat jen <20><>st souboru.';
$lang['max_file_size'] = 'Maxim<69>ln<6C> velikost souboru: %s';
// Updating values
$lang['modification_successful'] = '<27>prava prob<6F>hla <20>sp<73><70>n<EFBFBD>!';
$lang['change_password_new_login'] = 'Kv<4B>li zm<7A>n<EFBFBD> sv<73>ho hesla se nyn<79> mus<75>te p<>ihl<68>sit znova - s nov<6F>m heslem.';
// Adding objectClass form
$lang['new_required_attrs'] = 'Nov<6F> vy<76>adovan<61> atribut';
$lang['requires_to_add'] = 'K proveden<65> t<>to akce mus<75>te p<>idat';
$lang['new_attributes'] = 'nov<6F> atributy';
$lang['new_required_attrs_instructions'] = 'N<>vod: K p<>i<EFBFBD>azen<65> t<>to objectClass k vybran<61>mu objektu mus<75>te zadat';
$lang['that_this_oclass_requires'] = 'atributy, kter<65> jsou touto objectClass vy<76>adov<6F>ny. M<><4D>ete tak u<>init v tomto formul<75><6C>i.';
$lang['add_oclass_and_attrs'] = 'P<>idat objectClass a atributy';
$lang['objectclasses'] = 'objectClassy';
// General
$lang['chooser_link_tooltip'] = 'Otev<65>e popup okno, ve kter<65>m zvol<6F>te DN';
$lang['no_updates_in_read_only_mode'] = 'Nelze prov<6F>d<EFBFBD>t <20>pravy dokud je server v m<>du "pouze pro <20>ten<65>"';
$lang['bad_server_id'] = '<27>patn<74> ID serveru';
$lang['not_enough_login_info'] = 'Nedostatek informac<61> pro p<>ihl<68><6C>en<65> k serveru. Ov<4F><76>te pros<6F>m nastaven<65>.';
$lang['could_not_connect'] = 'Nelze se p<>ipojit k LDAP serveru.';
$lang['could_not_connect_to_host_on_port'] = 'Nelze se p<>ipojit k "%s" na portu "%s"';
$lang['could_not_perform_ldap_mod_add'] = 'Nelze prov<6F>st ldap_mod_add operaci.';
$lang['bad_server_id_underline'] = 'server_id: ';
$lang['success'] = 'Hotovo';
$lang['server_colon_pare'] = 'Server: ';
$lang['look_in'] = 'Prohl<68><6C>en<65>: ';
$lang['missing_server_id_in_query_string'] = 'V po<70>adavku nebylo uvedeno <20><>dn<64> ID serveru!';
$lang['missing_dn_in_query_string'] = 'V po<70>adavku nebyl uveden <20><>dn<64> DN!';
$lang['back_up_p'] = 'O <20>rove<76> v<><76>...';
$lang['no_entries'] = '<27><>dn<64> objekty';
$lang['not_logged_in'] = 'Nep<65>ihl<68><6C>en';
$lang['could_not_det_base_dn'] = 'Nelze zjistit v<>choz<6F> DN';
$lang['please_report_this_as_a_bug']='Nahla<6C>te toto pros<6F>m jako chybu.';
$lang['reasons_for_error']='Toto se m<><6D>e p<>ihodit z n<>kolika p<><70><EFBFBD>in. Nejpravd<76>podobn<62>j<EFBFBD><6A> jsou:';
$lang['yes']='Ano';
$lang['no']='Ne';
$lang['go']='Jdi';
$lang['delete']='Odstranit';
$lang['back']='Zp<5A>t';
$lang['object']='objekt';
$lang['delete_all']='Odstranit v<>e';
$lang['url_bug_report']='https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498546';
$lang['hint'] = 'rada';
$lang['bug'] = 'chyba';
$lang['warning'] = 'upozorn<72>n<EFBFBD>';
$lang['light'] = 'light'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = 'Prove<76> &gt;&gt;';
// Add value form
$lang['add_new'] = 'P<>idat nov<6F>';
$lang['value_to'] = 'hodnota pro';
$lang['distinguished_name'] = 'Distinguished Name';
$lang['current_list_of'] = 'Sou<6F>asn<73> v<>pis';
$lang['values_for_attribute'] = 'hodnoty pro atribut';
$lang['inappropriate_matching_note'] = 'Pozn<7A>mka: Pokud nenastav<61>te na tomto LDAP serveru pravidlo<br /><tt>EQUALITY</tt> pro tento atribut, dojde k chyb<79> p<>i v<>b<EFBFBD>ru objekt<6B>.';
$lang['enter_value_to_add'] = 'Zadejte hodnotu, kterou chcete p<>idat:';
$lang['new_required_attrs_note'] = 'Pozn<7A>mka: Nen<65> vylou<6F>en<65>, <20>e budete vyzv<7A>ni k zad<61>n<EFBFBD> nov<6F>ch atribut<75> vy<76>adovan<61>ch touto objectClass';
$lang['syntax'] = 'Syntaxe';
//copy.php
$lang['copy_server_read_only'] = 'Nem<65><6D>ete prov<6F>d<EFBFBD>t zm<7A>ny dokud je server v m<>du "jen pro <20>ten<65>"';
$lang['copy_dest_dn_blank'] = 'Ponechali jste kolonku c<>lov<6F> DN pr<70>zdnou.';
$lang['copy_dest_already_exists'] = 'Objekt (%s) ji<6A> v c<>lov<6F>m DN existuje.';
$lang['copy_dest_container_does_not_exist'] = 'C<>lov<6F> slo<6C>ka (%s) neexistuje.';
$lang['copy_source_dest_dn_same'] = 'Zdrojov<6F> a c<>lov<6F> DN se shoduj<75>.';
$lang['copy_copying'] = 'Kop<6F>ruji ';
$lang['copy_recursive_copy_progress'] = 'Pr<50>b<EFBFBD>h rekurzivn<76>ho kop<6F>rov<6F>n<EFBFBD>';
$lang['copy_building_snapshot'] = 'Sestavuji obraz stromu ke kop<6F>rov<6F>n<EFBFBD>... ';
$lang['copy_successful_like_to'] = 'Kopie <20>sp<73><70>n<EFBFBD> dokon<6F>ena! P<>ejete si ';
$lang['copy_view_new_entry'] = 'zobrazit nov<6F> objekt';
$lang['copy_failed'] = 'Nepoda<64>ilo se okop<6F>rovat DN: ';
//edit.php
$lang['missing_template_file'] = 'Upozorn<72>n<EFBFBD>: chyb<79> <20>ablona, ';
$lang['using_default'] = 'Pou<6F><75>v<EFBFBD>m v<>choz<6F>.';
$lang['template'] = '<27>ablona';
$lang['must_choose_template'] = 'Mus<75>te zvolit <20>ablonu';
$lang['invalid_template'] = '%s je neplatn<74> <20>ablona';
$lang['using_template'] = 'pou<6F><75>t<EFBFBD>m <20>ablony';
$lang['go_to_dn'] = 'Jdi na %s';
//copy_form.php
$lang['copyf_title_copy'] = 'Kop<6F>rovat ';
$lang['copyf_to_new_object'] = 'jako nov<6F> objekt';
$lang['copyf_dest_dn'] = 'C<>lov<6F> DN';
$lang['copyf_dest_dn_tooltip'] = 'Cel<65> DN nov<6F>ho objektu bude vytvo<76>eno kopi<70> zdrojov<6F>ho objektu';
$lang['copyf_dest_server'] = 'C<>lov<6F> server';
$lang['copyf_note'] = 'Rada: Kop<6F>rov<6F>n<EFBFBD> mezi servery funguje jedin<69> za p<>edpokladu, <20>e nedojde k neshod<6F> sch<63>mat';
$lang['copyf_recursive_copy'] = 'P<>i kop<6F>rov<6F>n<EFBFBD> zahrnout v<>echny potomky tohoto objektu.';
$lang['recursive_copy'] = 'Rekurzivn<76> kopie';
$lang['filter'] = 'Filtr';
$lang['filter_tooltip'] = 'P<>i rekurzivn<76> kopii pracovat pouze s objekty, kter<65> spl<70>uj<75> zvolen<65> filtr';
//create.php
$lang['create_required_attribute'] = 'Nevyplnili jste pole pro vy<76>adovan<61> atribut <b>%s</b>.';
$lang['redirecting'] = 'P<>esm<73>rov<6F>v<EFBFBD>m';
$lang['here'] = 'zde';
$lang['create_could_not_add'] = 'Nelze objekt do LDAP serveru p<>idat.';
//create_form.php
$lang['createf_create_object'] = 'Vytvo<76>it objekt';
$lang['createf_choose_temp'] = 'Vyberte <20>ablonu';
$lang['createf_select_temp'] = 'Zvolte <20>ablonu pro vytvo<76>en<65> objektu';
$lang['createf_proceed'] = 'Prov<6F>st';
$lang['rdn_field_blank'] = 'Ponechali jste pole RDN nevypln<6C>n<EFBFBD>.';
$lang['container_does_not_exist'] = 'Slo<6C>ka (%s) neexistuje. Opakujte pros<6F>m akci.';
$lang['no_objectclasses_selected'] = 'Nep<65>i<EFBFBD>adili jste <20><>dn<64> objectClass k tomuto objektu. Vra<72>te se pros<6F>m zp<7A>t a akci opakujte.';
$lang['hint_structural_oclass'] = 'N<>pov<6F>da: Mus<75>te zvolit alespo<70> jednu structural objectClass.';
//creation_template.php
$lang['ctemplate_on_server'] = 'Na serveru';
$lang['ctemplate_no_template'] = 'V POST po<70>adavku nebyla zasl<73>na <20><>dn<64> <20>ablona.';
$lang['ctemplate_config_handler'] = 'Va<56>e nastaven<65> uv<75>d<EFBFBD> obsluhova<76> ';
$lang['ctemplate_handler_does_not_exist'] = 'pro tuto <20>ablonu. Ale tento obsluhova<76> nelze v adres<65><73>i templates/creation nal<61>zt.';
$lang['create_step1'] = 'Krok 1 ze 2: Jm<4A>no a objectClass(y)';
$lang['create_step2'] = 'Krok 2 ze 2: Atributy a hodnoty';
$lang['relative_distinguished_name'] = 'Relativn<76> Distinguished Name';
$lang['rdn'] = 'RDN';
$lang['rdn_example'] = '(p<><70>klad: cn=MujNovyUzivatel)';
$lang['container'] = 'Slo<6C>ka';
$lang['alias_for'] = 'Alias k %s';
// search.php
$lang['you_have_not_logged_into_server'] = 'Nelze prov<6F>d<EFBFBD>t vyhled<65>v<EFBFBD>n<EFBFBD> na serveru bez p<>edchoz<6F>ho p<>ihl<68><6C>en<65>.';
$lang['click_to_go_to_login_form'] = 'Klepnut<75>m budete p<>esm<73>rov<6F>ni na formul<75><6C> k p<>ihl<68><6C>en<65>';
$lang['unrecognized_criteria_option'] = 'Nezn<7A>m<EFBFBD> vyhled<65>vac<61> krit<69>ria: ';
$lang['if_you_want_to_add_criteria'] = 'Pokud si p<>ejete p<>idat svoje vlastn<74> vyhled<65>vac<61> krit<69>ria, ujist<73>te se, <20>e jste je p<>idali do search.php.';
$lang['entries_found'] = 'Nalezen<65> objekty: ';
$lang['filter_performed'] = 'Uplatn<74>n<EFBFBD> filtr: ';
$lang['search_duration'] = 'Vyhled<65>v<EFBFBD>n<EFBFBD> dokon<6F>eno za';
$lang['seconds'] = 'sekund';
// search_form_advanced.php
$lang['scope_in_which_to_search'] = 'Oblast vyhled<65>v<EFBFBD>n<EFBFBD>';
$lang['scope_sub'] = 'Cel<65> podstrom';
$lang['scope_one'] = 'O jednu <20>rove<76> n<><6E>';
$lang['scope_base'] = 'Pouze v<>choz<6F> DN';
$lang['standard_ldap_search_filter'] = 'Standardn<64> LDAP vyhled<65>vac<61> filtr. P<>iklad: (&(sn=Smith)(givenname=David))';
$lang['search_filter'] = 'Vyhled<65>vac<61> filtr';
$lang['list_of_attrs_to_display_in_results'] = 'Seznam atribut<75> zobrazen<65>ch ve v<>sledku hled<65>n<EFBFBD> (odd<64>len<65> <20><>rkou)';
$lang['show_attributes'] = 'Zobrazit atributy';
// search_form_simple.php
$lang['search_for_entries_whose'] = 'Vyhledat objekty kde';
$lang['equals'] = 'je';
$lang['starts with'] = 'za<7A><61>n<EFBFBD> na';
$lang['contains'] = 'obsahuje';
$lang['ends with'] = 'kon<6F><6E> na';
$lang['sounds like'] = 'zn<7A> jako';
// server_info.php
$lang['could_not_fetch_server_info'] = 'Nelze z<>skat informace ze serveru LDAP';
$lang['server_info_for'] = 'Server info pro: ';
$lang['server_reports_following'] = 'Server o sob<6F> poskytuje n<>sleduj<75>c<EFBFBD> informace';
$lang['nothing_to_report'] = 'Server neposkytuje <20><>dn<64> informace.';
//update.php
$lang['update_array_malformed'] = 'update_array je po<70>kozen<65>. M<><4D>e se jednat o chybu v phpLDAPadmin. Pros<6F>me V<>s, abyste chybu nahl<68>sili.';
$lang['could_not_perform_ldap_modify'] = 'Nelze prov<6F>st operaci ldap_modify.';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = 'P<>ejete si prov<6F>st tyto zm<7A>ny?';
$lang['attribute'] = 'Atribut';
$lang['old_value'] = 'P<>vodn<64> hodnota';
$lang['new_value'] = 'Nov<6F> hodnota';
$lang['attr_deleted'] = '[atribut odstran<61>n]';
$lang['commit'] = 'Odeslat';
$lang['cancel'] = 'Storno';
$lang['you_made_no_changes'] = 'Neprovedli jste <20><>dn<64> zm<7A>ny';
$lang['go_back'] = 'Zp<5A>t';
// welcome.php
$lang['welcome_note'] = 'K navigaci pou<6F>ijte pros<6F>m menu v lev<65> <20><>sti obrazovky';
$lang['credits'] = 'Auto<74>i';
$lang['changelog'] = 'ChangeLog';
$lang['donate'] = 'Podpo<70>it projekt';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Nebezpe<70>n<EFBFBD> n<>zev souboru: ';
$lang['no_such_file'] = 'Soubor nelze nal<61>zt: ';
//function.php
$lang['auto_update_not_setup'] = 'V konfiguraci jste zapnuli podporu auto_uid_numbers pro <b>%s</b>, ale nespecifikovali jste auto_uid_number_mechanism. Napravte pros<6F>m nejprve tento probl<62>m.';
$lang['uidpool_not_set'] = 'V konfiguraci serveru <b>%s</b> jste specifikovali <tt>auto_uid_number_mechanism</tt> jako <tt>uidpool</tt>, ale neuvedli jste audo_uid_number_uid_pool_dn. Napravte pros<6F>m nejprve tento probl<62>m.';
$lang['uidpool_not_exist'] = 'Zd<5A> se, <20>e uidPool uveden<65> v konfiguraci (<tt>%s</tt>) neexistuje.';
$lang['specified_uidpool'] = 'V konfiguraci serveru <b>%s</b> jste specifikovali <tt>auto_uid_number_mechanism</tt> jako <tt>search</tt>, ale neuvedli jste <tt>auto_uid_number_search_base</tt>. Napravte pros<6F>m nejprve tento probl<62>m.';
$lang['auto_uid_invalid_credential'] = 'Se zadan<61>mi p<><70>stupov<6F>mi opr<70>vn<76>n<EFBFBD>mi se nelze p<>ipojit k <b>%s</b> a z<>skat auto_uid. Zkontrolujte pros<6F>m konfiguraci.';
$lang['bad_auto_uid_search_base'] = 'V konfiguraci phpLDAPadminu je uveden neplatn<74> parametr auto_uid_search_base pro server %s';
$lang['auto_uid_invalid_value'] = 'V konfiguraci je uvedena neplatn<74> hodnota auto_uid_number_mechanism (<tt>%s</tt>). Platn<74> hodnoty jsou pouze <tt>uidpool</tt> a <tt>search</tt>. Napravte pros<6F>m nejprve tento probl<62>m.';
$lang['error_auth_type_config'] = 'Chyba: Ve sv<73>m konfigura<72>n<EFBFBD>m souboru jste u polo<6C>ky $servers[\'auth_type\'] uvedli chybnou hodnotu \'%s\'. Platn<74> hodnoty jsou pouze \'config\' a \'form\'.';
$lang['php_install_not_supports_tls'] = 'Tato instalace PHP neobsahuje podporu pro TLS';
$lang['could_not_start_tls'] = 'Nelze inicializovat TLS.<br />Zkontolujte pros<6F>m konfiguraci sv<73>ho LDAP serveru.';
$lang['could_not_bind_anon'] = 'K serveru se nelze p<>ipojit anonymn<6D>.';
$lang['could_not_bind'] = 'Nelze se p<>ipojit k serveru LDAP.';
$lang['anonymous_bind'] = 'P<>ipojit anonymn<6D>';
$lang['bad_user_name_or_password'] = 'Nespr<70>vn<76> jm<6A>no nebo heslo. Opakujte p<>ihl<68><6C>en<65>.';
$lang['redirecting_click_if_nothing_happens'] = 'P<>esm<73>rov<6F>v<EFBFBD>m... Klepn<70>te sem, pokud se nic nestane.';
$lang['successfully_logged_in_to_server'] = '<27>sp<73><70>n<EFBFBD> jste se p<>ihl<68>sili k serveru <b>%s</b>';
$lang['could_not_set_cookie'] = 'Cookie nemohla b<>t ulo<6C>ena.';
$lang['ldap_said'] = '<b>Odpov<6F><76> LDAP serveru</b>: %s<br /><br />';
$lang['ferror_error'] = 'Chyba';
$lang['fbrowse'] = 'proch<63>zet';
$lang['delete_photo'] = 'Odstranit fotografii';
$lang['install_not_support_blowfish'] = 'Tato instalace PHP neobsahuje podporu pro <20>ifru Blowfish.';
$lang['install_not_support_md5crypt'] = 'Tato instalace PHP neobsahuje podporu pro <20>ifru md5crypt.';
$lang['install_no_mash'] = 'Tato instalace PHP nepodporuje funkci mhash(). Nelze aplikovat SHA hash.';
$lang['jpeg_contains_errors'] = 'jpegPhoto obsahuje chyby<br />';
$lang['ferror_number'] = '<b><3E><>slo chyby</b>: %s <small>(%s)</small><br /><br />';
$lang['ferror_discription'] = '<b>Popis</b>: %s <br /><br />';
$lang['ferror_number_short'] = '<b><3E><>slo chyby</b>: %s<br /><br />';
$lang['ferror_discription_short'] = '<b>Popis</b>: (popis nen<65> k dispozici)<br />';
$lang['ferror_submit_bug'] = 'Pokud je toto chyba v phpLDAPadmin, <a href=\'%s\'>napi<70>te n<>m</a> o tom.';
$lang['ferror_unrecognized_num'] = 'Nezn<7A>m<EFBFBD> <20><>slo chyby: ';
$lang['ferror_nonfatil_bug'] = '<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' />
<b>Narazili jste na nez<65>va<76>nou, droubnou a<> zanedbatelnou chybu v phpLDAPadmin!</b></td></tr><tr><td>Chyba:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Soubor:</td>
<td><b>%s</b> <20><>dka <b>%s</b>, vol<6F>no z <b>%s</b></td></tr><tr><td>Verze:</td><td>PLA: <b>%s</b>, PHP: <b>%s</b>, SAPI: <b>%s</b>
</td></tr><tr><td>Web server:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>
Klepnut<75>m pros<6F>m ohl<68><6C>te chybu</a>.</center></td></tr></table></center><br />';
$lang['ferror_congrats_found_bug'] = 'Blahop<6F>ejeme! Nalezli jste chybu v phpLDAPadmin. :-)<br /><br />
<table class=\'bug\'>
<tr><td>Chyba:</td><td><b>%s</b></td></tr>
<tr><td>V<><56>nost:</td><td><b>%s</b></td></tr>
<tr><td>Soubor:</td><td><b>%s</b></td></tr>
<tr><td><3E><>dka:</td><td><b>%s</b></td></tr>
<tr><td>Vol<6F>no z:</td><td><b>%s</b></td></tr>
<tr><td>Verze PLA:</td><td><b>%s</b></td></tr>
<tr><td>Verze PHP:</td><td><b>%s</b></td></tr>
<tr><td>PHP SAPI:</td><td><b>%s</b></td></tr>
<tr><td>Web server:</td><td><b>%s</b></td></tr>
</table>
<br />
Klepnut<75>m dole pros<6F>m ohla<6C>te chybu!';
//ldif_import_form
$lang['import_ldif_file_title'] = 'Importovat soubor LDIF';
$lang['select_ldif_file'] = 'Zvolte soubor LDIF:';
$lang['select_ldif_file_proceed'] = 'Prove<76> &gt;&gt;';
$lang['dont_stop_on_errors'] = 'Ignorovat chyby';
//ldif_import
$lang['add_action'] = 'P<>id<69>v<EFBFBD>n<EFBFBD>...';
$lang['delete_action'] = 'Odstra<72>ov<6F>n<EFBFBD>...';
$lang['rename_action'] = 'P<>ejmenov<6F>v<EFBFBD>n<EFBFBD>...';
$lang['modify_action'] = 'Upravov<6F>n<EFBFBD>...';
$lang['warning_no_ldif_version_found'] = 'Nebyla nalezena verze. P<>edpokl<6B>d<EFBFBD>m 1.';
$lang['valid_dn_line_required'] = 'Je vy<76>adov<6F>n platn<74> <20><>dek s DN.';
$lang['missing_uploaded_file'] = 'Soubor LDIF nebyl nalezen.';
$lang['no_ldif_file_specified.'] = 'Neuvedli jste LDIF soubor. Opakujte pros<6F>m akci.';
$lang['ldif_file_empty'] = 'Soubor LDIF je pr<70>zdn<64>.';
$lang['empty'] = 'pr<70>zdn<64>';
$lang['file'] = 'Soubor';
$lang['number_bytes'] = '%s bajt<6A>';
$lang['failed'] = 'selhal';
$lang['ldif_parse_error'] = 'Chyba v souboru LDIF';
$lang['ldif_could_not_add_object'] = 'Nelze p<>idat objekt:';
$lang['ldif_could_not_rename_object'] = 'Nelze p<>ejmenovat objekt:';
$lang['ldif_could_not_delete_object'] = 'Nelze odstranit objekt:';
$lang['ldif_could_not_modify_object'] = 'Nelze upravit objekt:';
$lang['ldif_line_number'] = '<27><>slo <20><>dku:';
$lang['ldif_line'] = '<27><>dek:';
// Exports
$lang['export_format'] = 'Form<72>t exportu';
$lang['line_ends'] = 'Konce <20><>dk<64>';
$lang['must_choose_export_format'] = 'Mus<75>te zvolit exportn<74> form<72>t.';
$lang['invalid_export_format'] = 'Neplatn<74> exportn<74> form<72>t';
$lang['no_exporter_found'] = 'Nebyla nalezena <20><>dn<64> aplikace pro export.';
$lang['error_performing_search'] = 'B<>hem vyhled<65>v<EFBFBD>n<EFBFBD> do<64>lo k chyb<79>.';
$lang['showing_results_x_through_y'] = 'V<>sledky od %s do %s.';
$lang['searching'] = 'Vyhled<65>v<EFBFBD>m...';
$lang['size_limit_exceeded'] = 'Byl p<>ekro<72>en limitn<74> parametr pro vyhled<65>v<EFBFBD>n<EFBFBD>.';
$lang['entry'] = 'Objekt';
$lang['ldif_export_for_dn'] = 'LDIF Export objektu: %s';
$lang['generated_on_date'] = 'Generov<6F>no phpLDAPadminem dne %s';
$lang['total_entries'] = 'Celkem objekt<6B>';
$lang['dsml_export_for_dn'] = 'DSLM Export objektu: %s';
// logins
$lang['could_not_find_user'] = 'Nelze nal<61>zt u<>ivatele "%s"';
$lang['password_blank'] = 'Nezadali jste u<>ivatelsk<73> heslo.';
$lang['login_cancelled'] = 'P<>ihla<6C>ov<6F>n<EFBFBD> zru<72>eno.';
$lang['no_one_logged_in'] = 'Nikdo nen<65> p<>ihl<68><6C>en k tomuto serveru.';
$lang['could_not_logout'] = 'Nelze se odhl<68>sit.';
$lang['unknown_auth_type'] = 'Nezn<7A>m<EFBFBD> auth_type: %s';
$lang['logged_out_successfully'] = 'Odhl<68><6C>en<65> od serveru <b>%s</b> prob<6F>hlo <20>sp<73><70>n<EFBFBD>.';
$lang['authenticate_to_server'] = 'Ov<4F><76>en<65> v<><76>i serveru %s';
$lang['warning_this_web_connection_is_unencrypted'] = 'Upozorn<72>n<EFBFBD>: Toto spojen<65> nen<65> <20>ifrov<6F>n<EFBFBD>.';
$lang['not_using_https'] = 'Nep<65>ipojujete se pomoc<6F> \'https\'. Prohl<68><6C>e<EFBFBD> ode<64>le Va<56>e p<>ihl<68><6C>en<65> v ne<6E>ifrovan<61> podob<6F>.';
$lang['login_dn'] = 'P<>ihla<6C>ovac<61> DN';
$lang['user_name'] = 'U<>ivatel';
$lang['password'] = 'Heslo';
$lang['authenticate'] = 'P<>ihl<68>sit';
// Entry browser
$lang['entry_chooser_title'] = 'Zvolit objekt';
// Index page
$lang['need_to_configure'] = 'Nejprve je t<>eba phpLDAPadmin nakonfigurovat. Toho doc<6F>l<EFBFBD>te upravou souboru \'config.php\'. Uk<55>zkov<6F> konfigurace je k nalezen<65> v souboru \'config.php.example\'';
// Mass deletes
$lang['no_deletes_in_read_only'] = 'Maz<61>n<EFBFBD> je v re<72>imu "jen pro <20>ten<65>" zak<61>z<EFBFBD>no.';
$lang['error_calling_mass_delete'] = 'Chyba p<>i vol<6F>n<EFBFBD> mass_delete.php. V POSTu chyb<79> prom<6F>nn<6E> mass_delete.';
$lang['mass_delete_not_array'] = 'mass_delete v POSTu nen<65> pole.';
$lang['mass_delete_not_enabled'] = 'Hromad<61> v<>maz nen<65> umo<6D>n<EFBFBD>n. M<><4D>ete ho povolit v souboru config.php.';
$lang['mass_deleting'] = 'Hromadn<64> v<>maz';
$lang['mass_delete_progress'] = 'Pr<50>b<EFBFBD>h odstra<72>ov<6F>n<EFBFBD> na serveru "%s"';
$lang['malformed_mass_delete_array'] = 'Zdeformovan<61> pole mass_delete.';
$lang['no_entries_to_delete'] = 'Nevybrali jste <20><>dn<64> objekty k odstran<61>n<EFBFBD>.';
$lang['deleting_dn'] = 'Odstra<72>uji %s';
$lang['total_entries_failed'] = '%s z %s objekt<6B> se nepoda<64>ilo odstranit.';
$lang['all_entries_successful'] = 'V<>echny objekty byly <20>sp<73><70>n<EFBFBD> odstran<61>ny.';
$lang['confirm_mass_delete'] = 'Potv<74>te hromadn<64> v<>maz v po<70>tu %s objekt<6B> na serveru %s';
$lang['yes_delete'] = 'Ano, odstranit!';
// Renaming entries
$lang['non_leaf_nodes_cannot_be_renamed'] = 'Nelze p<>ejmenovat objekt, kter<65> m<> potomky. Toto se nap<61><70>klad vztahuje na v<>echny objekty, kter<65> nejsou typu "list".';
$lang['no_rdn_change'] = 'Nezm<7A>nili jste RDN';
$lang['invalid_rdn'] = 'Neplatn<74> hodnota RDN';
$lang['could_not_rename'] = 'Objekt nelze p<>ejmenovat';
?>

View File

@@ -1,567 +0,0 @@
<?php
/*
* <20>bersetzung von Marius Rieder <marius.rieder@bluewin.ch>
* Uwe Ebel
* Modifikationen von Dieter Kluenter <hdk@dkluenter.de>
*
*
* $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/de.php,v 1.25 2004/07/20 19:47:32 i18phpldapadmin Exp $
* Update auf CVS-Version von en.php 1.79
* Verwendete CVS-Version von en.php 1.65
*/
// Search form
$lang['simple_search_form_str'] = 'Einfache Suche';//'Simple Search Form';
$lang['advanced_search_form_str'] = 'Experten Suche';//'Advanced Search Form';
$lang['server'] = 'Server';//'Server';
$lang['search_for_entries_whose'] = 'Suche nach Eintr<74>gen die';//'Search for entries whose';
$lang['base_dn'] = 'Base DN';//'Base DN';
$lang['search_scope'] = 'Suchbereich';//'Search Scope';
//$lang['search_ filter'] = 'Suchfilter';//'Search Filter';
$lang['show_attributes'] = 'Zeige Attribute';//'Show Attributtes';
$lang['Search'] = 'Suchen';//'Search';
$lang['equals'] = 'gleich';//'equals';
//$lang['starts_with'] = 'beginnt mit';//'starts with';
$lang['contains'] = 'enth<74>lt';//'contains';
//$lang['ends_with'] = 'endet mit';//'ends with';
//$lang['sounds_like'] = '<27>hnlich wie';//'sounds like';
$lang['predefined_search_str'] = 'oder ein von dieser Liste ausw<73>hlen';//'or select a predefined search';
$lang['predefined_searches'] = 'Vordefinierte Suche';//'Predefined Searches';
$lang['no_predefined_queries'] = 'Keine Abfragen sind in der config.php definiert';// 'No queries have been defined in config.php.';
$lang['export_results'] = 'Ergebnisse exportieren';// 'export results';
$lang['unrecoginzed_search_result_format'] = 'Das Suchergebnisformat ist nicht erkennbar: %s';//'Unrecognized search result format: %s';
$lang['format'] = 'Format';// 'Format';
$lang['list'] = 'Liste';// 'list';
$lang['table'] = 'Tabelle';// 'table';
$lang['bad_search_display'] = 'Die config.php gibt einen falsche Wert f<>r $default_search_display: %s vor. Bitte in der Konfiguration korrigieren.';//'Your config.php specifies an invalid value for $default_search_display: %s. Please fix it';
// Tree browser
$lang['request_new_feature'] = 'Anfragen von neuen M<>glichkeiten';//'Request a new feature';
//$lang['see_open_requests'] = 'Siehe offene Anfragen';//'see open requests';
$lang['report_bug'] = 'Einen Fehler berichten';//'Report a bug';
//$lang['see_open_bugs'] = 'Siehe offene Fehler';//'see open bugs';
$lang['schema'] = 'Schema';//'schema';
$lang['search'] = 'suche';//'search';
$lang['refresh'] = 'aktualisieren';//'refresh';
$lang['create'] = 'Erstellen';//'create';
$lang['info'] = 'Info';//'info';
$lang['import'] = 'Import';//'import';
$lang['logout'] = 'abmelden';//'logout';
$lang['create_new'] = 'Neuen Eintrag erzeugen';//'Create New';
$lang['new'] = 'Neu';//'new';
$lang['view_schema_for'] = 'Zeige Schema f<>r';//'View schema for';
$lang['refresh_expanded_containers'] = 'Aktualisiere alle ge<67>ffneten Container von';//'Refresh all expanded containers for';
$lang['create_new_entry_on'] = 'Erzeuge einen neuen Eintrag auf';//'Create a new entry on';
$lang['view_server_info'] = 'Zeige Server Informationen';//'View server-supplied information';
$lang['import_from_ldif'] = 'Importiere Eintr<74>ge von einer LDIF-Datei';//'Import entries from an LDIF file';
$lang['logout_of_this_server'] = 'Von diesem Server abmelden';//'Logout of this server';
$lang['logged_in_as'] = 'Angemeldet als: ';//'Logged in as: ';
$lang['read_only'] = 'nur lesen';//'read only';
$lang['read_only_tooltip'] = 'Diese Attribut wurde vom phpLDAPadmin-Adminstrator als nur lesend markiert.';//This attribute has been flagged as read only by the phpLDAPadmin administrator';
$lang['could_not_determine_root'] = 'Konnte die Basis ihres LDAP Verzeichnises nicht ermitteln';//'Could not determin the root of your LDAP tree.';
$lang['ldap_refuses_to_give_root'] = 'Es scheint das ihr LDAP Server nicht dazu konfiguriert wurde seine Basis bekanntzugeben';//'It appears that the LDAP server has been configured to not reveal its root.';
$lang['please_specify_in_config'] = 'Bitte in config.php angeben';//'Please specify it in config.php';
$lang['create_new_entry_in'] = 'Neuen Eintrag erzeugen auf';//'Create a new entry in';
$lang['login_link'] = 'Anmelden...';//'Login...';
$lang['login'] = 'Anmelden';//'login';
// Entry display
$lang['delete_this_entry'] = 'Diesen Eintrag l<>schen';//'Delete this entry';
$lang['delete_this_entry_tooltip'] = 'F<>r diese Entscheidung wird nochmals nachgefragt.';//'You will be prompted to confirm this decision';
$lang['copy_this_entry'] = 'Diesen Eintrag kopieren';//'Copy this entry';
$lang['copy_this_entry_tooltip'] = 'Kopiere diese Object an eine anderen Ort: ein neuer DN oder einen anderen Server.';//'Copy this object to another location, a new DN, or another server';
$lang['export'] = 'Exportieren';//'Export to LDIF';
$lang['export_lcase'] = 'exportieren';//'export';
$lang['export_tooltip'] = 'Speichere einen Abzug diese Objektes';//'Save an LDIF dump of this object';
$lang['export_subtree_tooltip'] = 'Speicher eine Abzug ab diesem Objekt und alle seine Untereintr<74>ge';//'Save an LDIF dump of this object and all of its children';
$lang['export_subtree'] = 'Export Unterbaum nach LDIF';//'Export subtree to LDIF';
//$lang['export_mac'] = 'Zeilenende f<>r Macintosh';//'Macintosh style line ends';
//$lang['export_win'] = 'Zeilenende f<>r Windows';//'Windows style line ends';
//$lang['export_unix'] = 'Zeilenende f<>r Unix';//'Unix style line ends';
$lang['create_a_child_entry'] = 'Erzeuge einen Untereintrag';//'Create a child entry';
//$lang['add_a_jpeg_photo'] = 'Ein JPEG-Foto hinzuf<75>gen';//'Add a jpegPhoto';
$lang['rename_entry'] = 'Eintrag umbenennen';//'Rename Entry';
$lang['rename'] = 'Umbenennen';//'Rename';
$lang['add'] = 'Hinzuf<75>gen';//'Add';
$lang['view'] = 'Ansehen';//'View';
$lang['view_one_child'] = 'Zeige einen Untereintrag';//'View 1 child';
$lang['view_children'] = 'Zeige %s Untereintr<74>ge';//'View %s children';
$lang['add_new_attribute'] = 'Neues Attribut hinzuf<75>gen';//'Add New Attribute';
// DELETED $lang['add_new_attribute_tooltip'] = 'F<>ge ein neues Attribut/Wert zu diesem Eintrag hinzu';// 'Add a new attribute/value to this entry';
$lang['add_new_objectclass'] = 'Neue ObjectClass hinzuf<75>gen';//'Add new ObjectClass';
//$lang['internal_attributes'] = 'Interne Attribute';//'Internal Attributes';
$lang['hide_internal_attrs'] = 'Verdecke interne Attribute';//'Hide internal attributes';
$lang['show_internal_attrs'] = 'Zeige interne Attribute';//'Show internal attributes';
//$lang['internal_attrs_tooltip'] = 'Attribute werden automatisch vom System erzeugt.';//'Attributes set automatically by the system';
//$lang['entry_attributes'] = 'Attribute des Eintrages';//'Entry Attributes';
$lang['attr_name_tooltip'] = 'Klicken sie um die Schemadefinition f<>r den Attributtyp "%s" anzuzeigen.';//'Click to view the schema defintion for attribute type \'%s\'';
//$lang['click_to_display'] = 'Klicken zum Ansehen';//'click to display';
//$lang['hidden'] = 'verdeckt';//'hidden';
$lang['none'] = 'Keine';//'none';
$lang['no_internal_attributes'] = 'Keine internen Attribute.';//'No internal attributes';
$lang['no_attributes'] = 'Dieser Eintrag hat keine Attribute.';//'This entry has no attributes';
$lang['save_changes'] = '<27>nderungen speichern';//'Save Changes';
$lang['add_value'] = 'Wert hinzuf<75>gen';//'add value';
$lang['add_value_tooltip'] = 'F<>ge einen weiteren Wert dem Attribut hinzu';//'Add an additional value to this attribute';
$lang['refresh_entry'] = 'Auffrischen';// 'Refresh';
$lang['refresh_this_entry'] = 'Aktualisiere den Entrag';//'Refresh this entry';
$lang['delete_hint'] = 'Hinweis: Um ein Attribut zu l<>schen, leeren Sie den Inhalt des Wertes.';//'Hint: <b>To delete an attribute</b>, empty the text field and click save.';
$lang['attr_schema_hint'] = 'Tipp:Um das Schema f<>r ein Attribut anzusehen, gen<65>gt ein klick auf den Attributnamen';//'Hint: <b>To view the schema for an attribute</b>, click the attribute name.';
$lang['attrs_modified'] = 'Einige Attribute (%s) wurden ver<65>ndert und sind hervorgehoben.';//'Some attributes (%s) were modified and are highlighted below.';
$lang['attr_modified'] = 'Ein Attribut (%s) wurde ver<65>ndert und ist hervorgehoben.';//'An attribute (%s) was modified and is highlighted below.';
$lang['viewing_read_only'] = 'Zeige Eintrag im Nurlesemodus';//'Viewing entry in read-only mode.';
//$lang['change_entry_rdn'] = '<27>ndere den RDN des Eintrages';//'Change this entry\'s RDN';
$lang['no_new_attrs_available'] = 'Keine weiteren Attribute verf<72>gbar f<>r diesen Eintrag';//'no new attributes available for this entry';
$lang['no_new_binary_attrs_available'] = 'Keine weiteren Bin<69>ren Attribute verf<72>gbar f<>r diesen Eintrag.';//'no new binary attributes available for this entry';
$lang['binary_value'] = 'Bin<69>rwert';//'Binary value';
$lang['add_new_binary_attr'] = 'Neuen Bin<69>rwert hinzuf<75>gen';//'Add New Binary Attribute';
// DELETE $lang['add_new_binary_attr_tooltip'] = 'F<>ge einen neuen Bin<69>wert (Attribut/Wert) aus einer Datei hinzu.';//'Add a new binary attribute/value from a file';
$lang['alias_for'] = 'Alias f<>r';//'Alias for';
$lang['required_for'] = 'Notwendige Attribute f<>r die Objektklasse(n) %s';//'Required attribute for objectClass(es) %s';
$lang['download_value'] = 'Wert herunterladen';//'download value';
$lang['delete_attribute'] = 'L<>sche Attribut';//'delete attribute';
$lang['true'] = 'Wahr';//'true';
$lang['false'] = 'Falsch';//'false';
$lang['none_remove_value'] = 'nichts, entferne den Wert';//?? //'none, remove value';
$lang['really_delete_attribute'] = 'L<>sche das Attribut wirklich';//'Really delete attribute';
$lang['add_new_value'] = 'Neuen Wert hinzuf<75>gen';//'Add New Value';
// Schema browser
$lang['the_following_objectclasses'] = 'Die folgenden Objektklassen werden vom LDAP-Server unterst<73>tzt.';//'The following <b>objectClasses</b> are supported by this LDAP server.';
$lang['the_following_attributes'] = 'Die folgenden Attribute werden vom LDAP-Server unterst<73>tzt.';//'The following <b>attributeTypes</b> are supported by this LDAP server.';
$lang['the_following_matching'] = 'Die folgenden Suchregeln werden vom LDAP-Server unterst<73>tzt.';//'The following <b>matching rules</b> are supported by this LDAP server.';
$lang['the_following_syntaxes'] = 'Die folgenden Syntaxe werden vom LDAP-Server unterst<73>tzt.';//'The following <b>syntaxes</b> are supported by this LDAP server.';
$lang['schema_retrieve_error_1']='Der Server unterst<73>tzt nicht vollst<73>ndig das LDAP-Protokoll.';//'The server does not fully support the LDAP protocol.';
$lang['schema_retrieve_error_2']='Die verwendete PHP-Version setzte keine korrekte LDAP-Abfrage ab.';//'Your version of PHP does not correctly perform the query.';
$lang['schema_retrieve_error_3']='Oder phpLDAPadmin konnte nicht das Schema f<>r den Server abfragen.';//'Or lastly, phpLDAPadmin doesn\'t know how to fetch the schema for your server.';
$lang['jump_to_objectclass'] = 'Gehe zur objectClass';//'Jump to an objectClass';
$lang['view_schema_for_oclass'] = 'Zeige die Schemabeschreibung f<>r diese Objektklasse';//'View the schema description for this objectClass';
$lang['jump_to_attr'] = 'Gehe zum Attribut';//'Jump to an attribute';
$lang['jump_to_matching_rule'] = 'Gehe zur Treffer Regel'; // 'Jump to a matching rule';
$lang['schema_for_server'] = 'Schema f<>r Server';//'Schema for server';
$lang['required_attrs'] = 'Notwendige Attribute';//'Required Attributes';
$lang['required'] = 'notwendig';//'required';
$lang['optional_attrs'] = 'Optionale Attribute';//'Optional Attributes';
$lang['optional_binary_attrs'] = 'Optinales Bin<69>rattribut';//'Optional Binary Attributes';
$lang['OID'] = 'OID';//'OID';
$lang['aliases']='Pseudonym(e)';//'Aliases';
$lang['desc'] = 'Beschreibung';//'Description';
$lang['no_description']='Keine Beschreibung';//'no description';
$lang['name'] = 'Name';//'Name';
$lang['equality']='Gleichheit';// 'Equality';
$lang['is_obsolete'] = 'Diese objectClass ist veraltet';//'This objectClass is <b>obsolete</b>';
$lang['inherits'] = 'Abgeleitet von';//'Inherits';
$lang['inherited_from']='abgeleitet von';//inherited from';
$lang['parent_to'] = 'Knoten von';//'Parent to';
$lang['jump_to_this_oclass'] = 'Gehe zur objectClass Definition';//'Jump to this objectClass definition';
$lang['matching_rule_oid'] = 'Treffer-Regel OID';//'Matching Rule OID';
$lang['syntax_oid'] = 'Syntax OID';//'Syntax OID';
$lang['not_applicable'] = 'nicht anwendbar';//'not applicable';
$lang['not_specified'] = 'nicht spezifiziert';//not specified';
$lang['character']='Zeichen';//'character';
$lang['characters']='Zeichen';//'characters';
$lang['used_by_objectclasses']='Verwendet von den Objektklassen';//'Used by objectClasses';
$lang['used_by_attributes']='Verwendet in den Attributen';//'Used by Attributes';
$lang['oid']='OID'; // 'OID'
$lang['obsolete']='Veraltet';//'Obsolete';
$lang['ordering']='Ordnung';//'Ordering';
$lang['substring_rule']='Teilstring Regel';//'Substring Rule';
$lang['single_valued']='Einzelner Wert';//'Single Valued';
$lang['collective']='Sammlung';//'Collective';
$lang['user_modification']='Benutzer <20>nderung';//'User Modification';
$lang['usage']='Verwendung';//'Usage';
$lang['maximum_length']='Maximale Gr<47>sse';//'Maximum Length';
$lang['attribute_types']='Attribut Typen';//'Attribute Types';
$lang['attributes']='Attribut Typen';//'Attributes Types';
$lang['syntaxes']='Syntaxe';//'Syntaxes';
$lang['objectclasses']='Objekt Klassen';//'objectClasses';
$lang['matchingrules']='Treffer Regeln';//'Matching Rules';
$lang['could_not_retrieve_schema_from']='Das Schema konnte nicht abgefragt werden. Betrifft die Einstellung des Servers:';//'Could not retrieve schema from';
$lang['type']='Typ';// 'Type';
$lang['no_such_schema_item'] = 'Kein Schema Eintrag f<>r Element: %s';//'No such schema item: "%s"';
// Deleting entries
$lang['entry_deleted_successfully'] = 'Der Eintrag \'%s\' wurde erfolgreich gel<65>scht.';//'Entry \'%s\' deleted successfully.';
$lang['you_must_specify_a_dn'] = 'Ein DN muss angegeben werden.';//'You must specify a DN';
$lang['could_not_delete_entry'] = 'Konnte den Eintrag nicht l<>schen: %s';//'Could not delete the entry: %s';
$lang['no_such_entry'] = 'Keinen solchen Eintrag: %s';//'No such entry: %s';
$lang['delete_dn'] = 'L<>schen von %s';//'Delete %s';
//$lang['permanently_delete_children'] = 'Ebenso dauerhaftes L<>schen aller Untereintr<74>ge?';//'Permanently delete all children also?';
$lang['entry_is_root_sub_tree'] = 'Dies ist ein Root-Eintrag und beinhaltet einen Unterbaum mit %s Eintr<74>gen.';//'This entry is the root of a sub-tree containing %s entries.';
$lang['view_entries'] = 'Zeige Eintr<74>ge';//'view entries';
$lang['confirm_recursive_delete'] = 'phpLDAPadmin kann diesen Eintrag und die %s Untereintr<74>ge rekursiv l<>schen. Unten ist eine Liste der Eintr<74>ge angegeben die von diesem L<>schen betroffen w<>ren. Sollen alle Eintr<74>ge gel<65>scht werden?';//'phpLDAPadmin can recursively delete this entry and all %s of its children. See below for a list of all the entries that this action will delete. Do you want to do this?';
$lang['confirm_recursive_delete_note'] = 'Hinweis: Dies ist sehr gef<65>hrlich und erfolgt auf eines Risiko. Die Ausf<73>hrung kann nicht r<>ckg<6B>ngig gemacht werden. Dies betrifft ebenso Aliase, Referenzen und andere Dinge die zu Problemen f<>hren k<>nnen.';//'Note: this is potentially very dangerous and you do this at your own risk. This operation cannot be undone. Take into consideration aliases, referrals, and other things that may cause problems.';
$lang['delete_all_x_objects'] = 'L<>schen aller "%s" Objekte';//'Delete all %s objects';
$lang['recursive_delete_progress'] = 'Rekursives L<>schen in Arbeit';//'Recursive delete progress';
$lang['entry_and_sub_tree_deleted_successfully'] = 'Erfolgreiches L<>schen des Eintrages "%s" und dessen Unterbaums.';// 'Entry %s and sub-tree deleted successfully.';
$lang['failed_to_delete_entry'] = 'Fehler beim L<>schen des Eintrages %s.';//'Failed to delete entry %s';
// Deleting attributes
$lang['attr_is_read_only'] = 'Das Attribut "%s" ist in der phpLDAPadmin Konfiguration als nur lesend deklariert.';//'The attribute "%s" is flagged as read-only in the phpLDAPadmin configuration.';
$lang['no_attr_specified'] = 'Kein Attributname angegeben.';//'No attribute name specified.';
$lang['no_dn_specified'] = 'Kein DN angegeben.';//'No DN specified';
// Adding attributes
$lang['left_attr_blank'] = 'Der Wert des Attributes wurde leergelassen. Bitte zur<75>ck gehen und erneut versuchen.';//'You left the attribute value blank. Please go back and try again.';
$lang['failed_to_add_attr'] = 'Fehler beim Hinzuf<75>gen des Attributes';//'Failed to add the attribute.';
$lang['file_empty'] = 'Die ausgew<65>hlte Datei ist entweder nicht vorhanden oder leer. Bitte zur<75>ckgehen und nochmals versuchen.';//'The file you chose is either empty or does not exist. Please go back and try again.';
$lang['invalid_file'] = 'Sicherheitsfehler: Die hochgeladene Datei kann b<>sartig sein.';//'Security error: The file being uploaded may be malicious.';
$lang['warning_file_uploads_disabled'] = 'Die PHP-Konfiguration (php.ini) gestattet es nicht Dateien hochzuladen. Bitte die php.ini hierzu <20>berpr<70>fen.';//'Your PHP configuration has disabled file uploads. Please check php.ini before proceeding.';
$lang['uploaded_file_too_big'] = 'Die hochgeladene Datei ist gr<67><72>er als die maximal erlaubte Datei aus der "php.ini". Bitte in der php.ini den Eintrag "upload_max_size" <20>berpr<70>fen.';//'The file you uploaded is too large. Please check php.ini, upload_max_size setting';
$lang['uploaded_file_partial'] = 'Die ausw<73>hlte Datei wurde nur unvollst<73>ndig hochgeladen.';//'The file you selected was only partially uploaded, likley due to a network error.';
$lang['max_file_size'] = 'Maximal Dateigr<67><72>e ist: %s';//'Maximum file size: %s';
// Updating values
$lang['modification_successful'] = '<27>nderung war erfolgreich!';//'Modification successful!';
$lang['change_password_new_login'] = 'Da das Passwort ge<67>ndert wurde m<>ssen Sie sich erneut einloggen.'; //'Since you changed your password, you must now login again with your new password.';
// Adding objectClass form
$lang['new_required_attrs'] = 'Neue ben<65>tigte Attribute';//'New Required Attributes';
$lang['requires_to_add'] = 'Diese Aktion zwingt sie folgendes hinzuzuf<75>gen';//'This action requires you to add';
$lang['new_attributes'] = 'neue Attribute';//'new attributes';
$lang['new_required_attrs_instructions'] = 'Anleitung: Um diese objectClass hinzuzuf<75>gen m<>ssen sie ';//'Instructions: In order to add this objectClass to this entry, you must specify';
$lang['that_this_oclass_requires'] = 'die von dieser objectClass ben<65>tigt werden. Sie k<>nnen dies in diesem Formular machen.';//'that this objectClass requires. You can do so in this form.';
$lang['add_oclass_and_attrs'] = 'ObjectClass und Attribute hinzuf<75>gen';//'Add ObjectClass and Attributes';
// General
$lang['chooser_link_tooltip'] = 'Klicken um einen Eintrag (DN) grafisch auszuw<75>hlen.';//"Click to popup a dialog to select an entry (DN) graphically';
$lang['no_updates_in_read_only_mode'] = 'Sie k<>nnen keine Aktualisierungen durchf<68>hren w<>hrend der Server sich im \'nur lese\'-modus befindet';//'You cannot perform updates while server is in read-only mode';
$lang['bad_server_id'] = 'Ung<6E>ltige Server ID';//'Bad server id';
$lang['not_enough_login_info'] = 'Nicht gen<65>gend Angaben zur Anmeldung am Server. Bitte <20>berpr<70>fen sie ihre Konfiguration';//'Not enough information to login to server. Please check your configuration.';
$lang['could_not_connect'] = 'Konnte keine Verbindung zum LDAP Server herstellen.';//'Could not connect to LDAP server.';
$lang['could_not_connect_to_host_on_port'] = 'Konnte keine Verbindung zum Server "%s" am Port "%s" erstellen.';//'Could not connect to "%s" on port "%s"';
$lang['could_not_perform_ldap_mod_add'] = 'Kann keine \'ldap_mod_add\' Operationen durchf<68>hren.';//'Could not perform ldap_mod_add operation.';
$lang['bad_server_id_underline'] = 'Ung<6E>ltige Server ID:';//"Bad server_id: ';
$lang['success'] = 'Erfolgreich';//"Success';
$lang['server_colon_pare'] = 'Server';//"Server: ';
$lang['look_in'] = 'Sehe nach in:';//"Looking in: ';
$lang['missing_server_id_in_query_string'] = 'Keine Server ID in der Anfrage angegeben';//'No server ID specified in query string!';
$lang['missing_dn_in_query_string'] = 'Kein DN in der Anfrage angegeben';//'No DN specified in query string!';
$lang['back_up_p'] = 'Eine Ebene h<>her...';//"Back Up...';
$lang['no_entries'] = 'Keine Eintr<74>ge';//"no entries';
$lang['not_logged_in'] = 'Nicht eingeloggt';//"Not logged in';
$lang['could_not_det_base_dn'] = 'Konnten Basis-DN nicht ermitteln.';//"Could not determine base DN';
$lang['reasons_for_error']='Dies kann mehrere Gr<47>nde haben. Die h<>ufigsten sind:';//'This could happen for several reasons, the most probable of which are:';
$lang['please_report_this_as_a_bug']='Bitte senden Sie dies als einen Fehlerbericht.';//'Please report this as a bug.';
$lang['yes']='Ja';//'Yes'
$lang['no']='Nein';//'No'
$lang['go']='Weiter';//'go'
$lang['delete']='L<>schen';//'Delete';
$lang['back']='Zur<75>ck';//'Back';
$lang['object']='Objekt';//'object';
//$lang['objects']='Objekte';//'objects';
$lang['delete_all']='L<>sche alle';//'Delete all';
$lang['url_bug_report']=''+$lang['url_bug_report'];//'https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498546';
$lang['hint'] = 'Hinweis';//'hint';
$lang['bug'] = 'Programmfehler';//'bug';
$lang['warning'] = 'Warnung';//'warning';
$lang['light'] = 'light'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = 'Weiter';//'Proceed &gt;&gt;';
// Add value form
$lang['add_new'] = 'Neu hinzuf<75>gen';//'Add new';
$lang['value_to'] = 'Wert auf';//'value to';
//also used in copy_form.php
$lang['distinguished_name'] = 'Distinguished Name (eindeutiger Name)';// 'Distinguished Name';
$lang['current_list_of'] = 'Aktuelle Liste von';//'Current list of';
$lang['values_for_attribute'] = 'Werte des Attributes';//'values for attribute';
$lang['inappropriate_matching_note'] = 'Info: Sie werden einen "inappropriate matching" Fehler erhalten, falls sie nicht'; //'Note: You will get an "inappropriate matching" error if you have not<br />' .
' eine "EQUALITY" Regel f<>r dieses Attribut auf ihren LDAP Server eingerichtet haben.';//'setup an <tt>EQUALITY</tt> rule on your LDAP server for this attribute.';
$lang['enter_value_to_add'] = 'Geben sie den Wert ein den sie hinzuf<75>gen m<>chten:';//'Enter the value you would like to add:';
$lang['new_required_attrs_note'] = 'Info: Sie werden gegebenenfalles gezwungen sein neue Attribute hinzuzuf<75>gen.';//'Note: you may be required to enter new attributes<br />that this objectClass requires.';
$lang['syntax'] = 'Syntax';//'Syntax';
//Copy.php
$lang['copy_server_read_only'] = 'Sie k<>nnen keine Aktualisierungen durchf<68>hren w<>hrend der Server sich im \'nur lese\'-modus befindet';//"You cannot perform updates while server is in read-only mode';
$lang['copy_dest_dn_blank'] = 'Sie haben kein Ziel DN angegeben';//"You left the destination DN blank.';
$lang['copy_dest_already_exists'] = 'Der Zieleintrag (%s) existiert bereits.';//"The destination entry (%s) already exists.';
$lang['copy_dest_container_does_not_exist'] = 'Der Zielcontainer (%s) existiert nicht.';//'The destination container (%s) does not exist.';
$lang['copy_source_dest_dn_same'] = 'Ursprung DN und Ziel DN sind identisch';//"The source and destination DN are the same.';
$lang['copy_copying'] = 'Kopieren';//"Copying ';
$lang['copy_recursive_copy_progress'] = 'Rekursives Kopieren im Gange';//"Recursive copy progress';
$lang['copy_building_snapshot'] = 'Erzeuge Speicherauszug des zu kopierenden Verzeichnisses';//"Building snapshot of tree to copy... ';
$lang['copy_successful_like_to'] = 'Kopieren erfolgreich! Wollen sie den';//"Copy successful! Would you like to ';
$lang['copy_view_new_entry'] = 'neuen Eintrag ansehen';//"view the new entry';
$lang['copy_failed'] = 'Kopieren des DN fehlgeschlagen: ';//'Failed to copy DN: ';
//edit.php
$lang['missing_template_file'] = 'Warnung: Template Datei nicht gefunden';//'Warning: missing template file, ';
$lang['using_default'] = 'Standardeinstellung verwenden';//'Using default.';
$lang['template'] = 'Vorlage';//'Template';
$lang['must_choose_template'] = 'Eine Vorlage muss ausgew<65>hlt sein';//'You must choose a template';
$lang['invalid_template'] = 'Die Vorlage "%s" ist ung<6E>ltig';// '%s is an invalid template';
$lang['using_template'] = 'Verwende Vorlage';//'using template';
$lang['go_to_dn'] = 'Gehe zu %s';//'Go to %s';
$lang['structural_object_class_cannot_remove'] = 'Dies ist eine strukturelle Objektklasse und kann nicht entfernt werden.';//'This is a stuctural ObjectClass and cannot be removed.';
$lang['structural'] = 'Strukturell';//'stuctural';
//copy_form.php
$lang['copyf_title_copy'] = 'Kopiere';//"Copy ';
$lang['copyf_to_new_object'] = 'in ein neues Objekt';//"to a new object';
$lang['copyf_dest_dn'] = 'Ziel DN';//"Destination DN';
$lang['copyf_dest_dn_tooltip'] = 'Der komplette DN des Eintrages der beim Kopieren erzeugt wird.';//'The full DN of the new entry to be created when copying the source entry';
$lang['copyf_dest_server'] = 'Zielserver';//"Destination Server';
$lang['copyf_note'] = 'Info: Kopieren zwischen unterschiedlichen Servern funktioniert nur wenn keine Unvereinbarkeiten im Schema auftreten';//"Note: Copying between different servers only works if there are no schema violations';
$lang['copyf_recursive_copy'] = 'Rekursiv kopiert auch alle Unterobjekte';//"Recursively copy all children of this object as well.';
$lang['recursive_copy'] = 'Rekursives kopieren';//'Recursive copy';
$lang['filter'] = 'Filter';//'Filter';
$lang['filter_tooltip'] = 'Bei der Ausf<73>rung des rekursiven Kopierens werden nur die Eintr<74>ge verwendet, die mit dem Filter <20>bereinstimmen';// 'When performing a recursive copy, only copy those entries which match this filter';
//create.php
$lang['create_required_attribute'] = 'Fehler, sie haben einen Wert f<>r ein ben<65>tigtes Attribut frei gelassen.';//"Error, you left the value blank for required attribute ';
$lang['redirecting'] = 'Weiterleitung';//"Redirecting'; moved from create_redirection -> redirection
$lang['here'] = 'hier';//"here'; renamed vom create_here -> here
$lang['create_could_not_add'] = 'Konnte das Objekt dem LDAP-Server nicht hinzuf<75>gen.';//"Could not add the object to the LDAP server.';
//create_form.php
$lang['createf_create_object'] = 'Erzeuge einen neuen Eintag';//"Create Object';
$lang['createf_choose_temp'] = 'Vorlage w<>hlen';//"Choose a template';
$lang['createf_select_temp'] = 'W<>hlen sie eine Vorlage f<>r das Objekt';//"Select a template for the creation process';
$lang['createf_proceed'] = 'Weiter';//"Proceed &gt;&gt;';
$lang['rdn_field_blank'] = 'Das RDN Feld wurde leer gelassen.';//'You left the RDN field blank.';
$lang['container_does_not_exist'] = 'Der angegenben Eintrag (%s) ist nicht vorhanden. Bitte erneut versuchen.';// 'The container you specified (%s) does not exist. Please try again.';
$lang['no_objectclasses_selected'] = 'Es wurde kein ObjectClasses f<>r diesen Eintrag ausgew<65>hlt. Bitte zur<75>ckgehen und korrigieren';//'You did not select any ObjectClasses for this object. Please go back and do so.';
$lang['hint_structural_oclass'] = 'Hinweis: Es muss mindestens ein Strukturelle ObjectClass ausgew<65>hlt sein.';//'Hint: You must choose at least one structural objectClass';
//creation_template.php
$lang['ctemplate_on_server'] = 'Auf dem Server';//"On server';
$lang['ctemplate_no_template'] = 'Keine Vorlage angegeben in den POST Variabeln';//"No template specified in POST variables.';
$lang['ctemplate_config_handler'] = 'Ihre Konfiguration spezifiziert f<>r diese Vorlage die Routine';//"Your config specifies a handler of';
$lang['ctemplate_handler_does_not_exist'] = '. Diese Routine existiert nicht im \'templates/creation\' Verzeichnis';//"for this template. But, this handler does not exist in the 'templates/creation' directory.';
$lang['create_step1'] = 'Schritt 1 von 2: Name und Objektklasse(n)';//'Step 1 of 2: Name and ObjectClass(es)';
$lang['create_step2'] = 'Schritt 2 von 2: Bestimmen der Attribute und Werte';//'Step 2 of 2: Specify attributes and values';
$lang['relative_distinguished_name'] = 'Relativer Distingushed Name';//'Relative Distinguished Name';
$lang['rdn'] = 'RDN';//'RDN';
$lang['rdn_example'] = '(Beispiel: cn=MeineNeuePerson)';//'(example: cn=MyNewPerson)';
$lang['container'] = 'Beh<65>lter';//'Container';
// search.php
$lang['you_have_not_logged_into_server'] = 'Sie haben sich am ausgew<65>hlten Server nicht angemeldet. Sie k<>nnen keine Suche durchf<68>hren.';//'You have not logged into the selected server yet, so you cannot perform searches on it.';
$lang['click_to_go_to_login_form'] = 'Klicken sie hier um zur Anmeldeseite zu gelangen';//'Click here to go to the login form';
$lang['unrecognized_criteria_option'] = 'Unbekannte Option';// 'Unrecognized criteria option: ';
$lang['if_you_want_to_add_criteria'] = 'Falls eigene Auswahlkriterien hinzugef<65>gt werden sollen, muss \'search.php\' editiert werden';//'If you want to add your own criteria to the list. Be sure to edit search.php to handle them. Quitting.';
$lang['entries_found'] = 'Gefundene Eintr<74>ge: ';//'Entries found: ';
$lang['filter_performed'] = 'Angewanter Filter: ';//'Filter performed: ';
$lang['search_duration'] = 'Suche durch phpLDAPadmin ausgef<65>hrt in';//'Search performed by phpLDAPadmin in';
$lang['seconds'] = 'Sekunden';//'seconds';
// search_form_advanced.php
$lang['scope_in_which_to_search'] = 'Bereich der durchsucht wird.';//'The scope in which to search';
$lang['scope_sub'] = 'Sub (Suchbasis und alle Unterverzeichnisebenen)';//'Sub (entire subtree)';
$lang['scope_one'] = 'One (Suchbasis und eine Unterverzeichnisebene)';//'One (one level beneath base)';
$lang['scope_base'] = 'Base (Nur Suchbasis)';//'Base (base dn only)';
$lang['standard_ldap_search_filter'] = 'Standard LDAP Suchfilter. Bsp.: (&(sn=Smith)(givenname=David))';//'Standard LDAP search filter. Example: (&(sn=Smith)(givenname=David))';
$lang['search_filter'] = 'Suchfilter';//'Search Filter';
$lang['list_of_attrs_to_display_in_results'] = 'Kommaseparierte Liste der anzuzeigenden Attribute.';//'A list of attributes to display in the results (comma-separated)';
// search_form_simple.php
$lang['starts with'] = 'beginnt mit';//'starts with';
$lang['ends with'] = 'endet auf';//'ends with';
$lang['sounds like'] = 'klingt wie';//'sounds like';
// server_info.php
$lang['could_not_fetch_server_info'] = 'Konnte keine LDAP Informationen vom Server empfangen';//'Could not retrieve LDAP information from the server';
$lang['server_info_for'] = 'Serverinformationen f<>r: ';//'Server info for: ';
$lang['server_reports_following'] = 'Der Server meldete die folgenden Informationen <20>ber sich';//'Server reports the following information about itself';
$lang['nothing_to_report'] = 'Der Server hat keine Informationen gemeldet';//'This server has nothing to report.';
//update.php
$lang['update_array_malformed'] = 'Das "update_array" wird falsch dargestellt. Dies k<>nnte ein phpLDAPadmin Fehler sein. Bitte Berichten sie uns davon.';//'update_array is malformed. This might be a phpLDAPadmin bug. Please report it.';
$lang['could_not_perform_ldap_modify'] = 'Konnte die \'ldap_modify\' Operation nicht ausf<73>hren.';//'Could not perform ldap_modify operation.';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = 'Wollen sie diese <20>nderungen <20>bernehmen?';//'Do you want to make these changes?';
$lang['attribute'] = 'Attribute';//'Attribute';
$lang['old_value'] = 'Alter Wert';//'Old Value';
$lang['new_value'] = 'Neuer Wert';//'New Value';
$lang['attr_deleted'] = '[Wert gel<65>scht]';//'[attribute deleted]';
$lang['commit'] = 'Anwenden';//'Commit';
$lang['cancel'] = 'Abbruch';//'Cancel';
$lang['you_made_no_changes'] = 'Sie haben keine <20>nderungen vorgenommen.';//'You made no changes';
$lang['go_back'] = 'Zur<75>ck';//'Go back';
// welcome.php
$lang['welcome_note'] = 'Benutzen sie das Menu auf der linken Seite zur Navigation.';//'Use the menu to the left to navigate';
$lang['credits'] = 'Vorspann';//'Credits';
$lang['changelog'] = '<27>nderungsdatei';//'ChangeLog';
//$lang['documentation'] = 'Dokumentation';// 'Documentation';
$lang['donate'] = 'Spende';//'Donate';
$lang['purge_cache'] = 'Cache bereinigen';//'Purge caches';
$lang['no_cache_to_purge'] = 'Kein Cache zu bereinigen';//'No cache to purge.';
$lang['done_purging_caches'] = 'Es wurden %s Bytes aus dem Cache bereinigt.';//'Purged %s bytes of cache.';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Unsicherer Dateiname:';//'Unsafe file name: ';
$lang['no_such_file'] = 'Keine Datei unter diesem Namen';//'No such file: ';
//function.php
$lang['auto_update_not_setup'] = '"auto_uid_numbers" wurde in der Konfiguration (%s) aktiviert, aber der Mechanismus (auto_uid_number_mechanism) nicht. Bitte diese Problem korrigieren.';//"You have enabled auto_uid_numbers for <b>%s</b> in your configuration, but you have not specified the auto_uid_number_mechanism. Please correct this problem.';
$lang['uidpool_not_set'] = 'Der Mechanismus "auto_uid_number_mechanism" ist als "uidpool" f<>r den Server (%s) festgelegt, jedoch wurde nicht der "auto_uid_number_uid_pool_dn" festgelegt. Bitte korrigieren und dann weiter verfahren.';//"You specified the <tt>auto_uid_number_mechanism</tt> as <tt>uidpool</tt> in your configuration for server <b>%s</b>, but you did not specify the audo_uid_number_uid_pool_dn. Please specify it before proceeding.';
$lang['uidpool_not_exist'] = 'Es scheint so, dass der "uidPool" - der in der Konfiguration festgelegt ist - nicht vorhanden ist.';//"It appears that the uidPool you specified in your configuration (<tt>%s</tt>) does not exist.';
$lang['specified_uidpool'] = 'Der "auto_uid_number_mechanism" wurde auf "search" in der Konfiguration des Servers (%s) festgelegt, aber es wurde der Wert f<> "auto_uid_number_search_base" nicht gesetzt. Bitte korrigieren und dann weiter verfahren.';//"You specified the <tt>auto_uid_number_mechanism</tt> as <tt>search</tt> in your configuration for server <b>%s</b>, but you did not specify the <tt>auto_uid_number_search_base</tt>. Please specify it before proceeding.';
$lang['bad_auto_uid_search_base'] = 'Die phpLDAPadmin Konfiguration f<>r den Server "%s" gibt eine ung<6E>ltige Suchbasis f<>r "auto_uid_search_base" an.';//'Your phpLDAPadmin configuration specifies an invalid auto_uid_search_base for server %s';
$lang['auto_uid_invalid_credential'] = 'Konnte nicht mit "%s" verbinden';// 'Unable to bind to <b>%s</b> with your with auto_uid credentials. Please check your configuration file.';
$lang['auto_uid_invalid_value'] = 'Es wurde ein ung<6E>ltiger Wert f<>r "auto_uid_number_mechanism" (%s) festgelegt. G<>ltig sind nur die Werte "uidpool" und "search". Bitte den Fehler korrigieren. ';//"You specified an invalid value for auto_uid_number_mechanism (<tt>%s</tt>) in your configration. Only <tt>uidpool</tt> and <tt>search</tt> are valid. Please correct this problem.';
$lang['error_auth_type_config'] = 'Fehler: Ein Fehler ist in der Konfiguration (config.php) aufgetreten. Die einzigen beiden erlaubten Werte im Konfigurationsteil "auth_type" zu einem LDAP-Server ist "config" oder "form". Eingetragen ist aber "%s", was nicht erlaubt ist.';//"Error: You have an error in your config file. The only two allowed values for 'auth_type' in the $servers section are 'config' and 'form'. You entered '%s', which is not allowed. ';
$lang['unique_attrs_invalid_credential'] = 'Es konnten nicht an "%s" mit dem Berechtigungsnachweis von "unique_attrs" verbunden werden. Bitte die Konfigurationdatei (config.php) <20>berpr<70>fen.';//'Unable to bind to <b>%s</b> with your with unique_attrs credentials. Please check your configuration file.';
$lang['unique_attr_failed'] = 'Der Versuch von "%s" (%s) an "%s%" ist nicht erlaubt. Das Attibut/Wert geh<65>rt zu einem anderen Eintrag. Vielleicht m<>chten Sie <A href=\'%s\'>nach dem Wert suchen?</A>';// ERROR DONT'T USE HTML!!! //'Your attempt to add <b>%s</b> (<i>%s</i>) to <br><b>%s</b><br> is NOT allowed. That attribute/value belongs to another entry.<p>You might like to <a href=\'%s\'>search</a> for that entry.';
$lang['php_install_not_supports_tls'] = 'Die verwendete PHP-Version unterst<73>tzt kein TLS (verschl<68>sselte Verbindung).';//"Your PHP install does not support TLS';
$lang['could_not_start_tls'] = 'TLS konnte nicht gestartet werden. Bitte die LDAP-Server-Konfiguration <20>berpr<70>fen.';//"Could not start TLS.<br />Please check your LDAP server configuration.';
$lang['could_not_bind_anon'] = 'Konnte keine Anonymous Anmeldung zum Server herstellen.';//'Could not bind anonymously to server.';
$lang['could_not_bind'] = 'Konnte keine Verbindung zum LDAP-Server herstellen';//'Could not bind to the LDAP server.';
//$lang['anon_required_for_login_attr'] = 'Bei der Verwendung des Anmeldeprozedur "login_attr" muss der Server Anonymous Anmelden zulassen.';//'When using the login_attr feature, the LDAP server must support anonymous binds.';
$lang['anonymous_bind'] = 'Anonymous anmelden';//'Anonymous Bind';
//$lang['auth_type_not_valid'] = 'Die Konfigurationsdatei enth<74>lt einen Fehler. Der Eintrag f<>r \'auth_type\' mit \'%s\' ist nicht g<>ltig';// 'You have an error in your config file. auth_type of %s is not valid.';
$lang['bad_user_name_or_password'] = 'Falscher Benutzername oder Passwort. Bitte erneut versuchen.';//'Bad username or password. Please try again.';
$lang['redirecting_click_if_nothing_happens'] = 'Automatische Umleitung. Falls dies nicht automatisch erfolgt dann hier klicken.';//'Redirecting... Click here if nothing happens.';
$lang['successfully_logged_in_to_server'] = 'Erfolgreich am Server %s angemeldet';//'Successfully logged into server <b>%s</b>';
$lang['could_not_set_cookie'] = 'Konnte kein \'Cookie\' setzten.';//'Could not set cookie.';
$lang['ldap_said'] = 'LDAP meldet: %s';//"<b>LDAP said</b>: %s<br /><br />';
$lang['ferror_error'] = 'Fehler';//"Error';
$lang['fbrowse'] = '<27>berfliegen';//"browse';
$lang['delete_photo'] = 'L<>sche Foto';//"Delete Photo';
$lang['install_not_support_blowfish'] = 'Die verwendete PHP-Version unterst<73>tzt keine Blowfish Verschl<68>sselung.';//"Your PHP install does not support blowfish encryption.';
$lang['install_not_support_md5crypt'] = 'Die eingesetzte PHP-Version unterst<73>tzt keine MD5-Verschl<68>sselung.';//'Your PHP install does not support md5crypt encryption.';
$lang['install_no_mash'] = 'Die verwendete PHP-Version unterst<73>tzt nicht die Funktion mhash(), daher kann kein SHA Hash verwendet werden.';// "Your PHP install does not have the mhash() function. Cannot do SHA hashes.';
$lang['jpeg_contains_errors'] = 'Die Bilddatei enth<74>lt Fehler';//"jpegPhoto contains errors<br />';
$lang['ferror_number'] = 'Fehlernummer: %s (%s)';//"<b>Error number</b>: %s <small>(%s)</small><br /><br />';
$lang['ferror_discription'] ='Beschreibung: %s';// "<b>Description</b>: %s <br /><br />';
$lang['ferror_number_short'] = 'Fehlernummer: %s';//"<b>Error number</b>: %s<br /><br />';
$lang['ferror_discription_short'] = 'Beschreibung: (keine Beschreibung verf<72>gbar)';//"<b>Description</b>: (no description available)<br />';
$lang['ferror_submit_bug'] = 'Ist das ein phpLDAPadmin Fehler? Wenn dies so ist, dann bitte <a href=\'%s\'>dar<61>ber berichten</a>';//"Is this a phpLDAPadmin bug? If so, please <a href=\'%s\'>report it</a>.';
$lang['ferror_unrecognized_num'] = 'Unbekannte Fehlernummer:';//"Unrecognized error number: ';
$lang['ferror_nonfatil_bug'] = '<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' /><b>Ein nicht fataler Fehler in phpLDAPadmin gefunden!</b></td></tr><tr><td>Fehler:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Datei:</td><td><b>%s</b>Zeile:<b>%s</b>, aufgerufen von <b>%s</b></td></tr><tr><td>Version:</td><td>PLA: <b>%s</b>, PHP: <b>%s</b>, SAPI: <b>%s</b></td></tr><tr><td>Web server:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>Bitte diesen Fehler melden (durch anklicken).</a>.</center></td></tr></table></center><br />';//"<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' /><b>You found a non-fatal phpLDAPadmin bug!</b></td></tr><tr><td>Error:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>File:</td><td><b>%s</b> line <b>%s</b>, caller <b>%s</b></td></tr><tr><td>Versions:</td><td>PLA: <b>%s</b>, PHP: <b>%s</b>, SAPI: <b>%s</b></td></tr><tr><td>Web server:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>Please report this bug by clicking here</a>.</center></td></tr></table></center><br />';
$lang['ferror_congrats_found_bug'] = '<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' /><b>Gratulation, einen Fehler in phpLDAPadmin gefunden!</b></td></tr><tr><td>Fehler:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Datei:</td><td><b>%s</b>Zeile:<b>%s</b>, aufgerufen von <b>%s</b></td></tr><tr><td>Version:</td><td>PLA: <b>%s</b>, PHP: <b>%s</b>, SAPI: <b>%s</b></td></tr><tr><td>Web server:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>Bitte diesen Fehler melden (durch anklicken).</a>.</center></td></tr></table></center><br />';//"Congratulations! You found a bug in phpLDAPadmin.<br /><br /><table class=\'bug\'><tr><td>Error:</td><td><b>%s</b></td></tr><tr><td>Level:</td><td><b>%s</b></td></tr><tr><td>File:</td><td><b>%s</b></td></tr><tr><td>Line:</td><td><b>%s</b></td></tr><tr><td>Caller:</td><td><b>%s</b></td></tr><tr><td>PLA Version:</td><td><b>%s</b></td></tr><tr><td>PHP Version:</td><td><b>%s</b></td></tr><tr><td>PHP SAPI:</td><td><b>%s</b></td></tr><tr><td>Web server:</td><td><b>%s</b></td></tr></table><br /> Please report this bug by clicking below!';
//ldif_import_form
$lang['import_ldif_file_title'] = 'Importiere LDIF Datei';//'Import LDIF File';
$lang['select_ldif_file'] = 'LDIF Datei ausw<73>hlen';//'Select an LDIF file:';
$lang['select_ldif_file_proceed'] = 'Ausf<73>hren';//'Proceed &gt;&gt;';
$lang['dont_stop_on_errors'] = 'Bei einem Fehler nicht unterbrechen sondern weitermachen.';//'Don\'t stop on errors';
//ldif_import
$lang['add_action'] = 'Hinzuf<75>gen...';//'Adding...';
$lang['delete_action'] = 'Entfernen...';//'Deleting...';
$lang['rename_action'] = 'Umbenennen...';//'Renaming...';
$lang['modify_action'] = 'Ab<41>ndern...';//'Modifying...';
$lang['warning_no_ldif_version_found'] = 'Keine Version gefunden. Gehe von der Version 1 aus.';//'No version found. Assuming 1.';
$lang['valid_dn_line_required'] = 'Eine g<>ltige DN Zeile wird ben<65>tigt.';//'A valid dn line is required.';
$lang['missing_uploaded_file'] = 'Hochgeladene Datei fehlt.';//'Missing uploaded file.';
$lang['no_ldif_file_specified.'] = 'Kein LDIF-Datei angegeben. Bitte erneut versuchen.';//'No LDIF file specified. Please try again.';
$lang['ldif_file_empty'] = 'Die hochgeladene LDIF-Datei ist leer.';// 'Uploaded LDIF file is empty.';
$lang['empty'] = 'leer';//'empty';
$lang['file'] = 'Datei';//'File';
$lang['number_bytes'] = '%s Bytes';//'%s bytes';
$lang['failed'] = 'fehlgeschlagen';//'failed';
$lang['ldif_parse_error'] = 'LDIF Pars Fehler';//'LDIF Parse Error';
$lang['ldif_could_not_add_object'] = 'Konnte das Objekt nicht hinzuf<75>gen:';//'Could not add object:';
$lang['ldif_could_not_rename_object'] = 'Konnte das Objekt nicht umbenennen:';//'Could not rename object:';
$lang['ldif_could_not_delete_object'] = 'Konnte das Objekt nicht entfernen:';//'Could not delete object:';
$lang['ldif_could_not_modify_object'] = 'Konnte das Objekt nicht ab<61>ndern:';//'Could not modify object:';
$lang['ldif_line_number'] = 'Anzahl Zeilen:';//'Line Number:';
$lang['ldif_line'] = 'Zeile:';//'Line:';
//delete_form
$lang['sure_permanent_delete_object']='Sind Sie sicher das Sie dauerhaft den Eintrag l<>schen wollen?';//'Are you sure you want to permanently delete this object?';
$lang['permanently_delete_children']='L<>sche alles und auch die Untereintr<74>ge?';//'Permanently delete all children also?';
//$lang['info_delete_recursive_1']='Dieser Objekt-Eintrag hat weitere Untereintr<74>ge';//'This object is the root of a sub-tree containing objects.';
//$lang['info_delete_recursive_2']='phpLDAPadmin kann rekursiv diesen Objekt-Eintrag mit all seinen Untereintr<74>gen l<>schen.';//'phpLDAPadmin can recursively delete this object and all of its children.';
//$lang['info_delete_recursive_3']='Unten ist eine Liste mit allen Eintr<74>gen (DN) aufgef<65>hrt die gel<65>scht werden. Soll dies wirklich durchgef<65>hrt werden?';//'See below for a list of DNs that this will delete. Do you want to do this?';
//$lang['note_delete_noundo']='Hinweis: Dies ist sehr gef<65>hrlich. Die Aktion kann nicht r<>ckg<6B>ngig gemacht werden. Synomyme (alias) und <20>hnliche Eintr<74>ge k<>nnen zu Problemen f<>hren.'; // 'Note: This is potentially very dangerous and you do this at your own risk. This operation cannot be undone. Take into consideration aliases and other such things that may cause problems.';
//$lang['list_of_dn_delete']='Liste aller DN(s) die mit dieser Aktion mitgel<65>scht werden.';//'A list of all the DN(s) that this action will delete:';
//$lang['cannot_delete_base_dn']='Der Basis DN kann nicht gel<65>scht werden';//'You cannot delete the base DN entry of the LDAP server.';
$lang['list_of_entries_to_be_deleted'] = 'List der Eintr<74>ge die gel<65>scht werden:';//'List of entries to be deleted:';
$lang['dn'] = 'DN'; //'DN';
// Exports
$lang['export_format'] = 'Export Format';// 'Export format';
$lang['line_ends'] = 'Zeilenende'; //'Line ends';
$lang['must_choose_export_format'] = 'Bitte ein Exportformat ausw<73>hlen';//'You must choose an export format.';
$lang['invalid_export_format'] = 'Ungl<67>ltiges Export-Format';//'Invalid export format';
$lang['no_exporter_found'] = 'Keinen g<>ltigen Exporter gefunden.';//'No available exporter found.';
$lang['error_performing_search'] = 'Ein Fehler trat w<>hrend des Suchvorgangs auf';//'Encountered an error while performing search.';
$lang['showing_results_x_through_y'] = 'Zeige die Ergebnisse von %s bis %s.';//'Showing results %s through %s.';
$lang['searching'] = 'Suche...';//'Searching...';
$lang['size_limit_exceeded'] = 'Hinweis, das Limit der Suchtreffer wurde <20>berschritten.';//'Notice, search size limit exceeded.';
$lang['entry'] = 'Eintrag';//'Entry';
$lang['ldif_export_for_dn'] = 'LDIF Export von: %s'; //'LDIF Export for: %s';
$lang['generated_on_date'] = 'Erstellt von phpLDAPadmin ( http://phpldapadmin.sourceforge.net/ ) am %s';//'Generated by phpLDAPadmin on %s';
$lang['total_entries'] = 'Anzahl der Eintraege';//'Total Entries';
$lang['dsml_export_for_dn'] = 'DSLM Export von:';//'DSLM Export for: %s';
$lang['include_system_attrs'] = 'Einbinden von System-Attributen';//'Include system attributes';
// logins
$lang['could_not_find_user'] = 'Konnte den Benutzer %s nicht finden.';//'Could not find a user "%s"';
$lang['password_blank'] = 'Das Passwort wurde leer gelassen';//'You left the password blank.';
$lang['login_cancelled'] = 'Anmeldung abgebrochen';//'Login cancelled.';
$lang['no_one_logged_in'] = 'Niemand ist an diesem Server angemeldet';//'No one is logged in to that server.';
$lang['could_not_logout'] = 'Konnte nicht abgemeldet werden';//'Could not logout.';
//$lang['browser_close_for_http_auth_type'] = 'You must close your browser to logout whie in \'http\' authentication mode';
$lang['unknown_auth_type'] = 'Unbekannter Authentifizierungsart: %s';//'Unknown auth_type: %s';
$lang['logged_out_successfully'] = 'Erfolgreich vom Server %s abgemeldet.';//'Logged out successfully from server <b>%s</b>';
$lang['authenticate_to_server'] = 'Authentifizierung mit Server %s';//'Authenticate to server %s';
$lang['warning_this_web_connection_is_unencrypted'] = 'Achtung: Diese Webverbindung ist unverschl<68>sselt.';//'Warning: This web connection is unencrypted.';
$lang['not_using_https'] = 'Es wird keine verschl<68>sselte Verbindung (\'https\') verwendet. Der Webbrowser <20>bermittelt die Anmeldeinformationen im Klartext.';// 'You are not use \'https\'. Web browser will transmit login information in clear text.';
$lang['login_dn'] = 'Anmelde DN';//'Login DN';
$lang['user_name'] = 'Benutzername';//'User name';
$lang['password'] = 'Passwort';//'Password';
$lang['authenticate'] = 'Authentifizierung';//'Authenticate';
// Entry browser
$lang['entry_chooser_title'] = 'Eintr<74>ge ausw<73>hlen';//'Entry Chooser';
// Index page
$lang['need_to_configure'] = 'phpLDAPadmin muss konfiguriert werden. Bitte die Datei "config.php" erstellen. Ein Beispiel einer "config.php" liegt als Datei "config.php.example" bei.';// ';//'You need to configure phpLDAPadmin. Edit the file \'config.php\' to do so. An example config file is provided in \'config.php.example\'';
// Mass deletes
$lang['no_deletes_in_read_only'] = 'L<>schen ist im Nur-Lese-Modus nicht erlaubt.';//'Deletes not allowed in read only mode.';
$lang['error_calling_mass_delete'] = 'Fehler im Aufruf von "mass_delete.php". "mass_delete" ist in den POST-Variablen nicht vorhanden.';//'Error calling mass_delete.php. Missing mass_delete in POST vars.';
$lang['search_attrs_wrong_count'] = 'Die config.php beinhaltet einen fehlerhaften Eintrag. Die anzahl der Attribute in $search_attributes und $search_attributes_diplay ist unterschiedlich';//'Your config.php has an error. The number of attributes in $search_attributes and $search_attributes_display is different';
$lang['mass_delete_not_array'] = 'Die POST-Variable "mass_delete" ist kein Array.';//'mass_delete POST var is not an array.';
$lang['mass_delete_not_enabled'] = '"Viel-L<>schen" ist nicht aktiviert. Bitte in der der "config.php" aktivieren vor dem Weitermachen.';//'Mass deletion is not enabled. Please enable it in config.php before proceeding.';
$lang['mass_deleting'] = 'Viel-L<>schen';//'Mass Deleting';
$lang['mass_delete_progress'] = 'L<>schprozess auf Server "%s"';//'Deletion progress on server "%s"';
$lang['malformed_mass_delete_array'] = 'Das Array "mass_delete" ist falsch dargestellt.';//'Malformed mass_delete array.';
$lang['no_entries_to_delete'] = 'Es wurde kein zu l<>schender Eintrag ausgew<65>hlt.';//'You did not select any entries to delete.';
$lang['deleting_dn'] = 'L<>sche "%s"';//'Deleting %s';
$lang['total_entries_failed'] = '%s von %s Eintr<74>gen konnten nicht gel<65>scht werden.';//'%s of %s entries failed to be deleted.';
$lang['all_entries_successful'] = 'Alle Eintr<74>ge wurden erfolgreich gel<65>scht.';//'All entries deleted successfully.';
$lang['confirm_mass_delete'] = 'Bitte das L<>schen von %s Eintr<74>gen auf dem Server %s best<73>tigen';//'Confirm mass delete of %s entries on server %s';
$lang['yes_delete'] = 'Ja, L<>schen!';//'Yes, delete!';
// Renaming entries
$lang['non_leaf_nodes_cannot_be_renamed'] = 'Das Umbenennen von einem Eintrag mit Untereintr<74>gen ist nicht M<>glich. Es ist nur auf den Untersten Eintr<74>gen gestattet.';// 'You cannot rename an entry which has children entries (eg, the rename operation is not allowed on non-leaf entries)';
$lang['no_rdn_change'] = 'Der RDN wurde nicht ver<65>ndert';//'You did not change the RDN';
$lang['invalid_rdn'] = 'Ung<6E>ltiger RDN Wert';//'Invalid RDN value';
$lang['could_not_rename'] = 'Der Eintrag konnte nicht umbenannt werden';//'Could not rename the entry';
?>

View File

@@ -1,697 +0,0 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/en.php,v 1.133.2.5 2005/10/22 14:22:48 wurley Exp $
/* --- INSTRUCTIONS FOR TRANSLATORS ---
*
* If you want to write a new language file for your language,
* please submit the file on SourceForge:
*
* https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498548
*
* Use the option "Check to Upload and Attach a File" at the bottom
*
* Read the doc/README-translation.txt for translation instructions.
*
* Thank you!
*
*/
/*
* The $lang array contains all the strings that phpLDAPadmin uses.
* Each language file simply defines this aray with strings in its
* language.
*/
// Search form
$lang['simple_search_form_str'] = 'Simple Search Form';
$lang['advanced_search_form_str'] = 'Advanced Search Form';
$lang['server'] = 'Server';
$lang['search_for_entries_whose'] = 'Search for entries whose';
$lang['base_dn'] = 'Base DN';
$lang['search_scope'] = 'Search Scope';
$lang['show_attributes'] = 'Show Attributtes';
$lang['Search'] = 'Search';
$lang['predefined_search_str'] = 'Select a predefined search';
$lang['predefined_searches'] = 'Predefined Searches';
$lang['no_predefined_queries'] = 'No queries have been defined in config.php.';
$lang['export_results'] = 'export results';
$lang['unrecoginzed_search_result_format'] = 'Unrecognized search result format: %s';
$lang['format'] = 'Format';
$lang['list'] = 'list';
$lang['table'] = 'table';
$lang['bad_search_display'] = 'Your config.php specifies an invalid value for $default_search_display: %s. Please fix it';
$lang['page_n'] = 'Page %d';
$lang['next_page'] = 'Next Page';
$lang['no_results'] = 'The search found no results.';
// Tree browser
$lang['request_new_feature'] = 'Request feature';
$lang['report_bug'] = 'Report a bug';
$lang['schema'] = 'schema';
$lang['search'] = 'search';
$lang['create'] = 'create';
$lang['info'] = 'info';
$lang['import'] = 'import';
$lang['refresh'] = 'refresh';
$lang['logout'] = 'logout';
$lang['create_new'] = 'Create new entry here';
$lang['view_schema_for'] = 'View schema for';
$lang['refresh_expanded_containers'] = 'Refresh all expanded containers for';
$lang['create_new_entry_on'] = 'Create a new entry on';
$lang['new'] = 'new';
$lang['view_server_info'] = 'View server-supplied information';
$lang['import_from_ldif'] = 'Import entries from an LDIF file';
$lang['logout_of_this_server'] = 'Logout of this server';
$lang['logged_in_as'] = 'Logged in as: ';
$lang['this_base_dn_is_not_valid'] = 'This is not a valid DN.';
$lang['this_base_dn_does_not_exist'] = 'This entry does not exist.';
$lang['read_only'] = 'read only';
$lang['read_only_tooltip'] = 'This attribute has been flagged as read only by the phpLDAPadmin administrator';
$lang['could_not_determine_root'] = 'Could not determine the root of your LDAP tree.';
$lang['ldap_refuses_to_give_root'] = 'It appears that the LDAP server has been configured to not reveal its root.';
$lang['please_specify_in_config'] = 'Please specify it in config.php';
$lang['create_new_entry_in'] = 'Create a new entry in';
$lang['login_link'] = 'Login...';
$lang['login'] = 'login';
$lang['base_entry_does_not_exist'] = 'This base entry does not exist.';
$lang['create_it'] = 'Create it?';
// Entry display
$lang['delete_this_entry'] = 'Delete this entry';
$lang['delete_this_entry_tooltip'] = 'You will be prompted to confirm this decision';
$lang['copy_this_entry'] = 'Copy or move this entry';
$lang['copy_this_entry_tooltip'] = 'Copy this object to another location, a new DN, or another server';
$lang['export'] = 'Export';
$lang['export_lcase'] = 'export';
$lang['export_tooltip'] = 'Save a dump of this object';
$lang['export_subtree_tooltip'] = 'Save a dump of this object and all of its children';
$lang['export_subtree'] = 'Export subtree';
$lang['create_a_child_entry'] = 'Create a child entry';
$lang['rename_entry'] = 'Rename Entry';
$lang['rename'] = 'Rename';
$lang['rename_lower'] = 'rename';
$lang['add'] = 'Add';
$lang['view'] = 'View';
$lang['view_one_child'] = 'View 1 child';
$lang['view_children'] = 'View %s children';
$lang['add_new_attribute'] = 'Add new attribute';
$lang['add_new_objectclass'] = 'Add new ObjectClass';
$lang['hide_internal_attrs'] = 'Hide internal attributes';
$lang['show_internal_attrs'] = 'Show internal attributes';
$lang['attr_name_tooltip'] = 'Click to view the schema defintion for attribute type \'%s\'';
$lang['none'] = 'none';
$lang['no_internal_attributes'] = 'No internal attributes';
$lang['no_attributes'] = 'This entry has no attributes';
$lang['save_changes'] = 'Save Changes';
$lang['add_value'] = 'add value';
$lang['add_value_tooltip'] = 'Add an additional value to attribute \'%s\'';
$lang['refresh_entry'] = 'Refresh';
$lang['refresh_this_entry'] = 'Refresh this entry';
$lang['delete_hint'] = 'Hint: To delete an attribute, empty the text field and click save.';
$lang['attr_schema_hint'] = 'Hint: To view the schema for an attribute, click the attribute name.';
$lang['attrs_modified'] = 'Some attributes (%s) were modified and are highlighted below.';
$lang['attr_modified'] = 'An attribute (%s) was modified and is highlighted below.';
$lang['viewing_read_only'] = 'Viewing entry in read-only mode.';
$lang['no_new_attrs_available'] = 'no new attributes available for this entry';
$lang['no_new_binary_attrs_available'] = 'no new binary attributes available for this entry';
$lang['binary_value'] = 'Binary value';
$lang['add_new_binary_attr'] = 'Add new binary attribute';
$lang['alias_for'] = 'Note: \'%s\' is an alias for \'%s\'';
$lang['required_for'] = 'Required attribute for objectClass(es) %s';
$lang['required_by_entry'] = 'This attribute is required for the RDN.';
$lang['download_value'] = 'download value';
$lang['delete_attribute'] = 'delete attribute';
$lang['true'] = 'true';
$lang['false'] = 'false';
$lang['none_remove_value'] = 'none, remove value';
$lang['really_delete_attribute'] = 'Really delete attribute';
$lang['add_new_value'] = 'Add New Value';
// Schema browser
$lang['schema_retrieve_error_1']='The server does not fully support the LDAP protocol.';
$lang['schema_retrieve_error_2']='Your version of PHP does not correctly perform the query.';
$lang['schema_retrieve_error_3']='phpLDAPadmin doesn\'t know how to fetch the schema for your server.';
$lang['schema_retrieve_error_4']='Or lastly, your LDAP server doesnt provide this information.';
$lang['jump_to_objectclass'] = 'Jump to an objectClass';
$lang['view_schema_for_oclass'] = 'View the schema description for this objectClass';
$lang['jump_to_attr'] = 'Jump to an attribute type';
$lang['jump_to_matching_rule'] = 'Jump to a matching rule';
$lang['schema_for_server'] = 'Schema for server';
$lang['required_attrs'] = 'Required Attributes';
$lang['required'] = 'required';
$lang['optional_attrs'] = 'Optional Attributes';
$lang['optional_binary_attrs'] = 'Optional Binary Attributes';
$lang['OID'] = 'OID';
$lang['aliases']='Aliases';
$lang['desc'] = 'Description';
$lang['no_description']='no description';
$lang['name'] = 'Name';
$lang['equality']='Equality';
$lang['is_obsolete'] = 'This objectClass is obsolete.';
$lang['inherits'] = 'Inherits from';
$lang['inherited_from'] = 'Inherited from';
$lang['parent_to'] = 'Parent to';
$lang['jump_to_this_oclass'] = 'Jump to this objectClass definition';
$lang['matching_rule_oid'] = 'Matching Rule OID';
$lang['syntax_oid'] = 'Syntax OID';
$lang['not_applicable'] = 'not applicable';
$lang['not_specified'] = 'not specified';
$lang['character']='character';
$lang['characters']='characters';
$lang['used_by_objectclasses']='Used by objectClasses';
$lang['used_by_attributes']='Used by Attributes';
$lang['maximum_length']='Maximum Length';
$lang['attribute_types']='Attribute Types';
$lang['syntaxes']='Syntaxes';
$lang['matchingrules']='Matching Rules';
$lang['oid']='OID';
$lang['obsolete']='Obsolete';
$lang['ordering']='Ordering';
$lang['substring_rule']='Substring Rule';
$lang['single_valued']='Single Valued';
$lang['collective']='Collective';
$lang['user_modification']='User Modification';
$lang['usage']='Usage';
$lang['could_not_retrieve_schema_from']='Could not retrieve schema from';
$lang['type']='Type';
$lang['no_such_schema_item'] = 'No such schema item: "%s"';
$lang['random_password'] = 'A random password was generated for you';
// Deleting entries
$lang['entry_deleted_successfully'] = 'Entry %s deleted successfully.';
$lang['you_must_specify_a_dn'] = 'You must specify a DN';
$lang['could_not_delete_entry'] = 'Could not delete the entry: %s';
$lang['no_such_entry'] = 'No such entry: %s';
$lang['delete_dn'] = 'Delete %s';
$lang['permanently_delete_children'] = 'Permanently delete all children also?';
$lang['entry_is_root_sub_tree'] = 'This entry is the root of a sub-tree containing %s entries.';
$lang['view_entries'] = 'view entries';
$lang['confirm_recursive_delete'] = 'phpLDAPadmin can recursively delete this entry and all %s of its children. See below for a list of all the entries that this action will delete. Do you want to do this?';
$lang['confirm_recursive_delete_note'] = 'Note: this is potentially very dangerous and you do this at your own risk. This operation cannot be undone. Take into consideration aliases, referrals, and other things that may cause problems.';
$lang['delete_all_x_objects'] = 'Delete all %s objects';
$lang['recursive_delete_progress'] = 'Recursive delete progress';
$lang['entry_and_sub_tree_deleted_successfully'] = 'Entry %s and sub-tree deleted successfully.';
$lang['failed_to_delete_entry'] = 'Failed to delete entry %s';
$lang['list_of_entries_to_be_deleted'] = 'List of entries to be deleted:';
$lang['sure_permanent_delete_object']='Are you sure you want to permanently delete this object?';
$lang['dn'] = 'DN';
// Deleting attributes
$lang['attr_is_read_only'] = 'The attribute "%s" is flagged as read-only in the phpLDAPadmin configuration.';
$lang['no_attr_specified'] = 'No attribute name specified.';
$lang['no_dn_specified'] = 'No DN specified';
// Adding attributes
$lang['left_attr_blank'] = 'You left the attribute value blank. Please go back and try again.';
$lang['failed_to_add_attr'] = 'Failed to add the attribute.';
$lang['file_empty'] = 'The file you chose is either empty or does not exist. Please go back and try again.';
$lang['invalid_file'] = 'Security error: The file being uploaded may be malicious.';
$lang['warning_file_uploads_disabled'] = 'Your PHP configuration has disabled file uploads. Please check php.ini before proceeding.';
$lang['uploaded_file_too_big'] = 'The file you uploaded is too large. Please check php.ini, upload_max_size setting';
$lang['uploaded_file_partial'] = 'The file you selected was only partially uploaded, likley due to a network error.';
$lang['max_file_size'] = 'Maximum file size: %s';
// Updating values
$lang['modification_successful'] = 'Modification successful!';
$lang['change_password_new_login'] = 'Since you changed your password, you must now login again with your new password.';
// Adding objectClass form
$lang['new_required_attrs'] = 'New Required Attributes';
$lang['requires_to_add'] = 'This action requires you to add';
$lang['new_attributes'] = 'new attributes';
$lang['new_required_attrs_instructions'] = 'Instructions: In order to add these objectClass(es) to this entry, you must specify';
$lang['that_this_oclass_requires'] = 'that this objectClass requires. You can do so in this form.';
$lang['add_oclass_and_attrs'] = 'Add ObjectClass and Attributes';
$lang['objectclasses'] = 'ObjectClasses';
// General
$lang['chooser_link_tooltip'] = 'Click to popup a dialog to select an entry (DN) graphically';
$lang['date_selector_link'] = 'Click to popup a dialog to select a date graphically';
$lang['no_updates_in_read_only_mode'] = 'You cannot perform updates while server is in read-only mode';
$lang['bad_server_id'] = 'Bad server id';
$lang['not_enough_login_info'] = 'Not enough information to login to server. Please check your configuration.';
$lang['could_not_connect'] = 'Could not connect to LDAP server.';
$lang['could_not_connect_to_host_on_port'] = 'Could not connect to "%s" on port "%s"';
$lang['could_not_perform_ldap_mod_add'] = 'Could not perform ldap_mod_add operation.';
$lang['home'] = 'Home';
$lang['help'] = 'Help';
$lang['success'] = 'Success';
$lang['server_colon_pare'] = 'Server: ';
$lang['look_in'] = 'Looking in: ';
$lang['missing_dn_in_query_string'] = 'No DN specified in query string!';
$lang['back_up_p'] = 'Back Up...';
$lang['no_entries'] = 'no entries';
$lang['could_not_det_base_dn'] = 'Could not determine base DN';
$lang['reasons_for_error']='This could happen for several reasons, the most probable of which are:';
$lang['yes']='Yes';
$lang['no']='No';
$lang['go']='Go';
$lang['delete']='Delete';
$lang['back']='Back';
$lang['object']='object';
$lang['delete_all']='Delete all';
$lang['hint'] = 'hint';
$lang['bug'] = 'bug';
$lang['warning'] = 'warning';
$lang['light'] = 'light'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = 'Proceed &gt;&gt;';
$lang['jpeg_dir_not_writable'] = 'Please set $jpeg_temp_dir to a writable directory in the phpLDAPadmin config.php';
$lang['jpeg_dir_not_writable_error'] = 'Could not write to the $jpeg_temp_dir directory %s. Please verify that your web server can write files there.';
$lang['jpeg_unable_toget'] = 'Could not fetch jpeg data from LDAP server for attribute %s.';
$lang['jpeg_delete'] = 'Delete photo';
// Add value form
$lang['add_new'] = 'Add new';
$lang['value_to'] = 'value to';
$lang['distinguished_name'] = 'Distinguished Name';
$lang['current_list_of'] = 'Current list of';
$lang['values_for_attribute'] = 'values for attribute';
$lang['inappropriate_matching_note'] = 'Note: You will get an "inappropriate matching" error if you have not setup an EQUALITY rule on your LDAP server for this attribute.';
$lang['enter_value_to_add'] = 'Enter the value you would like to add:';
$lang['new_required_attrs_note'] = 'Note: You may be required to enter new attributes that these objectClass(es) require';
$lang['syntax'] = 'Syntax';
//copy.php
$lang['copy_server_read_only'] = 'You cannot perform updates while server is in read-only mode';
$lang['copy_dest_dn_blank'] = 'You left the destination DN blank.';
$lang['copy_dest_already_exists'] = 'The destination entry (%s) already exists.';
$lang['copy_dest_container_does_not_exist'] = 'The destination container (%s) does not exist.';
$lang['copy_source_dest_dn_same'] = 'The source and destination DN are the same.';
$lang['copy_copying'] = 'Copying ';
$lang['copy_recursive_copy_progress'] = 'Recursive copy progress';
$lang['copy_building_snapshot'] = 'Building snapshot of tree to copy... ';
$lang['copy_successful_like_to'] = 'Copy successful! Would you like to ';
$lang['copy_view_new_entry'] = 'view the new entry';
$lang['copy_failed'] = 'Failed to copy DN: ';
//edit.php
$lang['missing_template_file'] = 'Warning: missing template file, ';
$lang['using_default'] = 'Using default.';
$lang['template'] = 'Template';
$lang['must_choose_template'] = 'You must choose a template';
$lang['invalid_template'] = '%s is an invalid template';
$lang['using_template'] = 'using template';
$lang['go_to_dn'] = 'Go to %s';
$lang['structural_object_class_cannot_remove'] = 'This is a structural ObjectClass and cannot be removed.';
$lang['structural'] = 'structural';
//copy_form.php
$lang['copyf_title_copy'] = 'Copy ';
$lang['copyf_to_new_object'] = 'to a new object';
$lang['copyf_dest_dn'] = 'Destination DN';
$lang['copyf_dest_dn_tooltip'] = 'The full DN of the new entry to be created when copying the source entry';
$lang['copyf_dest_server'] = 'Destination Server';
$lang['copyf_note'] = 'Hint: Copying between different servers only works if there are no schema violations';
$lang['copyf_recursive_copy'] = 'Recursively copy all children of this object as well.';
$lang['recursive_copy'] = 'Recursive copy';
$lang['filter'] = 'Filter';
$lang['filter_tooltip'] = 'When performing a recursive copy, only copy those entries which match this filter';
$lang['delete_after_copy'] = 'Delete after copy (move):';
$lang['delete_after_copy_warn'] = 'Make sure your filter (above) will select all child records.';
//create.php
$lang['create_required_attribute'] = 'You left the value blank for required attribute (%s).';
$lang['redirecting'] = 'Redirecting...';
$lang['here'] = 'here';
$lang['create_could_not_add'] = 'Could not add the object to the LDAP server.';
//create_form.php
$lang['createf_create_object'] = 'Create Object';
$lang['createf_choose_temp'] = 'Choose a template';
$lang['createf_select_temp'] = 'Select a template for the creation process';
$lang['save_as_file'] = 'Save as file';
$lang['rdn_field_blank'] = 'You left the RDN field blank.';
$lang['container_does_not_exist'] = 'The container you specified (%s) does not exist. Please try again.';
$lang['no_objectclasses_selected'] = 'You did not select any ObjectClasses for this object. Please go back and do so.';
$lang['hint_structural_oclass'] = 'Hint: You must choose exactly one structural objectClass (shown in bold above)';
$lang['template_restricted'] = 'This template is not allowed in this container.';
$lang['template_invalid'] = 'This template has been disabled, possibly due to missing schema or missing template XML fields.';
//creation_template.php
$lang['ctemplate_on_server'] = 'On server';
$lang['ctemplate_no_template'] = 'No template specified in POST variables.';
$lang['template_not_readable'] = 'Your config specifies a handler of "%s" for this template but this file is not readable because the permissions are too strict.';
$lang['template_does_not_exist'] = 'Your config specifies a handler of "%s" for this template but this handler does not exist in the templates/creation directory.';
$lang['create_step1'] = 'Step 1 of 2: Name and ObjectClass(es)';
$lang['create_step2'] = 'Step 2 of 2: Specify attributes and values';
$lang['relative_distinguished_name'] = 'Relative Distinguished Name';
$lang['rdn'] = 'RDN';
$lang['rdn_example'] = '(example: cn=MyNewPerson)';
$lang['container'] = 'Container';
// search.php
$lang['you_have_not_logged_into_server'] = 'You have not logged into the selected server yet, so you cannot perform searches on it.';
$lang['click_to_go_to_login_form'] = 'Click here to go to the login form';
$lang['unrecognized_criteria_option'] = 'Unrecognized criteria option: ';
$lang['if_you_want_to_add_criteria'] = 'If you want to add your own criteria to the list. Be sure to edit search.php to handle them. Quitting.';
$lang['entries_found'] = 'Entries found: ';
$lang['filter_performed'] = 'Filter performed: ';
$lang['search_duration'] = 'Search performed by phpLDAPadmin in';
$lang['seconds'] = 'seconds';
// search_form_advanced.php
$lang['scope_in_which_to_search'] = 'The scope in which to search';
$lang['scope_sub'] = 'Sub (entire subtree)';
$lang['scope_one'] = 'One (one level beneath base)';
$lang['scope_base'] = 'Base (base dn only)';
$lang['standard_ldap_search_filter'] = 'Standard LDAP search filter. Example: (&(sn=Smith)(givenname=David))';
$lang['search_filter'] = 'Search Filter';
$lang['list_of_attrs_to_display_in_results'] = 'A list of attributes to display in the results (comma-separated)';
// search_form_simple.php
$lang['equals'] = 'equals';
$lang['starts with'] = 'starts with';
$lang['contains'] = 'contains';
$lang['ends with'] = 'ends with';
$lang['sounds like'] = 'sounds like';
// server_info.php
$lang['could_not_fetch_server_info'] = 'Could not retrieve LDAP information from the server. This may be due to a <a href="http://bugs.php.net/bug.php?id=29587">bug</a> in your version of PHP or perhaps your LDAP server has access control specified that prevents LDAP clients from accessing the RootDSE.';
$lang['server_info_for'] = 'Server info for: ';
$lang['server_reports_following'] = 'Server reports the following information about itself';
$lang['nothing_to_report'] = 'This server has nothing to report.';
//update.php
$lang['update_array_malformed'] = 'update_array is malformed. This might be a phpLDAPadmin bug. Please report it.';
$lang['could_not_perform_ldap_modify'] = 'Could not perform ldap_modify operation.';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = 'Do you want to make these changes?';
$lang['attribute'] = 'Attribute';
$lang['old_value'] = 'Old Value';
$lang['new_value'] = 'New Value';
$lang['attr_deleted'] = '[attribute deleted]';
$lang['commit'] = 'Commit';
$lang['cancel'] = 'Cancel';
$lang['you_made_no_changes'] = 'You made no changes';
$lang['go_back'] = 'Go back';
// welcome.php
$lang['welcome_note'] = 'Use the menu to the left to navigate';
$lang['credits'] = 'Credits';
$lang['changelog'] = 'ChangeLog';
$lang['documentation'] = 'Documentation';
$lang['donate'] = 'Donate';
$lang['pla_logo'] = 'phpLDAPadmin logo';
// Donate.php
$lang['donation_instructions'] = 'To donate funds to the phpLDAPadmin project, use one of the PayPal buttons below.';
$lang['donate_amount'] = 'Donate %s';
$lang['purge_cache'] = 'Purge caches';
$lang['no_cache_to_purge'] = 'No cache to purge.';
$lang['done_purging_caches'] = 'Purged %s bytes of cache.';
$lang['purge_cache_tooltip'] = 'Purge all cached data in phpLDAPadmin, including server schemas.';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Unsafe file name: ';
$lang['no_such_file'] = 'No such file: ';
//function.php
$lang['auto_update_not_setup'] = 'You have enabled auto_uid_numbers for <b>%s</b> in your configuration,
but you have not specified the auto_uid_number_mechanism. Please correct
this problem.';
$lang['uidpool_not_set'] = 'You specified the "auto_uid_number_mechanism" as "uidpool"
in your configuration for server <b>%s</b>, but you did not specify the
audo_uid_number_uid_pool_dn. Please specify it before proceeding.';
$lang['uidpool_not_exist'] = 'It appears that the uidPool you specified in your configuration ("%s")
does not exist.';
$lang['specified_uidpool'] = 'You specified the "auto_uid_number_mechanism" as "search" in your
configuration for server <b>%s</b>, but you did not specify the
"auto_uid_number_search_base". Please specify it before proceeding.';
$lang['auto_uid_invalid_credential'] = 'Unable to bind to <b>%s</b> with your with auto_uid credentials. Please check your configuration file.';
$lang['bad_auto_uid_search_base'] = 'Your phpLDAPadmin configuration specifies an invalid auto_uid_search_base for server %s';
$lang['auto_uid_invalid_value'] = 'You specified an invalid value for auto_uid_number_mechanism ("%s")
in your configration. Only "uidpool" and "search" are valid.
Please correct this problem.';
$lang['error_auth_type_config'] = 'Error: You have an error in your config file. The only three allowed values
for auth_type in the $servers section are \'session\', \'cookie\', and \'config\'. You entered \'%s\',
which is not allowed. ';
$lang['unique_attrs_invalid_credential'] = 'Unable to bind to <b>%s</b> with your with unique_attrs credentials. Please check your configuration file.';
$lang['unique_attr_failed'] = 'Your attempt to add <b>%s</b> (<i>%s</i>) to <br><b>%s</b><br> is NOT allowed. That attribute/value belongs to another entry.<p>You might like to <a href=\'%s\'>search</a> for that entry.';
$lang['php_install_not_supports_tls'] = 'Your PHP install does not support TLS.';
$lang['could_not_start_tls'] = 'Could not start TLS. Please check your LDAP server configuration.';
$lang['could_not_bind_anon'] = 'Could not bind anonymously to server.';
$lang['could_not_bind'] = 'Could not bind to the LDAP server.';
$lang['anonymous_bind'] = 'Anonymous Bind';
$lang['bad_user_name_or_password'] = 'Bad username or password. Please try again.';
$lang['successfully_logged_in_to_server'] = 'Successfully logged into server <b>%s</b>';
$lang['could_not_set_cookie'] = 'Could not set cookie.';
$lang['ldap_said'] = 'LDAP said: %s';
$lang['ferror_error'] = 'Error';
$lang['fbrowse'] = 'browse';
$lang['delete_photo'] = 'Delete Photo';
$lang['install_not_support_ext_des'] = 'Your system crypt library does not support extended DES encryption.';
$lang['install_not_support_blowfish'] = 'Your system crypt library does not support blowfish encryption.';
$lang['install_not_support_md5crypt'] = 'Your system crypt library does not support md5crypt encryption.';
$lang['install_no_mash'] = 'Your PHP install does not have the mhash() function. Cannot do SHA hashes.';
$lang['jpeg_contains_errors'] = 'jpegPhoto contains errors<br />';
$lang['ferror_number'] = 'Error number: %s (%s)';
$lang['ferror_discription'] = 'Description: %s <br /><br />';
$lang['ferror_number_short'] = 'Error number: %s<br /><br />';
$lang['ferror_discription_short'] = 'Description: (no description available)<br />';
$lang['ferror_submit_bug'] = 'Is this a phpLDAPadmin bug? If so, please <a href=\'%s\'>report it</a>.';
$lang['ferror_unrecognized_num'] = 'Unrecognized error number: ';
$lang['ferror_nonfatil_bug'] = '<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' />
<b>You found a non-fatal phpLDAPadmin bug!</b></td></tr><tr><td>Error:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>File:</td>
<td><b>%s</b> line <b>%s</b>, caller <b>%s</b></td></tr><tr><td>Versions:</td><td>PLA: <b>%s</b>, PHP: <b>%s</b>, SAPI: <b>%s</b>
</td></tr><tr><td>Web server:</td><td><b>%s</b></td></tr>
<tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>Please check and see if this bug has been reported here</a>.</center></td></tr>
<tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>If it hasnt been reported, you may report this bug by clicking here</a>.</center></td></tr>
</table></center><br />';
$lang['ferror_congrats_found_bug'] = 'Congratulations! You found a bug in phpLDAPadmin.<br /><br />
<table class=\'bug\'>
<tr><td>Error:</td><td><b>%s</b></td></tr>
<tr><td>Level:</td><td><b>%s</b></td></tr>
<tr><td>File:</td><td><b>%s</b></td></tr>
<tr><td>Line:</td><td><b>%s</b></td></tr>
<tr><td>Caller:</td><td><b>%s</b></td></tr>
<tr><td>PLA Version:</td><td><b>%s</b></td></tr>
<tr><td>PHP Version:</td><td><b>%s</b></td></tr>
<tr><td>PHP SAPI:</td><td><b>%s</b></td></tr>
<tr><td>Web server:</td><td><b>%s</b></td></tr>
</table>
<br />
Please report this bug by clicking below!';
//ldif_import_form
$lang['import_ldif_file_title'] = 'Import LDIF File';
$lang['select_ldif_file'] = 'Select an LDIF file:';
$lang['dont_stop_on_errors'] = 'Don\'t stop on errors';
//ldif_import
$lang['add_action'] = 'Adding...';
$lang['delete_action'] = 'Deleting...';
$lang['rename_action'] = 'Renaming...';
$lang['modify_action'] = 'Modifying...';
$lang['warning_no_ldif_version_found'] = 'No version found. Assuming 1.';
$lang['valid_dn_line_required'] = 'A valid dn line is required.';
$lang['missing_uploaded_file'] = 'Missing uploaded file.';
$lang['no_ldif_file_specified'] = 'No LDIF file specified. Please try again.';
$lang['ldif_file_empty'] = 'Uploaded LDIF file is empty.';
$lang['empty'] = 'empty';
$lang['file'] = 'File';
$lang['number_bytes'] = '%s bytes';
$lang['php_upload'] = 'Your PHP.INI does not have file_uploads = ON. Please enable file uploads in PHP.';
$lang['failed'] = 'Failed';
$lang['ldif_parse_error'] = 'LDIF Parse Error';
$lang['ldif_could_not_add_object'] = 'Could not add object:';
$lang['ldif_could_not_rename_object'] = 'Could not rename object:';
$lang['ldif_could_not_delete_object'] = 'Could not delete object:';
$lang['ldif_could_not_modify_object'] = 'Could not modify object:';
$lang['ldif_line_number'] = 'Line Number:';
$lang['ldif_line'] = 'Line:';
// Exports
$lang['export_format'] = 'Export format';
$lang['line_ends'] = 'Line ends';
$lang['must_choose_export_format'] = 'You must choose an export format.';
$lang['invalid_export_format'] = 'Invalid export format';
$lang['no_exporter_found'] = 'No available exporter found.';
$lang['error_performing_search'] = 'Encountered an error while performing search.';
$lang['showing_results_x_through_y'] = 'Showing results %s through %s.';
$lang['searching'] = 'Searching...';
$lang['size_limit_exceeded'] = 'Notice, search size limit exceeded.';
$lang['entry'] = 'Entry';
$lang['ldif_export_for_dn'] = 'LDIF Export for: %s';
$lang['generated_on_date'] = 'Generated by phpLDAPadmin ( http://phpldapadmin.sourceforge.net/ ) on %s';
$lang['total_entries'] = 'Total Entries';
$lang['dsml_export_for_dn'] = 'DSLM Export for: %s';
$lang['include_system_attrs'] = 'Include system attributes';
$lang['csv_spreadsheet'] = 'CSV (Spreadsheet)';
// logins
$lang['password_blank'] = 'You left the password blank.';
$lang['no_one_logged_in'] = 'No one is logged in to that server.';
$lang['could_not_logout'] = 'Could not logout.';
$lang['unknown_auth_type'] = 'Unknown auth_type: %s';
$lang['logged_out_successfully'] = 'Logged out successfully from server <b>%s</b>';
$lang['authenticate_to_server'] = 'Authenticate to server %s';
$lang['warning_this_web_connection_is_unencrypted'] = 'Warning: This web connection is unencrypted.';
$lang['not_using_https'] = 'You are not using \'https\'. Web browser will transmit login information in clear text.';
$lang['login_dn'] = 'Login DN';
$lang['user_name'] = 'User name';
$lang['password'] = 'Password';
$lang['authenticate'] = 'Authenticate';
$lang['login_not_allowed'] = 'Sorry, you are not allowed to use phpLDAPadmin with this LDAP server.';
// Entry browser
$lang['entry_chooser_title'] = 'Entry Chooser';
// Index page
$lang['need_to_configure'] = 'You need to configure phpLDAPadmin. Edit the file \'config.php\' to do so. An example config file is provided in \'config.php.example\'';
// Mass deletes
$lang['no_deletes_in_read_only'] = 'Deletes not allowed in read only mode.';
$lang['error_calling_mass_delete'] = 'Error calling mass_delete.php. Missing mass_delete in POST vars.';
$lang['mass_delete_not_array'] = 'mass_delete POST var is not an array.';
$lang['mass_delete_not_enabled'] = 'Mass deletion is not enabled. Please enable it in config.php before proceeding.';
$lang['mass_deleting'] = 'Mass Deleting';
$lang['mass_delete_progress'] = 'Deletion progress on server "%s"';
$lang['malformed_mass_delete_array'] = 'Malformed mass_delete array.';
$lang['no_entries_to_delete'] = 'You did not select any entries to delete.';
$lang['deleting_dn'] = 'Deleting %s';
$lang['total_entries_failed'] = '%s of %s entries failed to be deleted.';
$lang['all_entries_successful'] = 'All entries deleted successfully.';
$lang['confirm_mass_delete'] = 'Confirm mass delete of %s entries on server %s';
$lang['yes_delete'] = 'Yes, delete!';
// Renaming entries
$lang['non_leaf_nodes_cannot_be_renamed'] = 'You cannot rename an entry which has children entries (eg, the rename operation is not allowed on non-leaf entries)';
$lang['no_rdn_change'] = 'You did not change the RDN';
$lang['invalid_rdn'] = 'Invalid RDN value';
$lang['could_not_rename'] = 'Could not rename the entry';
// Password checker
$lang['passwords_match'] = 'Passwords match!';
$lang['passwords_do_not_match'] = 'Passwords do not match!';
$lang['password_checker_tool'] = 'Password Checker Tool';
$lang['to'] = 'To';
// Templates
$lang['using'] = 'Using the';
$lang['switch_to'] = 'You may switch to the ';
$lang['default_template'] = 'default template';
// template_config
$lang['user_account'] = 'User Account (posixAccount)';
$lang['address_book_inet'] = 'Address Book Entry (inetOrgPerson)';
$lang['address_book_moz'] = 'Address Book Entry (mozillaOrgPerson)';
$lang['kolab_user'] = 'Kolab User Entry';
$lang['organizational_unit'] = 'Organisational Unit';
$lang['new_organizational_unit'] = 'New Organisational Unit';
$lang['organizational_role'] = 'Organisational Role';
$lang['posix_group'] = 'Posix Group';
$lang['samba_machine'] = 'Samba NT Machine';
$lang['samba3_machine'] = 'Samba 3 NT Machine';
$lang['samba_user'] = 'Samba User';
$lang['samba3_user'] = 'Samba 3 User';
$lang['samba3_group'] = 'Samba 3 Group Mapping';
$lang['dns_entry'] = 'DNS Entry';
$lang['simple_sec_object'] = 'Simple Security Object';
$lang['courier_mail_account'] = 'Courier Mail Account';
$lang['courier_mail_alias'] = 'Courier Mail Alias';
$lang['ldap_alias'] = 'LDAP Alias';
$lang['sendmail_cluster'] = 'Sendmail Cluster';
$lang['sendmail_domain'] = 'Sendmail Domain';
$lang['sendmail_alias'] = 'Sendmail Alias';
$lang['sendmail_virt_dom'] = 'Sendmail Virtual Domain';
$lang['sendmail_virt_users'] = 'Sendmail Virtual Users';
$lang['sendmail_relays'] = 'Sendmail Relays';
$lang['custom'] = 'Custom';
$lang['samba_domain_name'] = 'My Samba domain Name';
$lang['administrators'] = 'Administrators';
$lang['users'] = 'Users';
$lang['guests'] = 'Guests';
$lang['power_users'] = 'Power Users';
$lang['account_ops'] = 'Account Operators';
$lang['server_ops'] = 'Server Operators';
$lang['print_ops'] = 'Print Operators';
$lang['backup_ops'] = 'Backup Operators';
$lang['replicator'] = 'Replicator';
$lang['unable_smb_passwords'] = ' Unable to create the Samba passwords. Please, check the configuration in template_config.php';
$lang['err_smb_conf'] = 'Error: You have an error in your samba confguration.';
$lang['err_smb_no_name_sid'] = 'Error: A name and a sid for your samba domain need to be provided.';
$lang['err_smb_no_name'] = 'Error: No name provided for samba domain.';
$lang['err_smb_no_sid'] = 'Error: No sid provided for samba domain.';
// Samba Account Template
$lang['samba_account'] = 'Samba Account';
$lang['samba_account_lcase'] = 'samba account';
// New User (Posix) Account
$lang['t_new_user_account'] = 'New User Account';
$lang['t_hint_customize'] = 'Hint: To customize this template, edit the file templates/creation/new_user_template.php';
$lang['t_name'] = 'Name';
$lang['t_first_name'] = 'First name';
$lang['t_last_name'] = 'Last name';
$lang['t_first'] = 'first';
$lang['t_last'] = 'last';
$lang['t_state'] = 'State';
$lang['t_common_name'] = 'Common name';
$lang['t_user_name'] = 'User Name';
$lang['t_password'] = 'Password';
$lang['t_encryption'] = 'Encryption';
$lang['t_login_shell'] = 'Login Shell';
$lang['t_home_dir'] = 'Home Directory';
$lang['t_uid_number'] = 'UID Number';
$lang['t_auto_det'] = '(automatically determined)';
$lang['t_group'] = 'Group';
$lang['t_gid_number'] = 'GID Number';
$lang['t_uid'] = 'User ID';
$lang['t_err_passwords'] = 'Your passwords don\'t match. Please go back and try again.';
$lang['t_err_field_blank'] = 'You cannot leave the %s blank. Please go back and try again.';
$lang['t_err_field_num'] = 'You can only enter numeric values for the %s field. Please go back and try again.';
$lang['t_err_bad_container'] = 'The container you specified (%s) does not exist. Please go back and try again.';
$lang['t_confirm_account_creation'] = 'Confirm account creation';
$lang['t_secret'] = '[secret]';
$lang['t_create_account'] = 'Create Account';
$lang['t_verify'] = 'Verify';
// New Group (Posix)
$lang['t_new_posixgroup'] = 'New Posix Group';
// New Address Template
$lang['t_new_address'] = 'New Address Book Entry';
$lang['t_organization'] = 'Organisation';
$lang['t_address'] = 'Address';
$lang['t_city'] = 'City';
$lang['t_postal_code'] = 'Postal code';
$lang['t_street'] = 'Street';
$lang['t_work_phone'] = 'Work phone';
$lang['t_fax'] = 'Fax';
$lang['t_mobile'] = 'Mobile';
$lang['t_email'] = 'Email';
$lang['t_container'] = 'Container';
$lang['t_err_cn_blank'] = 'You cannot leave the Common Name blank. Please go back and try again.';
$lang['t_confim_creation'] = 'Confirm entry creation:';
$lang['t_create_address'] = 'Create Address';
// default template
$lang['t_check_pass'] = 'Check password...';
$lang['t_auto_submit'] = '(Auto evalutated on submission.)';
// compare form
$lang['compare'] = 'Compare';
$lang['comparing'] = 'Comparing the following DNs';
$lang['compare_dn'] = 'Compare another DN with';
$lang['with'] = 'with ';
$lang['compf_source_dn'] = 'Source DN';
$lang['compf_dn_tooltip'] = 'Compare this DN with another';
$lang['switch_entry'] = 'Switch Entry';
$lang['no_value'] = 'No Value';
$lang['compare_with'] = 'Compare with another entry';
$lang['need_oclass'] = 'You need one of the following ObjectClass(es) to add this attribute %s.';
// Time out page
$lang['session_timed_out_1'] = 'Your Session timed out after';
$lang['session_timed_out_2'] = 'min. of inactivity. You have been automatically logged out.';
$lang['log_back_in'] = 'To log back in please click on the following link:';
$lang['session_timed_out_tree'] = '(Session timed out. Automatically logged out.)';
$lang['timeout_at'] = 'Inactivity will log you off at %s';
$lang['template_mustattr'] = 'Attribute [%s] is a MUST attribute, so it cannot be disabled.';
$lang['template_nextpage'] = 'We are missing a page for [%s] attributes.';
?>

View File

@@ -1,655 +0,0 @@
<?php
/*
* Spanish (es_ES) translation file for phpLDAPadmin
*
* Date: 02/05/2005
* Source: CVS snapshot of en.php as of 02/05/2005
* Translator: Miguelanxo Otero Salgueiro <miguelanxo@telefonica.net>
*/
// Search form
$lang['simple_search_form_str'] = 'Formulario de b<>squeda sencilla';
$lang['advanced_search_form_str'] = 'Formulario de b<>squeda avanzada';
$lang['server'] = 'Servidor';
$lang['search_for_entries_whose'] = 'Buscar objetos que';
$lang['base_dn'] = 'DN base';
$lang['search_scope'] = '<27>mbito de b<>squeda';
$lang['show_attributes'] = 'Mostrar atributos';
$lang['attributes'] = 'Atributos';
$lang['Search'] = 'Buscar';
$lang['predefined_search_str'] = 'Seleccionar una b<>squeda predefinida';
$lang['predefined_searches'] = 'B<>squedas predefinidas';
$lang['no_predefined_queries'] = 'No hay ninguna b<>squeda predefinida en config.php.';
$lang['export_results'] = 'exportar resultados';
$lang['unrecoginzed_search_result_format'] = 'Formato de resultado de b<>squeda no reconocido: %s';
$lang['format'] = 'Formato';
$lang['list'] = 'lista';
$lang['table'] = 'tabla';
$lang['bad_search_display'] = 'Su config.php especifica un valor no v<>lido para $default_search_display: %s. Por favor, arr<72>glelo';
$lang['page_n'] = 'P<>gina %d';
$lang['no_results'] = 'La b<>squeda no ha encontrado resultados.';
// Tree browser
$lang['request_new_feature'] = 'Solicitar una nueva funcionalidad';
$lang['report_bug'] = 'Informar de un error';
$lang['schema'] = 'esquema';
$lang['search'] = 'buscar';
$lang['create'] = 'crear';
$lang['info'] = 'info';
$lang['import'] = 'importar';
$lang['refresh'] = 'refrescar';
$lang['logout'] = 'salir';
$lang['create_new'] = 'Crear nuevo objeto';
$lang['view_schema_for'] = 'Ver el esquema del';
$lang['refresh_expanded_containers'] = 'Refrescar todos los contenedores extendidos del';
$lang['create_new_entry_on'] = 'Crear un nuevo objeto en el';
$lang['new'] = 'nuevo';
$lang['view_server_info'] = 'Ver la informaci<63>n enviada por el servidor';
$lang['import_from_ldif'] = 'Importar desde un fichero LDIF';
$lang['logout_of_this_server'] = 'Desconectar del servidor';
$lang['logged_in_as'] = 'Conectado como: ';
$lang['this_base_dn_is_not_valid'] = 'Esta DN base no es v<>lida.';
$lang['this_base_dn_does_not_exist'] = 'Este objeto no existe.';
$lang['read_only'] = 's<>lo lectura';
$lang['read_only_tooltip'] = 'Este atributo ha sido marcado como de s<>lo lectura por el administrador de phpLDAPadmin';
$lang['could_not_determine_root'] = 'No se ha podido determinar la ra<72>z de su <20>rbol LDAP.';
$lang['ldap_refuses_to_give_root'] = 'Parece que el servidor LDAP ha sido configurado para no revelar su ra<72>z.';
$lang['please_specify_in_config'] = 'Por fav<61>r, especif<69>quela en config.php';
$lang['create_new_entry_in'] = 'Crear nuevo objeto en';
$lang['login_link'] = 'Autentificaci<63>n';
$lang['login'] = 'conectar';
$lang['base_entry_does_not_exist'] = 'Este objeto base no existe.';
$lang['create_it'] = '<27>Crearlo?';
// Entry display
$lang['delete_this_entry'] = 'Borrar este objeto';
$lang['delete_this_entry_tooltip'] = 'Se le pedir<69> confirmaci<63>n';
$lang['copy_this_entry'] = 'Copiar este objeto';
$lang['copy_this_entry_tooltip'] = 'Copiar este objeto en otro sitio: un nuevo DN u otro servidor';
$lang['export'] = 'Exportar';
$lang['export_lcase'] = 'exportar';
$lang['export_tooltip'] = 'Exportar este objeto';
$lang['export_subtree_tooltip'] = 'Exportar este objeto y todos sus hijos';
$lang['export_subtree'] = 'Exportar sub<75>rbol';
$lang['create_a_child_entry'] = 'Crear un objeto hijo';
$lang['rename_entry'] = 'Renombrar objeto';
$lang['rename'] = 'Renombrar';
$lang['add'] = 'A<>adir';
$lang['view'] = 'Ver';
$lang['view_one_child'] = 'Ver 1 hijo';
$lang['view_children'] = 'Ver %s hijos';
$lang['add_new_attribute'] = 'A<>adir atributo';
$lang['add_new_objectclass'] = 'A<>adir ObjectClass';
$lang['hide_internal_attrs'] = 'Ocultar atributos internos';
$lang['show_internal_attrs'] = 'Mostrar atributos internos';
$lang['attr_name_tooltip'] = 'Haga click para ver el esquema del atributo de tipo \'%s\'';
$lang['none'] = 'ninguno';
$lang['no_internal_attributes'] = 'No hay atributos internos';
$lang['no_attributes'] = 'Este objeto no tiene atributos';
$lang['save_changes'] = 'Guardar cambios';
$lang['add_value'] = 'a<>adir valor';
$lang['add_value_tooltip'] = 'A<>adir un valor al atributo \'%s\'';
$lang['refresh_entry'] = 'Refrescar';
$lang['refresh_this_entry'] = 'Refrescar este objeto';
$lang['delete_hint'] = 'Nota: para borrar un atributo, borre su atributo y haga click en guardar.';
$lang['attr_schema_hint'] = 'Nota: Para ver el esquema de un atributo, haga click en su nombre.';
$lang['attrs_modified'] = 'Se han modificado algunos atributos (%s) que se encuentran destacados mas abajo.';
$lang['attr_modified'] = 'Se ha modificado alg<6C>n atributo (%s) que se encuentra destacado m<>s abajo.';
$lang['viewing_read_only'] = 'Nota: Modo de s<>lo lectura.';
$lang['no_new_attrs_available'] = 'no hay nuevos atributos en este objeto';
$lang['no_new_binary_attrs_available'] = 'no hay nuevos atributos binarios en este objeto';
$lang['binary_value'] = 'Valor binario';
$lang['add_new_binary_attr'] = 'A<>adir atributo binario';
$lang['alias_for'] = 'Nota: \'%s\' es un alias de \'%s\'';
$lang['required_for'] = 'Atributo requerido para la(s) clase(s) de objeto %s';
$lang['download_value'] = 'descargar valor';
$lang['delete_attribute'] = 'borrar atributo';
$lang['true'] = 'verdadero';
$lang['false'] = 'falso';
$lang['none_remove_value'] = 'ninguno, borrar valor';
$lang['really_delete_attribute'] = '<27>Borrar realmente el atributo';
$lang['add_new_value'] = 'A<>adir valor';
// Schema browser
$lang['the_following_objectclasses'] = 'El servidor LDAP soporta las siguientes clases de objeto:';
$lang['the_following_attributes'] = 'El servidor LDAP soporta los siguientes tipos de atributo:';
$lang['the_following_matching'] = 'El servidor LDAP soporta las siguientes reglas de coincidencia:';
$lang['the_following_syntaxes'] = 'El servidor LDAP soporta las siguientes sintaxis:';
$lang['schema_retrieve_error_1']='El servidor LDAP no soporta el protocolo LDAP en su totalidad.';
$lang['schema_retrieve_error_2']='Su versi<73>n de PHP no realiza la petici<63>n correctamente.';
$lang['schema_retrieve_error_3']='O el phpLDAPadmin no sabe como obtener el esquema del servidor.';
$lang['jump_to_objectclass'] = 'Ir a la clase de objeto';
$lang['view_schema_for_oclass'] = 'Ver la descripci<63>n del esquema para esta clase de objeto.';
$lang['jump_to_attr'] = 'Ir al tipo de atributo';
$lang['jump_to_matching_rule'] = 'Ir a la regla de coincidencia';
$lang['schema_for_server'] = 'Esquema del servidor';
$lang['required_attrs'] = 'Atributos requeridos';
$lang['required'] = 'requerido';
$lang['optional_attrs'] = 'Atributos opcionales';
$lang['optional_binary_attrs'] = 'Atributos binarios opcionales';
$lang['OID'] = 'OID';
$lang['aliases']='Alias';
$lang['desc'] = 'Descripci<63>n';
$lang['no_description']='sin descripci<63>n';
$lang['name'] = 'Nombre';
$lang['equality']='Igualdad';
$lang['is_obsolete'] = 'Esta clase de objeto es obsoleta.';
$lang['inherits'] = 'Hereda de';
$lang['inherited_from'] = 'Heredado de';
$lang['parent_to'] = 'Padre de';
$lang['jump_to_this_oclass'] = 'Ir a la definici<63>n de esta clase de objeto';
$lang['matching_rule_oid'] = 'OID de la regla de coincidencia';
$lang['syntax_oid'] = 'OID de sintaxis';
$lang['not_applicable'] = 'no aplicable';
$lang['not_specified'] = 'no especificado';
$lang['character'] = 'car<61>cter';
$lang['characters'] = 'caracteres';
$lang['used_by_objectclasses'] = 'Usado por la clase de objeto';
$lang['used_by_attributes'] = 'Usado por los atributos';
$lang['maximum_length'] = 'Longitud m<>xima';
$lang['attribute_types']='Tipos de atributo';
$lang['syntaxes'] = 'Sintaxis';
$lang['matchingrules'] = 'Reglas de coincidencia';
$lang['oid'] = 'OID';
$lang['obsolete'] = 'Obsoleto';
$lang['ordering'] = 'Ordenaci<63>n';
$lang['substring_rule'] = 'Regla de subcadena';
$lang['single_valued'] = 'Univaludado';
$lang['collective'] = 'Colectivo';
$lang['user_modification'] = 'Modificado por el usuario';
$lang['usage'] = 'Uso';
$lang['could_not_retrieve_schema_from'] = 'No se ha podido obtener el esquema de';
$lang['type'] = 'Tipo';
$lang['no_such_schema_item'] = 'No hay tal <20>tem en el esquema: "%s"';
// Deleting entries
$lang['entry_deleted_successfully'] = 'Objeto %s borrado correctamente.';
$lang['you_must_specify_a_dn'] = 'Debe especificar un DN';
$lang['could_not_delete_entry'] = 'No se ha podido borrar el objeto %s';
$lang['no_such_entry'] = 'No hay tal objeto %s';
$lang['delete_dn'] = 'Borrar %s';
$lang['permanently_delete_children'] = '<27>Borrar tambi<62>n todos los hijos?';
$lang['entry_is_root_sub_tree'] = 'Este objeto es la ra<72>z de un sub<75>rbol que contiene %s objetos.';
$lang['view_entries'] = 'ver objetos';
$lang['confirm_recursive_delete'] = 'phpLDAPadmin puede borrar recursivamente este objeto y sus %s hijos. Vea m<>s abajo la lista de objetos que se borrar<61>n ahora. <20>Todav<61>a quiere hacerlo?';
$lang['confirm_recursive_delete_note'] = 'Nota: es potencialmente peligroso y debe hacerlo a su cuenta y riesgo. Esta operaci<63>n NO puede deshacerse. Tome en consideraci<63>n alias, referencias y otras cosas que puedan causar problemas.';
$lang['delete_all_x_objects'] = 'Borrar los %s objetos';
$lang['recursive_delete_progress'] = 'Progreso de la borraci<63>n recursiva';
$lang['entry_and_sub_tree_deleted_successfully'] = 'Objeto %s y su sub<75>rbol borrado correctamente.';
$lang['failed_to_delete_entry'] = 'Error al borrar el objeto %s';
$lang['list_of_entries_to_be_deleted'] = 'Lista de objetos a borrar:';
$lang['sure_permanent_delete_object']='<27>Est<73> seguro de querer borrar este objeto?';
$lang['dn'] = 'DN';
// Deleting attributes
$lang['attr_is_read_only'] = 'El atributo "%s" est<73> marcado como de s<>lo lectura en la configuraci<63>n de phpLDAPadmin.';
$lang['no_attr_specified'] = 'No se ha especificado ning<6E>n nombre de atributo.';
$lang['no_dn_specified'] = 'No se ha especificado ning<6E>n DN';
// Adding attributes
$lang['left_attr_blank'] = 'Ha dejado en blanco el valor del atributo. Por favor, vuelva atr<74>s e int<6E>ntelo de nuevo.';
$lang['failed_to_add_attr'] = 'Error al a<>adir atributo.';
$lang['file_empty'] = 'El fichero que ha escogido no existe o est<73> vac<61>o. Por favor vuelva atr<74>s e int<6E>ntelo de nuevo.';
$lang['invalid_file'] = 'Error de seguridad: El fichero que est<73> enviando puede ser malicioso.';
$lang['warning_file_uploads_disabled'] = 'Su configuraci<63>n del PHP ha desactivado la recepci<63>n de ficheros. Por favor revise php.ini antes de continuar.';
$lang['uploaded_file_too_big'] = 'El fichero que est<73> enviando es demasiado grande. Por favor revise el ajuste "upload_max_size" en php.ini.';
$lang['uploaded_file_partial'] = 'El fichero que ha seleccionado s<>lo se ha recibido parcialmente debido a un error de red.';
$lang['max_file_size'] = 'Tama<6D>o m<>ximo de fichero: %s';
// Updating values
$lang['modification_successful'] = '<27>Modificaci<63>n realizada correctamente!';
$lang['change_password_new_login'] = 'Como ha cambiado su contrase<73>a, debe conectarse de nuevo empleando la nueva.';
// Adding objectClass form
$lang['new_required_attrs'] = 'Nuevos atributos requeridos';
$lang['requires_to_add'] = 'Esta acci<63>n requiere que a<>ada';
$lang['new_attributes'] = 'nuevos atributos';
$lang['new_required_attrs_instructions'] = 'Instrucciones: Para poder a<>adir esta clase a este objeto, debe especificar';
$lang['that_this_oclass_requires'] = 'que esta clase requiere. Puede hacerlo en este formulario.';
$lang['add_oclass_and_attrs'] = 'A<>adir clase de objeto y atributos';
$lang['objectclasses'] = 'Clases de objeto';
// General
$lang['chooser_link_tooltip'] = 'Haga click en el di<64>logo emergente para seleccionar un DN de forma gr<67>fica';
$lang['no_updates_in_read_only_mode'] = 'No puede realizar cambios cuando el servidor est<73> funcionando en modo de s<>lo lectura';
$lang['bad_server_id'] = 'Identificador de servidor no v<>lido';
$lang['not_enough_login_info'] = 'No hay informaci<63>n suficiente para conectar con el servidor. Por favor, revise su configuraci<63>n.';
$lang['could_not_connect'] = 'No se ha podido conectar con el servidor LDAP.';
$lang['could_not_connect_to_host_on_port'] = 'No se ha podido conectar con "%s" en el puerto "%s"';
$lang['could_not_perform_ldap_mod_add'] = 'No se ha podido realizar la operaci<63>n "ldap_mod_add".';
$lang['bad_server_id_underline'] = 'Identificador de servidor no v<>lido: ';
$lang['success'] = '<27>xito';
$lang['home'] = 'Inicio';
$lang['help'] = 'Ayuda';
$lang['success'] = '<27>xito';
$lang['server_colon_pare'] = 'Servidor: ';
$lang['look_in'] = 'Buscando en: ';
$lang['missing_server_id_in_query_string'] = '<27>No se ha especificado ning<6E>n servidor en la petici<63>n!';
$lang['missing_dn_in_query_string'] = '<27>No se ha especificado ning<6E>n DN en la petici<63>n!';
$lang['back_up_p'] = 'Volver';
$lang['no_entries'] = 'no hay objetos';
$lang['not_logged_in'] = 'No est<73> conectado';
$lang['could_not_det_base_dn'] = 'No se puede determinar el DN base';
$lang['please_report_this_as_a_bug']='Por favor informe de este error.';
$lang['reasons_for_error']='Esto puede suceder por varias razones, las m<>s probables son:';
$lang['yes']='S<>';
$lang['no']='No';
$lang['go']='Ir';
$lang['delete']='Borrar';
$lang['back']='Atr<74>s';
$lang['object']='objeto';
$lang['delete_all']='Borrar todo';
$lang['url_bug_report']='https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498546';
$lang['hint'] = 'nota';
$lang['bug'] = 'error';
$lang['warning'] = 'aviso';
$lang['light'] = 'bombilla'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = 'Proceder &gt;&gt;';
// Add value form
$lang['add_new'] = 'A<>adir';
$lang['value_to'] = 'valor de';
$lang['distinguished_name'] = 'Nombre distinguido';
$lang['current_list_of'] = 'Lista actual de';
$lang['values_for_attribute'] = 'valores del atributo';
$lang['inappropriate_matching_note'] = 'Nota: Si no ha creado una regla de igualdad en el servidor LDAP para este atributo, obtendr<64> un error de coincidencia inapropiada ("inappropriate matching").';
$lang['enter_value_to_add'] = 'Introduzca el valor a a<>adir:';
$lang['new_required_attrs_note'] = 'Nota: puede que tenga que introducir nuevos atributos que esta clase de objeto requiera';
$lang['syntax'] = 'Sintaxis';
//copy.php
$lang['copy_server_read_only'] = 'No puede realizar modificaciones cuando el servidor est<73> en modo de s<>lo lectura';
$lang['copy_dest_dn_blank'] = 'Ha dejado el campo DN en blanco.';
$lang['copy_dest_already_exists'] = 'El objeto destino (%s) ya existe.';
$lang['copy_dest_container_does_not_exist'] = 'El contenedor destino (%s) no existe.';
$lang['copy_source_dest_dn_same'] = 'El DN origen y destino son iguales.';
$lang['copy_copying'] = 'Copiando ';
$lang['copy_recursive_copy_progress'] = 'Progreso de la copia recursiva';
$lang['copy_building_snapshot'] = 'Creando imagen del <20>rbol a copiar... ';
$lang['copy_successful_like_to'] = '<27>Copia correcta! <20>Le gustar<61>a ';
$lang['copy_view_new_entry'] = 'ver el nuevo objeto';
$lang['copy_failed'] = 'Error al copiar el DN: ';
//edit.php
$lang['missing_template_file'] = 'Aviso: falta el fichero de plantilla, ';
$lang['using_default'] = 'usando la plantilla por defecto.';
$lang['template'] = 'Plantilla';
$lang['must_choose_template'] = 'Debes escoger una plantilla';
$lang['invalid_template'] = '%s no es una plantilla v<>lida';
$lang['using_template'] = 'usando plantilla';
$lang['go_to_dn'] = 'Ir a %s';
$lang['structural_object_class_cannot_remove'] = 'Esta es una clase de objeto estructural y no se puede eliminar.';
$lang['structural'] = 'estructural';
//copy_form.php
$lang['copyf_title_copy'] = 'Copiar ';
$lang['copyf_to_new_object'] = 'a un objeto nuevo';
$lang['copyf_dest_dn'] = 'DN destino';
$lang['copyf_dest_dn_tooltip'] = 'El DN completo del objeto a crear';
$lang['copyf_dest_server'] = 'Servidor destino';
$lang['copyf_note'] = 'Nota: S<>lo se puede copiar entre servidores diferentes cuando no hay violaciones de esquema';
$lang['copyf_recursive_copy'] = 'Tambi<62>n copiar recursivamente todos los hijos de este objeto.';
$lang['recursive_copy'] = 'Copia recursiva';
$lang['filter'] = 'Filtro';
$lang['search_filter'] = 'Filtro de b<>squeda';
$lang['filter_tooltip'] = 'Cuando se realice una copia recursiva, copiar s<>lo los objetos que superen el filtrado';
//create.php
$lang['create_required_attribute'] = 'Ha dejado el valor del atributo requerido (%s) en blanco.';
$lang['redirecting'] = 'Redirigiendo...';
$lang['here'] = 'aqu<71>';
$lang['create_could_not_add'] = 'No se ha podido a<>adir el objeto al servidor LDAP.';
//create_form.php
$lang['createf_create_object'] = 'Crear objeto';
$lang['createf_choose_temp'] = 'Escoja una plantilla';
$lang['createf_select_temp'] = 'Seleccione una plantilla para el proceso de creaci<63>n';
$lang['save_as_file'] = 'Guardar como fichero';
$lang['rdn_field_blank'] = 'Ha dejado el campo RDN en blanco.';
$lang['container_does_not_exist'] = 'El contenedor que ha especificado (%s) no existe. Por favor int<6E>ntelo de nuevo.';
$lang['no_objectclasses_selected'] = 'No ha seleccionado ninguna clase para este objeto. Por favor, vuelva atr<74>s y h<>galo ahora.';
$lang['hint_structural_oclass'] = 'Nota: Debe escoger al menos una clase de objeto estructural';
//creation_template.php
$lang['ctemplate_on_server'] = 'En el servidor';
$lang['ctemplate_no_template'] = 'No se ha especificado ninguna plantilla en las variables POST.';
$lang['template_not_readable'] = 'Su configuraci<63>n especifica un fichero "%s" para esta plantilla pero dicho fichero no se puede leer debido a que sus permisos son demasiado restrictivos.';
$lang['template_does_not_exist'] = 'Su configuraci<63>n especifica un fichero "%s" para esta plantilla pero dicho fichero no existe en el directorio templates/creation.';
$lang['create_step1'] = 'Paso 1 de 2: Nombre y clase(s) de objeto';
$lang['create_step2'] = 'Paso 2 de 2: Especifique attributos y valores';
$lang['relative_distinguished_name'] = 'Nombre Distinguido Relativo (RDN)';
$lang['rdn'] = 'RDN';
$lang['rdn_example'] = '(ejemplo: cn=nuevaPersona)';
$lang['container'] = 'Contenedor';
// search.php
$lang['you_have_not_logged_into_server'] = 'Todav<61>a no ha conectado con el servidor, as<61> que no puede realizar b<>squedas.';
$lang['click_to_go_to_login_form'] = 'Pulse aqu<71> para ir al formulario de conexi<78>n';
$lang['unrecognized_criteria_option'] = 'Criterio no reconocido: ';
$lang['if_you_want_to_add_criteria'] = 'Si quiere puede a<>adir su propios criterios a la lista. Aseg<65>rese de editar search.php para manejarlos. Saliendo...';
$lang['entries_found'] = 'Objetos encontrados: ';
$lang['filter_performed'] = 'Filtrado realizado: ';
$lang['search_duration'] = 'B<>squeda realizada por phpLDAPadmin en';
$lang['seconds'] = 'segundos';
// search_form_advanced.php
$lang['scope_in_which_to_search'] = '<27>mbito de b<>squeda';
$lang['scope_sub'] = 'Sub (sub<75>rbol completo)';
$lang['scope_one'] = 'One (un nivel bajo la base)';
$lang['scope_base'] = 'Base (s<>lo la base)';
$lang['standard_ldap_search_filter'] = 'Filtro de b<>squeda LDAP est<73>ndar. Ejemplo: (&(sn=Picapiedra)(givenname=Pedro))';
$lang['search_filter'] = 'Filtro de b<>squeda';
$lang['list_of_attrs_to_display_in_results'] = 'Lista de atributos para mostrar en los resultados (separados por comas)';
$lang['show_attributes'] = 'Mostrar atributos';
// search_form_simple.php
$lang['search_for_entries_whose'] = 'Buscar entradas en las que';
$lang['equals'] = 'sea igual a';
$lang['starts with'] = 'comience por';
$lang['contains'] = 'contenga';
$lang['ends with'] = 'acabe en';
$lang['sounds like'] = 'suene como';
// server_info.php
$lang['could_not_fetch_server_info'] = 'No se ha podido obtener ninguna informaci<63>n del servidor LDAP. Esto puede deberse a este <a href="http://bugs.php.net/bug.php?id=29587">error</a> es su versi<73>n de PHP o quiz<69>s su servidor LDAP posee controles de acceso que privan a los clientes de acceso al RootDSE.';
$lang['server_info_for'] = 'Informaci<63>n sobre el servidor: ';
$lang['server_reports_following'] = 'El servidor LDAP env<6E>a la siguiente informaci<63>n:';
$lang['nothing_to_report'] = 'Este servidor no tiene nada sobre lo que informar.';
//update.php
$lang['update_array_malformed'] = 'El array update_array no est<73> bien formado. Esto puede indicar un error de phpLDAPadmin. Por favor, informe de ello.';
$lang['could_not_perform_ldap_modify'] = 'No se ha podido realizar la operaci<63>n "ldap_modify".';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = '<27>Quiere realizar estos cambios?';
$lang['attribute'] = 'Atributo';
$lang['old_value'] = 'Valor anterior';
$lang['new_value'] = 'Nuevo valor';
$lang['attr_deleted'] = '[atributo borrado]';
$lang['commit'] = 'Cometer';
$lang['cancel'] = 'Cancelar';
$lang['you_made_no_changes'] = 'No ha realizado cambios';
$lang['go_back'] = 'Volver atr<74>s';
// welcome.php
$lang['welcome_note'] = 'Use el men<65> de la izquierda para navegar';
$lang['credits'] = 'Creditos';
$lang['changelog'] = 'Lista de cambios';
$lang['donate'] = 'Donar';
$lang['pla_logo'] = 'logotipo de phpLDAPadmin';
// Donate.php
$lang['donation_instructions'] = 'Para donar fondos al proyecto phpLDAPadmin, use uno de los botones de abajo.';
$lang['donate_amount'] = 'Donar %s';
$lang['purge_cache'] = 'Borrar cach<63>s';
$lang['no_cache_to_purge'] = 'No hay que borrar ning<6E>n cach<63>.';
$lang['done_purging_caches'] = 'Se han borrado %s bytes de cach<63>.';
$lang['purge_cache_tooltip'] = 'Se han borrado todos los datos en el cach<63> de phpLDAPadmin, incluyendo los esquemas del servidor.';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Nombre de fichero no seguro: ';
$lang['no_such_file'] = 'No hay tal fichero: ';
//function.php
$lang['auto_update_not_setup'] = 'Ha activado "auto_uid_numbers" para <b>%s</b> en su configuraci<63>n,
pero no ha especificado el mecanismo "auto_uid_number_mechanism". Por favor, corrija este problema';
$lang['uidpool_not_set'] = 'Ha especificado el mecanismo "auto_uid_number_mechanism" como "uidpool"
en su configuraci<63>n para el servidor <b>%s</b>, pero no ha especificado
"audo_uid_number_uid_pool_dn". Por favor, verifiquelo antes de continuar.';
$lang['uidpool_not_exist'] = 'Parece ser que el "uidPool" que ha especificado en su configuraci<63>n ("%s")
no existe.';
$lang['specified_uidpool'] = 'Ha especificado "auto_uid_number_mechanism" como "search" en la
configuraci<63>n del servidor <b>%s</b>, pero no ha especificado
"auto_uid_number_search_base". Por favor, especif<69>quelo antes de continuar.';
$lang['auto_uid_invalid_credential'] = 'Imposible conectar con <b>%s</b> con sus credenciales "auto_uid". Por favor, verifique su fichero de configuraci<63>n.';
$lang['bad_auto_uid_search_base'] = 'Su configuraci<63>n de phpLDAPadmin especifica "auto_uid_search_base" como no v<>lida para el servidor %s';
$lang['auto_uid_invalid_value'] = 'Ha especificado un valor no v<>lido para el mecanismo "auto_uid_number_mechanism" ("%s")
en su configuraci<63>n. S<>lo son v<>lidos "uidpool" y "search". Por favor, corrija este problema.';
$lang['error_auth_type_config'] = 'Error: Tiene un error en su fichero de configurci<63>n. Los tres <20>nicos valores para "auth_type"
en la secci<63>n $servers son \'session\', \'cookie\', y \'config\'. Usted ha introducido \'%s\',
que no est<73> permitido. ';
$lang['unique_attrs_invalid_credential'] = 'Imposible conectarse a <b>%s</b> con sus credenciales unique_attr. Por favor, revise su fichero de configuraci<63>n.';
$lang['unique_attr_failed'] = 'Su intento de a<>adir <b>%s</b> (<i>%s</i>) a <br><b>%s</b><br> NO se ha permitido. Tal atributo/valor pertenece a otro objeto.<p>Probablemente desee <a href=\'%s\'>buscar</a> tal objeto.';
$lang['php_install_not_supports_tls'] = 'Su instalaci<63>n de PHP no soporta TLS.';
$lang['could_not_start_tls'] = 'No se ha podido iniciar TLS. Por favor, revise su configuraci<63>n LDAP.';
$lang['could_not_bind_anon'] = 'No se ha podido conectar con el servidor de forma an<61>nima.';
$lang['could_not_bind'] = 'No se ha podido conectar con el servidor LDAP.';
$lang['anonymous_bind'] = 'Conexi<78>n an<61>nima';
$lang['bad_user_name_or_password'] = 'Nombre de usuario o contrase<73>a incorrectos. Por favor, int<6E>ntelo de nuevo.';
$lang['redirecting_click_if_nothing_happens'] = 'Redirigiendo... Pulse aqu<71> si no sucede nada.';
$lang['successfully_logged_in_to_server'] = 'Ha conectado con el servidor <b>%s</b>.';
$lang['could_not_set_cookie'] = 'No se ha podido guardar la cookie.';
$lang['ldap_said'] = 'LDAP ha dicho: %s';
$lang['ferror_error'] = 'Error';
$lang['fbrowse'] = 'seleccionar';
$lang['delete_photo'] = 'Borrar foto';
$lang['install_not_support_blowfish'] = 'Su instalaci<63>n de PHP no soporta encriptaci<63>n blowfish.';
$lang['install_not_support_md5crypt'] = 'Su instalaci<63>n de PHP no soporta encriptaci<63>n md5crypt.';
$lang['install_no_mash'] = 'Su instalaci<63>n de PHP no posee la funci<63>n mhash(). No se pueden realizar hashes SHA.';
$lang['jpeg_contains_errors'] = 'La foto jpegPhoto contiene errores<br />';
$lang['ferror_number'] = 'Error n<>mero: %s (%s)';
$lang['ferror_discription'] = 'Descripci<63>n: %s <br /><br />';
$lang['ferror_number_short'] = 'Error n<>mero: %s<br /><br />';
$lang['ferror_discription_short'] = 'Descripci<63>n: (no existe descripci<63>n disponible)<br />';
$lang['ferror_submit_bug'] = '<27>Es <20>ste un error de phpLDAPadmin? Si es as<61>, por favor <a href=\'%s\'>informe sobre ello</a>.';
$lang['ferror_unrecognized_num'] = 'N<>mero de error no reconocido: ';
$lang['ferror_nonfatil_bug'] = '<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' />
<b><3E>Ha encontrado un error no fatal en phpLDAPadmin!</b></td></tr><tr><td>Error:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Fichero:</td>
<td><b>%s</b> l<>nea <b>%s</b>, caller <b>%s</b></td></tr><tr><td>Versiones:</td><td>PLA: <b>%s</b>, PHP: <b>%s</b>, SAPI: <b>%s</b>
</td></tr><tr><td>Servidor web:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>
Por favor, informe de este error pulsando aqu<71></a>.</center></td></tr></table></center><br />';
$lang['ferror_congrats_found_bug'] = '<27>Felicidades! Ha encontrado un error en phpLDAPadmin.<br /><br />
<table class=\'bug\'>
<tr><td>Error:</td><td><b>%s</b></td></tr>
<tr><td>Nivel:</td><td><b>%s</b></td></tr>
<tr><td>Fichero:</td><td><b>%s</b></td></tr>
<tr><td>L<>nea:</td><td><b>%s</b></td></tr>
<tr><td>Caller:</td><td><b>%s</b></td></tr>
<tr><td>Veris<69>n PLA:</td><td><b>%s</b></td></tr>
<tr><td>Versi<73>n PHP:</td><td><b>%s</b></td></tr>
<tr><td>PHP SAPI:</td><td><b>%s</b></td></tr>
<tr><td>Servidor web:</td><td><b>%s</b></td></tr>
</table>
<br />
Por favor, informe sobre este error haciendo click m<>s abajo!';
//ldif_import_form
$lang['import_ldif_file_title'] = 'Importar fichero LDIF';
$lang['select_ldif_file'] = 'Seleccione un fichero LDIF:';
$lang['dont_stop_on_errors'] = 'Ignorar errores';
//ldif_import
$lang['add_action'] = 'A<>adiendo...';
$lang['delete_action'] = 'Borrando...';
$lang['rename_action'] = 'Renombrando...';
$lang['modify_action'] = 'Modificando...';
$lang['warning_no_ldif_version_found'] = 'No se ha encontrado versi<73>n. Asumiendo 1.';
$lang['valid_dn_line_required'] = 'Se requiere una l<>nea v<>lida.';
$lang['missing_uploaded_file'] = 'Falta el fichero enviado.';
$lang['no_ldif_file_specified.'] = 'No se ha especificado un fichero LDIF. Por favor, int<6E>ntelo de nuevo.';
$lang['ldif_file_empty'] = 'El fichero LDIF enviado est<73> vac<61>o.';
$lang['empty'] = 'vac<61>o';
$lang['file'] = 'Fichero';
$lang['number_bytes'] = '%s bytes';
$lang['failed'] = 'Error';
$lang['ldif_parse_error'] = 'Error al parsear LDIF';
$lang['ldif_could_not_add_object'] = 'No se ha podido a<>adir objeto:';
$lang['ldif_could_not_rename_object'] = 'No se ha podido renombrar el objeto:';
$lang['ldif_could_not_delete_object'] = 'No se ha podido borrar el objeto:';
$lang['ldif_could_not_modify_object'] = 'No se ha podido modificar el objeto:';
$lang['ldif_line_number'] = 'N<>mero de l<>nea:';
$lang['ldif_line'] = 'L<>nea:';
// Exports
$lang['export_format'] = 'Formato de exportaci<63>n';
$lang['line_ends'] = 'Fin de l<>nea';
$lang['must_choose_export_format'] = 'Debe escoger un formato de exportaci<63>n.';
$lang['invalid_export_format'] = 'Formato de exportaci<63>n no v<>lido';
$lang['no_exporter_found'] = 'No se ha encontrado ning<6E>n exportador v<>lido.';
$lang['error_performing_search'] = 'Se ha encontrado un error al realizar la b<>squeda.';
$lang['showing_results_x_through_y'] = 'Mostrando los resultados de %s a %s.';
$lang['searching'] = 'Buscando...';
$lang['size_limit_exceeded'] = 'Nota: se ha excedido el tiempo de b<>squeda.';
$lang['entry'] = 'Objeto';
$lang['ldif_export_for_dn'] = 'Exportaci<63>n LDIF de: %s';
$lang['generated_on_date'] = 'Generado por phpLDAPadmin el %s';
$lang['total_entries'] = 'Entradas totales';
$lang['dsml_export_for_dn'] = 'Exportaci<63>n DSLM de: %s';
$lang['include_system_attrs'] = 'Incluir atributos de sistema';
$lang['csv_spreadsheet'] = 'CSV (Hoja de c<>lculo)';
// logins
$lang['could_not_find_user'] = 'No se ha podido encontrar el usuario "%s"';
$lang['password_blank'] = 'Ha dejado la contrase<73>a en blanco.';
$lang['login_cancelled'] = 'Conexi<78>n cancelada.';
$lang['no_one_logged_in'] = 'No hay nadie conectado con el servidor.';
$lang['could_not_logout'] = 'No se ha podido desconectar.';
$lang['unknown_auth_type'] = 'Tipo de autentificaci<63>n "auth_type" desconocido: %s';
$lang['logged_out_successfully'] = 'Se ha desconectado del servidor <b>%s</b>';
$lang['authenticate_to_server'] = 'Autentificaci<63>n del servidor %s';
$lang['warning_this_web_connection_is_unencrypted'] = 'Aviso: Esta conexi<78>n no est<73> encriptada.';
$lang['not_using_https'] = 'No est<73> usando \'https\'. El navegador web enviar<61> su informaci<63>n sin encriptar.';
$lang['login_dn'] = 'Login';
$lang['user_name'] = 'Nombre de usuario';
$lang['password'] = 'Contrase<73>a';
$lang['authenticate'] = 'Entrar';
// Entry browser
$lang['entry_chooser_title'] = 'Selector de objetos';
// Index page
$lang['need_to_configure'] = 'Debe configurar phpLDAPadmin, editando el fichero \'config.php\'. Se proporciona un fichero de configuraci<63>n de ejemplo en \'config.php.example\'';
// Mass deletes
$lang['no_deletes_in_read_only'] = 'No se permiten borrados en modo de s<>lo lectura.';
$lang['error_calling_mass_delete'] = 'Error al llamar a "mass_delete.php". Falta la variable POST "mass_delete".';
$lang['mass_delete_not_array'] = 'La variable POST "mass_delete" no es un array.';
$lang['mass_delete_not_enabled'] = 'No est<73> activado el borrado masivo. Por favor, act<63>velo en config.php antes de continuar.';
$lang['search_attrs_wrong_count'] = 'Su config.php tiene un error. El n<>mero de atributos en $search_attributes y $search_attributes_display es diferente';
$lang['mass_deleting'] = 'Efectuando borrado masivo';
$lang['mass_delete_progress'] = 'Borrado en progreso en el servidor "%s"';
$lang['malformed_mass_delete_array'] = 'Array de borrado masivo mal formado.';
$lang['no_entries_to_delete'] = 'No ha seleccionado objetos para borrar.';
$lang['deleting_dn'] = 'Borrando %s';
$lang['total_entries_failed'] = 'No han podido borrarse %s de %s objetos.';
$lang['all_entries_successful'] = 'Todos los objetos han sido borrados.';
$lang['confirm_mass_delete'] = 'Confirmar borrado masivo de %s objetos en el servidor %s';
$lang['yes_delete'] = '<27>S<EFBFBD>, borrar!';
// Renaming entries
$lang['non_leaf_nodes_cannot_be_renamed'] = 'No puede renombrar un objeto que tenga hijos';
$lang['no_rdn_change'] = 'No ha cambiado el RDN';
$lang['invalid_rdn'] = 'Valor RDN no v<>lido';
$lang['could_not_rename'] = 'No se ha podido renombrar el objeto';
// General errors
$lang['php5_unsupported'] = 'phpLDAPadmin no soporta todav<61>a PHP 5. Si contin<69>a encontrar<61> probablemente extra<72>os errores.';
$lang['mismatched_search_attr_config'] = 'Su configuraci<63>n tiene un error. $search_attributes debe tener el mismo n<>mero de atributos que $search_attributes_display.';
// Password checker
$lang['passwords_match'] = '<27>Las contrase<73>as coinciden!';
$lang['passwords_do_not_match'] = '<27>Las contrase<73>as no coinciden!';
$lang['password_checker_tool'] = 'Herramienta de comprobaci<63>n de contrase<73>as';
$lang['compare'] = 'Comparar';
$lang['to'] = 'con';
// Templates
$lang['using'] = 'Usando la';
$lang['template'] = 'plantilla';
$lang['switch_to'] = 'Puede cambair a la ';
$lang['default_template'] = 'plantilla por defecto';
// template_config
$lang['user_account'] = 'Cuenta de Usuario (posixAccount)';
$lang['address_book_inet'] = 'Entrada del libro de direcciones (inetOrgPerson)';
$lang['address_book_moz'] = 'Entrada del libro de direcciones (mozillaOrgPerson)';
$lang['kolab_user'] = 'Entrada de Usuario Kolab';
$lang['organizational_unit'] = 'Unidad Organizativa';
$lang['organizational_role'] = 'Rol Organizativo';
$lang['posix_group'] = 'Grupo Posix';
$lang['samba_machine'] = 'Ordenador con Samba NT';
$lang['samba3_machine'] = 'Ordenador con Samba 3 NT';
$lang['samba_user'] = 'Usuario de Samba';
$lang['samba3_user'] = 'Usuario de Samba 3';
$lang['samba3_group'] = 'Mapeo de Grupo de Samba 3';
$lang['dns_entry'] = 'Entrada DNS';
$lang['simple_sec_object'] = 'Objeto de Seguridad Simple';
$lang['courier_mail_account'] = 'Cuenta de Correo Courier';
$lang['courier_mail_alias'] = 'Alias de Correo Courier';
$lang['ldap_alias'] = 'Alias de LDAP';
$lang['sendmail_cluster'] = 'Cluster de Sendmail';
$lang['sendmail_domain'] = 'Dominio de Sendmail';
$lang['sendmail_alias'] = 'Alias de Sendmail';
$lang['sendmail_virt_dom'] = 'Dominio Virtual de Sendmail';
$lang['sendmail_virt_users'] = 'Usuarios Virtuales de Sendmail';
$lang['sendmail_relays'] = 'Rel<65>s de Sendmail';
$lang['custom'] = 'A medida';
$lang['samba_domain_name'] = 'Mi Nombre de Dominio de Samba';
$lang['administrators'] = 'Administradores';
$lang['users'] = 'Usuarios';
$lang['guests'] = 'Invitados';
$lang['power_users'] = 'Usuarios Privilegiados';
$lang['account_ops'] = 'Administradores de Cuentas';
$lang['server_ops'] = 'Administradores de Servidor';
$lang['print_ops'] = 'Administradores de Impresi<73>n';
$lang['backup_ops'] = 'Administradores de Copias de Seguridad';
$lang['replicator'] = 'Replicador';
$lang['unable_smb_passwords'] = ' Imposible crear las contrase<73>as de Samba. Por favor, revise la configuraci<63>n en template_config.php';
$lang['err_smb_conf'] = 'Error: Tiene un error en su configuraci<63>n de Samba.';
$lang['err_smb_no_name_sid'] = 'Error: Necesita indicar el nombre y el sid de su dominio Samba.';
$lang['err_smb_no_name'] = 'Error: No se ha indicado el nombre del dominio Samba.';
$lang['err_smb_no_sid'] = 'Error: No se ha indicado el sid del dominio Samba.';
// Samba Account Template
$lang['samba_account'] = 'Cuenta Samba';
$lang['samba_account_lcase'] = 'cuenta samba';
// New User (Posix) Account
$lang['t_new_user_account'] = 'Nueva cuenta de usuario';
$lang['t_hint_customize'] = 'Nota: Para modificar esta plantilla, edite el fichero templates/creation/new_user_template.php';
$lang['t_name'] = 'Nombre';
$lang['t_first_name'] = 'Nombre propio';
$lang['t_last_name'] = 'Apellido';
$lang['t_first'] = 'nombre propio';
$lang['t_last'] = 'apellido';
$lang['t_common_name'] = 'Nombre com<6F>n';
$lang['t_user_name'] = 'Nombre de Usuario';
$lang['t_password'] = 'Contrase<73>a';
$lang['t_encryption'] = 'Encriptaci<63>n';
$lang['t_login_shell'] = 'Shell de entrada';
$lang['t_home_dir'] = 'Directorio de usuario';
$lang['t_uid_number'] = 'N<>mero UID';
$lang['t_auto_det'] = '(determinado autom<6F>ticamente)';
$lang['t_group'] = 'Grupo';
$lang['t_gid_number'] = 'N<>mero GID';
$lang['t_err_passwords'] = 'Sus contrase<73>as no coinciden. Por favor, vuelva atr<74>s e int<6E>ntelo de nuevon.';
$lang['t_err_field_blank'] = 'No puede dejar en blanco el %s. Por favor, vuelva atr<74>s e int<6E>ntelo de nuevo.';
$lang['t_err_field_num'] = 'S<>lo puede introducir valores num<75>ricos en el campo %s. Por favor, vuelva atr<74>s e int<6E>ntelo de nuevo.';
$lang['t_err_bad_container'] = 'El contenedor que ha especificado (%s) no existe. Por favor, vuelva atr<74>s e int<6E>ntelo de nuevo.';
$lang['t_confirm_account_creation'] = 'Confirmar creaci<63>n de cuenta';
$lang['t_secret'] = '[secreta]';
$lang['t_create_account'] = 'Crear cuenta';
// New Address Template
$lang['t_new_address'] = 'Nueva entrada en el libro de direcciones';
$lang['t_organization'] = 'Organizaci<63>n';
$lang['t_address'] = 'Direcci<63>n';
$lang['t_city'] = 'Ciudad';
$lang['t_postal_code'] = 'C<>digo postal';
$lang['t_street'] = 'Calle';
$lang['t_work_phone'] = 'Tel<65>fono de trabajo';
$lang['t_fax'] = 'Fax';
$lang['t_mobile'] = 'M<>vil';
$lang['t_email'] = 'Email';
$lang['t_container'] = 'Contenedor';
$lang['t_err_cn_blank'] = 'No puede dejar el campo "Nombre Com<6F>n" en blanco. Por favor, vuelva atr<74>s e int<6E>ntelo de nuevo.';
$lang['t_confim_creation'] = 'Confirmar creaci<63>n de entrada:';
$lang['t_create_address'] = 'Crear direcci<63>n';
// default template
$lang['t_check_pass'] = 'Compruebe la contrase<73>a...';
?>

View File

@@ -1,694 +0,0 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/fr.php,v 1.29.2.2 2005/10/09 06:29:41 wurley Exp $
/* --- INSTRUCTIONS FOR TRANSLATORS ---
*
* If you want to write a new language file for your language,
* please submit the file on SourceForge:
*
* https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498548
*
* Use the option "Check to Upload and Attach a File" at the bottom
*
* Read the doc/README-translation.txt for translation instructions.
*
* Thank you!
*
*/
/*
* The $lang array contains all the strings that phpLDAPadmin uses.
* Each language file simply defines this aray with strings in its
* language.
*/
// Search form
$lang['simple_search_form_str'] = 'Recherche simple';
$lang['advanced_search_form_str'] = 'Recherche avanc<6E>e';
$lang['server'] = 'Serveur';
$lang['search_for_entries_whose'] = 'Rechercher les entr<74>es dont';
$lang['base_dn'] = 'Base DN';
$lang['search_scope'] = 'Port<72>e de la recherche';
$lang['show_attributes'] = 'Afficher les attributs';
$lang['Search'] = 'Rechercher';
$lang['predefined_search_str'] = 'S<>lectionner une recherche pr<70>d<EFBFBD>finie';
$lang['predefined_searches'] = 'Recherches pr<70>d<EFBFBD>finies';
$lang['no_predefined_queries'] = 'Aucune requ<71>te n\'a <20>t<EFBFBD> d<>finie dans config.php.';
$lang['export_results'] = 'exporter le resultat';
$lang['unrecoginzed_search_result_format'] = 'Le format du r<>sultat de la recherche n\'est pas reconnu : %s';
$lang['format'] = 'Format';
$lang['list'] = 'liste';
$lang['table'] = 'table';
$lang['bad_search_display'] = 'Votre config.php sp<73>cifie une valeur non valide pour $default_search_display : %s. Veuillez corriger cela';
$lang['page_n'] = 'Page %d';
$lang['next_page'] = 'Page suivante';
$lang['no_results'] = 'Aucun r<>sultat pour cette recherche.';
// Tree browser
$lang['request_new_feature'] = 'Demander une fonctionnalit<69>';
$lang['report_bug'] = 'Signaler une anomalie';
$lang['schema'] = 'sch<63>ma';
$lang['search'] = 'rechercher';
$lang['create'] = 'cr<63>er';
$lang['info'] = 'info';
$lang['import'] = 'importer';
$lang['refresh'] = 'rafra<72>chir';
$lang['logout'] = 'se d<>connecter';
$lang['create_new'] = 'Cr<43>er une nouvelle entr<74>e ici';
$lang['view_schema_for'] = 'Afficher le sch<63>ma pour';
$lang['refresh_expanded_containers'] = 'Rafra<72>chir tous les conteneurs <20>tendus pour';
$lang['create_new_entry_on'] = 'Cr<43>er une nouvelle entr<74>e sur';
$lang['new'] = 'nouveau';
$lang['view_server_info'] = 'Afficher les informations fournies par le serveur';
$lang['import_from_ldif'] = 'Importer les entr<74>es d\'un fichier LDIF';
$lang['logout_of_this_server'] = 'Se d<>connecter de ce serveur';
$lang['logged_in_as'] = 'Connect<63> en tant que : ';
$lang['this_base_dn_is_not_valid'] = 'Ce n\'est pas un DN valide.';
$lang['this_base_dn_does_not_exist'] = 'Cette entr<74>e n\'existe pas.';
$lang['read_only'] = 'lecture seule';
$lang['read_only_tooltip'] = 'Cette attribut a <20>t<EFBFBD> mis en lecture seule par l\'administrateur de phpLDAPadmin';
$lang['could_not_determine_root'] = 'Impossible de d<>terminer la racine de votre arborescence LDAP.';
$lang['ldap_refuses_to_give_root'] = 'Il semble que votre serveur LDAP a <20>t<EFBFBD> configur<75> pour ne pas r<>v<EFBFBD>ler sa racine.';
$lang['please_specify_in_config'] = 'Veuillez la sp<73>cifier dans config.php';
$lang['create_new_entry_in'] = 'Cr<43>e une nouvelle entr<74>e dans';
$lang['login_link'] = 'Connexion...';
$lang['login'] = 'connexion';
$lang['base_entry_does_not_exist'] = 'L\'entr<74>e racine n\'existe pas.';
$lang['create_it'] = 'La cr<63>er ?';
// Entry display
$lang['delete_this_entry'] = 'Supprimer cette entr<74>e';
$lang['delete_this_entry_tooltip'] = 'Il vous sera demander de confirmer cette d<>cision';
$lang['copy_this_entry'] = 'Copier ou d<>placer cette entr<74>e';
$lang['copy_this_entry_tooltip'] = 'Copier cet objet vers un autre emplacement, un nouveau DN, ou un autre serveur';
$lang['export'] = 'Exporter';
$lang['export_lcase'] = 'exporter';
$lang['export_tooltip'] = 'Enregistrer un dump de cet objet';
$lang['export_subtree_tooltip'] = 'Enregistrer un dump de cet objet et de tous ses sous-objets';
$lang['export_subtree'] = 'Exporter une sous-arborescence';
$lang['create_a_child_entry'] = 'Cr<43>er une sous-entr<74>e';
$lang['rename_entry'] = 'Renommer l\'entr<74>e';
$lang['rename'] = 'Renommer';
$lang['rename_lower'] = 'renommer';
$lang['add'] = 'Ajouter';
$lang['view'] = 'Afficher';
$lang['view_one_child'] = 'Afficher 1 sous-entr<74>e';
$lang['view_children'] = 'Afficher %s sous-entr<74>es';
$lang['add_new_attribute'] = 'Ajouter un nouvel attribut';
$lang['add_new_objectclass'] = 'Ajouter un nouvel ObjectClass';
$lang['hide_internal_attrs'] = 'Cacher les attributs internes';
$lang['show_internal_attrs'] = 'Afficher les attributs internes';
$lang['attr_name_tooltip'] = 'Cliquez pour afficher la d<>finition de sch<63>ma pour le type d\'attribut <20> %s <20>';
$lang['none'] = 'aucun';
$lang['no_internal_attributes'] = 'Aucun attribut interne';
$lang['no_attributes'] = 'Cette entr<74>e n\'a aucun attribut';
$lang['save_changes'] = 'Enregistrer les modifications';
$lang['add_value'] = 'ajouter une valeur';
$lang['add_value_tooltip'] = 'Ajouter une valeur additionnel <20> l\'attribut <20> %s <20>';
$lang['refresh_entry'] = 'Rafra<72>chir';
$lang['refresh_this_entry'] = 'Rafra<72>chir cette entr<74>e';
$lang['delete_hint'] = 'Astuce : pour supprimer un attribut, videz le champ texte et enregistrez.';
$lang['attr_schema_hint'] = 'Astuce : pour afficher le sch<63>ma d\'un attribut, cliquez sur le nom de l\'attribut.';
$lang['attrs_modified'] = 'Quelques attributs (%s) ont <20>t<EFBFBD> modifi<66>s et sont surlign<67>s ci-dessous.';
$lang['attr_modified'] = 'Un attribut (%s) a <20>t<EFBFBD> modifi<66> et est surlign<67> ci-dessous.';
$lang['viewing_read_only'] = 'Afficher les entr<74>es en lecture seule.';
$lang['no_new_attrs_available'] = 'aucun nouvel attribut disponible pour cette entr<74>e';
$lang['no_new_binary_attrs_available'] = 'aucun nouvel attribut binaire pour cette entr<74>e';
$lang['binary_value'] = 'Valeur binaire';
$lang['add_new_binary_attr'] = 'Ajouter un nouvel attribut binaire';
$lang['alias_for'] = 'Note : <20> %s <20> est un alias de <20> %s <20>';
$lang['required_for'] = 'Attribut requis pour l(es) objectClass %s';
$lang['required_by_entry'] = 'Cet attribut est requis pour le RDN.';
$lang['download_value'] = 't<>l<EFBFBD>charger la valeur';
$lang['delete_attribute'] = 'supprimer l\'attribut';
$lang['true'] = 'vrai';
$lang['false'] = 'faux';
$lang['none_remove_value'] = 'aucun, supprimer la valeur';
$lang['really_delete_attribute'] = 'Voulez-vous vraiment supprimer l\'attribut';
$lang['add_new_value'] = 'Ajouter une nouvelle valeur';
// Schema browser
$lang['schema_retrieve_error_1']='Le serveur ne supporte pas compl<70>tement le protocole LDAP.';
$lang['schema_retrieve_error_2']='Votre version de PHP n\'effectue pas correctement la requ<71>te.';
$lang['schema_retrieve_error_3']='phpLDAPadmin ne sais pas comment r<>cup<75>rer le sch<63>ma de votre serveur.';
$lang['schema_retrieve_error_4']='Ou alors, votre serveur LDAP ne fournit pas cette information.';
$lang['jump_to_objectclass'] = 'Sauter vers un objectClass';
$lang['view_schema_for_oclass'] = 'Afficher la description de sch<63>ma de cet objectClass';
$lang['jump_to_attr'] = 'Sauter vers un type d\'attribut';
$lang['jump_to_matching_rule'] = 'Sauter vers une r<>gle correspondante';
$lang['schema_for_server'] = 'Schema pour le serveur';
$lang['required_attrs'] = 'Attributs requis';
$lang['required'] = 'requis';
$lang['optional_attrs'] = 'Attributs optionnels';
$lang['optional_binary_attrs'] = 'Attributs binaires optionnels';
$lang['OID'] = 'OID';
$lang['aliases']='Alias';
$lang['desc'] = 'Description';
$lang['no_description']='aucune description';
$lang['name'] = 'Nom';
$lang['equality']='<27>galit<69>';
$lang['is_obsolete'] = 'Cet objectClass est obsol<6F>te.';
$lang['inherits'] = 'H<>rite de';
$lang['inherited_from'] = 'H<>rit<69> de';
$lang['parent_to'] = 'Parent de';
$lang['jump_to_this_oclass'] = 'Sauter vers cette d<>finition d\'objectClass';
$lang['matching_rule_oid'] = 'R<>gle OID correspondante';
$lang['syntax_oid'] = 'Syntaxe OID';
$lang['not_applicable'] = 'non applicable';
$lang['not_specified'] = 'non sp<73>cifi<66>';
$lang['character']='caract<63>re';
$lang['characters']='caract<63>res';
$lang['used_by_objectclasses']='Utilis<69> par ces objectClass';
$lang['used_by_attributes']='Utilis<69> par ces attributs';
$lang['maximum_length']='Longueur maximum';
$lang['attribute_types']='Types d\'attributs';
$lang['syntaxes']='Syntaxes';
$lang['matchingrules']='R<>gles correspondantes';
$lang['oid']='OID';
$lang['obsolete']='Obsol<6F>te';
$lang['ordering']='Triage';
$lang['substring_rule']='R<>gle de sous-cha<68>ne';
$lang['single_valued']='Valeur simple';
$lang['collective']='Collectif';
$lang['user_modification']='Modification utilisateur';
$lang['usage']='Usage';
$lang['could_not_retrieve_schema_from']='Impossible de r<>cup<75>rer le sch<63>ma de';
$lang['type']='Type';
$lang['no_such_schema_item'] = 'Aucun <20>l<EFBFBD>ment de sch<63>ma : <20> %s <20>';
$lang['random_password'] = 'Un mot de passe al<61>atoire a <20>t<EFBFBD> g<>n<EFBFBD>r<EFBFBD> pour vous';
// Deleting entries
$lang['entry_deleted_successfully'] = 'L\'entr<74>e %s a <20>t<EFBFBD> supprim<69> avec succ<63>s.';
$lang['you_must_specify_a_dn'] = 'Vous devez sp<73>cifier un DN';
$lang['could_not_delete_entry'] = 'Impossible de supprimer l\'entr<74>e : %s';
$lang['no_such_entry'] = 'Aucune entr<74>e: %s';
$lang['delete_dn'] = 'Supprimer %s';
$lang['permanently_delete_children'] = 'Supprimer aussi toutes les sous-entr<74>es ?';
$lang['entry_is_root_sub_tree'] = 'Cette entr<74>e est la racine d\'une sous-arborescence contenant %s entr<74>es.';
$lang['view_entries'] = 'afficher les entr<74>es';
$lang['confirm_recursive_delete'] = 'phpLDAPadmin peut supprimer r<>cursivement cette entr<74>e et toutes %s de ses sous-entr<74>es. Voir ci-dessous pour une liste de toutes les entr<74>es que cette action supprimera. Voulez-vous le faire ?';
$lang['confirm_recursive_delete_note'] = 'Note : ceci est potentiellement tr<74>s dangereux et vous le faites <20> vos risques et p<>rils. Cette op<6F>ration ne peut <20>tre annul<75>e. Prenez bien note que les alias, les r<>f<EFBFBD>rents, et d\'autres choses pourront vous causer des probl<62>mes.';
$lang['delete_all_x_objects'] = 'Supprimer tous les %s objets';
$lang['recursive_delete_progress'] = 'Progression de la suppression r<>cursive';
$lang['entry_and_sub_tree_deleted_successfully'] = 'L\'entr<74>e %s et la sous-arborescence ont <20>t<EFBFBD> supprim<69> avec succ<63>s.';
$lang['failed_to_delete_entry'] = 'La suppression de l\'entr<74>e %s a <20>chou<6F>';
$lang['list_of_entries_to_be_deleted'] = 'Liste des entr<74>es <20> supprimer :';
$lang['sure_permanent_delete_object']='<27>tes-vous s<>r de vouloir supprimer d<>finitivement cet objet ?';
$lang['dn'] = 'DN';
// Deleting attributes
$lang['attr_is_read_only'] = 'L\'attribut <20> %s <20> est marqu<71> en lecture seule dans la configuration de phpLDAPadmin.';
$lang['no_attr_specified'] = 'Aucun nom d\'attribut d<>fini.';
$lang['no_dn_specified'] = 'Aucun DN sp<73>cifi<66>';
// Adding attributes
$lang['left_attr_blank'] = 'Vous avez laiss<73> la valeur de l\'attribut blanc. Veuillez revenir et essayer de nouveau.';
$lang['failed_to_add_attr'] = 'L\'ajout de l\'attribut a <20>chou<6F>.';
$lang['file_empty'] = 'Le fichier que vous avez choisi est soit vide, soit il n\'existe pas. Veuillez revenir et essayer de nouveau.';
$lang['invalid_file'] = 'Erreur de s<>curit<69> : le fichier t<>l<EFBFBD>charg<72> est peut <20>tre corrompu.';
$lang['warning_file_uploads_disabled'] = 'Votre configuration de PHP a d<>sactiv<69> le t<>l<EFBFBD>chargement de fichiers. Veuillez v<>rifier php.ini avant de proc<6F>der.';
$lang['uploaded_file_too_big'] = 'Le fichier que vous avez t<>l<EFBFBD>charg<72> est trop grand. Veuillez v<>rifier dans php.ini le r<>glage upload_max_size';
$lang['uploaded_file_partial'] = 'Le fichier que vous avez s<>lectionn<6E> est partiellement t<>l<EFBFBD>charg<72>, surement du <20> une erreur r<>seau.';
$lang['max_file_size'] = 'Taille de fichier maximum : %s';
// Updating values
$lang['modification_successful'] = 'Modification avec succ<63>s !';
$lang['change_password_new_login'] = 'Puisque vous avez chang<6E> de mot de passe, vous devez vous reconnecter avec votre nouveau mot de passe.';
// Adding objectClass form
$lang['new_required_attrs'] = 'Nouveaux attributs requis';
$lang['requires_to_add'] = 'Cette action n<>cessite que vous ajoutiez';
$lang['new_attributes'] = 'nouveaux attributs';
$lang['new_required_attrs_instructions'] = 'Instructions : afin d\'ajouter ces objectClass <20> cette entr<74>e, vous devez sp<73>cifier';
$lang['that_this_oclass_requires'] = 'ce que cet objectClass n<>cessite. Vous pouvez le faire dans ce formulaire.';
$lang['add_oclass_and_attrs'] = 'Ajouter des objectClass et des attributs';
$lang['objectclasses'] = 'ObjectClass';
// General
$lang['chooser_link_tooltip'] = 'Cliquez afin de faire apparaitre une bo<62>te de dialogue permettant de choisir une entr<74>e graphiquement';
$lang['no_updates_in_read_only_mode'] = 'Vous ne pouvez effectuer de mises <20> jour tant que le serveur est en lecture seule';
$lang['bad_server_id'] = 'Mauvais id de serveur';
$lang['not_enough_login_info'] = 'Il n\'y a pas assez d\'informations pour se connecter au serveur. Veuillez v<>rifier votre configuration.';
$lang['could_not_connect'] = 'Impossible de se connecter au serveur LDAP.';
$lang['could_not_connect_to_host_on_port'] = 'Impossible de se connecter <20> <20> %s <20> sur le port <20> %s <20>';
$lang['could_not_perform_ldap_mod_add'] = 'Impossible d\'effectuer ldap_mod_add operation.';
$lang['home'] = 'Accueil';
$lang['help'] = 'Aide';
$lang['success'] = 'Succ<63>s';
$lang['server_colon_pare'] = 'Serveur : ';
$lang['look_in'] = 'Rechercher dans : ';
$lang['missing_dn_in_query_string'] = 'Aucun DN sp<73>cifi<66> dans la chaine de requete !';
$lang['back_up_p'] = 'Sauvegarde...';
$lang['no_entries'] = 'aucune entr<74>es';
$lang['could_not_det_base_dn'] = 'Impossible de d<>terminer le DN racine';
$lang['reasons_for_error']='Ceci peut arriver pour diff<66>rentes raisons, le plus probable est sans doute :';
$lang['yes']='oui';
$lang['no']='Non';
$lang['go']='Aller <20>';
$lang['delete']='Supprimer';
$lang['back']='Revenir';
$lang['object']='objet';
$lang['delete_all']='Tout supprimer';
$lang['hint'] = 'astuce';
$lang['bug'] = 'anomalie';
$lang['warning'] = 'avertissement';
$lang['light'] = 'lumi<6D>re'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = 'Proc<6F>der &gt;&gt;';
$lang['no_blowfish_secret'] = 'phpLDAPadmin ne peut pas chiffrer ou d<>chiffrer en toute s<>curit<69> vos informations sensibles, car $blowfish_secret n\'est pas d<>fini dans config.php. Vous avez besoin d\'<27>diter config.php et de d<>finir $blowfish_secret <20> une cha<68>ne secr<63>te maintenant.';
$lang['jpeg_dir_not_writable'] = 'Veuillez d<>finir $jpeg_temp_dir <20> un r<>pertoire accessible en <20>criture dans le config.php de phpLDAPadmin';
$lang['jpeg_dir_not_writable_error'] = 'Impossible d\'<27>crire dans le r<>pertoire $jpeg_temp_dir %s. Veuillez v<>rifier que votre serveur Web peut <20>crire des fichiers dedans.';
$lang['jpeg_unable_toget'] = 'Impossible de r<>cup<75>rer les donn<6E>es JPEG depuis votre serveur LDAP pour l\'attribut %s.';
$lang['jpeg_delete'] = 'Supprimer la photo';
// Add value form
$lang['add_new'] = 'Ajouter une nouvelle valeur';
$lang['value_to'] = 'dans';
$lang['distinguished_name'] = 'Nom distingu<67>';
$lang['current_list_of'] = 'Liste actuelle de';
$lang['values_for_attribute'] = 'valeur(s) pour l\'attribut';
$lang['inappropriate_matching_note'] = 'Note : vous obtiendrez une erreur <20> correspondance innapropri<72>e <20> si vous n\'avez pas d<>fini de r<>gle d\'<27>galit<69> sur votre serveur LDAP pour cette attribut.';
$lang['enter_value_to_add'] = 'Saisissez la valeur que vous voulez ajouter :';
$lang['new_required_attrs_note'] = 'Note : il peut vous <20>tre demand<6E> de saisir les nouveaux attributs requis par ces objectClass';
$lang['syntax'] = 'Syntaxe';
//copy.php
$lang['copy_server_read_only'] = 'Vous ne pouvez faire de mises <20> jour tantq ue le serveur est en lecture seule';
$lang['copy_dest_dn_blank'] = 'Vopus avez laiss<73> le DN de destination vide.';
$lang['copy_dest_already_exists'] = 'L\'entr<74>e de destination (%s)existe d<>j<EFBFBD>.';
$lang['copy_dest_container_does_not_exist'] = 'Le conteneur de destination (%s) n\'existe pas.';
$lang['copy_source_dest_dn_same'] = 'Les DN source et destination sont les m<>mes.';
$lang['copy_copying'] = 'Copie ';
$lang['copy_recursive_copy_progress'] = 'progression de la copie r<>cursive';
$lang['copy_building_snapshot'] = 'Construction d\'un instantan<61> de l\'arborescence <20> copier... ';
$lang['copy_successful_like_to'] = 'Copie avec succ<63>s ! Voulez-vous ';
$lang['copy_view_new_entry'] = 'afficher la nouvelle entr<74>e';
$lang['copy_failed'] = 'La copie du DN a <20>chou<6F> : ';
//edit.php
$lang['missing_template_file'] = 'Avertissement : fichier mod<6F>le manquant, ';
$lang['using_default'] = 'Utilisant les valeurs par d<>faut.';
$lang['template'] = 'Mod<6F>le';
$lang['must_choose_template'] = 'Vous devez choisir un mod<6F>le';
$lang['invalid_template'] = '%s n\'est pas un mod<6F>le valide';
$lang['using_template'] = 'en utilisant le mod<6F>le';
$lang['go_to_dn'] = 'Aller vers %s';
$lang['structural_object_class_cannot_remove'] = 'C\'est un ObjectClass structurel et il ne peut <20>tre supprim<69>.';
$lang['structural'] = 'structurel';
//copy_form.php
$lang['copyf_title_copy'] = 'Copie ';
$lang['copyf_to_new_object'] = 'vers un nouvel objet';
$lang['copyf_dest_dn'] = 'DN de destination';
$lang['copyf_dest_dn_tooltip'] = 'Le DN complet de la nouvelle entr<74>e a cr<63>er lors de la copie de l\'entr<74>e source';
$lang['copyf_dest_server'] = 'Serveur de destination';
$lang['copyf_note'] = 'Astuce : la copie entre diff<66>rents serveurs ne fonctionne que si il n\'y a aucune violations de sch<63>ma';
$lang['copyf_recursive_copy'] = 'Copie r<>cursive de toutes les sous-entr<74>es de cet objet.';
$lang['recursive_copy'] = 'Copie r<>cursive';
$lang['filter'] = 'Filtre';
$lang['filter_tooltip'] = 'Lors de la copie r<>cursive, ne copier que les entr<74>es qui correspondent <20> ce filtre';
$lang['delete_after_copy'] = 'Supprimer apr<70>s la copie (d<>placement) :';
$lang['delete_after_copy_warn'] = 'Veuillez vous assurer que vos filtres (ci-dessus) s<>lectionneront tous les enregistrements fils.';
//create.php
$lang['create_required_attribute'] = 'Vous avez laissez une valeur blanche pour l\'attribut requis (%s).';
$lang['redirecting'] = 'Redirection...';
$lang['here'] = 'ici';
$lang['create_could_not_add'] = 'Impossible d\'ajouter l\'objet au serveur LDAP.';
//create_form.php
$lang['createf_create_object'] = 'Cr<43>er un objet';
$lang['createf_choose_temp'] = 'Choisissez un mod<6F>le';
$lang['createf_select_temp'] = 'S<>lectionner un mod<6F>le pour le processus de cr<63>ation';
$lang['save_as_file'] = 'Enregistrer dans un fichier';
$lang['rdn_field_blank'] = 'Vous avez laiss<73> le champ RDN vide.';
$lang['container_does_not_exist'] = 'Le conteneur que vous avez sp<73>cifi<66> (%s) n\'existe pas. Veuillez essayer de nouveau.';
$lang['no_objectclasses_selected'] = 'Vous n\'avez pas s<>lectionn<6E> d\'objectClass pour cet objet. Veuillez revenir et le faire.';
$lang['hint_structural_oclass'] = 'Astuce : vous devez choisir un seul objectClass structurel (affich<63> en gras ci-dessus)';
$lang['template_restricted'] = 'Ce mod<6F>le n\'est pas autoris<69> dans ce conteneur.';
$lang['template_invalid'] = 'Ce mod<6F>le a <20>t<EFBFBD> d<>sactiv<69>, cela est s<>rement du <20> un sch<63>ma manquant ou <20> des champs manquants dans le mod<6F>le XML.';
//creation_template.php
$lang['ctemplate_on_server'] = 'Sur le serveur';
$lang['ctemplate_no_template'] = 'Aucun mod<6F>le sp<73>cifi<66> dans les variables POST.';
$lang['template_not_readable'] = 'Votre configuration sp<73>cifie un gestionnaire de <20> %s <20> pour ce mod<6F>le mais le fichier n\'est pas lisible car les permissions sont trop strictes..';
$lang['template_does_not_exist'] = 'Votre configuration sp<73>cifie un gestionnaire de <20> %s <20> pour ce mod<6F>le mais ce gestionnaire n\'existe pas dans le r<>pertoire de mod<6F>les/cr<63>ation.';
$lang['create_step1'] = '<27>tape 1 of 2 : nom et ObjectClass';
$lang['create_step2'] = '<27>tape 2 of 2 : sp<73>cifie les attributs et valeur';
$lang['relative_distinguished_name'] = 'Nom distingu<67> relatif';
$lang['rdn'] = 'RDN';
$lang['rdn_example'] = '(exemple : cn=MaNouvellePersonne)';
$lang['container'] = 'Conteneur';
// search.php
$lang['you_have_not_logged_into_server'] = 'Vous n\'<27>tes pas encore connect<63> au serveur s<>lectionn<6E>, vous ne pouvez pas effectuer de recherche dessus.';
$lang['click_to_go_to_login_form'] = 'Cliquez ici pour aller au formulaire de connexion';
$lang['unrecognized_criteria_option'] = 'Option de crit<69>re non reconnue : ';
$lang['if_you_want_to_add_criteria'] = 'Si vous voulez ajouter vos propres crit<69>res dans la liste. Veuillez vous assurer d\'<27>diter search.php pour les g<>rer. Quitte.';
$lang['entries_found'] = 'Entr<74>es trouv<75>es : ';
$lang['filter_performed'] = 'Filtrage effectu<74> : ';
$lang['search_duration'] = 'Recherche effectu<74>e par phpLDAPadmin dans';
$lang['seconds'] = 'secondes';
// search_form_advanced.php
$lang['scope_in_which_to_search'] = 'La port<72>e dans laquelle effectuer la recherche';
$lang['scope_sub'] = 'Sub (sous-arborescence enti<74>re)';
$lang['scope_one'] = 'One (un niveau au-dessous de la base)';
$lang['scope_base'] = 'Base (dn de base seulement)';
$lang['standard_ldap_search_filter'] = 'Filtre de recherche LDAAP standard. Exemple : (&(sn=Smith)(givenname=David))';
$lang['search_filter'] = 'Filtre de recherche';
$lang['list_of_attrs_to_display_in_results'] = 'Une liste d\'attributs <20> afficher dans le r<>sultat (s<>par<61> par des virgules)';
// search_form_simple.php
$lang['equals'] = 'est <20>gal <20>';
$lang['starts with'] = 'commence par';
$lang['contains'] = 'contient';
$lang['ends with'] = 'se termine par';
$lang['sounds like'] = 'ressemble <20>';
// server_info.php
$lang['could_not_fetch_server_info'] = 'Impossible de r<>cup<75>rer les informations LDAP depuis le serveur. Ceci est sans doute du <20> une <a href="http://bugs.php.net/bug.php?id=29587">anomalie</a> dans votre version de PHP ou peut-<2D>tre que votre serveur LDAP a un contr<74>le d\'acc<63>s d<>fini qui emp<6D>che les clients LDAP d\'acc<63>der au RootDSE.';
$lang['server_info_for'] = 'Info serveur pour : ';
$lang['server_reports_following'] = 'Le serveur rapporte les informations suivantes <20> propos de lui-m<>me';
$lang['nothing_to_report'] = 'Ce serveur n\'a rien <20> rapporter.';
//update.php
$lang['update_array_malformed'] = 'update_array est malform<72>. C\'est peut-<2D>tre une anomalie de phpLDAPadmin. Veuillez la rapporter.';
$lang['could_not_perform_ldap_modify'] = 'Impossible d\'effectuer une op<6F>ration ldap_modify.';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = 'Voulez-vous effectuer ces modifications ?';
$lang['attribute'] = 'Attribut';
$lang['old_value'] = 'Ancienne valeur';
$lang['new_value'] = 'Nouvelle valeur';
$lang['attr_deleted'] = '[attribut supprim<69>]';
$lang['commit'] = 'Valider';
$lang['cancel'] = 'Annuler';
$lang['you_made_no_changes'] = 'Vous n\'avez fait aucune modification';
$lang['go_back'] = 'Revenir';
$lang['unable_create_samba_pass'] = 'Impossible de cr<63>er le mot de passe Samba. Veuillez v<>rifier votre configuration dans template_config.php';
// welcome.php
$lang['welcome_note'] = 'Utiliser le menu de gauche pour naviguer';
$lang['credits'] = 'Cr<43>dits';
$lang['changelog'] = 'ChangeLog';
$lang['documentation'] = 'Documentation';
$lang['donate'] = 'Donation';
$lang['pla_logo'] = 'Logo phpLDAPadmim';
// Donate.php
$lang['donation_instructions'] = 'Pour contribuer financi<63>rement au projet phpLDAPadmin, utilisez un des boutons PayPal ci-dessous.';
$lang['donate_amount'] = 'Donner %s';
$lang['purge_cache'] = 'Purger les caches';
$lang['no_cache_to_purge'] = 'Aucun cache <20> purger.';
$lang['done_purging_caches'] = '%s octets de cache purg<72>s.';
$lang['purge_cache_tooltip'] = 'Purge toutes les donn<6E>es cach<63>es dans phpLDAPadmin, incluant les sch<63>mas de serveur.';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Nom de fichier non s<>r : ';
$lang['no_such_file'] = 'Pas de tel fichier : ';
//function.php
$lang['auto_update_not_setup'] = 'Vous avez activ<69> auto_uid_numbers pour <b>%s</b> dans votre configuration,
mais vous n\'avez pas sp<73>cifi<66> de m<>canisme auto_uid_number_mechanism. Veuillez corriger
ce probl<62>me.';
$lang['uidpool_not_set'] = 'Vous avez d<>fini <20> auto_uid_number_mechanism <20> comme <20> uidpool <20>
dans votre configuration pour le serveur <b>%s</b>, mais vous n\'avez pas sp<73>cifi<66> le
auto_uid_number_uid_pool_dn. Veuillez le sp<73>cifier avant de proc<6F>der.';
$lang['uidpool_not_exist'] = 'Il semble que le uidPool que vous avez sp<73>cifi<66> dans votre configuration (<28> %s <20>)
n\'existe pas.';
$lang['specified_uidpool'] = 'Vous avez sp<73>cifi<66> le <20> auto_uid_number_mechanism <20> comme <20> search <20> dans votre
configuration du serveur <b>%s</b>, mais vous n\'avez pas sp<73>cifi<66> le
<20> auto_uid_number_search_base <20>. Veuillez le sp<73>cifier avant de proc<6F>der.';
$lang['auto_uid_invalid_credential'] = 'Incapable de se connecter <20> <b>%s</b> avec votre cr<63>dentiel auto_uid . Veuillez v<>rifier votre fichier de configuration.';
$lang['bad_auto_uid_search_base'] = 'Votre configuration de phpLDAPadmin sp<73>cifie un auto_uid_search_base non valide pour le serveur %s';
$lang['auto_uid_invalid_value'] = 'Vous avez sp<73>cifi<66> une valeur non valide pour pour auto_uid_number_mechanism ("%s")
dans votre configuration. Seul <20> uidpool <20> et <20> search <20> sont valides.
Veuillez corriger ce probl<62>me.';
$lang['error_auth_type_config'] = 'Erreur : Vous avez une erreur dans votre fichier de configuration. Les seuls trois valeurs autoris<69>es
pour auth_type dans la section $servers sont <20> session <20>, <20> cookie <20>, et <20> config <20>. Vous avez saisi <20> %s <20>,
qui n\'est pas autoris<69>e. ';
$lang['unique_attrs_invalid_credential'] = 'Impossible de se connecter <20> <b>%s</b> avec votre cr<63>dentiel unique_attrs. Veuillez v<>rifier votre fichier de configuration.';
$lang['unique_attr_failed'] = 'Votre tentative d\'ajouter <b>%s</b> (<i>%s</i>) <20> <br><b>%s</b><br> n\'est pas autoris<69>e. Cet attribut/valeur appartient <20> une autre entr<74>e.<p>Vous souhaitez <a href=\'%s\'>rechercher</a> cette entr<74>e.';
$lang['php_install_not_supports_tls'] = 'Votre installation de PHP ne supporte pas TLS.';
$lang['could_not_start_tls'] = 'Impossible de d<>marrer TLS. Veuillez v<>rifier la configuration de votre serveur LDAP.';
$lang['could_not_bind_anon'] = 'Impossible de se connecter anonymement au serveur.';
$lang['could_not_bind'] = 'Impossible de se connecter au serveur LDAP.';
$lang['anonymous_bind'] = 'Connexion anonyme';
$lang['bad_user_name_or_password'] = 'Mauvais nom d\'utilisateur ou mot de passe. Veuillez r<>essayer.';
$lang['successfully_logged_in_to_server'] = 'Connexion au serveur <b>%s</b> avec succ<63>s';
$lang['could_not_set_cookie'] = 'Impossible de d<>finir le cookie.';
$lang['ldap_said'] = 'LDAP dit : %s';
$lang['ferror_error'] = 'Erreur';
$lang['fbrowse'] = 'parcourir';
$lang['delete_photo'] = 'Supprimer la photo';
$lang['install_not_support_ext_des'] = 'Votre biblioth<74>que syst<73>me crypt ne supporte pas le chiffrement DES <20>tendu.';
$lang['install_not_support_blowfish'] = 'Votre biblioth<74>que syst<73>me crypt ne supporte pas le chiffrement blowfish.';
$lang['install_not_support_md5crypt'] = 'Votre biblioth<74>que syst<73>me crypt ne supporte pas le chiffrement md5crypt.';
$lang['install_no_mash'] = 'Votre installation PHP n\'a pas de fonction mhash(). Impossible de faire de signature SHA.';
$lang['jpeg_contains_errors'] = 'jpegPhoto contient des erreurs<br />';
$lang['ferror_number'] = 'Erreur num<75>ro : %s (%s)';
$lang['ferror_discription'] = 'Description : %s <br /><br />';
$lang['ferror_number_short'] = 'Erreur num<75>ro : %s<br /><br />';
$lang['ferror_discription_short'] = 'Description : (aucune description disponible)<br />';
$lang['ferror_submit_bug'] = 'Est-ce une anomalie phpLDAPadmin ? Si c\'est le cas, veuillez <a href=\'%s\'>la rapporter</a>.';
$lang['ferror_unrecognized_num'] = 'Num<75>ro d\'erreur non reconnu: ';
$lang['ferror_nonfatil_bug'] = '<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' />
<b>Vous avez trouv<75> une anomalie phpLDAPadmin non fatale !</b></td></tr><tr><td>Erreur :</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Fichier :</td>
<td><b>%s</b> ligne <b>%s</b>, appelant <b>%s</b></td></tr><tr><td>Versions :</td><td>PLA : <b>%s</b>, PHP : <b>%s</b>, SAPI : <b>%s</b>
</td></tr><tr><td>Serveur Web :</td><td><b>%s</b></td></tr>
<tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>Veuillez v<>rifier et voir si cette anomalie a d<>j<EFBFBD> <20>t<EFBFBD> rapport<72>e ici</a>.</center></td></tr>
<tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>Si elle n\'a pas <20>t<EFBFBD> rapport<72>e, vous pouver rapporter cette anomalie en cliquant ici</a>.</center></td></tr>
</table></center><br />';
$lang['ferror_congrats_found_bug'] = 'F<>licitations ! Vous avez trouv<75> une anomalie dans phpLDAPadmin.<br /><br />
<table class=\'bug\'>
<tr><td>Erreur :</td><td><b>%s</b></td></tr>
<tr><td>Niveau :</td><td><b>%s</b></td></tr>
<tr><td>Fichier :</td><td><b>%s</b></td></tr>
<tr><td>Ligne :</td><td><b>%s</b></td></tr>
<tr><td>Appelant :</td><td><b>%s</b></td></tr>
<tr><td>Version PLA :</td><td><b>%s</b></td></tr>
<tr><td>Version PHP :</td><td><b>%s</b></td></tr>
<tr><td>SAPI PHP :</td><td><b>%s</b></td></tr>
<tr><td>Serveur Web :</td><td><b>%s</b></td></tr>
</table>
<br />
Veuillez rapporter cette anomalie en cliquant ci-dessous !';
//ldif_import_form
$lang['import_ldif_file_title'] = 'Importer un fichier LDIF';
$lang['select_ldif_file'] = 'S<>lectionner un fichier LDIF :';
$lang['dont_stop_on_errors'] = 'Ne pas vous arr<72>ter sur les erreurs';
//ldif_import
$lang['add_action'] = 'Ajout...';
$lang['delete_action'] = 'Suppression...';
$lang['rename_action'] = 'Renommage...';
$lang['modify_action'] = 'Modification...';
$lang['warning_no_ldif_version_found'] = 'Aucune version trouv<75>. Assume 1.';
$lang['valid_dn_line_required'] = 'Une ligne dn valide est requise.';
$lang['missing_uploaded_file'] = 'Fichier t<>l<EFBFBD>charg<72> manquant.';
$lang['no_ldif_file_specified'] = 'Aucun fichier LDIF sp<73>cifi<66>. Veuillez essayer de nouveau.';
$lang['ldif_file_empty'] = 'Le fichier LDIF t<>l<EFBFBD>charg<72> est manquant.';
$lang['empty'] = 'vide';
$lang['file'] = 'Fichier';
$lang['number_bytes'] = '%s octets';
$lang['failed'] = '<27>choue';
$lang['ldif_parse_error'] = 'Erreur d\'analyse LDIF';
$lang['ldif_could_not_add_object'] = 'Impossible d\'ajouter un objet :';
$lang['ldif_could_not_rename_object'] = 'Impossible de renommer l\'objet :';
$lang['ldif_could_not_delete_object'] = 'Impossible de supprimer l\'objet :';
$lang['ldif_could_not_modify_object'] = 'Impossible de modifier l\'objet :';
$lang['ldif_line_number'] = 'Num<75>ro de ligne :';
$lang['ldif_line'] = 'Ligne :';
// Exports
$lang['export_format'] = 'Format d\'exportation';
$lang['line_ends'] = 'Les lignes se finissent par';
$lang['must_choose_export_format'] = 'Vous devez choisir un format d\'exportation.';
$lang['invalid_export_format'] = 'Format d\'exportation non valide';
$lang['no_exporter_found'] = 'Aucun filtre d\'exportation trouv<75>.';
$lang['error_performing_search'] = 'Une erreur est survenue lors de la recherche.';
$lang['showing_results_x_through_y'] = 'Affichage des r<>sultats %s <20> %s.';
$lang['searching'] = 'Recherche en cours...';
$lang['size_limit_exceeded'] = 'Attention, la taille limite de recherche est d<>pass<73>e.';
$lang['entry'] = 'Entr<74>e';
$lang['ldif_export_for_dn'] = 'Exportation LDIF pour : %s';
$lang['generated_on_date'] = 'G<>n<EFBFBD>r<EFBFBD> par phpLDAPadmin ( http://phpldapadmin.sourceforge.net/ ) pour %s';
$lang['total_entries'] = 'Entr<74>es totales';
$lang['dsml_export_for_dn'] = 'Exportation DSLM pour : %s';
$lang['include_system_attrs'] = 'Inclure les attributs syst<73>me';
$lang['csv_spreadsheet'] = 'CSV (feuille de calcul)';
// logins
$lang['password_blank'] = 'Vous avez laiss<73> le mot de passe vide.';
$lang['no_one_logged_in'] = 'Personne n\'est connect<63> sur ce serveur.';
$lang['could_not_logout'] = 'Impossible de se d<>connecter.';
$lang['unknown_auth_type'] = 'auth_type inconnu : %s';
$lang['logged_out_successfully'] = 'D<>connexion du serveur avec succ<63>s <b>%s</b>';
$lang['authenticate_to_server'] = 'Authentification aupr<70>s du serveur %s';
$lang['warning_this_web_connection_is_unencrypted'] = 'Avertissement : la connexion Web n\'est pas chiffr<66>.';
$lang['not_using_https'] = 'Vous n\'utilisez pas <20> https <20>. Le navigateur Web transmettra les informations de connexion en clair.';
$lang['login_dn'] = 'DN de connexion';
$lang['user_name'] = 'Nom d\'utilisateur';
$lang['password'] = 'Mot de passe';
$lang['authenticate'] = 'Authentification';
$lang['login_not_allowed'] = 'D<>sol<6F>, vous n\'<27>tes pas autoris<69> <20> utiliser phpLDAPadmin avec ce serveur LDAP.';
// Entry browser
$lang['entry_chooser_title'] = 'S<>lecteur d\'entr<74>es';
// Index page
$lang['need_to_configure'] = 'Vous avez besoin de configurer phpLDAPadmin. <20>ditez le fichier <20> config.php <20> pour le faire. un exemple de fichier de configuration est fournit dans <20> config.php.example <20>';
// Mass deletes
$lang['no_deletes_in_read_only'] = 'Supprimer n\'est pas autoris<69> en lecture seule.';
$lang['error_calling_mass_delete'] = 'Erreur lors de l\'applel de mass_delete.php. Il manque mass_delete dans les variables POST.';
$lang['mass_delete_not_array'] = 'La variable POST mass_delete n\'est pas un tableau.';
$lang['mass_delete_not_enabled'] = 'La suppression de masse n\'est pas activ<69>. Veuillez l\'activer dans config.php avant de proc<6F>der.';
$lang['mass_deleting'] = 'Suppression de masse';
$lang['mass_delete_progress'] = 'Progression de la suppression sur le serveur <20> %s <20>';
$lang['malformed_mass_delete_array'] = 'Tableau mass_delete malform<72>.';
$lang['no_entries_to_delete'] = 'Vous n\'avez s<>lectionn<6E> aucune entr<74>es <20> supprimer.';
$lang['deleting_dn'] = 'Suppression de %s';
$lang['total_entries_failed'] = '%s sur %s entr<74>es n\'ont pu <20>tre effac<61>es.';
$lang['all_entries_successful'] = 'Toutes les entr<74>es ont <20>t<EFBFBD> supprim<69>es avec succ<63>s.';
$lang['confirm_mass_delete'] = 'Confirmer la suppression de masse de %s entr<74>es sur le serveur %s';
$lang['yes_delete'] = 'Oui, supprimer !';
// Renaming entries
$lang['non_leaf_nodes_cannot_be_renamed'] = 'Vous ne pouvez renommer une entr<74>e qui a des sous-entr<74>es (cad, l\'op<6F>ration de renommage n\'est pas autoris<69> sur des entr<74>es non terminales)';
$lang['no_rdn_change'] = 'Vous n\'avez pas modifi<66> le RDN';
$lang['invalid_rdn'] = 'Valeur RDN non valide';
$lang['could_not_rename'] = 'Impossible de renommer l\'entr<74>e';
// Password checker
$lang['passwords_match'] = 'Correspondance du mot de passe !';
$lang['passwords_do_not_match'] = 'Les mots de passe ne correspondent pas !';
$lang['password_checker_tool'] = 'Outil de v<>rification de mot de passe';
$lang['to'] = 'Vers';
// Templates
$lang['using'] = 'En utilisant le';
$lang['switch_to'] = 'Vous pouvez basculer vers ';
$lang['default_template'] = 'mod<6F>le par d<>faut';
// template_config
$lang['user_account'] = 'Compte utilisateur (posixAccount)';
$lang['address_book_inet'] = 'Entr<74>e de carnet d\'adresses (inetOrgPerson)';
$lang['address_book_moz'] = 'Entr<74>e de carnet d\'adresses (mozillaOrgPerson)';
$lang['kolab_user'] = 'Entr<74>e d\'utilisateur Kolab';
$lang['organizational_unit'] = 'Unit<69> organisationnelle';
$lang['new_organizational_unit'] = 'Nouvelle unit<69> organisationnelle';
$lang['organizational_role'] = 'R<>le organisationnel';
$lang['posix_group'] = 'Groupe Posix';
$lang['samba_machine'] = 'Machine NT Samba';
$lang['samba3_machine'] = 'Machine NT Samba 3';
$lang['samba_user'] = 'Utilisateur Samba';
$lang['samba3_user'] = 'Utilisateur Samba 3';
$lang['samba3_group'] = 'Groupe de mappage Samba 3';
$lang['dns_entry'] = 'Entr<74>e DNS';
$lang['simple_sec_object'] = 'Object de s<>curit<69> simple';
$lang['courier_mail_account'] = 'Compte de messagerie';
$lang['courier_mail_alias'] = 'Alias de compte de messagerie';
$lang['ldap_alias'] = 'Alias LDAP';
$lang['sendmail_cluster'] = 'Cluster Sendmail';
$lang['sendmail_domain'] = 'Domaine Sendmail';
$lang['sendmail_alias'] = 'Alias Sendmail';
$lang['sendmail_virt_dom'] = 'Domaine virtuel Sendmail';
$lang['sendmail_virt_users'] = 'Utilisateurs virtuels Sendmail';
$lang['sendmail_relays'] = 'Relais Sendmail';
$lang['custom'] = 'personnalis<69>';
$lang['samba_domain_name'] = 'Mon nom de domaine Samba';
$lang['administrators'] = 'Administrateurs';
$lang['users'] = 'Utilisateurs';
$lang['guests'] = 'Invit<69>s';
$lang['power_users'] = 'Utilisateurs avec pouvoir';
$lang['account_ops'] = 'Op<4F>rateurs de comptes';
$lang['server_ops'] = 'Op<4F>rateurs de serveurs';
$lang['print_ops'] = 'Op<4F>rateurs d\'impression';
$lang['backup_ops'] = 'Op<4F>rateurs de sauvegarde';
$lang['replicator'] = 'Duplicateurs';
$lang['unable_smb_passwords'] = ' Impossible de cr<63>er les mots de passe Samba. Veuillez v<>rifier la configuration dans template_config.php';
$lang['err_smb_conf'] = 'Erreur : vous avez une erreur dans votre confguration Samba.';
$lang['err_smb_no_name_sid'] = 'Erreur : un nom et un sid doivent <20>tre fournit pour votre domaine Samba.';
$lang['err_smb_no_name'] = 'Erreur : aucun nom fournit pour le domaine Samba.';
$lang['err_smb_no_sid'] = 'Erreur : aucun sid fournit pour le domaine Samba.';
// Samba Account Template
$lang['samba_account'] = 'Compte Samba';
$lang['samba_account_lcase'] = 'compte samba';
// New User (Posix) Account
$lang['t_new_user_account'] = 'Nouveau compte utilisateur';
$lang['t_hint_customize'] = 'astuce : pour personnaliser ce mod<6F>le, <20>ditez le fichier templates/creation/new_user_template.php';
$lang['t_name'] = 'Nom';
$lang['t_first_name'] = 'Pr<50>nom';
$lang['t_last_name'] = 'Nom de famille';
$lang['t_first'] = 'premier';
$lang['t_last'] = 'dernier';
$lang['t_state'] = '<27>tat';
$lang['t_common_name'] = 'Nom commun';
$lang['t_user_name'] = 'Nom d\'utilisateur';
$lang['t_password'] = 'Mot de passe';
$lang['t_encryption'] = 'Chiffrement';
$lang['t_login_shell'] = 'Shell de connexion';
$lang['t_home_dir'] = 'Dossier personnel';
$lang['t_uid_number'] = 'UID';
$lang['t_auto_det'] = '(d<>termin<69> automatiquement)';
$lang['t_group'] = 'Groupe';
$lang['t_gid_number'] = 'GID';
$lang['t_uid'] = 'ID utilisateur';
$lang['t_err_passwords'] = 'Vos mots de passe ne correspondent pas. Veuillez revenir et r<>essayer.';
$lang['t_err_field_blank'] = 'Vous ne pouvez laisser %s vide. Veuillez revenir et r<>essayer.';
$lang['t_err_field_num'] = 'Vous ne pouvez entrez que des valeurs num<75>riques pour le champ %s. Veuillez revenir et r<>essayer.';
$lang['t_err_bad_container'] = 'Le conteneur que vous avez sp<73>cifi<66> (%s) n\'existe pas. Veuillez revenir et r<>essayer.';
$lang['t_confirm_account_creation'] = 'Confirmer la cr<63>ation du compte';
$lang['t_secret'] = '[secret]';
$lang['t_create_account'] = 'Cr<43>er un compte';
$lang['t_verify'] = 'V<>rifier';
// New Group (Posix)
$lang['t_new_posixgroup'] = 'Nouveau groupe Posix';
// New Address Template
$lang['t_new_address'] = 'Nouvelle entr<74>e de carnet d\'adresses';
$lang['t_organization'] = 'Organisation';
$lang['t_address'] = 'Adresse';
$lang['t_city'] = 'Ville';
$lang['t_postal_code'] = 'Code postal';
$lang['t_street'] = 'Rue';
$lang['t_work_phone'] = 'T<>l<EFBFBD>phone (bureau)';
$lang['t_fax'] = 'Fax';
$lang['t_mobile'] = 'Mobile';
$lang['t_email'] = 'Courriel';
$lang['t_container'] = 'Conteneur';
$lang['t_err_cn_blank'] = 'Vousne pouvez pas laissez le Nom commun vide. Veuiller revenir er r<>essayer.';
$lang['t_confim_creation'] = 'Confirmer la cr<63>ation de l\'entr<74>e :';
$lang['t_create_address'] = 'Cr<43>er l\'adresse';
// default template
$lang['t_check_pass'] = 'V<>rifier l\'adresse...';
$lang['t_auto_submit'] = '(<28>valuation automatique lors de la soumission.)';
// compare form
$lang['compare'] = 'Comparer';
$lang['comparing'] = 'Compararaison des DNs suivants';
$lang['compare_dn'] = 'Comparer un autre DN avec';
$lang['with'] = 'avec ';
$lang['compf_source_dn'] = 'DN source';
$lang['compf_dn_tooltip'] = 'Comparer cn DN avec un autre';
$lang['switch_entry'] = 'Basculer l\'entr<74>e';
$lang['no_value'] = 'Aucune valeur';
$lang['compare_with'] = 'Comparer avec une autre entr<74>e';
$lang['need_oclass'] = 'Vous avez besoin d\'un autre ObjectClass(es) pour ajouter cet attribut %s.';
// Time out page
$lang['session_timed_out_1'] = 'Votre session s\'est termin<69> avec';
$lang['session_timed_out_2'] = 'min. d\'inactivit<69>. Vous avez <20>t<EFBFBD> automatiquement d<>connect<63>.';
$lang['log_back_in'] = 'Pour vous reconnecter, veuillez cliquer sur le lien suivant :';
$lang['session_timed_out_tree'] = '(Session expir<69>e. D<>connexion automatique.)';
$lang['timeout_at'] = 'L\'inactivit<69> vous d<>connectera <20> %s';
?>

View File

@@ -1,556 +0,0 @@
<?php
/*
* hu.php, based on en.php CVS-Version 1.65
* hungarian translation by VOROSBARANYI Zoltan <http://vbzo.li/>
* with help from SIPOS Agnes <sa exfructu net>
* $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/hu.php,v 1.1 2004/05/23 21:12:03 i18phpldapadmin Exp $
*/
/* --- INSTRUCTIONS FOR TRANSLATORS ---
*
* If you want to write a new language file for your language,
* please submit the file on SourceForge:
*
* https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498548
*
* Use the option "Check to Upload and Attach a File" at the bottom
*
* Thank you!
*
*/
/*
* The $lang array contains all the strings that phpLDAPadmin uses.
* Each language file simply defines this aray with strings in its
* language.
*/
// Search form
$lang['simple_search_form_str'] = 'Egyszerű keresési űrlap'; // 'Simple Search Form';
$lang['advanced_search_form_str'] = 'Részletes keresési űrlap'; //'Advanced Search Form';
$lang['server'] = 'Kiszolgáló'; //'Server';
$lang['search_for_entries_whose'] = 'Bejegyzések keresése ahol'; //'Search for entries whose';
$lang['base_dn'] = 'Alap-DN'; //'Base DN';
$lang['search_scope'] = 'A keresés hatásköre'; //'Search Scope';
$lang['show_attributes'] = 'Megjelenítendő attribútumok'; //'Show Attributtes';
$lang['Search'] = 'Keresés'; //'Search';
$lang['predefined_search_str'] = 'Előre definiált keresés kiválasztása'; //'Select a predefined search';
$lang['predefined_searches'] = 'Előre definiált keresések'; //'Predefined Searches';
$lang['no_predefined_queries'] = 'Nincs keresés definiálva a config.php-ben.'; //'No queries have been defined in config.php.';
// Tree browser
$lang['request_new_feature'] = 'Új tulajdonság kérése'; //'Request a new feature';
$lang['report_bug'] = 'Hiba jelentése'; //'Report a bug';
$lang['schema'] = 'séma'; //'schema';
$lang['search'] = 'keresés'; //'search';
$lang['create'] = 'létrehozás'; //'create';
$lang['info'] = 'infó'; //'info';
$lang['import'] = 'import'; //'import';
$lang['refresh'] = 'frissítés'; //'refresh';
$lang['logout'] = 'kilépés'; //'logout';
$lang['create_new'] = 'Új bejegyzés'; //'Create New';
$lang['view_schema_for'] = 'Séma megtekintése:'; //'View schema for';
$lang['refresh_expanded_containers'] = 'Az összes kiterjesztett tároló frissítése:'; //'Refresh all expanded containers for';
$lang['create_new_entry_on'] = 'Új bejegyzés létrehozása:'; //'Create a new entry on';
$lang['new'] = 'új'; //'new';
$lang['view_server_info'] = 'A kiszolgáló információinak megtekintése'; //'View server-supplied information';
$lang['import_from_ldif'] = 'LDIF-állományból bejegyzések importálása'; //'Import entries from an LDIF file';
$lang['logout_of_this_server'] = 'Kilépés ebből a kiszolgálóból'; //'Logout of this server';
$lang['logged_in_as'] = 'Belépve mint'; //'Logged in as: ';
$lang['read_only'] = 'csak olvasható'; //'read only';
$lang['read_only_tooltip'] = 'A phpLDAPadmin adminisztrátora ezt az attribútumot csak olvashatóra állította'; //'This attribute has been flagged as read only by the phpLDAPadmin administrator';
$lang['could_not_determine_root'] = 'Nem tudom megállapítani az LDAP-fa gyökerét.'; //'Could not determine the root of your LDAP tree.';
$lang['ldap_refuses_to_give_root'] = 'Az LDAP-kiszolgálót úgy konfigurálták, hogy ne fedje föl az LDAP-fa gyökerét.'; //'It appears that the LDAP server has been configured to not reveal its root.';
$lang['please_specify_in_config'] = 'Kérem adja meg a config.php-ban'; //'Please specify it in config.php';
$lang['create_new_entry_in'] = 'Új bejegyzés létrehozása:'; //'Create a new entry in';
$lang['login_link'] = 'Belépés...'; //'Login...';
$lang['login'] = 'belépés'; //'login';
// Entry display
$lang['delete_this_entry'] = 'A bejegyzés törlése'; //'Delete this entry';
$lang['delete_this_entry_tooltip'] = 'Ezt a döntést majd még meg kell erősíteni'; //'You will be prompted to confirm this decision';
$lang['copy_this_entry'] = 'A bejegyzés másolása'; //'Copy this entry';
$lang['copy_this_entry_tooltip'] = 'Az objektum másolása más helyre új DN-nel és/vagy másik kiszolgálóra'; //'Copy this object to another location, a new DN, or another server';
$lang['export'] = 'Exportálás'; //'Export';
$lang['export_tooltip'] = 'Az objektum kiírása'; //'Save a dump of this object';
$lang['export_subtree_tooltip'] = 'Az objektum és az összes gyermekének kiírása'; //'Save a dump of this object and all of its children';
$lang['export_subtree'] = 'Részfa exportálása'; //'Export subtree';
$lang['create_a_child_entry'] = 'Gyermekbejegyzés létrehozása'; //'Create a child entry';
$lang['rename_entry'] = 'A bejegyzés átnevezése'; 'Rename Entry';
$lang['rename'] = 'Átnevezés'; //'Rename';
$lang['add'] = 'Hozzáadás'; //'Add';
$lang['view'] = 'Megtekintés'; //'View';
$lang['view_one_child'] = 'A gyermek megtekintése (1 darab)'; //'View 1 child';
$lang['view_children'] = 'A gyermekek megtekintése (%s darab)'; //'View %s children';
$lang['add_new_attribute'] = 'Új attribútum hozzáadása'; //'Add new attribute';
$lang['add_new_objectclass'] = 'Új objektumosztály hozzáadása'; //'Add new ObjectClass';
$lang['hide_internal_attrs'] = 'Belső attribútumok elrejtése'; //'Hide internal attributes';
$lang['show_internal_attrs'] = 'Belső attribútumok megjelenítése'; //'Show internal attributes';
$lang['attr_name_tooltip'] = 'Kattintással megjelenik a(z) %s attribútumtípus sémabeli definíciója'; //'Click to view the schema defintion for attribute type \'%s\'';
$lang['none'] = 'nincs'; //'none';
$lang['no_internal_attributes'] = 'Nincs belső attribútum'; //'No internal attributes';
$lang['no_attributes'] = 'A bejegyzésnek nincs attribútuma'; //'This entry has no attributes';
$lang['save_changes'] = 'Változások mentése'; //'Save Changes';
$lang['add_value'] = 'érték hozzáadása'; //'add value';
$lang['add_value_tooltip'] = 'Érték hozzáadása a(z) %s attribútumhoz'; //'Add an additional value to attribute \'%s\'';
$lang['refresh_entry'] = 'Frissítés'; //'Refresh';
$lang['refresh_this_entry'] = 'Bejegyzés frissítése'; //'Refresh this entry';
$lang['delete_hint'] = 'Tipp: Az attribútum törléséhez előbb törölje a mezőt, majd kattintson a változtatások mentésére.'; //'Hint: To delete an attribute, empty the text field and click save.';
$lang['attr_schema_hint'] = 'Tipp: Az attribútum sémájának megtekintéséhez kattintson az attribútum nevére.'; //'Hint: To view the schema for an attribute, click the attribute name.';
$lang['attrs_modified'] = 'Módosult néhány attribútum (%s), s ezek kiemelve szerepelnek az alábbiakban.'; //'Some attributes (%s) were modified and are highlighted below.';
$lang['attr_modified'] = 'Módosult egy attribútum (%s), s ez kiemelve szerepel az alábbiakban. '; //'An attribute (%s) was modified and is highlighted below.';
$lang['viewing_read_only'] = 'A bejegyzés megtekintése csak olvasható üzemmódban.'; //'Viewing entry in read-only mode.';
$lang['no_new_attrs_available'] = 'a bejegyzéshez nem tartozik új attribútum'; //'no new attributes available for this entry';
$lang['no_new_binary_attrs_available'] = 'a bejegyzéshez nem tartozik új bináris attribútum'; //'no new binary attributes available for this entry';
$lang['binary_value'] = 'Bináris érték'; //'Binary value';
$lang['add_new_binary_attr'] = 'Új bináris attribútum hozzáadása'; //'Add new binary attribute';
$lang['alias_for'] = 'Megj.: A(z) %s egy álneve (aliasa) a(z) %s attribútumnak'; //'Note: \'%s\' is an alias for \'%s\'';
$lang['download_value'] = 'érték letöltése'; //'download value';
$lang['delete_attribute'] = 'attribútum törlése'; //'delete attribute';
$lang['true'] = 'igaz'; //'true';
$lang['false'] = 'hamis'; //'false';
$lang['none_remove_value'] = 'nincs, érték törése'; //'none, remove value';
$lang['really_delete_attribute'] = 'Attribútum tényleges törlése'; //'Really delete attribute';
$lang['add_new_value'] = 'Új érték hozzáadása'; //'Add New Value';
// Schema browser
$lang['the_following_objectclasses'] = 'A következő objektumosztályokat (objectClass) támogatja ez a kiszolgáló.'; //'The following objectClasses are supported by this LDAP server.';
$lang['the_following_attributes'] = 'A következő attribútumtípusokat (attributeType) támogatja ez a kiszolgáló.'; //'The following attributeTypes are supported by this LDAP server.';
$lang['the_following_matching'] = 'A következő illesztőszabályokat (matching rule) támogatja ez a kiszolgáló.'; //'The following matching rules are supported by this LDAP server.';
$lang['the_following_syntaxes'] = 'A következő szintaxisokat (syntax) támogatja ez a kiszolgáló.'; //'The following syntaxes are supported by this LDAP server.';
$lang['schema_retrieve_error_1']= 'A kiszolgáló nem beszéli elég jól az LDAP-protokollt'; //'The server does not fully support the LDAP protocol.';
$lang['schema_retrieve_error_2']= 'Ez a PHP-verzió nem tudja szabályosan végrehajtani a keresést.'; //'Your version of PHP does not correctly perform the query.';
$lang['schema_retrieve_error_3']= 'Vagy végül is a phpLDAPadmin nem tudja hogyan kell a sémát letölteni erről a kiszolgálóról.'; //'Or lastly, phpLDAPadmin doesn\'t know how to fetch the schema for your server.';
$lang['jump_to_objectclass'] = 'Ugrás az objektumosztályhoz'; //'Jump to an objectClass';
$lang['jump_to_attr'] = 'Ugrás az attribútumtípushoz'; //'Jump to an attribute type';
$lang['jump_to_matching_rule'] = 'Ugrás az illesztőszabályhoz'; //'Jump to a matching rule';
$lang['schema_for_server'] = 'Séma:'; //'Schema for server';
$lang['required_attrs'] = 'Kötelező attribútumok'; //'Required Attributes';
$lang['optional_attrs'] = 'Opcionális attribútumok'; //'Optional Attributes';
$lang['optional_binary_attrs'] = 'Opcionális bináris attribútumok'; //'Optional Binary Attributes';
$lang['OID'] = 'OID'; //'OID';
$lang['aliases']='Álnevek (alias)'; //'Aliases';
$lang['desc'] = 'Leírás'; //'Description';
$lang['no_description'] = 'nincs leírás'; //'no description';
$lang['name'] = 'Név'; //'Name';
$lang['equality']='Egyenlőség'; //'Equality';
$lang['is_obsolete'] = 'Ez az objektumosztály maradi'; //'This objectClass is obsolete.';
$lang['inherits'] = 'Kitől öröklődik'; //'Inherits from';
$lang['inherited_from'] = 'Kitől örökölte:'; //'Inherited from';
$lang['parent_to'] = 'Kinek a szülője'; //'Parent to';
$lang['jump_to_this_oclass'] = 'Ugrás ehhez az objektumosztály-definícióhoz'; //'Jump to this objectClass definition';
$lang['matching_rule_oid'] = 'Illesztőszabály-OID'; //'Matching Rule OID';
$lang['syntax_oid'] = 'Szintaxis-OID'; //'Syntax OID';
$lang['not_applicable'] = 'nem alkalmazható'; //'not applicable';
$lang['not_specified'] = 'nincs megadva'; //'not specified';
$lang['character'] = 'karakter'; //'character';
$lang['characters'] = 'karakter'; //'characters';
$lang['used_by_objectclasses'] = 'Mely osztályok használják'; //'Used by objectClasses';
$lang['used_by_attributes'] = 'Mely attribútumok használják'; //'Used by Attributes';
$lang['maximum_length'] = 'Maximális hossz'; //'Maximum Length';
$lang['attributes'] = 'Attribútumtípusok';//'Attribute Types';
$lang['syntaxes'] = 'Szintaxisok'; //'Syntaxes';
$lang['matchingrules'] = 'Illesztőszabályok'; //'Matching Rules';
$lang['oid'] = 'OID'; //'OID';
$lang['obsolete'] = 'Maradi'; //'Obsolete';
$lang['ordering'] = 'Sorbarendezés'; //'Ordering';
$lang['substring_rule'] = 'Alfüzér-szabály'; //'Substring Rule';
$lang['single_valued'] = 'Egyértékű'; //'Single Valued';
$lang['collective'] = 'Kollektív'; //'Collective';
$lang['user_modification'] = 'Felhasználó-módosítás'; //'User Modification';
$lang['usage'] = 'Használat'; //'Usage';
$lang['could_not_retrieve_schema_from'] = 'Nem tudom a sémát elérni,'; //'Could not retrieve schema from';
$lang['type']='Típus'; //'Type';
// Deleting entries
$lang['entry_deleted_successfully'] = 'A(z) %s bejegyzés sikeresen törölve.'; //'Entry %s deleted successfully.';
$lang['you_must_specify_a_dn'] = 'A DN-t meg kell adni'; //'You must specify a DN';
$lang['could_not_delete_entry'] = 'Nem tudom a(z) %s bejegyzést törölni'; //'Could not delete the entry: %s';
$lang['no_such_entry'] = 'Nincs ilyen bejegyzés: %s'; //'No such entry: %s';
$lang['delete_dn'] = 'A(z) %s törlése'; //'Delete %s';
$lang['permanently_delete_children'] = 'Az összes gyermeket is töröljem?'; //'Permanently delete all children also?';
$lang['entry_is_root_sub_tree'] = 'Ez a bejegyzés egy %s bejegyzést tartalmazó részfa gyökere.'; //'This entry is the root of a sub-tree containing %s entries.';
$lang['view_entries'] = 'bejegyzések megtekintése'; //'view entries';
$lang['confirm_recursive_delete'] = 'Rekurzív módon törölhetem ezt a bejegyzést, és mind a(z) %s gyermekét. Lásd alul a bejegyzéseket, amelyeket törölnék. Óhajtja törölni?'; //'phpLDAPadmin can recursively delete this entry and all %s of its children. See below for a list of all the entries that this action will delete. Do you want to do this?';
$lang['confirm_recursive_delete_note'] = 'Megj.: Ez a törlés veszélyes lehet. A műveletet nem lehet visszavonni!'; //'Note: this is potentially very dangerous and you do this at your own risk. This operation cannot be undone. Take into consideration aliases, referrals, and other things that may cause problems.';
$lang['delete_all_x_objects'] = 'Mind a(z) %s objektum törlése'; //'Delete all %s objects';
$lang['recursive_delete_progress'] = 'A rekurzív törlés folyamatban'; //'Recursive delete progress';
$lang['entry_and_sub_tree_deleted_successfully'] = 'A(z) %s bejegyzés és a részfa sikeresen törölve.'; //'Entry %s and sub-tree deleted successfully.';
$lang['failed_to_delete_entry'] = 'A(z) %s bejegyzés törlése sikertelen'; //'Failed to delete entry %s';
$lang['list_of_entries_to_be_deleted'] = 'A törlendő bejegyzések listája:'; //'List of entries to be deleted:';
$lang['sure_permanent_delete_object']='Biztos törölni óhajtja ezt az objektumot?'; //'Are you sure you want to permanently delete this object?';
$lang['dn'] = 'DN'; //'DN';
// Deleting attributes
$lang['attr_is_read_only'] = 'A(z) %s attribútum csak olvasható a phpLDAPadmin konfigurációja szerint.'; //'The attribute "%s" is flagged as read-only in the phpLDAPadmin configuration.';
$lang['no_attr_specified'] = 'Nincs megadva az attribútumnév.'; //'No attribute name specified.';
$lang['no_dn_specified'] = 'Nincs megadva a DN'; //'No DN specified';
// Adding attributes
$lang['left_attr_blank'] = 'Az attribútumértéket üresen hagyta. Kérem lépjen vissza és próbálja újra.'; //'You left the attribute value blank. Please go back and try again.';
$lang['failed_to_add_attr'] = 'Nem tudtam az attribútumot hozzáadni.'; //'Failed to add the attribute.';
$lang['file_empty'] = 'A kiválasztott állomány vagy üres, vagy nem létezik. Kérem lépjen vissza és próbálja újra.'; //'The file you chose is either empty or does not exist. Please go back and try again.';
$lang['invalid_file'] = 'Biztonsági hiba: a feltöltendő állomány veszélyes elemeket tartalmazhat.'; //'Security error: The file being uploaded may be malicious.';
$lang['warning_file_uploads_disabled'] = 'A PHP-konfiguráció tiltja az állományok feltöltését. Kérem ellenőrizze a php.ini állományt.'; //'Your PHP configuration has disabled file uploads. Please check php.ini before proceeding.';
$lang['uploaded_file_too_big'] = 'A feltöltött állomány túl nagy. Kérem ellenőrizze a php.ini állományban a upload_max_size beállítást.'; //'The file you uploaded is too large. Please check php.ini, upload_max_size setting';
$lang['uploaded_file_partial'] = 'A kiválasztott állomány csak részben töltődött föl valószínűleg hálózati hiba miatt.'; //'The file you selected was only partially uploaded, likley due to a network error.';
$lang['max_file_size'] = 'Maximális állományméret: %s'; //'Maximum file size: %s';
// Updating values
$lang['modification_successful'] = 'A módosítás sikerült!'; //'Modification successful!';
$lang['change_password_new_login'] = 'Mivel megváltoztatta a jelszót most újra be kell jelentkeznie az új jelszóval.'; //'Since you changed your password, you must now login again with your new password.';
// Adding objectClass form
$lang['new_required_attrs'] = 'Új kötelező attribútumok'; //'New Required Attributes';
$lang['requires_to_add'] = 'Ez a művelet megközeveteli hogy hozzáadjon'; //'This action requires you to add';
$lang['new_attributes'] = 'új attribútumo(ka)t'; //'new attributes';
$lang['new_required_attrs_instructions'] = 'Az új objektumosztály hozzáadásához'; //'Instructions: In order to add this objectClass to this entry, you must specify';
$lang['that_this_oclass_requires'] = 'kell megadni ezen az űrlapon.'; //'that this objectClass requires. You can do so in this form.';
$lang['add_oclass_and_attrs'] = 'Objektumosztály és attribútumok hozzáadása'; //'Add ObjectClass and Attributes';
$lang['objectclasses'] = 'Objektumosztályok'; //'ObjectClasses';
// General
$lang['chooser_link_tooltip'] = 'Kattintásra egy új ablak jön föl, amelyben egy bejegyzést választhat a DN alapján.'; //'Click to popup a dialog to select an entry (DN) graphically';
$lang['no_updates_in_read_only_mode'] = 'Nem lehet módosítani mikor a kiszolgáló csak olvasható üzemmódban van'; //'You cannot perform updates while server is in read-only mode';
$lang['bad_server_id'] = 'Hibás kiszolgáló-azonosító'; //'Bad server id';
$lang['not_enough_login_info'] = 'Kevés az adat a belépéshez. Kérem ellenőrizze a konfigurációt.'; //'Not enough information to login to server. Please check your configuration.';
$lang['could_not_connect'] = 'Nem tudok csatlakozni az LDAP-kiszolgálóhoz.'; //'Could not connect to LDAP server.';
$lang['could_not_connect_to_host_on_port'] = 'Nem tudok csatlakozni a(z) %s géphez a(z) %s porton.'; //'Could not connect to "%s" on port "%s"';
$lang['could_not_perform_ldap_mod_add'] = 'Nem tudom végrehajtani az ldap_mod_add műveletet.'; //'Could not perform ldap_mod_add operation.';
$lang['bad_server_id_underline'] = 'Hibás kiszolgáló-azonosító: '; //'Bad server_id: ';
$lang['success'] = 'Siker'; //'Success';
$lang['server_colon_pare'] = 'Kiszolgáló: '; //'Server: ';
$lang['look_in'] = 'Keresés itt: '; //'Looking in: ';
$lang['missing_server_id_in_query_string'] = 'Nincs megadva a kiszolgáló-azonosító a keresési füzérben!'; //'No server ID specified in query string!';
$lang['missing_dn_in_query_string'] = 'Nincs megadva a DN a keresési füzérben!'; //'No DN specified in query string!';
$lang['back_up_p'] = 'Vissza...'; //'Back Up...';
$lang['no_entries'] = 'nics bejegyzés'; //'no entries';
$lang['not_logged_in'] = 'Nincs belépve'; //'Not logged in';
$lang['could_not_det_base_dn'] = 'Nem tudom az alap-DN-t meghatározni'; //'Could not determine base DN';
$lang['please_report_this_as_a_bug'] = 'Kérjük jelentse ezt a hibát.'; //'Please report this as a bug.';
$lang['reasons_for_error'] = 'Ez több dolog miatt történhet, például:'; //'This could happen for several reasons, the most probable of which are:';
$lang['yes'] = 'Igen'; //'Yes';
$lang['no'] = 'Nem'; //'No';
$lang['go'] = 'Mehet'; //'Go';
$lang['delete'] = 'Törlés'; //'Delete';
$lang['back'] = 'Vissza'; //'Back';
$lang['object'] = 'objektum'; //'object';
$lang['delete_all'] = 'Minden törlése'; //'Delete all';
$lang['url_bug_report'] = 'https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498546'; //'https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498546';
$lang['hint'] = 'tipp'; //'hint';
$lang['bug'] = 'hiba'; //'bug';
$lang['warning'] = 'figyelmeztetés'; //'warning';
$lang['light'] = 'lámpa'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = 'Tovább &gt;&gt;'; //'Proceed &gt;&gt;';
// Add value form
$lang['add_new'] = 'Új'; //'Add new';
$lang['value_to'] = 'érték, RDN:'; //'value to';
$lang['distinguished_name'] = 'Megkülönböztető név (DN)'; //'Distinguished Name';
$lang['current_list_of'] = 'Az aktuális lista'; //'Current list of';
$lang['values_for_attribute'] = 'értéket tartalmaz. Attribútum:'; //'values for attribute';
$lang['inappropriate_matching_note'] = 'Megj.: Ha nincs beállítva EGYENLŐSÉG-szabály ehhez az attribútumhoz a kiszolgáló az ún. inappropriate matching hibát adja vissza.'; //'Note: You will get an "inappropriate matching" error if you have not setup an EQUALITY rule on your LDAP server for this attribute.';
$lang['enter_value_to_add'] = 'Adja meg a kívánt értéket:'; //'Enter the value you would like to add:';
$lang['new_required_attrs_note'] = 'Megj.: Lehet hogy új kötelező attribútumokat kell bevinnie ehhez az objektumosztályhoz'; //'Note: you may be required to enter new attributes that this objectClass requires';
$lang['syntax'] = 'Szintaxis'; //'Syntax';
//copy.php
$lang['copy_server_read_only'] = 'Nem lehet módosítást eszközölni amíg a kiszolgáló csak olvasható üzemmódban van'; //'You cannot perform updates while server is in read-only mode';
$lang['copy_dest_dn_blank'] = 'Üresen hagyta a cél-DN mezejét'; //'You left the destination DN blank.';
$lang['copy_dest_already_exists'] = 'A célbejegyzés (%s) már létezik.'; //'The destination entry (%s) already exists.';
$lang['copy_dest_container_does_not_exist'] = 'A cél-tároló (%s) nem létezik.'; //'The destination container (%s) does not exist.';
$lang['copy_source_dest_dn_same'] = 'A forrás- és cél-DN ugyanaz.'; //'The source and destination DN are the same.';
$lang['copy_copying'] = 'Másolás: '; //'Copying ';
$lang['copy_recursive_copy_progress'] = 'Rekurzív másolás folyamatban'; //'Recursive copy progress';
$lang['copy_building_snapshot'] = 'A fáról készítek egy pillanatfelvételt a másoláshoz... '; //'Building snapshot of tree to copy... ';
$lang['copy_successful_like_to'] = 'A másolás sikerült! Szeretné-e '; //'Copy successful! Would you like to ';
$lang['copy_view_new_entry'] = 'megtekinteni az új bejegyzést'; //'view the new entry';
$lang['copy_failed'] = 'A DN másolása nem sikerült: '; //'Failed to copy DN: ';
//edit.php
$lang['missing_template_file'] = 'Figyelem: hiányzik a mintaállomány.'; //'Warning: missing template file, ';
$lang['using_default'] = 'Az alapértelmezés használata.'; //'Using default.';
$lang['template'] = 'Minta'; //'Template';
$lang['must_choose_template'] = 'Választania kell egy mintát.'; //'You must choose a template';
$lang['invalid_template'] = 'A(z) %s hibás minta.'; //'%s is an invalid template';
$lang['using_template'] = 'használt minta:'; //'using template';
$lang['go_to_dn'] = 'Menj a(z) %s DN-hez'; //'Go to %s';
//copy_form.php
$lang['copyf_title_copy'] = 'Másolás: '; //'Copy ';
$lang['copyf_to_new_object'] = '; az új objektum'; //'to a new object';
$lang['copyf_dest_dn'] = 'Cél-DN'; //'Destination DN';
$lang['copyf_dest_dn_tooltip'] = 'A másolással létrejövő új bejegyzés teljes DN-je'; //'The full DN of the new entry to be created when copying the source entry';
$lang['copyf_dest_server'] = 'Célkiszolgáló'; //'Destination Server';
$lang['copyf_note'] = 'Tipp: A kiszolgálók közötti másolás csak akkor működik, ha nincs séma-sértés'; //'Hint: Copying between different servers only works if there are no schema violations';
$lang['copyf_recursive_copy'] = 'Az objektum összes gyermekeinek rekurzív másolása.'; //'Recursively copy all children of this object as well.';
$lang['recursive_copy'] = 'Rekurzív másolás'; //'Recursive copy';
$lang['filter'] = 'Szűrő'; //'Filter';
$lang['filter_tooltip'] = 'Rekurzív másolásnál csak azokat másolja le, amelyekre illik ez a szűrő'; //'When performing a recursive copy, only copy those entries which match this filter';
//create.php
$lang['create_required_attribute'] = 'A(z) %s kötelező attribútum értékét üresen hagyta.'; //'You left the value blank for required attribute (%s).';
$lang['redirecting'] = 'Átirányítás...'; //'Redirecting...';
$lang['here'] = 'ide'; //'here';
$lang['create_could_not_add'] = 'Nem tudom az objektumot létrehozni a kiszolgálón.'; //'Could not add the object to the LDAP server.';
//create_form.php
$lang['createf_create_object'] = 'Objektum létrehozása'; //'Create Object';
$lang['createf_choose_temp'] = 'Válasszon mintát'; //'Choose a template';
$lang['createf_select_temp'] = 'Válasszon mintát a létrehozási folyamathoz'; //'Select a template for the creation process';
$lang['createf_proceed'] = 'Tovább'; //'Proceed';
$lang['rdn_field_blank'] = 'Az RDN-mezőt üresen hagyta'; //'You left the RDN field blank.';
$lang['container_does_not_exist'] = 'A(z) %s tároló nem létezik. Kérem próbálja újra.'; //'The container you specified (%s) does not exist. Please try again.';
$lang['no_objectclasses_selected'] = 'Nem választott objektumosztályt ehhez az objektumhoz. Kérem lépjen vissza és válasszon egyet.'; //'You did not select any ObjectClasses for this object. Please go back and do so.';
$lang['hint_structural_oclass'] = 'Tipp: Legalább egy strukturális objektumosztályt kell választania'; //'Hint: You must choose at least one structural objectClass';
//creation_template.php
$lang['ctemplate_on_server'] = 'Kiszolgáló:'; //'On server';
$lang['ctemplate_no_template'] = 'Nincs megadva a minta a POST-változóban.'; //'No template specified in POST variables.';
$lang['ctemplate_config_handler'] = 'A konfiguráció egy kezelőt ad meg:'; //'Your config specifies a handler of';
$lang['ctemplate_handler_does_not_exist'] = 'ehhez a mintához. De ez a kezelő nincs a mintakönyvtárban.'; //'for this template. But, this handler does not exist in the templates/creation directory.';
$lang['create_step1'] = 'Első lépés: Név és objektumosztály(ok)'; //'Step 1 of 2: Name and ObjectClass(es)';
$lang['create_step2'] = 'Második lépés: Adja meg az attribútumokat és értékeiket'; //'Step 2 of 2: Specify attributes and values';
$lang['relative_distinguished_name'] = 'Viszonylagos megkülönböztető név (RDN)'; //'Relative Distinguished Name';
$lang['rdn'] = 'RDN'; //'RDN';
$lang['rdn_example'] = '(példa: cn=ÚjEmber)'; //'(example: cn=MyNewPerson)';
$lang['container'] = 'Tároló'; //'Container';
$lang['alias_for'] = 'A(z) %s álneve a(z) %s attribútumnévnek'; //'Alias for %s';
// search.php
$lang['you_have_not_logged_into_server'] = 'Nem lépett be a kiválasztott kiszolgálóba, s így nem tudok keresni.'; //'You have not logged into the selected server yet, so you cannot perform searches on it.';
$lang['click_to_go_to_login_form'] = 'Kattintson ide a belépési űrlap eléréséhez'; //'Click here to go to the login form';
$lang['unrecognized_criteria_option'] = 'Ismeretlen kritérium-opció: '; //'Unrecognized criteria option: ';
$lang['if_you_want_to_add_criteria'] = 'Ha kritériumot kíván adni a listához szerkessze meg a search.php-t, hogy kezelje le azokat. Most kilépek.'; //'If you want to add your own criteria to the list. Be sure to edit search.php to handle them. Quitting.';
$lang['entries_found'] = 'A megtalált bejegyzések: '; //'Entries found: ';
$lang['filter_performed'] = 'Használt szűrő: '; //'Filter performed: ';
$lang['search_duration'] = 'A phpLDAPadmin'; //'Search performed by phpLDAPadmin in';
$lang['seconds'] = 's alatt hajtotta végre a keresést'; //'seconds';
// search_form_advanced.php
$lang['scope_in_which_to_search'] = 'A keresés hatásköre'; //'The scope in which to search';
$lang['scope_sub'] = 'Az egész részfa'; //'Sub (entire subtree)';
$lang['scope_one'] = 'Egy szint az alap-DN alatt'; //'One (one level beneath base)';
$lang['scope_base'] = 'Csak az alap-DN'; //'Base (base dn only)';
$lang['standard_ldap_search_filter'] = 'Szabványos LDAP-szűrő, pl. (&(sn=Kovács)(givenname=István))'; //'Standard LDAP search filter. Example: (&(sn=Smith)(givenname=David))';
$lang['search_filter'] = 'Keresőszűrő'; //'Search Filter';
$lang['list_of_attrs_to_display_in_results'] = 'A megjelenítendő találatok attribútumainak vesszővel elválasztott listája'; //'A list of attributes to display in the results (comma-separated)';
$lang['show_attributes'] = 'Attribútumok megjelenítése'; //'Show Attributes';
// search_form_simple.php
$lang['search_for_entries_whose'] = 'Bejegyzések keresése, ahol:'; //'Search for entries whose:';
$lang['equals'] = 'egyenlő'; //'equals';
$lang['starts with'] = 'kezdet'; //'starts with';
$lang['contains'] = 'tartalmaz'; //'contains';
$lang['ends with'] = 'végződés'; //'ends with';
$lang['sounds like'] = 'hangzás'; //'sounds like';
// server_info.php
$lang['could_not_fetch_server_info'] = 'Nem tudom az információt letölteni a kiszolgálóról'; //'Could not retrieve LDAP information from the server';
$lang['server_info_for'] = 'Kiszolgáló-infó: '; //'Server info for: ';
$lang['server_reports_following'] = 'A kiszolgáló ezeket az információkat közölte önmagáról'; //'Server reports the following information about itself';
$lang['nothing_to_report'] = 'A kiszolgálónak nincs mit elküldenie'; //'This server has nothing to report.';
//update.php
$lang['update_array_malformed'] = 'Az update_array hibés. Ez a phpLDAPadmin hibája lehet, kérem jelentse.'; //'update_array is malformed. This might be a phpLDAPadmin bug. Please report it.';
$lang['could_not_perform_ldap_modify'] = 'Nem tudom elvégezni az ldap_modify műveletet.'; //'Could not perform ldap_modify operation.';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = 'Érvényesíteni kívánja a változásokat?'; //'Do you want to make these changes?';
$lang['attribute'] = 'Attribútumok'; //'Attribute';
$lang['old_value'] = 'Régi érték'; //'Old Value';
$lang['new_value'] = 'Új érték'; //'New Value';
$lang['attr_deleted'] = '[attribútum törölve]'; //'[attribute deleted]';
$lang['commit'] = 'Érvényesítés'; //'Commit';
$lang['cancel'] = 'Mégsem'; //'Cancel';
$lang['you_made_no_changes'] = 'Nem történt változtatás'; //'You made no changes';
$lang['go_back'] = 'Vissza'; //'Go back';
// welcome.php
$lang['welcome_note'] = 'A bal oldali menüvel tájékozódhat a programban'; //'Use the menu to the left to navigate';
$lang['credits'] = 'Köszönetnyilvánítás'; //'Credits';
$lang['changelog'] = 'Változtatások naplója'; //'ChangeLog';
$lang['donate'] = 'Adományozzon'; //'Donate';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Nem biztonságos állománynév: '; //'Unsafe file name: ';
$lang['no_such_file'] = 'Nincs ilyen állomány: '; //'No such file: ';
//function.php
$lang['auto_update_not_setup'] = 'Az auto_uid_numbers engedélyezett a konfigurációban a(z) <b>%s</b> kiszolgálóhoz, de az auto_uid_number_mechanism nincs megadva. Kérem írja be ezt az értéket.';
//'You have enabled auto_uid_numbers for <b>%s</b> in your configuration,
// but you have not specified the auto_uid_number_mechanism. Please correct
// this problem.';
$lang['uidpool_not_set'] = 'A konfigurációban az auto_uid_number_mechanism értéke uidpool a(z) <b>%s</b> kiszolgálóhoz, de nem adta meg az auto_uid_number_uid_pool_dn értékét. Kérem írja be ezt az értéket.';
//'You specified the "auto_uid_number_mechanism" as "uidpool"
// in your configuration for server <b>%s</b>, but you did not specify the
// audo_uid_number_uid_pool_dn. Please specify it before proceeding.';
$lang['uidpool_not_exist'] = 'A konfigurációban megadott uidPool nem létezik (%s).';
//'It appears that the uidPool you specified in your configuration ("%s")
// does not exist.';
$lang['specified_uidpool'] = 'A konfigurációban az auto_uid_number_mechanism értéke search a(z) <b>%s</b> kiszolgálóhoz, de nem adta meg az auto_uid_number_search_base értékét. Kérem írja be ezt az értéket.';
//'You specified the "auto_uid_number_mechanism" as "search" in your
// configuration for server <b>%s</b>, but you did not specify the
// "auto_uid_number_search_base". Please specify it before proceeding.';
$lang['auto_uid_invalid_credential'] = 'A bind művelet sikertelen a(z) <b>%s</b> kiszolgálóhoz az auto_uid használatával. Kérem ellenőrizze a konfigurációt. '; //'Unable to bind to <b>%s</b> with your with auto_uid credentials. Please check your configuration file.';
$lang['bad_auto_uid_search_base'] = 'A konfigurációban érvénytelen auto_uid_search_base van megadva a(z) <b>%s</b> kiszolgálóhoz.'; //'Your phpLDAPadmin configuration specifies an invalid auto_uid_search_base for server %s';
$lang['auto_uid_invalid_value'] = 'Érvénytelen értéket adott meg a auto_uid_number_mechanism-nak (%s). Csak uidpool és search a megengedett érték.';
//'You specified an invalid value for auto_uid_number_mechanism ("%s")
// in your configration. Only "uidpool" and "search" are valid.
// Please correct this problem.';
$lang['error_auth_type_config'] = 'Csak a session, cookie és config a megengedett értékek az auth_type-nak a konfigurációban. A megadott helytelen érték: %s.';
//'Error: You have an error in your config file. The only three allowed values
// for auth_type in the $servers section are \'session\', \'cookie\', and \'config\'. You entered \'%s\',
// which is not allowed. ';
$lang['php_install_not_supports_tls'] = 'Ez a PHP nem támogatja a TLS-t.'; //'Your PHP install does not support TLS.';
$lang['could_not_start_tls'] = 'Nem tudom a TLS-t elindítani. Kérem ellenőrizze az LDAP-kiszolgálót és a konfigurációt.'; //'Could not start TLS. Please check your LDAP server configuration.';
$lang['could_not_bind_anon'] = 'Az anonymous bind művelet nem sikerült.'; //'Could not bind anonymously to server.';
$lang['could_not_bind'] = 'A bind művelet sikertelen az LDAP-kiszolgálóhoz.'; //'Could not bind to the LDAP server.';
$lang['anonymous_bind'] = 'Anonymous bind'; //'Anonymous Bind';
$lang['bad_user_name_or_password'] = 'Helytelen felhasználónév vagy jelszó. Kérem próbálja újra.'; //'Bad username or password. Please try again.';
$lang['redirecting_click_if_nothing_happens'] = 'Átirányítás... kérem kattintson ide, ha semmi sem történik.'; //'Redirecting... Click here if nothing happens.';
$lang['successfully_logged_in_to_server'] = 'A(z) %s kiszolgálóhoz sikeresen bejelentkezett.'; //'Successfully logged into server <b>%s</b>';
$lang['could_not_set_cookie'] = 'Nem tudok sütit beállítani.'; //'Could not set cookie.';
$lang['ldap_said'] = 'Az LDAP ezt mondta: %s'; //'LDAP said: %s';
$lang['ferror_error'] = 'Hiba'; //'Error';
$lang['fbrowse'] = 'böngészés'; //'browse';
$lang['delete_photo'] = 'Fotó törlése'; //'Delete Photo';
$lang['install_not_support_blowfish'] = 'Ez a PHP nem támogatja a blowfish titkosítást.'; //'Your PHP install does not support blowfish encryption.';
$lang['install_not_support_md5crypt'] = 'Ez a PHP nem támogatja az md5crypt titkosítást.'; //'Your PHP install does not support md5crypt encryption.';
$lang['install_no_mash'] = 'Ez a PHP nem tartalmazza az mhash() függvényt. Nem tudok SHA hash-eket kezelni.'; //'Your PHP install does not have the mhash() function. Cannot do SHA hashes.';
$lang['jpeg_contains_errors'] = 'A jpegPhoto hibás<br />'; //'jpegPhoto contains errors<br />';
$lang['ferror_number'] = 'Hibaszám: %s (%s)'; //'Error number: %s (%s)';
$lang['ferror_discription'] = 'Leírás: %s <br /><br />'; //'Description: %s <br /><br />';
$lang['ferror_number_short'] = 'Hibaszám: %s<br /><br />'; //'Error number: %s<br /><br />';
$lang['ferror_discription_short'] = 'Leírás: (nincs leírás)<br />'; //'Description: (no description available)<br />';
$lang['ferror_submit_bug'] = 'Ez a phpLDAPadmin hibája? Ha igen, kérem <a href=\'%s\'>jelentse</a>.'; //'Is this a phpLDAPadmin bug? If so, please <a href=\'%s\'>report it</a>.';
$lang['ferror_unrecognized_num'] = 'Ismeretlen hibaszám: '; //'Unrecognized error number: ';
$lang['ferror_nonfatil_bug'] = '<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' />
<b>Egy kisebb hibát talált a phpLDAPadmin-ban!</b></td></tr><tr><td>Hiba:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Állomány:</td>
<td><b>%s.</b> sor <b>%s</b>, hívó <b>%s</b></td></tr><tr><td>Verziók:</td><td>PLA: <b>%s</b>, PHP: <b>%s</b>, SAPI: <b>%s</b>
</td></tr><tr><td>Web-kiszolgáló:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>
Kérem jelentse a hibát, kattintson ide!</a>.</center></td></tr></table></center><br />';
//'<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' />
// <b>You found a non-fatal phpLDAPadmin bug!</b></td></tr><tr><td>Error:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>File:</td>
// <td><b>%s</b> line <b>%s</b>, caller <b>%s</b></td></tr><tr><td>Versions:</td><td>PLA: <b>%s</b>, PHP: <b>%s</b>, SAPI: <b>%s</b>
// </td></tr><tr><td>Web server:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>
// Please report this bug by clicking here</a>.</center></td></tr></table></center><br />';
$lang['ferror_congrats_found_bug'] = 'Gratulálunk! Hibát talált a phpLDAPadmin-ban.<br /><br />
<table class=\'bug\'>
<tr><td>Hiba:</td><td><b>%s</b></td></tr>
<tr><td>Szint:</td><td><b>%s</b></td></tr>
<tr><td>Állomány:</td><td><b>%s</b></td></tr>
<tr><td>Sor:</td><td><b>%s</b></td></tr>
<tr><td>Hívó:</td><td><b>%s</b></td></tr>
<tr><td>PLA Verzió:</td><td><b>%s</b></td></tr>
<tr><td>PHP Verzió:</td><td><b>%s</b></td></tr>
<tr><td>PHP SAPI:</td><td><b>%s</b></td></tr>
<tr><td>Web-kiszolgáló:</td><td><b>%s</b></td></tr>
</table>
<br />
Kérjük jelentse a hibát, kattintson alulra!';
//'Congratulations! You found a bug in phpLDAPadmin.<br /><br />
// <table class=\'bug\'>
// <tr><td>Error:</td><td><b>%s</b></td></tr>
// <tr><td>Level:</td><td><b>%s</b></td></tr>
// <tr><td>File:</td><td><b>%s</b></td></tr>
// <tr><td>Line:</td><td><b>%s</b></td></tr>
// <tr><td>Caller:</td><td><b>%s</b></td></tr>
// <tr><td>PLA Version:</td><td><b>%s</b></td></tr>
// <tr><td>PHP Version:</td><td><b>%s</b></td></tr>
// <tr><td>PHP SAPI:</td><td><b>%s</b></td></tr>
// <tr><td>Web server:</td><td><b>%s</b></td></tr>
// </table>
// <br />
// Please report this bug by clicking below!';
//ldif_import_form
$lang['import_ldif_file_title'] = 'LDIF-állomány importálása'; //'Import LDIF File';
$lang['select_ldif_file'] = 'LDIF-állomány kiválasztása'; //'Select an LDIF file:';
$lang['select_ldif_file_proceed'] = 'Tovább &gt;&gt;'; //'Proceed &gt;&gt;';
$lang['dont_stop_on_errors'] = 'Ne állj meg hiba esetén'; //'Don\'t stop on errors';
//ldif_import
$lang['add_action'] = 'Hozzáadás...'; //'Adding...';
$lang['delete_action'] = 'Törlés...'; //'Deleting...';
$lang['rename_action'] = 'Átnevezés'; //'Renaming...';
$lang['modify_action'] = 'Módosítás...'; //'Modifying...';
$lang['warning_no_ldif_version_found'] = 'Nem találtam verziószámot, feltételeztem, hogy 1-es.'; //'No version found. Assuming 1.';
$lang['valid_dn_line_required'] = 'Érvényes DN-sor kell.'; //'A valid dn line is required.';
$lang['missing_uploaded_file'] = 'A feltöltött állomány hiányzik.'; //'Missing uploaded file.';
$lang['no_ldif_file_specified.'] = 'Nem adott meg LDIF-állományt. Kérem próbálja újra.'; //'No LDIF file specified. Please try again.';
$lang['ldif_file_empty'] = 'A feltöltött LDIF-állomány üres.'; //'Uploaded LDIF file is empty.';
$lang['empty'] = 'üres'; //'empty';
$lang['file'] = 'Állomány'; //'File';
$lang['number_bytes'] = '%s byte'; //'%s bytes';
$lang['failed'] = 'Sikertelen'; //'Failed';
$lang['ldif_parse_error'] = 'LDIF-pásztázási hiba'; //'LDIF Parse Error';
$lang['ldif_could_not_add_object'] = 'Nem tudom ezt az objektumot hozzáadni:'; //'Could not add object:';
$lang['ldif_could_not_rename_object'] = 'Nem tudom ezt az objektumot átnevezni:'; //'Could not rename object:';
$lang['ldif_could_not_delete_object'] = 'Nem tudom ezt az objektumot törölni:'; //'Could not delete object:';
$lang['ldif_could_not_modify_object'] = 'Nem tudom ezt az objektumot módosítani:'; //'Could not modify object:';
$lang['ldif_line_number'] = 'Sorszám:'; //'Line Number:';
$lang['ldif_line'] = 'Sor:'; //'Line:';
// Exports
$lang['export_format'] = 'Export-formátum'; //'Export format';
$lang['line_ends'] = 'Sorvégek'; //'Line ends';
$lang['must_choose_export_format'] = 'Az export formátumát ki kell választani.'; //'You must choose an export format.';
$lang['invalid_export_format'] = 'Az export formátuma érvénytelen'; //'Invalid export format';
$lang['no_exporter_found'] = 'Nincs használható exportáló.'; //'No available exporter found.';
$lang['error_performing_search'] = 'Keresés közben hibába akadtam.'; //'Encountered an error while performing search.';
$lang['showing_results_x_through_y'] = 'A(z) %s és %s közé eső találatok megjelenítése.'; //'Showing results %s through %s.';
$lang['searching'] = 'Folyik a keresés...'; //'Searching...';
$lang['size_limit_exceeded'] = 'Figyelem: a keresési méret korlátja túllépve.'; //'Notice, search size limit exceeded.';
$lang['entry'] = 'Bejegyzés'; //'Entry';
$lang['ldif_export_for_dn'] = 'A(z) %s LDIF exportja'; //'LDIF Export for: %s';
$lang['generated_on_date'] = 'A phpLDAPadmin generálta, dátum: %s'; //'Generated by phpLDAPadmin on %s';
$lang['total_entries'] = 'Bejegyzések száma összesen'; //'Total Entries';
$lang['dsml_export_for_dn'] = 'A(z) %s DSLM exportja'; //'DSLM Export for: %s';
// logins
$lang['could_not_find_user'] = 'Nem találtam meg a(z) %s felhasználót'; //'Could not find a user "%s"';
$lang['password_blank'] = 'A jelszó üresen maradt.'; //'You left the password blank.';
$lang['login_cancelled'] = 'A bejelentkezést megszakították.'; //'Login cancelled.';
$lang['no_one_logged_in'] = 'Arra a kiszolgálóra nincs bejelentkezve senki.'; //'No one is logged in to that server.';
$lang['could_not_logout'] = 'Nem sikerült kilépni.'; //'Could not logout.';
$lang['unknown_auth_type'] = 'Ismeretlen auth_type: %s'; //'Unknown auth_type: %s';
$lang['logged_out_successfully'] = 'A kilépés sikerült a(z) <b>%s</b> kiszolgálóból'; //'Logged out successfully from server <b>%s</b>';
$lang['authenticate_to_server'] = 'Azonosítsa magát a(z) %s kiszolgálón'; //'Authenticate to server %s';
$lang['warning_this_web_connection_is_unencrypted'] = 'Figyelem: A kapcsolat a bögészővel titkosítatlan.'; //'Warning: This web connection is unencrypted.';
$lang['not_using_https'] = 'Nem https kapcsolatot használ. A böngésző a bejelentkezés adatait sima szöveg formátumban fogja továbbítani'; //'You are not using \'https\'. Web browser will transmit login information in clear text.';
$lang['login_dn'] = 'Bejelentkezési DN'; //'Login DN';
$lang['user_name'] = 'A felhasználó neve'; //'User name';
$lang['password'] = 'Jelszó'; //'Password';
$lang['authenticate'] = 'Azonosítás'; //'Authenticate';
// Entry browser
$lang['entry_chooser_title'] = 'Bejegyzés kiválasztása'; //'Entry Chooser';
// Index page
$lang['need_to_configure'] = 'Konfigurálnia kell a phpLDAPadmint a config.php állomány szerkesztésével, amihez mintául a config.php.example szolgálhat.'; //'You need to configure phpLDAPadmin. Edit the file \'config.php\' to do so. An example config file is provided in \'config.php.example\'';
// Mass deletes
$lang['no_deletes_in_read_only'] = 'Csak olvasható üzemmódban a törlés nem működik.'; //'Deletes not allowed in read only mode.';
$lang['error_calling_mass_delete'] = 'Hiba a mass_delete.php hívásakor. A POST változók közül hiányzik a mass_delete.'; //'Error calling mass_delete.php. Missing mass_delete in POST vars.';
$lang['mass_delete_not_array'] = 'A mass_delete POST változó nem tömb.'; //'mass_delete POST var is not an array.';
$lang['mass_delete_not_enabled'] = 'A tömeges törlés nincs engedélyezve. Mielőtt folytatná, állítsa át az enable_mass_delete értékét config.php állományban.'; //'Mass deletion is not enabled. Please enable it in config.php before proceeding.';
$lang['mass_deleting'] = 'Tömeges törlés'; //'Mass Deleting';
$lang['mass_delete_progress'] = 'A törlési művelet a(z) %s kiszolgálón'; //'Deletion progress on server "%s"';
$lang['malformed_mass_delete_array'] = 'A tömeges törléshez megadott tömb formátuma helytelen'; //'Malformed mass_delete array.';
$lang['no_entries_to_delete'] = 'Nem választotta ki a törlendő bejegyzés(eke)t. '; //'You did not select any entries to delete.';
$lang['deleting_dn'] = '%s törölve'; //'Deleting %s';
$lang['total_entries_failed'] = '%s darab bejegyzés törlése nem sikerült a(z) %s darabból.'; //'%s of %s entries failed to be deleted.';
$lang['all_entries_successful'] = 'Az összes bejegyzés törlése sikerült.'; //'All entries deleted successfully.';
$lang['confirm_mass_delete'] = 'Hagyja jóvá a(z) %s bejegyzés tömeges törlését a(z) %s kiszolgálóról'; //'Confirm mass delete of %s entries on server %s';
$lang['yes_delete'] = 'Igen, törlődjön'; //'Yes, delete!';
// Renaming entries
$lang['non_leaf_nodes_cannot_be_renamed'] = 'Nem nevezhet át olyan bejegyzést aminek gyermekei vannak (azaz az átnevezés művelete csak levél-bejegyzéseken megengedett)'; //'You cannot rename an entry which has children entries (eg, the rename operation is not allowed on non-leaf entries)';
$lang['no_rdn_change'] = 'Nem változtatta meg az RDN-t'; //'You did not change the RDN';
$lang['invalid_rdn'] = 'Érvénytelen RDN érték'; //'Invalid RDN value';
$lang['could_not_rename'] = 'A bejegyzést nem sikerült átnevezni'; //'Could not rename the entry';
?>

View File

@@ -1,141 +0,0 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/it.php,v 1.5 2004/03/19 20:13:09 i18phpldapadmin Exp $
// Search form
$lang['simple_search_form_str'] = 'Modulo di Ricerca Semplice';
$lang['advanced_search_form_str'] = 'Modulo di Ricerca Avanzato';
$lang['server'] = 'Server';
$lang['search_for_entries_whose'] = 'Cerca per voci che';
$lang['base_dn'] = 'DN Base';
$lang['search_scope'] = 'Campo di Ricerca';
$lang['search_ filter'] = 'Filtro di Ricerca';
$lang['show_attributes'] = 'Mostra gli Attributi';
$lang['Search'] = 'Cerca';
$lang['equals'] = 'equivale';
$lang['starts_with'] = 'inizia con';
$lang['contains'] = 'contiene';
$lang['ends_with'] = 'finisce con';
$lang['sounds_like'] = 'suona come';
// Tree browser
$lang['request_new_feature'] = 'Richiedi una nuova funzionalit<69>';
$lang['see_open_requests'] = 'guarda le richieste pendenti';
$lang['report_bug'] = 'Riporta un baco';
$lang['see_open_bugs'] = 'guarda i bachi pendenti';
$lang['schema'] = 'schema';
$lang['search'] = 'cerca';
$lang['refresh'] = 'aggiorna';
$lang['create'] = 'crea';
$lang['info'] = 'info';
$lang['import'] = 'importa';
$lang['logout'] = 'esci';
$lang['create_new'] = 'Crea Nuovo';
$lang['view_schema_for'] = 'Guarda schema per';
$lang['refresh_expanded_containers'] = 'Aggiorna tutti i contenitori aperti per';
$lang['create_new_entry_on'] = 'Crea una nuova voce su';
$lang['view_server_info'] = 'Guarda le informazioni fornite dal Server';
$lang['import_from_ldif'] = 'Importa voci da un file LDIF';
$lang['logout_of_this_server'] = 'Esci da questo Server';
$lang['logged_in_as'] = 'Collegato come: ';
$lang['read_only'] = 'sola lettura';
$lang['could_not_determine_root'] = 'Non posso determinare la radice del tuo albero LDAP.';
$lang['ldap_refuses_to_give_root'] = 'Sembra che il server LDAP sia stato configurato per non rivelare la sua radice.';
$lang['please_specify_in_config'] = 'Per piacere specificare nel config.php';
$lang['create_new_entry_in'] = 'Crea una nuova voce in';
// Entry display
$lang['delete_this_entry'] = 'Cancella questa voce';
$lang['delete_this_entry_tooltip'] = 'Ti sar<61> richiesto di confermare questa decisione';
$lang['copy_this_entry'] = 'Copia questa voce';
$lang['copy_this_entry_tooltip'] = 'Copia questo oggetto in un\'altra posizione, un nuovo DN od un altro server';
$lang['export_to_ldif'] = 'Esporta in un LDIF';
$lang['export_to_ldif_tooltip'] = 'Salva un formato LDIF di questo oggetto';
$lang['export_subtree_to_ldif_tooltip'] = 'Salva un formato LDIF di questo oggetto e di tutti i suoi figli';
$lang['export_subtree_to_ldif'] = 'Esporta il ramo in un LDIF';
$lang['export_mac'] = 'Fine riga in formato Macintosh';
$lang['export_win'] = 'Fine riga in formato Windows';
$lang['export_unix'] = 'Fine riga in formato Unix';
$lang['create_a_child_entry'] = 'Crea una voce figlia';
$lang['add_a_jpeg_photo'] = 'Aggiungi una jpegPhoto';
$lang['rename_entry'] = 'Rinomina la Voce';
$lang['rename'] = 'Rinomina';
$lang['add'] = 'Aggiungi';
$lang['view'] = 'Guarda';
$lang['add_new_attribute'] = 'Aggiungi un nuovo attributo';
$lang['add_new_attribute_tooltip'] = 'Aggiungi un nuovo attributo/valore a questa voce';
$lang['internal_attributes'] = 'Attributi Interni';
$lang['hide_internal_attrs'] = 'Nascondi gli attributi interni';
$lang['show_internal_attrs'] = 'Mostra gli attributi interni';
$lang['internal_attrs_tooltip'] = 'Attributi settati automaticamente dal sistema';
$lang['entry_attributes'] = 'Attributi della Voce';
$lang['click_to_display'] = 'clicca per mostrare';
$lang['hidden'] = 'nascosto';
$lang['none'] = 'nessuno';
$lang['save_changes'] = 'Salva i Cambiamenti';
$lang['add_value'] = 'aggiungi un valore';
$lang['add_value_tooltip'] = 'Aggiungi un\'altrovalore a questo attributo';
$lang['refresh'] = 'aggiorna';
$lang['refresh_this_entry'] = 'Aggiorna questa voce';
$lang['delete_hint'] = 'Consiglio: <b>Per cancellare un attributo</b>, svuota il campo testo e clicca salva.';
$lang['viewing_read_only'] = 'Stai guardando la voce in modalit<69> sola-lettura.';
$lang['change_entry_rdn'] = 'Cambia l\' RDN di questa voce';
$lang['no_new_attrs_available'] = 'nessun nuovo attributo disponibile per questa voce';
$lang['binary_value'] = 'Valore binario';
$lang['add_new_binary_attr'] = 'Aggiungi un Nuovo Attributo Binario';
$lang['add_new_binary_attr_tooltip'] = 'Aggiungi un nuovo attributo/valore binario da un file';
$lang['alias_for'] = 'Alias per';
$lang['download_value'] = 'valore del download';
$lang['delete_attribute'] = 'cancella l\'attributo';
$lang['true'] = 'vero';
$lang['false'] = 'falso';
$lang['none_remove_value'] = 'nessuno, rimuovi il valore';
$lang['really_delete_attribute'] = 'Cancella definitivamente il valore';
// Schema browser
$lang['the_following_objectclasses'] = 'Le seguenti <b>objectClasses</b> sono supportate da questo server LDAP';
$lang['the_following_attributes'] = 'Le seguenti <b>attributeTypes</b> sono supportate da questo server LDAP';
$lang['the_following_matching'] = 'Le seguenti <b>matching rules</b> sono supportate da questo server LDAP';
$lang['the_following_syntaxes'] = 'Le seguenti <b>syntaxes</b> sono supportate da questo server LDAP';
$lang['jump_to_objectclass'] = 'Vai a una objectClass';
$lang['jump_to_attr'] = 'Vai a un attributo';
$lang['schema_for_server'] = 'Schema per il server';
$lang['required_attrs'] = 'Attributi Richiesti';
$lang['optional_attrs'] = 'Attributi Opzionali';
$lang['OID'] = 'OID';
$lang['desc'] = 'Descrizione';
$lang['is_obsolete'] = 'Questa objectClass <20> <b>obsoleta</b>';
$lang['inherits'] = 'Eredita da';
$lang['jump_to_this_oclass'] = 'Vai a questa definizione della objectClass';
$lang['matching_rule_oid'] = 'Regola Corrispondente OID';
$lang['syntax_oid'] = 'Sintassi OID';
// Adding objectClass form
$lang['new_required_attrs'] = 'Nuovi Attributi Richiesti';
$lang['requires_to_add'] = 'Questa azione richiede che tu aggiunga';
$lang['new_attributes'] = 'nuovi attributi';
$lang['new_required_attrs_instructions'] = 'Istruzioni: Per aggiungere questa objectClass a questa voce, devi specificare:';
$lang['that_this_oclass_requires'] = 'che questa objectClass richiede. Puoi farlo in questo modulo.';
$lang['add_oclass_and_attrs'] = 'Aggiungi ObjectClass e Attributi';
// General
$lang['chooser_link_tooltip'] = 'Clicca per aprire una finestra di dialogo per la selezione grafica di una voce (DN)';
$lang['no_updates_in_read_only_mode'] = 'Non puoi operare aggiornamenti mentre il server <20> in modalit<69> sola-lettura';
$lang['bad_server_id'] = 'Server id errata';
$lang['not_enough_login_info'] = 'Non abbastanza informazioni per collegarsi al server. Per piacere controlla la tua configurazione.';
$lang['could_not_connect'] = 'Non ho potuto collegarmi al server LDAP.';
$lang['could_not_perform_ldap_mod_add'] = 'Non ho potuto eseguire l\'operazione ldap_mod_add.';
// Add value form
$lang['add_new'] = 'Aggiungi nuovo';
$lang['value_to'] = 'valore a';
$lang['server'] = 'Server';
$lang['distinguished_name'] = 'Distinguished Name';
$lang['current_list_of'] = 'Lista corrente di';
$lang['values_for_attribute'] = 'valori per l\'attributo';
$lang['inappropriate_matching_note'] = 'Nota: Tu riceverai un errore "corrispondenza inappropiata" se non hai<br />una regola <tt>EQUALITY</tt> per questo attributo sul tuo server LDAP.';
$lang['enter_value_to_add'] = 'Inserisci il valore che vorresti aggiungere:';
$lang['new_required_attrs_note'] = 'Nota: ti potrebbe essere chiesto di inserire nuovi attributi<br />che questa objectClass richiede.';
$lang['syntax'] = 'Sintassi';
?>

View File

@@ -1,694 +0,0 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/ja.php,v 1.5.2.1 2005/10/09 06:29:41 wurley Exp $
// EN-Revision: 1.127
/* --- INSTRUCTIONS FOR TRANSLATORS ---
*
* If you want to write a new language file for your language,
* please submit the file on SourceForge:
*
* https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498548
*
* Use the option "Check to Upload and Attach a File" at the bottom
*
* Read the doc/README-translation.txt for translation instructions.
*
* Thank you!
*
*/
/*
* The $lang array contains all the strings that phpLDAPadmin uses.
* Each language file simply defines this aray with strings in its
* language.
*/
// Search form
$lang['simple_search_form_str'] = '簡易検索フォーム';
$lang['advanced_search_form_str'] = '高度な検索フォーム';
$lang['server'] = 'サーバー';
$lang['search_for_entries_whose'] = 'どのエントリを検索';
$lang['base_dn'] = 'ベース DN';
$lang['search_scope'] = '検索スコープ';
$lang['show_attributes'] = '属性表示';
$lang['Search'] = '検索';
$lang['predefined_search_str'] = '事前定義された検索を選択';
$lang['predefined_searches'] = '事前定義検索';
$lang['no_predefined_queries'] = 'config.php で定義された照会はありません。';
$lang['export_results'] = '結果エクスポート';
$lang['unrecoginzed_search_result_format'] = '認識できない書式の検索結果です: %s';
$lang['format'] = '書式';
$lang['list'] = '一覧';
$lang['table'] = 'テーブル';
$lang['bad_search_display'] = 'config.php にて $default_search_display: %s の無効な値が指定されています。それを修正してください。';
$lang['page_n'] = 'ページ %d';
$lang['next_page'] = '次のページ';
$lang['no_results'] = '検索結果がありませんでした。';
// Tree browser
$lang['request_new_feature'] = '機能リクエスト';
$lang['report_bug'] = '不都合報告';
$lang['schema'] = 'スキーマ';
$lang['search'] = '検索';
$lang['create'] = '作成';
$lang['info'] = '情報';
$lang['import'] = 'インポート';
$lang['refresh'] = '再描画';
$lang['logout'] = 'ログアウト';
$lang['create_new'] = 'ここに新規エントリを追加';
$lang['view_schema_for'] = 'スキーマを閲覧 対象:';
$lang['refresh_expanded_containers'] = '展開済みの内容を再描画 対象:';
$lang['create_new_entry_on'] = 'エントリを新規作成 対象:';
$lang['new'] = '新規';
$lang['view_server_info'] = 'サーバーが提供する情報を閲覧';
$lang['import_from_ldif'] = 'LDIF ファイルからのインポートエントリ';
$lang['logout_of_this_server'] = 'このサーバーのログアウト';
$lang['logged_in_as'] = '次のコンテナでログイン: ';
$lang['this_base_dn_is_not_valid'] = 'これは有効な DN ではありません。';
$lang['this_base_dn_does_not_exist'] = 'このエントリは存在しません。';
$lang['read_only'] = '読み込み専用';
$lang['read_only_tooltip'] = 'この属性は phpLDAP 管理者により、読み込み専用で設定されています。';
$lang['could_not_determine_root'] = 'LDAP ツリーのルートが決定できません。';
$lang['ldap_refuses_to_give_root'] = 'LDAP サーバーが root を見えないように設定しているように見えます。';
$lang['please_specify_in_config'] = 'config.php でそれを指定してください。';
$lang['create_new_entry_in'] = 'Create a new entry in';
$lang['login_link'] = 'ログイン...';
$lang['login'] = 'ログイン';
$lang['base_entry_does_not_exist'] = 'ベースエントリが存在しません。';
$lang['create_it'] = '作成しますか?';
// Entry display
$lang['delete_this_entry'] = 'このエントリを削除';
$lang['delete_this_entry_tooltip'] = 'You will be prompted to confirm this decision';
$lang['copy_this_entry'] = 'このエントリをコピー';
$lang['copy_this_entry_tooltip'] = 'このオブジェクトを異なるロケーション、新しい DNもしくは別のサーバーにコピーする';
$lang['export'] = 'エクスポート';
$lang['export_lcase'] = 'エクスポート';
$lang['export_tooltip'] = 'このオブジェクトのダンプ保存';
$lang['export_subtree_tooltip'] = 'このオブジェクトと子の全てをダンプ保存する';
$lang['export_subtree'] = 'サブツリーをエクスポート';
$lang['create_a_child_entry'] = '子エントリ作成';
$lang['rename_entry'] = 'エントリ名称変更';
$lang['rename'] = '名称変更';
$lang['rename_lower'] = '名称変更';
$lang['add'] = '追加';
$lang['view'] = 'View';
$lang['view_one_child'] = 'ひとつの子を閲覧';
$lang['view_children'] = '%s 個の子を閲覧';
$lang['add_new_attribute'] = '新規属性を追加';
$lang['add_new_objectclass'] = '新規 ObjectClass を追加する';
$lang['hide_internal_attrs'] = '内部属性を隠す';
$lang['show_internal_attrs'] = '内部属性を表示';
$lang['attr_name_tooltip'] = '属性タイプ \'%s\' のためのスキーマ定義を見るためにクリックしてください。';
$lang['none'] = 'なし';
$lang['no_internal_attributes'] = '内部属性がありません';
$lang['no_attributes'] = 'このエントリは属性を持っていません';
$lang['save_changes'] = '変更を保存';
$lang['add_value'] = '値追加';
$lang['add_value_tooltip'] = '追加値を属性「%s」に追加する';
$lang['refresh_entry'] = '再描画';
$lang['refresh_this_entry'] = 'このエントリを再描画する';
$lang['delete_hint'] = 'ヒント: 属性を削除するにはテキストフィールドを空にして保存をクリックします。';
$lang['attr_schema_hint'] = 'ヒント: 属性のスキーマを閲覧するには、属性名をクリックします。';
$lang['attrs_modified'] = 'いくつかの属性 (%s) は修正され、下記でハイライトされました。';
$lang['attr_modified'] = 'ひとつの属性 (%s) は修正され、下記でハイライトされました。';
$lang['viewing_read_only'] = '読み込みモードでエントリを閲覧中。';
$lang['no_new_attrs_available'] = 'このエントリに利用可能な新規属性はありません。';
$lang['no_new_binary_attrs_available'] = 'このエントリに利用可能な新規バイナリ属性はありません。';
$lang['binary_value'] = 'バイナリ値';
$lang['add_new_binary_attr'] = '新規バイナリ属性を追加';
$lang['alias_for'] = '注: \'%s\' は \'%s\' のエイリアスです。';
$lang['required_for'] = 'objectClass %s の必須属性';
$lang['required_by_entry'] = 'この属性は RDN に必要です。';
$lang['download_value'] = 'ダウンロード値';
$lang['delete_attribute'] = '属性削除';
$lang['true'] = 'true';
$lang['false'] = 'false';
$lang['none_remove_value'] = 'いいえ、値を削除します';
$lang['really_delete_attribute'] = '本当に属性を削除';
$lang['add_new_value'] = '新規値追加';
// Schema browser
$lang['schema_retrieve_error_1']='このサーバーはすべての LDAP プロトコルをサポートしていません。';
$lang['schema_retrieve_error_2']='この PHP のバージョンは正確に照会を行えません。';
$lang['schema_retrieve_error_3']='あるいは、phpLDAPadmin は、あなたのサーバーからスキーマを取得する方法を知りません。';
$lang['schema_retrieve_error_4']='Or lastly, LDAP サーバーはこの情報を提供していません。';
$lang['jump_to_objectclass'] = 'objectClass に移動';
$lang['view_schema_for_oclass'] = 'この objectClass のスキーマ説明を閲覧';
$lang['jump_to_attr'] = '属性タイプに移動';
$lang['jump_to_matching_rule'] = '一致ルールにジャンプ';
$lang['schema_for_server'] = 'サーバーのスキーマ';
$lang['required_attrs'] = '必須属性';
$lang['required'] = '必須';
$lang['optional_attrs'] = 'オプション属性';
$lang['optional_binary_attrs'] = 'オプションバイナリ属性';
$lang['OID'] = 'OID';
$lang['aliases']='別名';
$lang['desc'] = '説明';
$lang['no_description']='説明がありません';
$lang['name'] = '名前';
$lang['equality']='Equality';
$lang['is_obsolete'] = 'この objectClass は旧式です。';
$lang['inherits'] = '継承元';
$lang['inherited_from'] = '派生元';
$lang['parent_to'] = '派生先';
$lang['jump_to_this_oclass'] = 'この objectClass 定義に移動';
$lang['matching_rule_oid'] = '適用ルール OID';
$lang['syntax_oid'] = '文法 OID';
$lang['not_applicable'] = '適用可能ではありません';
$lang['not_specified'] = '指定されていません';
$lang['character']='character';
$lang['characters']='characters';
$lang['used_by_objectclasses']='objectClass を使する';
$lang['used_by_attributes']='属性で使する';
$lang['maximum_length']='最大長';
$lang['attribute_types']='属性タイプ';
$lang['syntaxes']='文法一覧';
$lang['matchingrules']='一致ルール';
$lang['oid']='OID';
$lang['obsolete']='旧式';
$lang['ordering']='Ordering';
$lang['substring_rule']='副文字列ルール';
$lang['single_valued']='単一の値';
$lang['collective']='集合';
$lang['user_modification']='ユーザー修正';
$lang['usage']='使用法';
$lang['could_not_retrieve_schema_from']='次のスキーマを取得できません:';
$lang['type']='種類';
$lang['no_such_schema_item'] = 'スキーマ項目がありません: "%s"';
$lang['random_password'] = 'ランダムなパスワードを生成しました';
// Deleting entries
$lang['entry_deleted_successfully'] = '%s エントリを削除しました。';
$lang['you_must_specify_a_dn'] = 'DN を指定しなければなりません';
$lang['could_not_delete_entry'] = 'エントリを削除できませんでした: %s';
$lang['no_such_entry'] = 'エントリがありません: %s';
$lang['delete_dn'] = '%s 削除';
$lang['permanently_delete_children'] = 'さらに永久にすべての子を削除しますか?';
$lang['entry_is_root_sub_tree'] = 'このエントリは %s エントリを含むサブツリーのルートです。';
$lang['view_entries'] = 'エントリ閲覧';
$lang['confirm_recursive_delete'] = 'phpLDAPadmin は再帰的に、このエントリとその子のすべての %s を削除できます。このアクションが削除するすべてのエントリの一覧は、下記を参照してください。本当に本当に削除しますか?';
$lang['confirm_recursive_delete_note'] = '注: これは潜在的に非常に危険です。また、自己責任でこれをします。このオペレーションは取り消せません。エイリアス・referralとその他の問題を考察を持ってください。';
$lang['delete_all_x_objects'] = '%s オブジェクトをすべて削除';
$lang['recursive_delete_progress'] = '再帰削除進行';
$lang['entry_and_sub_tree_deleted_successfully'] = 'エントリ %s とサブツリーの削除に成功しました。';
$lang['failed_to_delete_entry'] = 'エントリ %s の削除に失敗しました';
$lang['list_of_entries_to_be_deleted'] = 'エントリの一覧を削除しました:';
$lang['sure_permanent_delete_object']='本当にこのオブジェクトを永続的に削除しますか?';
$lang['dn'] = 'DN';
// Deleting attributes
$lang['attr_is_read_only'] = 'phpLDAPadmin の設定で属性 "%s" は読み込み専用に設定されています。';
$lang['no_attr_specified'] = '属性名が指定されていません。';
$lang['no_dn_specified'] = 'DN が指定されていません';
// Adding attributes
$lang['left_attr_blank'] = '属性値が空です。戻ってからもう一度試してください。';
$lang['failed_to_add_attr'] = '属性の追加に失敗しました。';
$lang['file_empty'] = 'あなたの選んだファイルは空か存在しないかのいずれかです。戻ってからもう一度試してください。';
$lang['invalid_file'] = 'セキュリティエラー: アップロードされたファイルは悪意のあるものかもしれません。';
$lang['warning_file_uploads_disabled'] = 'PHP の設定でファイルのアップロードが無効です。続行する前に、php.ini を確認してください。';
$lang['uploaded_file_too_big'] = 'アップロードされたファイルが大きすぎます。php.ini の upload_max_size 設定を確認してください。';
$lang['uploaded_file_partial'] = '選択したファイルは、部分的なアップロードでした。ネットワークエラーによる可能性が高いです。';
$lang['max_file_size'] = '最大ファイルサイズ: %s';
// Updating values
$lang['modification_successful'] = '修正に成功しました!';
$lang['change_password_new_login'] = 'パスワードを変更したので、今から新しいパスワードで再ログインしなければなりません。';
// Adding objectClass form
$lang['new_required_attrs'] = '新規必須属性';
$lang['requires_to_add'] = 'この操作は追加することを要求します';
$lang['new_attributes'] = '新規属性';
$lang['new_required_attrs_instructions'] = 'インストラクション: これらの objectClass をこのエントリに追加するには指定しなければなりません';
$lang['that_this_oclass_requires'] = 'それは objectClass に必要です。このフォームでそうすることができます。';
$lang['add_oclass_and_attrs'] = 'ObjectClass と属性を追加';
$lang['objectclasses'] = 'ObjectClass 一覧';
// General
$lang['chooser_link_tooltip'] = 'エントリ(DN)をグラフィカルに選択するためにポップアップのダイアログをクリックしてください。';
$lang['no_updates_in_read_only_mode'] = 'サーバーは読み込みモードなので、更新を実行できません。';
$lang['bad_server_id'] = '間違ったサーバー ID';
$lang['not_enough_login_info'] = 'サーバーにログインする情報が不足しています。設定を確認してください。';
$lang['could_not_connect'] = 'LDAP サーバーに接続できませんでした。';
$lang['could_not_connect_to_host_on_port'] = '"%s" のポート "%s" に接続できませんでした';
$lang['could_not_perform_ldap_mod_add'] = 'ldap_mod_add 操作を実行できませんでした。';
$lang['home'] = 'ホーム';
$lang['help'] = 'ヘルプ';
$lang['success'] = '成功';
$lang['server_colon_pare'] = 'サーバー: ';
$lang['look_in'] = 'Looking in: ';
$lang['missing_dn_in_query_string'] = '照会文字列に DN が指定されていません!';
$lang['back_up_p'] = 'バックアップ...';
$lang['no_entries'] = 'エントリがありません';
$lang['could_not_det_base_dn'] = 'ベース DN を決定することができませんでした';
$lang['reasons_for_error']='これは、いくつかの理由で発生するかもしれません。その最も可能性の高いものは:';
$lang['yes']='はい';
$lang['no']='いいえ';
$lang['go']='Go';
$lang['delete']='削除';
$lang['back']='戻る';
$lang['object']='オブジェクト';
$lang['delete_all']='すべて削除';
$lang['hint'] = 'ヒント';
$lang['bug'] = '不都合';
$lang['warning'] = '警告';
$lang['light'] = 'light'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = '進む &gt;&gt;';
$lang['no_blowfish_secret'] = '$blowfish_secret が config.php で設定されていないので、phpLDAPadmin は安全に機密情報を暗号化と解読をすることができません。config.php を編集し、秘密文字列を $blowfish_secret に設定するする必要があります。';
$lang['jpeg_dir_not_writable'] = 'phpLDAPadmin の設定ファイル config.php で、書き込み可能なディレクトリを $jpeg_temp_dir に設定してください。';
$lang['jpeg_dir_not_writable_error'] = '$jpeg_temp_dir で指定したディレクトリ %s に書き込みできません。ウェブサーバーがそこにファイルを書き込みできることを確認してください。';
$lang['jpeg_unable_toget'] = '属性 %s 用に LDAP サーバーから jpeg データを取得できませんでした。';
$lang['jpeg_delete'] = '写真を削除';
// Add value form
$lang['add_new'] = '新規追加';
$lang['value_to'] = 'value to';
$lang['distinguished_name'] = '関連名';
$lang['current_list_of'] = '次の現在の一覧:';
$lang['values_for_attribute'] = '属性の値';
$lang['inappropriate_matching_note'] = '注: LDAP サーバーでこの属性の EQUALITY ルールをセットアップしていなかった場合、"inappropriate matching" エラーを取得するでしょう。';
$lang['enter_value_to_add'] = '追加したい値を入力する:';
$lang['new_required_attrs_note'] = '注: この objectClass が要求する新しい属性の入力が必要かもしれません。';
$lang['syntax'] = '文法';
//copy.php
$lang['copy_server_read_only'] = 'サーバーが読み込みモードなので、更新を行うことができません。';
$lang['copy_dest_dn_blank'] = '対象 DN がブランクで残されました。';
$lang['copy_dest_already_exists'] = '対象エントリ (%s) は既に存在します。';
$lang['copy_dest_container_does_not_exist'] = '対象先コンテナー (%s) は存在しません。';
$lang['copy_source_dest_dn_same'] = '対象元と対象先 DN が同じです。';
$lang['copy_copying'] = 'Copying ';
$lang['copy_recursive_copy_progress'] = '再帰コピー進行';
$lang['copy_building_snapshot'] = 'コピーするツリーのスナップショットを構築中... ';
$lang['copy_successful_like_to'] = 'コピー成功! Would you like to ';
$lang['copy_view_new_entry'] = '新規エントリ閲覧';
$lang['copy_failed'] = 'DN のコピーに失敗しました: ';
//edit.php
$lang['missing_template_file'] = '警告: テンプレートファイルがありません。 ';
$lang['using_default'] = 'デフォルトを使います。';
$lang['template'] = 'テンプレート';
$lang['must_choose_template'] = 'テンプレートを選ばなければなりません';
$lang['invalid_template'] = '%s は無効なテンプレート';
$lang['using_template'] = '使用中のテンプレート';
$lang['go_to_dn'] = '%s に移動';
$lang['structural_object_class_cannot_remove'] = 'これは構造 ObjectClass なので削除できませんでした。';
$lang['structural'] = '構造';
//copy_form.php
$lang['copyf_title_copy'] = 'コピー ';
$lang['copyf_to_new_object'] = '新規オブジェクトへ';
$lang['copyf_dest_dn'] = '対象 DN';
$lang['copyf_dest_dn_tooltip'] = 'ソースエントリをコピー時に作成する新しいエントリのフルDN';
$lang['copyf_dest_server'] = '対象サーバー';
$lang['copyf_note'] = 'ヒント: スキーマ違反がなければ、異なるサーバー間のコピー処理のみ行います。';
$lang['copyf_recursive_copy'] = '同様にこのオブジェクトのすべての子を再帰コピーします。';
$lang['recursive_copy'] = '再帰コピー';
$lang['filter'] = 'フィルター';
$lang['filter_tooltip'] = '再帰的なコピーを行なう場合、このフィルタと一致するエントリのみコピーしてください。';
$lang['delete_after_copy'] = 'コピーの後に削除 (移動):';
$lang['delete_after_copy_warn'] = 'Make sure your filter (above) will select all child records.';
//create.php
$lang['create_required_attribute'] = 'You left the value blank for required attribute (%s).';
$lang['redirecting'] = 'リダイレクト中...';
$lang['here'] = 'ここ';
$lang['create_could_not_add'] = 'LDAP サーバーにオブジェクトを追加できませんでした。';
//create_form.php
$lang['createf_create_object'] = 'オブジェクト作成';
$lang['createf_choose_temp'] = 'テンプレート選択';
$lang['createf_select_temp'] = '作成処理のテンプレートを選択';
$lang['save_as_file'] = 'ファイルに保存';
$lang['rdn_field_blank'] = 'RDN フィールドが空です。';
$lang['container_does_not_exist'] = '指定したコンテナー(%s)が存在しません。もう一度行ってください。';
$lang['no_objectclasses_selected'] = 'このオブジェクトのためのいくつかの ObjectClass を選択しませんでした。戻ってそのように実行してください。';
$lang['hint_structural_oclass'] = 'ヒント: ひとつの構造 objectClass を選択しなければなりません (上で強調表示されています)';
$lang['template_restricted'] = 'このコンテナーではこのテンプレートは許可されていません';
$lang['template_invalid'] = 'このテンプレートは、恐らくスキーマかテンプレート XML 項目が見当たらないために無効になりました。';
//creation_template.php
$lang['ctemplate_on_server'] = 'サーバー';
$lang['ctemplate_no_template'] = 'POST 値でテンプレートが指定されていません。';
$lang['template_not_readable'] = '設定でこのテンプレート「%s」のハンドラーを指定しています。しかし、権限が厳密すぎるので、このファイルは判読可能ではありません。';
$lang['template_does_not_exist'] = '設定でこのテンプレート「%s」のハンドラーを指定しています。しかし、このハンドラーはディレクトリ「templates/creation」に存在しません。';
$lang['create_step1'] = 'ステップ 1/2: 名前と ObjectClass';
$lang['create_step2'] = 'ステップ 2/2: 属性と値を指定';
$lang['relative_distinguished_name'] = '関連識別名';
$lang['rdn'] = 'RDN';
$lang['rdn_example'] = '(例: cn=MyNewPerson)';
$lang['container'] = 'コンテナー';
// search.php
$lang['you_have_not_logged_into_server'] = '選択されたサーバーにまだログインしていません。したがって、探索を行なうことができません。';
$lang['click_to_go_to_login_form'] = 'ここをクリックするとログインフォームに移動します';
$lang['unrecognized_criteria_option'] = '未承認の基準オプション: ';
$lang['if_you_want_to_add_criteria'] = 'If you want to add your own criteria to the list. Be sure to edit search.php to handle them. Quitting.';
$lang['entries_found'] = 'エントリ発見: ';
$lang['filter_performed'] = '検索実行: ';
$lang['search_duration'] = 'phpLDadmin で検索を実行';
$lang['seconds'] = '秒';
// search_form_advanced.php
$lang['scope_in_which_to_search'] = 'The scope in which to search';
$lang['scope_sub'] = 'Sub (entire subtree)';
$lang['scope_one'] = 'One (one level beneath base)';
$lang['scope_base'] = 'ベース (ベース dn のみ)';
$lang['standard_ldap_search_filter'] = '標準 LDAP 検索フィルター。例: (&(sn=Smith)(givenname=David))';
$lang['search_filter'] = '検索フィルター';
$lang['list_of_attrs_to_display_in_results'] = '結果から属性の一覧を表示 (カンマ区切り)';
// search_form_simple.php
$lang['equals'] = 'に一致';
$lang['starts with'] = 'で始まる';
$lang['contains'] = 'を含む';
$lang['ends with'] = 'で終わる';
$lang['sounds like'] = 'に近い';
// server_info.php
$lang['could_not_fetch_server_info'] = 'サーバーから LDAP 情報を取得できませんでした。これはあなたの PHP バージョンの<a href="http://bugs.php.net/bug.php?id=29587">不都合</a>によるかもしれません。あるいは、あなたの LDAP サーバーは、LDAP クライアントが RootDSE にアクセスするのを防ぐアクセス制御指定をしています。';
$lang['server_info_for'] = 'サーバー情報: ';
$lang['server_reports_following'] = 'サーバーは自分自身で次の情報を報告しました。';
$lang['nothing_to_report'] = 'このサーバーはなにも報告するものはありません。';
//update.php
$lang['update_array_malformed'] = 'update_array がおかしいです。これは phpLDAPadmin のバグかもしれませんので、報告してください。';
$lang['could_not_perform_ldap_modify'] = 'ldap_modify 操作が実行できませんでした。';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = '変更をしたいですか?';
$lang['attribute'] = '属性';
$lang['old_value'] = '古い値';
$lang['new_value'] = '新しい値';
$lang['attr_deleted'] = '[属性を削除しました]';
$lang['commit'] = 'コミット';
$lang['cancel'] = '取り消し';
$lang['you_made_no_changes'] = '変更はありません';
$lang['go_back'] = '戻る';
$lang['unable_create_samba_pass'] = 'samba パスワードを作成できませんでした。template_conf.php の設定を確認してください。';
// welcome.php
$lang['welcome_note'] = '左へのメニューを使用して操作します';
$lang['credits'] = 'クレジット';
$lang['changelog'] = '変更履歴';
$lang['documentation'] = 'ドキュメント';
$lang['donate'] = '寄附';
$lang['pla_logo'] = 'phpLDAPadmin ロゴ';
// Donate.php
$lang['donation_instructions'] = 'phpLDAPadmin プロジェクトに資金を寄贈するためには、PayPal ボタンのうちの 1 つを下に使用してください。';
$lang['donate_amount'] = '%s を寄贈';
$lang['purge_cache'] = 'キャッシュ破棄';
$lang['no_cache_to_purge'] = '破棄するキャッシュはありませんでした。';
$lang['done_purging_caches'] = '%s バイトのキャッシュを破棄しました。';
$lang['purge_cache_tooltip'] = 'サーバースキーマを含む、phpLDAPadmin のすべてのキャッシュを破棄しました。';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = '安全でないファイル名: ';
$lang['no_such_file'] = 'ファイルがありません: ';
//function.php
$lang['auto_update_not_setup'] = '設定ファイルの <b>%s</b>You の auto_uid_numbers が有効ですが、
auto_uid_number_mechanism が指定されていません。
この問題を修正してください。.';
$lang['uidpool_not_set'] = 'サーバー <b>%s</b> の設定で、"auto_uid_number_mechanism" を "uidpool" に指定していますが、
audo_uid_number_uid_pool_dn を指定していません。
続行する前にそれを指定してください';
$lang['uidpool_not_exist'] = 'It appears that the uidPool you specified in your configuration ("%s")
does not exist.';
$lang['specified_uidpool'] = 'サーバー <b>%s</b> の設定で「search」に「auto_uid_number_mechanism」を指定しました。
しかし「auto_uid_number_search_base」が指定されていません。
これを実行前に指定してください。';
$lang['auto_uid_invalid_credential'] = 'Unable to bind to <b>%s</b> with your with auto_uid credentials. 設定ファイルを確認してください。';
$lang['bad_auto_uid_search_base'] = 'phpLDAPadmin の設定で、サーバー %s に無効な auto_uid_search_base が指定されました';
$lang['auto_uid_invalid_value'] = '設定ファイルの auto_uid_number_mechanism の指定が間違った値("%s")です。
"uidpool" と "search" のみ有効です。
この問題を修正してください。';
$lang['error_auth_type_config'] = 'エラー: 設定ファイルのにエラーがあります。$servers セクションの auth_type は
「session」「cookie」「config」のみっつの値のみ許可されていますが、
許可されない「%s」が入力されました。';
$lang['unique_attrs_invalid_credential'] = 'Unable to bind to <b>%s</b> with your with unique_attrs credentials. 設定ファイルを確認してください。';
$lang['unique_attr_failed'] = '<b>%s</b> (<i>%s</i>) の <b>%s</b> への追加の試みは許可<b>されていません</b>。<br />その属性/値は別のエントリが所有しています。<p>そのエントリを<a href=\'%s\'>検索</a>などするしょう。';
$lang['php_install_not_supports_tls'] = 'インストールされている PHP は TLS をサポートしていません。';
$lang['could_not_start_tls'] = 'TLS を開始できません。LDAP サーバーの設定を確認してください。';
$lang['could_not_bind_anon'] = 'サーバーに匿名接続できませんでした。';
$lang['could_not_bind'] = 'LDAP サーバーに接続できませんでした。';
$lang['anonymous_bind'] = '匿名接続';
$lang['bad_user_name_or_password'] = 'ユーザー名かパスワードがおかしいです。もう一度行ってください。';
$lang['redirecting_click_if_nothing_happens'] = 'リダイレクト中... もし何も起こらなかったらここをクリックしてください。';
$lang['successfully_logged_in_to_server'] = 'サーバー <b>%s</b> へのログインに成功しました';
$lang['could_not_set_cookie'] = 'cookie を設定できませんでした。';
$lang['ldap_said'] = 'LDAP の回答: %s';
$lang['ferror_error'] = 'エラー';
$lang['fbrowse'] = '閲覧';
$lang['delete_photo'] = '写真削除';
$lang['install_not_support_blowfish'] = 'インストールされた PHP は blowfish 暗号化をサポートしていません。';
$lang['install_not_support_md5crypt'] = 'インストールされた PHP は md5crypt 暗号化をサポートしていません。';
$lang['install_no_mash'] = 'インストールされた PHP は mhash() をサポートしていません。SHA ハッシュをすることができません。';
$lang['jpeg_contains_errors'] = 'エラーを含む jpeg 写真<br />';
$lang['ferror_number'] = 'エラー番号: %s (%s)';
$lang['ferror_discription'] = '説明: %s <br /><br />';
$lang['ferror_number_short'] = 'エラー番号: %s<br /><br />';
$lang['ferror_discription_short'] = '説明: (利用可能な説明がありませんでした)<br />';
$lang['ferror_submit_bug'] = 'これは phpLDAPadmin の不都合ですか? もしそうなら <a href=\'%s\'>報告</a> してください。';
$lang['ferror_unrecognized_num'] = '未承認のエラー番号: ';
$lang['ferror_nonfatil_bug'] = '<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' />
<b>致命的でない phpLDAPadmin の不都合を発見しました!</b></td></tr><tr><td>エラー:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>ファイル:</td>
<td><b>%s</b> 行 <b>%s</b>, caller <b>%s</b></td></tr><tr><td>バージョン:</td><td>PLA: <b>%s</b>, PHP: <b>%s</b>, SAPI: <b>%s</b>
</td></tr><tr><td>ウェブサーバー:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>
<tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>Please check and see if this bug has been reported here</a>.</center></td></tr>
<tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>If it hasnt been reported, you may report this bug by clicking here</a>.</center></td></tr>
</table></center><br />';
$lang['ferror_congrats_found_bug'] = 'おめでとうございます! phpLDAPadmin で不都合を発見しました。<br /><br />
<table class=\'bug\'>
<tr><td>エラー:</td><td><b>%s</b></td></tr>
<tr><td>レベル:</td><td><b>%s</b></td></tr>
<tr><td>ファイル:</td><td><b>%s</b></td></tr>
<tr><td>行:</td><td><b>%s</b></td></tr>
<tr><td>Caller:</td><td><b>%s</b></td></tr>
<tr><td>PLA バージョン:</td><td><b>%s</b></td></tr>
<tr><td>PHP バージョン:</td><td><b>%s</b></td></tr>
<tr><td>PHP SAPI:</td><td><b>%s</b></td></tr>
<tr><td>Web サーバー:</td><td><b>%s</b></td></tr>
</table>
<br />
下記をクリックしてこの不都合を報告してください!';
//ldif_import_form
$lang['import_ldif_file_title'] = 'LDIF ファイルインポート';
$lang['select_ldif_file'] = 'LDIF ファイルを選択:';
$lang['dont_stop_on_errors'] = 'Don\'t stop on errors';
//ldif_import
$lang['add_action'] = '追加中...';
$lang['delete_action'] = '削除中...';
$lang['rename_action'] = '名称変更中...';
$lang['modify_action'] = '修正中...';
$lang['warning_no_ldif_version_found'] = 'バージョンが見つかりません。1 と仮定します。';
$lang['valid_dn_line_required'] = '有効な dn 行が必要です。';
$lang['missing_uploaded_file'] = 'アップロードファイルが見当たりません。';
$lang['no_ldif_file_specified'] = 'LDIF ファイルが指定されていません。もう一度行ってください。';
$lang['ldif_file_empty'] = 'アップロードされた LDIF ファイルが空です。';
$lang['empty'] = '空';
$lang['file'] = 'ファイル';
$lang['number_bytes'] = '%s バイト';
$lang['failed'] = '失敗しました';
$lang['ldif_parse_error'] = 'LDIF 解析エラー';
$lang['ldif_could_not_add_object'] = 'オブジェクトを追加できませんでした:';
$lang['ldif_could_not_rename_object'] = 'オブジェクトを名称変更できませんでした:';
$lang['ldif_could_not_delete_object'] = 'オブジェクトを削除できませんでした:';
$lang['ldif_could_not_modify_object'] = 'オブジェクトを修正できませんでした:';
$lang['ldif_line_number'] = '行番号:';
$lang['ldif_line'] = '行:';
// Exports
$lang['export_format'] = 'エクスポート書式';
$lang['line_ends'] = 'Line ends';
$lang['must_choose_export_format'] = 'エクスポート書式を選ばなければなりません。';
$lang['invalid_export_format'] = '無効なエクスポート書式';
$lang['no_exporter_found'] = 'No available exporter found.';
$lang['error_performing_search'] = '検索実行中にエラーに遭遇しました。';
$lang['showing_results_x_through_y'] = 'Showing results %s through %s.';
$lang['searching'] = '検索中...';
$lang['size_limit_exceeded'] = '通知です。検索サイズが制限を越えました。';
$lang['entry'] = 'エントリ';
$lang['ldif_export_for_dn'] = 'LDIF エクスポート: %s';
$lang['generated_on_date'] = '%s に phpLDAPadmin ( http://www.phpldapadmin.com/ ) で生成しました。';
$lang['total_entries'] = '総エントリ';
$lang['dsml_export_for_dn'] = 'DSLM エクスポート: %s';
$lang['include_system_attrs'] = 'システム属性を含む';
$lang['csv_spreadsheet'] = 'CSV (スプレッドシート)';
// logins
$lang['password_blank'] = 'パスワードが空です。';
$lang['no_one_logged_in'] = '誰もそのサーバーにログインしていません。';
$lang['could_not_logout'] = 'ログアウトできませんでした。';
$lang['unknown_auth_type'] = '未知の auth_type: %s';
$lang['logged_out_successfully'] = 'サーバー <b>%s</b> からログアウトに成功しました';
$lang['authenticate_to_server'] = 'サーバー %s へ認証';
$lang['warning_this_web_connection_is_unencrypted'] = '警告: このウェブ接続は暗号化されていません。';
$lang['not_using_https'] = 'あなたは \'https\' を使っていません。ログイン情報はブラウザからクリアテキストで送信されます、';
$lang['login_dn'] = 'ログイン DN';
$lang['user_name'] = 'ユーザー名';
$lang['password'] = 'パスワード';
$lang['authenticate'] = 'Authenticate';
$lang['login_not_allowed'] = 'すみません、この LDAP サーバーと phpLDAPadmin を使用することを許可していません。';
// Entry browser
$lang['entry_chooser_title'] = 'エントリ選択';
// Index page
$lang['need_to_configure'] = 'phpLDAPadmin の設定を必要があります。ファイル \'config.php\' の変更をしてください。サンプル設定ファイルとして \'config.php.example\' を提供しています。';
// Mass deletes
$lang['no_deletes_in_read_only'] = '読み込み専用モードでは削除は許可されていません。';
$lang['error_calling_mass_delete'] = 'mass_delete.php 呼び出し中のエラーです。POST 値から mass_delete が見かりません。';
$lang['mass_delete_not_array'] = 'mass_delete POST 辺りが配列ではありません。';
$lang['mass_delete_not_enabled'] = '一括削除が有効ではありません。次に進む前に config.php でそれを有効にしてください。';
$lang['mass_deleting'] = '一括削除中';
$lang['mass_delete_progress'] = 'サーバー "%s" から削除中';
$lang['malformed_mass_delete_array'] = 'おかしい mass_delete 配列です。';
$lang['no_entries_to_delete'] = '削除するエントリが選択されていません。';
$lang['deleting_dn'] = '%s 削除中';
$lang['total_entries_failed'] = '%s 個のエントリが %s 個のエントリ中で削除できませんでした。';
$lang['all_entries_successful'] = 'すべてのエントリの削除に成功しました。';
$lang['confirm_mass_delete'] = '%s エントリをサーバー %s から一括削除の確認';
$lang['yes_delete'] = 'はい, 削除します!';
// Renaming entries
$lang['non_leaf_nodes_cannot_be_renamed'] = '子エントリを持つエントリは名称変更できません (例えば名称変更の操作は子エントリでなければ許可されていない)';
$lang['no_rdn_change'] = 'RDN を変更しませんでした';
$lang['invalid_rdn'] = '無効な RDN 値';
$lang['could_not_rename'] = 'エントリの名称変更ができませんでした';
// Password checker
$lang['passwords_match'] = 'パスワードが一致しました!';
$lang['passwords_do_not_match'] = 'パスワードが一致しません!';
$lang['password_checker_tool'] = 'パスワードチェックツール';
$lang['to'] = 'To';
// Templates
$lang['using'] = '次を使用:';
$lang['switch_to'] = 'You may switch to the ';
$lang['default_template'] = 'デフォルトテンプレート';
// template_config
$lang['user_account'] = 'ユーザーアカウント (posixAccount)';
$lang['address_book_inet'] = 'アドレス帳エントリ (inetOrgPerson)';
$lang['address_book_moz'] = 'アドレス帳エントリ (mozillaOrgPerson)';
$lang['kolab_user'] = 'Kolab ユーザーエントリ';
$lang['organizational_unit'] = '所属組織';
$lang['new_organizational_unit'] = '新規所属組織';
$lang['organizational_role'] = '所属職務';
$lang['posix_group'] = 'Posix グループ';
$lang['samba_machine'] = 'Samba NT マシン';
$lang['samba3_machine'] = 'Samba 3 NT マシン';
$lang['samba_user'] = 'Samba ユーザー';
$lang['samba3_user'] = 'Samba 3 ユーザー';
$lang['samba3_group'] = 'Samba 3 グループマップ';
$lang['dns_entry'] = 'DNS エントリ';
$lang['simple_sec_object'] = '簡易セキュリティオブジェクト';
$lang['courier_mail_account'] = 'Courier メールアカウント';
$lang['courier_mail_alias'] = 'Courier メール別名';
$lang['ldap_alias'] = 'LDAP 別名';
$lang['sendmail_cluster'] = 'Sendmail クラスター';
$lang['sendmail_domain'] = 'Sendmail ドメイン';
$lang['sendmail_alias'] = 'Sendmail エイリアス';
$lang['sendmail_virt_dom'] = 'Sendmail 仮想ドメイン';
$lang['sendmail_virt_users'] = 'Sendmail 仮想ユーザー';
$lang['sendmail_relays'] = 'Sendmail リレー';
$lang['custom'] = 'カスタム';
$lang['samba_domain_name'] = '自分の Samba ドメイン名';
$lang['administrators'] = 'Administrators';
$lang['users'] = 'Users';
$lang['guests'] = 'Guests';
$lang['power_users'] = 'Power Users';
$lang['account_ops'] = 'Account Operators';
$lang['server_ops'] = 'Server Operators';
$lang['print_ops'] = 'Print Operators';
$lang['backup_ops'] = 'backup Operators';
$lang['replicator'] = 'Replicator';
$lang['unable_smb_passwords'] = ' Samba のパスワードを作成できませんでした。template_config.php の設定を確認してください。';
$lang['err_smb_conf'] = 'エラー: samba の設定にエラーがあります。';
$lang['err_smb_no_name_sid'] = 'エラー: samba ドメインの名前および sid を提供する必要があります。';
$lang['err_smb_no_name'] = 'エラー: 名前は samba ドメインに提供されませんでした。';
$lang['err_smb_no_sid'] = 'エラー: sid は samba ドメインに提供されませんでした。';
// Samba Account Template
$lang['samba_account'] = 'Samba アカウント';
$lang['samba_account_lcase'] = 'samba アカウント';
// New User (Posix) Account
$lang['t_new_user_account'] = '新規ユーザーアカウント';
$lang['t_hint_customize'] = 'ヒント: このテンプレートをカスタマイズする場合、ファイル templates/creation/new_user_template.php を編集します。';
$lang['t_name'] = '名前';
$lang['t_first_name'] = '名前';
$lang['t_last_name'] = '苗字';
$lang['t_first'] = 'first';
$lang['t_last'] = 'last';
$lang['t_state'] = 'State';
$lang['t_common_name'] = '共通名';
$lang['t_user_name'] = 'ユーザー名';
$lang['t_password'] = 'パスワード';
$lang['t_encryption'] = '暗号化';
$lang['t_login_shell'] = 'ログインシェル';
$lang['t_home_dir'] = 'ホームディレクトリ';
$lang['t_uid_number'] = 'UID 番号';
$lang['t_auto_det'] = '(自動採決)';
$lang['t_group'] = 'グループ';
$lang['t_gid_number'] = 'GID 番号';
$lang['t_uid'] = 'ユーザー ID';
$lang['t_err_passwords'] = 'パスワードが一致しません。戻ってからもう一度試してください。';
$lang['t_err_field_blank'] = '%s ブランクを残すことはできません。戻ってからもう一度試してください。';
$lang['t_err_field_num'] = 'フィールド %s は数値のみ入力でできます。戻ってからもう一度試してください。';
$lang['t_err_bad_container'] = '指定した内容(%s)は存在しません。戻ってからもう一度試してください。';
$lang['t_confirm_account_creation'] = 'アカウント作成確認';
$lang['t_secret'] = '[secret]';
$lang['t_create_account'] = 'アカウント作成';
$lang['t_verify'] = '確認';
// New Group (Posix)
$lang['t_new_posixgroup'] = '新規 Posix グループ';
// New Address Template
$lang['t_new_address'] = '新規アドレス帳エントリ';
$lang['t_organization'] = '組織';
$lang['t_address'] = '住所';
$lang['t_city'] = '都市';
$lang['t_postal_code'] = '郵便番号';
$lang['t_street'] = '築町村';
$lang['t_work_phone'] = '業務電話';
$lang['t_fax'] = 'Fax';
$lang['t_mobile'] = '携帯電話';
$lang['t_email'] = '電子メール';
$lang['t_container'] = 'コンテナー';
$lang['t_err_cn_blank'] = '一般名を空にすることはできません。戻ってからもう一度試してください。';
$lang['t_confim_creation'] = 'エントリ作成の確認:';
$lang['t_create_address'] = 'アドレス作成';
// default template
$lang['t_check_pass'] = 'パスワード検査...';
$lang['t_auto_submit'] = '(Auto evalutated on submission.)';
// compare form
$lang['compare'] = '比較';
$lang['comparing'] = '次の DN と比較中';
$lang['compare_dn'] = '次の DN と別の DN を比較する:';
$lang['with'] = 'with ';
$lang['compf_source_dn'] = '元の DN';
$lang['compf_dn_tooltip'] = 'この DN と別のものを比較';
$lang['switch_entry'] = 'エントリの切り替え';
$lang['no_value'] = '値がありません';
$lang['compare_with'] = '別のエントリと比較';
$lang['need_oclass'] = 'この属性 %s を追加するには次の ObjectClass のうちひとつを必要とします。';
// Time out page
$lang['session_timed_out_1'] = 'セッションは';
$lang['session_timed_out_2'] = '分活動しなかったのでタイムアウトです。自動でログアウトしました。';
$lang['log_back_in'] = '再ログインするには次のリンクをクリックしてください:';
$lang['session_timed_out_tree'] = '(セッションはタイムアウトです。自動でログアウトしました)';
$lang['timeout_at'] = '%s は活動的でなかったのでログアウト';
?>

Some files were not shown because too many files have changed in this diff Show More