RELEASE 0.9.8

This commit is contained in:
Deon George 2009-06-30 20:26:08 +10:00
parent 1f7f96122f
commit fdee1bdbd1
242 changed files with 34529 additions and 34446 deletions

26
INSTALL
View File

@ -1,5 +1,5 @@
For install instructions in non-English languages, see the files For install instructions in non-English languages, see the wiki:
in the "doc" directory. http://wiki.pldapadmin.com
* Requirements * Requirements
@ -11,27 +11,13 @@ in the "doc" directory.
1. Unpack the archive (if you're reading this, you already did that). 1. Unpack the archive (if you're reading this, you already did that).
2. Put the resulting 'phpldapadmin' directory somewhere in your webroot. 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. 4. Then, point your browser to the phpldapadmin directory.
* For additional help * For additional help
See the files in the "doc" directory. See the wiki:
http://wiki.pldapadmin.com
Join our mailing list: Join our mailing list:
https://lists.sourceforge.net/lists/listinfo/phpldapadmin-devel 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-0_9_8 $

View File

@ -22,7 +22,7 @@
* *
* NOTE: Commented out values in this file prefixed by //, represent the * NOTE: Commented out values in this file prefixed by //, represent the
* defaults that have been defined in config_default.php. * 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. * 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 * 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: */ /* 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['syslog'] = true;
# $config->custom->debug['file'] = '/tmp/pla_debug.log'; # $config->custom->debug['file'] = '/tmp/pla_debug.log';
@ -239,7 +239,7 @@ $ldapservers->SetValue($i,'login','pass','');
$ldapservers->SetValue($i,'server','tls',false); $ldapservers->SetValue($i,'server','tls',false);
$ldapservers->SetValue($i,'server','low_bandwidth',false); $ldapservers->SetValue($i,'server','low_bandwidth',false);
$ldapservers->SetValue($i,'appearance','password_hash','md5'); $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','string','');
$ldapservers->SetValue($i,'login','class',''); $ldapservers->SetValue($i,'login','class','');
$ldapservers->SetValue($i,'server','read_only',false); $ldapservers->SetValue($i,'server','read_only',false);

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 Please see http://wiki.pldapadmin.com/Translating now for information on
================== translating PLA.
$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.

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 <?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.18.2.7 2005/12/09 23:32:37 wurley Exp $
/** /**
* Adds an attribute/value pair to an object * Adds an attribute/value pair to an object
@ -19,12 +19,11 @@
*/ */
require './common.php'; require './common.php';
require TMPLDIR.'template_config.php';
if( $ldapserver->isReadOnly() ) 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()) 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']; $attr = $_POST['attr'];
$val = isset( $_POST['val'] ) ? $_POST['val'] : false;; $val = isset( $_POST['val'] ) ? $_POST['val'] : false;;
@ -35,7 +34,7 @@ $encoded_dn = rawurlencode( $dn );
$encoded_attr = rawurlencode( $attr ); $encoded_attr = rawurlencode( $attr );
if( ! $is_binary_val && $val == "" ) { 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): // special case for binary attributes (like jpegPhoto and userCertificate):
@ -44,14 +43,14 @@ if( ! $is_binary_val && $val == "" ) {
// of the attribute. // of the attribute.
// Check to see if this is a unique 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); $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( $is_binary_val ) {
if( 0 == $_FILES['val']['size'] ) 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'] ) ) { if( ! is_uploaded_file( $_FILES['val']['tmp_name'] ) ) {
@ -59,32 +58,32 @@ if( $is_binary_val ) {
switch($_FILES['val']['error']) { switch($_FILES['val']['error']) {
case 0: //no error; possible file attack! case 0: //no error; possible file attack!
pla_error( $lang['invalid_file'] ); pla_error( _('Security error: The file being uploaded may be malicious.') );
break; break;
case 1: //uploaded file exceeds the upload_max_filesize directive in php.ini 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; break;
case 2: //uploaded file exceeds the MAX_FILE_SIZE directive specified in the html form 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; break;
case 3: //uploaded file was only partially uploaded 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; break;
case 4: //no file was uploaded 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; break;
default: //a default error, just in case! :) default: //a default error, just in case! :)
pla_error( $lang['invalid_file'] ); pla_error( _('Security error: The file being uploaded may be malicious.') );
break; break;
} }
else else
pla_error( $lang['invalid_file'] ); pla_error( _('Security error: The file being uploaded may be malicious.') );
} }
$file = $_FILES['val']['tmp_name']; $file = $_FILES['val']['tmp_name'];
@ -118,14 +117,14 @@ elseif (strcasecmp($attr,'sambaLMPassword') == 0) {
} }
$new_entry = array( $attr => $val ); $new_entry = array( $attr => $val );
$result = @ldap_mod_add( $ldapserver->connect(), $dn, $new_entry ); $result = $ldapserver->attrModify($dn,$new_entry);
if ($result) 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)); $ldapserver->server_id,$encoded_dn,$encoded_attr));
else 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 * Check if we need to append the ;binary option to the name

View File

@ -1,5 +1,5 @@
<?php <?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.13.2.2 2005/12/09 14:27:32 wurley Exp $
/** /**
* Displays a form for adding an attribute/value to an LDAP entry. * Displays a form for adding an attribute/value to an LDAP entry.
@ -17,9 +17,9 @@
require './common.php'; require './common.php';
if( $ldapserver->isReadOnly() ) 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()) 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']; $dn = $_GET['dn'];
$encoded_dn = rawurlencode( $dn ); $encoded_dn = rawurlencode( $dn );
@ -31,12 +31,12 @@ include './header.php'; ?>
<body> <body>
<h3 class="title"><?php echo sprintf( $lang['add_new_attribute'], htmlspecialchars( $rdn ) ); ?></b></h3> <h3 class="title"><?php echo sprintf( _('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="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 ) ) if( ! is_array( $oclasses ) )
$oclasses = array( $oclasses ); $oclasses = array( $oclasses );
@ -59,7 +59,7 @@ sort( $avail_attrs );
$avail_binary_attrs = array(); $avail_binary_attrs = array();
foreach( $avail_attrs as $i => $attr ) { foreach( $avail_attrs as $i => $attr ) {
if( is_attr_binary( $ldapserver, $attr ) ) { if ($ldapserver->isAttrBinary($attr)) {
$avail_binary_attrs[] = $attr; $avail_binary_attrs[] = $attr;
unset( $avail_attrs[ $i ] ); unset( $avail_attrs[ $i ] );
} }
@ -70,7 +70,7 @@ foreach( $avail_attrs as $i => $attr ) {
<center> <center>
<?php echo $lang['add_new_attribute']; <?php echo _('Add new attribute');
if( is_array( $avail_attrs ) && count( $avail_attrs ) > 0 ) { ?> if( is_array( $avail_attrs ) && count( $avail_attrs ) > 0 ) { ?>
@ -104,20 +104,20 @@ if( is_array( $avail_attrs ) && count( $avail_attrs ) > 0 ) { ?>
</select> </select>
<input type="text" name="val" size="20" /> <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> </form>
<?php } else { ?> <?php } else { ?>
<br /> <br />
<br /> <br />
<small>(<?php echo $lang['no_new_attrs_available']; ?>)</small> <small>(<?php echo _('no new attributes available for this entry'); ?>)</small>
<br /> <br />
<br /> <br />
<?php } ?> <?php } ?>
<?php echo $lang['add_new_binary_attr']; <?php echo _('Add new binary attribute');
if( count( $avail_binary_attrs ) > 0 ) { ?> if( count( $avail_binary_attrs ) > 0 ) { ?>
<!-- Form to add a new BINARY attribute to this entry --> <!-- Form to add a new BINARY attribute to this entry -->
@ -152,13 +152,13 @@ if( count( $avail_binary_attrs ) > 0 ) { ?>
</select> </select>
<input type="file" name="val" size="20" /> <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' ) ) <?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 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> </form>
@ -167,7 +167,7 @@ if( count( $avail_binary_attrs ) > 0 ) { ?>
<br /> <br />
<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 } ?> <?php } ?>

View File

@ -1,5 +1,5 @@
<?php <?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.17.2.5 2005/12/09 23:32:37 wurley Exp $
/** /**
* Adds an objectClass to the specified dn. * Adds an objectClass to the specified dn.
@ -22,9 +22,9 @@
require './common.php'; require './common.php';
if( $ldapserver->isReadOnly() ) 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()) 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'] ); $dn = rawurldecode( $_POST['dn'] );
$new_oclass = unserialize( rawurldecode( $_POST['new_oclass'] ) ); $new_oclass = unserialize( rawurldecode( $_POST['new_oclass'] ) );
@ -32,7 +32,7 @@ $new_attrs = $_POST['new_attrs'];
$encoded_dn = rawurlencode( $dn ); $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." ); pla_error( "ObjectClasses are flagged as read only in the phpLDAPadmin configuration." );
$new_entry = array(); $new_entry = array();
@ -45,20 +45,20 @@ if( is_array( $new_attrs ) && count( $new_attrs ) > 0 )
foreach( $new_attrs as $attr => $val ) { foreach( $new_attrs as $attr => $val ) {
// Check to see if this is a unique 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', $search_href = sprintf('search.php?search=true&form=advanced&server_id=%s&filter=%s=%s',
$ldapserver->server_id,$attr,$badattr); $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; $new_entry[ $attr ] = $val;
} }
$add_res = @ldap_mod_add( $ldapserver->connect(), $dn, $new_entry ); $add_res = $ldapserver->attrModify($dn,$new_entry);
if (! $add_res) 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 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 <?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.23.2.6 2005/12/09 23:32:37 wurley Exp $
/** /**
* This page may simply add the objectClass and take you back to the edit page, * This page may simply add the objectClass and take you back to the edit page,
@ -23,12 +23,12 @@
require './common.php'; require './common.php';
if( $ldapserver->isReadOnly() ) 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()) 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'])) if (! isset($_REQUEST['new_oclass']))
pla_error( $lang['no_objectclasses_selected']); pla_error( _('You did not select any ObjectClasses for this object. Please go back and do so.'));
$new_oclass = $_REQUEST['new_oclass']; $new_oclass = $_REQUEST['new_oclass'];
$dn = rawurldecode( $_REQUEST['dn'] ); $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 * If it hasn't, present a form to have the user enter values for all the
* newly required attrs. */ * newly required attrs. */
$entry = get_object_attrs( $ldapserver, $dn, true ); $entry = $ldapserver->getDNAttrs($dn,true);
$current_attrs = array(); $current_attrs = array();
foreach( $entry as $attr => $junk ) foreach( $entry as $attr => $junk )
@ -85,15 +85,15 @@ if( count( $needed_attrs ) > 0 ) {
include './header.php'; ?> include './header.php'; ?>
<body> <body>
<h3 class="title"><?php echo $lang['new_required_attrs']; ?></h3> <h3 class="title"><?php echo _('New Required Attributes'); ?></h3>
<h3 class="subtitle"><?php echo $lang['requires_to_add'] . ' ' . count($needed_attrs) . <h3 class="subtitle"><?php echo _('This action requires you to add') . ' ' . count($needed_attrs) .
' ' . $lang['new_attributes']; ?></h3> ' ' . _('new attributes'); ?></h3>
<small> <small>
<?php echo $lang['new_required_attrs_instructions']; <?php echo _('Instructions: In order to add these objectClass(es) to this entry, you must specify');
echo ' ' . count( $needed_attrs ) . ' ' . $lang['new_attributes'] . ' '; echo ' ' . count( $needed_attrs ) . ' ' . _('new attributes') . ' ';
echo $lang['that_this_oclass_requires']; ?> echo _('that this objectClass requires. You can do so in this form.'); ?>
</small> </small>
@ -106,7 +106,7 @@ if( count( $needed_attrs ) > 0 ) {
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" /> <input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<table class="edit_dn" cellspacing="0"> <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 ) { ?> <?php foreach( $needed_attrs as $count => $attr ) { ?>
@ -117,7 +117,7 @@ if( count( $needed_attrs ) > 0 ) {
</table> </table>
<br /> <br />
<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> </form>
</body> </body>
@ -125,12 +125,12 @@ if( count( $needed_attrs ) > 0 ) {
<?php } else { <?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) if (! $add_res)
pla_error("Could not perform ldap_mod_add operation.", pla_error("Could not perform ldap_mod_add operation.",
$ldapserver->error(),$ldapserver->errno()); $ldapserver->error(),$ldapserver->errno());
else 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)); $ldapserver->server_id,$encoded_dn));
} }

View File

@ -1,5 +1,5 @@
<?php <?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.19.2.5 2005/12/09 23:32:37 wurley Exp $
/** /**
* Adds a value to an attribute for a given dn. * Adds a value to an attribute for a given dn.
@ -22,9 +22,9 @@
require './common.php'; require './common.php';
if( $ldapserver->isReadOnly() ) 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()) 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']; $attr = $_POST['attr'];
$new_value = $_POST['new_value']; $new_value = $_POST['new_value'];
@ -34,8 +34,8 @@ $is_binary_val = isset( $_POST['binary'] ) ? true : false;
$encoded_dn = rawurlencode( $dn ); $encoded_dn = rawurlencode( $dn );
$encoded_attr = rawurlencode( $attr ); $encoded_attr = rawurlencode( $attr );
if( is_attr_read_only( $ldapserver, $attr ) ) if ($ldapserver->isAttrReadOnly($attr))
pla_error(sprintf($lang['attr_is_read_only'],htmlspecialchars( $attr ))); pla_error(sprintf(_('The attribute "%s" is flagged as read-only in the phpLDAPadmin configuration.'),htmlspecialchars( $attr )));
// special case for binary attributes: // special case for binary attributes:
// we must go read the data from the file. // we must go read the data from the file.
@ -52,9 +52,9 @@ if( $is_binary_val ) {
$new_entry = array( $attr => $new_value ); $new_entry = array( $attr => $new_value );
// Check to see if this is a unique Attribute // 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); $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 // 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, if( run_hook ( 'pre_attr_add', array ( 'server_id' => $ldapserver->server_id, 'dn' => $dn, 'attr_name' => $attr,
'new_value' => $new_entry ) ) ) { 'new_value' => $new_entry ) ) ) {
$add_result = @ldap_mod_add( $ldapserver->connect(), $dn, $new_entry ); $add_result = $ldapserver->attrModify($dn,$new_entry);
if (! $add_result) 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()); $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)); $ldapserver->server_id,$encoded_dn,$encoded_attr));
?> ?>

View File

@ -1,5 +1,5 @@
<?php <?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.34.2.4 2005/12/11 08:59:08 wurley Exp $
/** /**
* Displays a form to allow the user to enter a new value to add * Displays a form to allow the user to enter a new value to add
@ -18,194 +18,182 @@
require './common.php'; require './common.php';
if( $ldapserver->isReadOnly() ) 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()) if (! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] ); pla_error(_('Not enough information to login to server. Please check your configuration.'));
$attr = $_GET['attr']; $attr = $_GET['attr'];
$dn = isset( $_GET['dn'] ) ? $_GET['dn'] : null; $dn = isset($_GET['dn']) ? $_GET['dn'] : null;
$encoded_dn = rawurlencode( $dn ); $encoded_dn = rawurlencode($dn);
$encoded_attr = rawurlencode( $attr ); $encoded_attr = rawurlencode($attr);
if (! is_null($dn)) if (! is_null($dn))
$rdn = get_rdn( $dn ); $rdn = get_rdn($dn);
else else
$rdn = null; $rdn = null;
$current_values = get_object_attr( $ldapserver, $dn, $attr ); $current_values = $ldapserver->getDNAttr($dn,$attr);
$num_current_values = ( is_array($current_values) ? count($current_values) : 0 ); if ($current_values)
$is_object_class = ( 0 == strcasecmp( $attr, 'objectClass' ) ) ? true : false; $num_current_values = (is_array($current_values) ? count($current_values) : 1);
$is_jpeg_photo = is_jpeg_photo( $ldapserver, $attr ); //( 0 == strcasecmp( $attr, 'jpegPhoto' ) ) ? true : false; else
$num_current_values = 0;
if( $is_object_class ) { $is_object_class = (strcasecmp($attr, 'objectClass') == 0) ? true : false;
// fetch all available objectClasses and remove those from the list that are already defined in the entry
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(); $schema_oclasses = $ldapserver->SchemaObjectClasses();
foreach( $current_values as $oclass ) foreach($current_values as $oclass)
unset( $schema_oclasses[ strtolower( $oclass ) ] ); unset($schema_oclasses[strtolower($oclass)]);
} else { } else {
$schema_attr = $ldapserver->getSchemaAttribute($attr); $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"> printf('%s <b>%s</b> %s <b>%s</b>:',
<?php echo $lang['add_new']; ?> _('Current list of'),$num_current_values,_('values for attribute'),htmlspecialchars($attr));
<b><?php echo htmlspecialchars($attr); ?></b>
<?php echo $lang['value_to']; ?>
<b><?php echo htmlspecialchars($rdn); ?></b></h3>
<h3 class="subtitle"> if ($num_current_values) {
<?php echo $lang['server']; ?>: if ($ldapserver->isJpegPhoto($attr)) {
<b><?php echo $ldapserver->name; ?></b> &nbsp;&nbsp;&nbsp;
<?php echo $lang['distinguished_name']; ?>: <b><?php echo htmlspecialchars( $dn ); ?></b></h3>
<?php echo $lang['current_list_of']; ?> <b><?php echo $num_current_values; ?></b> echo '<table><tr><td>';
<?php echo $lang['values_for_attribute']; ?> <b><?php echo htmlspecialchars($attr); ?></b>: draw_jpeg_photos($ldapserver, $dn, $attr, false);
echo '</td></tr></table>';
<?php if ($num_current_values) { ?> # <!-- Temporary warning until we find a way to add jpegPhoto values without an INAPROPRIATE_MATCHING error -->
<?php if( $is_jpeg_photo ) { ?> 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> } elseif ($ldapserver->isAttrBinary($attr)) {
<?php draw_jpeg_photos( $ldapserver, $dn, $attr, false ); ?> echo '<ul>';
</td></tr></table>
<!-- Temporary warning until we find a way to add jpegPhoto values without an INAPROPRIATE_MATCHING error --> if (is_array($vals)) {
<p><small> for ($i=1; $i<=count($vals); $i++) {
<?php echo $lang['inappropriate_matching_note']; ?> $href = sprintf('download_binary_attr.php?server_id=%s&amp;dn=%s&amp;attr=%s&amp;value_num=%s',
</small></p> $ldapserver->server_id,$encoded_dn,$attr,$i-1);
<!-- End of temporary warning -->
<?php } else if( is_attr_binary( $ldapserver, $attr ) ) { ?> printf('<li><a href="%s"><img src="images/save.png" />%s (%s)</a></li>',
<ul> $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++ ) { echo '</ul>';
# <!-- Temporary warning until we find a way to add jpegPhoto values without an INAPROPRIATE_MATCHING error -->
$href = sprintf('download_binary_attr.php?server_id=%s&amp;dn=%s&amp;attr=%s&amp;value_num=%s', printf('<p><small>%s</small></p>',
$ldapserver->server_id,$encoded_dn,$attr,$i-1); ?> _('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 -->
<li><a href="<?php echo $href; ?>"><img src="images/save.png" /> <?php echo $lang['download_value'] . ' ' . $i; ?>)</a></li>
<?php }
} else { } else {
$href = sprintf('download_binary_attr.php?server_id=%s&amp;dn=%s&amp;attr=%s',$ldapserver->server_id,$encoded_dn,$attr); ?> echo '<ul class="current_values">';
<li><a href="<?php echo $href; ?>"><img src="images/save.png" /> <?php echo $lang['download_value']; ?></a></li>
<?php } ?>
</ul> if (is_array($current_values)) {
<!-- Temporary warning until we find a way to add jpegPhoto values without an INAPROPRIATE_MATCHING error --> if (strcasecmp($attr,'userPassword') == 0) {
<p><small> foreach ($current_values as $key => $value) {
<?php echo $lang['inappropriate_matching_note']; ?> if (obfuscate_password_display(get_enc_type($value)))
</small></p> echo '<li><nobr>'.preg_replace('/./','*',$value).'<br /></li>';
<!-- End of temporary warning --> 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 ) { ?> echo _('Enter the value you would like to add:');
<li><nobr><?php echo htmlspecialchars(($val)); ?></nobr></li> echo '<br /><br />';
<?php } ?>
<?php } else { ?> if ($is_object_class) {
<li><nobr><?php echo htmlspecialchars(($current_values)); ?></nobr></li> echo '<form action="add_oclass_form.php" method="post" class="new_value">';
<?php } ?> 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 } ?> printf('<option value="%s">%s</option>',$oclass->getName(),$oclass->getName());
<?php } else { ?> }
<br /> echo '</select>';
<br />
<?php } ?>
<?php echo $lang['enter_value_to_add']; ?> echo '<br />';
<br /> printf('<input type="submit" value="%s" />',_('Add new ObjectClass'));
<br /> 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"> } else {
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" /> echo '<form action="add_value.php" method="post" class="new_value" name="new_value_form">';
<input type="hidden" name="dn" value="<?php echo $encoded_dn; ?>" />
<select name="new_oclass[]" multiple="true" size="15">
<?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 printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
if ($oclass->getType() == "structural") continue; ?> 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> # draw the "browse" button next to this input box if this attr houses DNs:
<br /> if ($ldapserver->isDNAttr($attr))
<input type="submit" value="<?php echo $lang['add_new_objectclass']; ?>" /> draw_chooser_link("new_value_form.new_value", false);
}
}
<br /> printf('<input type="submit" name="submit" value="%s" />',_('Add New Value'));
<?php if ($config->GetValue('appearance','show_hints')) { ?> echo '<br />';
<small>
<br />
<img src="images/light.png" /><span class="hint"><?php echo $lang['new_required_attrs_note']; ?></span>
</small>
<?php }
} 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 ($schema_attr->getType())
if( is_attr_binary( $ldapserver, $attr ) ) echo "enctype=\"multipart/form-data\""; ?>> printf('<small><b>%s:</b> %s</small><br />',_('Syntax'),$schema_attr->getType());
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" /> if ($schema_attr->getMaxLength())
<input type="hidden" name="dn" value="<?php echo $encoded_dn; ?>" /> printf('<small><b>%s:</b> %s %s</small><br />',
<input type="hidden" name="attr" value="<?php echo $encoded_attr; ?>" /> _('Maximum Length'),number_format($schema_attr->getMaxLength()),_('characters'));
<?php if( is_attr_binary( $ldapserver, $attr ) ) { ?> echo '</form>';
<input type="file" name="new_value" /> }
<input type="hidden" name="binary" value="true" /> echo '</body></html>';
?>
<?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>

View File

@ -1,5 +1,5 @@
<?php <?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.13.4.1 2005/11/26 05:17:06 wurley Exp $
/** /**
* This script alters the session variable 'tree', collapsing it * This script alters the session variable 'tree', collapsing it
@ -19,24 +19,21 @@
require './common.php'; require './common.php';
$dn = $_GET['dn']; $dn = $_GET['dn'];
$encoded_dn = rawurlencode($dn); $tree = get_cached_item($ldapserver->server_id,'tree');
$tree['browser'][$dn]['open'] = false;
initialize_session_tree(); set_cached_item($ldapserver->server_id,'tree','null',$tree);
if (array_key_exists($dn,$_SESSION['tree'][$ldapserver->server_id]))
unset($_SESSION['tree'][$ldapserver->server_id][$dn]);
/* This is for Opera. By putting "random junk" in the query string, it thinks /* 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 that it does not have a cached version of the page, and will thus
fetch the page rather than display the cached version */ fetch the page rather than display the cached version */
$time = gettimeofday(); $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. /* If cookies were disabled, build the url parameter for the session id.
It will be append to the url to be redirect */ It will be append to the url to be redirect */
$id_session_param = ""; $id_session_param = '';
if (SID != "") if (SID != '')
$id_session_param = "&".session_name()."=".session_id(); $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 <?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.12.2.5 2005/12/17 01:28:33 wurley Exp $
/** /**
* Compare two DNs - the destination DN is editable. * Compare two DNs - the destination DN is editable.
* @package phpLDAPadmin * @package phpLDAPadmin
*/ */
/** /**
* @todo: Must fix dc/domainComponent evaluation.
*/ */
require './common.php'; 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'] : ''); $server_id_dst = (isset($_POST['server_id_dst']) ? $_POST['server_id_dst'] : '');
$ldapserver_src = $ldapservers->Instance($server_id_src); $ldapserver_src = $ldapservers->Instance($server_id_src);
if ( ! $ldapserver_src->haveAuthInfo()) if (! $ldapserver_src->haveAuthInfo())
pla_error($lang['not_enough_login_info']); pla_error(_('Not enough information to login to server. Please check your configuration.'));
$ldapserver_dst = $ldapservers->Instance($server_id_dst); $ldapserver_dst = $ldapservers->Instance($server_id_dst);
if ( ! $ldapserver_src->haveAuthInfo()) if (! $ldapserver_src->haveAuthInfo())
pla_error($lang['not_enough_login_info']); 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))); if (! $ldapserver_src->dnExists($dn_src))
dn_exists($ldapserver_dst,$dn_dst) or pla_error(sprintf($lang['no_such_entry'],pretty_print_dn($dn_dst))); 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(); $friendly_attrs = process_friendly_attr_table();
$attrs_src = get_object_attrs($ldapserver_src,$dn_src,false,$config->GetValue('deref','view')); $attrs_src = $ldapserver_src->getDNAttrs($dn_src,false,$config->GetValue('deref','view'));
$attrs_dst = get_object_attrs($ldapserver_dst,$dn_dst,false,$config->GetValue('deref','view')); $attrs_dst = $ldapserver_dst->getDNAttrs($dn_dst,false,$config->GetValue('deref','view'));
# Get a list of all attributes. # Get a list of all attributes.
$attrs_all = array_keys($attrs_src); $attrs_all = array_keys($attrs_src);
@ -48,18 +51,18 @@ include './header.php';
<table class="comp_dn" border=0> <table class="comp_dn" border=0>
<tr><td colspan=6> <tr><td colspan=6>
<h3 class="title"><?php echo $lang['comparing']; ?></h3> <h3 class="title"><?php echo _('Comparing the following DNs'); ?></h3>
</td></tr> </td></tr>
<tr> <tr>
<td colspan=2 width=20%> <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>
<td colspan=2 width=40%> <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>
<td colspan=2 width=40%> <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> </td>
</tr> </tr>
<tr> <tr>
@ -67,16 +70,16 @@ include './header.php';
<form action="compare.php" method="post" name="compare_form"> <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_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="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_src" value="<?php echo htmlspecialchars($dn_dst); ?>" />
<input type="hidden" name="dn_dst" value="<?php echo htmlspecialchars( $dn_src ); ?>" /> <input type="hidden" name="dn_dst" value="<?php echo htmlspecialchars($dn_src); ?>" />
<input type="submit" value="<?php echo $lang['switch_entry']; ?>" /> <input type="submit" value="<?php echo _('Switch Entry'); ?>" />
</form> </form>
</td> </td>
</tr> </tr>
<?php <?php
if(! $attrs_all || ! is_array($attrs_all)) { if (! $attrs_all || ! is_array($attrs_all)) {
printf('<tr><td colspan="2">(%s)</td></tr>',$lang['no_attributes']); printf('<tr><td colspan="2">(%s)</td></tr>',_('This entry has no attributes'));
print '</table>'; print '</table>';
print '</html>'; print '</html>';
die(); die();
@ -93,7 +96,7 @@ foreach ($attrs_all as $attr) {
continue; continue;
# Has the config.php specified that this attribute is to be hidden or shown? # 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; continue;
?> ?>
@ -121,7 +124,7 @@ foreach ($attrs_all as $attr) {
# is there a user-friendly translation available for this attribute? # is there a user-friendly translation available for this attribute?
if (isset($friendly_attrs[strtolower($attr)])) { if (isset($friendly_attrs[strtolower($attr)])) {
$attr_display = $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 { } else {
$attr_note = ''; $attr_note = '';
@ -139,7 +142,7 @@ foreach ($attrs_all as $attr) {
$required_by .= $required . ' '; $required_by .= $required . ' ';
# It seems that some LDAP servers (Domino) returns attributes in lower case? # 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 . ' '; $required_by .= $required . ' ';
break; break;
@ -160,7 +163,7 @@ foreach ($attrs_all as $attr) {
if ($side == 'src') { ?> if ($side == 'src') { ?>
<td class="attr"> <td class="attr">
<?php $schema_href="schema.php?server_id=$server_id_src&amp;view=attributes&amp;viewvalue=".real_attr_name($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>
<td class="attr_note"> <td class="attr_note">
@ -169,7 +172,7 @@ foreach ($attrs_all as $attr) {
<?php } <?php }
if ($required_by) { 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"> <td colspan=2 class="attr_note">
<sup><small><?php echo $required_note; ?></small></sup> <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> <td colspan=2 class="attr_note">&nbsp;</td>
<?php } ?> <?php } ?>
<?php if (is_attr_read_only($ldapserver,$attr)) { ?> <?php if ($ldapserver->isAttrReadOnly($attr)) { ?>
<small>(<acronym title="<?php echo $lang['read_only_tooltip']; ?>"><?php echo $lang['read_only']; ?></acronym>)</small> <small>(<acronym title="<?php echo _('This attribute has been flagged as read only by the phpLDAPadmin administrator'); ?>"><?php echo _('read only'); ?></acronym>)</small>
<?php } ?> <?php } ?>
</td> </td>
@ -204,7 +207,7 @@ foreach ($attrs_all as $attr) {
print '<td colspan=2>&nbsp</td><td class="attr">'; print '<td colspan=2>&nbsp</td><td class="attr">';
if (! isset($attrs_src[$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; $toJump = 1;
continue; continue;
} else } else
@ -217,7 +220,7 @@ foreach ($attrs_all as $attr) {
print '<td colspan=2>&nbsp</td><td class="val">'; print '<td colspan=2>&nbsp</td><td class="val">';
if (! isset($attrs_dst[$attr])) { if (! isset($attrs_dst[$attr])) {
echo "<small>&lt;". $lang['no_value']."&gt;</small></td>"; echo "<small>&lt;". _('No Value')."&gt;</small></td>";
$toJump = 1; $toJump = 1;
continue; continue;
} else } else
@ -228,24 +231,26 @@ foreach ($attrs_all as $attr) {
} }
if ($toJump) continue; if ($toJump) continue;
if (! is_array($vals))
$vals = array($vals);
/* /*
* Is this attribute a jpegPhoto? * Is this attribute a jpegPhoto?
*/ */
if (is_jpeg_photo($ldapserver,$attr)) { if ($ldapserver->isJpegPhoto($attr)) {
switch ($side) { switch ($side) {
case 'src': case 'src':
// Don't draw the delete buttons if there is more than one jpegPhoto // Don't draw the delete buttons if there is more than one jpegPhoto
// (phpLDAPadmin can't handle this case yet) // (phpLDAPadmin can't handle this case yet)
draw_jpeg_photos( $ldapserver, $dn_src, $attr, false ); draw_jpeg_photos($ldapserver,$dn_src,$attr,false);
break; break;
case 'dst': case 'dst':
if( $ldapserver_dst->isReadOnly() || is_attr_read_only( $ldapserver_dst, $attr ) ) if ($ldapserver_dst->isReadOnly() || $ldapserver_dst->isAttrReadOnly($attr))
draw_jpeg_photos( $ldapserver, $dn_dst, $attr, false ); draw_jpeg_photos($ldapserver,$dn_dst,$attr,false);
else else
draw_jpeg_photos( $ldapserver, $dn_dst, $attr, true ); draw_jpeg_photos($ldapserver,$dn_dst,$attr,true);
break; break;
} }
@ -258,7 +263,7 @@ foreach ($attrs_all as $attr) {
/* /*
* Is this attribute binary? * Is this attribute binary?
*/ */
if( is_attr_binary( $ldapserver, $attr ) ) { if ($ldapserver->isAttrBinary($attr)) {
switch ($side) { switch ($side) {
case 'src': case 'src':
$href = sprintf("download_binary_attr.php?server_id=%s&dn=%s&attr=%s",$ldapserver->server_id,$encoded_dn_src,$attr); $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> <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 <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 { ?> <?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 } <?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 } ?> <?php } ?>
@ -304,22 +309,23 @@ foreach ($attrs_all as $attr) {
* simply draw the attribute values and continue. * simply draw the attribute values and continue.
*/ */
if( $side == 'dst' && ($ldapserver->isReadOnly() || is_attr_read_only( $ldapserver, $attr )) ) { if ($side == 'dst' && ($ldapserver->isReadOnly() || $ldapserver->isAttrReadOnly($attr))) {
if( is_array( $vals ) ) { if (is_array($vals)) {
foreach( $vals as $i => $val ) { foreach ($vals as $i => $val) {
if( trim( $val ) == "" ) if (trim($val) == "")
echo "<span style=\"color:red\">[" . $lang['empty'] . "]</span><br />\n"; echo "<span style=\"color:red\">[" . _('empty') . "]</span><br />\n";
elseif( 0 == strcasecmp( $attr, 'userPassword' ) && $config->GetValue('appearance','obfuscate_password_display')) elseif (0 == strcasecmp($attr,'userPassword') && $config->GetValue('appearance','obfuscate_password_display'))
echo preg_replace( '/./', '*', $val ) . "<br />"; echo preg_replace('/./','*',$val) . "<br />";
else else
echo htmlspecialchars( $val ) . "<br />"; echo htmlspecialchars($val) . "<br />";
} }
// @todo: redundant - $vals is always an array.
} else { } else {
if( 0 == strcasecmp( $attr, 'userPassword' ) && $config->GetValue('appearance','obfuscate_password_display')) if (0 == strcasecmp($attr,'userPassword') && $config->GetValue('appearance','obfuscate_password_display'))
echo preg_replace( '/./', '*', $vals ) . "<br />"; echo preg_replace('/./','*',$vals) . "<br />";
else else
echo $vals . "<br />"; echo $vals . "<br />";
} }
@ -330,13 +336,13 @@ foreach ($attrs_all as $attr) {
/* /*
* Is this a userPassword attribute? * Is this a userPassword attribute?
*/ */
if( ! strcasecmp( $attr, 'userpassword' ) ) { if (! strcasecmp($attr,'userpassword')) {
$user_password = $vals[0]; $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) // Set the default hashing type if the password is blank (must be newly created)
if( $user_password == '' ) { if ($user_password == '') {
$enc_type = get_default_hash( $server_id ); $enc_type = get_default_hash($server_id);
} }
if ($side == 'dst') { ?> if ($side == 'dst') { ?>
@ -348,17 +354,17 @@ foreach ($attrs_all as $attr) {
<?php } <?php }
if( obfuscate_password_display( $enc_type ) ) { if (obfuscate_password_display($enc_type)) {
echo htmlspecialchars( preg_replace( "/./", "*", $user_password ) ); echo htmlspecialchars(preg_replace('/./','*',$user_password));
} else { } else {
echo htmlspecialchars( $user_password ); echo htmlspecialchars($user_password);
} ?> } ?>
<br /> <br />
<?php if ($side == 'dst') { ?> <?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); <?php echo enc_type_select_list($enc_type);
@ -370,15 +376,15 @@ foreach ($attrs_all as $attr) {
<!-- <!--
function passwordComparePopup() 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'; 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; mywindow.opener = self;
} }
--> -->
</script> </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> </td>
@ -388,17 +394,17 @@ foreach ($attrs_all as $attr) {
/* /*
* Is this a boolean attribute? * Is this a boolean attribute?
*/ */
if( is_attr_boolean( $ldapserver, $attr) ) { if ($ldapserver->isAttrBoolean($attr)) {
$val = $vals[0]; $val = $vals[0];
if ($side = 'dst') {?> 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 ); ?>]"> <select name="new_values[<?php echo htmlspecialchars($attr); ?>]">
<option value="TRUE"<?php echo ($val=='TRUE' ? ' selected' : ''); ?>><?php echo $lang['true']; ?></option> <option value="TRUE"<?php echo ($val=='TRUE' ? ' selected' : ''); ?>><?php echo _('true'); ?></option>
<option value="FALSE"<?php echo ($val=='FALSE' ? ' selected' : ''); ?>><?php echo $lang['false']; ?></option> <option value="FALSE"<?php echo ($val=='FALSE' ? ' selected' : ''); ?>><?php echo _('false'); ?></option>
<option value="">(<?php echo $lang['none_remove_value']; ?>)</option> <option value="">(<?php echo _('none, remove value'); ?>)</option>
</select> </select>
<?php } ?> <?php } ?>
@ -412,28 +418,28 @@ foreach ($attrs_all as $attr) {
* End of special case attributes (non plain text). * End of special case attributes (non plain text).
*/ */
foreach( $vals as $i => $val ) { foreach ($vals as $i => $val) {
if ($side == 'dst') { 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 // 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. // draw_chooser_link() to identify it after the user clicks.
$input_id = "new_values_" . htmlspecialchars($attr) . "_" . $i; ?> $input_id = "new_values_" . htmlspecialchars($attr) . "_" . $i; ?>
<!-- The old_values array will let update.php know if the entry contents changed <!-- 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. --> 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 } <?php }
// Is this value is a structural objectClass, make it read-only // 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); <?php $schema_object = $ldapserver->getSchemaObjectClass($val);
if ($schema_object->getType() == 'structural') { 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') {?> 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> <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> <a href="<?php echo htmlspecialchars($val); ?>" target="new"><img style="vertical-align: center" src="images/dc.png" /></a>
<?php } <?php }
if( is_multi_line_attr( $attr, $val, $ldapserver->server_id ) ) { if ($ldapserver->isMultiLineAttr($attr,$val)) {
if ($side == 'dst') {?> 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> <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 // draw a link for popping up the entry browser if this is the type of attribute
// that houses DNs. // that houses DNs.
if( is_dn_attr( $ldapserver, $attr ) ) if ($ldapserver->isDNAttr($attr))
draw_chooser_link( "edit_form.$input_id", false ); ?> draw_chooser_link("edit_form.$input_id",false); ?>
<br /> <br />
<?php } ?> <?php } ?>
@ -516,23 +522,26 @@ foreach ($attrs_all as $attr) {
if (! $isOK) { if (! $isOK) {
if (count($src_oclass) == 1) { 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 { } 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') 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 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 { } 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>', 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> </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 } ?> <?php } ?>
</table> </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"> <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.attr.value = attrName;
document.delete_attribute_form.submit(); document.delete_attribute_form.submit();
} }

View File

@ -1,5 +1,5 @@
<?php <?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.2.4.2 2005/12/09 14:29:15 wurley Exp $
/** /**
* Compares to DN entries side by side. * Compares to DN entries side by side.
@ -15,7 +15,7 @@
require './common.php'; require './common.php';
if( ! $ldapserver->haveAuthInfo()) 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($_GET['dn']) ? $_GET['dn'] : ''); $dn = (isset($_GET['dn']) ? $_GET['dn'] : '');
@ -23,22 +23,22 @@ $encoded_dn = rawurlencode( $dn );
$rdn = get_rdn( $dn ); $rdn = get_rdn( $dn );
$container = get_container( $dn ); $container = get_container( $dn );
$attrs = get_object_attrs( $ldapserver, $dn ); $attrs = $ldapserver->getDNAttrs($dn);
$select_server_html = server_select_list($ldapserver->server_id,true,'server_id_dst'); $select_server_html = server_select_list($ldapserver->server_id,true,'server_id_dst');
include './header.php'; ?> include './header.php'; ?>
<body> <body>
<h3 class="title"><?php echo $lang['compare_dn']. '&nbsp;' . $rdn; ?></h3> <h3 class="title"><?php echo _('Compare another DN with'). '&nbsp;' . $rdn; ?></h3>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $ldapserver->name; ?></b> <h3 class="subtitle"><?php echo _('Server'); ?>: <b><?php echo $ldapserver->name; ?></b>
<?php if ($dn) { ?> <?php if ($dn) { ?>
&nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name']?>: <b><?php echo $dn; ?></b> &nbsp;&nbsp;&nbsp; <?php echo _('Distinguished Name')?>: <b><?php echo $dn; ?></b>
<?php } ?> <?php } ?>
</h3> </h3>
<center> <center>
<?php echo $lang['compare']; ?> <b><?php echo htmlspecialchars( $rdn ); ?></b> <?php echo $lang['with']; ?>:<br /> <?php echo _('Compare'); ?> <b><?php echo htmlspecialchars( $rdn ); ?></b> <?php echo _('with '); ?>:<br />
<br /> <br />
<form action="compare.php" method="post" name="compare_form"> <form action="compare.php" method="post" name="compare_form">
@ -47,7 +47,7 @@ include './header.php'; ?>
<table style="border-spacing: 10px"> <table style="border-spacing: 10px">
<tr> <tr>
<?php if (! $dn) { ?> <?php if (! $dn) { ?>
<td><acronym title="<?php echo $lang['compf_dn_tooltip']; ?>"><?php echo $lang['compf_source_dn']; ?></acronym>:</td> <td><acronym title="<?php echo _('Compare this DN with another'); ?>"><?php echo _('Source DN'); ?></acronym>:</td>
<td> <td>
<input type="text" name="dn_src" size="45" value="<?php echo htmlspecialchars( $dn ); ?>" /> <input type="text" name="dn_src" size="45" value="<?php echo htmlspecialchars( $dn ); ?>" />
<?php draw_chooser_link( 'compare_form.dn_src', 'true', $rdn ); ?></td> <?php draw_chooser_link( 'compare_form.dn_src', 'true', $rdn ); ?></td>
@ -57,7 +57,7 @@ include './header.php'; ?>
<?php } ?> <?php } ?>
</tr> </tr>
<tr> <tr>
<td><acronym title="<?php echo $lang['compf_dn_tooltip']; ?>"><?php echo $lang['copyf_dest_dn']; ?></acronym>:</td> <td><acronym title="<?php echo _('Compare this DN with another'); ?>"><?php echo _('Destination DN'); ?></acronym>:</td>
<td> <td>
<input type="text" name="dn_dst" size="45" value="" /> <input type="text" name="dn_dst" size="45" value="" />
<?php draw_chooser_link( 'compare_form.dn_dst', 'true', '' ); ?></td> <?php draw_chooser_link( 'compare_form.dn_dst', 'true', '' ); ?></td>
@ -65,12 +65,12 @@ include './header.php'; ?>
</tr> </tr>
<tr> <tr>
<td><?php echo $lang['copyf_dest_server']?>:</td> <td><?php echo _('Destination Server')?>:</td>
<td><?php echo $select_server_html; ?></td> <td><?php echo $select_server_html; ?></td>
</tr> </tr>
<tr> <tr>
<td colspan="2" align="right"><input type="submit" value="<?php echo $lang['compare']; ?>" /></td> <td colspan="2" align="right"><input type="submit" value="<?php echo _('Compare'); ?>" /></td>
</tr> </tr>
</table> </table>
</form> </form>

View File

@ -1,5 +1,5 @@
<?php <?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.36.2.10 2005/12/31 03:13:47 wurley Exp $
/** /**
* Copies a given object to create a new one. * 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); $ldapserver_dst = $ldapservers->Instance($server_id_dst);
if ($ldapserver_dst->isReadOnly()) 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()) 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_src = $_POST['old_dn'];
$dn_dst = $_POST['new_dn']; $dn_dst = $_POST['new_dn'];
$do_recursive = (isset($_POST['recursive']) && $_POST['recursive'] == 'on') ? true : false; $do_recursive = (isset($_POST['recursive']) && $_POST['recursive'] == 'on') ? true : false;
$do_remove = (isset($_POST['remove']) && $_POST['remove'] == 'yes') ? true : false; $do_remove = (isset($_POST['remove']) && $_POST['remove'] == 'yes') ? true : false;
$encoded_dn = rawurlencode($dn_src);
include './header.php'; include './header.php';
# Error checking # Error checking
if (0 == strlen(trim($dn_dst))) 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) 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)) if ($ldapserver_dst->dnExists($dn_dst))
pla_error(sprintf($lang['copy_dest_already_exists'],pretty_print_dn($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))) if (! $ldapserver_dst->dnExists(get_container($dn_dst)))
pla_error(sprintf($lang['copy_dest_container_does_not_exist'],pretty_print_dn(get_container($dn_dst)))); pla_error(sprintf(_('The destination container (%s) does not exist.'),pretty_print_dn(get_container($dn_dst))));
if ($do_recursive) { if ($do_recursive) {
$filter = isset($_POST['filter']) ? $_POST['filter'] : '(objectClass=*)'; $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 # Build a tree similar to that of the tree browser to give to r_copy_dn
$snapshot_tree = array(); $snapshot_tree = array();
print '<body>'; print '<body>';
printf('<h3 class="title">%s%s</h3>',$lang['copy_copying'],htmlspecialchars($dn_src)); printf('<h3 class="title">%s%s</h3>',_('Copying '),htmlspecialchars($dn_src));
printf('<h3 class="subtitle">%s</h3>',$lang['copy_recursive_copy_progress']); printf('<h3 class="subtitle">%s</h3>',_('Recursive copy progress'));
print '<br /><br />'; print '<br /><br />';
print '<small>'; print '<small>';
print $lang['copy_building_snapshot']; print _('Building snapshot of tree to copy... ');
flush(); flush();
$snapshot_tree = build_tree($ldapserver_src,$dn_src,array(),$filter); $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(); flush();
# Prevent script from bailing early on a long delete # Prevent script from bailing early on a long delete
@ -78,63 +77,29 @@ if ($do_recursive) {
} }
if ($copy_result) { 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); $new_rdn = get_rdn($dn_dst);
$container = get_container($dn_dst); $container = get_container($dn_dst);
if (array_key_exists('tree',$_SESSION)) { printf('<center>%s<a href="%s">%s</a></center>',_('Copy successful! Would you like to '),$edit_url,_('view the new entry'));
# do we not have a tree and tree icons yet? Build a new ones. echo '<!-- refresh the tree view (with the new DN renamed) and redirect to the edit_dn page -->';
initialize_session_tree(); echo '<script type="text/javascript" language="javascript">parent.left_frame.location.reload();</script>';
$tree = $_SESSION['tree']; echo '</body></html>';
$tree_icons = $_SESSION['tree_icons'];
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) { if ($do_remove) {
sleep(2); sleep(2);
$delete_url = sprintf('delete_form.php?server_id=%s&dn=%s',$server_id_dst,rawurlencode($dn_src)); $delete_url = sprintf('delete_form.php?server_id=%s&dn=%s',$server_id_dst,rawurlencode($dn_src));
?> echo '<!-- redirect to the delete form -->';
printf('<script type="text/javascript" language="javascript">parent.right_frame.location="%s" </script>',$delete_url);
<!-- redirect to the delete form --> }
<script language="javascript">
parent.right_frame.location="<?php echo $delete_url; ?>"
</script>
<?php }
} else {
exit;
} }
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) if (DEBUG_ENABLED)
debug_log('r_copy_dn: Entered with (%s,%s,%s,%s,%s)',2, debug_log('r_copy_dn: Entered with (%s,%s,%s,%s,%s)',1,
$ldapserver_src->server_id,$ldapserver_dst->server_id,serialize($tree),$root_dn,$dn_dst); $ldapserver_src->server_id,$ldapserver_dst->server_id,$snapshottree,$root_dn,$dn_dst);
global $lang; printf('<nobr>%s %s...',_('Copying '),htmlspecialchars($root_dn));
printf('<nobr>%s %s...',$lang['copy_copying'],htmlspecialchars($root_dn));
flush(); flush();
$copy_result = copy_dn($ldapserver_src,$ldapserver_dst,$root_dn,$dn_dst); $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) if (! $copy_result)
return false; return false;
printf('<span style="color:green">%s</span></nobr><br />',$lang['success']); printf('<span style="color:green">%s</span></nobr><br />',_('Success'));
flush(); 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) { if (is_array($children) && count($children) > 0) {
foreach($children as $child_dn) { foreach($children as $child_dn) {
$child_rdn = get_rdn($child_dn); $child_rdn = get_rdn($child_dn);
$new_dest_dn = sprintf('%s,%s',$child_rdn,$dn_dst); $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 { } 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) { function copy_dn($ldapserver_src,$ldapserver_dst,$dn_src,$dn_dst) {
if (DEBUG_ENABLED) 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); $ldapserver_src->server_id,$ldapserver_dst->server_id,$dn_src,$dn_dst);
global $lang; $new_entry = $ldapserver_src->getDNAttrs($dn_src);
$new_entry = get_object_attrs($ldapserver_src,$dn_src);
# modify the prefix-value (ie "bob" in cn=bob) to match the destination DN's value. # 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,'=')); $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']); unset($new_entry['dn']);
# Check the user-defined custom call back first # 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))) { 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) { if (! $add_result) {
run_hook('post_entry_create',array('server_id'=>$ldapserver_dst->server_id, run_hook('post_entry_create',
'dn'=>$dn_dst,'attrs'=>$new_entry)); array('server_id'=>$ldapserver_dst->server_id,'dn'=>$dn_dst,'attrs'=>$new_entry));
print '</small><br /><br />'; echo '</small><br /><br />';
pla_error($lang['copy_failed'] . $dn_dst,$ldapserver_dst->error(),$ldapserver_dst->errno()); pla_error(_('Failed to copy DN: ').$dn_dst,$ldapserver_dst->error(),$ldapserver_dst->errno());
} }
return $add_result; return $add_result;
@ -204,19 +167,22 @@ function copy_dn($ldapserver_src,$ldapserver_dst,$dn_src,$dn_dst) {
* @param array $tree * @param array $tree
* @param string $filter * @param string $filter
*/ */
function build_tree($ldapserver,$dn,$tree,$filter='(objectClass=*)') { function build_tree($ldapserver,$dn,$buildtree) {
$children = get_container_contents($ldapserver,$dn,0,$filter); 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) { if (is_array($children) && count($children) > 0) {
$tree[$dn] = $children; $buildtree[$dn] = $children;
foreach ($children as $child_dn) foreach ($children as $child_dn)
$tree = build_tree($ldapserver,$child_dn,$tree,$filter); $buildtree = build_tree($ldapserver,$child_dn,$buildtree);
} }
if (DEBUG_ENABLED) if (DEBUG_ENABLED)
debug_log('build_tree: Entered with (%s,%s,%s,%s), Returning (%s)',1, debug_log('build_tree: Returning (%s)',1,$buildtree);
$ldapserver->server_id,$dn,serialize($tree),$filter,serialize($tree));
return $tree; return $buildtree;
} }
?> ?>

View File

@ -1,5 +1,5 @@
<?php <?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.24.4.4 2005/12/11 08:21:03 wurley Exp $
/** /**
* Copies a given object to create a new one. * Copies a given object to create a new one.
@ -17,30 +17,26 @@
require './common.php'; require './common.php';
if ($ldapserver->isReadOnly()) 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()) 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'] ; $dn = $_GET['dn'] ;
$rdn = get_rdn($dn);
$encoded_dn = rawurlencode( $dn ); $attrs = $ldapserver->getDNAttrs($dn);
$rdn = get_rdn( $dn );
$container = get_container( $dn );
$attrs = get_object_attrs( $ldapserver, $dn );
$select_server_html = server_select_list($ldapserver->server_id,true,'dest_server_id'); $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'; include './header.php';
// Draw some javaScrpt to enable/disable the filter field if this may be a recursive copy # Draw some javaScrpt to enable/disable the filter field if this may be a recursive copy
if( is_array( $children ) && count( $children ) > 0 ) { ?> 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.remove.disabled = false;
recursive_checkbox.form.filter.disabled = false; recursive_checkbox.form.filter.disabled = false;
} else { } else {
@ -52,73 +48,60 @@ if( is_array( $children ) && count( $children ) > 0 ) { ?>
//--> //-->
</script> </script>
<?php } ?> <?php
}
<body> echo '<body>';
<h3 class="title"><?php echo $lang['copyf_title_copy'] . $rdn; ?></h3> printf('<h3 class="title">%s %s</h3>',_('Copy '),$rdn);
<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="subtitle">%s: <b>%s</b> &nbsp;&nbsp;&nbsp; %s: <b>%s</b></h3>',_('Server'),$ldapserver->name,_('Distinguished Name'),$dn);
<center> echo '<center>';
<?php echo $lang['copyf_title_copy'] ?><b><?php echo htmlspecialchars( $rdn ); ?></b> <?php echo $lang['copyf_to_new_object']?>:<br /> printf('%s <b>%s</b> %s:<br /><br />',_('Copy '),htmlspecialchars($rdn),_('to a new object'));
<br />
<form action="copy.php" method="post" name="copy_form"> echo '<form action="copy.php" method="post" name="copy_form">';
<input type="hidden" name="old_dn" value="<?php echo $dn; ?>" /> printf('<input type="hidden" name="old_dn" value="%s" />',$dn);
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" /> printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
<table style="border-spacing: 10px"> echo '<table style="border-spacing: 10px">';
<tr> echo '<tr>';
<td><acronym title="<?php echo $lang['copyf_dest_dn_tooltip']; ?>"><?php echo $lang['copyf_dest_dn']?></acronym>:</td> 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'));
<td> printf('<td><input type="text" name="new_dn" size="45" value="%s" />',htmlspecialchars($dn));
<input type="text" name="new_dn" size="45" value="<?php echo htmlspecialchars( $dn ); ?>" /> draw_chooser_link('copy_form.new_dn','true',$rdn);
<?php draw_chooser_link( 'copy_form.new_dn', 'true', $rdn ); ?></td> echo '</td></tr>';
</td>
</tr>
<tr> printf('<tr><td>%s</td><td>%s</td></tr>',_('Destination Server'),$select_server_html);
<td><?php echo $lang['copyf_dest_server']?>:</td>
<td><?php echo $select_server_html; ?></td>
</tr>
<?php if( is_array( $children ) && count( $children ) > 0 ) { ?> if (is_array($children) && count($children) > 0) {
<tr> echo '<tr>';
<td><label for="recursive"><?php echo $lang['recursive_copy']; ?></label>:</td> printf('<td><label for="recursive">%s</label>:</td>',_('Recursive copy'));
<td><input type="checkbox" id="recursive" name="recursive" onClick="toggle_disable_filter_field(this)" /> echo '<td><input type="checkbox" id="recursive" name="recursive" onClick="toggle_disable_filter_field(this)" />';
<small>(<?php echo $lang['copyf_recursive_copy']?>)</small></td> printf('<small>(%s)</small></td>',_('Recursively copy all children of this object as well.'));
</tr> echo '</tr><tr>';
<tr> printf('<td><acronym title="%s">%s</acronym>:</td>',_('When performing a recursive copy, only copy those entries which match this filter'),_('Filter'));
<td><acronym title="<?php echo $lang['filter_tooltip']; ?>"><?php echo $lang['filter']; ?></acronym>:</td> echo '<td><input type="text" name="filter" value="(objectClass=*)" size="45" disabled />';
<td><input type="text" name="filter" value="(objectClass=*)" size="45" disabled /> echo '</tr><tr>';
</tr> printf('<td>%s</td>',_('Delete after copy (move):'));
<tr> echo '<td><input type="checkbox" name="remove" value="yes"/ disabled>';
<td><?php echo $lang['delete_after_copy']; ?></td> printf('<small>(%s)</small)</td>',_('Make sure your filter (above) will select all child records.'));
<td><input type="checkbox" name="remove" value="yes"/ disabled> echo '</tr>';
<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>
<script language="javascript"> } else {
//<!-- printf('<tr><td>%s</td><td><input type="checkbox" name="remove" value="yes"/></td></tr>',_('Delete after copy (move):'));
/* If the user uses the back button, this way we draw the filter field properly. */ }
toggle_disable_filter_field( document.copy_form.recursive );
//-->
</script>
<?php if ($config->GetValue('appearance','show_hints')) {?> printf('<tr><td colspan="2" align="right"><input type="submit" value="%s" /></td></tr>',_('Copy '));
<small><img src="images/light.png" /><span class="hint"><?php echo $lang['copyf_note']?></span></small> echo '</table></form>';
<?php } ?>
</center> echo '<script type="text/javascript" language="javascript">';
</body> echo '<!--';
</html> 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" /><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 <?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.44.2.5 2005/12/09 14:29:15 wurley Exp $
/** /**
* Creates a new object. * Creates a new object.
@ -23,19 +23,16 @@
require './common.php'; require './common.php';
if ($ldapserver->isReadOnly()) 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()) 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; $new_dn = isset($_POST['new_dn']) ? $_POST['new_dn'] : null;
$required_attrs = isset( $_POST['required_attrs'] ) ? $_POST['required_attrs'] : false; $required_attrs = isset($_POST['required_attrs']) ? $_POST['required_attrs'] : false;
$object_classes = unserialize( rawurldecode( $_POST['object_classes'] ) ); $object_classes = unserialize(rawurldecode($_POST['object_classes']));
$redirect = isset( $_POST['redirect'] ) ? $_POST['redirect'] : false; $redirect = isset($_POST['redirect']) ? $_POST['redirect'] : false;
$encoded_dn = rawurlencode( $new_dn ); # See if there are any presubmit values to work out.
$container = get_container( $new_dn );
// See if there are any presubmit values to work out.
if (isset($_POST['presubmit']) && count($_POST['presubmit']) && isset($_POST['template'])) { if (isset($_POST['presubmit']) && count($_POST['presubmit']) && isset($_POST['template'])) {
$templates = new Templates($ldapserver->server_id); $templates = new Templates($ldapserver->server_id);
$template = $templates->GetTemplate($_POST['template']); $template = $templates->GetTemplate($_POST['template']);
@ -56,32 +53,34 @@ if (isset($_POST['presubmit']) && count($_POST['presubmit']) && isset($_POST['te
} }
} }
$vals = isset( $_POST['vals'] ) ? $_POST['vals'] : array(); $vals = isset($_POST['vals']) ? $_POST['vals'] : array();
$attrs = isset( $_POST['attrs'] ) ? $_POST['attrs'] : array(); $attrs = isset($_POST['attrs']) ? $_POST['attrs'] : array();
// build the new entry # build the new entry
$new_entry = array(); $new_entry = array();
if( isset( $required_attrs ) && is_array( $required_attrs ) ) { if (isset($required_attrs) && is_array($required_attrs)) {
foreach( $required_attrs as $attr => $val ) { foreach ($required_attrs as $attr => $val) {
if( $val == '' ) if ($val == '')
pla_error( sprintf( $lang['create_required_attribute'], htmlspecialchars( $attr ) ) ); pla_error(sprintf(_('You left the value blank for required attribute (%s).'),htmlspecialchars($attr)));
$new_entry[ $attr ][] = $val;
$new_entry[$attr][] = $val;
} }
} }
if( isset( $attrs ) && is_array( $attrs ) ) { if (isset($attrs) && is_array($attrs)) {
foreach( $attrs as $i => $attr ) { foreach ($attrs as $i => $attr) {
if( is_attr_binary( $ldapserver, $attr ) ) {
if( isset( $_FILES['vals']['name'][$i] ) && $_FILES['vals']['name'][$i] != '' ) {
// 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]; $file = $_FILES['vals']['tmp_name'][$i];
$f = fopen( $file, 'r' ); $f = fopen($file,'r');
$binary_data = fread( $f, filesize( $file ) ); $binary_data = fread($f,filesize($file));
fclose( $f ); fclose($f);
$val = $binary_data; $val = $binary_data;
$new_entry[ $attr ][] = $val; $new_entry[$attr][] = $val;
} }
} else { } else {
@ -89,102 +88,69 @@ if( isset( $attrs ) && is_array( $attrs ) ) {
# If the array has blank entries, then ignore them. # If the array has blank entries, then ignore them.
foreach ($vals[$i] as $value) { foreach ($vals[$i] as $value) {
# $new_entry[$attr] = $vals[$i];
if (trim($value)) if (trim($value))
$new_entry[$attr][] = $value; $new_entry[$attr][] = $value;
} }
} else {
$val = isset( $vals[$i] ) ? $vals[$i] : '';
if( '' !== trim($val) ) } else {
$new_entry[ $attr ][] = $val; $val = isset($vals[$i]) ? $vals[$i] : '';
if ('' !== trim($val))
$new_entry[$attr][] = $val;
} }
} }
} }
} }
$new_entry['objectClass'] = $object_classes; $new_entry['objectClass'] = $object_classes;
if( ! in_array( 'top', $new_entry['objectClass'] ) ) if (! in_array('top',$new_entry['objectClass']))
$new_entry['objectClass'][] = 'top'; $new_entry['objectClass'][] = 'top';
foreach( $new_entry as $attr => $vals ) { foreach ($new_entry as $attr => $vals) {
# Check to see if this is a unique Attribute
// Check to see if this is a unique Attribute if ($badattr = $ldapserver->checkUniqueAttr($new_dn,$attr,$vals)) {
if( $badattr = checkUniqueAttr( $ldapserver, $new_dn, $attr, $vals ) ) {
$search_href = sprintf('search.php?search=true&amp;form=advanced&amp;server_id=%s&amp;filter=%s=%s', $search_href = sprintf('search.php?search=true&amp;form=advanced&amp;server_id=%s&amp;filter=%s=%s',
$ldapserver->server_id,$attr,$badattr); $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 (! $ldapserver->isAttrBinary($attr))
if( is_array( $vals ) ) if (is_array($vals))
foreach( $vals as $i => $v ) foreach ($vals as $i => $v)
$new_entry[ $attr ][ $i ] = $v; $new_entry[$attr][$i] = $v;
else 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 ($add_result) {
if( true === run_hook ( 'pre_entry_create', array ( 'server_id' => $ldapserver->server_id,'dn' => $new_dn,'attrs' => $new_entry ) ) ) run_hook('post_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 ($redirect) if ($redirect)
$redirect_url = $redirect; $redirect_url = $redirect;
else 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 ) ) { echo '<html><head>';
$tree = $_SESSION['tree']; $tree = get_cached_item($ldapserver->server_id,'tree');
$tree_icons = $_SESSION['tree_icons']; $container = get_container($new_dn);
if( isset( $tree[$ldapserver->server_id][$container] ) ) { if ((isset($tree['browser'][$container]['open']) && $tree['browser'][$container]['open']) ||
$tree[$ldapserver->server_id][$container][] = $new_dn; in_array($new_dn,$ldapserver->getBaseDN())) {
sort( $tree[$ldapserver->server_id][$container] );
$tree_icons[$ldapserver->server_id][$new_dn] = get_icon( $ldapserver, $new_dn );
}
$_SESSION['tree'] = $tree; echo '<!-- refresh the tree view (with the new DN renamed) and redirect to the edit_dn page -->';
$_SESSION['tree_icons'] = $tree_icons; printf('<script language="javascript">parent.left_frame.location.reload();location.href="%s"</script>',$redirect_url);
session_write_close();
} }
?>
<html> printf('<meta http-equiv="refresh" content="0; url=%s" />',$redirect_url);
<head> 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())) { ?> } else {
pla_error(_('Could not add the object to the LDAP server.'),$ldapserver->error(),$ldapserver->errno());
<!-- 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() );
} }
?> ?>

View File

@ -1,5 +1,5 @@
<?php <?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.31.2.5 2005/12/31 04:21:37 wurley Exp $
/** /**
* The menu where the user chooses an RDN, Container, and Template for creating a new entry. * The menu where the user chooses an RDN, Container, and Template for creating a new entry.
@ -16,160 +16,119 @@
*/ */
require './common.php'; require './common.php';
require TMPLDIR.'template_config.php';
if( $ldapserver->isReadOnly() ) 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()) if (! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] ); 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']; $container = $_REQUEST['container'];
$server_menu_html = server_select_list($ldapserver->server_id,true); $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> printf('<h3 class="title">%s</h3>',_('Create Object'));
<h3 class="subtitle"><?php echo $lang['createf_choose_temp']?></h3> printf('<h3 class="subtitle">%s</h3>',_('Choose a template'));
<center><h3><?php echo $lang['createf_select_temp']?></h3></center> printf('<center><h3>%s</h3></center>',_('Select a template for the creation process'));
<form action="creation_template.php" method="post"> echo '<form action="template_engine.php" method="post">';
<input type="hidden" name="container" value="<?php echo htmlspecialchars( $container ); ?>" /> printf('<input type="hidden" name="container" value="%s" />',htmlspecialchars($container));
<table class="create">
<tr>
<td class="heading"><?php echo $lang['server']; ?>:</td>
<td><?php echo $server_menu_html; ?></td>
</tr>
<tr> echo '<table class="create">';
<td class="heading"><?php echo $lang['template']; ?>:</td> printf('<tr><td class="heading">%s:</td><td>%s</td></tr>',_('Server'),$server_menu_html);
<td>
<table class="template_display"> echo '<tr>';
<tr> printf('<td class="heading">%s:</td>',_('Template'));
<td> echo '<td>';
<table class="templates">
echo '<table class="template_display">';
echo '<tr><td>';
echo '<table class="templates">';
<?php
$i = -1; $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')) # Remove non-visable templates.
$templates = $template_xml->getTemplates(); foreach ($templates as $index => $template)
if (isset($template['visible']) && (! $template['visible']))
else unset ($templates[$index]);
$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]);
$templates['custom']['title'] = 'Custom'; $templates['custom']['title'] = 'Custom';
$templates['custom']['icon'] = 'images/object.png'; $templates['custom']['icon'] = 'images/object.png';
$count = count( $templates ); $count = count($templates);
foreach( $templates as $name => $template ) { foreach ($templates as $name => $template) {
$i++; $i++;
# If the template doesnt have a title, we'll use the desc field. # If the template doesnt have a title, we'll use the desc field.
$template['desc'] = isset($template['title']) ? $template['title'] : $template['desc']; $template['desc'] = isset($template['title']) ? $template['title'] : $template['desc'];
# Balance the columns properly # Balance the columns properly
if( ( count( $templates ) % 2 == 0 && $i == intval( $count / 2 ) ) || if ((count($templates) % 2 == 0 && $i == intval($count / 2)) ||
( count( $templates ) % 2 == 1 && $i == intval( $count / 2 ) + 1 ) ) (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 # Check and see if this template should be shown in the list
$isValid = false; $isValid = false;
if( isset($template['regexp'] ) ) { if (isset($template['regexp'])) {
if( @preg_match( "/".$template['regexp']."/i", $container ) ) { if (@preg_match('/'.$template['regexp'].'/i',$container))
$isValid = true; $isValid = true;
} } else
} else {
$isValid = true; $isValid = true;
if (isset($template['invalid']) && $template['invalid']) if (isset($template['invalid']) && $template['invalid'])
$isValid = false; $isValid = false;
} ?>
</td> echo '<tr>';
</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> printf('<td class="icon"><label for="%s"><img src="%s" /></label></td>',
<?php htmlspecialchars($name),$template['icon']);
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 {
?>
<td> printf('<td class="name"><label for="%s">',
<input type="radio" name="template" value="<?php echo htmlspecialchars($name);?>" htmlspecialchars($name));
id="<?php echo htmlspecialchars($name); ?>"
<?php if (strcasecmp('Custom', $template['desc']) == 0)
if( 0 == strcasecmp( 'Custom', $name ) ) echo ' checked'; echo '<b>';
if( ! $isValid ) echo ' disabled';
?> />
</td> if (! $isValid)
<?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 (isset($template['invalid']) && $template['invalid']) 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 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 (! $isValid) echo '</acronym></span>';
if( 0 == strcasecmp( 'Custom', $template['desc'] ) ) echo '</b>'; ?> if (strcasecmp('Custom', $template['desc']) == 0)
echo '</b>';
</label> echo '</label></td></tr>';
</td>
</tr>
<?php } // end foreach ?> }
</table> echo '</table>';
</td> echo '</td></tr></table>';
</tr> echo '</td></tr>';
</table>
</td>
</tr>
<tr> printf('<tr><td colspan="2"><center><input type="submit" name="submit" value="%s" /></center></td></tr>',
<td colspan="2"><center><input type="submit" name="submit" value="<?php echo $lang['proceed_gt']?>" /></center></td> htmlspecialchars(_('Proceed >>')));
</tr>
</table> echo '</table>';
</form> echo '</form></body></html>';
</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.44.4.2 2005/12/06 22:00:54 wurley Exp $ */
span.hint { span.hint {
font-size: small; font-size: small;
font-weight: normal; font-weight: normal;
@ -594,6 +594,11 @@ table.create td.heading {
padding: 10px; padding: 10px;
} }
table.create td.name {
font-size: 13px;
width: 350px;
}
div.add_value { div.add_value {
font-size: 10pt; font-size: 10pt;
margin: 0px; margin: 0px;
@ -632,11 +637,12 @@ p.doc {
table.export_form { table.export_form {
font-size: 75%; font-size: 75%;
width: 400px; width: 400px;
border-spacing: 10px; border-spacing: 10px;
border-collapse: separate; border-collapse: separate;
} }
table.export_form tr td { table.export_form tr td {
font-size: 13px;
text-align: left; text-align: left;
vertical-align: top; vertical-align: top;
padding: 4px; padding: 4px;

View File

@ -1,5 +1,5 @@
<?php <?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.24.2.3 2005/12/11 08:21:03 wurley Exp $
/** /**
* Deletes a DN and presents a "job's done" message. * Deletes a DN and presents a "job's done" message.
@ -17,65 +17,39 @@
require './common.php'; require './common.php';
if ($ldapserver->isReadOnly()) 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()) 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']; $dn = $_POST['dn'];
$encoded_dn = rawurlencode($dn);
if (is_null($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>')); 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 = @ldap_delete($ldapserver->connect(), $dn);
# 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 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) { if ($del_result) {
# Custom callback # 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 include './header.php';
# refresh the tree viewer frame (left_frame) echo '<body>';
if (array_key_exists('tree', $_SESSION)) {
$tree = $_SESSION['tree'];
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 { } 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>'),
$ldapserver->error(), $ldapserver->errno()); $ldapserver->error(),$ldapserver->errno());
} }
echo '</html>';
?> ?>

View File

@ -1,13 +1,13 @@
<?php <?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.14.2.5 2005/12/09 14:29:37 wurley Exp $
/** /**
* Deletes an attribute from an entry with NO confirmation. * Deletes an attribute from an entry with NO confirmation.
* *
* Variables that come in via common.php * Variables that come in via common.php
* - server_id * - server_id
* *
* On success, redirect to edit.php * On success, redirect to template_engine.php
* On failure, echo an error. * On failure, echo an error.
* *
* @package phpLDAPadmin * @package phpLDAPadmin
@ -18,30 +18,30 @@
require './common.php'; require './common.php';
if ($ldapserver->isReadOnly()) 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()) 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; $dn = isset($_POST['dn']) ? $_POST['dn'] : null;
$attr = isset($_POST['attr']) ? $_POST['attr'] : null; $attr = isset($_POST['attr']) ? $_POST['attr'] : null;
if (! $dn) if (! $dn)
pla_error($lang['no_dn_specified']); pla_error(_('No DN specified'));
if (! $attr) if (! $attr)
pla_error($lang['no_attr_specified']); pla_error(_('No attribute name specified.'));
$encoded_dn = rawurlencode($dn); $encoded_dn = rawurlencode($dn);
if (is_attr_read_only($ldapserver,$attr)) if ($ldapserver->isAttrReadOnly($attr))
pla_error(sprintf($lang['attr_is_read_only'],htmlspecialchars($attr))); pla_error(sprintf(_('The attribute "%s" is flagged as read-only in the phpLDAPadmin configuration.'),htmlspecialchars($attr)));
$update_array = array(); $update_array = array();
$update_array[$attr] = array(); $update_array[$attr] = array();
$res = @ldap_modify($ldapserver->connect(),$dn,$update_array); $res = $ldapserver->modify($dn,$update_array);
if ($res) { 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) foreach($update_array as $attr => $junk)
$redirect_url .= "&modified_attrs[]=$attr"; $redirect_url .= "&modified_attrs[]=$attr";
@ -49,6 +49,6 @@ if ($res) {
header("Location: $redirect_url"); header("Location: $redirect_url");
} else { } 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 <?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.20.4.5 2005/12/11 08:21:03 wurley Exp $
/** /**
* delete_form.php * delete_form.php
@ -18,49 +18,43 @@
require './common.php'; require './common.php';
if ($ldapserver->isReadOnly()) 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()) 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']; $dn = $_GET['dn'];
$children = $ldapserver->getContainerContents($dn,0,'(objectClass=*)',LDAP_DEREF_NEVER);
$encoded_dn = rawurlencode( $dn );
$rdn = pla_explode_dn( $dn );
$rdn = $rdn[0];
$children = get_container_contents( $ldapserver,$dn,0,'(objectClass=*)',LDAP_DEREF_NEVER );
$has_children = count($children) > 0 ? true : false; $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)));
<h3 class="title"><?php echo sprintf( $lang['delete_dn'], htmlspecialchars( $rdn ) ); ?></b></h3> if ($has_children) {
<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>';
printf('<b>%s</b><br /><br />',_('Permanently delete all children also?'));
<?php if( $has_children ) { ?>
<center><b><?php echo $lang['permanently_delete_children']; ?></b><br /><br />
<?php
flush(); flush();
# get the total number of child objects (whole sub-tree) # get the total number of child objects (whole sub-tree)
$s = pla_ldap_search( $ldapserver, 'objectClass=*', $dn, array('dn'), 'sub' ); $s = $ldapserver->search(null,dn_escape($dn),'objectClass=*',array('dn'));
$sub_tree_count = count( $s ); $sub_tree_count = count($s);
?> ?>
<table class="delete_confirm"> <table class="delete_confirm">
<tr> <tr>
<td> <td>
<p> <p>
<?php echo sprintf( $lang['entry_is_root_sub_tree'], $sub_tree_count ); ?> <?php printf(_('This entry is the root of a sub-tree containing %s entries.'),$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> <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 rawurlencode($dn); ?>&amp;form=advanced&amp;scope=sub"><?php echo _('view entries'); ?></a>)</small>
<br /> <br />
<br /> <br />
<?php echo sprintf( $lang['confirm_recursive_delete'], ($sub_tree_count-1) ); ?><br /> <?php 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)); ?><br />
<br /> <br />
<small><?php echo $lang['confirm_recursive_delete_note']; ?></small> <small><?php echo _('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.'); ?></small>
<br /> <br />
<br /> <br />
@ -71,17 +65,17 @@ include './header.php'; ?>
<form action="rdelete.php" method="post"> <form action="rdelete.php" method="post">
<input type="hidden" name="dn" value="<?php echo $dn; ?>" /> <input type="hidden" name="dn" value="<?php echo $dn; ?>" />
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" /> <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 ); ?>" /> <input type="submit" class="scary" value="<?php printf(_('Delete all %s objects'),$sub_tree_count); ?>" />
</form> </form>
</center> </center>
</td> </td>
<td> <td>
<center> <center>
<form action="edit.php" method="get"> <form action="template_engine.php" method="get">
<input type="hidden" name="dn" value="<?php echo htmlspecialchars($dn); ?>" /> <input type="hidden" name="dn" value="<?php echo htmlspecialchars($dn); ?>" />
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" /> <input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<input type="submit" name="submit" value="<?php echo $lang['cancel']; ?>" class="cancel" /> <input type="submit" name="submit" value="<?php echo _('Cancel'); ?>" class="cancel" />
</form> </form>
</center> </center>
</td> </td>
@ -94,16 +88,17 @@ include './header.php'; ?>
<?php flush(); ?> <?php flush(); ?>
<br /> <br />
<br /> <br />
<?php echo $lang['list_of_entries_to_be_deleted']; ?><br /> <?php echo _('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" > <select size="<?php echo min(10,$sub_tree_count);?>" multiple disabled style="background:white; color:black;width:500px" >
<?php $i=0; <?php $i=0;
foreach( $s as $dn => $junk ) { foreach ($s as $dn => $junk) {
$i++; ?> $i++; ?>
<option><?php echo $i; ?>. <?php echo htmlspecialchars( ( $dn ) ); ?></option> <option><?php echo $i; ?>. <?php echo htmlspecialchars((dn_unescape($dn))); ?></option>
<?php } ?> <?php } ?>
</select> </select>
</center>
<br /> <br />
@ -113,10 +108,10 @@ include './header.php'; ?>
<table class="delete_confirm"> <table class="delete_confirm">
<tr> <tr>
<td> <td>
<?php echo $lang['sure_permanent_delete_object']; ?><br /> <?php echo _('Are you sure you want to permanently delete this object?'); ?><br />
<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><acronym title="<?php echo _('Distinguished Name'); ?>"><?php echo _('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 /> <nobr><?php echo _('Server'); ?>: <b><?php echo htmlspecialchars($ldapserver->name); ?></b></nobr><br />
<br /> <br />
<table width="100%"> <table width="100%">
@ -126,17 +121,17 @@ include './header.php'; ?>
<form action="delete.php" method="post"> <form action="delete.php" method="post">
<input type="hidden" name="dn" value="<?php echo htmlspecialchars($dn); ?>" /> <input type="hidden" name="dn" value="<?php echo htmlspecialchars($dn); ?>" />
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" /> <input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<input type="submit" name="submit" value="<?php echo $lang['delete']; ?>" class="scary" /> <input type="submit" name="submit" value="<?php echo _('Delete'); ?>" class="scary" />
</form> </form>
</center> </center>
</td> </td>
<td> <td>
<center> <center>
<form action="edit.php" method="get"> <form action="template_engine.php" method="get">
<input type="hidden" name="dn" value="<?php echo $dn; ?>" /> <input type="hidden" name="dn" value="<?php echo $dn; ?>" />
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" /> <input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<input type="submit" name="submit" value="<?php echo $lang['cancel']; ?>" class="cancel" /> <input type="submit" name="submit" value="<?php echo _('Cancel'); ?>" class="cancel" />
</form> </form>
</center> </center>
</td> </td>

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 <?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.13.2.3 2005/12/08 11:49:28 wurley Exp $
/** /**
* @package phpLDAPadmin * @package phpLDAPadmin
@ -12,33 +12,28 @@
require './common.php'; require './common.php';
if ($ldapserver->isReadOnly()) 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()) 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']); $dn = rawurldecode($_GET['dn']);
$attr = $_GET['attr']; $attr = $_GET['attr'];
# if there are multiple values in this attribute, which one do you want to see? # 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 if (! $ldapserver->dnExists($dn))
pla_error(sprintf($lang['no_such_entry'],pretty_print_dn($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')); $search = $ldapserver->search(null,$dn,'(objectClass=*)',array($attr),'base',false,$config->GetValue('deref','view'));
if (! $search)
pla_error($lang['error_performing_search'],$ldapserver->error(),$ldapserver->errno());
$entry = ldap_first_entry($ldapserver->connect(),$search); # Dump the binary data to the browser
$attrs = ldap_get_attributes($ldapserver->connect(),$entry); header('Content-type: octet-stream');
$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");
header("Content-disposition: attachment; filename=$attr"); header("Content-disposition: attachment; filename=$attr");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
echo $values[$value_num]; 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 <?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.27.2.4 2005/12/31 03:13:48 wurley Exp $
/** /**
* Display a selection (popup window) to pick a DN. * Display a selection (popup window) to pick a DN.
@ -17,12 +17,12 @@ $rdn = isset($_GET['rdn']) ? htmlspecialchars($_GET['rdn']) : null;
include "./header.php"; include "./header.php";
printf('<h3 class="subtitle">%s</h3>',$lang['entry_chooser_title']); printf('<h3 class="subtitle">%s</h3>',_('Entry Chooser'));
flush(); flush();
?> ?>
<script language="javascript"> <script type="text/javascript" language="javascript">
function returnDN( dn ) { function returnDN(dn) {
opener.document.<?php echo $return_form_element; ?>.value = dn; opener.document.<?php echo $return_form_element; ?>.value = dn;
close(); close();
} }
@ -30,53 +30,53 @@ flush();
<?php <?php
if ($container) { if ($container) {
printf('%s<b>%s</b>',$lang['server_colon_pare'],htmlspecialchars($ldapserver->name)); printf('%s<b>%s</b>',_('Server: '),htmlspecialchars($ldapserver->name));
print '<br />'; echo '<br />';
printf('%s<b>%s</b>',$lang['look_in'],htmlspecialchars($container)); printf('%s<b>%s</b>',_('Looking in: '),htmlspecialchars($container));
print '<br />'; echo '<br />';
} }
/* Has the use already begun to descend into a specific server tree? */ /* Has the use already begun to descend into a specific server tree? */
if (isset($ldapserver) && $container !== false) { if (isset($ldapserver) && $container !== false) {
if (! $ldapserver->haveAuthInfo()) 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); sort($dn_list);
foreach ($ldapserver->getBaseDN() as $base_dn) { foreach ($ldapserver->getBaseDN() as $base_dn) {
if (DEBUG_ENABLED) 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)) { if (! pla_compare_dns($container,$base_dn)) {
$parent_container = false; $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; break;
} else { } else {
$parent_container = get_container($container); $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)); $return_form_element,$rdn,$ldapserver->server_id,rawurlencode($parent_container));
} }
} }
print '&nbsp;'; echo '&nbsp;';
printf('<a href="%s" style="text-decoration:none"><img src="images/up.png"> %s</a>',$up_href,$lang['back_up_p']); printf('<a href="%s" style="text-decoration:none"><img src="images/up.png" /> %s</a>',$up_href,_('Back Up...'));
print '<br />'; echo '<br />';
if (! count($dn_list)) if (! count($dn_list))
printf('&nbsp;&nbsp;&nbsp;(%s)<br />',$lang['no_entries']); printf('&nbsp;&nbsp;&nbsp;(%s)<br />',_('no entries'));
else else
foreach ($dn_list as $dn) { foreach ($dn_list as $dn) {
$href = sprintf("javascript:returnDN('%s%s')",($rdn ? "$rdn," : ''),$dn); $href = sprintf("javascript:returnDN('%s%s')",($rdn ? "$rdn," : ''),$dn);
print '&nbsp;&nbsp;&nbsp;'; echo '&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>', 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)); $ldapserver->server_id,$return_form_element,$rdn,rawurlencode($dn));
printf('<a href="%s">%s</a>',$href,htmlspecialchars($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) */ /* draw the root of the selection tree (ie, list all the servers) */
@ -92,20 +92,20 @@ if (isset($ldapserver) && $container !== false) {
else { else {
printf('<b>%s</b>',htmlspecialchars($ldapserver->name)); printf('<b>%s</b>',htmlspecialchars($ldapserver->name));
print '<br />'; echo '<br />';
foreach ($ldapserver->getBaseDN() as $dn) { foreach ($ldapserver->getBaseDN() as $dn) {
if (! $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 { } else {
$href = sprintf("javascript:returnDN('%s%s')",($rdn ? "$rdn," : ''),$dn); $href = sprintf("javascript:returnDN('%s%s')",($rdn ? "$rdn," : ''),$dn);
print '&nbsp;&nbsp;&nbsp;'; echo '&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> ', 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)); $ldapserver->server_id,$return_form_element,$rdn,rawurlencode($dn));
printf('<a href="%s">%s</a>',$href,htmlspecialchars($dn)); printf('<a href="%s">%s</a>',$href,htmlspecialchars($dn));
print '<br />'; echo '<br />';
} }
} }
} }

View File

@ -1,5 +1,5 @@
<?php <?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.22.4.2 2005/12/08 11:50:06 wurley Exp $
/** /**
* This script alters the session variable 'tree', expanding it * This script alters the session variable 'tree', expanding it
@ -18,52 +18,34 @@
*/ */
require './common.php'; require './common.php';
no_expire_header();
if (! $ldapserver->haveAuthInfo()) if (! $ldapserver->haveAuthInfo())
pla_error($lang['not_enough_login_info']); pla_error(_('Not enough information to login to server. Please check your configuration.'));
# 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 ); @set_time_limit(0);
$dn = $_GET['dn']; $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 = get_cached_item($ldapserver->server_id,'tree');
$tree_icons = $_SESSION['tree_icons']; $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')); /* 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
usort( $contents, 'pla_compare_dns' ); fetch the page rather than display the cached version */
$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
$time = gettimeofday(); $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. /* If cookies were disabled, build the url parameter for the session id.
// It will be append to the url to be redirect It will be append to the url to be redirect */
$id_session_param=""; $id_session_param = '';
if( SID != "" ) if (SID != '')
$id_session_param = "&".session_name()."=".session_id(); $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,rawurlencode($dn),$id_session_param));
header(sprintf('Location:tree.php?foo=%s#%s_%s%s',$random_junk,$ldapserver->server_id,$encoded_dn,$id_session_param));
?> ?>

View File

@ -1,5 +1,5 @@
<?php <?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.15.4.6 2005/12/10 12:03:44 wurley Exp $
/** /**
* @package phpLDAPadmin * @package phpLDAPadmin
@ -13,94 +13,99 @@ ini_set('session.cache_limiter','');
require './common.php'; require './common.php';
require LIBDIR.'export_functions.php'; require LIBDIR.'export_functions.php';
// get the POST parameters if (! $ldapserver->haveAuthInfo())
$server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : ''); pla_error(_('Not enough information to login to server. Please check your configuration.'));
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$base_dn = isset($_POST['dn']) ? $_POST['dn']:NULL; $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'; $scope = isset($_POST['scope']) ? $_POST['scope'] : 'base';
$filter = isset($_POST['filter']) ? $_POST['filter'] : 'objectclass=*'; $filter = isset($_POST['filter']) ? $_POST['filter'] : 'objectclass=*';
$target = isset($_POST['target']) ? $_POST['target'] : 'display'; $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 if (isset($_POST['filter'])) {
$attributes = array(); preg_replace('/\s+/','',$_POST['filter']);
if( isset( $_POST['sys_attr'] ) ){ $attributes = split(',',preg_replace('/\s+/','',$_POST['attributes']));
array_push($attributes,'*');
array_push($attributes,'+'); } else {
$attributes = array();
} }
isset($_POST['exporter_id']) or pla_error( $lang['must_choose_export_format'] ); # add system attributes if needed
$exporter_id = $_POST['exporter_id']; if (isset($_POST['sys_attr'])) {
isset($exporters[$exporter_id]) or pla_error( $lang['invalid_export_format'] ); array_push($attributes,'*');
array_push($attributes,'+');
}
// Initialisation of other variables isset($_POST['exporter_id']) or pla_error(_('You must choose an export format.'));
$rdn = get_rdn( $base_dn ); $exporter_id = $_POST['exporter_id'];
$friendly_rdn = get_rdn( $base_dn, 1 ); 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']; $extension = $exporters[$exporter_id]['extension'];
//set the default CRLN to Unix format # default case not really needed
$br = "\n"; switch ($format) {
case 'win':
// default case not really needed $br = "\r\n";
switch( $format ) { break;
case 'win': case 'mac':
$br = "\r\n"; $br = "\r";
break; break;
case 'mac': case 'unix':
$br = "\r"; default:
break; $br = "\n";
case 'unix':
default:
$br = "\n";
} }
// get the decoree,ie the source # get the decoree,ie the source
$plaLdapExporter = new PlaLdapExporter($server_id,$filter,$base_dn,$scope,$attributes); $plaLdapExporter = new PlaLdapExporter($ldapserver->server_id,$filter,$base_dn,$scope,$attributes);
// the decorator # the decorator do it that way for the moment
// do it that way for the moment $exporter = null;
$exporter = NULL;
switch($exporter_id){ switch ($exporter_id) {
case 0: case 0:
$exporter = new PlaLdifExporter($plaLdapExporter); $exporter = new PlaLdifExporter($plaLdapExporter);
break; break;
case 1:
$exporter = new PlaDsmlExporter($plaLdapExporter); case 1:
break; $exporter = new PlaDsmlExporter($plaLdapExporter);
case 2: break;
$exporter = new PlaVcardExporter($plaLdapExporter);
break; case 2:
case 3: $exporter = new PlaVcardExporter($plaLdapExporter);
$exporter = new PlaCSVExporter($plaLdapExporter); break;
break;
default: case 3:
// truly speaking,this default case will never be reached. See check at the bottom. $exporter = new PlaCSVExporter($plaLdapExporter);
$plaLdapExporter->pla_close(); break;
pla_error( $lang['no_exporter_found'] );
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); $exporter->setOutputFormat($br);
// prevent script from bailing early for long search if (isset($_REQUEST['compress']) && $_REQUEST['compress'] = 'on')
@set_time_limit( 0 ); $exporter->compress(true);
# prevent script from bailing early for long search
@set_time_limit(0);
// send the header # send the header
if( $save_as_file ) if ($save_as_file)
header( "Content-type: application/download" ); header('Content-type: application/download');
else else
header( "Content-type: text/plain" ); 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 );
// 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(); $exporter->export();
?> ?>

View File

@ -1,12 +1,9 @@
<?php <?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.22.4.6 2005/12/11 07:41:04 wurley Exp $
/** /**
* export_form.php * export_form.php
* --------------------
*
* Html form to choose an export format(ldif,...) * Html form to choose an export format(ldif,...)
*
* @package phpLDAPadmin * @package phpLDAPadmin
*/ */
/** /**
@ -15,136 +12,154 @@
require './common.php'; require './common.php';
require LIBDIR.'export_functions.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();
$format = isset( $_GET['format'] ) ? $_GET['format'] : get_line_end_format(); $scope = isset($_GET['scope']) ? $_GET['scope'] : 'base' ;
$scope = isset( $_GET['scope'] ) ? $_GET['scope'] : 'base' ; $exporter_id = isset($_GET['exporter_id']) ? $_GET['exporter_id'] : 0 ;
$exporter_id = isset( $_GET['exporter_id'] ) ? $_GET['exporter_id'] : 0 ; $dn = isset($_GET['dn']) ? $_GET['dn'] : null;
$dn = isset( $_GET['dn'] ) ? $_GET['dn'] : null; $filter = isset($_GET['filter']) ? $_GET['filter'] : '(objectClass=*)';
$filter = isset( $_GET['filter'] ) ? $_GET['filter'] : '(objectClass=*)'; $attributes = isset($_GET['attributes']) ? $_GET['attributes'] : '*';
$attributes = isset( $_GET['attributes'] ) ? $_GET['attributes'] : '*'; $sys_attr = isset($_GET['sys_attr']) && $_GET['sys_attr'] == 'true' ? true : false;
$sys_attr = isset( $_GET['sys_attr'] ) && $_GET['sys_attr'] == 'true' ? true : false;
$available_formats = array( $available_formats = array (
'unix' => 'UNIX (Linux, BSD)', 'unix' => 'UNIX (Linux, BSD)',
'mac' => 'Macintosh', 'mac' => 'Macintosh',
'win' => 'Windows' 'win' => 'Windows'
); );
$available_scopes = array( $available_scopes = array (
'base' => $lang['scope_base'], 'base' => _('Base (base dn only)'),
'one' => $lang['scope_one'], 'one' => _('One (one level beneath base)'),
'sub' => $lang['scope_sub'] 'sub' => _('Sub (entire subtree)')
); );
include './header.php'; ?> include './header.php';
<body> echo '<body>';
<h3 class="title"><?php echo $lang['export']; ?></h3> printf('<h3 class="title">%s</h3>',_('Export'));
<br /> echo '<br />';
<center> echo '<center>';
<form name="export_form" action="export.php" method="POST"> echo '<form name="export_form" action="export.php" method="post">';
<table class="export_form"> echo '<table class="export_form">';
<tr> echo '<tr>';
<td> echo '<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 ); ?>
<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 } ?> echo '<table>';
</td> printf('<tr><td>%s</td><td>%s</td></tr>',_('Server'),server_select_list());
</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>
<?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"'; ?> /> echo '<tr>';
<label for="<?php echo htmlspecialchars( $index ); ?>"><?php echo htmlspecialchars( $exporter['desc'] ); ?></label><br /> printf('<td><span style="white-space: nowrap">%s</span></td>',_('Search Scope'));
<?php } ?> echo '<td>';
</fieldset> foreach ($available_scopes as $id => $desc)
</td> printf('<input type="radio" name="scope" value="%s" id="%s"%s /><label for="%s">%s</label><br />',
<td style="width: 50%"> htmlspecialchars($id),htmlspecialchars($id),($id == $scope) ? 'checked="true"' : '',
<fieldset style="height: 100px"> htmlspecialchars($id),htmlspecialchars($desc));
<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 />
<?php } ?> echo '</td>';
</fieldset> echo '</tr>';
</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>
<?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. * Helper functoin for fetching the line end format.
* @return String 'win', 'unix', or 'mac' based on the user's browser.. * @return String 'win', 'unix', or 'mac' based on the user's browser..
*/ */
function get_line_end_format() function get_line_end_format() {
{ if (is_browser_os_windows())
if( is_browser_os_windows() ) return 'win';
return 'win'; elseif (is_browser_os_unix())
elseif( is_browser_os_unix() ) return 'unix';
return 'unix'; elseif (is_browser_os_mac())
elseif( is_browser_os_mac() ) return 'mac';
return 'mac'; else
else return 'unix';
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,59 @@
<?php <?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.21.2.3 2005/12/11 04:00:23 wurley Exp $
/** /**
* @package phpLDAPadmin * @package phpLDAPadmin
*/ */
// We want to get $language into scope in case we were included /* We want to get $language into scope in case we were included
// from within a function from within a function */
global $config; global $config;
$language = isset($config) ? $language = $config->GetValue('appearance','language') : 'auto'; $language = isset($config) ? $language = $config->GetValue('appearance','language') : 'auto';
// text/xml won't work with MSIE, but is very useful for debugging xhtml code. # 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/xml; charset="UTF-8"');
@header( "Content-type: text/html; charset=\"UTF-8\"" ); @header('Content-type: text/html; charset="UTF-8"');
// XML version and encoding for well-behaved browsers # XML version and encoding for well-behaved browsers
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"; echo '<?xml version="1.0" encoding="utf-8"?>'."\n";
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"';
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 <?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.42.2.8 2006/01/01 11:54:09 wurley Exp $
/** /**
* @package phpLDAPadmin * @package phpLDAPadmin
* @todo: Move config.php syntax error processing to earlier.
*/ */
/******************************************* /*******************************************
@ -23,7 +22,7 @@ define('LIBDIR','../lib/');
ini_set('display_errors',1); ini_set('display_errors',1);
error_reporting(E_ALL); 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(); ob_start();
if (! file_exists(LIBDIR.'functions.php')) { if (! file_exists(LIBDIR.'functions.php')) {
ob_end_clean(); ob_end_clean();
@ -43,10 +42,10 @@ ob_end_clean();
*/ */
foreach ($pla_function_files as $file_name ) { foreach ($pla_function_files as $file_name ) {
if (! file_exists($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)) 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(); ob_start();
require $file_name; require $file_name;
@ -55,62 +54,125 @@ foreach ($pla_function_files as $file_name ) {
# Configuration File check # Configuration File check
if (! file_exists($config_file)) { 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> echo '<html>';
<head> echo '<head>';
<title>phpLDAPadmin - <?php echo pla_version(); ?></title> printf('<title>phpLDAPadmin - %s</title>',pla_version());
<link rel="stylesheet" href="style.css" /> echo '<link type="text/css" rel="stylesheet" href="css/style.css" />';
</head> echo '</head>';
<body> echo '<body>';
<h3 class="title">Configure phpLDAPadmin</h1> echo '<h3 class="title">Configure phpLDAPadmin</h3>';
<br /> echo '<br /><br />';
<br />
<center><?php echo $lang['need_to_configure']; ?></center> echo '<center>';
</body> 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);
</html> echo '</center>';
<?php echo '</body>';
echo '</html>';
die(); die();
} elseif (! is_readable($config_file)) { } elseif (! is_readable($config_file)) {
pla_error(sprintf('Fatal error: Cannot read your configuration file "%s", its permissions are too strict.',$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 if (! check_config()) {
require LIBDIR.'config_default.php'; exit;
}
if (check_config()) { echo '<?xml version="1.0" encoding="utf-8"?>'."\n";
print '<?xml version="1.0" encoding="utf-8"?>'; 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" echo '<html xmlns="http://www.w3.org/1999/xhtml" lang="no-NO">';
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="no-NO">
<?php if ($pagetitle = $config->GetValue('appearance','page_title')) { ?> if ($pagetitle = $config->GetValue('appearance','page_title'))
<head><title>phpLDAPadmin (<?php echo pla_version(); ?>) - <?php echo $pagetitle; ?></title></head> printf('<head><title>phpLDAPadmin (%s) - %s</title></head>',pla_version(),$pagetitle);
<?php } else { ?> else
<head><title>phpLDAPadmin - <?php echo pla_version(); ?></title></head> printf('<head><title>phpLDAPadmin - %s</title></head>',pla_version());
<?php } ?>
<frameset cols="<?php echo $config->GetValue('appearance','tree_width'); ?>,*"> printf('<frameset cols="%s,*">',$config->GetValue('appearance','tree_width'));
<frame src="tree.php" name="left_frame" id="left_frame" /> echo '<frame src="tree.php" name="left_frame" id="left_frame" />';
<frame src="welcome.php" name="right_frame" id="right_frame" /> echo '<frame src="welcome.php" name="right_frame" id="right_frame" />';
</frameset> echo '</frameset>';
</html> echo '</html>';
<?php }
/* /*
* Makes sure that the config file is properly setup and * Makes sure that the config file is properly setup and
* that your install of PHP can handle LDAP stuff. * that your install of PHP can handle LDAP stuff.
*/ */
function check_config() { 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 # Make sure their PHP version is current enough
if (strcmp(phpversion(),REQUIRED_PHP_VERSION) < 0) { if (strcmp(phpversion(),REQUIRED_PHP_VERSION) < 0) {
@ -120,132 +182,30 @@ function check_config() {
# Make sure this PHP install has all our required extensions # Make sure this PHP install has all our required extensions
if (! extension_loaded('ldap')) { if (! extension_loaded('ldap')) {
pla_error( "Your install of PHP appears to be missing LDAP support. Please install " . 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)');
"LDAP support before using phpLDAPadmin. (Don't forget to restart your web server afterwards)");
return false; return false;
} }
# Make sure that we have php-xml loaded. # Make sure that we have php-xml loaded.
if (! function_exists('xml_parser_create')) { if (! function_exists('xml_parser_create')) {
pla_error( "Your install of PHP appears to be missing XML support. Please install " . 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)');
"XML support before using phpLDAPadmin. (Don't forget to restart your web server afterwards)");
return false; return false;
} }
# Make sure their session save path is writable, if they are using a file system session module, that is. # 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())))) { 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 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. 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; return false;
} }
/* check for syntax errors in config.php */ if (! isset($ldapservers) || count($ldapservers->GetServerList()) == 0) {
# capture the result of including the file with output buffering pla_error('Your config.php is missing Server Definitions.
ob_start(); Please see the sample file config/config.php.example.',false);
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 );
return 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; return true;
} }
?> ?>

View File

@ -19,7 +19,7 @@
* than modifying calendar.js itself). * 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 * 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 * 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. */ /** The Calendar object constructor. */
Calendar = function (firstDayOfWeek, dateStr, onSelected, onClose) { 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.1.2.1 2005/11/27 03:55:50 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 <?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.33.2.3 2005/12/10 06:55:52 wurley Exp $
/** /**
* Imports an LDIF file to the specified server_id. * Imports an LDIF file to the specified server_id.
@ -15,192 +15,188 @@
require './common.php'; require './common.php';
$server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : ''); if (! $ldapserver->haveAuthInfo())
$ldapserver = $ldapservers->Instance($server_id); pla_error(_('Not enough information to login to server. Please check your configuration.'));
if( ! $ldapserver->haveAuthInfo()) $continuous_mode = isset($_POST['continuous_mode']) ? 1 : 0;
pla_error( $lang['not_enough_login_info'] );
$continuous_mode = isset( $_POST['continuous_mode'] ) ?1:0; if (isset($_REQUEST['ldif']) && trim($_REQUEST['ldif'])) {
$file = $_FILES['ldif_file']['tmp_name']; $textarealdif = $_REQUEST['ldif'];
$remote_file = $_FILES['ldif_file']['name']; $remote_file = 'STDIN';
$file_len = $_FILES['ldif_file']['size']; $file_len = strlen($textarealdif);
is_array( $_FILES['ldif_file'] ) or pla_error( $lang['missing_uploaded_file'] ); } elseif (isset($_FILES['ldif_file'])) {
file_exists( $file ) or pla_error( $lang['no_ldif_file_specified'] ); $file = $_FILES['ldif_file']['tmp_name'];
$file_len > 0 or pla_error( $lang['ldif_file_empty'] ); $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> include './header.php';
<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>
<br /> echo '<body>';
<br /> 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'; 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 = array();
$actionString['add'] = $lang['add_action']; $actionString['add'] = _('Adding...');
$actionString['delete'] = $lang['delete_action']; $actionString['delete'] = _('Deleting...');
$actionString['modrdn'] = $lang['rename_action']; $actionString['modrdn'] = _('Renaming...');
$actionString['moddn'] = $lang['rename_action']; $actionString['moddn'] = _('Renaming...');
$actionString['modify'] = $lang['modify_action']; $actionString['modify'] = _('Modifying...');
# String associated with error
// String associated with error
$actionErrorMsg =array(); $actionErrorMsg =array();
$actionErrorMsg['add'] = $lang['ldif_could_not_add_object']; $actionErrorMsg['add'] = _('Could not add object:');
$actionErrorMsg['delete']= $lang['ldif_could_not_delete_object']; $actionErrorMsg['delete']= _('Could not delete object:');
$actionErrorMsg['modrdn']= $lang['ldif_could_not_rename_object']; $actionErrorMsg['modrdn']= _('Could not rename object:');
$actionErrorMsg['moddn']= $lang['ldif_could_not_rename_object']; $actionErrorMsg['moddn']= _('Could not rename object:');
$actionErrorMsg['modify']= $lang['ldif_could_not_modify_object']; $actionErrorMsg['modify']= _('Could not modify object:');
// get the connection # instantiate the reader
//$ds = pla_ldap_connect( $server_id ); if (isset($textarealdif))
//pla_ldap_connection_is_error( $ds ); $ldifReader = new LdifReaderStdIn($textarealdif,$continuous_mode);
else
$ldifReader = new LdifReader($file,$continuous_mode);
//instantiate the reader # instantiate the writer
$ldifReader = new LdifReader($file,$continuous_mode); $ldapWriter = new LdapWriter($ldapserver);
//instantiate the writer # if ldif file has no version number, just display a warning
$ldapWriter = new LdapWriter($ldapserver->connect()); 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; $i=0;
// if .. else not mandatory but should be easier to maintain # if .. else not mandatory but should be easier to maintain
if( $continuous_mode ){ if ($continuous_mode) {
while( $ldifReader->readEntry() ){ while ($ldifReader->readEntry()) {
$i++; $i++;
// get the entry.
$currentEntry = $ldifReader->fetchEntryObject();
$changeType = $currentEntry->getChangeType();
echo "<small>".$actionString[$changeType]." ".$currentEntry->dn;
if($ldifReader->hasRaisedException()){ # get the entry.
echo " <span style=\"color:red;\">".$lang['failed']."</span></small><br>"; $currentEntry = $ldifReader->fetchEntryObject();
$exception = $ldifReader->getLdapLdifReaderException(); $edit_href = sprintf('template_engine.php?server_id=%s&amp;dn=%s',$ldapserver->server_id,
echo "<small><span style=\"color:red;\">".$lang['ldif_line_number'].": ".$exception->lineNumber."</span></small><br />"; rawurlencode($currentEntry->dn));
echo "<small><span style=\"color:red;\">".$lang['ldif_line'].": ".$exception->currentLine."</span></small><br />"; $changeType = $currentEntry->getChangeType();
echo "<small><span style=\"color:red;\">".$lang['desc'].": ".$exception->message."</span></small><br />"; printf('<small>%s <a href="%s">%s</a>',$actionString[$changeType],$edit_href,$entry->dn);
}
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();
echo "<small>".$actionString[$changeType]." ".$entry->dn; if ($ldifReader->hasRaisedException()) {
if($ldapWriter->ldapModify($entry)){ printf(' <span style="color:red;">%s</span></small><br />',_('Failed'));
echo " <span style=\"color:green;\">".$lang['success']."</span></small><br>"; $exception = $ldifReader->getLdapLdifReaderException();
if( 0 == $i % 5 ) printf(' <small><span style="color:red;">%s: %s</span></small><br />',
flush(); _('Line Number'),$exception->lineNumber);
} printf(' <small><span style="color:red;">%s: %s</span></small><br />',
else{ _('Line'),$exception->currentLine);
echo " <span style=\"color:red;\">".$lang['failed']."</span></small><br><br>"; printf(' <small><span style="color:red;">%s: %s</span></small><br />',
reload_left_frame(); _('Description'),$exception->message);
pla_error( $actionErrorMsg[$changeType]. " " . htmlspecialchars( $entry->dn ), $ldapserver->error(), $ldapserver->errno() );
} } 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. # close the file
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
$ldifReader->done(); $ldifReader->done();
//close the ldap connection
$ldapWriter->ldapClose();
reload_left_frame(); reload_left_frame();
function reload_left_frame(){ function reload_left_frame(){
global $server_id; echo '<script type="text/javascript" language="javascript">parent.left_frame.location.reload();</script>';
echo "<script>\r\n";
echo "parent.left_frame.document.location='refresh.php?server_id=".$server_id."';\r\n";
echo "</script>\r\n";
} }
function display_error_message($error_message){ 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){ 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){ function display_pla_parse_error($exception,$faultyEntry){
global $lang; global $actionErrorMsg;
global $actionErrorMsg;
$errorMessage = $actionErrorMsg[$faultyEntry->getChangeType()];
print("<center>"); $errorMessage = $actionErrorMsg[$faultyEntry->getChangeType()];
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' )));
print("</small></center></p>"); echo '<center>';
print("<td>"); echo '<table class="error"><tr><td class="img"><img src="images/warning.png" /></td>';
print("</tr>"); echo '<td>';
print("<center>"); 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 <?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.20.2.3 2005/12/10 06:55:52 wurley Exp $
/** /**
* Displays a form to allow the user to upload and import * Displays a form to allow the user to upload and import
@ -16,46 +16,39 @@
require './common.php'; require './common.php';
if (! ini_get('file_uploads')) 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'] : ''); if ($ldapserver->isReadOnly())
$ldapserver = $ldapservers->Instance($server_id); 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() ) include './header.php';
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
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> echo '<br /><br />';
<h3 class="subtitle"><?php echo $lang['server']?>: <b><?php echo htmlspecialchars( $ldapserver->name ); ?></b></h3> echo _('Select an LDIF file');
echo '<br /><br />';
<br /> echo '<form action="ldif_import.php" method="post" class="new_value" enctype="multipart/form-data">';
<br /> printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
<?php echo $lang['select_ldif_file']?><br /> echo '<input type="file" name="ldif_file" /> <br />';
<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"> echo '<br /><br />';
echo _('Paste your LDIF here');
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" /> echo '<form action="ldif_import.php" method="post" class="new_value" enctype="multipart/form-data">';
echo '<textarea name="ldif" rows="10" cols="60"></textarea>';
<input type="file" name="ldif_file" /> <br /> printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
<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> 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"));
<div style="margin-top:10px;"> printf('<div style="margin-top:10px;"><input type="submit" value="%s" /></div>',_('Proceed >>'));
<input type="submit" value="<?php echo $lang['proceed_gt']?>" /> echo '</form>';
</div> echo '</body></html>';
<?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 />";
?> ?>
</form>
</body>
</html>

View File

@ -1,13 +1,10 @@
<?php <?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.51.2.9 2005/12/31 03:13:48 wurley Exp $
/** /**
* For servers whose auth_type is set to 'cookie' or 'session'. Pass me the login info * For servers whose auth_type is set to 'cookie' or 'session'. Pass me the
* and I'll write two cookies, pla_login_dn_X and pla_pass_X * login info and I'll write two cookies, pla_login_dn_X and pla_pass_X where X
* where X is the server_id. The cookie_time comes from config.php * 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.
* *
* Variables that come in via common.php * Variables that come in via common.php
* - server_id * - server_id
@ -24,24 +21,25 @@ require './common.php';
# Prevents users from coming here without going through the proper channels # Prevents users from coming here without going through the proper channels
if (! isset($ldapserver)) 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()) 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 else
$anon_bind = false; $anon_bind = false;
if( ! $anon_bind ) if (! $anon_bind)
strlen($pass) or pla_error( $lang['password_blank'] ); strlen($pass) or pla_error(_('You left the password blank.'));
$save_auth_type = $ldapserver->auth_type; $save_auth_type = $ldapserver->auth_type;
if ($anon_bind) { if ($anon_bind) {
if (DEBUG_ENABLED) 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; $dn = null;
$pass = null; $pass = null;
@ -52,11 +50,11 @@ if ($anon_bind) {
} elseif ($ldapserver->isLoginAttrEnabled()) { } elseif ($ldapserver->isLoginAttrEnabled()) {
# Is this a login string (printf-style) # Is this a login string (printf-style)
if( $ldapserver->isLoginStringEnabled() ) { if ($ldapserver->isLoginStringEnabled()) {
$dn = str_replace( '<username>', $uid, $ldapserver->getLoginString() ); $dn = str_replace('<username>',$uid,$ldapserver->getLoginString());
if (DEBUG_ENABLED) if (DEBUG_ENABLED)
debug_log('LoginStringDN: [%s]',3,$dn); debug_log('LoginStringDN: [%s]',64,$dn);
} else { } else {
# This is a standard login_attr # This is a standard login_attr
@ -65,11 +63,12 @@ if ($anon_bind) {
the DN to use when searching for the login_attr user. */ the DN to use when searching for the login_attr user. */
$ldapserver->auth_type = 'config'; $ldapserver->auth_type = 'config';
set_error_handler( 'temp_login_error_handler' ); set_error_handler('temp_login_error_handler');
if ($ldapserver->login_dn) if ($ldapserver->login_dn)
$ldapserver->connect(true,false); $ldapserver->connect(true,'user');
else else
$ldapserver->connect(true,true); $ldapserver->connect(true,'anonymous');
restore_error_handler(); restore_error_handler();
if (! empty($ldapserver->login_class)) if (! empty($ldapserver->login_class))
@ -80,15 +79,14 @@ if ($anon_bind) {
# Got through each of the BASE DNs and test the login. # Got through each of the BASE DNs and test the login.
foreach ($ldapserver->getBaseDN() as $base_dn) { foreach ($ldapserver->getBaseDN() as $base_dn) {
if (DEBUG_ENABLED) 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 = array_pop($ldapserver->search(null,$base_dn,$filter,array('dn')));
$result = @ldap_get_entries($ldapserver->connect(false), $sr); $dn = $result['dn'];
$dn = isset( $result[0]['dn'] ) ? $result[0]['dn'] : false;
if ($dn) { if ($dn) {
if (DEBUG_ENABLED) 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; 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 we got here then we werent able to find a DN for the login filter.
if (! $dn) if (! $dn)
pla_error($lang['bad_user_name_or_password']); pla_error(_('Bad username or password. Please try again.'));
# restore the original auth_type # restore the original auth_type
$ldapserver->auth_type = $save_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 # We fake a 'config' server auth_type to omit duplicated code
if (DEBUG_ENABLED) 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; $save_auth_type = $ldapserver->auth_type;
$ldapserver->auth_type = 'config'; $ldapserver->auth_type = 'config';
@ -113,80 +111,66 @@ $ldapserver->login_dn = $dn;
$ldapserver->login_pass = $pass; $ldapserver->login_pass = $pass;
# Verify that dn is allowed to login # Verify that dn is allowed to login
if (! userIsAllowedLogin($ldapserver,$dn)) if (! $ldapserver->userIsAllowedLogin($dn))
pla_error( $lang['login_not_allowed'] ); pla_error(_('Sorry, you are not allowed to use phpLDAPadmin with this LDAP server.'));
if (DEBUG_ENABLED) 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 # verify that the login is good
if( is_null($dn) && is_null($pass)) if (is_null($dn) && is_null($pass))
$ds = $ldapserver->connect(true,true,true); $ds = $ldapserver->connect(true,'anonymous',true);
else else
$ds = $ldapserver->connect(true,false,true); $ds = $ldapserver->connect(true,'user',true);
if (DEBUG_ENABLED) if (DEBUG_ENABLED)
debug_log('Connection returned [%s]',9,$ds); debug_log('Connection returned [%s]',64,$ds);
if (! is_resource($ds)) { if (! is_resource($ds)) {
if ($anon_bind) if ($anon_bind)
pla_error($lang['could_not_bind_anon']); pla_error(_('Could not bind anonymously to server.'),null,null,true);
else 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"); syslog_notice("Authentification FAILED for $dn");
} }
$ldapserver->auth_type = $save_auth_type; $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); set_lastactivity($ldapserver);
initialize_session_tree(); if (! $anon_bind) {
$_SESSION['tree'][$ldapserver->server_id] = array();
$_SESSION['tree_icons'][$ldapserver->server_id] = array();
if(! $anon_bind) {
syslog_notice("Authentification successful for $dn"); syslog_notice("Authentification successful for $dn");
} }
session_write_close(); pla_session_close();
include './header.php'; 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"> echo '<center><br /><br /><br />';
<?php if ($anon_bind && $config->GetValue('appearance','anonymous_bind_redirect_no_tree')) { ?> printf(_('Successfully logged into server <b>%s</b>').'<br />',htmlspecialchars($ldapserver->name));
parent.location.href='search.php?server_id=<?php echo $ldapserver->server_id; ?>'
<?php } else { ?>
parent.left_frame.location.reload();
<?php } ?>
</script>
<center> if ($anon_bind)
<br /> printf('(%s)',_('Anonymous Bind'));
<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>
</body> echo '<br /></center>';
</html> echo '</body></html>';
<?php
/** /**
* Only gets called when we fail to login. * Only gets called when we fail to login.
*/ */
function temp_login_error_handler($errno,$errstr,$file,$lineno) { function temp_login_error_handler($errno,$errstr,$file,$lineno) {
global $lang;
if (ini_get('error_reporting') == 0 || error_reporting() == 0) if (ini_get('error_reporting') == 0 || error_reporting() == 0)
return; 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 <?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.25.4.2 2005/12/11 09:03:07 wurley Exp $
/** /**
* Displays the login form for a server for users who specify 'cookie' or 'session' for their auth_type. * 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'; require './common.php';
if (! $ldapserver->auth_type) 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'))) 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'; ?> include './header.php'; ?>
<body> <body>
<?php if( $ldapserver->isAnonBindAllowed() ) { ?> <?php if( $ldapserver->isAnonBindAllowed() ) { ?>
<script language="javascript"> <script type="text/javascript" language="javascript">
<!-- <!--
function toggle_disable_login_fields( anon_checkbox ) function toggle_disable_login_fields( anon_checkbox )
{ {
@ -41,14 +43,14 @@ include './header.php'; ?>
</script> </script>
<?php } ?> <?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 /> <br />
<?php if (! isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != 'on') { ?> <?php if (! isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != 'on') { ?>
<center> <center>
<span style="color:red"> <span style="color:red">
<acronym title="<?php echo $lang['not_using_https']; ?>"> <acronym title="<?php echo _('You are not using \'https\'. Web browser will transmit login information in clear text.'); ?>">
<?php echo $lang['warning_this_web_connection_is_unencrypted']; ?> <?php echo _('Warning: This web connection is unencrypted.'); ?>
</acronym> </acronym>
</span> </span>
<br /> <br />
@ -69,7 +71,7 @@ include './header.php'; ?>
<?php if( $ldapserver->isAnonBindAllowed() ) { ?> <?php if( $ldapserver->isAnonBindAllowed() ) { ?>
<tr> <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> </tr>
<?php } ?> <?php } ?>
@ -77,9 +79,9 @@ include './header.php'; ?>
<td><small> <td><small>
<?php <?php
if ($ldapserver->isLoginAttrEnabled()) if ($ldapserver->isLoginAttrEnabled())
echo $lang['user_name']; echo _('User name');
else else
echo $lang['login_dn']; echo _('Login DN');
?> ?>
</small></td> </small></td>
@ -87,12 +89,12 @@ else
</tr> </tr>
<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> <td><input type="password" size="40" value="" name="login_pass" /></td>
</tr> </tr>
<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> </tr>
</table> </table>
</center> </center>

View File

@ -1,5 +1,5 @@
<?php <?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.17.4.4 2005/12/16 11:33:07 wurley Exp $
/** /**
* For servers whose auth_type is set to 'cookie' or 'session'. Pass me * For servers whose auth_type is set to 'cookie' or 'session'. Pass me
@ -16,27 +16,33 @@
require './common.php'; require './common.php';
if (! $ldapserver->haveAuthInfo()) 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'))) { if (in_array($ldapserver->auth_type, array('cookie','session'))) {
syslog_notice (sprintf("Logout for %s",get_logged_in_dn($ldapserver))); syslog_notice (sprintf('Logout for %s',$ldapserver->getLoggedInDN()));
unset_login_dn($ldapserver) or pla_error($lang['could_not_logout']); $ldapserver->unsetLoginDN() or pla_error(_('Could not logout.'));
unset_lastactivity($ldapserver); unset_lastactivity($ldapserver);
if (isset($_SESSION['cache'][$ldapserver->server_id]['tree'])) {
unset($_SESSION['cache'][$ldapserver->server_id]['tree']);
}
pla_session_close();
} else } 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'; include './header.php';
?> ?>
<script language="javascript"> <body>
<script type="text/javascript" language="javascript">
parent.left_frame.location.reload(); parent.left_frame.location.reload();
</script> </script>
<center> <center>
<br /> <br />
<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> </center>
</body> </body>

View File

@ -1,5 +1,5 @@
<?php <?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.14.2.3 2005/12/16 10:21:12 wurley Exp $
/** /**
* Enables user to mass delete multiple entries using checkboxes. * Enables user to mass delete multiple entries using checkboxes.
@ -21,59 +21,60 @@
require './common.php'; require './common.php';
if( $ldapserver->isReadOnly() ) 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()) 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']; $mass_delete = $_POST['mass_delete'];
is_array( $mass_delete ) or is_array($mass_delete) or
pla_error( $lang['mass_delete_not_array'] ); pla_error(_('mass_delete POST var is not an array.'));
$ldapserver->isMassDeleteEnabled() or $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'; require './header.php';
echo "<body>\n"; echo '<body>';
echo "<h3 class=\"title\">" . $lang['mass_deleting'] . "</h3>\n"; printf('<h3 class="title">%s</h3>',_('Mass Deleting'));
if( $confirmed == true ) { if ($confirmed == true) {
echo "<h3 class=\"subtitle\">" . sprintf( $lang['mass_delete_progress'], $ldapserver->name ) . "</h3>\n"; printf('<h3 class="subtitle">'._('Deletion progress on server "%s"').'</h3>',$ldapserver->name);
echo "<blockquote>"; echo '<blockquote>';
echo "<small>\n"; echo '<small>';
$successfully_delete_dns = array(); $successfully_delete_dns = array();
$failed_dns = array(); $failed_dns = array();
if( ! is_array( $mass_delete ) ) if (! is_array($mass_delete))
pla_error( $lang['malformed_mass_delete_array'] ); pla_error(_('Malformed mass_delete array.'));
if( count( $mass_delete ) == 0 ) { if (count($mass_delete) == 0) {
echo "<br />"; echo '<br />';
echo "<center>" . $lang['no_entries_to_delete'] . "</center>"; printf('<center>%s</center>',_('You did not select any entries to delete.'));
die(); die();
} }
foreach( $mass_delete as $dn => $junk ) { // @todo: Should sort these entries, so that they are deleted in order, if a user selects children.
echo sprintf( $lang['deleting_dn'], htmlspecialchars($dn) ); foreach ($mass_delete as $dn => $junk) {
printf(_('Deleting %s'),htmlspecialchars($dn));
flush(); flush();
if( true === run_hook ( 'pre_entry_delete', array ( 'server_id' => $ldapserver->server_id, 'dn' => $dn ) ) ) { if(run_hook('pre_entry_delete',array('server_id'=>$ldapserver->server_id,'dn'=>$dn))) {
$success = @ldap_delete( $ldapserver->connect(), $dn ); $success = $ldapserver->delete($dn);
if( $success ) { if ($success) {
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));
echo " <span style=\"color:green\">" . $lang['success'] . "</span>.<br />\n"; printf(' <span style="color:green">%s</span>.<br />',_('Success'));
$successfully_delete_dns[] = $dn; $successfully_delete_dns[] = $dn;
} else { } else {
echo " <span style=\"color:red\">" . $lang['failed'] . "</span>.\n"; printf(' <span style="color:red">%s</span>.<br /> (%s)<br />',_('Failed'),$ldapserver->error());
echo "(" . $ldapserver->error() . ")<br />\n";
$failed_dns[] = $dn; $failed_dns[] = $dn;
} }
} }
@ -81,73 +82,37 @@ if( $confirmed == true ) {
flush(); flush();
} }
echo "<blockquote>"; echo '<blockquote>';
echo "</small>\n"; echo '</small>';
$failed_count = count( $failed_dns ); $failed_count = count($failed_dns);
$total_count = count( $mass_delete ); $total_count = count($mass_delete);
if( $failed_count > 0 ) { if ($failed_count > 0)
echo "<span style=\"color: red; font-weight: bold;\">\n"; printf('<span style="color: red; font-weight: bold;">'._('%s of %s entries failed to be deleted.').'</span>',$failed_count,$total_count);
echo sprintf( $lang['total_entries_failed'], $failed_count, $total_count ) . "</span>\n"; else
printf('<span style="color: green; font-weight: bold;">%s</span>',_('All entries deleted successfully.'));
} else { echo '<script language="javascript">parent.left_frame.location.reload();</script>';
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 }
} else { } else {
$n = count( $mass_delete ); $n = count($mass_delete);
echo "<h3 class=\"subtitle\">" . sprintf( $lang['confirm_mass_delete'], $n, $ldapserver->name ) . "</h3>\n"; ?> 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 echo '<form action="mass_delete.php" method="post">';
<?php echo ($n==1?'this':'these') . ' ' . $n . ' ' . ($n==1?'entry':'entries'); ?>? 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"> echo '<table><tr><td><ol>';
<input type="hidden" name="confirmed" value="true" /> foreach ($mass_delete as $dn => $junk)
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" /> 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> printf('<input class="scary" type="submit" value="%s" /></center>',_('Yes, delete!'));
<ol> echo '</form>';
<?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 }
?> ?>

View File

@ -1,5 +1,5 @@
<?php <?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.8.4.1 2005/12/08 11:54:00 wurley Exp $
/** /**
* @package phpLDAPadmin * @package phpLDAPadmin
@ -23,17 +23,17 @@ if( isset( $_REQUEST['base64'] ) ) {
$enc_type = get_enc_type( $hash ); $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"> <form style="margin: 0" action="password_checker.php" method="post">
<input type="hidden" name="action" value="compare" /> <input type="hidden" name="action" value="compare" />
<table style="border-spacing: 10px"> <table style="border-spacing: 10px">
<tr> <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> <td><input type="<?php echo ( $enc_type ? 'text' : 'password' ); ?>" name="hash" style="width: 300px" value="<?php echo htmlspecialchars($hash); ?>" /></td>
</tr> </tr>
<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> <td><input type="password" style="width: 300px" name="check_password" value="<?php echo htmlspecialchars($check_password); ?>" /></td>
</tr> </tr>
<tr> <tr>
@ -42,9 +42,9 @@ $enc_type = get_enc_type( $hash );
<?php if( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'compare' ) { <?php if( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'compare' ) {
echo "&nbsp;&nbsp;&nbsp;&nbsp;<b>"; echo "&nbsp;&nbsp;&nbsp;&nbsp;<b>";
if( password_check( $hash, $check_password) ) if( password_check( $hash, $check_password) )
echo "<span style=\"color: green\">" . $lang['passwords_match'] . "</span>"; echo "<span style=\"color: green\">" . _('Passwords match!') . "</span>";
else else
echo "<span style=\"color: red\">" . $lang['passwords_do_not_match'] . "</span>"; echo "<span style=\"color: red\">" . _('Passwords do not match!') . "</span>";
echo "</b>"; echo "</b>";
} ?> } ?>
</td> </td>

View File

@ -1,5 +1,5 @@
<?php <?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.6.4.5 2005/12/16 11:29:35 wurley Exp $
/** /**
* @package phpLDAPadmin * @package phpLDAPadmin
@ -10,34 +10,29 @@
require './common.php'; require './common.php';
include './header.php'; include './header.php';
$purge_session_keys = array('cache','tree','tree_icons'); $purge_session_keys = array('cache');
?>
<body> echo '<body>';
<h3 class="title">Purging Caches</h3> echo '<h3 class="title">Purging Caches</h3><br /><br /><br />';
<br />
<br />
<br />
<center>
<?php
$size = 0; $size = 0;
foreach ($purge_session_keys as $key) { foreach ($purge_session_keys as $key) {
if (isset($_SESSION[$key])) { if (isset($_SESSION[$key])) {
$size += strlen(serialize($_SESSION[$key])); $size += strlen(serialize($_SESSION[$key]));
unset($_SESSION[$key]); unset($_SESSION[$key]);
} }
} }
pla_session_close();
session_write_close(); echo '<center>';
if (! $size) if (! $size)
echo $lang['no_cache_to_purge']; echo _('No cache to purge.');
else else
echo sprintf($lang['done_purging_caches'],number_format($size)); printf(_('Purged %s bytes of cache.'),number_format($size));
?>
</center> echo '</center>';
</body>
</html> 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 <?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.23.2.2 2005/12/08 11:54:19 wurley Exp $
/** /**
* Recursively deletes the specified DN and all of its children * Recursively deletes the specified DN and all of its children
@ -17,114 +17,74 @@
require './common.php'; require './common.php';
if ($ldapserver->isReadOnly()) 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()) 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']; $dn = $_POST['dn'];
$encoded_dn = rawurlencode($dn);
$rdn = get_rdn($dn);
if (! $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'; include './header.php';
echo "<body>\n"; echo '<body>';
echo "<h3 class=\"title\">".sprintf($lang['deleting_dn'],htmlspecialchars($rdn))."</h3>\n"; printf('<h3 class="title">'._('Deleting %s').'</h3>',htmlspecialchars(get_rdn($dn)));
echo "<h3 class=\"subtitle\">".$lang['recursive_delete_progress']."</h3>"; printf('<h3 class="subtitle">%s</h3>',_('Recursive delete progress'));
echo "<br /><br />"; echo '<br /><br />';
echo "<small>\n"; echo '<small>';
flush(); flush();
// prevent script from bailing early on a long delete # prevent script from bailing early on a long delete
@set_time_limit(0); @set_time_limit(0);
$del_result = pla_rdelete($ldapserver,$dn); $del_result = pla_rdelete($ldapserver,$dn);
echo "</small><br />\n"; echo '</small><br />';
if ($del_result) { if ($del_result) {
# kill the DN from the tree browser session variable and echo '<script language="javascript">parent.left_frame.location.reload();</script>';
# refresh the tree viewer frame (left_frame) printf(_('Entry %s and sub-tree deleted successfully.'),'<b>'.htmlspecialchars($dn).'</b>');
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>');
} else { } 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()); $ldapserver->error(),$ldapserver->errno());
} }
exit;
function pla_rdelete($ldapserver,$dn) { function pla_rdelete($ldapserver,$dn) {
global $lang; $children = $ldapserver->getContainerContents($dn);
$children = get_container_contents($ldapserver,$dn);
if (! is_array($children) || count($children) == 0) { if (! is_array($children) || count($children) == 0) {
echo "<nobr>".sprintf($lang['deleting_dn'],htmlspecialchars($dn))."..."; printf('<nobr>'._('Deleting %s').'...',htmlspecialchars($dn));
flush(); flush();
if (run_hook('pre_entry_delete',array('server_id' => $ldapserver->server_id,'dn' => $dn))) if (run_hook('pre_entry_delete',array('server_id'=>$ldapserver->server_id,'dn'=>$dn)))
if ($ldapserver->delete($dn)) {
if (@ldap_delete($ldapserver->connect(),$dn)) { run_hook('post_entry_delete',array('server_id'=>$ldapserver->server_id,'dn'=>$dn));
run_hook ('post_entry_delete', printf(' <span style="color:green">%s</span></nobr><br />',_('Success'));
array('server_id' => $ldapserver->server_id,'dn' => $dn));
echo " <span style=\"color:green\">".$lang['success']."</span></nobr><br />\n";
return true; return true;
} else { } 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()); $ldapserver->error(),$ldapserver->errno());
} }
} else { } else {
foreach ($children as $child_dn) { foreach ($children as $child_dn)
pla_rdelete($ldapserver,$child_dn); pla_rdelete($ldapserver,$child_dn);
}
echo "<nobr>".sprintf($lang['deleting_dn'],htmlspecialchars($dn))."..."; printf('<nobr>'._('Deleting %s').'...',htmlspecialchars($dn));
flush(); flush();
if (true === run_hook ('pre_entry_delete',array('server_id' => $ldapserver->server_id,'dn' => $dn))) if (run_hook('pre_entry_delete',array('server_id'=>$ldapserver->server_id,'dn'=>$dn)))
if (@ldap_delete($ldapserver->connect(),$dn)) { if ($ldapserver->delete($dn)) {
run_hook ('post_entry_delete', run_hook('post_entry_delete',array('server_id'=>$ldapserver->server_id,'dn'=>$dn));
array('server_id' => $ldapserver->server_id,'dn' => $dn)); printf(' <span style="color:green">%s</span></nobr><br />',_('Success'));
echo " <span style=\"color:green\">".$lang['success']."</span></nobr><br />\n";
return true; return true;
} else { } 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()); $ldapserver->error(),$ldapserver->errno());
} }
} }

View File

@ -1,6 +1,6 @@
<?php <?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.15.4.2 2005/12/16 11:29:35 wurley Exp $
/** /**
* This script alters the session variable 'tree', by re-querying * This script alters the session variable 'tree', by re-querying
* the LDAP server to grab the contents of every expanded container. * the LDAP server to grab the contents of every expanded container.
@ -11,41 +11,16 @@
* @package phpLDAPadmin * @package phpLDAPadmin
*/ */
/** /**
* @todo: Change this to just refresh all the open entries.
*/ */
require './common.php'; require './common.php';
if (! isset($ldapserver) || ! array_key_exists('tree',$_SESSION)) if (! isset($ldapserver))
header("Location: tree.php"); header('Location: tree.php');
$tree = $_SESSION['tree']; unset($_SESSION['cache'][$ldapserver->server_id]['tree']);
$tree_icons = $_SESSION['tree_icons']; pla_session_close();
# 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();
header(sprintf('Location: tree.php#%s',$ldapserver->server_id)); header(sprintf('Location: tree.php#%s',$ldapserver->server_id));
?> ?>

View File

@ -1,5 +1,5 @@
<?php <?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.29.2.3 2005/12/08 11:54:19 wurley Exp $
/** /**
* Renames a DN to a different name. * Renames a DN to a different name.
@ -18,106 +18,60 @@
require './common.php'; require './common.php';
if ($ldapserver->isReadOnly()) 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()) 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']); $dn = ($_POST['dn']);
$new_rdn = ($_POST['new_rdn']);
if (! $ldapserver->isBranchRenameEnabled()) { if (! $ldapserver->isBranchRenameEnabled()) {
$children = get_container_contents($ldapserver,$dn); $children = $ldapserver->getContainerContents($dn);
if (count($children) > 0) 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); $container = get_container($dn);
$new_dn = sprintf('%s,%s',$new_rdn,$container); $new_dn = sprintf('%s,%s',$new_rdn,$container);
if ($new_dn == $dn) 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 = explode('=',$dn);
$old_dn_attr = $old_dn_attr[0]; $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); $new_dn_value = explode('=',$new_rdn,2);
if (count($new_dn_value) != 2 || ! isset($new_dn_value[1])) 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_attr = $new_dn_value[0];
$new_dn_value = $new_dn_value[1]; $new_dn_value = $new_dn_value[1];
$success = run_hook ('pre_rename_entry', array ('server_id' => $ldapserver->server_id, $success = run_hook('pre_rename_entry',array('server_id'=>$ldapserver->server_id,'old_dn'=>$dn,'new_dn'=>$new_dn_value));
'old_dn' => $dn, 'new_dn' => $new_dn_value ) );
if ($success) { if ($success) {
$success = false; $success = false;
$deleteoldrdn = $old_dn_attr == $new_dn_attr; $deleteoldrdn = $old_dn_attr == $new_dn_attr;
$success = $ldapserver->rename($dn,$new_rdn,$container,$deleteoldrdn);
if (! @ldap_rename($ldapserver->connect(), $dn, $new_rdn, $container, $deleteoldrdn ) ) {
pla_error($lang['could_not_rename'],
$ldapserver->error(),
$ldapserver->errno(), false );
} else
$success = true;
} else { } else {
pla_error($lang['could_not_rename'] ); pla_error(_('Could not rename the entry') );
} }
if ($success ) { if ($success) {
run_hook ('post_rename_entry', array ('server_id' => $ldapserver->server_id, 'old_dn' => $dn, run_hook('post_rename_entry',array('server_id'=>$ldapserver->server_id,'old_dn'=>$dn,'new_dn'=>$new_dn_value));
'new_dn' => $new_dn_value ) );
if (array_key_exists('tree', $_SESSION ) ) { $edit_url = sprintf('template_engine.php?server_id=%s&dn=%s',$ldapserver->server_id,rawurlencode($new_dn));
$tree = $_SESSION['tree'];
$tree_icons = $_SESSION['tree_icons'];
$old_dn = $dn;
// gotta search the whole tree for the entry (must be a leaf node since RDN changes echo '<html><head>';
// cannot occur on parents) echo '<!-- refresh the tree view (with the new DN renamed) and redirect to the edit_dn page -->';
foreach ($tree[$ldapserver->server_id] as $parent_dn => $children ) { printf('<script language="javascript">parent.left_frame.location.reload();location.href="%s";</script>',$edit_url);
foreach ($children as $i => $child_dn ) { echo "<!-- If the JavaScript didn't work, here's a meta tag to do the job -->";
if (0 == strcasecmp($child_dn, $old_dn ) ) printf('<meta http-equiv="refresh" content="0; url=%s" />',$edit_url);
$tree[$ldapserver->server_id][$parent_dn][$i] = $new_dn; echo '</head><body>';
}
}
// Update the icon tree to reflect the change (remove the old DN and add the new one) printf('%s <a href="%s">%s</a>',_('Redirecting...'),$edit_url,_('here'));
$tree_icons[ $ldapserver->server_id ][ $new_dn ] = $tree_icons[ $ldapserver->server_id ][ $old_dn ]; echo '</body></html>';
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 }
} }
?> ?>

View File

@ -1,6 +1,6 @@
<?php <?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.8.4.2 2005/12/08 11:55:06 wurley Exp $
/** /**
* Displays a form for renaming an LDAP entry. * Displays a form for renaming an LDAP entry.
* *
@ -17,29 +17,25 @@
require './common.php'; require './common.php';
if ($ldapserver->isReadOnly()) 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()) 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']; $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> echo '<br /><center><form action="rename.php" method="post" class="edit_dn" />';
<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> printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
printf('<input type="hidden" name="dn" value="%s" />',$dn);
<br /> printf('<input type="text" name="new_rdn" size="30" value="%s" />',htmlspecialchars($rdn));
<center> printf('<input class="update_dn" type="submit" value="%s" />',_('Rename'));
<form action="rename.php" method="post" class="edit_dn" /> echo '</form></center>';
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" /> echo '</body></html>';
<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>

View File

@ -1,5 +1,5 @@
<?php <?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.61.2.5 2005/12/30 11:52:54 wurley Exp $
/** /**
* Displays the schema for the specified server_id * Displays the schema for the specified server_id
@ -19,7 +19,7 @@
require './common.php'; require './common.php';
if( ! $ldapserver->haveAuthInfo()) 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'; $view = isset($_GET['view']) ? $_GET['view'] : 'objectClasses';
$viewvalue = isset($_GET['viewvalue']) ? $_GET['viewvalue'] : null; $viewvalue = isset($_GET['viewvalue']) ? $_GET['viewvalue'] : null;
@ -32,39 +32,39 @@ if (! is_null($viewvalue))
include './header.php'; 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>', $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), _('Could not retrieve schema from'),htmlspecialchars($ldapserver->name),
$lang['reasons_for_error'],$lang['schema_retrieve_error_1'], _('This could happen for several reasons, the most probable of which are:'),_('The server does not fully support the LDAP protocol.'),
$lang['schema_retrieve_error_2'],$lang['schema_retrieve_error_3'], _('Your version of PHP does not correctly perform the query.'),_('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.'));
?> ?>
<body> <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> <b><?php echo htmlspecialchars($ldapserver->name); ?></b></h3>
<br /> <br />
<center> <center>
<?php echo ( $view=='objectClasses' ? <?php echo ( $view=='objectClasses' ?
$lang['objectclasses'] : _('ObjectClasses') :
sprintf('<a href="?server_id=%s&amp;view=%s">%s</a>', 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' ? <?php echo ( $view=='attributes' ?
$lang['attribute_types']: _('Attribute Types'):
sprintf('<a href="?server_id=%s&amp;view=%s">%s</a>', 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' ? <?php echo ( $view=='syntaxes' ?
$lang['syntaxes'] : _('Syntaxes') :
sprintf('<a href="?server_id=%s&amp;view=%s">%s</a>', 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' ? <?php echo ( $view=='matching_rules' ?
$lang['matchingrules'] : _('Matching Rules') :
sprintf('<a href="?server_id=%s&amp;view=%s">%s</a>', 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> </center>
<br /> <br />
@ -76,7 +76,7 @@ switch($view) {
$highlight_oid = isset($_GET['highlight_oid']) ? $_GET['highlight_oid'] : false; $highlight_oid = isset($_GET['highlight_oid']) ? $_GET['highlight_oid'] : false;
print '<table class="schema_attr" width="100%">'; 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; $counter = 1;
@ -95,42 +95,38 @@ switch($view) {
else else
printf('<tr class="%s">',$counter%2==0?'even':'odd'); 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>'; print '</table>';
break; break;
case 'attributes': case 'attributes':
$schema_attrs = $ldapserver->SchemaAttributes(null,true); $schema_attrs = $ldapserver->SchemaAttributes();
$schema_object_classes = $ldapserver->SchemaObjectClasses(null,true); $schema_object_classes = $ldapserver->SchemaObjectClasses();
if (! $schema_attrs || ! $schema_object_classes) if (! $schema_attrs || ! $schema_object_classes)
pla_error($schema_error_str); pla_error($schema_error_str);
?>
<small><?php echo $lang['jump_to_attr']; ?>:</small> printf('<small>%s:</small>',_('Jump to an attribute type'));
<form> echo '<form action="schema.php" method="get">';
<input type="hidden" name="view" value="<?php echo $view; ?>" /> printf('<input type="hidden" name="view" value="%s" />',$view);
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" /> printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
<select name="viewvalue" onChange="submit()">
<option value=""> - all -</option>
<?php echo '<select name="viewvalue" onChange="submit()">';
foreach ($schema_attrs as $attr) { echo '<option value=""> - all -</option>';
foreach ($schema_attrs as $name => $attr)
printf('<option value="%s" %s>%s</option>', printf('<option value="%s" %s>%s</option>',
$attr->getName(), $name,$name == $viewvalue ? 'selected ': '',$attr->getName());
(! strcasecmp($attr->getName(),$viewvalue) ? 'selected' : ''),$attr->getName());
}
?>
</select> echo '</select>';
<input type="submit" value="<?php echo $lang['go']; ?>" /></form>
<br /> printf('<input type="submit" value="%s" /></form>',_('Go'));
<table class="schema_attr" width="100%">
echo '<br />';
echo '<table class="schema_attr" width="100%">';
<?php
foreach ($schema_attrs as $attr) { foreach ($schema_attrs as $attr) {
if (is_null($viewvalue) || ! strcasecmp($viewvalue,$attr->getName())) { if (is_null($viewvalue) || ! strcasecmp($viewvalue,$attr->getName())) {
if (! is_null($viewvalue)) if (! is_null($viewvalue))
@ -145,34 +141,35 @@ switch($view) {
array('desc','obsolete','inherits','equality','ordering','substring_rule','syntax', array('desc','obsolete','inherits','equality','ordering','substring_rule','syntax',
'single_valued','collective','user_modification','usage','maximum_length', 'single_valued','collective','user_modification','usage','maximum_length',
'aliases','used_by_objectclasses' 'aliases','used_by_objectclasses'
) ) as $item) {
as $item) {
printf('<tr class="%s">',++$counter%2 ? 'odd' : 'even'); printf('<tr class="%s">',++$counter%2 ? 'odd' : 'even');
printf('<td>%s</td>',$lang[$item]);
switch ($item) { switch ($item) {
case 'desc': case 'desc':
printf('<td>%s</td>',_('Description'));
printf('<td>%s</td>', printf('<td>%s</td>',
is_null($attr->getDescription()) ? is_null($attr->getDescription()) ?
'('.$lang['no_description'].')' : $attr->getDescription()); '('._('no description').')' : $attr->getDescription());
print '</tr>'; print '</tr>';
printf('<tr class="%s">',++$counter%2 ? 'odd' : 'even'); 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()); printf('<td>%s</td>',$attr->getOID());
break; break;
case 'obsolete': 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; break;
case 'inherits': case 'inherits':
printf('<td>%s</td>',_('Inherits from'));
print '<td>'; print '<td>';
if (is_null($attr->getSupAttribute())) if (is_null($attr->getSupAttribute()))
printf('(%s)',$lang['none']); printf('(%s)',_('none'));
else else
printf('<a href="?server_id=%s&amp;view=%s&amp;viewvalue=%s">%s</a>', printf('<a href="?server_id=%s&amp;view=%s&amp;viewvalue=%s">%s</a>',
@ -183,23 +180,27 @@ switch($view) {
break; break;
case 'equality': case 'equality':
printf('<td>%s</td>',_('Equality'));
printf('<td>%s</td>', 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>', sprintf('<a href="?server_id=%s&amp;view=matching_rules&amp;viewvalue=%s">%s</a>',
$ldapserver->server_id,$attr->getEquality(),$attr->getEquality())); $ldapserver->server_id,$attr->getEquality(),$attr->getEquality()));
break; break;
case 'ordering': case 'ordering':
printf('<td>%s</td>',_('Ordering'));
printf('<td>%s</td>', printf('<td>%s</td>',
is_null($attr->getOrdering()) ? '('.$lang['not_specified'].')' : $attr->getOrdering()); is_null($attr->getOrdering()) ? '('._('not specified').')' : $attr->getOrdering());
break; break;
case 'substring_rule': case 'substring_rule':
printf('<td>%s</td>',_('Substring Rule'));
printf('<td>%s</td>', printf('<td>%s</td>',
is_null($attr->getSubstr()) ? '('.$lang['not_specified'].')' : $attr->getSubstr()); is_null($attr->getSubstr()) ? '('._('not specified').')' : $attr->getSubstr());
break; break;
case 'syntax': case 'syntax':
printf('<td>%s</td>',_('Syntax'));
print '<td>'; print '<td>';
if (is_null($attr->getType())) { if (is_null($attr->getType())) {
@ -216,58 +217,65 @@ switch($view) {
break; break;
case 'single_valued': 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; break;
case 'collective': 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; break;
case 'user_modification': 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; break;
case 'usage': 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; break;
case 'maximum_length': case 'maximum_length':
printf('<td>%s</td>',_('Maximum Length'));
print '<td>'; print '<td>';
if ( is_null($attr->getMaxLength())) if ( is_null($attr->getMaxLength()))
echo '('.$lang['not_applicable'].')'; echo '('._('not applicable').')';
else else
printf('%s %s',number_format($attr->getMaxLength()), printf('%s %s',number_format($attr->getMaxLength()),
$attr->getMaxLength()>1 ? $lang['characters'] : $lang['character']); $attr->getMaxLength()>1 ? _('characters') : _('character'));
print '</td>'; print '</td>';
break; break;
case 'aliases': case 'aliases':
printf('<td>%s</td>',_('Aliases'));
print '<td>'; print '<td>';
if (count($attr->getAliases()) == 0) if (count($attr->getAliases()) == 0)
echo '('.$lang['none'].')'; echo '('._('none').')';
else else
foreach ($attr->getAliases() as $alias_attr_name) foreach ($attr->getAliases() as $alias_attr_name)
printf('<a href="?server_id=%s&amp;view=attributes&amp;viewvalue=%s">%s</a>', 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>'; print '</td>';
break; break;
case 'used_by_objectclasses': case 'used_by_objectclasses':
printf('<td>%s</td>',_('Used by objectClasses'));
print '<td>'; print '<td>';
if (count($attr->getUsedInObjectClasses()) == 0) if (count($attr->getUsedInObjectClasses()) == 0)
echo '('.$lang['none'].')'; echo '('._('none').')';
else else
foreach ($attr->getUsedInObjectClasses() as $used_in_oclass) foreach ($attr->getUsedInObjectClasses() as $used_in_oclass)
printf('<a href="?server_id=%s&amp;view=objectClasses&amp;viewvalue=%s">%s</a> ', 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>'; print '</td>';
break; break;
@ -288,14 +296,14 @@ switch($view) {
if (! $schema_matching_rules) if (! $schema_matching_rules)
pla_error($schema_error_str); 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="?">'; print '<form action="schema.php" method="get">';
printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id); printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
print '<input type="hidden" name="view" value="matching_rules" />'; print '<input type="hidden" name="view" value="matching_rules" />';
print '<select name="viewvalue" onChange="submit()">'; print '<select name="viewvalue" onChange="submit()">';
print '<option value=""> - all -</option>'; print '<option value=""> - all -</option>';
foreach ($schema_matching_rules as $rule) foreach ($schema_matching_rules as $rule)
printf('<option value="%s" %s>%s</option>', printf('<option value="%s" %s>%s</option>',
@ -303,14 +311,14 @@ switch($view) {
($rule->getName() == $viewvalue ? 'selected': ''), ($rule->getName() == $viewvalue ? 'selected': ''),
$rule->getName()); $rule->getName());
print '</select>'; print '</select>';
printf('<input type="submit" value="%s" />',$lang['go']); printf('<input type="submit" value="%s" />',_('Go'));
print '</form>'; print '</form>';
print '<table class="schema_attr" width="100%">'; print '<table class="schema_attr" width="100%">';
printf('<tr><th>%s</th><th>%s</th><th>%s</th></tr>', 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; $counter = 1;
@ -328,7 +336,7 @@ switch($view) {
$desc .= sprintf(' (%s)',$rule->getDescription()); $desc .= sprintf(' (%s)',$rule->getDescription());
if ( $rule->getIsObsolete()) 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('<tr class="%s">',$counter%2 ? 'odd' : 'even');
printf('<td>%s</td>',$oid); printf('<td>%s</td>',$oid);
@ -337,11 +345,11 @@ switch($view) {
print '<td>'; print '<td>';
if (count($rule->getUsedByAttrs()) == 0) { if (count($rule->getUsedByAttrs()) == 0) {
printf('<center>(%s)</center><br /><br />',$lang['none']); printf('<center>(%s)</center><br /><br />',_('none'));
} else { } else {
print '<table><tr><td style="text-align: right">'; 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); printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
print '<input type="hidden" name="view" value="attributes" />'; print '<input type="hidden" name="view" value="attributes" />';
@ -350,7 +358,7 @@ switch($view) {
printf('<option>%s</option>',$attr); printf('<option>%s</option>',$attr);
print '</select><br />'; print '</select><br />';
printf('<input type="submit" value="%s" />',$lang['go']); printf('<input type="submit" value="%s" />',_('Go'));
print '</form>'; print '</form>';
print '</td></tr></table>'; print '</td></tr></table>';
} }
@ -363,181 +371,148 @@ switch($view) {
break; break;
case 'objectClasses': case 'objectClasses':
$schema_oclasses = $ldapserver->SchemaObjectClasses(null,true); $schema_oclasses = $ldapserver->SchemaObjectClasses();
if (! $schema_oclasses) if (! $schema_oclasses)
pla_error($schema_error_str); pla_error($schema_error_str);
?>
<small><?php echo $lang['jump_to_objectclass']; ?>:</small> printf('<small>%s:</small>',_('Jump to an objectClass'));
<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>
<?php echo '<form action="schema.php" method="get">';
foreach( $schema_oclasses as $name => $oclass ) { 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>', printf('<option value="%s" %s>%s</option>',
$oclass->getName(), $name,$name == $viewvalue ? 'selected ': '',$oclass->getName());
(strcasecmp($oclass->getName(),$viewvalue) == 0 ? ' selected ':''),
$oclass->getName());
} echo '</select>';
?>
</select> printf('<input type="submit" value="%s" />',_('Go'));
<input type="submit" value="<?php echo $lang['go']; ?>" /> echo '</form>';
</form>
<br /> echo '<br />';
<?php
flush(); flush();
foreach ($schema_oclasses as $name => $oclass) { foreach ($schema_oclasses as $name => $oclass) {
foreach ($oclass->getSupClasses() as $parent_name) { if (is_null($viewvalue) || ($viewvalue == $name)) {
if (isset($schema_oclasses[$parent_name])) if (! is_null($viewvalue))
$schema_oclasses[$parent_name]->addChildObjectClass($oclass->getName());
}
if ( is_null($viewvalue) || ! strcasecmp($viewvalue,$oclass->getName())) {
if ( ! is_null($viewvalue))
$viewed = true; $viewed = true;
?>
<h4 class="oclass"><a name="<?php echo $name; ?>"><?php echo $oclass->getName(); ?></a></h4> printf('<h4 class="oclass"><a name="%s">%s</a></h4>',$name,$oclass->getName());
<h4 class="oclass_sub"><?php echo $lang['OID']; ?>: <b><?php echo $oclass->getOID(); ?></b></h4> printf('<h4 class="oclass_sub">%s: <b>%s</b></h4>',_('OID'),$oclass->getOID());
<?php if ($oclass->getDescription()) { ?> if ($oclass->getDescription())
<h4 class="oclass_sub"><?php echo $lang['desc']; ?>: <b><?php echo $oclass->getDescription(); ?></b></h4> printf('<h4 class="oclass_sub">%s: <b>%s</b></h4>',_('Description'),$oclass->getDescription());
<?php } ?>
<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()) { ?> if ($oclass->getIsObsolete())
<h4 class="oclass_sub"><?php echo $lang['is_obsolete']; ?></h4> printf('<h4 class="oclass_sub">%s</h4>',_('This objectClass is obsolete.'));
<?php } ?>
<h4 class="oclass_sub"><?php echo $lang['inherits']; ?>: <b>
<?php
printf('<h4 class="oclass_sub">%s: <b>',_('Inherits from'));
if (count($oclass->getSupClasses()) == 0) if (count($oclass->getSupClasses()) == 0)
printf('(%s)',$lang['none']); printf('(%s)',_('none'));
else else
foreach ($oclass->getSupClasses() as $i => $object_class) { foreach ($oclass->getSupClasses() as $i => $object_class) {
printf('<a title="%s" href="?server_id=%s&amp;view=%s&amp;viewvalue=%s">%s</a>', 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)); htmlspecialchars($object_class));
if ($i < count($oclass->getSupClasses()) - 1) if ($i < count($oclass->getSupClasses()) - 1)
print ', '; echo ', ';
} }
?> echo '</b></h4>';
</b></h4>
<h4 class="oclass_sub"><?php echo $lang['parent_to']; ?>: <b>
<?php
printf('<h4 class="oclass_sub">%s: <b>',_('Parent to'));
if (strcasecmp($oclass->getName(),'top') == 0) if (strcasecmp($oclass->getName(),'top') == 0)
printf('(<a href="schema.php?view=objectClasses&amp;server_id=%s">all</a>)',$ldapserver->server_id); printf('(<a href="schema.php?view=objectClasses&amp;server_id=%s">all</a>)',$ldapserver->server_id);
elseif (count($oclass->getChildObjectClasses()) == 0) elseif (count($oclass->getChildObjectClasses()) == 0)
printf('(%s)',$lang['none']); printf('(%s)',_('none'));
else else
foreach ($oclass->getChildObjectClasses() as $i => $object_class) { foreach ($oclass->getChildObjectClasses() as $i => $object_class) {
printf('<a title="%s" href="?server_id=%s&view=%s&amp;viewvalue=%s">%s</a>', 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)); htmlspecialchars($object_class));
if ( $i < count($oclass->getChildObjectClasses()) - 1) 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"> echo '<tr>';
<tr> echo '<td>';
<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
if (count($oclass->getMustAttrs($schema_oclasses)) > 0) { if (count($oclass->getMustAttrs($schema_oclasses)) > 0) {
print '<ul class="schema">'; echo '<ul class="schema">';
foreach ($oclass->getMustAttrs($schema_oclasses) as $attr) { 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>', 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()) { if ($attr->getSource() != $oclass->getName()) {
printf('<br /><small>&nbsp;&nbsp;(%s ',$lang['inherited_from']); echo '<br />';
printf('<a href="?server_id=%s&amp;view=objectClasses&amp;viewvalue=">%s</a>', printf('<small>&nbsp;&nbsp;(%s <a href="?server_id=%s&amp;view=objectClasses&amp;viewvalue=%s">%s</a>)</small>',
$ldapserver->server_id,$attr->getSource(),$attr->getSource()); _('Inherited from'),$ldapserver->server_id,strtolower($attr->getSource()),$attr->getSource());
print ')</small>';
} }
echo '</li>';
print '</li>';
} }
print '</ul>'; echo '</ul>';
} else } else
printf('<center>(%s)</center>',$lang['none']); printf('<center>(%s)</center>',_('none'));
?>
</td> echo '</td>';
<td width="50%">
echo '<td width="50%">';
<?php
if (count($oclass->getMayAttrs($schema_oclasses)) > 0) { if (count($oclass->getMayAttrs($schema_oclasses)) > 0) {
print '<ul class="schema">'; echo '<ul class="schema">';
foreach ($oclass->getMayAttrs($schema_oclasses) as $attr) { 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>', 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()) { if ($attr->getSource() != $oclass->getName()) {
printf('<br /><small>&nbsp;&nbsp; (%s ',$lang['inherited_from']); echo '<br />';
printf('<a href="?server_id=%s&amp;view=objectClasses&amp;viewvalue=%s">%s</a>', printf('<small>&nbsp;&nbsp; (%s <a href="?server_id=%s&amp;view=objectClasses&amp;viewvalue=%s">%s</a>)</small>',
$ldapserver->server_id,$attr->getSource(),$attr->getSource()); _('Inherited from'),$ldapserver->server_id,strtolower($attr->getSource()),$attr->getSource());
print ')</small>';
} }
echo '</li>';
print '</li>';
} }
print '</ul>'; echo '</ul>';
} else } else
printf('<center>(%s)</center>',$lang['none']); printf('<center>(%s)</center>',_('none'));
?>
</ul> echo '</td>';
</td> echo '</tr>';
</tr> echo '</table>';
</table>
<?php
} }
} /* End foreach objectClass */ } /* End foreach objectClass */
break; break;
} }
if (! is_null( $viewvalue ) && ! $viewed) if (! is_null($viewvalue) && ! $viewed)
pla_error(sprintf($lang['no_such_schema_item'],htmlspecialchars($viewvalue))); pla_error(sprintf(_('No such schema item: "%s"'),htmlspecialchars($viewvalue)));
?> echo '</body>';
echo '</html>';
</body>
</html>

View File

@ -1,5 +1,5 @@
<?php <?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.72.2.11 2005/12/31 03:13:48 wurley Exp $
/** /**
* Perform LDAP searches and draw the advanced/simple search forms * Perform LDAP searches and draw the advanced/simple search forms
@ -18,166 +18,148 @@
/** /**
*/ */
define('SIZE_LIMIT_EXCEEDED',4);
require './common.php'; require './common.php';
if( isset($ldapserver) && ! $ldapserver->haveAuthInfo()) if (isset($ldapserver) && ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] ); pla_error(_('Not enough information to login to server. Please check your configuration.'));
// Output format, table or list? # Output format, table or list?
$result_formats = array( 'list', 'table' ); $result_formats = array('list','table');
$format = isset( $_GET['format'] ) ? $_GET['format'] : $config->GetValue('search','display'); $format = isset($_GET['format']) ? $_GET['format'] : $config->GetValue('search','display');
if( ! in_array( $format, $result_formats ) ) if (! in_array($format,$result_formats))
$format = 'list'; $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 = ''; $js_on_change_string = '';
if( isset( $_GET['form'] ) && $_GET['form'] == 'advanced' ) if (isset($_GET['form']) && $_GET['form'] == 'advanced')
$js_on_change_string = $js_on_change_string =
'onChange="document.forms[0].base_dn.value=servers[document.forms[0].server_id.value].base_dn"'; 'onChange="document.forms[0].base_dn.value=servers[document.forms[0].server_id.value].base_dn"';
if (isset($ldapserver)) { if (isset($ldapserver)) {
$server_menu_html = server_select_list($ldapserver->server_id,true,'server_id',$js_on_change_string); $server_menu_html = server_select_list($ldapserver->server_id,true,'server_id',$js_on_change_string);
$server_info_list = server_info_list(); $server_info_list = server_info_list();
} }
$filter = isset( $_GET['filter'] ) ? clean_search_vals($_GET['filter']) : null; $filter = isset($_GET['filter']) ? clean_search_vals($_GET['filter']) : null;
$attr = isset( $_GET['attribute'] ) ? $_GET['attribute'] : null; $attr = isset($_GET['attribute']) ? $_GET['attribute'] : null;
// grab the base dn for the search # grab the base dn for the search
if( isset( $_GET['base_dn'] ) && $_GET['base_dn'] ) { if (isset($_GET['base_dn']) && $_GET['base_dn']) {
$base_dn = $_GET['base_dn']; $base_dn = $_GET['base_dn'];
$base_dn_is_invalid = false; $base_dn_is_invalid = false;
$base_dn_does_not_exist = false; $base_dn_does_not_exist = false;
if( trim( $base_dn ) ) if (trim($base_dn))
if( ! is_dn_string( $base_dn ) ) if (! is_dn_string($base_dn))
$base_dn_is_invalid = true; $base_dn_is_invalid = true;
elseif( ! dn_exists( $ldapserver, $base_dn ) ) elseif (! $ldapserver->dnExists($base_dn))
$base_dn_does_not_exist = true; $base_dn_does_not_exist = true;
$base_dns = array($base_dn); $base_dns = array($base_dn);
} else } else
if (isset($ldapserver)) if (isset($ldapserver))
$base_dns = $ldapserver->getBaseDN(); $base_dns = $ldapserver->getBaseDN();
$criterion = isset( $_GET['criterion'] ) ? $_GET['criterion'] : null; $criterion = isset($_GET['criterion']) ? $_GET['criterion'] : null;
if (isset($_GET['form'])) if (isset($_GET['form']))
$_SESSION['form'] = $_GET['form']; $_SESSION['form'] = $_GET['form'];
$form = isset( $_SESSION['form'] ) ? $_SESSION['form'] : null; $form = isset($_SESSION['form']) ? $_SESSION['form'] : null;
$scope = isset( $_GET['scope'] ) ? $_GET['scope'] : 'sub'; $scope = isset($_GET['scope']) ? $_GET['scope'] : 'sub';
include './header.php'; include './header.php';
?>
<body> echo '<body><center>';
<center>
<?php if ($form == 'advanced')
if( $form == 'advanced' ) {
require LIBDIR.'search_form_advanced.php'; require LIBDIR.'search_form_advanced.php';
} elseif( $form == 'predefined' ) { elseif ($form == 'predefined')
require LIBDIR.'search_form_predefined.php'; require LIBDIR.'search_form_predefined.php';
} else /* Draw simple search form */ { # Draw simple search form
else
// process_config();
require LIBDIR.'search_form_simple.php'; require LIBDIR.'search_form_simple.php';
}
?>
</center> echo '</center>';
<?php
flush(); flush();
if( isset( $_GET['search'] ) ) { if (isset($_GET['search'])) {
if( $form == 'advanced' ) { if ($form == 'advanced') {
if (isset( $_GET['display_attrs'])) { if (isset($_GET['display_attrs']))
$search_result_attributes = explode(',',rawurldecode(preg_replace('/\s+/','',rawurldecode($_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 = $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 { } else {
$search_result_attributes = $config->GetValue('search','result_attributes'); $search_result_attributes = $config->GetValue('search','result_attributes');
} }
// do we have enough authentication information for the specified server_id # do we have enough authentication information for the specified server_id
if( ! $ldapserver->haveAuthInfo() ) { if (! $ldapserver->haveAuthInfo()) {
$login_url = sprintf('login_form.php?server_id=%s&amp;redirect=%s', $login_url = sprintf('login_form.php?server_id=%s&amp;redirect=%s',
$ldapserver->server_id,rawurlencode($_SERVER['REQUEST_URI'])); ?> $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>
<?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; exit;
} }
if( isset( $_GET['predefined'] ) ) { if (isset($_GET['predefined'])) {
$predefined = $_GET['predefined']; $predefined = $_GET['predefined'];
if( is_numeric( $predefined ) ) { if (is_numeric($predefined)) {
$query = get_cleaned_up_predefined_search( $predefined ); $query = get_cleaned_up_predefined_search($predefined);
$search_result_attributes = explode(', ',$query['attributes']); $search_result_attributes = explode(', ',$query['attributes']);
$search_attributes_display = $search_result_attributes; $search_attributes_display = $search_result_attributes;
$search_attributes = $search_result_attributes; $search_attributes = $search_result_attributes;
//process_config();
$filter = $query['filter']; $filter = $query['filter'];
$scope = $query['scope']; $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']; $base_dns = $query['base'];
else else
$base_dns = array($query['base']); $base_dns = array($query['base']);
$ldapserver = $ldapservers->Instance($query['server']);
} }
} else { } else {
$predefined = ''; $predefined = '';
} }
if( $filter ) { if ($filter) {
// if they are using the simple search form, build an LDAP search filter from their input # if they are using the simple search form, build an LDAP search filter from their input
if( $form == 'simple' & ! is_numeric( $predefined ) ) { if ($form == 'simple' & ! is_numeric($predefined)) {
switch( $criterion ) { switch ($criterion) {
case 'starts with': case 'starts with':
// to fix bug 789113 if ($filter == '*')
if( $filter == "*" ) $filter = '';
$filter = "";
$filter = "($attr=$filter*)"; $filter = "($attr=$filter*)";
break; break;
case 'contains': case 'contains':
// to fix bug 789113 if ($filter == '*')
if( $filter == "*" )
$filter = "($attr=*)"; $filter = "($attr=*)";
else else
$filter = "($attr=*$filter*)"; $filter = "($attr=*$filter*)";
break; break;
case 'ends with': case 'ends with':
// to fix bug 789113 if ($filter == '*')
if( $filter == "*" ) $filter = '';
$filter = "";
$filter = "($attr=*$filter)"; $filter = "($attr=*$filter)";
break; break;
@ -191,201 +173,190 @@ if( isset( $_GET['search'] ) ) {
break; break;
default: default:
pla_error( $lang['unrecognized_criteria_option'] . 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.'));
htmlspecialchars( $criterion ) .
$lang['if_you_want_to_add_criteria'] );
} }
} }
echo "<center>" . $lang['searching'] . "</center>\n"; printf('<center>%s</center>',_('Searching...'));
flush(); flush();
// prevent script from bailing early on a long delete # prevent script from bailing early on a long delete
@set_time_limit( 0 ); @set_time_limit(0);
$size_limit = $config->GetValue('search','size_limit'); $size_limit = $config->GetValue('search','size_limit');
// Sanity check
if( $size_limit < 1 ) # Sanity check
if ($size_limit < 1)
$size_limit = 1; $size_limit = 1;
$page = isset( $_GET['page'] ) ? $_GET['page'] : 0; $page = isset($_GET['page']) ? $_GET['page'] : 0;
$time_start = utime(); $time_start = utime();
$time_elapsed = 0; $time_elapsed = 0;
foreach ($base_dns as $base_dn) { foreach ($base_dns as $base_dn) {
if (! dn_exists( $ldapserver, $base_dn ) ) { if (! $ldapserver->dnExists($base_dn)) {
if (DEBUG_ENABLED) if (DEBUG_ENABLED)
debug_log('BaseDN [%s] skipped as it doesnt exist in [%s].',1, debug_log('BaseDN [%s] skipped as it doesnt exist in [%s].',64,
$base_dn,$ldapserver->server_id); $base_dn,$ldapserver->server_id);
continue; continue;
} else { } else {
if (DEBUG_ENABLED) if (DEBUG_ENABLED)
debug_log('Search with base DN [%s]',9,$base_dn); debug_log('Search with base DN [%s]',64,$base_dn);
} }
if( $scope == 'base' ) $results = $ldapserver->search(null,dn_escape($base_dn),$filter,$search_result_attributes,$scope,true,$config->GetValue('deref','search'));
$results = @ldap_read( $ldapserver->connect(false), $base_dn, $filter, $search_result_attributes,
0, 0, 0, $config->GetValue('deref','search') );
elseif( $scope == 'one' ) if ((! $results) && $ldapserver->errno())
$results = @ldap_list( $ldapserver->connect(false), $base_dn, $filter, $search_result_attributes, pla_error(_('Encountered an error while performing search.'),$ldapserver->error(),$ldapserver->errno());
0, 0, 0, $config->GetValue('deref','search') );
else // scope == 'sub' $errno = $ldapserver->errno();
$results = @ldap_search( $ldapserver->connect(false), $base_dn, $filter, $search_result_attributes,
0, 0, 0, $config->GetValue('deref','search') );
$errno = @ldap_errno( $ldapserver->connect(false) ); $time_end = utime();
$time_elapsed += round($time_end-$time_start,2);
$count = count($results);
if( ! $results ) { $start_entry = $page * $size_limit;
pla_error( $lang['error_performing_search'], $end_entry = min($start_entry+$size_limit+1,$count+1);
$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 );
?>
<table class="search_header"> <table class="search_header">
<tr> <tr>
<td style="vertical-align: top"> <td style="vertical-align: top">
<nobr><?php echo $lang['entries_found'] . ' &nbsp;<b>' . number_format( $count ) ?></b>&nbsp;</nobr> <nobr><?php echo _('Entries found: ') . ' &nbsp;<b>' . number_format($count) ?></b>&nbsp;</nobr>
<small><nobr>(<?php echo $time_elapsed; ?> <?php echo $lang['seconds']; ?>)</nobr></small> <nobr><small>(<?php echo $time_elapsed; ?> <?php echo _('seconds'); ?>)</small></nobr>
</td> </td>
<td style="text-align: right"> <td style="text-align: right">
<small>
<nobr> <nobr>
<small>
<?php <?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> ]', 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']); $ldapserver->server_id,$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 ) { foreach ($result_formats as $f) {
echo '&nbsp;'; echo '&nbsp;';
if( $format == $f ) { if ($format == $f) {
echo '<b>' . $lang[$f] . '</b>'; printf('<b>%s</b>',_($f));
} else { } else {
$php_self = $_SERVER['PHP_SELF']; $query_string = array_to_query_string($_GET,array('format'));
$query_string = array_to_query_string( $_GET, array( 'format' ) ); $query_string .= "&amp;format=$f";
$query_string .= "&amp;format=$f"; printf('<a href="search.php?%s">%s</a>',$query_string,_($f));
echo "<a href=\"$php_self?$query_string\">" . $lang[$f] . "</a>"; }
} }
} ?> ?>
] ]
</small> </small>
</nobr> </nobr>
<?php if( $form == 'simple' || $form == 'predefined' ) { ?> <?php if ($form == 'simple' || $form == 'predefined') { ?>
<br /><nobr><small><?php echo $lang['filter_performed']; ?> <br /><nobr><small><?php echo _('Base DN: '); ?>
<?php echo htmlspecialchars( $filter ); ?></small></nobr> <b><?php echo htmlspecialchars($base_dn); ?></b></small></nobr>
<?php } ?> <br /><nobr><small><?php echo _('Filter performed: '); ?>
<b><?php echo htmlspecialchars($filter); ?></b></small></nobr>
<?php } ?>
</td> </td>
</tr> </tr>
</table> </table>
<?php <?php
// The LDAP error code for the size limit exceeded error. # The LDAP error code for the size limit exceeded error.
define( 'SIZE_LIMIT_EXCEEDED', 4 ); if ($errno && $errno == SIZE_LIMIT_EXCEEDED)
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.'));
echo "<br /><center><small style=\"color:red; white-space: nowrap\">" . $lang['size_limit_exceeded'] . "</small></center><br />\n";
}
// Draw the paging links # Draw the paging links
$pager_html = ''; $pager_html = '';
$total_pages = $count / $size_limit; $total_pages = $count / $size_limit;
$results_per_page = $size_limit; $results_per_page = $size_limit;
if( $count > $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"; 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) {
if( $page != 0 ) { $query_string = array_to_query_string($_GET,array('page'));
$query_string = array_to_query_string( $_GET, array( 'page' ) ); $query_string .= '&page=' . ($page-1);
$query_string .= '&page=' . ($page-1); $pager_html .= sprintf('<a title="'._('Page %d').'" href="search.php?%s">&lsaquo;&lsaquo;</a>',$page,$query_string);
$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;
} else { } else {
$query_string = array_to_query_string( $_GET, array( 'page' ) ); $pager_html .= "&lsaquo;&lsaquo;";
$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 .= '&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 ) { if (0 == $count)
$query_string = array_to_query_string( $_GET, array( 'page' ) ); printf('<center><h2>%s</h2></center>',_('The search found no results.'));
$query_string .= '&page=' . ($page+1);
$pager_html .= "<a title=\"" . sprintf( $lang['page_n'],($page+2) ) . "\" href=\"$php_self?$query_string\">&rsaquo;&rsaquo;</a>";
} else { else {
$pager_html .= "&rsaquo;&rsaquo;"; 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 ) 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>',
echo '<center><h2>' . $lang['no_results'] . '</h2></center>'; _('Search performed by phpLDAPadmin in'),$time_elapsed,_('seconds'));
else { }
echo '<center>' . $pager_html . '</center><br />'; }
flush(); echo '</body></html>';
?>
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>

View File

@ -1,5 +1,5 @@
<?php <?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.22.2.3 2005/12/08 11:55:57 wurley Exp $
/** /**
* Fetches and displays all information that it can from the specified server * Fetches and displays all information that it can from the specified server
@ -47,118 +47,83 @@ $root_dse_attributes = array(
); );
if (! $ldapserver->haveAuthInfo()) 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 *. # Fetch basic RootDSE attributes using the + and *.
$r = @ldap_read($ldapserver->connect(),'','objectClass=*',array('+','*')); $attrs = array_pop($ldapserver->search(null,'','objectClass=*',array('+','*'),'base'));
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);
/* After fetching the "basic" attributes from the RootDSE, try fetching the /* 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 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 if they weren't already fetched. (this was added as a work-around for OpenLDAP
on RHEL 3. */ on RHEL 3. */
$r2 = @ldap_read($ldapserver->connect(),'','objectClass=*',$root_dse_attributes); $attrs2 = array_pop($ldapserver->search(null,'','objectClass=*',$root_dse_attributes,'base'));
if ($r2) {
$entry2 = @ldap_first_entry($ldapserver->connect(),$r);
$attrs2 = @ldap_get_attributes($ldapserver->connect(),$entry);
for ($i = 0; $i < $attrs2['count']; $i++) { foreach ($attrs2 as $attr => $values)
$attr = $attrs2[$i]; if (! isset($attrs[$attr]))
$attrs[$attr] = $attrs2[$attr];
if (! isset($attrs[$attr])) {
$attrs[$attr] = $attrs2[$attr];
$attrs['count']++;
$attrs[] = $attr;
}
}
}
unset($attrs2,$entry,$entry2);
include './header.php'; include './header.php';
?>
<body> echo '<body>';
<h3 class="title"><?php echo $lang['server_info_for'] . htmlspecialchars($ldapserver->name); ?></h3> printf('<h3 class="title">%s%s</h3>',_('Server info for: '),htmlspecialchars($ldapserver->name));
<h3 class="subtitle"><?php echo $lang['server_reports_following']; ?></h3> printf('<h3 class="subtitle">%s</h3>',_('Server reports the following information about itself'));
<?php if ($count == 0 || $attrs['count'] == 0) { ?> if (count($attrs) == 0) {
<br /> echo '<br /><br />';
<br /> printf('<center>%s</center>',_('This server has nothing to report.'));
<center><?php echo $lang['nothing_to_report']; ?></center>
<?php
exit; 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); $schema_href = sprintf('schema.php?server_id=%s&amp;view=attributes&amp;viewvalue=%s',$ldapserver->server_id,$attr);
?>
<tr> echo '<tr><td class="attr">';
<td class="attr"> printf('<b><a title="'._('Click to view the schema defintion for attribute type \'%s\'').'" href="%s">%s</a></b>',
<b> $attr,$schema_href,htmlspecialchars($attr));
<a title="<?php echo sprintf($lang['attr_name_tooltip'],$attr); ?>" echo '</td></tr>';
href="<?php echo $schema_href; ?>"><?php echo htmlspecialchars($attr); ?></a>
</b>
</td>
</tr>
<tr> echo '<tr><td class="val">';
<td class="val"> echo '<table class="edit_dn">';
<table class="edit_dn">
<?php if (is_array($values))
for ($j = 0; $j < $attrs[$attr]['count']; $j++) { foreach ($values as $value) {
$oidtext = ''; $oidtext = '';
print '<tr>'; print '<tr>';
if (preg_match('/^[0-9]+\.[0-9]+/',$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>', printf('<td width=5%%><acronym title="%s"><img src="images/rfc.png" /></acronym></td>',
htmlspecialchars($attrs[$attr][$j])); htmlspecialchars($value));
if ($oidtext = support_oid_to_text($attrs[$attr][$j])) if ($oidtext = support_oid_to_text($value))
if (isset($oidtext['ref'])) if (isset($oidtext['ref']))
printf('<td><acronym title="%s">%s</acronym></td>',$oidtext['ref'],$oidtext['title']); printf('<td><acronym title="%s">%s</acronym></td>',$oidtext['ref'],$oidtext['title']);
else else
printf('<td>%s</td>',$oidtext['title']); printf('<td>%s</td>',$oidtext['title']);
else else
printf('<td><small>%s</small></td>',$attrs[$attr][$j]); if ($value)
printf('<td><small>%s</small></td>',$value);
} else { } else {
printf('<td>%s</td>',htmlspecialchars($attrs[$attr][$j])); printf('<td>%s</td>',htmlspecialchars($value));
} }
print '</tr>'; 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']); 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'; include './header.php';
global $lang;
# If $session_timeout not defined, use ( session_cache_expire() - 1 ) # If $session_timeout not defined, use ( session_cache_expire() - 1 )
$session_timeout = $ldapserver->session_timeout ? $ldapserver->session_timeout : 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 />
<br /> <br />
<center> <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 />
<br /> <br />
<?php echo $lang['log_back_in']; ?><br /> <?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 $lang['login_link']; ?></a> <a href="login_form.php?server_id=<?php echo $ldapserver->server_id; ?>"><?php echo _('Login...'); ?></a>
</center> </center>
</body> </body>

View File

@ -1,5 +1,5 @@
<?php <?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.88.4.9 2005/12/21 19:28:31 wurley Exp $
/** /**
* This script displays the LDAP tree for all the servers that you have * This script displays the LDAP tree for all the servers that you have
@ -19,101 +19,96 @@
*/ */
require './common.php'; require './common.php';
no_expire_header();
// no expire header stuff # This allows us to display large sub-trees without running out of time.
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.
@set_time_limit( 0 ); @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(); $recently_timed_out_servers = array();
// Set a default META REFRESH value in sec. before determining it if (isset($_SESSION['activity']['rightframe_server_id']))
$meta_refresh_variable = ( session_cache_expire()-1 )*60; $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); $ldapserver = $ldapservers->Instance($server_id);
# Test to see if we should log out the user due to the timeout. # 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: /* If time out value has been reached:
- log out user - log out user
- put $server_id in array of recently timed out servers */ - put $server_id in array of recently timed out servers */
if (session_timed_out($ldapserver)) if (session_timed_out($ldapserver)) {
array_push($recently_timed_out_servers, $server_id); array_push($recently_timed_out_servers, $server_id);
/* if the timeout value is less than the previous $meta_refresh_variable value # If $ldapserver->server_id equal $rightframe_server_id load timeout page on right frame
set $meta_refresh_variable to $ldapserver->session_timeout */ if ($ldapserver->server_id == $rightframe_server_id)
if (($ldapserver->session_timeout*60) < $meta_refresh_variable ) $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; $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'; 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 <?php
$bug_href = get_href( 'add_bug' ); printf('<h3 class="subtitle" style="margin:0px">phpLDAPadmin - %s</h3>',pla_version());
$feature_href = get_href( 'add_rfe' );
$donate_href = get_href( 'donate' );
$help_href = get_href( 'help' );
?>
<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 --> if (! $config->GetValue('appearance','hide_configuration_management')) {
<table class="edit_dn_menu" width=100%> printf('<td><img src="images/light.png" alt="%s" /></td>',_('light'));
<tr> printf('<td width=50%%><nobr><a href="%s" target="new">%s</a></nobr></td>',get_href('add_rfe'),_('Request feature'));
<td><img src="images/home.png" alt="<?php echo $lang['home']; ?>" /></td> printf('<td><img src="images/bug.png" alt="%s" /></td>',_('bug'));
<td width=50%><nobr><a href="welcome.php" target="right_frame"><?php echo $lang['home']; ?></a></nobr></td> printf('<td width=50%%><nobr><a href="%s" target="new">%s</a></nobr></td>',get_href('add_bug'),_('Report a bug'));
<td><img src="images/trash.png" alt="<?php echo $lang['purge_cache']; ?>" /></td> echo '</tr><tr>';
<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>
<?php if ( ! $config->GetValue('appearance','hide_configuration_management') ) { ?> printf('<td><img src="images/smile.png" alt="%s" /></td>',_('Donate'));
<td><img src="images/light.png" alt="<?php echo $lang['light']; ?>" /></td> printf('<td width=50%%><nobr><a href="%s" target="right_frame">%s</a></nobr></td>',get_href('donate'),_('Donate'));
<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>
<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 # We want the std tree function as a fallback
require LIBDIR.'tree_functions.php'; 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 # For each of the configured servers
foreach( $ldapservers->GetServerList() as $server_id ) { foreach( $ldapservers->GetServerList() as $server_id ) {
$ldapserver = $ldapservers->Instance($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 echo '</body></html>';
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;
}
?> ?>

View File

@ -1,24 +1,25 @@
<?php <?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.25.2.6 2006/01/14 23:33:39 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: * Variables that come in via common.php
* - dn (rawurlencoded) * - server_id
* - server_id * Variables that come in on the query string:
* - update_array (an array in the form expected by PHP's ldap_modify, except for deletions) * - dn (rawurlencoded)
* (will never be empty: update_confirm.php ensures that) * - 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: * Attribute deletions:
* To specify that an attribute is to be deleted (whether multi- or single-valued), * 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 * 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: * delete the 'sn' attribute from an entry, the update array would look like this:
* Array ( * Array (
* sn => '' * 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 * @package phpLDAPadmin
*/ */
@ -27,95 +28,120 @@
require './common.php'; 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']; $dn = $_POST['dn'];
$encoded_dn = rawurlencode($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(); # If cancel was submited, got back to the edit display.
if (isset($_REQUEST['cancel'])) {
run_hook ('pre_update',array ('server_id' => $ldapserver->server_id, header(sprintf('Location: template_engine.php?server_id=%s&dn=%s',$ldapserver->server_id,$encoded_dn));
'dn' => $dn,'update_array' => $update_array)); die();
// 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 ($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); $res = $ldapserver->modify($dn,$update_array);
if ($res) { if ($res) {
// Fire the post modification event to the user's custom # Fire the post modification event to the user's custom callback function.
// callback function. $mustRelogin = false;
foreach ($update_array as $attr_name => $val) { foreach ($update_array as $attr_name => $val) {
run_hook ('post_attr_modify',array('server_id' => $ldapserver->server_id, run_hook('post_attr_modify',
'dn' => $dn,'attr_name' => $attr_name,'new_value' => $val)); 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 /* Was this a user's password modification who is currently
// logged in? If so, they need to logout and log back in logged in? If so, they need to logout and log back in
// with the new password. with the new password. */
if (0 === strcasecmp($attr_name,'userPassword') && if (0 === strcasecmp($attr_name,'userPassword') &&
in_array($ldapserver->auth_type,array('cookie','session')) && 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); $mustRelogin = true;
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;
}
} }
run_hook ('post_update',array ('server_id' => $ldapserver->server_id,'dn' => $dn,'update_array' => $update_array)); 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) foreach ($update_array as $attr => $junk)
$redirect_url .= "&modified_attrs[]=$attr"; $redirect_url .= "&modified_attrs[]=$attr";
@ -126,7 +152,6 @@ if ($res) {
header("Location: $redirect_url"); header("Location: $redirect_url");
} else { } else {
pla_error($lang['could_not_perform_ldap_modify'], pla_error(_('Could not perform ldap_modify operation.'),$ldapserver->error(),$ldapserver->errno());
$ldapserver->error(),$ldapserver->errno());
} }
?> ?>

View File

@ -1,8 +1,8 @@
<?php <?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.43.2.8 2006/01/12 22:04:51 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, * attributes need to be updated (ie, which ones actually changed). Then,
* we present a confirmation table to the user outlining the changes they * we present a confirmation table to the user outlining the changes they
* are about to make. That form submits directly to update.php, which * are about to make. That form submits directly to update.php, which
@ -15,236 +15,229 @@
require './common.php'; require './common.php';
include './header.php'; include './header.php';
include TMPLDIR.'template_config.php';
if( $ldapserver->isReadOnly() ) 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'));
$dn = $_POST['dn']; $dn = $_POST['dn'];
$old_values = $_POST['old_values']; $old_values = $_POST['old_values'];
$new_values = $_POST['new_values']; $new_values = $_POST['new_values'];
$encoded_dn = rawurlencode( $dn ); $encoded_dn = rawurlencode($dn);
$rdn = get_rdn( $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> run_hook('pre_update_array_processing',array('server_id'=>$ldapserver->server_id,
<h3 class="title"><?php echo htmlspecialchars( ( $rdn ) ); ?></h3> 'dn'=>$dn,'old_values'=>$old_values,'new_values'=>$new_values));
<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 ) );
$update_array = array(); $update_array = array();
foreach( $old_values as $attr => $old_val ) { foreach ($old_values as $attr => $old_val) {
// Did the user delete the field? # Did the user delete the field?
if( ! isset( $new_values[ $attr ] ) ) if (! isset($new_values[$attr]))
$update_array[ $attr ] = ''; $update_array[$attr] = '';
// did the user change the field? # Did the user change the field?
elseif( $old_val != $new_values[ $attr ] ) { 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; $password_already_hashed = true;
// special case for samba password # Special case for samba password
} else if (( 0 == strcasecmp($attr,'sambaNTPassword')) && trim($new_val[0]) != '' ) { } elseif (strcasecmp($attr,'sambaNTPassword') == 0 && trim($new_val[0])) {
$sambapassword = new smbHash; $sambapassword = new smbHash;
$new_val[0] = $sambapassword->nthash($new_val[0]); $new_val[0] = $sambapassword->nthash($new_val[0]);
// special case for samba password # Special case for samba password
} else if ((0 == strcasecmp($attr,'sambaLMPassword')) && trim($new_val[0]) != '' ) { } elseif (strcasecmp($attr,'sambaLMPassword') == 0 && trim($new_val[0])) {
$sambapassword = new smbHash; $sambapassword = new smbHash;
$new_val[0] = $sambapassword->lmhash($new_val[0]); $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; 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) # Check user password with new encoding.
if( isset( $_POST['enc_type'] ) && if (isset($new_values['userpassword']) && is_array($new_values['userpassword']))
! isset( $password_already_hashed ) && foreach ($new_values['userpassword'] as $key => $userpassword) {
$_POST['enc_type'] != $_POST['old_enc_type'] && if ($userpassword) {
$_POST['enc_type'] != 'clear' && $new_val[$key] = password_hash($userpassword,$_POST['enc_type'][$key]);
array_key_exists ( 'userpassword', $_POST['new_values'] ) &&
$_POST['new_values']['userpassword'] != '' ) {
$new_password = password_hash( $_POST['new_values']['userpassword'], $_POST['enc_type'] ); if ($new_val[$key] != $old_values['userpassword'][$key])
$update_array[ 'userpassword' ] = $new_password; $update_array['userpassword'][$key] = $new_val[$key];
} }
}
// strip empty vals from update_array and ensure consecutive indices for each attribute # strip empty vals from update_array and ensure consecutive indices for each attribute
foreach( $update_array as $attr => $val ) { foreach ($update_array as $attr => $val) {
if( is_array( $val ) ) { if (is_array($val)) {
foreach( $val as $i => $v ) foreach($val as $i => $v)
if( null == $v || 0 == strlen( $v ) ) if (null == $v || 0 == strlen($v))
unset( $update_array[$attr][$i] ); unset($update_array[$attr][$i]);
$update_array[$attr] = array_values( $update_array[$attr] );
$update_array[$attr] = array_values($update_array[$attr]);
} }
} }
// at this point, the update_array should look like this (example): /* At this point, the update_array should look like this (example):
// Array ( Array(
// cn => Array( cn => Array(
// [0] => 'Dave', [0] => 'Dave',
// [1] => 'Bob' ) [1] => 'Bob')
// sn => 'Smith', sn => 'Smith',
// telephoneNumber => '555-1234' ) telephoneNumber => '555-1234')
// This array should be ready to be passed to ldap_modify() This array should be ready to be passed to ldap_modify() */
run_hook ( 'post_update_array_processing', array ( 'server_id' => $ldapserver->server_id, run_hook('post_update_array_processing',array('server_id'=>$ldapserver->server_id,
'dn' => $dn, 'update_array' => $update_array ) ); '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 /> # <!-- Commit button and acompanying form -->
<center> echo "\n\n";
<?php echo $lang['do_you_want_to_make_these_changes']; ?> echo '<form action="update.php" method="post">';
<br /> echo "\n";
<br /> echo '<table class="confirm">';
echo "\n";
<!-- Commit button and acompanying form --> printf('<tr><th>%s</th><th>%s</th><th>%s</th><th>%s</th></tr>',
<form action="update.php" method="post"> _('Attribute'),_('Old Value'),_('New Value'),_('Skip'));
<table class="confirm"> echo "\n\n";
<tr> $counter = 0;
<th><?php echo $lang['attribute']; ?></th>
<th><?php echo $lang['old_value']; ?></th>
<th><?php echo $lang['new_value']; ?></th>
</tr>
<?php run_hook('pre_display_update_array',array('server_id'=>$ldapserver->server_id,'dn'=>$dn,
$counter=0; 'update_array'=>$update_array));
run_hook ( 'pre_display_update_array', array ( 'server_id' => $ldapserver->server_id, 'dn' => $dn, foreach ($update_array as $attr => $new_val) {
'update_array' => $update_array ) );
foreach( $update_array as $attr => $new_val ) {
$counter++; $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; continue;
?>
<tr class="<?php echo $counter%2 ? 'even' : 'odd'; ?>"> printf('<tr class="%s">',$counter%2 ? 'even' : 'odd');
<td><b><?php echo htmlspecialchars( $attr ); ?></b></td> printf('<td><b>%s</b></td>',htmlspecialchars($attr));
<td><nobr> 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 else
if( 0 == strcasecmp( $attr, 'userPassword' ) echo nl2br(htmlspecialchars($old_values[$attr])).'<br />';
&& obfuscate_password_display( get_enc_type( $old_values[ $attr ] ) ) )
echo preg_replace( '/./', '*', $old_values[ $attr ] ) . "<br />"; echo '</nobr></td>';
echo '<td><nobr>';
else # Is this a multi-valued attribute?
echo nl2br( htmlspecialchars( $old_values[ $attr ] ) ) . "<br />"; 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? foreach ($new_val as $i => $v) {
if( is_array( $new_val ) ) { if ($v == '') {
foreach( $new_val as $i => $v ) { # Remove it from the update array if it's empty
if( $v == '' ) { unset($update_array[$attr][$i]);
// remove it from the update array if it's empty $update_array[$attr] = array_values($update_array[$attr]);
unset( $update_array[ $attr ][ $i ] );
$update_array[ $attr ] = array_values( $update_array[ $attr ] );
} else { } else {
echo nl2br( htmlspecialchars( $v ) ) . "<br />"; echo nl2br(htmlspecialchars($v)).'<br />';
}
} }
} }
// was this a multi-valued attribute deletion? If so, /* was this a multi-valued attribute deletion? If so,
// fix the $update_array to reflect that per update_confirm.php's fix the $update_array to reflect that per update_confirm.php's
// expectations expectations */
if( $update_array[ $attr ] == array( 0 => '' ) || $update_array[ $attr ] == array() ) { if ($update_array[$attr] == array(0=>'') || $update_array[$attr] == array()) {
$update_array[ $attr ] = ''; $update_array[$attr] = '';
echo '<span style="color: red">' . $lang['attr_deleted'] . '</span>'; printf('<span style="color: red">%s</span>',_('[attribute deleted]'));
} }
}
elseif( $new_val != '' ) } elseif ($new_val != '')
if( 0 == strcasecmp( $attr, 'userPassword' ) && printf('<span style="color: red">%s</span>',_('[attribute deleted]'));
obfuscate_password_display( get_enc_type( $new_values[ $attr ] ) ) )
echo preg_replace( '/./', '*', $new_val ) . "<br />"; echo '</nobr></td>';
else printf('<td><input name="skip_array[%s]" type="checkbox" /></td>',htmlspecialchars($attr));
echo htmlspecialchars( $new_val ) . "<br />"; echo '</tr>'."\n\n";
}
else run_hook('post_display_update_array',array('server_id'=>$ldapserver->server_id,'dn'=>$dn,
echo '<span style="color: red">' . $lang['attr_deleted'] . '</span>'; '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, foreach ($update_array as $attr => $val) {
'update_array' => $update_array, 'index' => $counter ) ); 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> printf('<input type="submit" value="%s" class="happy" />',_('Commit'));
<br /> 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"> } else {
<tr> echo '<center>';
<td> echo _('You made no changes');
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" /> printf(' <a href="template_engine.php?server_id=%s&amp;dn=%s">%s</a>.',
<input type="hidden" name="dn" value="<?php echo $dn; ?>" /> $ldapserver->server_id,$encoded_dn,_('Go back'));
echo '</center>';
}
<?php foreach( $update_array as $attr => $val ) { echo '</body>';
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>

View File

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

View File

@ -1,16 +1,15 @@
<?php <?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.24.4.2 2005/12/08 11:58:14 wurley Exp $
/** /**
* @package phpLDAPadmin * @package phpLDAPadmin
*/ */
/** /**
*/ */
require './common.php'; require './common.php';
include './header.php'; include './header.php';
// include './config.php';
# Close the session for faster page loading
// Close the session for faster page loading
pla_session_close(); pla_session_close();
?> ?>
@ -19,23 +18,20 @@ pla_session_close();
<br /> <br />
<br /> <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 /> <br />
<?php echo $lang['welcome_note']; ?> <br />
<?php echo _('Use the menu to the left to navigate'); ?>
<br /> <br />
<br /> <br />
<br /> <br />
<br /> <br />
<?php
if (! $config->GetValue('appearance','hide_configuration_management')) { <?php if (! $config->GetValue('appearance','hide_configuration_management')) { ?>
?> <a href="<?php echo get_href('credits'); ?>"><?php echo _('Credits'); ?></a> |
<a href="documentation.php?view=credits"><?php echo $lang['credits']; ?></a> | <a href="<?php echo get_href('documentation'); ?>"><?php echo _('Documentation'); ?></a> |
<a href="documentation.php?view=changelog"><?php echo $lang['changelog']; ?></a> | <a href="<?php echo get_href('donate'); ?>"><?php echo _('Donate'); ?></a>
<a href="http://wiki.pldapadmin.com/Documentation"><?php echo $lang['documentation']; ?></a> | <?php } ?>
<a href="<?php echo get_href( 'donate' ); ?>"><?php echo $lang['donate']; ?></a>
<?php
}
?>
</center> </center>
</body> </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ó de PHP no té
$lang['simple_search_form_str'] = 'Formulari de recerca sencilla';
$lang['advanced_search_form_str'] = 'Formulari de recerca avanç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ça amb';
$lang['contains'] = 'conté';
$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és per a';
$lang['create_new_entry_on'] = 'Crear nou objecte a';
$lang['view_server_info'] = 'Veure informació 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ícala a l\'arxiu config.php';
$lang['create_new_entry_in'] = 'Crear un nou objecte a';
$lang['login_link'] = 'Autenticació...';
// Entry display
$lang['delete_this_entry'] = 'Esborrar aquest objecte';
$lang['delete_this_entry_tooltip'] = 'Es tindrá que confirmar aquesta decisió';
$lang['copy_this_entry'] = 'Copiar aquest objecte';
$lang['copy_this_entry_tooltip'] = 'Copiar aquest objecte per una altra localització, 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ç de línia de Macintosh';
$lang['export_win'] = 'Avanç de línia de Windows';
$lang['export_unix'] = 'Avanç 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ó 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à 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ò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üents <b>ObjectClass</b> són presents en aquest servidor LDAP.';
$lang['the_following_attributes'] = 'Les següents <b>attributeTypes</b> són presents en aquest servidor LDAP.';
$lang['the_following_matching'] = 'Les següents <b>matching rules</b> són presents en aquest servidor LDAP.';
$lang['the_following_syntaxes'] = 'Les segü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ó';
$lang['name'] = 'Nom';
$lang['is_obsolete'] = 'Aquesta ObjectClass é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ó 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àficament';
$lang['no_updates_in_read_only_mode'] = 'No es pot modificar l\'objecte si el servidor està operant en mode inalterable.';
$lang['bad_server_id'] = 'L\'identificador de servidor està malament';
$lang['not_enough_login_info'] = 'No tinc suficient informació 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ó del ldap_mod_add.';
$lang['bad_server_id_underline'] = 'L\'identificador del servidor està malament: ';
$lang['success'] = 'Exit';
$lang['server_colon_pare'] = 'Servidor: ';
$lang['look_in'] = 'Buscant a: ';
$lang['missing_server_id_in_query_string'] = 'No està present l\'identificador del servidor a la URL';
$lang['missing_dn_in_query_string'] = 'No està 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à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às un error \'inappropriate matching\'';
$lang['enter_value_to_add'] = 'Proveï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à 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í (%s) encara existeix.';
$lang['copy_dest_container_does_not_exist'] = 'El contenidor de destí (%s) no existeix.';
$lang['copy_source_dest_dn_same'] = 'El DN de la font i el DN de destí son els mateixos.';
$lang['copy_copying'] = 'Copiant ';
$lang['copy_recursive_copy_progress'] = 'El progrés de la còpia recurrent';
$lang['copy_building_snapshot'] = 'Construï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í';
$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í';
$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é?';
//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í';
$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ès de creació';
$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ó especifica un manejador de';
$lang['ctemplate_handler_does_not_exist'] = 'per aquesta plantilla. Però, aquest manejador no existeix al directori \'plantilla/creació\'.';
// 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í per anar al formulari d\'autenticació';
$lang['unrecognized_criteria_option'] = 'Opció 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à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ó LDAP del servidor';
$lang['server_info_for'] = 'Informació del servidor per a: ';
$lang['server_reports_following'] = 'El servidor mostra la següent informació sobre ell mateix';
$lang['nothing_to_report'] = 'Aquest servidor no té res a mostrar.';
//update.php
$lang['update_array_malformed'] = 'l\'update_array està malformat. Aixó podria ser una errada del phpLDAPadmin. Si us plau reportala.';
$lang['could_not_perform_ldap_modify'] = 'No he pogut executar l\'operació 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ú de l\'esquerra per a navegar';
$lang['credits'] = "Crèdits";
$lang['changelog'] = "Històric de canvis";
$lang['documentation'] = "Documentació";
// 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ó,
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ó 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ó (<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ó 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ó. 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ó. Els dos únics valors acceptats per
\'auth_type\' a la secció $servers son \'config\' i \'form\'. Tu has ficat \'%s\',
el qual no està acceptat. ';
$lang['php_install_not_supports_tls'] = 'La teva instalació de PHP no soporta TLS';
$lang['could_not_start_tls'] = 'No he pogut iniciar el TLS.<br />Revisa la teva configuració del servidor LDAP.';
$lang['auth_type_not_valid'] = 'Tens un error a l\'arxiu de configuració. auth_type de %s no es vàlid.';
$lang['ldap_said'] = '<b>LDAP diguè</b>: %s<br /><br />';
$lang['ferror_error'] = 'Error';
$lang['fbrowse'] = 'mostrar';
$lang['delete_photo'] = 'Esborrar foto';
$lang['install_not_support_blowfish'] = 'La teva instalació de PHP no soporta el tipus d\'encriptació blowfish.';
$lang['install_no_mash'] = 'La teva instalació de PHP no té la funció mhash(). No puc fer hash SHA.';
$lang['jpeg_contains_errors'] = 'jpegPhoto conté errors<br />';
$lang['ferror_number'] = '<b>Error número</b>: %s <small>(%s)</small><br /><br />';
$lang['ferror_discription'] = '<b>Descripció</b>: %s <br /><br />';
$lang['ferror_number_short'] = '<b>Error número</b>: %s<br /><br />';
$lang['ferror_discription_short'] = '<b>Descripció</b>: (no hi ha descripció)<br />';
$lang['ferror_submit_bug'] = 'Es una errada del phpLDAPadmin? Si ho é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ía aquesta errada fent click aquí</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ó PLA:</td><td><b>%s</b></td></tr>
<tr><td>Versió 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í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é vyhledávání';
$lang['advanced_search_form_str'] = 'Roz¹íøené vyhledávání';
$lang['server'] = 'Server';
$lang['search_for_entries_whose'] = 'Vyhledat objekty kde';
$lang['base_dn'] = 'Výchozí <acronym title="Distinguished Name">DN</acronym>';
$lang['search_scope'] = 'Oblast prohledávání';
$lang['show_attributes'] = 'Zobrazovat atributy';
$lang['Search'] = 'Vyhledat';
$lang['predefined_search_str'] = 'Zvolte pøeddefinované vyhledávání';
$lang['predefined_searches'] = 'Pøeddefinovaná vyhledávání';
$lang['no_predefined_queries'] = 'V config.php nejsou definovány ¾ádné dotazy.';
// Tree browser
$lang['request_new_feature'] = 'Napi¹te si o novou funkci';
$lang['report_bug'] = 'Nahlásit chybu';
$lang['schema'] = 'schéma';
$lang['search'] = 'vyhledat';
$lang['create'] = 'vytvoøit';
$lang['info'] = 'info';
$lang['import'] = 'import';
$lang['refresh'] = 'obnovit';
$lang['logout'] = 'odhlásit se';
$lang['create_new'] = 'Vytvoøit nový';
$lang['view_schema_for'] = 'Zobrazit schéma pro';
$lang['refresh_expanded_containers'] = 'Obnovit v¹echny otevøené slo¾ky';
$lang['create_new_entry_on'] = 'Vytvoøit nový objekt v';
$lang['new'] = 'nový';
$lang['view_server_info'] = 'Zobrazit serverem poskytované informace';
$lang['import_from_ldif'] = 'Importovat data ze souboru LDIF';
$lang['logout_of_this_server'] = 'Odhlásit se od tohoto serveru';
$lang['logged_in_as'] = 'Pøihlá¹en jako: ';
$lang['read_only'] = 'jen pro ètení';
$lang['read_only_tooltip'] = 'Tento atribut byl administrátorem phpLDAPadminu oznaèen jako "jen pro ètení".';
$lang['could_not_determine_root'] = 'Nepodaøilo se zjistit koøen Va¹eho LDAP stromu.';
$lang['ldap_refuses_to_give_root'] = 'Zdá se, ¾e LDAP server je nastavený tak, ¾e nezobrazuje svùj koøen.';
$lang['please_specify_in_config'] = 'Nastavte ho prosím v souboru config.php';
$lang['create_new_entry_in'] = 'Vytvoøit nový objekt v';
$lang['login_link'] = 'Pøihlásit se...';
$lang['login'] = 'pøihlásit';
// Entry display
$lang['delete_this_entry'] = 'Smazat tento objekt';
$lang['delete_this_entry_tooltip'] = 'Budete po¾ádáni o potvrzení tohoto rozhodnutí';
$lang['copy_this_entry'] = 'Kopírovat tento objekt';
$lang['copy_this_entry_tooltip'] = 'Okopíruje tento objekt do jiného umístìní, nového DN, nebo na jiný server';
$lang['export'] = 'Export';
$lang['export_tooltip'] = 'Ulo¾it pøepis objektu';
$lang['export_subtree_tooltip'] = 'Ulo¾í pøepis tohoto objektu a v¹ech jeho potomkù';
$lang['export_subtree'] = 'Exportovat podstrom';
$lang['create_a_child_entry'] = 'Vytvoøit nové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ý atribut';
$lang['add_new_objectclass'] = 'Pøidat objectClass';
$lang['hide_internal_attrs'] = 'Schovat interní atributy';
$lang['show_internal_attrs'] = 'Zobrazit interní atributy';
$lang['attr_name_tooltip'] = 'Klepnutím zobrazíte definièní schéma pro atribut typu \'%s\'';
$lang['none'] = '¾ádný';
$lang['no_internal_attributes'] = '®ádné interní atributy';
$lang['no_attributes'] = 'Tento objekt nemá atributy';
$lang['save_changes'] = 'Ulo¾it zmìny';
$lang['add_value'] = 'pøidat hodnotu';
$lang['add_value_tooltip'] = 'Pøidá dal¹í hodnotu k atributu \'%s\'';
$lang['refresh_entry'] = 'Obnovit';
$lang['refresh_this_entry'] = 'Obnovit tento objekt';
$lang['delete_hint'] = 'Rada: <b>Pro smazání atributu</b> vyprázdìte textové políèko a klepnìte na Ulo¾it.';
$lang['attr_schema_hint'] = 'Rada: <b>K zobrazení schémata pro atribut</b> klepnìte na název atributu.';
$lang['attrs_modified'] = 'Nìkteré atributy (%s) byly modifikováný a jsou zvýraznìny dole.';
$lang['attr_modified'] = 'Atribut (%s) byl zmìnìn a je zvýraznìn dole.';
$lang['viewing_read_only'] = 'Prohlí¾ení objekt v módu "pouze pro ètení".';
$lang['no_new_attrs_available'] = 'nejsou dostupné ¾ádné nové atributy pro tento objekt';
$lang['no_new_binary_attrs_available'] = 'nejsou dostupné ¾ádné nové binární atributy pro tento objekt';
$lang['binary_value'] = 'Binarní hodnota';
$lang['add_new_binary_attr'] = 'Pøidat nový binarní atribut';
$lang['alias_for'] = 'Poznámka: \'%s\' je aliasem pro \'%s\'';
$lang['download_value'] = 'stáhnout data';
$lang['delete_attribute'] = 'smazat atribut';
$lang['true'] = 'true';
$lang['false'] = 'false';
$lang['none_remove_value'] = '¾ádný, odebrat hodnotu';
$lang['really_delete_attribute'] = 'Skuteènì smazat atribut';
$lang['add_new_value'] = 'Pøidat novou hodnotu';
// Schema browser
$lang['the_following_objectclasses'] = 'Následující <b>objectClass</b> jsou podporovány tímto LDAP serverem.';
$lang['the_following_attributes'] = 'Následující <b>attributeType</b> jsou podporovány tímto LDAP serverem.';
$lang['the_following_matching'] = 'Následující <b>kritéria výbìru</b> jsou podporovány tímto LDAP serverem.';
$lang['the_following_syntaxes'] = 'Následující <b>syntaxe</b> jsou podporovány tímto LDAP serverem.';
$lang['schema_retrieve_error_1']='Server plnì nepodporuje LDAP protocol.';
$lang['schema_retrieve_error_2']='Va¹e verze PHP korektnì neprovede tento dotaz.';
$lang['schema_retrieve_error_3']='Nebo mo¾ná phpLDAPadmin neví jak získat schéma pro Vá¹ 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éma serveru';
$lang['required_attrs'] = 'Vy¾adované atributy';
$lang['optional_attrs'] = 'Volitelné atributy';
$lang['optional_binary_attrs'] = 'Volitelné binární atributy';
$lang['OID'] = 'OID';
$lang['aliases']='Aliasy';
$lang['desc'] = 'Popis';
$lang['no_description']='¾ádný popis';
$lang['name'] = 'Název';
$lang['equality']='Equality';
$lang['is_obsolete'] = 'Tato objectClass je <b>zastaralá</b>';
$lang['inherits'] = 'Odvozeno od objectClass';
$lang['inherited_from'] = 'Odvozeno od objectClass';
$lang['parent_to'] = 'Rodièovská objectClass';
$lang['jump_to_this_oclass'] = 'Jdi na definici této objectClass';
$lang['matching_rule_oid'] = 'Výbìrové kritérium OID';
$lang['syntax_oid'] = 'Syntaxe OID';
$lang['not_applicable'] = 'nepou¾itelný';
$lang['not_specified'] = 'nespecifikovaný';
$lang['character']='znak';
$lang['characters']='znakù';
$lang['used_by_objectclasses']='Pou¾íváno tìmito objectClass';
$lang['used_by_attributes']='Pou¾ívají atributy';
$lang['maximum_length']='Maximální délka';
$lang['attributes']='Typy atributù';
$lang['syntaxes']='Syntaxe';
$lang['matchingrules']='Matching Rules';
$lang['oid']='OID';
$lang['obsolete']='Zastaralé';
$lang['ordering']='Øazení';
$lang['substring_rule']='Substring Rule';
$lang['single_valued']='Single Valued';
$lang['collective']='Collective';
$lang['user_modification']='User Modification';
$lang['usage']='Pou¾ití';
$lang['could_not_retrieve_schema_from']='Nelze získat schéma z';
$lang['type']='Typ';
// Deleting entries
$lang['entry_deleted_successfully'] = 'Objekt \'%s\' byl úspì¹nì odstranìn.';
$lang['you_must_specify_a_dn'] = 'Musíte zadat DN';
$lang['could_not_delete_entry'] = 'Nebylo mo¾né odstranit objekt: %s';
$lang['no_such_entry'] = 'Objekt neexistuje: %s';
$lang['delete_dn'] = 'Smazat %s';
$lang['permanently_delete_children'] = 'Odstranit také v¹echny potomky?';
$lang['entry_is_root_sub_tree'] = 'Tento objekt je koøenem podstromu, který obsahuje %s objektù.';
$lang['view_entries'] = 'zobrazit objekty';
$lang['confirm_recursive_delete'] = 'phpLDAPadmin rekurzivnì odstraní tento objekt a v¹ech jeho %s potomkù. Pozornì si prohlédnìte seznam objektù, které tato operace odstraní. Pøejete si pokraèovat?';
$lang['confirm_recursive_delete_note'] = 'Poznámka: tato operace mù¾e mít fatální následky a nelze ji vrátit zpìt. Speciální pozornost vìnujte aliasùm, odkazùm a ostatním vìcem, které mù¾ou zpùsobit problémy.';
$lang['delete_all_x_objects'] = 'Smazat v¹ech %s objektù';
$lang['recursive_delete_progress'] = 'Prùbìh rekurzivního odstranìní';
$lang['entry_and_sub_tree_deleted_successfully'] = 'Objekt %s a jeho podstrom byly úspì¹nì odstranìny.';
$lang['failed_to_delete_entry'] = 'Nepodaøilo se odstranit objekt %s';
$lang['list_of_entries_to_be_deleted'] = 'Seznam objektù k odstranìní:';
$lang['sure_permanent_delete_object']='Jste si skuteènì jisti, ¾e chcete odstranit tento objekt?';
$lang['dn'] = 'DN';
// Deleting attributes
$lang['attr_is_read_only'] = 'Atribut "%s" je v konfiguraci phpLDAPadminu oznaèen jako "jen pro ètení".';
$lang['no_attr_specified'] = 'Nebylo zadáno jméno atributu.';
$lang['no_dn_specified'] = 'Nebylo zadáno DN';
// Adding attributes
$lang['left_attr_blank'] = 'Nevyplnili jste hodnotu atributu. Vra»te se zpìt a akci opakujte.';
$lang['failed_to_add_attr'] = 'Pøidání atributu selhalo.';
$lang['file_empty'] = 'Soubor, který jste zvolili je buï prázdný nebo neexistuje. Vra»te se prosím zpìt a akci opakujte.';
$lang['invalid_file'] = 'Bezpeènostní chyba: Soubor, který uploadujete mù¾e být závadný.';
$lang['warning_file_uploads_disabled'] = 'V konfiguraci PHP jsou zakázány uploady souborù. Pro pokraèování upravte prosím php.ini.';
$lang['uploaded_file_too_big'] = 'Soubor, který se pokou¹eli ulo¾it je pøíli¹ veliký. Upravte prosím hodnotu upload_max_size v php.ini.';
$lang['uploaded_file_partial'] = 'Pøi uploadu souboru do¹lo zøejmì k selhání sítì, nebo» se podaøilo získat jen èást souboru.';
$lang['max_file_size'] = 'Maximální velikost souboru: %s';
// Updating values
$lang['modification_successful'] = 'Úprava probìhla úspì¹nì!';
$lang['change_password_new_login'] = 'Kvùli zmìnì svého hesla se nyní musíte pøihlásit znova - s novým heslem.';
// Adding objectClass form
$lang['new_required_attrs'] = 'Nový vy¾adovaný atribut';
$lang['requires_to_add'] = 'K provedení této akce musíte pøidat';
$lang['new_attributes'] = 'nové atributy';
$lang['new_required_attrs_instructions'] = 'Návod: K pøiøazení této objectClass k vybranému objektu musíte zadat';
$lang['that_this_oclass_requires'] = 'atributy, které jsou touto objectClass vy¾adovány. Mù¾ete tak uèinit v tomto formuláøi.';
$lang['add_oclass_and_attrs'] = 'Pøidat objectClass a atributy';
$lang['objectclasses'] = 'objectClassy';
// General
$lang['chooser_link_tooltip'] = 'Otevøe popup okno, ve kterém zvolíte DN';
$lang['no_updates_in_read_only_mode'] = 'Nelze provádìt úpravy dokud je server v módu "pouze pro ètení"';
$lang['bad_server_id'] = '©patné ID serveru';
$lang['not_enough_login_info'] = 'Nedostatek informací pro pøihlá¹ení k serveru. Ovìøte prosím nastavení.';
$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ést ldap_mod_add operaci.';
$lang['bad_server_id_underline'] = 'server_id: ';
$lang['success'] = 'Hotovo';
$lang['server_colon_pare'] = 'Server: ';
$lang['look_in'] = 'Prohlí¾ení: ';
$lang['missing_server_id_in_query_string'] = 'V po¾adavku nebylo uvedeno ¾ádné ID serveru!';
$lang['missing_dn_in_query_string'] = 'V po¾adavku nebyl uveden ¾ádný DN!';
$lang['back_up_p'] = 'O úroveò vý¹...';
$lang['no_entries'] = '¾ádné objekty';
$lang['not_logged_in'] = 'Nepøihlá¹en';
$lang['could_not_det_base_dn'] = 'Nelze zjistit výchozí DN';
$lang['please_report_this_as_a_bug']='Nahla¹te toto prosím jako chybu.';
$lang['reasons_for_error']='Toto se mù¾e pøihodit z nìkolika pøíèin. Nejpravdìpodobnìj¹í jsou:';
$lang['yes']='Ano';
$lang['no']='Ne';
$lang['go']='Jdi';
$lang['delete']='Odstranit';
$lang['back']='Zpì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ìní';
$lang['light'] = 'light'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = 'Proveï &gt;&gt;';
// Add value form
$lang['add_new'] = 'Pøidat nový';
$lang['value_to'] = 'hodnota pro';
$lang['distinguished_name'] = 'Distinguished Name';
$lang['current_list_of'] = 'Souèasný výpis';
$lang['values_for_attribute'] = 'hodnoty pro atribut';
$lang['inappropriate_matching_note'] = 'Poznámka: Pokud nenastavíte na tomto LDAP serveru pravidlo<br /><tt>EQUALITY</tt> pro tento atribut, dojde k chybì pøi výbìru objektù.';
$lang['enter_value_to_add'] = 'Zadejte hodnotu, kterou chcete pøidat:';
$lang['new_required_attrs_note'] = 'Poznámka: Není vylouèené, ¾e budete vyzváni k zadání nových atributù vy¾adovaných touto objectClass';
$lang['syntax'] = 'Syntaxe';
//copy.php
$lang['copy_server_read_only'] = 'Nemù¾ete provádìt zmìny dokud je server v módu "jen pro ètení"';
$lang['copy_dest_dn_blank'] = 'Ponechali jste kolonku cílové DN prázdnou.';
$lang['copy_dest_already_exists'] = 'Objekt (%s) ji¾ v cílovém DN existuje.';
$lang['copy_dest_container_does_not_exist'] = 'Cílová slo¾ka (%s) neexistuje.';
$lang['copy_source_dest_dn_same'] = 'Zdrojové a cílové DN se shodují.';
$lang['copy_copying'] = 'Kopíruji ';
$lang['copy_recursive_copy_progress'] = 'Prùbìh rekurzivního kopírování';
$lang['copy_building_snapshot'] = 'Sestavuji obraz stromu ke kopírování... ';
$lang['copy_successful_like_to'] = 'Kopie úspì¹nì dokonèena! Pøejete si ';
$lang['copy_view_new_entry'] = 'zobrazit nový objekt';
$lang['copy_failed'] = 'Nepodaøilo se okopírovat DN: ';
//edit.php
$lang['missing_template_file'] = 'Upozornìní: chybí ¹ablona, ';
$lang['using_default'] = 'Pou¾ívám výchozí.';
$lang['template'] = '©ablona';
$lang['must_choose_template'] = 'Musíte zvolit ¹ablonu';
$lang['invalid_template'] = '%s je neplatná ¹ablona';
$lang['using_template'] = 'pou¾ítím ¹ablony';
$lang['go_to_dn'] = 'Jdi na %s';
//copy_form.php
$lang['copyf_title_copy'] = 'Kopírovat ';
$lang['copyf_to_new_object'] = 'jako nový objekt';
$lang['copyf_dest_dn'] = 'Cílové DN';
$lang['copyf_dest_dn_tooltip'] = 'Celé DN nového objektu bude vytvoøeno kopií zdrojového objektu';
$lang['copyf_dest_server'] = 'Cílový server';
$lang['copyf_note'] = 'Rada: Kopírování mezi servery funguje jedinì za pøedpokladu, ¾e nedojde k neshodì schémat';
$lang['copyf_recursive_copy'] = 'Pøi kopírování zahrnout v¹echny potomky tohoto objektu.';
$lang['recursive_copy'] = 'Rekurzivní kopie';
$lang['filter'] = 'Filtr';
$lang['filter_tooltip'] = 'Pøi rekurzivní kopii pracovat pouze s objekty, které splòují zvolený filtr';
//create.php
$lang['create_required_attribute'] = 'Nevyplnili jste pole pro vy¾adovaný atribut <b>%s</b>.';
$lang['redirecting'] = 'Pøesmìrovávám';
$lang['here'] = 'zde';
$lang['create_could_not_add'] = 'Nelze objekt do LDAP serveru pøidat.';
//create_form.php
$lang['createf_create_object'] = 'Vytvoøit objekt';
$lang['createf_choose_temp'] = 'Vyberte ¹ablonu';
$lang['createf_select_temp'] = 'Zvolte ¹ablonu pro vytvoøení objektu';
$lang['createf_proceed'] = 'Provést';
$lang['rdn_field_blank'] = 'Ponechali jste pole RDN nevyplnìné.';
$lang['container_does_not_exist'] = 'Slo¾ka (%s) neexistuje. Opakujte prosím akci.';
$lang['no_objectclasses_selected'] = 'Nepøiøadili jste ¾ádné objectClass k tomuto objektu. Vra»te se prosím zpìt a akci opakujte.';
$lang['hint_structural_oclass'] = 'Nápovìda: Musíte zvolit alespoò jednu structural objectClass.';
//creation_template.php
$lang['ctemplate_on_server'] = 'Na serveru';
$lang['ctemplate_no_template'] = 'V POST po¾adavku nebyla zaslána ¾ádná ¹ablona.';
$lang['ctemplate_config_handler'] = 'Va¹e nastavení uvádí obsluhovaè ';
$lang['ctemplate_handler_does_not_exist'] = 'pro tuto ¹ablonu. Ale tento obsluhovaè nelze v adresáøi templates/creation nalézt.';
$lang['create_step1'] = 'Krok 1 ze 2: Jméno a objectClass(y)';
$lang['create_step2'] = 'Krok 2 ze 2: Atributy a hodnoty';
$lang['relative_distinguished_name'] = 'Relativní Distinguished Name';
$lang['rdn'] = 'RDN';
$lang['rdn_example'] = '(pøíklad: cn=MujNovyUzivatel)';
$lang['container'] = 'Slo¾ka';
$lang['alias_for'] = 'Alias k %s';
// search.php
$lang['you_have_not_logged_into_server'] = 'Nelze provádìt vyhledávání na serveru bez pøedchozího pøihlá¹ení.';
$lang['click_to_go_to_login_form'] = 'Klepnutím budete pøesmìrováni na formuláø k pøihlá¹ení';
$lang['unrecognized_criteria_option'] = 'Neznámá vyhledávací kritéria: ';
$lang['if_you_want_to_add_criteria'] = 'Pokud si pøejete pøidat svoje vlastní vyhledávací kritéria, ujistìte se, ¾e jste je pøidali do search.php.';
$lang['entries_found'] = 'Nalezené objekty: ';
$lang['filter_performed'] = 'Uplatnìný filtr: ';
$lang['search_duration'] = 'Vyhledávání dokonèeno za';
$lang['seconds'] = 'sekund';
// search_form_advanced.php
$lang['scope_in_which_to_search'] = 'Oblast vyhledávání';
$lang['scope_sub'] = 'Celý podstrom';
$lang['scope_one'] = 'O jednu úroveò ní¾';
$lang['scope_base'] = 'Pouze výchozí DN';
$lang['standard_ldap_search_filter'] = 'Standardní LDAP vyhledávací filtr. Pøiklad: (&(sn=Smith)(givenname=David))';
$lang['search_filter'] = 'Vyhledávací filtr';
$lang['list_of_attrs_to_display_in_results'] = 'Seznam atributù zobrazených ve výsledku hledání (oddìlené èá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èíná na';
$lang['contains'] = 'obsahuje';
$lang['ends with'] = 'konèí na';
$lang['sounds like'] = 'zní 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ì poskytuje následující informace';
$lang['nothing_to_report'] = 'Server neposkytuje ¾ádné informace.';
//update.php
$lang['update_array_malformed'] = 'update_array je po¹kozené. Mù¾e se jednat o chybu v phpLDAPadmin. Prosíme Vás, abyste chybu nahlásili.';
$lang['could_not_perform_ldap_modify'] = 'Nelze provést operaci ldap_modify.';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = 'Pøejete si provést tyto zmìny?';
$lang['attribute'] = 'Atribut';
$lang['old_value'] = 'Pùvodní hodnota';
$lang['new_value'] = 'Nová hodnota';
$lang['attr_deleted'] = '[atribut odstranìn]';
$lang['commit'] = 'Odeslat';
$lang['cancel'] = 'Storno';
$lang['you_made_no_changes'] = 'Neprovedli jste ¾ádné zmìny';
$lang['go_back'] = 'Zpìt';
// welcome.php
$lang['welcome_note'] = 'K navigaci pou¾ijte prosím menu v levé èásti obrazovky';
$lang['credits'] = 'Autoøi';
$lang['changelog'] = 'ChangeLog';
$lang['donate'] = 'Podpoøit projekt';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Nebezpeèný název souboru: ';
$lang['no_such_file'] = 'Soubor nelze nalé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ím nejprve tento problé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ím nejprve tento problém.';
$lang['uidpool_not_exist'] = 'Zdá se, ¾e uidPool uvedený 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ím nejprve tento problém.';
$lang['auto_uid_invalid_credential'] = 'Se zadanými pøístupovými oprávnìními se nelze pøipojit k <b>%s</b> a získat auto_uid. Zkontrolujte prosím konfiguraci.';
$lang['bad_auto_uid_search_base'] = 'V konfiguraci phpLDAPadminu je uveden neplatný parametr auto_uid_search_base pro server %s';
$lang['auto_uid_invalid_value'] = 'V konfiguraci je uvedena neplatná hodnota auto_uid_number_mechanism (<tt>%s</tt>). Platné hodnoty jsou pouze <tt>uidpool</tt> a <tt>search</tt>. Napravte prosím nejprve tento problém.';
$lang['error_auth_type_config'] = 'Chyba: Ve svém konfiguraèním souboru jste u polo¾ky $servers[\'auth_type\'] uvedli chybnou hodnotu \'%s\'. Platné 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ím konfiguraci svého LDAP serveru.';
$lang['could_not_bind_anon'] = 'K serveru se nelze pøipojit anonymnì.';
$lang['could_not_bind'] = 'Nelze se pøipojit k serveru LDAP.';
$lang['anonymous_bind'] = 'Pøipojit anonymnì';
$lang['bad_user_name_or_password'] = 'Nesprávné jméno nebo heslo. Opakujte pøihlá¹ení.';
$lang['redirecting_click_if_nothing_happens'] = 'Pøesmìrovávám... Klepnìte sem, pokud se nic nestane.';
$lang['successfully_logged_in_to_server'] = 'Úspì¹nì jste se pøihlásili k serveru <b>%s</b>';
$lang['could_not_set_cookie'] = 'Cookie nemohla být ulo¾ena.';
$lang['ldap_said'] = '<b>Odpovìï LDAP serveru</b>: %s<br /><br />';
$lang['ferror_error'] = 'Chyba';
$lang['fbrowse'] = 'procházet';
$lang['delete_photo'] = 'Odstranit fotografii';
$lang['install_not_support_blowfish'] = 'Tato instalace PHP neobsahuje podporu pro ¹ifru Blowfish.';
$lang['install_not_support_md5crypt'] = 'Tato instalace PHP neobsahuje podporu pro ¹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>Èíslo chyby</b>: %s <small>(%s)</small><br /><br />';
$lang['ferror_discription'] = '<b>Popis</b>: %s <br /><br />';
$lang['ferror_number_short'] = '<b>Èíslo chyby</b>: %s<br /><br />';
$lang['ferror_discription_short'] = '<b>Popis</b>: (popis není k dispozici)<br />';
$lang['ferror_submit_bug'] = 'Pokud je toto chyba v phpLDAPadmin, <a href=\'%s\'>napi¹te nám</a> o tom.';
$lang['ferror_unrecognized_num'] = 'Neznámé èí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áva¾nou, droubnou 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> øádka <b>%s</b>, volá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ím prosím ohlá¹te chybu</a>.</center></td></tr></table></center><br />';
$lang['ferror_congrats_found_bug'] = 'Blahopøejeme! Nalezli jste chybu v phpLDAPadmin. :-)<br /><br />
<table class=\'bug\'>
<tr><td>Chyba:</td><td><b>%s</b></td></tr>
<tr><td>Vá¾nost:</td><td><b>%s</b></td></tr>
<tr><td>Soubor:</td><td><b>%s</b></td></tr>
<tr><td>Øádka:</td><td><b>%s</b></td></tr>
<tr><td>Volá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ím dole prosím ohla¹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ï &gt;&gt;';
$lang['dont_stop_on_errors'] = 'Ignorovat chyby';
//ldif_import
$lang['add_action'] = 'Pøidávání...';
$lang['delete_action'] = 'Odstraòování...';
$lang['rename_action'] = 'Pøejmenovávání...';
$lang['modify_action'] = 'Upravování...';
$lang['warning_no_ldif_version_found'] = 'Nebyla nalezena verze. Pøedpokládám 1.';
$lang['valid_dn_line_required'] = 'Je vy¾adován platný øádek s DN.';
$lang['missing_uploaded_file'] = 'Soubor LDIF nebyl nalezen.';
$lang['no_ldif_file_specified.'] = 'Neuvedli jste LDIF soubor. Opakujte prosím akci.';
$lang['ldif_file_empty'] = 'Soubor LDIF je prázdný.';
$lang['empty'] = 'prázdný';
$lang['file'] = 'Soubor';
$lang['number_bytes'] = '%s bajtù';
$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'] = 'Èíslo øádku:';
$lang['ldif_line'] = 'Øádek:';
// Exports
$lang['export_format'] = 'Formát exportu';
$lang['line_ends'] = 'Konce øádkù';
$lang['must_choose_export_format'] = 'Musíte zvolit exportní formát.';
$lang['invalid_export_format'] = 'Neplatný exportní formát';
$lang['no_exporter_found'] = 'Nebyla nalezena ¾ádná aplikace pro export.';
$lang['error_performing_search'] = 'Bìhem vyhledávání do¹lo k chybì.';
$lang['showing_results_x_through_y'] = 'Výsledky od %s do %s.';
$lang['searching'] = 'Vyhledávám...';
$lang['size_limit_exceeded'] = 'Byl pøekroèen limitní parametr pro vyhledávání.';
$lang['entry'] = 'Objekt';
$lang['ldif_export_for_dn'] = 'LDIF Export objektu: %s';
$lang['generated_on_date'] = 'Generováno phpLDAPadminem dne %s';
$lang['total_entries'] = 'Celkem objektù';
$lang['dsml_export_for_dn'] = 'DSLM Export objektu: %s';
// logins
$lang['could_not_find_user'] = 'Nelze nalézt u¾ivatele "%s"';
$lang['password_blank'] = 'Nezadali jste u¾ivatelské heslo.';
$lang['login_cancelled'] = 'Pøihla¹ování zru¹eno.';
$lang['no_one_logged_in'] = 'Nikdo není pøihlá¹en k tomuto serveru.';
$lang['could_not_logout'] = 'Nelze se odhlásit.';
$lang['unknown_auth_type'] = 'Neznámý auth_type: %s';
$lang['logged_out_successfully'] = 'Odhlá¹ení od serveru <b>%s</b> probìhlo úspì¹nì.';
$lang['authenticate_to_server'] = 'Ovìøení vùèi serveru %s';
$lang['warning_this_web_connection_is_unencrypted'] = 'Upozornìní: Toto spojení není ¹ifrováné.';
$lang['not_using_https'] = 'Nepøipojujete se pomocí \'https\'. Prohlí¾eè ode¹le Va¹e pøihlá¹ení v ne¹ifrované podobì.';
$lang['login_dn'] = 'Pøihla¹ovací DN';
$lang['user_name'] = 'U¾ivatel';
$lang['password'] = 'Heslo';
$lang['authenticate'] = 'Pøihlásit';
// Entry browser
$lang['entry_chooser_title'] = 'Zvolit objekt';
// Index page
$lang['need_to_configure'] = 'Nejprve je tøeba phpLDAPadmin nakonfigurovat. Toho docílíte upravou souboru \'config.php\'. Ukázková konfigurace je k nalezení v souboru \'config.php.example\'';
// Mass deletes
$lang['no_deletes_in_read_only'] = 'Mazání je v re¾imu "jen pro ètení" zakázáno.';
$lang['error_calling_mass_delete'] = 'Chyba pøi volání mass_delete.php. V POSTu chybí promìnná mass_delete.';
$lang['mass_delete_not_array'] = 'mass_delete v POSTu není pole.';
$lang['mass_delete_not_enabled'] = 'Hromadý výmaz není umo¾nìn. Mù¾ete ho povolit v souboru config.php.';
$lang['mass_deleting'] = 'Hromadný výmaz';
$lang['mass_delete_progress'] = 'Prùbìh odstraòování na serveru "%s"';
$lang['malformed_mass_delete_array'] = 'Zdeformované pole mass_delete.';
$lang['no_entries_to_delete'] = 'Nevybrali jste ¾ádné objekty k odstranìní.';
$lang['deleting_dn'] = 'Odstraòuji %s';
$lang['total_entries_failed'] = '%s z %s objektù se nepodaøilo odstranit.';
$lang['all_entries_successful'] = 'V¹echny objekty byly úspì¹nì odstranìny.';
$lang['confirm_mass_delete'] = 'Potvïte hromadný výmaz v poètu %s objektù na serveru %s';
$lang['yes_delete'] = 'Ano, odstranit!';
// Renaming entries
$lang['non_leaf_nodes_cannot_be_renamed'] = 'Nelze pøejmenovat objekt, který má potomky. Toto se napøíklad vztahuje na v¹echny objekty, které nejsou typu "list".';
$lang['no_rdn_change'] = 'Nezmìnili jste RDN';
$lang['invalid_rdn'] = 'Neplatná hodnota RDN';
$lang['could_not_rename'] = 'Objekt nelze pøejmenovat';
?>

View File

@ -1,567 +0,0 @@
<?php
/*
* Ü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ä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ält';//'contains';
//$lang['ends_with'] = 'endet mit';//'ends with';
//$lang['sounds_like'] = 'ähnlich wie';//'sounds like';
$lang['predefined_search_str'] = 'oder ein von dieser Liste auswä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ö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ä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ä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ügen';//'Add a jpegPhoto';
$lang['rename_entry'] = 'Eintrag umbenennen';//'Rename Entry';
$lang['rename'] = 'Umbenennen';//'Rename';
$lang['add'] = 'Hinzufügen';//'Add';
$lang['view'] = 'Ansehen';//'View';
$lang['view_one_child'] = 'Zeige einen Untereintrag';//'View 1 child';
$lang['view_children'] = 'Zeige %s Untereinträge';//'View %s children';
$lang['add_new_attribute'] = 'Neues Attribut hinzufü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ü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'] = 'Änderungen speichern';//'Save Changes';
$lang['add_value'] = 'Wert hinzufü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ü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ändert und sind hervorgehoben.';//'Some attributes (%s) were modified and are highlighted below.';
$lang['attr_modified'] = 'Ein Attribut (%s) wurde verä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'] = 'Ändere den RDN des Eintrages';//'Change this entry\'s RDN';
$lang['no_new_attrs_available'] = 'Keine weiteren Attribute verfügbar für diesen Eintrag';//'no new attributes available for this entry';
$lang['no_new_binary_attrs_available'] = 'Keine weiteren Binären Attribute verfügbar für diesen Eintrag.';//'no new binary attributes available for this entry';
$lang['binary_value'] = 'Binärwert';//'Binary value';
$lang['add_new_binary_attr'] = 'Neuen Binärwert hinzufügen';//'Add New Binary Attribute';
// DELETE $lang['add_new_binary_attr_tooltip'] = 'Füge einen neuen Binä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ügen';//'Add New Value';
// Schema browser
$lang['the_following_objectclasses'] = 'Die folgenden Objektklassen werden vom LDAP-Server unterstützt.';//'The following <b>objectClasses</b> are supported by this LDAP server.';
$lang['the_following_attributes'] = 'Die folgenden Attribute werden vom LDAP-Server unterstützt.';//'The following <b>attributeTypes</b> are supported by this LDAP server.';
$lang['the_following_matching'] = 'Die folgenden Suchregeln werden vom LDAP-Server unterstü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ützt.';//'The following <b>syntaxes</b> are supported by this LDAP server.';
$lang['schema_retrieve_error_1']='Der Server unterstützt nicht vollstä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ä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 Änderung';//'User Modification';
$lang['usage']='Verwendung';//'Usage';
$lang['maximum_length']='Maximale Grö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ö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äge?';//'Permanently delete all children also?';
$lang['entry_is_root_sub_tree'] = 'Dies ist ein Root-Eintrag und beinhaltet einen Unterbaum mit %s Einträgen.';//'This entry is the root of a sub-tree containing %s entries.';
$lang['view_entries'] = 'Zeige Einträge';//'view entries';
$lang['confirm_recursive_delete'] = 'phpLDAPadmin kann diesen Eintrag und die %s Untereinträge rekursiv löschen. Unten ist eine Liste der Einträge angegeben die von diesem Löschen betroffen wären. Sollen alle Einträge gelö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ährlich und erfolgt auf eines Risiko. Die Ausführung kann nicht rückgä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ü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ügen des Attributes';//'Failed to add the attribute.';
$lang['file_empty'] = 'Die ausgewählte Datei ist entweder nicht vorhanden oder leer. Bitte zurü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 überprüfen.';//'Your PHP configuration has disabled file uploads. Please check php.ini before proceeding.';
$lang['uploaded_file_too_big'] = 'Die hochgeladene Datei ist größer als die maximal erlaubte Datei aus der "php.ini". Bitte in der php.ini den Eintrag "upload_max_size" überprüfen.';//'The file you uploaded is too large. Please check php.ini, upload_max_size setting';
$lang['uploaded_file_partial'] = 'Die auswählte Datei wurde nur unvollständig hochgeladen.';//'The file you selected was only partially uploaded, likley due to a network error.';
$lang['max_file_size'] = 'Maximal Dateigröße ist: %s';//'Maximum file size: %s';
// Updating values
$lang['modification_successful'] = 'Änderung war erfolgreich!';//'Modification successful!';
$lang['change_password_new_login'] = 'Da das Passwort geä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ötigte Attribute';//'New Required Attributes';
$lang['requires_to_add'] = 'Diese Aktion zwingt sie folgendes hinzuzufügen';//'This action requires you to add';
$lang['new_attributes'] = 'neue Attribute';//'new attributes';
$lang['new_required_attrs_instructions'] = 'Anleitung: Um diese objectClass hinzuzufü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ö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ügen';//'Add ObjectClass and Attributes';
// General
$lang['chooser_link_tooltip'] = 'Klicken um einen Eintrag (DN) grafisch auszuwä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ü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ültige Server ID';//'Bad server id';
$lang['not_enough_login_info'] = 'Nicht genügend Angaben zur Anmeldung am Server. Bitte überprü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ühren.';//'Could not perform ldap_mod_add operation.';
$lang['bad_server_id_underline'] = 'Ungü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ä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ü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ü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ü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ü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ü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ü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ählt sein';//'You must choose a template';
$lang['invalid_template'] = 'Die Vorlage "%s" ist ungü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ürung des rekursiven Kopierens werden nur die Einträge verwendet, die mit dem Filter ü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ö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ü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ählt. Bitte zurü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ä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älter';//'Container';
// search.php
$lang['you_have_not_logged_into_server'] = 'Sie haben sich am ausgewählten Server nicht angemeldet. Sie können keine Suche durchfü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ü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äge: ';//'Entries found: ';
$lang['filter_performed'] = 'Angewanter Filter: ';//'Filter performed: ';
$lang['search_duration'] = 'Suche durch phpLDAPadmin ausgefü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 ü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ühren.';//'Could not perform ldap_modify operation.';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = 'Wollen sie diese Änderungen ü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öscht]';//'[attribute deleted]';
$lang['commit'] = 'Anwenden';//'Commit';
$lang['cancel'] = 'Abbruch';//'Cancel';
$lang['you_made_no_changes'] = 'Sie haben keine Änderungen vorgenommen.';//'You made no changes';
$lang['go_back'] = 'Zurü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'] = 'Ä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ü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ü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) überprü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ö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ützt kein TLS (verschlüsselte Verbindung).';//"Your PHP install does not support TLS';
$lang['could_not_start_tls'] = 'TLS konnte nicht gestartet werden. Bitte die LDAP-Server-Konfiguration überprü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ä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'] = 'Überfliegen';//"browse';
$lang['delete_photo'] = 'Lösche Foto';//"Delete Photo';
$lang['install_not_support_blowfish'] = 'Die verwendete PHP-Version unterstützt keine Blowfish Verschlüsselung.';//"Your PHP install does not support blowfish encryption.';
$lang['install_not_support_md5crypt'] = 'Die eingesetzte PHP-Version unterstützt keine MD5-Verschlüsselung.';//'Your PHP install does not support md5crypt encryption.';
$lang['install_no_mash'] = 'Die verwendete PHP-Version unterstü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ä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ü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ü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ählen';//'Select an LDIF file:';
$lang['select_ldif_file_proceed'] = 'Ausfü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ügen...';//'Adding...';
$lang['delete_action'] = 'Entfernen...';//'Deleting...';
$lang['rename_action'] = 'Umbenennen...';//'Renaming...';
$lang['modify_action'] = 'Abä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ö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ü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ä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äge?';//'Permanently delete all children also?';
//$lang['info_delete_recursive_1']='Dieser Objekt-Eintrag hat weitere Untereinträ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ä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ägen (DN) aufgeführt die gelöscht werden. Soll dies wirklich durchgefü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ährlich. Die Aktion kann nicht rückgängig gemacht werden. Synomyme (alias) und ähnliche Einträ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ö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öscht werden';//'You cannot delete the base DN entry of the LDAP server.';
$lang['list_of_entries_to_be_deleted'] = 'List der Einträge die gelö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ählen';//'You must choose an export format.';
$lang['invalid_export_format'] = 'Unglü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 ü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üsselt.';//'Warning: This web connection is unencrypted.';
$lang['not_using_https'] = 'Es wird keine verschlüsselte Verbindung (\'https\') verwendet. Der Webbrowser ü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äge auswä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ä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ägen konnten nicht gelöscht werden.';//'%s of %s entries failed to be deleted.';
$lang['all_entries_successful'] = 'Alle Einträge wurden erfolgreich gelöscht.';//'All entries deleted successfully.';
$lang['confirm_mass_delete'] = 'Bitte das Löschen von %s Einträgen auf dem Server %s bestä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ägen ist nicht Möglich. Es ist nur auf den Untersten Einträ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ändert';//'You did not change the RDN';
$lang['invalid_rdn'] = 'Ungü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'] = 'Á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é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ó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íz de su árbol LDAP.';
$lang['ldap_refuses_to_give_root'] = 'Parece que el servidor LDAP ha sido configurado para no revelar su raíz.';
$lang['please_specify_in_config'] = 'Por favór, especifíquela en config.php';
$lang['create_new_entry_in'] = 'Crear nuevo objeto en';
$lang['login_link'] = 'Autentificación';
$lang['login'] = 'conectar';
$lang['base_entry_does_not_exist'] = 'Este objeto base no existe.';
$lang['create_it'] = '¿Crearlo?';
// Entry display
$lang['delete_this_entry'] = 'Borrar este objeto';
$lang['delete_this_entry_tooltip'] = 'Se le pedirá confirmació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á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ú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'] = '¿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ón de PHP no realiza la petició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ó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ón';
$lang['no_description']='sin descripció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ó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á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ó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 í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'] = '¿Borrar también todos los hijos?';
$lang['entry_is_root_sub_tree'] = 'Este objeto es la raíz de un subá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án ahora. ¿Todavía quiere hacerlo?';
$lang['confirm_recursive_delete_note'] = 'Nota: es potencialmente peligroso y debe hacerlo a su cuenta y riesgo. Esta operación NO puede deshacerse. Tome en consideració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ón recursiva';
$lang['entry_and_sub_tree_deleted_successfully'] = 'Objeto %s y su subá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']='¿Está seguro de querer borrar este objeto?';
$lang['dn'] = 'DN';
// Deleting attributes
$lang['attr_is_read_only'] = 'El atributo "%s" está marcado como de sólo lectura en la configuración de phpLDAPadmin.';
$lang['no_attr_specified'] = 'No se ha especificado ningún nombre de atributo.';
$lang['no_dn_specified'] = 'No se ha especificado ningún DN';
// Adding attributes
$lang['left_attr_blank'] = 'Ha dejado en blanco el valor del atributo. Por favor, vuelva atrás e inté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á vacío. Por favor vuelva atrás e inténtelo de nuevo.';
$lang['invalid_file'] = 'Error de seguridad: El fichero que está enviando puede ser malicioso.';
$lang['warning_file_uploads_disabled'] = 'Su configuración del PHP ha desactivado la recepción de ficheros. Por favor revise php.ini antes de continuar.';
$lang['uploaded_file_too_big'] = 'El fichero que está 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ño máximo de fichero: %s';
// Updating values
$lang['modification_successful'] = '¡Modificación realizada correctamente!';
$lang['change_password_new_login'] = 'Como ha cambiado su contraseña, debe conectarse de nuevo empleando la nueva.';
// Adding objectClass form
$lang['new_required_attrs'] = 'Nuevos atributos requeridos';
$lang['requires_to_add'] = 'Esta acció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álogo emergente para seleccionar un DN de forma gráfica';
$lang['no_updates_in_read_only_mode'] = 'No puede realizar cambios cuando el servidor está 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ón suficiente para conectar con el servidor. Por favor, revise su configuració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ón "ldap_mod_add".';
$lang['bad_server_id_underline'] = 'Identificador de servidor no válido: ';
$lang['success'] = 'Éxito';
$lang['home'] = 'Inicio';
$lang['help'] = 'Ayuda';
$lang['success'] = 'Éxito';
$lang['server_colon_pare'] = 'Servidor: ';
$lang['look_in'] = 'Buscando en: ';
$lang['missing_server_id_in_query_string'] = '¡No se ha especificado ningún servidor en la petición!';
$lang['missing_dn_in_query_string'] = '¡No se ha especificado ningún DN en la petición!';
$lang['back_up_p'] = 'Volver';
$lang['no_entries'] = 'no hay objetos';
$lang['not_logged_in'] = 'No está 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á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á 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á 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 árbol a copiar... ';
$lang['copy_successful_like_to'] = '¡Copia correcta! ¿Le gustarí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é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í';
$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ó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éntelo de nuevo.';
$lang['no_objectclasses_selected'] = 'No ha seleccionado ninguna clase para este objeto. Por favor, vuelva atrá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ó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ó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ía no ha conectado con el servidor, así que no puede realizar búsquedas.';
$lang['click_to_go_to_login_form'] = 'Pulse aquí para ir al formulario de conexió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ú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'] = 'Ámbito de búsqueda';
$lang['scope_sub'] = 'Sub (subá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á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ón del servidor LDAP. Esto puede deberse a este <a href="http://bugs.php.net/bug.php?id=29587">error</a> es su versión de PHP o quizás su servidor LDAP posee controles de acceso que privan a los clientes de acceso al RootDSE.';
$lang['server_info_for'] = 'Información sobre el servidor: ';
$lang['server_reports_following'] = 'El servidor LDAP envía la siguiente informació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á 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ón "ldap_modify".';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = '¿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ás';
// welcome.php
$lang['welcome_note'] = 'Use el menú 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és';
$lang['no_cache_to_purge'] = 'No hay que borrar ningún caché.';
$lang['done_purging_caches'] = 'Se han borrado %s bytes de caché.';
$lang['purge_cache_tooltip'] = 'Se han borrado todos los datos en el caché 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ó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ó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ón ("%s")
no existe.';
$lang['specified_uidpool'] = 'Ha especificado "auto_uid_number_mechanism" como "search" en la
configuración del servidor <b>%s</b>, pero no ha especificado
"auto_uid_number_search_base". Por favor, especifí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ón.';
$lang['bad_auto_uid_search_base'] = 'Su configuració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ó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ón. Los tres únicos valores para "auth_type"
en la sección $servers son \'session\', \'cookie\', y \'config\'. Usted ha introducido \'%s\',
que no está permitido. ';
$lang['unique_attrs_invalid_credential'] = 'Imposible conectarse a <b>%s</b> con sus credenciales unique_attr. Por favor, revise su fichero de configuració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ón de PHP no soporta TLS.';
$lang['could_not_start_tls'] = 'No se ha podido iniciar TLS. Por favor, revise su configuración LDAP.';
$lang['could_not_bind_anon'] = 'No se ha podido conectar con el servidor de forma anónima.';
$lang['could_not_bind'] = 'No se ha podido conectar con el servidor LDAP.';
$lang['anonymous_bind'] = 'Conexión anónima';
$lang['bad_user_name_or_password'] = 'Nombre de usuario o contraseña incorrectos. Por favor, inténtelo de nuevo.';
$lang['redirecting_click_if_nothing_happens'] = 'Redirigiendo... Pulse aquí 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ón de PHP no soporta encriptación blowfish.';
$lang['install_not_support_md5crypt'] = 'Su instalación de PHP no soporta encriptación md5crypt.';
$lang['install_no_mash'] = 'Su instalación de PHP no posee la funció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ón: %s <br /><br />';
$lang['ferror_number_short'] = 'Error número: %s<br /><br />';
$lang['ferror_discription_short'] = 'Descripción: (no existe descripción disponible)<br />';
$lang['ferror_submit_bug'] = '¿Es éste un error de phpLDAPadmin? Si es así, 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>¡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í</a>.</center></td></tr></table></center><br />';
$lang['ferror_congrats_found_bug'] = '¡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ón PLA:</td><td><b>%s</b></td></tr>
<tr><td>Versió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ó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éntelo de nuevo.';
$lang['ldif_file_empty'] = 'El fichero LDIF enviado está vacío.';
$lang['empty'] = 'vací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ón';
$lang['line_ends'] = 'Fin de línea';
$lang['must_choose_export_format'] = 'Debe escoger un formato de exportación.';
$lang['invalid_export_format'] = 'Formato de exportación no válido';
$lang['no_exporter_found'] = 'No se ha encontrado ningú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ón LDIF de: %s';
$lang['generated_on_date'] = 'Generado por phpLDAPadmin el %s';
$lang['total_entries'] = 'Entradas totales';
$lang['dsml_export_for_dn'] = 'Exportació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ña en blanco.';
$lang['login_cancelled'] = 'Conexió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ón "auth_type" desconocido: %s';
$lang['logged_out_successfully'] = 'Se ha desconectado del servidor <b>%s</b>';
$lang['authenticate_to_server'] = 'Autentificación del servidor %s';
$lang['warning_this_web_connection_is_unencrypted'] = 'Aviso: Esta conexión no está encriptada.';
$lang['not_using_https'] = 'No está usando \'https\'. El navegador web enviará su información sin encriptar.';
$lang['login_dn'] = 'Login';
$lang['user_name'] = 'Nombre de usuario';
$lang['password'] = 'Contraseñ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ó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á activado el borrado masivo. Por favor, actí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'] = '¡Sí, 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ía PHP 5. Si continúa encontrará probablemente extraños errores.';
$lang['mismatched_search_attr_config'] = 'Su configuración tiene un error. $search_attributes debe tener el mismo número de atributos que $search_attributes_display.';
// Password checker
$lang['passwords_match'] = '¡Las contraseñas coinciden!';
$lang['passwords_do_not_match'] = '¡Las contraseñas no coinciden!';
$lang['password_checker_tool'] = 'Herramienta de comprobación de contraseñ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é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ón';
$lang['backup_ops'] = 'Administradores de Copias de Seguridad';
$lang['replicator'] = 'Replicador';
$lang['unable_smb_passwords'] = ' Imposible crear las contraseñas de Samba. Por favor, revise la configuración en template_config.php';
$lang['err_smb_conf'] = 'Error: Tiene un error en su configuració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ún';
$lang['t_user_name'] = 'Nombre de Usuario';
$lang['t_password'] = 'Contraseña';
$lang['t_encryption'] = 'Encriptació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áticamente)';
$lang['t_group'] = 'Grupo';
$lang['t_gid_number'] = 'Número GID';
$lang['t_err_passwords'] = 'Sus contraseñas no coinciden. Por favor, vuelva atrás e inténtelo de nuevon.';
$lang['t_err_field_blank'] = 'No puede dejar en blanco el %s. Por favor, vuelva atrás e inténtelo de nuevo.';
$lang['t_err_field_num'] = 'Sólo puede introducir valores numéricos en el campo %s. Por favor, vuelva atrás e inténtelo de nuevo.';
$lang['t_err_bad_container'] = 'El contenedor que ha especificado (%s) no existe. Por favor, vuelva atrás e inténtelo de nuevo.';
$lang['t_confirm_account_creation'] = 'Confirmar creació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ón';
$lang['t_address'] = 'Dirección';
$lang['t_city'] = 'Ciudad';
$lang['t_postal_code'] = 'Código postal';
$lang['t_street'] = 'Calle';
$lang['t_work_phone'] = 'Telé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ún" en blanco. Por favor, vuelva atrás e inténtelo de nuevo.';
$lang['t_confim_creation'] = 'Confirmar creación de entrada:';
$lang['t_create_address'] = 'Crear dirección';
// default template
$lang['t_check_pass'] = 'Compruebe la contraseñ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ée';
$lang['server'] = 'Serveur';
$lang['search_for_entries_whose'] = 'Rechercher les entrées dont';
$lang['base_dn'] = 'Base DN';
$lang['search_scope'] = 'Portée de la recherche';
$lang['show_attributes'] = 'Afficher les attributs';
$lang['Search'] = 'Rechercher';
$lang['predefined_search_str'] = 'Sélectionner une recherche prédéfinie';
$lang['predefined_searches'] = 'Recherches prédéfinies';
$lang['no_predefined_queries'] = 'Aucune requête n\'a été 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é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é';
$lang['report_bug'] = 'Signaler une anomalie';
$lang['schema'] = 'schéma';
$lang['search'] = 'rechercher';
$lang['create'] = 'créer';
$lang['info'] = 'info';
$lang['import'] = 'importer';
$lang['refresh'] = 'rafraîchir';
$lang['logout'] = 'se déconnecter';
$lang['create_new'] = 'Créer une nouvelle entrée ici';
$lang['view_schema_for'] = 'Afficher le schéma pour';
$lang['refresh_expanded_containers'] = 'Rafraîchir tous les conteneurs étendus pour';
$lang['create_new_entry_on'] = 'Créer une nouvelle entrée sur';
$lang['new'] = 'nouveau';
$lang['view_server_info'] = 'Afficher les informations fournies par le serveur';
$lang['import_from_ldif'] = 'Importer les entrées d\'un fichier LDIF';
$lang['logout_of_this_server'] = 'Se déconnecter de ce serveur';
$lang['logged_in_as'] = 'Connecté 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ée n\'existe pas.';
$lang['read_only'] = 'lecture seule';
$lang['read_only_tooltip'] = 'Cette attribut a été 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 été configuré pour ne pas révéler sa racine.';
$lang['please_specify_in_config'] = 'Veuillez la spécifier dans config.php';
$lang['create_new_entry_in'] = 'Crée une nouvelle entrée dans';
$lang['login_link'] = 'Connexion...';
$lang['login'] = 'connexion';
$lang['base_entry_does_not_exist'] = 'L\'entrée racine n\'existe pas.';
$lang['create_it'] = 'La créer ?';
// Entry display
$lang['delete_this_entry'] = 'Supprimer cette entré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é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éer une sous-entrée';
$lang['rename_entry'] = 'Renommer l\'entrée';
$lang['rename'] = 'Renommer';
$lang['rename_lower'] = 'renommer';
$lang['add'] = 'Ajouter';
$lang['view'] = 'Afficher';
$lang['view_one_child'] = 'Afficher 1 sous-entrée';
$lang['view_children'] = 'Afficher %s sous-entré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éma pour le type d\'attribut « %s »';
$lang['none'] = 'aucun';
$lang['no_internal_attributes'] = 'Aucun attribut interne';
$lang['no_attributes'] = 'Cette entré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 à l\'attribut « %s »';
$lang['refresh_entry'] = 'Rafraîchir';
$lang['refresh_this_entry'] = 'Rafraîchir cette entrée';
$lang['delete_hint'] = 'Astuce : pour supprimer un attribut, videz le champ texte et enregistrez.';
$lang['attr_schema_hint'] = 'Astuce : pour afficher le schéma d\'un attribut, cliquez sur le nom de l\'attribut.';
$lang['attrs_modified'] = 'Quelques attributs (%s) ont été modifiés et sont surlignés ci-dessous.';
$lang['attr_modified'] = 'Un attribut (%s) a été modifié et est surligné ci-dessous.';
$lang['viewing_read_only'] = 'Afficher les entrées en lecture seule.';
$lang['no_new_attrs_available'] = 'aucun nouvel attribut disponible pour cette entrée';
$lang['no_new_binary_attrs_available'] = 'aucun nouvel attribut binaire pour cette entrée';
$lang['binary_value'] = 'Valeur binaire';
$lang['add_new_binary_attr'] = 'Ajouter un nouvel attribut binaire';
$lang['alias_for'] = 'Note : « %s » est un alias de « %s »';
$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é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ètement le protocole LDAP.';
$lang['schema_retrieve_error_2']='Votre version de PHP n\'effectue pas correctement la requête.';
$lang['schema_retrieve_error_3']='phpLDAPadmin ne sais pas comment récupérer le sché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é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']='Égalité';
$lang['is_obsolete'] = 'Cet objectClass est obsolète.';
$lang['inherits'] = 'Hérite de';
$lang['inherited_from'] = 'Hérité 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écifié';
$lang['character']='caractère';
$lang['characters']='caractères';
$lang['used_by_objectclasses']='Utilisé par ces objectClass';
$lang['used_by_attributes']='Utilisé 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ète';
$lang['ordering']='Triage';
$lang['substring_rule']='Règle de sous-chaî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érer le schéma de';
$lang['type']='Type';
$lang['no_such_schema_item'] = 'Aucun élément de schéma : « %s »';
$lang['random_password'] = 'Un mot de passe aléatoire a été généré pour vous';
// Deleting entries
$lang['entry_deleted_successfully'] = 'L\'entrée %s a été supprimé avec succès.';
$lang['you_must_specify_a_dn'] = 'Vous devez spécifier un DN';
$lang['could_not_delete_entry'] = 'Impossible de supprimer l\'entrée : %s';
$lang['no_such_entry'] = 'Aucune entrée: %s';
$lang['delete_dn'] = 'Supprimer %s';
$lang['permanently_delete_children'] = 'Supprimer aussi toutes les sous-entrées ?';
$lang['entry_is_root_sub_tree'] = 'Cette entrée est la racine d\'une sous-arborescence contenant %s entrées.';
$lang['view_entries'] = 'afficher les entrées';
$lang['confirm_recursive_delete'] = 'phpLDAPadmin peut supprimer récursivement cette entrée et toutes %s de ses sous-entrées. Voir ci-dessous pour une liste de toutes les entrées que cette action supprimera. Voulez-vous le faire ?';
$lang['confirm_recursive_delete_note'] = 'Note : ceci est potentiellement très dangereux et vous le faites à vos risques et périls. Cette opération ne peut être annulée. Prenez bien note que les alias, les référents, et d\'autres choses pourront vous causer des problè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ée %s et la sous-arborescence ont été supprimé avec succès.';
$lang['failed_to_delete_entry'] = 'La suppression de l\'entrée %s a échoué';
$lang['list_of_entries_to_be_deleted'] = 'Liste des entrées à supprimer :';
$lang['sure_permanent_delete_object']='Êtes-vous sûr de vouloir supprimer définitivement cet objet ?';
$lang['dn'] = 'DN';
// Deleting attributes
$lang['attr_is_read_only'] = 'L\'attribut « %s » est marqué 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écifié';
// Adding attributes
$lang['left_attr_blank'] = 'Vous avez laissé la valeur de l\'attribut blanc. Veuillez revenir et essayer de nouveau.';
$lang['failed_to_add_attr'] = 'L\'ajout de l\'attribut a échoué.';
$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é : le fichier téléchargé est peut être corrompu.';
$lang['warning_file_uploads_disabled'] = 'Votre configuration de PHP a désactivé le téléchargement de fichiers. Veuillez vérifier php.ini avant de procéder.';
$lang['uploaded_file_too_big'] = 'Le fichier que vous avez téléchargé 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é est partiellement téléchargé, surement du à une erreur réseau.';
$lang['max_file_size'] = 'Taille de fichier maximum : %s';
// Updating values
$lang['modification_successful'] = 'Modification avec succès !';
$lang['change_password_new_login'] = 'Puisque vous avez changé 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 à cette entrée, vous devez spé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îte de dialogue permettant de choisir une entrée graphiquement';
$lang['no_updates_in_read_only_mode'] = 'Vous ne pouvez effectuer de mises à 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 à « %s » sur le port « %s »';
$lang['could_not_perform_ldap_mod_add'] = 'Impossible d\'effectuer ldap_mod_add operation.';
$lang['home'] = 'Accueil';
$lang['help'] = 'Aide';
$lang['success'] = 'Succès';
$lang['server_colon_pare'] = 'Serveur : ';
$lang['look_in'] = 'Rechercher dans : ';
$lang['missing_dn_in_query_string'] = 'Aucun DN spécifié dans la chaine de requete !';
$lang['back_up_p'] = 'Sauvegarde...';
$lang['no_entries'] = 'aucune entrées';
$lang['could_not_det_base_dn'] = 'Impossible de déterminer le DN racine';
$lang['reasons_for_error']='Ceci peut arriver pour différentes raisons, le plus probable est sans doute :';
$lang['yes']='oui';
$lang['no']='Non';
$lang['go']='Aller à';
$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ère'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = 'Procéder &gt;&gt;';
$lang['no_blowfish_secret'] = 'phpLDAPadmin ne peut pas chiffrer ou déchiffrer en toute sécurité vos informations sensibles, car $blowfish_secret n\'est pas défini dans config.php. Vous avez besoin d\'éditer config.php et de définir $blowfish_secret à une chaîne secrète maintenant.';
$lang['jpeg_dir_not_writable'] = 'Veuillez définir $jpeg_temp_dir à un répertoire accessible en écriture dans le config.php de phpLDAPadmin';
$lang['jpeg_dir_not_writable_error'] = 'Impossible d\'écrire dans le répertoire $jpeg_temp_dir %s. Veuillez vérifier que votre serveur Web peut écrire des fichiers dedans.';
$lang['jpeg_unable_toget'] = 'Impossible de récupérer les donné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é';
$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 « correspondance innapropriée » si vous n\'avez pas défini de règle d\'égalité 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 être demandé 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 à jour tantq ue le serveur est en lecture seule';
$lang['copy_dest_dn_blank'] = 'Vopus avez laissé le DN de destination vide.';
$lang['copy_dest_already_exists'] = 'L\'entrée de destination (%s)existe déjà.';
$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é de l\'arborescence à copier... ';
$lang['copy_successful_like_to'] = 'Copie avec succès ! Voulez-vous ';
$lang['copy_view_new_entry'] = 'afficher la nouvelle entrée';
$lang['copy_failed'] = 'La copie du DN a échoué : ';
//edit.php
$lang['missing_template_file'] = 'Avertissement : fichier modèle manquant, ';
$lang['using_default'] = 'Utilisant les valeurs par défaut.';
$lang['template'] = 'Modèle';
$lang['must_choose_template'] = 'Vous devez choisir un modèle';
$lang['invalid_template'] = '%s n\'est pas un modèle valide';
$lang['using_template'] = 'en utilisant le modèle';
$lang['go_to_dn'] = 'Aller vers %s';
$lang['structural_object_class_cannot_remove'] = 'C\'est un ObjectClass structurel et il ne peut être supprimé.';
$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ée a créer lors de la copie de l\'entrée source';
$lang['copyf_dest_server'] = 'Serveur de destination';
$lang['copyf_note'] = 'Astuce : la copie entre différents serveurs ne fonctionne que si il n\'y a aucune violations de schéma';
$lang['copyf_recursive_copy'] = 'Copie récursive de toutes les sous-entré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ées qui correspondent à ce filtre';
$lang['delete_after_copy'] = 'Supprimer aprè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éer un objet';
$lang['createf_choose_temp'] = 'Choisissez un modèle';
$lang['createf_select_temp'] = 'Sélectionner un modèle pour le processus de création';
$lang['save_as_file'] = 'Enregistrer dans un fichier';
$lang['rdn_field_blank'] = 'Vous avez laissé le champ RDN vide.';
$lang['container_does_not_exist'] = 'Le conteneur que vous avez spécifié (%s) n\'existe pas. Veuillez essayer de nouveau.';
$lang['no_objectclasses_selected'] = 'Vous n\'avez pas sélectionné d\'objectClass pour cet objet. Veuillez revenir et le faire.';
$lang['hint_structural_oclass'] = 'Astuce : vous devez choisir un seul objectClass structurel (affiché en gras ci-dessus)';
$lang['template_restricted'] = 'Ce modèle n\'est pas autorisé dans ce conteneur.';
$lang['template_invalid'] = 'Ce modèle a été désactivé, cela est sûrement du à un schéma manquant ou à des champs manquants dans le modèle XML.';
//creation_template.php
$lang['ctemplate_on_server'] = 'Sur le serveur';
$lang['ctemplate_no_template'] = 'Aucun modèle spécifié dans les variables POST.';
$lang['template_not_readable'] = 'Votre configuration spécifie un gestionnaire de « %s » pour ce modèle mais le fichier n\'est pas lisible car les permissions sont trop strictes..';
$lang['template_does_not_exist'] = 'Votre configuration spécifie un gestionnaire de « %s » pour ce modèle mais ce gestionnaire n\'existe pas dans le répertoire de modèles/création.';
$lang['create_step1'] = 'Étape 1 of 2 : nom et ObjectClass';
$lang['create_step2'] = 'Étape 2 of 2 : spécifie les attributs et valeur';
$lang['relative_distinguished_name'] = 'Nom distingué relatif';
$lang['rdn'] = 'RDN';
$lang['rdn_example'] = '(exemple : cn=MaNouvellePersonne)';
$lang['container'] = 'Conteneur';
// search.php
$lang['you_have_not_logged_into_server'] = 'Vous n\'êtes pas encore connecté au serveur sélectionné, 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ère non reconnue : ';
$lang['if_you_want_to_add_criteria'] = 'Si vous voulez ajouter vos propres critères dans la liste. Veuillez vous assurer d\'éditer search.php pour les gérer. Quitte.';
$lang['entries_found'] = 'Entrées trouvées : ';
$lang['filter_performed'] = 'Filtrage effectué : ';
$lang['search_duration'] = 'Recherche effectuée par phpLDAPadmin dans';
$lang['seconds'] = 'secondes';
// search_form_advanced.php
$lang['scope_in_which_to_search'] = 'La portée dans laquelle effectuer la recherche';
$lang['scope_sub'] = 'Sub (sous-arborescence entiè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 à afficher dans le résultat (séparé par des virgules)';
// search_form_simple.php
$lang['equals'] = 'est égal à';
$lang['starts with'] = 'commence par';
$lang['contains'] = 'contient';
$lang['ends with'] = 'se termine par';
$lang['sounds like'] = 'ressemble à';
// server_info.php
$lang['could_not_fetch_server_info'] = 'Impossible de récupérer les informations LDAP depuis le serveur. Ceci est sans doute du à une <a href="http://bugs.php.net/bug.php?id=29587">anomalie</a> dans votre version de PHP ou peut-être que votre serveur LDAP a un contrôle d\'accès défini qui empèche les clients LDAP d\'accéder au RootDSE.';
$lang['server_info_for'] = 'Info serveur pour : ';
$lang['server_reports_following'] = 'Le serveur rapporte les informations suivantes à propos de lui-même';
$lang['nothing_to_report'] = 'Ce serveur n\'a rien à rapporter.';
//update.php
$lang['update_array_malformed'] = 'update_array est malformé. C\'est peut-être une anomalie de phpLDAPadmin. Veuillez la rapporter.';
$lang['could_not_perform_ldap_modify'] = 'Impossible d\'effectuer une opé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é]';
$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é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édits';
$lang['changelog'] = 'ChangeLog';
$lang['documentation'] = 'Documentation';
$lang['donate'] = 'Donation';
$lang['pla_logo'] = 'Logo phpLDAPadmim';
// Donate.php
$lang['donation_instructions'] = 'Pour contribuer financiè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 à purger.';
$lang['done_purging_caches'] = '%s octets de cache purgés.';
$lang['purge_cache_tooltip'] = 'Purge toutes les données cachées dans phpLDAPadmin, incluant les sché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é auto_uid_numbers pour <b>%s</b> dans votre configuration,
mais vous n\'avez pas spécifié de mécanisme auto_uid_number_mechanism. Veuillez corriger
ce problème.';
$lang['uidpool_not_set'] = 'Vous avez défini « auto_uid_number_mechanism » comme « uidpool »
dans votre configuration pour le serveur <b>%s</b>, mais vous n\'avez pas spécifié le
auto_uid_number_uid_pool_dn. Veuillez le spécifier avant de procéder.';
$lang['uidpool_not_exist'] = 'Il semble que le uidPool que vous avez spécifié dans votre configuration (« %s »)
n\'existe pas.';
$lang['specified_uidpool'] = 'Vous avez spécifié le « auto_uid_number_mechanism » comme « search » dans votre
configuration du serveur <b>%s</b>, mais vous n\'avez pas spécifié le
« auto_uid_number_search_base ». Veuillez le spécifier avant de procéder.';
$lang['auto_uid_invalid_credential'] = 'Incapable de se connecter à <b>%s</b> avec votre crédentiel auto_uid . Veuillez vérifier votre fichier de configuration.';
$lang['bad_auto_uid_search_base'] = 'Votre configuration de phpLDAPadmin spécifie un auto_uid_search_base non valide pour le serveur %s';
$lang['auto_uid_invalid_value'] = 'Vous avez spécifié une valeur non valide pour pour auto_uid_number_mechanism ("%s")
dans votre configuration. Seul « uidpool » et « search » sont valides.
Veuillez corriger ce problème.';
$lang['error_auth_type_config'] = 'Erreur : Vous avez une erreur dans votre fichier de configuration. Les seuls trois valeurs autorisées
pour auth_type dans la section $servers sont « session », « cookie », et « config ». Vous avez saisi « %s »,
qui n\'est pas autorisée. ';
$lang['unique_attrs_invalid_credential'] = 'Impossible de se connecter à <b>%s</b> avec votre crédentiel unique_attrs. Veuillez vérifier votre fichier de configuration.';
$lang['unique_attr_failed'] = 'Votre tentative d\'ajouter <b>%s</b> (<i>%s</i>) à <br><b>%s</b><br> n\'est pas autorisée. Cet attribut/valeur appartient à une autre entrée.<p>Vous souhaitez <a href=\'%s\'>rechercher</a> cette entré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è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èque système crypt ne supporte pas le chiffrement DES étendu.';
$lang['install_not_support_blowfish'] = 'Votre bibliothèque système crypt ne supporte pas le chiffrement blowfish.';
$lang['install_not_support_md5crypt'] = 'Votre bibliothèque systè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éro : %s (%s)';
$lang['ferror_discription'] = 'Description : %s <br /><br />';
$lang['ferror_number_short'] = 'Erreur numé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é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é 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à été rapportée ici</a>.</center></td></tr>
<tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>Si elle n\'a pas été rapporté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é 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ê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é. Assume 1.';
$lang['valid_dn_line_required'] = 'Une ligne dn valide est requise.';
$lang['missing_uploaded_file'] = 'Fichier téléchargé manquant.';
$lang['no_ldif_file_specified'] = 'Aucun fichier LDIF spécifié. Veuillez essayer de nouveau.';
$lang['ldif_file_empty'] = 'Le fichier LDIF téléchargé est manquant.';
$lang['empty'] = 'vide';
$lang['file'] = 'Fichier';
$lang['number_bytes'] = '%s octets';
$lang['failed'] = 'É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é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é.';
$lang['error_performing_search'] = 'Une erreur est survenue lors de la recherche.';
$lang['showing_results_x_through_y'] = 'Affichage des résultats %s à %s.';
$lang['searching'] = 'Recherche en cours...';
$lang['size_limit_exceeded'] = 'Attention, la taille limite de recherche est dépassée.';
$lang['entry'] = 'Entrée';
$lang['ldif_export_for_dn'] = 'Exportation LDIF pour : %s';
$lang['generated_on_date'] = 'Généré par phpLDAPadmin ( http://phpldapadmin.sourceforge.net/ ) pour %s';
$lang['total_entries'] = 'Entrées totales';
$lang['dsml_export_for_dn'] = 'Exportation DSLM pour : %s';
$lang['include_system_attrs'] = 'Inclure les attributs système';
$lang['csv_spreadsheet'] = 'CSV (feuille de calcul)';
// logins
$lang['password_blank'] = 'Vous avez laissé le mot de passe vide.';
$lang['no_one_logged_in'] = 'Personne n\'est connecté 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ès <b>%s</b>';
$lang['authenticate_to_server'] = 'Authentification auprès du serveur %s';
$lang['warning_this_web_connection_is_unencrypted'] = 'Avertissement : la connexion Web n\'est pas chiffré.';
$lang['not_using_https'] = 'Vous n\'utilisez pas « https ». 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é, vous n\'êtes pas autorisé à utiliser phpLDAPadmin avec ce serveur LDAP.';
// Entry browser
$lang['entry_chooser_title'] = 'Sélecteur d\'entrées';
// Index page
$lang['need_to_configure'] = 'Vous avez besoin de configurer phpLDAPadmin. Éditez le fichier « config.php » pour le faire. un exemple de fichier de configuration est fournit dans « config.php.example »';
// Mass deletes
$lang['no_deletes_in_read_only'] = 'Supprimer n\'est pas autorisé 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é. Veuillez l\'activer dans config.php avant de procéder.';
$lang['mass_deleting'] = 'Suppression de masse';
$lang['mass_delete_progress'] = 'Progression de la suppression sur le serveur « %s »';
$lang['malformed_mass_delete_array'] = 'Tableau mass_delete malformé.';
$lang['no_entries_to_delete'] = 'Vous n\'avez sélectionné aucune entrées à supprimer.';
$lang['deleting_dn'] = 'Suppression de %s';
$lang['total_entries_failed'] = '%s sur %s entrées n\'ont pu être effacées.';
$lang['all_entries_successful'] = 'Toutes les entrées ont été supprimées avec succès.';
$lang['confirm_mass_delete'] = 'Confirmer la suppression de masse de %s entré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ée qui a des sous-entrées (cad, l\'opération de renommage n\'est pas autorisé sur des entrées non terminales)';
$lang['no_rdn_change'] = 'Vous n\'avez pas modifié le RDN';
$lang['invalid_rdn'] = 'Valeur RDN non valide';
$lang['could_not_rename'] = 'Impossible de renommer l\'entré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èle par défaut';
// template_config
$lang['user_account'] = 'Compte utilisateur (posixAccount)';
$lang['address_book_inet'] = 'Entrée de carnet d\'adresses (inetOrgPerson)';
$lang['address_book_moz'] = 'Entrée de carnet d\'adresses (mozillaOrgPerson)';
$lang['kolab_user'] = 'Entrée d\'utilisateur Kolab';
$lang['organizational_unit'] = 'Unité organisationnelle';
$lang['new_organizational_unit'] = 'Nouvelle unité 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ée DNS';
$lang['simple_sec_object'] = 'Object de sécurité 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é';
$lang['samba_domain_name'] = 'Mon nom de domaine Samba';
$lang['administrators'] = 'Administrateurs';
$lang['users'] = 'Utilisateurs';
$lang['guests'] = 'Invités';
$lang['power_users'] = 'Utilisateurs avec pouvoir';
$lang['account_ops'] = 'Opérateurs de comptes';
$lang['server_ops'] = 'Opérateurs de serveurs';
$lang['print_ops'] = 'Opérateurs d\'impression';
$lang['backup_ops'] = 'Opérateurs de sauvegarde';
$lang['replicator'] = 'Duplicateurs';
$lang['unable_smb_passwords'] = ' Impossible de cré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 ê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èle, éditez le fichier templates/creation/new_user_template.php';
$lang['t_name'] = 'Nom';
$lang['t_first_name'] = 'Prénom';
$lang['t_last_name'] = 'Nom de famille';
$lang['t_first'] = 'premier';
$lang['t_last'] = 'dernier';
$lang['t_state'] = 'É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é 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ériques pour le champ %s. Veuillez revenir et réessayer.';
$lang['t_err_bad_container'] = 'Le conteneur que vous avez spécifié (%s) n\'existe pas. Veuillez revenir et réessayer.';
$lang['t_confirm_account_creation'] = 'Confirmer la création du compte';
$lang['t_secret'] = '[secret]';
$lang['t_create_account'] = 'Cré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é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é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éation de l\'entrée :';
$lang['t_create_address'] = 'Créer l\'adresse';
// default template
$lang['t_check_pass'] = 'Vérifier l\'adresse...';
$lang['t_auto_submit'] = '(É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ée';
$lang['no_value'] = 'Aucune valeur';
$lang['compare_with'] = 'Comparer avec une autre entré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é avec';
$lang['session_timed_out_2'] = 'min. d\'inactivité. Vous avez été automatiquement déconnecté.';
$lang['log_back_in'] = 'Pour vous reconnecter, veuillez cliquer sur le lien suivant :';
$lang['session_timed_out_tree'] = '(Session expirée. Déconnexion automatique.)';
$lang['timeout_at'] = 'L\'inactivité vous déconnectera à %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à';
$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à 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à 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 è <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 è in modalità 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