From 5071f4ad75abec3609506f2363873f95ca71d111 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Thu, 8 Aug 2013 16:51:03 +0100 Subject: Revert "add html5 attributes to email fields of the config manager" This reverts commit 0d21c87f31bb8931973f720c04346bf5f8612470. --- lib/plugins/config/settings/config.class.php | 23 ----------------------- 1 file changed, 23 deletions(-) (limited to 'lib') diff --git a/lib/plugins/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php index 6d582ad30..6de560128 100644 --- a/lib/plugins/config/settings/config.class.php +++ b/lib/plugins/config/settings/config.class.php @@ -728,29 +728,6 @@ if (!class_exists('setting_email')) { $this->_local = $input; return true; } - function html(&$plugin, $echo=false) { - $value = ''; - $disable = ''; - - if ($this->is_protected()) { - $value = $this->_protected; - $disable = 'disabled="disabled"'; - } else { - if ($echo && $this->_error) { - $value = $this->_input; - } else { - $value = is_null($this->_local) ? $this->_default : $this->_local; - } - } - - $multiple = $this->_multiple ? 'multiple="multiple"' : ''; - $key = htmlspecialchars($this->_key); - $value = htmlspecialchars($value); - - $label = ''; - $input = ''; - return array($label,$input); - } } } -- cgit v1.2.3 From 5a8121ba0505fea1c4af1b9dbfcc2cc27e3c7888 Mon Sep 17 00:00:00 2001 From: Aleksandr Selivanov Date: Sun, 11 Aug 2013 19:40:56 +0200 Subject: translation update --- lib/plugins/plugin/lang/ru/lang.php | 4 ++-- lib/plugins/popularity/lang/ru/intro.txt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/plugins/plugin/lang/ru/lang.php b/lib/plugins/plugin/lang/ru/lang.php index fb53c321f..47e46c9c7 100644 --- a/lib/plugins/plugin/lang/ru/lang.php +++ b/lib/plugins/plugin/lang/ru/lang.php @@ -59,8 +59,8 @@ $lang['error_dircreate'] = 'Не могу создать временну $lang['error_decompress'] = 'Менеджеру плагинов не удалось распаковать скачанный файл. Это может быть результатом ошибки при скачивании, в этом случае вы можете попробовать снова, или же плагин упакован неизвестным архиватором, тогда вам необходимо скачать и установить плагин вручную.'; $lang['error_copy'] = 'Произошла ошибка копирования при попытке установки файлов для плагина %s: переполнение диска или неправильные права доступа. Это могло привести к частичной установке плагина и неустойчивости вашей вики.'; $lang['error_delete'] = 'Произошла ошибка при попытке удалить плагин %s. Наиболее вероятно, что нет необходимых прав доступа к файлам или директориям'; -$lang['enabled'] = 'Плагин %s включён.'; +$lang['enabled'] = 'Плагин %s включен.'; $lang['notenabled'] = 'Не удалось включить плагин %s. Проверьте системные права доступа к файлам.'; -$lang['disabled'] = 'Плагин %s отключён.'; +$lang['disabled'] = 'Плагин %s отключен.'; $lang['notdisabled'] = 'Не удалось отключить плагин %s. Проверьте системные права доступа к файлам.'; $lang['packageinstalled'] = 'Пакет (%d плагин(а): %s) успешно установлен.'; diff --git a/lib/plugins/popularity/lang/ru/intro.txt b/lib/plugins/popularity/lang/ru/intro.txt index e8118e4eb..52f5a0ae2 100644 --- a/lib/plugins/popularity/lang/ru/intro.txt +++ b/lib/plugins/popularity/lang/ru/intro.txt @@ -1,6 +1,6 @@ ====== Сбор информации о популярности ====== -Этот инструмент собирает анонимные данные о вашей вики и позволяет вам отправить их разработчикам «ДокуВики». Эти данные помогут им понять, как именно используется «ДокуВики», и удостовериться, что принимаемые проектные решения соответствуют жизненным реалиям. +Этот [[doku>popularity|инструмент]] собирает анонимные данные о вашей вики и позволяет вам отправить их разработчикам «ДокуВики». Эти данные помогут им понять, как именно используется «ДокуВики», и удостовериться, что принимаемые проектные решения соответствуют жизненным реалиям. Отправляйте данные время от времени для того, чтобы сообщать разработчикам о том, что ваша вики «подросла». Отправленные вами данные будут идентифицированы по анонимному ID. -- cgit v1.2.3 From b8e3002b530a50a44dab17129c5e750749a4de62 Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Sun, 11 Aug 2013 21:35:34 +0100 Subject: removed unintentionally added sidebar classes from detail.php --- lib/tpl/dokuwiki/detail.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/tpl/dokuwiki/detail.php b/lib/tpl/dokuwiki/detail.php index 7e46231d3..9c04ba8e7 100644 --- a/lib/tpl/dokuwiki/detail.php +++ b/lib/tpl/dokuwiki/detail.php @@ -28,8 +28,7 @@ header('X-UA-Compatible: IE=edge,chrome=1'); -
+
-- cgit v1.2.3 From 9b864f22ffb017242eb721f9b3de4fc1094ba8bc Mon Sep 17 00:00:00 2001 From: Myeongjin Date: Mon, 12 Aug 2013 16:05:58 +0200 Subject: translation update --- lib/plugins/acl/lang/ko/lang.php | 6 +++--- lib/plugins/authad/lang/ko/settings.php | 5 +++-- lib/plugins/authldap/lang/ko/settings.php | 13 +++++++------ lib/plugins/authmysql/lang/ko/settings.php | 5 +++-- lib/plugins/authpgsql/lang/ko/settings.php | 5 +++-- lib/plugins/plugin/lang/ko/lang.php | 6 +++--- lib/plugins/popularity/lang/ko/lang.php | 5 +++-- lib/plugins/revert/lang/ko/lang.php | 5 +++-- lib/plugins/usermanager/lang/ko/import.txt | 9 +++++++++ lib/plugins/usermanager/lang/ko/lang.php | 20 ++++++++++++++++++-- 10 files changed, 55 insertions(+), 24 deletions(-) create mode 100644 lib/plugins/usermanager/lang/ko/import.txt (limited to 'lib') diff --git a/lib/plugins/acl/lang/ko/lang.php b/lib/plugins/acl/lang/ko/lang.php index 7c1e9a43d..2f1ba2311 100644 --- a/lib/plugins/acl/lang/ko/lang.php +++ b/lib/plugins/acl/lang/ko/lang.php @@ -1,8 +1,8 @@ * @author Anika Henke * @author Matthias Grimm diff --git a/lib/plugins/authad/lang/ko/settings.php b/lib/plugins/authad/lang/ko/settings.php index f2bf52681..2914bf47b 100644 --- a/lib/plugins/authad/lang/ko/settings.php +++ b/lib/plugins/authad/lang/ko/settings.php @@ -1,7 +1,8 @@ */ $lang['account_suffix'] = '계정 접미어. 예를 들어 @my.domain.org'; diff --git a/lib/plugins/authldap/lang/ko/settings.php b/lib/plugins/authldap/lang/ko/settings.php index 6200a03b9..898b8f37a 100644 --- a/lib/plugins/authldap/lang/ko/settings.php +++ b/lib/plugins/authldap/lang/ko/settings.php @@ -1,7 +1,8 @@ */ $lang['server'] = 'LDAP 서버. 호스트 이름(localhost)이나 전체 자격 URL(ldap://server.tld:389) 중 하나'; @@ -20,7 +21,7 @@ $lang['userscope'] = '사용자 찾기에 대한 찾기 범위 제 $lang['groupscope'] = '그룹 찾기에 대한 찾기 범위 제한'; $lang['groupkey'] = '(표준 AD 그룹 대신) 사용자 속성에서 그룹 구성원. 예를 들어 부서나 전화에서 그룹'; $lang['debug'] = '오류에 대한 추가적인 디버그 정보를 보이기'; -$lang['deref_o_0'] = 'LDAP_DEREF_NEVER (없음)'; -$lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING (검색)'; -$lang['deref_o_2'] = 'LDAP_DEREF_FINDING (발견)'; -$lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS (항상)'; +$lang['deref_o_0'] = 'LDAP_DEREF_없음(NEVER)'; +$lang['deref_o_1'] = 'LDAP_DEREF_검색(SEARCHING)'; +$lang['deref_o_2'] = 'LDAP_DEREF_발견(FINDING)'; +$lang['deref_o_3'] = 'LDAP_DEREF_항상(ALWAYS)'; diff --git a/lib/plugins/authmysql/lang/ko/settings.php b/lib/plugins/authmysql/lang/ko/settings.php index c5518b8cc..2175c1eea 100644 --- a/lib/plugins/authmysql/lang/ko/settings.php +++ b/lib/plugins/authmysql/lang/ko/settings.php @@ -1,7 +1,8 @@ */ $lang['server'] = 'MySQL 서버'; diff --git a/lib/plugins/authpgsql/lang/ko/settings.php b/lib/plugins/authpgsql/lang/ko/settings.php index d21e81cd6..bdd8c2718 100644 --- a/lib/plugins/authpgsql/lang/ko/settings.php +++ b/lib/plugins/authpgsql/lang/ko/settings.php @@ -1,7 +1,8 @@ */ $lang['server'] = 'PostgreSQL 서버'; diff --git a/lib/plugins/plugin/lang/ko/lang.php b/lib/plugins/plugin/lang/ko/lang.php index 4e615b118..f4382dcfe 100644 --- a/lib/plugins/plugin/lang/ko/lang.php +++ b/lib/plugins/plugin/lang/ko/lang.php @@ -1,8 +1,8 @@ diff --git a/lib/plugins/popularity/lang/ko/lang.php b/lib/plugins/popularity/lang/ko/lang.php index 3463f4f8e..e9bcc7dcc 100644 --- a/lib/plugins/popularity/lang/ko/lang.php +++ b/lib/plugins/popularity/lang/ko/lang.php @@ -1,7 +1,8 @@ diff --git a/lib/plugins/revert/lang/ko/lang.php b/lib/plugins/revert/lang/ko/lang.php index f944361b8..de304da5b 100644 --- a/lib/plugins/revert/lang/ko/lang.php +++ b/lib/plugins/revert/lang/ko/lang.php @@ -1,7 +1,8 @@ diff --git a/lib/plugins/usermanager/lang/ko/import.txt b/lib/plugins/usermanager/lang/ko/import.txt new file mode 100644 index 000000000..44fe392d0 --- /dev/null +++ b/lib/plugins/usermanager/lang/ko/import.txt @@ -0,0 +1,9 @@ +===== 대량 사용자 가져오기 ===== + +적어도 열 네 개가 있는 사용자의 CSV 파일이 필요합니다. +열은 다음과 같이 포함해야 합니다: 사용자 id, 실명, 이메일 주소와 그룹. +CSV 필드는 인용 부호("")로 쉼표(,)와 구분된 문자열로 구분해야 합니다. 백슬래시(\)는 탈출에 사용할 수 있습니다. +적절한 파일의 예를 들어, 위의 "사용자 목록 내보내기"를 시도하세요. +중복된 사용자 id는 무시됩니다. + +비밀번호는 생성되고 각 성공적으로 가져온 사용자에게 이메일로 보내집니다. \ No newline at end of file diff --git a/lib/plugins/usermanager/lang/ko/lang.php b/lib/plugins/usermanager/lang/ko/lang.php index 57bfbc4a2..6d1ae86f4 100644 --- a/lib/plugins/usermanager/lang/ko/lang.php +++ b/lib/plugins/usermanager/lang/ko/lang.php @@ -1,7 +1,8 @@ @@ -30,6 +31,11 @@ $lang['search'] = '찾기'; $lang['search_prompt'] = '찾기 실행'; $lang['clear'] = '찾기 필터 초기화'; $lang['filter'] = '필터'; +$lang['export_all'] = '모든 사용자 목록 내보내기 (CSV)'; +$lang['export_filtered'] = '필터된 사용자 목록 내보내기 (CSV)'; +$lang['import'] = '새 사용자 목록 가져오기'; +$lang['line'] = '줄 번호'; +$lang['error'] = '오류 메시지'; $lang['summary'] = '찾은 사용자 %3$d 중 %1$d-%2$d을(를) 봅니다. 전체 사용자는 %4$d명입니다.'; $lang['nonefound'] = '찾은 사용자가 없습니다. 전체 사용자는 %d명입니다.'; $lang['delete_ok'] = '사용자 %d명이 삭제되었습니다'; @@ -50,3 +56,13 @@ $lang['add_ok'] = '사용자를 성공적으로 추가했습니 $lang['add_fail'] = '사용자 추가를 실패했습니다'; $lang['notify_ok'] = '알림 이메일을 성공적으로 보냈습니다'; $lang['notify_fail'] = '알림 이메일을 보낼 수 없습니다'; +$lang['import_success_count'] = '사용자 가져오기: 사용자 %d명을 찾았고, %d명을 성공적으로 가져왔습니다.'; +$lang['import_failure_count'] = '사용자 가져오기: %d명을 가져오지 못했습니다. 실패는 아래에 나타나 있습니다.'; +$lang['import_error_fields'] = '충분하지 않은 필드, %d개 찾았고, 4개가 필요합니다.'; +$lang['import_error_baduserid'] = '사용자 id 없음'; +$lang['import_error_badname'] = '잘못된 이름'; +$lang['import_error_badmail'] = '잘못된 이메일 주소'; +$lang['import_error_upload'] = '가져오기를 실패했습니다. csv 파일을 올릴 수 없거나 비어 있습니다.'; +$lang['import_error_readfail'] = '가져오기를 실패했습니다. 올린 파일을 읽을 수 없습니다.'; +$lang['import_error_create'] = '사용자를 만들 수 없습니다.'; +$lang['import_notify_fail'] = '알림 메시지를 가져온 %s (이메일: %s ) 사용자에게 보낼 수 없습니다.'; -- cgit v1.2.3 From 20cc9932c3634f2a576266e0e8f7442f9ff60dad Mon Sep 17 00:00:00 2001 From: Myeongjin Date: Tue, 13 Aug 2013 09:05:59 +0200 Subject: translation update --- lib/plugins/plugin/lang/ko/admin_plugin.txt | 2 +- lib/plugins/plugin/lang/ko/lang.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/plugins/plugin/lang/ko/admin_plugin.txt b/lib/plugins/plugin/lang/ko/admin_plugin.txt index aeef5fedf..7315025b5 100644 --- a/lib/plugins/plugin/lang/ko/admin_plugin.txt +++ b/lib/plugins/plugin/lang/ko/admin_plugin.txt @@ -1,3 +1,3 @@ ====== 플러그인 관리 ====== -이 페이지에서 Dokuwiki [[doku>ko:plugins|플러그인]]에 관련된 모든 관리 작업을 합니다. 플러그인을 다운로드하거나 설치하기 위해서는 웹 서버가 플러그인 디렉토리에 대해 쓰기 권한을 가지고 있어야 합니다. \ No newline at end of file +이 페이지에서 도쿠위키 [[doku>ko:plugins|플러그인]]에 관련된 모든 관리 작업을 합니다. 플러그인을 다운로드하거나 설치하기 위해서는 웹 서버가 플러그인 디렉터리에 대해 쓰기 권한을 가지고 있어야 합니다. \ No newline at end of file diff --git a/lib/plugins/plugin/lang/ko/lang.php b/lib/plugins/plugin/lang/ko/lang.php index f4382dcfe..9cecaa278 100644 --- a/lib/plugins/plugin/lang/ko/lang.php +++ b/lib/plugins/plugin/lang/ko/lang.php @@ -46,10 +46,10 @@ $lang['www'] = '웹:'; $lang['error'] = '알 수 없는 문제가 발생했습니다.'; $lang['error_download'] = '플러그인 파일을 다운로드 할 수 없습니다: %s'; $lang['error_badurl'] = '잘못된 URL 같습니다 - URL에서 파일 이름을 알 수 없습니다'; -$lang['error_dircreate'] = '다운로드를 받기 위한 임시 디렉토리를 만들 수 없습니다'; +$lang['error_dircreate'] = '다운로드를 받기 위한 임시 디렉터리를 만들 수 없습니다'; $lang['error_decompress'] = '플러그인 관리자가 다운로드 받은 파일을 압축을 풀 수 없습니다. 잘못 다운로드 받았을 수도 있으니 다시 한번 시도하거나 압축 포맷을 알 수 없는 경우에는 다운로드한 후 수동으로 직접 설치하세요.'; $lang['error_copy'] = '플러그인을 설치하는 동안 파일 복사하는 데 오류가 발생했습니다. %s: 디스크가 꽉 찼거나 파일 접근 권한이 잘못된 경우입니다. 플러그인 설치가 부분적으로만 이루어졌을 것입니다. 설치가 불완전합니다.'; -$lang['error_delete'] = '%s 플러그인을 삭제하는 동안 오류가 발생했습니다. 대부분의 경우 불완전한 파일이거나 디렉토리 접근 권한이 잘못된 경우입니다'; +$lang['error_delete'] = '%s 플러그인을 삭제하는 동안 오류가 발생했습니다. 대부분의 경우 불완전한 파일이거나 디렉터리 접근 권한이 잘못된 경우입니다'; $lang['enabled'] = '%s 플러그인을 활성화했습니다.'; $lang['notenabled'] = '%s 플러그인을 활성화할 수 없습니다. 파일 권한을 확인하세요.'; $lang['disabled'] = '%s 플러그인을 비활성화했습니다.'; -- cgit v1.2.3 From 440b8f2e9d79442f105af80c0302c417b6a6a95e Mon Sep 17 00:00:00 2001 From: Antoine Turmel Date: Tue, 13 Aug 2013 11:51:32 +0200 Subject: translation update --- lib/plugins/usermanager/lang/fr/lang.php | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'lib') diff --git a/lib/plugins/usermanager/lang/fr/lang.php b/lib/plugins/usermanager/lang/fr/lang.php index 2ff1bd7a0..940603ab6 100644 --- a/lib/plugins/usermanager/lang/fr/lang.php +++ b/lib/plugins/usermanager/lang/fr/lang.php @@ -21,6 +21,7 @@ * @author Olivier DUVAL * @author Anael Mobilia * @author Bruno Veilleux + * @author Antoine Turmel */ $lang['menu'] = 'Gestion des utilisateurs'; $lang['noauth'] = '(authentification de l\'utilisateur non disponible)'; @@ -43,6 +44,9 @@ $lang['search'] = 'Rechercher'; $lang['search_prompt'] = 'Effectuer la recherche'; $lang['clear'] = 'Réinitialiser la recherche'; $lang['filter'] = 'Filtre'; +$lang['import'] = 'Importer les nouveaux utilisateurs'; +$lang['line'] = 'Ligne n°'; +$lang['error'] = 'Message d\'erreur'; $lang['summary'] = 'Affichage des utilisateurs %1$d-%2$d parmi %3$d trouvés. %4$d utilisateurs au total.'; $lang['nonefound'] = 'Aucun utilisateur trouvé. %d utilisateurs au total.'; $lang['delete_ok'] = '%d utilisateurs effacés'; @@ -63,3 +67,7 @@ $lang['add_ok'] = 'Utilisateur ajouté avec succès'; $lang['add_fail'] = 'Échec de l\'ajout de l\'utilisateur'; $lang['notify_ok'] = 'Courriel de notification expédié'; $lang['notify_fail'] = 'Échec de l\'expédition du courriel de notification'; +$lang['import_error_baduserid'] = 'Identifiant de l\'utilisateur manquant'; +$lang['import_error_badname'] = 'Mauvais nom'; +$lang['import_error_badmail'] = 'Mauvaise adresse e-mail'; +$lang['import_error_create'] = 'Impossible de créer l\'utilisateur'; -- cgit v1.2.3 From 3199997341e3c54459d4ab0505d6a820536d3335 Mon Sep 17 00:00:00 2001 From: Myeongjin Date: Tue, 13 Aug 2013 18:26:22 +0200 Subject: translation update --- lib/plugins/acl/lang/ko/help.txt | 2 +- lib/plugins/popularity/lang/ko/intro.txt | 4 ++-- lib/plugins/usermanager/lang/ko/lang.php | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'lib') diff --git a/lib/plugins/acl/lang/ko/help.txt b/lib/plugins/acl/lang/ko/help.txt index ba3dd6d9f..96aa80c10 100644 --- a/lib/plugins/acl/lang/ko/help.txt +++ b/lib/plugins/acl/lang/ko/help.txt @@ -5,4 +5,4 @@ * 위쪽 입력 양식에서 선택된 사용자와 그룹의 접근 권한을 보거나 바꿀 수 있습니다. * 아래 테이블에서 현재 설정된 모든 접근 제어 규칙을 볼 수 있으며, 즉시 여러 규칙을 삭제하거나 바꿀 수 있습니다. -DokuWiki에서 접근 제어가 어떻게 동작되는지 알아보려면 [[doku>ko:acl|ACL 공식 문서]]를 읽어보시기 바랍니다. \ No newline at end of file +도쿠위키에서 접근 제어가 어떻게 동작되는지 알아보려면 [[doku>ko:acl|ACL 공식 문서]]를 읽어보시기 바랍니다. \ No newline at end of file diff --git a/lib/plugins/popularity/lang/ko/intro.txt b/lib/plugins/popularity/lang/ko/intro.txt index 0c884546a..16475ce95 100644 --- a/lib/plugins/popularity/lang/ko/intro.txt +++ b/lib/plugins/popularity/lang/ko/intro.txt @@ -1,9 +1,9 @@ ====== 인기도 조사 ====== -설치된 위키의 익명 정보를 DokuWiki 개발자에게 보냅니다. 이 [[doku>ko:popularity|도구]]는 DokuWiki가 실제 사용자에게 어떻게 사용되는지 DokuWiki 개발자에게 알려줌으로써 이 후 개발 시 참고가 됩니다. +설치된 위키의 익명 정보를 도쿠위키 개발자에게 보냅니다. 이 [[doku>ko:popularity|도구]]는 도쿠위키가 실제 사용자에게 어떻게 사용되는지 도쿠위키 개발자에게 알려줌으로써 이 후 개발 시 참고가 됩니다. 설치된 위키가 커짐에 따라서 이 과정을 반복할 필요가 있습니다. 반복된 데이터는 익명 ID로 구별되어집니다. -보내려는 데이터는 설치 DokuWiki 버전, 문서와 파일 수, 크기, 설치 플러그인, 설치 PHP 정보등을 포함하고 있습니다. +보내려는 데이터는 설치 도쿠위키 버전, 문서와 파일 수, 크기, 설치 플러그인, 설치 PHP 정보등을 포함하고 있습니다. 실제 보내질 자료는 아래와 같습니다. 정보를 보내려면 "자료 보내기" 버튼을 클릭하세요. \ No newline at end of file diff --git a/lib/plugins/usermanager/lang/ko/lang.php b/lib/plugins/usermanager/lang/ko/lang.php index 6d1ae86f4..a0db839e0 100644 --- a/lib/plugins/usermanager/lang/ko/lang.php +++ b/lib/plugins/usermanager/lang/ko/lang.php @@ -29,7 +29,7 @@ $lang['edit_prompt'] = '이 사용자 편집'; $lang['modify'] = '바뀜 저장'; $lang['search'] = '찾기'; $lang['search_prompt'] = '찾기 실행'; -$lang['clear'] = '찾기 필터 초기화'; +$lang['clear'] = '찾기 필터 재설정'; $lang['filter'] = '필터'; $lang['export_all'] = '모든 사용자 목록 내보내기 (CSV)'; $lang['export_filtered'] = '필터된 사용자 목록 내보내기 (CSV)'; -- cgit v1.2.3 From 90562fe4194ca0d5d1a5a7ca0fc0728ecd44c843 Mon Sep 17 00:00:00 2001 From: flammy Date: Wed, 14 Aug 2013 13:45:36 +0200 Subject: add pointer curser to mediafile Added the pointer icon to the media manager pop-up to show users it is clickable. --- lib/tpl/dokuwiki/css/_media_popup.css | 1 + 1 file changed, 1 insertion(+) (limited to 'lib') diff --git a/lib/tpl/dokuwiki/css/_media_popup.css b/lib/tpl/dokuwiki/css/_media_popup.css index 1fefd68b6..20d669c14 100644 --- a/lib/tpl/dokuwiki/css/_media_popup.css +++ b/lib/tpl/dokuwiki/css/_media_popup.css @@ -154,6 +154,7 @@ html.popup { #media__content a.mediafile { margin-right: 1.5em; font-weight: bold; + cursor: pointer; } [dir=rtl] #media__content a.mediafile { margin-right: 0; -- cgit v1.2.3 From ba35743ed47706bd330a9be6431a61b104b12fbb Mon Sep 17 00:00:00 2001 From: Myeongjin Date: Wed, 14 Aug 2013 14:35:58 +0200 Subject: translation update --- lib/plugins/plugin/lang/ko/lang.php | 2 +- lib/plugins/revert/lang/ko/lang.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/plugins/plugin/lang/ko/lang.php b/lib/plugins/plugin/lang/ko/lang.php index 9cecaa278..0a1c5664d 100644 --- a/lib/plugins/plugin/lang/ko/lang.php +++ b/lib/plugins/plugin/lang/ko/lang.php @@ -41,7 +41,7 @@ $lang['name'] = '이름:'; $lang['date'] = '날짜:'; $lang['type'] = '종류:'; $lang['desc'] = '설명:'; -$lang['author'] = '만든이:'; +$lang['author'] = '저자:'; $lang['www'] = '웹:'; $lang['error'] = '알 수 없는 문제가 발생했습니다.'; $lang['error_download'] = '플러그인 파일을 다운로드 할 수 없습니다: %s'; diff --git a/lib/plugins/revert/lang/ko/lang.php b/lib/plugins/revert/lang/ko/lang.php index de304da5b..299946721 100644 --- a/lib/plugins/revert/lang/ko/lang.php +++ b/lib/plugins/revert/lang/ko/lang.php @@ -14,7 +14,7 @@ $lang['menu'] = '되돌리기 관리자'; $lang['filter'] = '스팸 문서 찾기'; $lang['revert'] = '선택한 문서 되돌리기'; $lang['reverted'] = '%s 판을 %s 판으로 되돌림'; -$lang['removed'] = '%s 삭제함'; +$lang['removed'] = '%s 제거함'; $lang['revstart'] = '되돌리기 작업을 시작합니다. 오랜 시간이 걸릴 수 있습니다. 완료되기 전에 스크립트 시간 초과가 발생한다면 더 작은 작업으로 나누어서 되돌리시기 바랍니다.'; $lang['revstop'] = '되돌리기 작업이 성공적으로 끝났습니다.'; $lang['note1'] = '참고: 대소문자를 구별해 찾습니다'; -- cgit v1.2.3 From 25a7457ca09e648a58f9a5db5aa595253ce8a885 Mon Sep 17 00:00:00 2001 From: Saroj Dhakal Date: Thu, 15 Aug 2013 05:36:08 +0200 Subject: translation update --- lib/plugins/acl/lang/ne/lang.php | 5 +++-- lib/plugins/plugin/lang/ne/lang.php | 5 +++-- lib/plugins/popularity/lang/ne/lang.php | 5 +++-- lib/plugins/revert/lang/ne/lang.php | 5 +++-- lib/plugins/usermanager/lang/ne/lang.php | 5 +++-- 5 files changed, 15 insertions(+), 10 deletions(-) (limited to 'lib') diff --git a/lib/plugins/acl/lang/ne/lang.php b/lib/plugins/acl/lang/ne/lang.php index 6a29a9fa8..5e6196a30 100644 --- a/lib/plugins/acl/lang/ne/lang.php +++ b/lib/plugins/acl/lang/ne/lang.php @@ -1,7 +1,8 @@ * @author SarojKumar Dhakal * @author Saroj Dhakal diff --git a/lib/plugins/plugin/lang/ne/lang.php b/lib/plugins/plugin/lang/ne/lang.php index 27c4f3b60..94e7b8089 100644 --- a/lib/plugins/plugin/lang/ne/lang.php +++ b/lib/plugins/plugin/lang/ne/lang.php @@ -1,7 +1,8 @@ * @author SarojKumar Dhakal * @author Saroj Dhakal diff --git a/lib/plugins/popularity/lang/ne/lang.php b/lib/plugins/popularity/lang/ne/lang.php index d6aa56eb7..c0d925a46 100644 --- a/lib/plugins/popularity/lang/ne/lang.php +++ b/lib/plugins/popularity/lang/ne/lang.php @@ -1,7 +1,8 @@ * @author SarojKumar Dhakal * @author Saroj Dhakal diff --git a/lib/plugins/revert/lang/ne/lang.php b/lib/plugins/revert/lang/ne/lang.php index 4fd337532..8bd7c3327 100644 --- a/lib/plugins/revert/lang/ne/lang.php +++ b/lib/plugins/revert/lang/ne/lang.php @@ -1,7 +1,8 @@ * @author SarojKumar Dhakal * @author Saroj Dhakal diff --git a/lib/plugins/usermanager/lang/ne/lang.php b/lib/plugins/usermanager/lang/ne/lang.php index f68ed2074..9a44d19ce 100644 --- a/lib/plugins/usermanager/lang/ne/lang.php +++ b/lib/plugins/usermanager/lang/ne/lang.php @@ -1,7 +1,8 @@ * @author SarojKumar Dhakal * @author Saroj Dhakal -- cgit v1.2.3 From 198dcd63fcefa4e89209cc1a540057b0fe7138b3 Mon Sep 17 00:00:00 2001 From: christian studer Date: Thu, 15 Aug 2013 09:20:59 +0200 Subject: translation update --- lib/plugins/authldap/lang/de/settings.php | 6 ++++++ lib/plugins/usermanager/lang/de/import.txt | 8 ++++++++ lib/plugins/usermanager/lang/de/lang.php | 2 ++ 3 files changed, 16 insertions(+) create mode 100644 lib/plugins/usermanager/lang/de/import.txt (limited to 'lib') diff --git a/lib/plugins/authldap/lang/de/settings.php b/lib/plugins/authldap/lang/de/settings.php index b24c792f9..d788da876 100644 --- a/lib/plugins/authldap/lang/de/settings.php +++ b/lib/plugins/authldap/lang/de/settings.php @@ -4,6 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Matthias Schulte + * @author christian studer */ $lang['server'] = 'Adresse zum LDAP-Server. Entweder als Hostname (localhost) oder als FQDN (ldap://server.tld:389).'; $lang['port'] = 'Port des LDAP-Servers, falls kein Port angegeben wurde.'; @@ -14,9 +15,14 @@ $lang['groupfilter'] = 'LDAP-Filter, um die Benutzergruppen zu suchen. $lang['version'] = 'Zu verwendende Protokollversion von LDAP.'; $lang['starttls'] = 'Verbindung über TLS aufbauen?'; $lang['referrals'] = 'Weiterverfolgen von LDAP-Referrals (Verweise)?'; +$lang['deref'] = 'Wie sollen Aliase aufgelöst werden?'; $lang['binddn'] = 'DN eines optionalen Benutzers, wenn der anonyme Zugriff nicht ausreichend ist. Zum Beispiel: cn=admin, dc=my, dc=home.'; $lang['bindpw'] = 'Passwort des angegebenen Benutzers.'; $lang['userscope'] = 'Die Suchweite nach Benutzeraccounts.'; $lang['groupscope'] = 'Die Suchweite nach Benutzergruppen.'; $lang['groupkey'] = 'Gruppieren der Benutzeraccounts anhand eines beliebigen Benutzerattributes z. B. Telefonnummer oder Abteilung, anstelle der Standard-Gruppen).'; $lang['debug'] = 'Debug-Informationen beim Auftreten von Fehlern anzeigen?'; +$lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; +$lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; +$lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; +$lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; diff --git a/lib/plugins/usermanager/lang/de/import.txt b/lib/plugins/usermanager/lang/de/import.txt new file mode 100644 index 000000000..bf0d2922e --- /dev/null +++ b/lib/plugins/usermanager/lang/de/import.txt @@ -0,0 +1,8 @@ +===== Benutzer-Massenimport ===== + +Um mehrere Benutzer gleichzeitig zu importieren, wird eine CSV-Datei mit den folgenden vier Spalten benötigt (In dieser Reihenfolge): Benutzer-ID, Voller Name, E-Mail-Adresse und Gruppen. +Die CSV-Felder sind Kommata-separiert (,) und mit Anführungszeichen eingefasst ("). Mit Backslashes (\) können Sonderzeichen maskiert werden. +Ein Beispiel für eine gültige Datei kann mit der Benutzer-Export-Funktion oben generiert werden. +Doppelte Benutzer-IDs werden ignoriert. + +Für jeden importierten Benutzer wird ein Passwort generiert und dem Benutzer per Mail zugestellt. \ No newline at end of file diff --git a/lib/plugins/usermanager/lang/de/lang.php b/lib/plugins/usermanager/lang/de/lang.php index 68cdf359f..21be74f71 100644 --- a/lib/plugins/usermanager/lang/de/lang.php +++ b/lib/plugins/usermanager/lang/de/lang.php @@ -19,6 +19,7 @@ * @author Pierre Corell * @author Matthias Schulte * @author Sven + * @author christian studer */ $lang['menu'] = 'Benutzerverwaltung'; $lang['noauth'] = '(Authentifizierungssystem nicht verfügbar)'; @@ -75,3 +76,4 @@ $lang['import_error_badmail'] = 'Ungültige E-Mail'; $lang['import_error_upload'] = 'Import fehlgeschlagen. Die CSV-Datei konnte nicht hochgeladen werden, oder ist leer.'; $lang['import_error_readfail'] = 'Import fehlgeschlagen. Die hochgeladene Datei konnte nicht gelesen werden.'; $lang['import_error_create'] = 'User konnte nicht angelegt werden'; +$lang['import_notify_fail'] = 'Notifikation konnte nicht an den importierten Benutzer %s (E-Mail: %s) gesendet werden.'; -- cgit v1.2.3 From 4fda05043a29f942b2e14d591bd1206a941b936c Mon Sep 17 00:00:00 2001 From: Myeongjin Date: Thu, 15 Aug 2013 10:45:59 +0200 Subject: translation update --- lib/plugins/revert/lang/ko/lang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/plugins/revert/lang/ko/lang.php b/lib/plugins/revert/lang/ko/lang.php index 299946721..c350389dd 100644 --- a/lib/plugins/revert/lang/ko/lang.php +++ b/lib/plugins/revert/lang/ko/lang.php @@ -18,4 +18,4 @@ $lang['removed'] = '%s 제거함'; $lang['revstart'] = '되돌리기 작업을 시작합니다. 오랜 시간이 걸릴 수 있습니다. 완료되기 전에 스크립트 시간 초과가 발생한다면 더 작은 작업으로 나누어서 되돌리시기 바랍니다.'; $lang['revstop'] = '되돌리기 작업이 성공적으로 끝났습니다.'; $lang['note1'] = '참고: 대소문자를 구별해 찾습니다'; -$lang['note2'] = '참고: 이 문서는 %s 스팸 단어를 포함하지 않은 최근 이전 판으로 되돌립니다. '; +$lang['note2'] = '참고: 문서는 %s 스팸 단어를 포함하지 않은 최근 이전 판으로 되돌립니다. '; -- cgit v1.2.3 From c92968d1297188120d60b9de773b7c19915bc088 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Frederico=20Gon=C3=A7alves=20Guimar=C3=A3es?= Date: Thu, 15 Aug 2013 11:36:04 +0200 Subject: translation update --- lib/plugins/acl/lang/pt-br/lang.php | 4 ++-- lib/plugins/authad/lang/pt-br/settings.php | 5 +++-- lib/plugins/authldap/lang/pt-br/settings.php | 5 +++-- lib/plugins/authmysql/lang/pt-br/settings.php | 5 +++-- lib/plugins/authpgsql/lang/pt-br/settings.php | 5 +++-- lib/plugins/plugin/lang/pt-br/lang.php | 5 +++-- lib/plugins/popularity/lang/pt-br/lang.php | 5 +++-- lib/plugins/revert/lang/pt-br/lang.php | 5 +++-- lib/plugins/usermanager/lang/pt-br/lang.php | 5 +++-- 9 files changed, 26 insertions(+), 18 deletions(-) (limited to 'lib') diff --git a/lib/plugins/acl/lang/pt-br/lang.php b/lib/plugins/acl/lang/pt-br/lang.php index c49b430f8..ef0ae6c8b 100644 --- a/lib/plugins/acl/lang/pt-br/lang.php +++ b/lib/plugins/acl/lang/pt-br/lang.php @@ -1,8 +1,8 @@ * @author Alauton/Loug * @author Frederico Gonçalves Guimarães diff --git a/lib/plugins/authad/lang/pt-br/settings.php b/lib/plugins/authad/lang/pt-br/settings.php index 56f37b75f..76fb419a6 100644 --- a/lib/plugins/authad/lang/pt-br/settings.php +++ b/lib/plugins/authad/lang/pt-br/settings.php @@ -1,7 +1,8 @@ * @author Frederico Guimarães */ diff --git a/lib/plugins/authldap/lang/pt-br/settings.php b/lib/plugins/authldap/lang/pt-br/settings.php index d12a9cf36..6ad6b4862 100644 --- a/lib/plugins/authldap/lang/pt-br/settings.php +++ b/lib/plugins/authldap/lang/pt-br/settings.php @@ -1,7 +1,8 @@ * @author Frederico Guimarães */ diff --git a/lib/plugins/authmysql/lang/pt-br/settings.php b/lib/plugins/authmysql/lang/pt-br/settings.php index 8ac775b54..1181a0b27 100644 --- a/lib/plugins/authmysql/lang/pt-br/settings.php +++ b/lib/plugins/authmysql/lang/pt-br/settings.php @@ -1,7 +1,8 @@ * @author Frederico Guimarães */ diff --git a/lib/plugins/authpgsql/lang/pt-br/settings.php b/lib/plugins/authpgsql/lang/pt-br/settings.php index 5ffe13465..8d7725392 100644 --- a/lib/plugins/authpgsql/lang/pt-br/settings.php +++ b/lib/plugins/authpgsql/lang/pt-br/settings.php @@ -1,7 +1,8 @@ * @author Frederico Guimarães */ diff --git a/lib/plugins/plugin/lang/pt-br/lang.php b/lib/plugins/plugin/lang/pt-br/lang.php index 437b6ca57..c025188f3 100644 --- a/lib/plugins/plugin/lang/pt-br/lang.php +++ b/lib/plugins/plugin/lang/pt-br/lang.php @@ -1,7 +1,8 @@ * @author Felipe Castro * @author Lucien Raven diff --git a/lib/plugins/popularity/lang/pt-br/lang.php b/lib/plugins/popularity/lang/pt-br/lang.php index c2ec36145..280f072b8 100644 --- a/lib/plugins/popularity/lang/pt-br/lang.php +++ b/lib/plugins/popularity/lang/pt-br/lang.php @@ -1,7 +1,8 @@ * @author Lucien Raven * @author Enrico Nicoletto diff --git a/lib/plugins/revert/lang/pt-br/lang.php b/lib/plugins/revert/lang/pt-br/lang.php index b74e0408f..103970484 100644 --- a/lib/plugins/revert/lang/pt-br/lang.php +++ b/lib/plugins/revert/lang/pt-br/lang.php @@ -1,7 +1,8 @@ * @author Felipe Castro * @author Lucien Raven diff --git a/lib/plugins/usermanager/lang/pt-br/lang.php b/lib/plugins/usermanager/lang/pt-br/lang.php index 637be8860..8beae392f 100644 --- a/lib/plugins/usermanager/lang/pt-br/lang.php +++ b/lib/plugins/usermanager/lang/pt-br/lang.php @@ -1,7 +1,8 @@ * @author Felipe Castro * @author Lucien Raven -- cgit v1.2.3 From ab090718d52f2360b769f039b1bf5f496f23097f Mon Sep 17 00:00:00 2001 From: Felipe Castro Date: Thu, 15 Aug 2013 13:56:24 +0200 Subject: translation update --- lib/plugins/acl/lang/eo/lang.php | 5 +++-- lib/plugins/authad/lang/eo/settings.php | 5 +++-- lib/plugins/authldap/lang/eo/settings.php | 11 +++++++++-- lib/plugins/authmysql/lang/eo/settings.php | 5 +++-- lib/plugins/authpgsql/lang/eo/settings.php | 5 +++-- lib/plugins/plugin/lang/eo/lang.php | 5 +++-- lib/plugins/popularity/lang/eo/lang.php | 5 +++-- lib/plugins/revert/lang/eo/lang.php | 5 +++-- lib/plugins/usermanager/lang/eo/import.txt | 9 +++++++++ lib/plugins/usermanager/lang/eo/lang.php | 21 +++++++++++++++++++-- 10 files changed, 58 insertions(+), 18 deletions(-) create mode 100644 lib/plugins/usermanager/lang/eo/import.txt (limited to 'lib') diff --git a/lib/plugins/acl/lang/eo/lang.php b/lib/plugins/acl/lang/eo/lang.php index de75c2dd7..a5f607341 100644 --- a/lib/plugins/acl/lang/eo/lang.php +++ b/lib/plugins/acl/lang/eo/lang.php @@ -1,7 +1,8 @@ * @author Felipo Kastro * @author Felipe Castro diff --git a/lib/plugins/authad/lang/eo/settings.php b/lib/plugins/authad/lang/eo/settings.php index 8bd34b439..ee672ecd3 100644 --- a/lib/plugins/authad/lang/eo/settings.php +++ b/lib/plugins/authad/lang/eo/settings.php @@ -1,7 +1,8 @@ @mia.domajno.lando'; $lang['base_dn'] = 'Via baza DN, ekz. DC=mia,DC=domajno,DC=lando'; diff --git a/lib/plugins/authldap/lang/eo/settings.php b/lib/plugins/authldap/lang/eo/settings.php index 2863a1125..07b46c84a 100644 --- a/lib/plugins/authldap/lang/eo/settings.php +++ b/lib/plugins/authldap/lang/eo/settings.php @@ -1,7 +1,9 @@ */ $lang['server'] = 'Via LDAP-servilo. Aŭ servila nomo (localhost) aŭ plene detala URL (ldap://servilo.lando:389)'; $lang['port'] = 'LDAP-servila pordego, se vi supre ne indikis la plenan URL'; @@ -12,9 +14,14 @@ $lang['groupfilter'] = 'LDAP-filtrilo por serĉi grupojn, ekz. ( $lang['version'] = 'La uzenda protokolversio. Eble necesas indiki 3'; $lang['starttls'] = 'Ĉu uzi TLS-konektojn?'; $lang['referrals'] = 'Ĉu sekvi referencojn?'; +$lang['deref'] = 'Kiel dereferencigi kromnomojn?'; $lang['binddn'] = 'DN de opcie bindita uzanto, se anonima bindado ne sufiĉas, ekz. cn=admin, dc=mia, dc=hejmo'; $lang['bindpw'] = 'Pasvorto de tiu uzanto'; $lang['userscope'] = 'Limigi serĉospacon de uzantaj serĉoj'; $lang['groupscope'] = 'Limigi serĉospacon por grupaj serĉoj'; $lang['groupkey'] = 'Grupa membreco de iu uzanta atributo (anstataŭ standardaj AD-grupoj), ekz. grupo de departemento aŭ telefonnumero'; $lang['debug'] = 'Ĉu montri aldonajn erarinformojn?'; +$lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; +$lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; +$lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; +$lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; diff --git a/lib/plugins/authmysql/lang/eo/settings.php b/lib/plugins/authmysql/lang/eo/settings.php index 907c761f8..92e973396 100644 --- a/lib/plugins/authmysql/lang/eo/settings.php +++ b/lib/plugins/authmysql/lang/eo/settings.php @@ -1,7 +1,8 @@ * @author Felipe Castro * @author Felipe Castro diff --git a/lib/plugins/popularity/lang/eo/lang.php b/lib/plugins/popularity/lang/eo/lang.php index c2bca23b1..5e67e5bdb 100644 --- a/lib/plugins/popularity/lang/eo/lang.php +++ b/lib/plugins/popularity/lang/eo/lang.php @@ -1,7 +1,8 @@ * @author Felipe Castro * @author Robert Bogenschneider diff --git a/lib/plugins/revert/lang/eo/lang.php b/lib/plugins/revert/lang/eo/lang.php index 05eec26a8..2d0b0f267 100644 --- a/lib/plugins/revert/lang/eo/lang.php +++ b/lib/plugins/revert/lang/eo/lang.php @@ -1,7 +1,8 @@ * @author Felipe Castro * @author Felipe Castro diff --git a/lib/plugins/usermanager/lang/eo/import.txt b/lib/plugins/usermanager/lang/eo/import.txt new file mode 100644 index 000000000..61c2c74de --- /dev/null +++ b/lib/plugins/usermanager/lang/eo/import.txt @@ -0,0 +1,9 @@ +===== Amasa importo de uzantoj ===== + +Tio ĉi postulas CSV-dosiero de uzantoj kun minimume kvar kolumnoj. +La kolumnoj devas enhavi, laŭorde: uzant-id, kompleta nomo, retadreso kaj grupoj. +La CSV-kampoj devos esti apartitaj per komoj (,) kaj ĉenoj devas esti limigitaj per citiloj (""). Retroklino (\) povas esti uzata por eskapo. +Por ekzemplo de taŭga dosiero, provu la funkcion "Eksporti uzantojn" supre. +Duobligitaj uzant-id estos preteratentataj. + +Pasvorto estos generata kaj retsendata al ĉiu sukecse importita uzanto. \ No newline at end of file diff --git a/lib/plugins/usermanager/lang/eo/lang.php b/lib/plugins/usermanager/lang/eo/lang.php index 75782fe23..4c4174339 100644 --- a/lib/plugins/usermanager/lang/eo/lang.php +++ b/lib/plugins/usermanager/lang/eo/lang.php @@ -1,7 +1,8 @@ * @author Felipe Castro * @author Felipe Castro @@ -10,6 +11,7 @@ * @author Erik Pedersen * @author Erik Pedersen * @author Robert Bogenschneider + * @author Felipe Castro */ $lang['menu'] = 'Administrado de uzantoj'; $lang['noauth'] = '(identiĝo de uzantoj ne disponeblas)'; @@ -32,6 +34,11 @@ $lang['search'] = 'Serĉi'; $lang['search_prompt'] = 'Fari serĉon'; $lang['clear'] = 'Refari serĉan filtron'; $lang['filter'] = 'Filtro'; +$lang['export_all'] = 'Eksporti ĉiujn uzantojn (CSV)'; +$lang['export_filtered'] = 'Eksporti filtritan uzant-liston (CSV)'; +$lang['import'] = 'Importi novajn uzantojn'; +$lang['line'] = 'Lini-num.'; +$lang['error'] = 'Erar-mesaĝo'; $lang['summary'] = 'Montriĝas uzantoj %1$d-%2$d el %3$d trovitaj. %4$d uzantoj entute.'; $lang['nonefound'] = 'Neniuj uzantoj troviĝas. %d uzantoj entute.'; $lang['delete_ok'] = '%d uzantoj forigiĝis'; @@ -52,3 +59,13 @@ $lang['add_ok'] = 'La uzanto sukcese aldoniĝis'; $lang['add_fail'] = 'Ne eblis aldoni uzanton'; $lang['notify_ok'] = 'Avizanta mesaĝo sendiĝis'; $lang['notify_fail'] = 'La avizanta mesaĝo ne povis esti sendita'; +$lang['import_success_count'] = 'Uzant-importo: %d uzantoj trovataj, %d sukcese importitaj.'; +$lang['import_failure_count'] = 'Uzant-importo: %d fiaskis. Fiaskoj estas sube listitaj.'; +$lang['import_error_fields'] = 'Nesufiĉe da kampoj, ni trovis %d, necesas 4.'; +$lang['import_error_baduserid'] = 'Mankas uzant-id'; +$lang['import_error_badname'] = 'Malĝusta nomo'; +$lang['import_error_badmail'] = 'Malĝusta retadreso'; +$lang['import_error_upload'] = 'Importo fiaskis. La csv-dosiero ne povis esti alŝutata aŭ ĝi estas malplena.'; +$lang['import_error_readfail'] = 'Importo fiaskis. Ne eblas legi alŝutitan dosieron.'; +$lang['import_error_create'] = 'Ne eblas krei la uzanton'; +$lang['import_notify_fail'] = 'Averta mesaĝo ne povis esti sendata al la importita uzanto %s, kun retdreso %s.'; -- cgit v1.2.3 From f0ee5aeb8e64276eee9beab496d611a28bb0a013 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbyn=C4=9Bk=20K=C5=99ivka?= Date: Thu, 15 Aug 2013 22:20:59 +0200 Subject: translation update --- lib/plugins/acl/lang/cs/lang.php | 4 ++-- lib/plugins/authad/lang/cs/settings.php | 5 +++-- lib/plugins/authldap/lang/cs/settings.php | 5 +++-- lib/plugins/authmysql/lang/cs/settings.php | 5 +++-- lib/plugins/authpgsql/lang/cs/settings.php | 5 +++-- lib/plugins/plugin/lang/cs/lang.php | 5 +++-- lib/plugins/popularity/lang/cs/lang.php | 5 +++-- lib/plugins/revert/lang/cs/lang.php | 6 +++--- lib/plugins/usermanager/lang/cs/import.txt | 9 +++++++++ lib/plugins/usermanager/lang/cs/lang.php | 23 ++++++++++++++++++++--- 10 files changed, 52 insertions(+), 20 deletions(-) create mode 100644 lib/plugins/usermanager/lang/cs/import.txt (limited to 'lib') diff --git a/lib/plugins/acl/lang/cs/lang.php b/lib/plugins/acl/lang/cs/lang.php index a4e59287a..8031612f7 100644 --- a/lib/plugins/acl/lang/cs/lang.php +++ b/lib/plugins/acl/lang/cs/lang.php @@ -1,8 +1,8 @@ * @author Zbynek Krivka * @author tomas@valenta.cz diff --git a/lib/plugins/authad/lang/cs/settings.php b/lib/plugins/authad/lang/cs/settings.php index 71f83afda..28222d332 100644 --- a/lib/plugins/authad/lang/cs/settings.php +++ b/lib/plugins/authad/lang/cs/settings.php @@ -1,7 +1,8 @@ @moje.domena.org'; diff --git a/lib/plugins/authldap/lang/cs/settings.php b/lib/plugins/authldap/lang/cs/settings.php index 783d2a3ae..b2b5b59dc 100644 --- a/lib/plugins/authldap/lang/cs/settings.php +++ b/lib/plugins/authldap/lang/cs/settings.php @@ -1,7 +1,8 @@ localhost) nebo plně kvalifikovaný popis URL (ldap://server.tld:389)'; diff --git a/lib/plugins/authmysql/lang/cs/settings.php b/lib/plugins/authmysql/lang/cs/settings.php index 7fedefbbb..350c3236b 100644 --- a/lib/plugins/authmysql/lang/cs/settings.php +++ b/lib/plugins/authmysql/lang/cs/settings.php @@ -1,7 +1,8 @@ * @author Zbynek Krivka * @author Bohumir Zamecnik @@ -14,6 +14,7 @@ * @author Bohumir Zamecnik * @author Jakub A. Těšínský (j@kub.cz) * @author mkucera66@seznam.cz + * @author Zbyněk Křivka */ $lang['menu'] = 'Správa pluginů'; $lang['download'] = 'Stáhnout a instalovat plugin'; diff --git a/lib/plugins/popularity/lang/cs/lang.php b/lib/plugins/popularity/lang/cs/lang.php index ee090a131..4ab5916db 100644 --- a/lib/plugins/popularity/lang/cs/lang.php +++ b/lib/plugins/popularity/lang/cs/lang.php @@ -1,7 +1,8 @@ * @author tomas@valenta.cz * @author Marek Sacha diff --git a/lib/plugins/revert/lang/cs/lang.php b/lib/plugins/revert/lang/cs/lang.php index eef3295ba..d918e2e69 100644 --- a/lib/plugins/revert/lang/cs/lang.php +++ b/lib/plugins/revert/lang/cs/lang.php @@ -1,9 +1,8 @@ * @author Zbynek Krivka * @author tomas@valenta.cz @@ -14,6 +13,7 @@ * @author Bohumir Zamecnik * @author Jakub A. Těšínský (j@kub.cz) * @author mkucera66@seznam.cz + * @author Zbyněk Křivka */ $lang['menu'] = 'Obnova zaspamovaných stránek'; $lang['filter'] = 'Hledat zaspamované stránky'; diff --git a/lib/plugins/usermanager/lang/cs/import.txt b/lib/plugins/usermanager/lang/cs/import.txt new file mode 100644 index 000000000..c264ae185 --- /dev/null +++ b/lib/plugins/usermanager/lang/cs/import.txt @@ -0,0 +1,9 @@ +===== Hromadný import uživatelů ===== + +Vyžaduje CSV soubor s uživateli obsahující alespoň 4 sloupce. +Sloupce obsahují (v daném pořadí): user-id, celé jméno, emailovou adresu, seznam skupin. +Položky CSV musí být odděleny čárkou (,) a řetězce umístěny v uvozovkách (""). Zpětné lomítko (\) lze použít pro escapování. +Pro získání příkladu takového souboru využijte funkci "Exportovat uživatele" výše. +Záznamy s duplicitním user-id budou ignorovány. + +Hesla budou vygenerována a zaslána e-mailem všem úspěšně importovaným uživatelům. \ No newline at end of file diff --git a/lib/plugins/usermanager/lang/cs/lang.php b/lib/plugins/usermanager/lang/cs/lang.php index 9fc3a5e75..b2c736e09 100644 --- a/lib/plugins/usermanager/lang/cs/lang.php +++ b/lib/plugins/usermanager/lang/cs/lang.php @@ -1,7 +1,8 @@ * @author Zbynek Krivka * @author Bohumir Zamecnik @@ -13,6 +14,7 @@ * @author Bohumir Zamecnik * @author Jakub A. Těšínský (j@kub.cz) * @author mkucera66@seznam.cz + * @author Zbyněk Křivka */ $lang['menu'] = 'Správa uživatelů'; $lang['noauth'] = '(autentizace uživatelů není k dispozici)'; @@ -35,6 +37,11 @@ $lang['search'] = 'Hledání'; $lang['search_prompt'] = 'Prohledat'; $lang['clear'] = 'Zrušit vyhledávací filtr'; $lang['filter'] = 'Filtr'; +$lang['export_all'] = 'Exportovat všechny uživatele (CSV)'; +$lang['export_filtered'] = 'Exportovat filtrovaný seznam uživatelů (CSV)'; +$lang['import'] = 'Importovat nové uživatele'; +$lang['line'] = 'Řádek č.'; +$lang['error'] = 'Chybová zpráva'; $lang['summary'] = 'Zobrazuji uživatele %1$d-%2$d z %3$d nalezených. Celkem %4$d uživatelů.'; $lang['nonefound'] = 'Žadný uživatel nenalezen. Celkem %d uživatelů.'; $lang['delete_ok'] = '%d uživatelů smazáno'; @@ -50,8 +57,18 @@ $lang['edit_usermissing'] = 'Vybraný uživatel nebyl nalezen, zadané uži $lang['user_notify'] = 'Upozornit uživatele'; $lang['note_notify'] = 'Maily s upozorněním se budou posílat pouze, když uživatel dostává nové heslo.'; $lang['note_group'] = 'Noví uživatelé budou přidáváni do této výchozí skupiny (%s), pokud pro ně není uvedena žádná skupina.'; -$lang['note_pass'] = 'Heslo bude automaticky vygenerováno pokud je pole ponecháno prázdné a je zapnutá notifikace uživatele.'; +$lang['note_pass'] = 'Heslo bude automaticky vygenerováno, pokud je pole ponecháno prázdné a je zapnuto upozornění uživatele.'; $lang['add_ok'] = 'Uživatel úspěšně vytvořen'; $lang['add_fail'] = 'Vytvoření uživatele selhalo'; $lang['notify_ok'] = 'Odeslán mail s upozorněním'; $lang['notify_fail'] = 'Mail s upozorněním nebylo možno odeslat'; +$lang['import_success_count'] = 'Import uživatelů: nalezeno %s uživatelů, %d úspěšně importováno.'; +$lang['import_failure_count'] = 'Import uživatelů: %d selhalo. Seznam chybných je níže.'; +$lang['import_error_fields'] = 'Nedostatek položek, nalezena/y %d, požadovány 4.'; +$lang['import_error_baduserid'] = 'Chybí User-id'; +$lang['import_error_badname'] = 'Špatné jméno'; +$lang['import_error_badmail'] = 'Špatná emailová adresa'; +$lang['import_error_upload'] = 'Import selhal. CSV soubor nemohl být nahrán nebo je prázdný.'; +$lang['import_error_readfail'] = 'Import selhal. Nelze číst nahraný soubor.'; +$lang['import_error_create'] = 'Nelze vytvořit uživatele'; +$lang['import_notify_fail'] = 'Importovanému uživateli %s s emailem %s nemohlo být zasláno upozornění.'; -- cgit v1.2.3 From 68389009e322909ba9f85af41320c4886ca27309 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Neves?= Date: Fri, 16 Aug 2013 04:11:01 +0200 Subject: translation update --- lib/plugins/acl/lang/pt/lang.php | 4 ++-- lib/plugins/authad/lang/pt/settings.php | 12 ++++++++++++ lib/plugins/authldap/lang/pt/settings.php | 18 ++++++++++++++++++ lib/plugins/authmysql/lang/pt/settings.php | 23 +++++++++++++++++++++++ lib/plugins/authpgsql/lang/pt/settings.php | 22 ++++++++++++++++++++++ lib/plugins/plugin/lang/pt/lang.php | 5 +++-- lib/plugins/popularity/lang/pt/lang.php | 5 +++-- lib/plugins/revert/lang/pt/lang.php | 5 +++-- lib/plugins/usermanager/lang/pt/import.txt | 9 +++++++++ lib/plugins/usermanager/lang/pt/lang.php | 17 +++++++++++++++-- 10 files changed, 110 insertions(+), 10 deletions(-) create mode 100644 lib/plugins/authad/lang/pt/settings.php create mode 100644 lib/plugins/authldap/lang/pt/settings.php create mode 100644 lib/plugins/authmysql/lang/pt/settings.php create mode 100644 lib/plugins/authpgsql/lang/pt/settings.php create mode 100644 lib/plugins/usermanager/lang/pt/import.txt (limited to 'lib') diff --git a/lib/plugins/acl/lang/pt/lang.php b/lib/plugins/acl/lang/pt/lang.php index d90bab624..4c2114d67 100644 --- a/lib/plugins/acl/lang/pt/lang.php +++ b/lib/plugins/acl/lang/pt/lang.php @@ -1,8 +1,8 @@ * @author José Monteiro * @author Enrico Nicoletto diff --git a/lib/plugins/authad/lang/pt/settings.php b/lib/plugins/authad/lang/pt/settings.php new file mode 100644 index 000000000..45eff5e96 --- /dev/null +++ b/lib/plugins/authad/lang/pt/settings.php @@ -0,0 +1,12 @@ + + */ +$lang['admin_password'] = 'A senha para o utilizador acima.'; +$lang['sso'] = 'Deve ser usado o Single-Sign-On via Kerberos ou NTLM?'; +$lang['use_ssl'] = 'Usar ligação SSL? Se usada, não ative TLS abaixo.'; +$lang['use_tls'] = 'Usar ligação TLS? Se usada, não ative SSL abaixo.'; +$lang['expirywarn'] = 'Número de dias de avanço para avisar o utilizador da expiração da senha. 0 para desativar.'; diff --git a/lib/plugins/authldap/lang/pt/settings.php b/lib/plugins/authldap/lang/pt/settings.php new file mode 100644 index 000000000..a2ccf87ad --- /dev/null +++ b/lib/plugins/authldap/lang/pt/settings.php @@ -0,0 +1,18 @@ + + */ +$lang['server'] = 'O seu servidor de LDAP. Ou hostname (localhost) ou URL qualificado completo (ldap://servidor.tld:389)'; +$lang['port'] = 'Porta de servidor de LDAP se o URL completo não foi fornecido acima'; +$lang['usertree'] = 'Onde encontrar as contas de utilizador. Por exemplo ou=Pessoas, dc=servidor, dc=tld'; +$lang['grouptree'] = 'Onde encontrar os grupos de utilizadores. Por exemplo code>ou=Grupo, dc=servidor, dc=tld'; +$lang['userfilter'] = 'Filtro LDAP para procurar por contas de utilizador. Por exemplo (&(uid=%{user})(objectClass=posixAccount))'; +$lang['groupfilter'] = 'Filtro LDAP para procurar por grupos. Por exemplo (&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))'; +$lang['version'] = 'A versão do protocolo a utilizar. Pode precisar de alterar isto para 3'; +$lang['starttls'] = 'Usar ligações TLS?'; +$lang['referrals'] = 'Referrals devem ser seguidos?'; +$lang['bindpw'] = 'Senha do utilizador acima'; +$lang['debug'] = 'Mostrar informação adicional de debug aquando de erros'; diff --git a/lib/plugins/authmysql/lang/pt/settings.php b/lib/plugins/authmysql/lang/pt/settings.php new file mode 100644 index 000000000..0c7f303e7 --- /dev/null +++ b/lib/plugins/authmysql/lang/pt/settings.php @@ -0,0 +1,23 @@ + + */ +$lang['server'] = 'O seu servidor de MySQL'; +$lang['user'] = 'Utilizador MySQL'; +$lang['password'] = 'Senha para o utilizador acima'; +$lang['database'] = 'Base de dados a usar'; +$lang['debug'] = 'Mostrar informação adicional de debug'; +$lang['FilterLogin'] = 'Cláusula SQL para filtrar utilizadores por tipo de login'; +$lang['FilterName'] = 'Cláusula SQL para filtrar utilizadores por nome completo'; +$lang['FilterEmail'] = 'Cláusula SQL para filtrar utilizadores por endereço de email'; +$lang['FilterGroup'] = 'Cláusula SQL para filtrar utilizadores por pertença a grupo'; +$lang['SortOrder'] = 'Cláusula SQL para ordenar utilizadores'; +$lang['UpdateLogin'] = 'Cláusula de atualização para atualizar o nome de login do utilizador'; +$lang['UpdatePass'] = 'Cláusula de atualização para atualizar a senha do utilizador'; +$lang['UpdateEmail'] = 'Cláusula de atualização para atualizar o endereço de email do utilizador'; +$lang['UpdateName'] = 'Cláusula de atualização para atualizar o nome completo do utilizador'; +$lang['debug_o_0'] = 'nenhum'; +$lang['debug_o_1'] = 'só aquando de erros'; diff --git a/lib/plugins/authpgsql/lang/pt/settings.php b/lib/plugins/authpgsql/lang/pt/settings.php new file mode 100644 index 000000000..b33b81141 --- /dev/null +++ b/lib/plugins/authpgsql/lang/pt/settings.php @@ -0,0 +1,22 @@ + + */ +$lang['server'] = 'O seu servidor PostgreSQL'; +$lang['port'] = 'A porta do seu servidor PostgreSQL'; +$lang['user'] = 'Nome de utilizador PostgreSQL'; +$lang['password'] = 'Senha do utilizador acima'; +$lang['database'] = 'Base de dados a usar'; +$lang['debug'] = 'Mostrar informação adicional de debug'; +$lang['FilterLogin'] = 'Cláusula SQL para filtrar utilizadores por nome de login'; +$lang['FilterName'] = 'Cláusula SQL para filtrar utilizadores por nome completo'; +$lang['FilterEmail'] = 'Cláusula SQL para filtrar utilizadores por endereço de email'; +$lang['FilterGroup'] = 'Cláusula SQL para filtrar utilizadores por pertença a grupo'; +$lang['SortOrder'] = 'Cláusula SQL para ordenar utilizadores'; +$lang['UpdateLogin'] = 'Cláusula de atualização para atualizar o nome de login do utilizador'; +$lang['UpdatePass'] = 'Cláusula de atualização para atualizar a senha do utilizador'; +$lang['UpdateEmail'] = 'Cláusula de atualização para atualizar o endereço de email do utilizador'; +$lang['UpdateName'] = 'Cláusula de atualização para atualizar o nome completo do utilizador'; diff --git a/lib/plugins/plugin/lang/pt/lang.php b/lib/plugins/plugin/lang/pt/lang.php index dccd4f738..aa6b2e2ec 100644 --- a/lib/plugins/plugin/lang/pt/lang.php +++ b/lib/plugins/plugin/lang/pt/lang.php @@ -1,7 +1,8 @@ * @author Enrico Nicoletto * @author Fil diff --git a/lib/plugins/popularity/lang/pt/lang.php b/lib/plugins/popularity/lang/pt/lang.php index ac27dc8c0..e30b9d62b 100644 --- a/lib/plugins/popularity/lang/pt/lang.php +++ b/lib/plugins/popularity/lang/pt/lang.php @@ -1,7 +1,8 @@ * @author Fil * @author André Neves diff --git a/lib/plugins/revert/lang/pt/lang.php b/lib/plugins/revert/lang/pt/lang.php index 3b2850f41..f87f77db7 100644 --- a/lib/plugins/revert/lang/pt/lang.php +++ b/lib/plugins/revert/lang/pt/lang.php @@ -1,7 +1,8 @@ * @author Enrico Nicoletto * @author Fil diff --git a/lib/plugins/usermanager/lang/pt/import.txt b/lib/plugins/usermanager/lang/pt/import.txt new file mode 100644 index 000000000..3a604030c --- /dev/null +++ b/lib/plugins/usermanager/lang/pt/import.txt @@ -0,0 +1,9 @@ +===== Importação de Utilizadores em Massa ===== + +Requer um ficheiro CSV de utilizadores com pelo menos quatro colunas. +As colunas têm de conter, em ordem: id de utilizador, nome completo, endereço de email e grupos. +Os campos CSV devem ser separados por vírgulas (,) e as strings delimitadas por aspas (""). A contra-barra (\) pode ser usada para escapar. +Para um exemplo de um ficheiro adequado, tente a função "Exportar Utilizadores" acima. +Ids de utilizador duplicados serão ignorados. + +Uma senha será gerada e enviada por email a cada utilizador importado com sucesso. \ No newline at end of file diff --git a/lib/plugins/usermanager/lang/pt/lang.php b/lib/plugins/usermanager/lang/pt/lang.php index 6d0d85e38..b59649aa1 100644 --- a/lib/plugins/usermanager/lang/pt/lang.php +++ b/lib/plugins/usermanager/lang/pt/lang.php @@ -1,7 +1,8 @@ * @author Enrico Nicoletto * @author Fil @@ -29,6 +30,10 @@ $lang['search'] = 'Pesquisar'; $lang['search_prompt'] = 'Pesquisar'; $lang['clear'] = 'Limpar Filtro de Pesquisa'; $lang['filter'] = 'Filtro'; +$lang['export_all'] = 'Exportar Todos os Utilizadores (CSV)'; +$lang['export_filtered'] = 'Exportar a lista de utilizadores filtrada (CSV)'; +$lang['import'] = 'Importar Novos Utilizadores'; +$lang['error'] = 'Mensagem de erro'; $lang['summary'] = 'Apresentar utilizadores %1$d-%2$d de %3$d encontrados. %4$d inscritos.'; $lang['nonefound'] = 'Nenhum utilizador encontrado. %d inscritos.'; $lang['delete_ok'] = '%d utilizadores removidos'; @@ -49,3 +54,11 @@ $lang['add_ok'] = 'Utilizador adicionado.'; $lang['add_fail'] = 'Utilizador não adicionado.'; $lang['notify_ok'] = 'Mensagem de notificação enviada.'; $lang['notify_fail'] = 'Não foi possível enviar mensagem de notificação'; +$lang['import_success_count'] = 'Importar Utilizadores: %d utiliyadores encontrados, %d importados com sucesso.'; +$lang['import_failure_count'] = 'Importar Utilizadores: %d falharam. As falhas estão listadas abaixo.'; +$lang['import_error_fields'] = 'Campos insuficientes, encontrados %d mas requeridos 4.'; +$lang['import_error_baduserid'] = 'Falta id de utilizador'; +$lang['import_error_upload'] = 'Falhou a importação. O ficheiro csv não pôde ser importado ou está vazio.'; +$lang['import_error_readfail'] = 'Falhou a importação. Não foi possível ler o ficheiro submetido.'; +$lang['import_error_create'] = 'Não foi possível criar o utilizador.'; +$lang['import_notify_fail'] = 'A mensagem de notificação não pôde ser enviada para o utilizador importado, %s com email %s.'; -- cgit v1.2.3 From 02266f1f9c29ea0aba4384bbdf1271570c8847f5 Mon Sep 17 00:00:00 2001 From: Myeongjin Date: Sat, 17 Aug 2013 14:41:28 +0200 Subject: translation update --- lib/plugins/plugin/lang/ko/admin_plugin.txt | 2 +- lib/plugins/plugin/lang/ko/lang.php | 6 +++--- lib/plugins/revert/lang/ko/lang.php | 4 ++-- lib/plugins/usermanager/lang/ko/lang.php | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) (limited to 'lib') diff --git a/lib/plugins/plugin/lang/ko/admin_plugin.txt b/lib/plugins/plugin/lang/ko/admin_plugin.txt index 7315025b5..9390712dd 100644 --- a/lib/plugins/plugin/lang/ko/admin_plugin.txt +++ b/lib/plugins/plugin/lang/ko/admin_plugin.txt @@ -1,3 +1,3 @@ ====== 플러그인 관리 ====== -이 페이지에서 도쿠위키 [[doku>ko:plugins|플러그인]]에 관련된 모든 관리 작업을 합니다. 플러그인을 다운로드하거나 설치하기 위해서는 웹 서버가 플러그인 디렉터리에 대해 쓰기 권한을 가지고 있어야 합니다. \ No newline at end of file +이 페이지에서 도쿠위키 [[doku>ko:plugins|플러그인]]에 관련된 모든 관리를 할 수 있습니다. 플러그인을 다운로드하고 설치하기 위해서는 웹 서버가 플러그인 폴더에 대해 쓰기 권한이 있어야 합니다. \ No newline at end of file diff --git a/lib/plugins/plugin/lang/ko/lang.php b/lib/plugins/plugin/lang/ko/lang.php index 0a1c5664d..87eb65705 100644 --- a/lib/plugins/plugin/lang/ko/lang.php +++ b/lib/plugins/plugin/lang/ko/lang.php @@ -11,8 +11,8 @@ * @author Myeongjin */ $lang['menu'] = '플러그인 관리'; -$lang['download'] = '새 플러그인 다운로드 및 설치'; -$lang['manage'] = '이미 설치한 플러그인'; +$lang['download'] = '새 플러그인을 다운로드하고 설치'; +$lang['manage'] = '설치된 플러그인'; $lang['btn_info'] = '정보'; $lang['btn_update'] = '업데이트'; $lang['btn_delete'] = '삭제'; @@ -21,7 +21,7 @@ $lang['btn_download'] = '다운로드'; $lang['btn_enable'] = '저장'; $lang['url'] = 'URL'; $lang['installed'] = '설치됨:'; -$lang['lastupdate'] = '가장 나중에 업데이트됨:'; +$lang['lastupdate'] = '마지막 업데이트:'; $lang['source'] = '원본:'; $lang['unknown'] = '알 수 없음'; $lang['updating'] = '업데이트 중 ...'; diff --git a/lib/plugins/revert/lang/ko/lang.php b/lib/plugins/revert/lang/ko/lang.php index c350389dd..e63706960 100644 --- a/lib/plugins/revert/lang/ko/lang.php +++ b/lib/plugins/revert/lang/ko/lang.php @@ -14,8 +14,8 @@ $lang['menu'] = '되돌리기 관리자'; $lang['filter'] = '스팸 문서 찾기'; $lang['revert'] = '선택한 문서 되돌리기'; $lang['reverted'] = '%s 판을 %s 판으로 되돌림'; -$lang['removed'] = '%s 제거함'; +$lang['removed'] = '%s 제거됨'; $lang['revstart'] = '되돌리기 작업을 시작합니다. 오랜 시간이 걸릴 수 있습니다. 완료되기 전에 스크립트 시간 초과가 발생한다면 더 작은 작업으로 나누어서 되돌리시기 바랍니다.'; $lang['revstop'] = '되돌리기 작업이 성공적으로 끝났습니다.'; $lang['note1'] = '참고: 대소문자를 구별해 찾습니다'; -$lang['note2'] = '참고: 문서는 %s 스팸 단어를 포함하지 않은 최근 이전 판으로 되돌립니다. '; +$lang['note2'] = '참고: 문서는 %s 스팸 단어를 포함하지 않은 최신 판으로 되돌립니다. '; diff --git a/lib/plugins/usermanager/lang/ko/lang.php b/lib/plugins/usermanager/lang/ko/lang.php index a0db839e0..d39f9eacf 100644 --- a/lib/plugins/usermanager/lang/ko/lang.php +++ b/lib/plugins/usermanager/lang/ko/lang.php @@ -39,7 +39,7 @@ $lang['error'] = '오류 메시지'; $lang['summary'] = '찾은 사용자 %3$d 중 %1$d-%2$d을(를) 봅니다. 전체 사용자는 %4$d명입니다.'; $lang['nonefound'] = '찾은 사용자가 없습니다. 전체 사용자는 %d명입니다.'; $lang['delete_ok'] = '사용자 %d명이 삭제되었습니다'; -$lang['delete_fail'] = '사용자 %d명의 삭제가 실패했습니다.'; +$lang['delete_fail'] = '사용자 %d명을 삭제하는 데 실패했습니다.'; $lang['update_ok'] = '사용자 정보를 성공적으로 바꾸었습니다'; $lang['update_fail'] = '사용자 정보를 바꾸는 데 실패했습니다'; $lang['update_exists'] = '사용자 이름을 바꾸는 데 실패했습니다. 사용자 이름(%s)이 이미 존재합니다. (다른 항목의 바뀜은 적용됩니다.)'; @@ -58,7 +58,7 @@ $lang['notify_ok'] = '알림 이메일을 성공적으로 보냈습 $lang['notify_fail'] = '알림 이메일을 보낼 수 없습니다'; $lang['import_success_count'] = '사용자 가져오기: 사용자 %d명을 찾았고, %d명을 성공적으로 가져왔습니다.'; $lang['import_failure_count'] = '사용자 가져오기: %d명을 가져오지 못했습니다. 실패는 아래에 나타나 있습니다.'; -$lang['import_error_fields'] = '충분하지 않은 필드, %d개 찾았고, 4개가 필요합니다.'; +$lang['import_error_fields'] = '충분하지 않은 필드로, %d개를 찾았고, 4개가 필요합니다.'; $lang['import_error_baduserid'] = '사용자 id 없음'; $lang['import_error_badname'] = '잘못된 이름'; $lang['import_error_badmail'] = '잘못된 이메일 주소'; -- cgit v1.2.3 From a08059e44c9e3e1da368455ccf56a2ad361613b3 Mon Sep 17 00:00:00 2001 From: Myeongjin Date: Mon, 19 Aug 2013 02:55:58 +0200 Subject: translation update --- lib/plugins/authldap/lang/ko/settings.php | 8 ++++---- lib/plugins/plugin/lang/ko/lang.php | 2 +- lib/plugins/usermanager/lang/ko/lang.php | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) (limited to 'lib') diff --git a/lib/plugins/authldap/lang/ko/settings.php b/lib/plugins/authldap/lang/ko/settings.php index 898b8f37a..5c5341b31 100644 --- a/lib/plugins/authldap/lang/ko/settings.php +++ b/lib/plugins/authldap/lang/ko/settings.php @@ -21,7 +21,7 @@ $lang['userscope'] = '사용자 찾기에 대한 찾기 범위 제 $lang['groupscope'] = '그룹 찾기에 대한 찾기 범위 제한'; $lang['groupkey'] = '(표준 AD 그룹 대신) 사용자 속성에서 그룹 구성원. 예를 들어 부서나 전화에서 그룹'; $lang['debug'] = '오류에 대한 추가적인 디버그 정보를 보이기'; -$lang['deref_o_0'] = 'LDAP_DEREF_없음(NEVER)'; -$lang['deref_o_1'] = 'LDAP_DEREF_검색(SEARCHING)'; -$lang['deref_o_2'] = 'LDAP_DEREF_발견(FINDING)'; -$lang['deref_o_3'] = 'LDAP_DEREF_항상(ALWAYS)'; +$lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; +$lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; +$lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; +$lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; diff --git a/lib/plugins/plugin/lang/ko/lang.php b/lib/plugins/plugin/lang/ko/lang.php index 87eb65705..0caf93fcf 100644 --- a/lib/plugins/plugin/lang/ko/lang.php +++ b/lib/plugins/plugin/lang/ko/lang.php @@ -21,7 +21,7 @@ $lang['btn_download'] = '다운로드'; $lang['btn_enable'] = '저장'; $lang['url'] = 'URL'; $lang['installed'] = '설치됨:'; -$lang['lastupdate'] = '마지막 업데이트:'; +$lang['lastupdate'] = '마지막으로 업데이트됨:'; $lang['source'] = '원본:'; $lang['unknown'] = '알 수 없음'; $lang['updating'] = '업데이트 중 ...'; diff --git a/lib/plugins/usermanager/lang/ko/lang.php b/lib/plugins/usermanager/lang/ko/lang.php index d39f9eacf..f2116f688 100644 --- a/lib/plugins/usermanager/lang/ko/lang.php +++ b/lib/plugins/usermanager/lang/ko/lang.php @@ -13,10 +13,10 @@ $lang['menu'] = '사용자 관리자'; $lang['noauth'] = '(사용자 인증이 불가능합니다)'; $lang['nosupport'] = '(사용자 관리가 지원되지 않습니다)'; -$lang['badauth'] = '인증 메카니즘이 잘못되었습니다'; +$lang['badauth'] = '인증 메커니즘이 잘못되었습니다'; $lang['user_id'] = '사용자'; $lang['user_pass'] = '비밀번호'; -$lang['user_name'] = '실제 이름'; +$lang['user_name'] = '실명'; $lang['user_mail'] = '이메일 '; $lang['user_groups'] = '그룹'; $lang['field'] = '항목'; -- cgit v1.2.3 From 9fb553c08c19ca0ce9d63813af849413410a0b65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dennis=20Pl=C3=B6ger?= Date: Mon, 19 Aug 2013 13:35:59 +0200 Subject: translation update --- lib/plugins/acl/lang/de-informal/lang.php | 5 +++-- lib/plugins/authad/lang/de-informal/settings.php | 5 +++-- lib/plugins/authldap/lang/de-informal/settings.php | 4 ++-- lib/plugins/authmysql/lang/de-informal/settings.php | 4 ++-- lib/plugins/authpgsql/lang/de-informal/settings.php | 4 ++-- lib/plugins/plugin/lang/de-informal/lang.php | 5 +++-- lib/plugins/popularity/lang/de-informal/lang.php | 5 +++-- lib/plugins/revert/lang/de-informal/lang.php | 5 +++-- lib/plugins/usermanager/lang/de-informal/import.txt | 7 +++++++ lib/plugins/usermanager/lang/de-informal/lang.php | 21 +++++++++++++++++++-- 10 files changed, 47 insertions(+), 18 deletions(-) create mode 100644 lib/plugins/usermanager/lang/de-informal/import.txt (limited to 'lib') diff --git a/lib/plugins/acl/lang/de-informal/lang.php b/lib/plugins/acl/lang/de-informal/lang.php index 3487f4257..35df13dc0 100644 --- a/lib/plugins/acl/lang/de-informal/lang.php +++ b/lib/plugins/acl/lang/de-informal/lang.php @@ -1,7 +1,8 @@ * @author Juergen Schwarzer * @author Marcel Metz diff --git a/lib/plugins/authad/lang/de-informal/settings.php b/lib/plugins/authad/lang/de-informal/settings.php index a458617b8..782cf7c0f 100644 --- a/lib/plugins/authad/lang/de-informal/settings.php +++ b/lib/plugins/authad/lang/de-informal/settings.php @@ -1,7 +1,8 @@ * @author Matthias Schulte * @author Volker Bödker diff --git a/lib/plugins/authldap/lang/de-informal/settings.php b/lib/plugins/authldap/lang/de-informal/settings.php index 15e4d8129..bdac7dd68 100644 --- a/lib/plugins/authldap/lang/de-informal/settings.php +++ b/lib/plugins/authldap/lang/de-informal/settings.php @@ -1,8 +1,8 @@ * @author Volker Bödker */ diff --git a/lib/plugins/authmysql/lang/de-informal/settings.php b/lib/plugins/authmysql/lang/de-informal/settings.php index 540979cf4..d8d2778b9 100644 --- a/lib/plugins/authmysql/lang/de-informal/settings.php +++ b/lib/plugins/authmysql/lang/de-informal/settings.php @@ -1,8 +1,8 @@ * @author Volker Bödker */ diff --git a/lib/plugins/authpgsql/lang/de-informal/settings.php b/lib/plugins/authpgsql/lang/de-informal/settings.php index d864d14d4..3e3a0dc4e 100644 --- a/lib/plugins/authpgsql/lang/de-informal/settings.php +++ b/lib/plugins/authpgsql/lang/de-informal/settings.php @@ -1,8 +1,8 @@ * @author Volker Bödker */ diff --git a/lib/plugins/plugin/lang/de-informal/lang.php b/lib/plugins/plugin/lang/de-informal/lang.php index 5d1649434..8f1cea5e5 100644 --- a/lib/plugins/plugin/lang/de-informal/lang.php +++ b/lib/plugins/plugin/lang/de-informal/lang.php @@ -1,7 +1,8 @@ * @author Juergen Schwarzer * @author Marcel Metz diff --git a/lib/plugins/popularity/lang/de-informal/lang.php b/lib/plugins/popularity/lang/de-informal/lang.php index 0abf90b0b..69efa7470 100644 --- a/lib/plugins/popularity/lang/de-informal/lang.php +++ b/lib/plugins/popularity/lang/de-informal/lang.php @@ -1,7 +1,8 @@ * @author Juergen Schwarzer * @author Marcel Metz diff --git a/lib/plugins/revert/lang/de-informal/lang.php b/lib/plugins/revert/lang/de-informal/lang.php index 7ca141e3c..93a932945 100644 --- a/lib/plugins/revert/lang/de-informal/lang.php +++ b/lib/plugins/revert/lang/de-informal/lang.php @@ -1,7 +1,8 @@ * @author Juergen Schwarzer * @author Marcel Metz diff --git a/lib/plugins/usermanager/lang/de-informal/import.txt b/lib/plugins/usermanager/lang/de-informal/import.txt new file mode 100644 index 000000000..6fd6b8d8c --- /dev/null +++ b/lib/plugins/usermanager/lang/de-informal/import.txt @@ -0,0 +1,7 @@ +===== Massenimport von Benutzern ===== + +Dieser Import benötigt eine CSV-Datei mit mindestens vier Spalten. Diese Spalten müssen die folgenden Daten (in dieser Reihenfolge) enthalten: Benutzername, Name, E-Mailadresse und Gruppenzugehörigkeit. +Die CSV-Felder müssen durch ein Komma (,) getrennt sein. Die Zeichenfolgen müssen von Anführungszeichen ("") umgeben sein. Ein Backslash (\) kann zum Maskieren benutzt werden. +Für eine Beispieldatei kannst Du die "Benutzer exportieren"-Funktion oben benutzen. Doppelte Benutzername werden ignoriert. + +Ein Passwort wird generiert und den einzelnen, erfolgreich importierten Benutzern zugemailt. \ No newline at end of file diff --git a/lib/plugins/usermanager/lang/de-informal/lang.php b/lib/plugins/usermanager/lang/de-informal/lang.php index 791cfa74f..bea4159d0 100644 --- a/lib/plugins/usermanager/lang/de-informal/lang.php +++ b/lib/plugins/usermanager/lang/de-informal/lang.php @@ -1,7 +1,8 @@ * @author Juergen Schwarzer * @author Marcel Metz @@ -10,6 +11,7 @@ * @author Pierre Corell * @author Frank Loizzi * @author Volker Bödker + * @author Dennis Plöger */ $lang['menu'] = 'Benutzerverwaltung'; $lang['noauth'] = '(Benutzeranmeldung ist nicht verfügbar)'; @@ -32,6 +34,11 @@ $lang['search'] = 'Suchen'; $lang['search_prompt'] = 'Suche ausführen'; $lang['clear'] = 'Suchfilter zurücksetzen'; $lang['filter'] = 'Filter'; +$lang['export_all'] = 'Alle Benutzer exportieren (CSV)'; +$lang['export_filtered'] = 'Gefilterte Benutzerliste exportieren (CSV)'; +$lang['import'] = 'Neue Benutzer importieren'; +$lang['line'] = 'Zeile Nr.'; +$lang['error'] = 'Fehlermeldung'; $lang['summary'] = 'Zeige Benutzer %1$d-%2$d von %3$d gefundenen. %4$d Benutzer insgesamt.'; $lang['nonefound'] = 'Keinen Benutzer gefunden. Insgesamt %d Benutzer.'; $lang['delete_ok'] = '%d Benutzer wurden gelöscht'; @@ -52,3 +59,13 @@ $lang['add_ok'] = 'Benutzer erfolgreich hinzugefügt'; $lang['add_fail'] = 'Hinzufügen des Benutzers fehlgeschlagen'; $lang['notify_ok'] = 'Benachrichtigungsmail wurde versendet'; $lang['notify_fail'] = 'Benachrichtigungsemail konnte nicht gesendet werden'; +$lang['import_success_count'] = 'Benutzerimport: %d Benutzer gefunden, %d erfolgreich importiert.'; +$lang['import_failure_count'] = 'Benutzerimport: %d Benutzerimporte fehlgeschalten. Alle Fehler werden unten angezeigt.'; +$lang['import_error_fields'] = 'Falsche Anzahl Felder. Gefunden: %d. Benötigt: 4.'; +$lang['import_error_baduserid'] = 'Benutzername fehlt'; +$lang['import_error_badname'] = 'Ungültiger Name'; +$lang['import_error_badmail'] = 'Ungültige E-Mailadresse'; +$lang['import_error_upload'] = 'Import fehlgeschlagen. Die CSV-Datei konnte nicht hochgeladen werden oder ist leer.'; +$lang['import_error_readfail'] = 'Import fehlgeschlagen. Konnte die hochgeladene Datei nicht lesen.'; +$lang['import_error_create'] = 'Konnte den Benutzer nicht erzeugen'; +$lang['import_notify_fail'] = 'Benachrichtigung konnte an Benutzer %s (%s) nicht geschickt werden.'; -- cgit v1.2.3 From bcc165558b4d58baab4ccc85d9066f0c4ba7de2a Mon Sep 17 00:00:00 2001 From: Aleksandr Selivanov Date: Tue, 20 Aug 2013 23:05:58 +0200 Subject: translation update --- lib/plugins/acl/lang/ru/lang.php | 2 +- lib/plugins/authad/lang/ru/settings.php | 7 +++++-- lib/plugins/authldap/lang/ru/settings.php | 7 +++++-- lib/plugins/authpgsql/lang/ru/settings.php | 8 ++++++-- lib/plugins/plugin/lang/ru/lang.php | 2 +- lib/plugins/popularity/lang/ru/submitted.txt | 3 ++- lib/plugins/revert/lang/ru/lang.php | 2 +- lib/plugins/usermanager/lang/ru/lang.php | 4 ++-- 8 files changed, 23 insertions(+), 12 deletions(-) (limited to 'lib') diff --git a/lib/plugins/acl/lang/ru/lang.php b/lib/plugins/acl/lang/ru/lang.php index f042ab724..ff4740676 100644 --- a/lib/plugins/acl/lang/ru/lang.php +++ b/lib/plugins/acl/lang/ru/lang.php @@ -28,7 +28,7 @@ $lang['btn_select'] = 'Выбрать'; $lang['p_user_id'] = 'Сейчас пользователь %s имеет следующие права на доступ к странице %s: %s.'; $lang['p_user_ns'] = 'Сейчас пользователь %s имеет следующие права на доступ к пространству имён %s: %s.'; $lang['p_group_id'] = 'Сейчас члены группы %s имеют следующие права на доступ к странице %s: %s.'; -$lang['p_group_ns'] = 'Сейчас члены группы %s cимеют следующие права на доступ к пространству имён %s: %s.'; +$lang['p_group_ns'] = 'Сейчас члены группы %s имеют следующие права на доступ к пространству имён %s: %s.'; $lang['p_choose_id'] = 'Пожалуйста, введите пользователя или группу в форме выше, чтобы просмотреть или отредактировать права на доступ к странице %s.'; $lang['p_choose_ns'] = 'Пожалуйста, введите пользователя или группу в форме выше, чтобы просмотреть или отредактировать права на доступ к пространству имён %s.'; $lang['p_inherited'] = 'Замечание: эти права доступа не были заданы явно, а были унаследованы от других групп или пространств имён более высокого порядка.'; diff --git a/lib/plugins/authad/lang/ru/settings.php b/lib/plugins/authad/lang/ru/settings.php index 4c394080e..f849c201a 100644 --- a/lib/plugins/authad/lang/ru/settings.php +++ b/lib/plugins/authad/lang/ru/settings.php @@ -1,6 +1,9 @@ */ +$lang['admin_password'] = 'Пароль для указанного пользователя.'; diff --git a/lib/plugins/authldap/lang/ru/settings.php b/lib/plugins/authldap/lang/ru/settings.php index 4c394080e..70ad7b6f4 100644 --- a/lib/plugins/authldap/lang/ru/settings.php +++ b/lib/plugins/authldap/lang/ru/settings.php @@ -1,6 +1,9 @@ */ +$lang['bindpw'] = 'Пароль для указанного пользователя.'; diff --git a/lib/plugins/authpgsql/lang/ru/settings.php b/lib/plugins/authpgsql/lang/ru/settings.php index 4c394080e..f5d0a77ee 100644 --- a/lib/plugins/authpgsql/lang/ru/settings.php +++ b/lib/plugins/authpgsql/lang/ru/settings.php @@ -1,6 +1,10 @@ */ +$lang['server'] = 'Ваш PostgreSQL-сервер'; +$lang['password'] = 'Пароль для указанного пользователя.'; diff --git a/lib/plugins/plugin/lang/ru/lang.php b/lib/plugins/plugin/lang/ru/lang.php index 47e46c9c7..6af100bd3 100644 --- a/lib/plugins/plugin/lang/ru/lang.php +++ b/lib/plugins/plugin/lang/ru/lang.php @@ -51,7 +51,7 @@ $lang['date'] = 'Дата:'; $lang['type'] = 'Тип:'; $lang['desc'] = 'Описание:'; $lang['author'] = 'Автор:'; -$lang['www'] = 'Странца:'; +$lang['www'] = 'Страница:'; $lang['error'] = 'Произошла неизвестная ошибка.'; $lang['error_download'] = 'Не могу скачать файл плагина: %s'; $lang['error_badurl'] = 'Возможно неправильный адрес — не могу определить имя файла из адреса'; diff --git a/lib/plugins/popularity/lang/ru/submitted.txt b/lib/plugins/popularity/lang/ru/submitted.txt index a239943a4..845410171 100644 --- a/lib/plugins/popularity/lang/ru/submitted.txt +++ b/lib/plugins/popularity/lang/ru/submitted.txt @@ -1,2 +1,3 @@ -====== Общественная обратная связь ====== +====== Сбор информации о популярности ====== + Данные были успешно отправлены. \ No newline at end of file diff --git a/lib/plugins/revert/lang/ru/lang.php b/lib/plugins/revert/lang/ru/lang.php index defd86de0..73d69b33e 100644 --- a/lib/plugins/revert/lang/ru/lang.php +++ b/lib/plugins/revert/lang/ru/lang.php @@ -22,7 +22,7 @@ $lang['menu'] = 'Менеджер откаток'; $lang['filter'] = 'Поиск спам-страниц'; $lang['revert'] = 'Откатить изменения для выбранных страниц'; -$lang['reverted'] = '%s откачена к версии %s'; +$lang['reverted'] = '%s возвращена к версии %s'; $lang['removed'] = '%s удалена'; $lang['revstart'] = 'Начат процесс откатки. Он может занять много времени. Если скрипт не успевает завершить работу и выдаёт ошибку, необходимо произвести откатку более маленькими частями.'; $lang['revstop'] = 'Процесс откатки успешно завершён.'; diff --git a/lib/plugins/usermanager/lang/ru/lang.php b/lib/plugins/usermanager/lang/ru/lang.php index f2029e58b..3102ac32a 100644 --- a/lib/plugins/usermanager/lang/ru/lang.php +++ b/lib/plugins/usermanager/lang/ru/lang.php @@ -44,9 +44,9 @@ $lang['filter'] = 'Фильтр'; $lang['export_all'] = 'Экспорт всех пользователей (CSV)'; $lang['export_filtered'] = 'Экспорт пользователей с фильтрацией списка (CSV)'; $lang['import'] = 'Импорт новых пользователей'; -$lang['line'] = 'Строка №.'; +$lang['line'] = 'Строка №'; $lang['error'] = 'Ошибка'; -$lang['summary'] = 'Показаны пользователи %1$d-%2$d из %3$d найденных. Всего пользователей: %4$d.'; +$lang['summary'] = 'Показаны пользователи %1$d–%2$d из %3$d найденных. Всего пользователей: %4$d.'; $lang['nonefound'] = 'Не найдено ни одного пользователя. Всего пользователей: %d.'; $lang['delete_ok'] = 'Удалено пользователей: %d'; $lang['delete_fail'] = 'Не удалось удалить %d.'; -- cgit v1.2.3 From b8983d3a45d16afc81d527fc2616f8c43bbf2c87 Mon Sep 17 00:00:00 2001 From: Matt Perry Date: Tue, 20 Aug 2013 21:18:30 -0700 Subject: Fix CodeSniffer violations Remove whitespace from end of lines to reduce the number of CodeSniffer violations. --- lib/exe/detail.php | 4 ++-- lib/plugins/acl/remote.php | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'lib') diff --git a/lib/exe/detail.php b/lib/exe/detail.php index 7008b126f..7aae08f76 100644 --- a/lib/exe/detail.php +++ b/lib/exe/detail.php @@ -11,8 +11,8 @@ $ID = cleanID($INPUT->str('id')); $INFO = array_merge(pageinfo(),mediainfo()); trigger_event('DETAIL_STARTED', $tmp=array()); -//close session -session_write_close(); +//close session +session_write_close(); if($conf['allowdebug'] && $INPUT->has('debug')){ print '
';
diff --git a/lib/plugins/acl/remote.php b/lib/plugins/acl/remote.php
index 8f6dfbcd9..6d5201cf6 100644
--- a/lib/plugins/acl/remote.php
+++ b/lib/plugins/acl/remote.php
@@ -16,14 +16,14 @@ class remote_plugin_acl extends DokuWiki_Remote_Plugin {
             ),
         );
     }
-	
+
     function addAcl($scope, $user, $level){
-        $apa = plugin_load('admin', 'acl'); 
+        $apa = plugin_load('admin', 'acl');
         return $apa->_acl_add($scope, $user, $level);
     }
-	
+
     function delAcl($scope, $user){
-        $apa = plugin_load('admin', 'acl'); 
+        $apa = plugin_load('admin', 'acl');
         return $apa->_acl_del($scope, $user);
     }
 }
-- 
cgit v1.2.3


From 6c954d25e8444996a43caaca6b96040f02628dea Mon Sep 17 00:00:00 2001
From: Myeongjin 
Date: Wed, 21 Aug 2013 09:50:58 +0200
Subject: translation update

---
 lib/plugins/acl/lang/ko/help.txt         | 2 +-
 lib/plugins/plugin/lang/ko/lang.php      | 2 +-
 lib/plugins/popularity/lang/ko/intro.txt | 2 +-
 lib/plugins/popularity/lang/ko/lang.php  | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

(limited to 'lib')

diff --git a/lib/plugins/acl/lang/ko/help.txt b/lib/plugins/acl/lang/ko/help.txt
index 96aa80c10..9baeedbb9 100644
--- a/lib/plugins/acl/lang/ko/help.txt
+++ b/lib/plugins/acl/lang/ko/help.txt
@@ -5,4 +5,4 @@
 * 위쪽 입력 양식에서 선택된 사용자와 그룹의 접근 권한을 보거나 바꿀 수 있습니다.
 * 아래 테이블에서 현재 설정된 모든 접근 제어 규칙을 볼 수 있으며, 즉시 여러 규칙을 삭제하거나 바꿀 수 있습니다.
 
-도쿠위키에서 접근 제어가 어떻게 동작되는지 알아보려면  [[doku>ko:acl|ACL 공식 문서]]를 읽어보시기 바랍니다.
\ No newline at end of file
+도쿠위키에서 접근 제어가 어떻게 동작되는지 알아보려면 [[doku>ko:acl|ACL 공식 문서]]를 읽어보시기 바랍니다.
\ No newline at end of file
diff --git a/lib/plugins/plugin/lang/ko/lang.php b/lib/plugins/plugin/lang/ko/lang.php
index 0caf93fcf..6ef9cd69a 100644
--- a/lib/plugins/plugin/lang/ko/lang.php
+++ b/lib/plugins/plugin/lang/ko/lang.php
@@ -47,7 +47,7 @@ $lang['error']                 = '알 수 없는 문제가 발생했습니다.';
 $lang['error_download']        = '플러그인 파일을 다운로드 할 수 없습니다: %s';
 $lang['error_badurl']          = '잘못된 URL 같습니다 - URL에서 파일 이름을 알 수 없습니다';
 $lang['error_dircreate']       = '다운로드를 받기 위한 임시 디렉터리를 만들 수 없습니다';
-$lang['error_decompress']      = '플러그인 관리자가 다운로드 받은 파일을 압축을 풀 수 없습니다. 잘못 다운로드 받았을 수도 있으니 다시 한번 시도하거나 압축 포맷을 알 수 없는 경우에는 다운로드한 후 수동으로 직접 설치하세요.';
+$lang['error_decompress']      = '플러그인 관리자가 다운로드 받은 파일을 압축을 풀 수 없습니다. 잘못 다운로드 받았을 수도 있으니 다시 한 번 시도하거나 압축 포맷을 알 수 없는 경우에는 다운로드한 후 수동으로 직접 설치하세요.';
 $lang['error_copy']            = '플러그인을 설치하는 동안 파일 복사하는 데 오류가 발생했습니다. %s: 디스크가 꽉 찼거나 파일 접근 권한이 잘못된 경우입니다. 플러그인 설치가 부분적으로만 이루어졌을 것입니다. 설치가 불완전합니다.';
 $lang['error_delete']          = '%s 플러그인을 삭제하는 동안 오류가 발생했습니다. 대부분의 경우 불완전한 파일이거나 디렉터리 접근 권한이 잘못된 경우입니다';
 $lang['enabled']               = '%s 플러그인을 활성화했습니다.';
diff --git a/lib/plugins/popularity/lang/ko/intro.txt b/lib/plugins/popularity/lang/ko/intro.txt
index 16475ce95..bc9bb9dd0 100644
--- a/lib/plugins/popularity/lang/ko/intro.txt
+++ b/lib/plugins/popularity/lang/ko/intro.txt
@@ -1,6 +1,6 @@
 ====== 인기도 조사 ======
 
-설치된 위키의 익명 정보를 도쿠위키 개발자에게 보냅니다. 이 [[doku>ko:popularity|도구]]는 도쿠위키가 실제 사용자에게 어떻게 사용되는지  도쿠위키 개발자에게 알려줌으로써 이 후 개발 시 참고가 됩니다.
+설치된 위키의 익명 정보를 도쿠위키 개발자에게 보냅니다. 이 [[doku>ko:popularity|도구]]는 도쿠위키가 실제 사용자에게 어떻게 사용되는지 도쿠위키 개발자에게 알려줌으로써 이 후 개발 시 참고가 됩니다.
 
 설치된 위키가 커짐에 따라서 이 과정을 반복할 필요가 있습니다. 반복된 데이터는 익명 ID로 구별되어집니다.
 
diff --git a/lib/plugins/popularity/lang/ko/lang.php b/lib/plugins/popularity/lang/ko/lang.php
index e9bcc7dcc..f52e0007a 100644
--- a/lib/plugins/popularity/lang/ko/lang.php
+++ b/lib/plugins/popularity/lang/ko/lang.php
@@ -12,7 +12,7 @@
  */
 $lang['name']                  = '인기도 조사 (불러오는 데 시간이 걸릴 수 있습니다)';
 $lang['submit']                = '자료 보내기';
-$lang['autosubmit']            = '자료를 자동으로 매달 한번씩 보내기';
+$lang['autosubmit']            = '자료를 자동으로 한 달에 한 번씩 보내기';
 $lang['submissionFailed']      = '다음과 같은 이유로 자료 보내기에 실패했습니다:';
 $lang['submitDirectly']        = '아래의 양식에 맞춰 수동으로 작성된 자료를 보낼 수 있습니다.';
 $lang['autosubmitError']       = '다음과 같은 이유로 자동 자료 보내기에 실패했습니다:';
-- 
cgit v1.2.3


From 7ef8e99fe605c5da36ab6b5d317b22fcd17f665b Mon Sep 17 00:00:00 2001
From: Matt Perry 
Date: Thu, 22 Aug 2013 01:01:41 -0700
Subject: Fix CodeSniffer violations

Change indentation to ensure code confirms to CodeSniffer rules.
---
 lib/plugins/action.php                       |   10 +-
 lib/plugins/config/admin.php                 |  488 ++++-----
 lib/plugins/config/settings/config.class.php | 1478 +++++++++++++-------------
 lib/plugins/config/settings/extra.class.php  |  270 ++---
 lib/plugins/safefnrecode/action.php          |    2 +-
 lib/plugins/syntax.php                       |   48 +-
 lib/plugins/usermanager/admin.php            |  286 ++---
 7 files changed, 1291 insertions(+), 1291 deletions(-)

(limited to 'lib')

diff --git a/lib/plugins/action.php b/lib/plugins/action.php
index a2ad969d7..04b4f07a6 100644
--- a/lib/plugins/action.php
+++ b/lib/plugins/action.php
@@ -14,10 +14,10 @@ if(!defined('DOKU_INC')) die();
  */
 class DokuWiki_Action_Plugin extends DokuWiki_Plugin {
 
-     /**
-      * Registers a callback function for a given event
-      */
-      function register(Doku_Event_Handler $controller) {
+    /**
+     * Registers a callback function for a given event
+     */
+    function register(Doku_Event_Handler $controller) {
         trigger_error('register() not implemented in '.get_class($this), E_USER_WARNING);
-      }
+    }
 }
diff --git a/lib/plugins/config/admin.php b/lib/plugins/config/admin.php
index 29529760c..404560548 100644
--- a/lib/plugins/config/admin.php
+++ b/lib/plugins/config/admin.php
@@ -38,168 +38,168 @@ class admin_plugin_config extends DokuWiki_Admin_Plugin {
      * handle user request
      */
     function handle() {
-      global $ID, $INPUT;
+        global $ID, $INPUT;
 
-      if (!$this->_restore_session()) return $this->_close_session();
-      if ($INPUT->int('save') != 1) return $this->_close_session();
-      if (!checkSecurityToken()) return $this->_close_session();
+        if (!$this->_restore_session()) return $this->_close_session();
+        if ($INPUT->int('save') != 1) return $this->_close_session();
+        if (!checkSecurityToken()) return $this->_close_session();
 
-      if (is_null($this->_config)) { $this->_config = new configuration($this->_file); }
+        if (is_null($this->_config)) { $this->_config = new configuration($this->_file); }
 
-      // don't go any further if the configuration is locked
-      if ($this->_config->_locked) return $this->_close_session();
+        // don't go any further if the configuration is locked
+        if ($this->_config->_locked) return $this->_close_session();
 
-      $this->_input = $INPUT->arr('config');
+        $this->_input = $INPUT->arr('config');
 
-      while (list($key) = each($this->_config->setting)) {
-        $input = isset($this->_input[$key]) ? $this->_input[$key] : NULL;
-        if ($this->_config->setting[$key]->update($input)) {
-          $this->_changed = true;
+        while (list($key) = each($this->_config->setting)) {
+            $input = isset($this->_input[$key]) ? $this->_input[$key] : NULL;
+            if ($this->_config->setting[$key]->update($input)) {
+                $this->_changed = true;
+            }
+            if ($this->_config->setting[$key]->error()) $this->_error = true;
         }
-        if ($this->_config->setting[$key]->error()) $this->_error = true;
-      }
 
-      if ($this->_changed  && !$this->_error) {
-        $this->_config->save_settings($this->getPluginName());
+        if ($this->_changed  && !$this->_error) {
+            $this->_config->save_settings($this->getPluginName());
 
-        // save state & force a page reload to get the new settings to take effect
-        $_SESSION['PLUGIN_CONFIG'] = array('state' => 'updated', 'time' => time());
-        $this->_close_session();
-        send_redirect(wl($ID,array('do'=>'admin','page'=>'config'),true,'&'));
-        exit();
-      } elseif(!$this->_error) {
-          $this->_config->touch_settings(); // just touch to refresh cache
-      }
+            // save state & force a page reload to get the new settings to take effect
+            $_SESSION['PLUGIN_CONFIG'] = array('state' => 'updated', 'time' => time());
+            $this->_close_session();
+            send_redirect(wl($ID,array('do'=>'admin','page'=>'config'),true,'&'));
+            exit();
+        } elseif(!$this->_error) {
+            $this->_config->touch_settings(); // just touch to refresh cache
+        }
 
-      $this->_close_session();
+        $this->_close_session();
     }
 
     /**
      * output appropriate html
      */
     function html() {
-      $allow_debug = $GLOBALS['conf']['allowdebug']; // avoid global $conf; here.
-      global $lang;
-      global $ID;
-
-      if (is_null($this->_config)) { $this->_config = new configuration($this->_file); }
-      $this->setupLocale(true);
-
-      print $this->locale_xhtml('intro');
-
-      ptln('
'); - - if ($this->_config->locked) - ptln('
'.$this->getLang('locked').'
'); - elseif ($this->_error) - ptln('
'.$this->getLang('error').'
'); - elseif ($this->_changed) - ptln('
'.$this->getLang('updated').'
'); - - // POST to script() instead of wl($ID) so config manager still works if - // rewrite config is broken. Add $ID as hidden field to remember - // current ID in most cases. - ptln('
'); - ptln('
'); - formSecurityToken(); - $this->_print_h1('dokuwiki_settings', $this->getLang('_header_dokuwiki')); - - $undefined_settings = array(); - $in_fieldset = false; - $first_plugin_fieldset = true; - $first_template_fieldset = true; - foreach($this->_config->setting as $setting) { - if (is_a($setting, 'setting_hidden')) { - // skip hidden (and undefined) settings - if ($allow_debug && is_a($setting, 'setting_undefined')) { - $undefined_settings[] = $setting; - } else { - continue; - } - } else if (is_a($setting, 'setting_fieldset')) { - // config setting group - if ($in_fieldset) { - ptln(' '); - ptln('
'); - ptln(' '); - } else { - $in_fieldset = true; - } - if ($first_plugin_fieldset && substr($setting->_key, 0, 10)=='plugin'.CM_KEYMARKER) { - $this->_print_h1('plugin_settings', $this->getLang('_header_plugin')); - $first_plugin_fieldset = false; - } else if ($first_template_fieldset && substr($setting->_key, 0, 7)=='tpl'.CM_KEYMARKER) { - $this->_print_h1('template_settings', $this->getLang('_header_template')); - $first_template_fieldset = false; - } - ptln('
'); - ptln(' '.$setting->prompt($this).''); - ptln('
'); - ptln(' '); - } else { - // config settings - list($label,$input) = $setting->html($this, $this->_error); - - $class = $setting->is_default() ? ' class="default"' : ($setting->is_protected() ? ' class="protected"' : ''); - $error = $setting->error() ? ' class="value error"' : ' class="value"'; - $icon = $setting->caution() ? ''.$setting->caution().'' : ''; - - ptln(' '); - ptln(' '); - ptln(' '.$input.''); - ptln(' '); + $allow_debug = $GLOBALS['conf']['allowdebug']; // avoid global $conf; here. + global $lang; + global $ID; + + if (is_null($this->_config)) { $this->_config = new configuration($this->_file); } + $this->setupLocale(true); + + print $this->locale_xhtml('intro'); + + ptln('
'); + + if ($this->_config->locked) + ptln('
'.$this->getLang('locked').'
'); + elseif ($this->_error) + ptln('
'.$this->getLang('error').'
'); + elseif ($this->_changed) + ptln('
'.$this->getLang('updated').'
'); + + // POST to script() instead of wl($ID) so config manager still works if + // rewrite config is broken. Add $ID as hidden field to remember + // current ID in most cases. + ptln(''); + ptln('
'); + formSecurityToken(); + $this->_print_h1('dokuwiki_settings', $this->getLang('_header_dokuwiki')); + + $undefined_settings = array(); + $in_fieldset = false; + $first_plugin_fieldset = true; + $first_template_fieldset = true; + foreach($this->_config->setting as $setting) { + if (is_a($setting, 'setting_hidden')) { + // skip hidden (and undefined) settings + if ($allow_debug && is_a($setting, 'setting_undefined')) { + $undefined_settings[] = $setting; + } else { + continue; + } + } else if (is_a($setting, 'setting_fieldset')) { + // config setting group + if ($in_fieldset) { + ptln('
'); - ptln(' '.$setting->_out_key(true, true).''); - ptln(' '.$icon.$label); - ptln('
'); + ptln('
'); + ptln('
'); + } else { + $in_fieldset = true; + } + if ($first_plugin_fieldset && substr($setting->_key, 0, 10)=='plugin'.CM_KEYMARKER) { + $this->_print_h1('plugin_settings', $this->getLang('_header_plugin')); + $first_plugin_fieldset = false; + } else if ($first_template_fieldset && substr($setting->_key, 0, 7)=='tpl'.CM_KEYMARKER) { + $this->_print_h1('template_settings', $this->getLang('_header_template')); + $first_template_fieldset = false; + } + ptln('
'); + ptln(' '.$setting->prompt($this).''); + ptln('
'); + ptln(' '); + } else { + // config settings + list($label,$input) = $setting->html($this, $this->_error); + + $class = $setting->is_default() ? ' class="default"' : ($setting->is_protected() ? ' class="protected"' : ''); + $error = $setting->error() ? ' class="value error"' : ' class="value"'; + $icon = $setting->caution() ? ''.$setting->caution().'' : ''; + + ptln(' '); + ptln(' '); + ptln(' '.$input.''); + ptln(' '); + } } - } - ptln('
'); + ptln(' '.$setting->_out_key(true, true).''); + ptln(' '.$icon.$label); + ptln('
'); - ptln('
'); - if ($in_fieldset) { - ptln('
'); - } + ptln(' '); + ptln('
'); + if ($in_fieldset) { + ptln(' '); + } - // show undefined settings list - if ($allow_debug && !empty($undefined_settings)) { - function _setting_natural_comparison($a, $b) { return strnatcmp($a->_key, $b->_key); } - usort($undefined_settings, '_setting_natural_comparison'); - $this->_print_h1('undefined_settings', $this->getLang('_header_undefined')); - ptln('
'); - ptln('
'); - ptln(''); - $undefined_setting_match = array(); - foreach($undefined_settings as $setting) { - if (preg_match('/^(?:plugin|tpl)'.CM_KEYMARKER.'.*?'.CM_KEYMARKER.'(.*)$/', $setting->_key, $undefined_setting_match)) { - $undefined_setting_key = $undefined_setting_match[1]; - } else { - $undefined_setting_key = $setting->_key; - } - ptln(' '); - ptln(' '); - ptln(' '); - ptln(' '); + // show undefined settings list + if ($allow_debug && !empty($undefined_settings)) { + function _setting_natural_comparison($a, $b) { return strnatcmp($a->_key, $b->_key); } + usort($undefined_settings, '_setting_natural_comparison'); + $this->_print_h1('undefined_settings', $this->getLang('_header_undefined')); + ptln('
'); + ptln('
'); + ptln('
$'.$this->_config->_name.'[\''.$setting->_out_key().'\']'.$this->getLang('_msg_'.get_class($setting)).'
'); + $undefined_setting_match = array(); + foreach($undefined_settings as $setting) { + if (preg_match('/^(?:plugin|tpl)'.CM_KEYMARKER.'.*?'.CM_KEYMARKER.'(.*)$/', $setting->_key, $undefined_setting_match)) { + $undefined_setting_key = $undefined_setting_match[1]; + } else { + $undefined_setting_key = $setting->_key; + } + ptln(' '); + ptln(' '); + ptln(' '); + ptln(' '); + } + ptln('
$'.$this->_config->_name.'[\''.$setting->_out_key().'\']'.$this->getLang('_msg_'.get_class($setting)).'
'); + ptln('
'); + ptln('
'); } - ptln(''); - ptln('
'); - ptln(''); - } - // finish up form - ptln('

'); - ptln(' '); - ptln(' '); + // finish up form + ptln('

'); + ptln(' '); + ptln(' '); - if (!$this->_config->locked) { - ptln(' '); - ptln(' '); - ptln(' '); - } + if (!$this->_config->locked) { + ptln(' '); + ptln(' '); + ptln(' '); + } - ptln('

'); + ptln('

'); - ptln(''); - ptln('
'); + ptln(''); + ptln('
'); } /** @@ -207,28 +207,28 @@ class admin_plugin_config extends DokuWiki_Admin_Plugin { */ function _restore_session() { - // dokuwiki closes the session before act_dispatch. $_SESSION variables are all set, - // however they can't be changed without starting the session again - if (!headers_sent()) { - session_start(); - $this->_session_started = true; - } + // dokuwiki closes the session before act_dispatch. $_SESSION variables are all set, + // however they can't be changed without starting the session again + if (!headers_sent()) { + session_start(); + $this->_session_started = true; + } - if (!isset($_SESSION['PLUGIN_CONFIG'])) return true; + if (!isset($_SESSION['PLUGIN_CONFIG'])) return true; - $session = $_SESSION['PLUGIN_CONFIG']; - unset($_SESSION['PLUGIN_CONFIG']); + $session = $_SESSION['PLUGIN_CONFIG']; + unset($_SESSION['PLUGIN_CONFIG']); - // still valid? - if (time() - $session['time'] > 120) return true; + // still valid? + if (time() - $session['time'] > 120) return true; - switch ($session['state']) { - case 'updated' : - $this->_changed = true; - return false; - } + switch ($session['state']) { + case 'updated' : + $this->_changed = true; + return false; + } - return true; + return true; } function _close_session() { @@ -237,62 +237,62 @@ class admin_plugin_config extends DokuWiki_Admin_Plugin { function setupLocale($prompts=false) { - parent::setupLocale(); - if (!$prompts || $this->_localised_prompts) return; + parent::setupLocale(); + if (!$prompts || $this->_localised_prompts) return; - $this->_setup_localised_plugin_prompts(); - $this->_localised_prompts = true; + $this->_setup_localised_plugin_prompts(); + $this->_localised_prompts = true; } function _setup_localised_plugin_prompts() { - global $conf; - - $langfile = '/lang/'.$conf['lang'].'/settings.php'; - $enlangfile = '/lang/en/settings.php'; + global $conf; + + $langfile = '/lang/'.$conf['lang'].'/settings.php'; + $enlangfile = '/lang/en/settings.php'; + + if ($dh = opendir(DOKU_PLUGIN)) { + while (false !== ($plugin = readdir($dh))) { + if ($plugin == '.' || $plugin == '..' || $plugin == 'tmp' || $plugin == 'config') continue; + if (is_file(DOKU_PLUGIN.$plugin)) continue; + + if (@file_exists(DOKU_PLUGIN.$plugin.$enlangfile)){ + $lang = array(); + @include(DOKU_PLUGIN.$plugin.$enlangfile); + if ($conf['lang'] != 'en') @include(DOKU_PLUGIN.$plugin.$langfile); + foreach ($lang as $key => $value){ + $this->lang['plugin'.CM_KEYMARKER.$plugin.CM_KEYMARKER.$key] = $value; + } + } + + // fill in the plugin name if missing (should exist for plugins with settings) + if (!isset($this->lang['plugin'.CM_KEYMARKER.$plugin.CM_KEYMARKER.'plugin_settings_name'])) { + $this->lang['plugin'.CM_KEYMARKER.$plugin.CM_KEYMARKER.'plugin_settings_name'] = + ucwords(str_replace('_', ' ', $plugin)); + } + } + closedir($dh); + } - if ($dh = opendir(DOKU_PLUGIN)) { - while (false !== ($plugin = readdir($dh))) { - if ($plugin == '.' || $plugin == '..' || $plugin == 'tmp' || $plugin == 'config') continue; - if (is_file(DOKU_PLUGIN.$plugin)) continue; + // the same for the active template + $tpl = $conf['template']; - if (@file_exists(DOKU_PLUGIN.$plugin.$enlangfile)){ + if (@file_exists(tpl_incdir().$enlangfile)){ $lang = array(); - @include(DOKU_PLUGIN.$plugin.$enlangfile); - if ($conf['lang'] != 'en') @include(DOKU_PLUGIN.$plugin.$langfile); + @include(tpl_incdir().$enlangfile); + if ($conf['lang'] != 'en') @include(tpl_incdir().$langfile); foreach ($lang as $key => $value){ - $this->lang['plugin'.CM_KEYMARKER.$plugin.CM_KEYMARKER.$key] = $value; + $this->lang['tpl'.CM_KEYMARKER.$tpl.CM_KEYMARKER.$key] = $value; } - } - - // fill in the plugin name if missing (should exist for plugins with settings) - if (!isset($this->lang['plugin'.CM_KEYMARKER.$plugin.CM_KEYMARKER.'plugin_settings_name'])) { - $this->lang['plugin'.CM_KEYMARKER.$plugin.CM_KEYMARKER.'plugin_settings_name'] = - ucwords(str_replace('_', ' ', $plugin)); - } } - closedir($dh); - } - - // the same for the active template - $tpl = $conf['template']; - if (@file_exists(tpl_incdir().$enlangfile)){ - $lang = array(); - @include(tpl_incdir().$enlangfile); - if ($conf['lang'] != 'en') @include(tpl_incdir().$langfile); - foreach ($lang as $key => $value){ - $this->lang['tpl'.CM_KEYMARKER.$tpl.CM_KEYMARKER.$key] = $value; + // fill in the template name if missing (should exist for templates with settings) + if (!isset($this->lang['tpl'.CM_KEYMARKER.$tpl.CM_KEYMARKER.'template_settings_name'])) { + $this->lang['tpl'.CM_KEYMARKER.$tpl.CM_KEYMARKER.'template_settings_name'] = + ucwords(str_replace('_', ' ', $tpl)); } - } - - // fill in the template name if missing (should exist for templates with settings) - if (!isset($this->lang['tpl'.CM_KEYMARKER.$tpl.CM_KEYMARKER.'template_settings_name'])) { - $this->lang['tpl'.CM_KEYMARKER.$tpl.CM_KEYMARKER.'template_settings_name'] = - ucwords(str_replace('_', ' ', $tpl)); - } - return true; + return true; } /** @@ -301,59 +301,59 @@ class admin_plugin_config extends DokuWiki_Admin_Plugin { * @author Ben Coburn */ function getTOC() { - if (is_null($this->_config)) { $this->_config = new configuration($this->_file); } - $this->setupLocale(true); - - $allow_debug = $GLOBALS['conf']['allowdebug']; // avoid global $conf; here. - - // gather toc data - $has_undefined = false; - $toc = array('conf'=>array(), 'plugin'=>array(), 'template'=>null); - foreach($this->_config->setting as $setting) { - if (is_a($setting, 'setting_fieldset')) { - if (substr($setting->_key, 0, 10)=='plugin'.CM_KEYMARKER) { - $toc['plugin'][] = $setting; - } else if (substr($setting->_key, 0, 7)=='tpl'.CM_KEYMARKER) { - $toc['template'] = $setting; - } else { - $toc['conf'][] = $setting; - } - } else if (!$has_undefined && is_a($setting, 'setting_undefined')) { - $has_undefined = true; + if (is_null($this->_config)) { $this->_config = new configuration($this->_file); } + $this->setupLocale(true); + + $allow_debug = $GLOBALS['conf']['allowdebug']; // avoid global $conf; here. + + // gather toc data + $has_undefined = false; + $toc = array('conf'=>array(), 'plugin'=>array(), 'template'=>null); + foreach($this->_config->setting as $setting) { + if (is_a($setting, 'setting_fieldset')) { + if (substr($setting->_key, 0, 10)=='plugin'.CM_KEYMARKER) { + $toc['plugin'][] = $setting; + } else if (substr($setting->_key, 0, 7)=='tpl'.CM_KEYMARKER) { + $toc['template'] = $setting; + } else { + $toc['conf'][] = $setting; + } + } else if (!$has_undefined && is_a($setting, 'setting_undefined')) { + $has_undefined = true; + } } - } - // build toc - $t = array(); + // build toc + $t = array(); - $t[] = html_mktocitem('configuration_manager', $this->getLang('_configuration_manager'), 1); - $t[] = html_mktocitem('dokuwiki_settings', $this->getLang('_header_dokuwiki'), 1); - foreach($toc['conf'] as $setting) { - $name = $setting->prompt($this); - $t[] = html_mktocitem($setting->_key, $name, 2); - } - if (!empty($toc['plugin'])) { - $t[] = html_mktocitem('plugin_settings', $this->getLang('_header_plugin'), 1); - } - foreach($toc['plugin'] as $setting) { - $name = $setting->prompt($this); - $t[] = html_mktocitem($setting->_key, $name, 2); - } - if (isset($toc['template'])) { - $t[] = html_mktocitem('template_settings', $this->getLang('_header_template'), 1); - $setting = $toc['template']; - $name = $setting->prompt($this); - $t[] = html_mktocitem($setting->_key, $name, 2); - } - if ($has_undefined && $allow_debug) { - $t[] = html_mktocitem('undefined_settings', $this->getLang('_header_undefined'), 1); - } + $t[] = html_mktocitem('configuration_manager', $this->getLang('_configuration_manager'), 1); + $t[] = html_mktocitem('dokuwiki_settings', $this->getLang('_header_dokuwiki'), 1); + foreach($toc['conf'] as $setting) { + $name = $setting->prompt($this); + $t[] = html_mktocitem($setting->_key, $name, 2); + } + if (!empty($toc['plugin'])) { + $t[] = html_mktocitem('plugin_settings', $this->getLang('_header_plugin'), 1); + } + foreach($toc['plugin'] as $setting) { + $name = $setting->prompt($this); + $t[] = html_mktocitem($setting->_key, $name, 2); + } + if (isset($toc['template'])) { + $t[] = html_mktocitem('template_settings', $this->getLang('_header_template'), 1); + $setting = $toc['template']; + $name = $setting->prompt($this); + $t[] = html_mktocitem($setting->_key, $name, 2); + } + if ($has_undefined && $allow_debug) { + $t[] = html_mktocitem('undefined_settings', $this->getLang('_header_undefined'), 1); + } - return $t; + return $t; } function _print_h1($id, $text) { - ptln('

'.$text.'

'); + ptln('

'.$text.'

'); } diff --git a/lib/plugins/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php index 6de560128..0b9fa8103 100644 --- a/lib/plugins/config/settings/config.class.php +++ b/lib/plugins/config/settings/config.class.php @@ -11,500 +11,500 @@ if(!defined('CM_KEYMARKER')) define('CM_KEYMARKER','____'); if (!class_exists('configuration')) { - class configuration { - - var $_name = 'conf'; // name of the config variable found in the files (overridden by $config['varname']) - var $_format = 'php'; // format of the config file, supported formats - php (overridden by $config['format']) - var $_heading = ''; // heading string written at top of config file - don't include comment indicators - var $_loaded = false; // set to true after configuration files are loaded - var $_metadata = array(); // holds metadata describing the settings - var $setting = array(); // array of setting objects - var $locked = false; // configuration is considered locked if it can't be updated - var $show_disabled_plugins = false; - - // configuration filenames - var $_default_files = array(); - var $_local_files = array(); // updated configuration is written to the first file - var $_protected_files = array(); - - var $_plugin_list = null; - - /** - * constructor - */ - function configuration($datafile) { - global $conf, $config_cascade; - - if (!@file_exists($datafile)) { - msg('No configuration metadata found at - '.htmlspecialchars($datafile),-1); - return; - } - $meta = array(); - include($datafile); + class configuration { - if (isset($config['varname'])) $this->_name = $config['varname']; - if (isset($config['format'])) $this->_format = $config['format']; - if (isset($config['heading'])) $this->_heading = $config['heading']; + var $_name = 'conf'; // name of the config variable found in the files (overridden by $config['varname']) + var $_format = 'php'; // format of the config file, supported formats - php (overridden by $config['format']) + var $_heading = ''; // heading string written at top of config file - don't include comment indicators + var $_loaded = false; // set to true after configuration files are loaded + var $_metadata = array(); // holds metadata describing the settings + var $setting = array(); // array of setting objects + var $locked = false; // configuration is considered locked if it can't be updated + var $show_disabled_plugins = false; - $this->_default_files = $config_cascade['main']['default']; - $this->_local_files = $config_cascade['main']['local']; - $this->_protected_files = $config_cascade['main']['protected']; + // configuration filenames + var $_default_files = array(); + var $_local_files = array(); // updated configuration is written to the first file + var $_protected_files = array(); - $this->locked = $this->_is_locked(); - $this->_metadata = array_merge($meta, $this->get_plugintpl_metadata($conf['template'])); - $this->retrieve_settings(); - } + var $_plugin_list = null; - function retrieve_settings() { - global $conf; - $no_default_check = array('setting_fieldset', 'setting_undefined', 'setting_no_class'); + /** + * constructor + */ + function configuration($datafile) { + global $conf, $config_cascade; - if (!$this->_loaded) { - $default = array_merge($this->get_plugintpl_default($conf['template']), $this->_read_config_group($this->_default_files)); - $local = $this->_read_config_group($this->_local_files); - $protected = $this->_read_config_group($this->_protected_files); + if (!@file_exists($datafile)) { + msg('No configuration metadata found at - '.htmlspecialchars($datafile),-1); + return; + } + $meta = array(); + include($datafile); - $keys = array_merge(array_keys($this->_metadata),array_keys($default), array_keys($local), array_keys($protected)); - $keys = array_unique($keys); + if (isset($config['varname'])) $this->_name = $config['varname']; + if (isset($config['format'])) $this->_format = $config['format']; + if (isset($config['heading'])) $this->_heading = $config['heading']; - $param = null; - foreach ($keys as $key) { - if (isset($this->_metadata[$key])) { - $class = $this->_metadata[$key][0]; + $this->_default_files = $config_cascade['main']['default']; + $this->_local_files = $config_cascade['main']['local']; + $this->_protected_files = $config_cascade['main']['protected']; - if($class && class_exists('setting_'.$class)){ - $class = 'setting_'.$class; - } else { - if($class != '') { - $this->setting[] = new setting_no_class($key,$param); + $this->locked = $this->_is_locked(); + $this->_metadata = array_merge($meta, $this->get_plugintpl_metadata($conf['template'])); + $this->retrieve_settings(); + } + + function retrieve_settings() { + global $conf; + $no_default_check = array('setting_fieldset', 'setting_undefined', 'setting_no_class'); + + if (!$this->_loaded) { + $default = array_merge($this->get_plugintpl_default($conf['template']), $this->_read_config_group($this->_default_files)); + $local = $this->_read_config_group($this->_local_files); + $protected = $this->_read_config_group($this->_protected_files); + + $keys = array_merge(array_keys($this->_metadata),array_keys($default), array_keys($local), array_keys($protected)); + $keys = array_unique($keys); + + $param = null; + foreach ($keys as $key) { + if (isset($this->_metadata[$key])) { + $class = $this->_metadata[$key][0]; + + if($class && class_exists('setting_'.$class)){ + $class = 'setting_'.$class; + } else { + if($class != '') { + $this->setting[] = new setting_no_class($key,$param); + } + $class = 'setting'; + } + + $param = $this->_metadata[$key]; + array_shift($param); + } else { + $class = 'setting_undefined'; + $param = null; + } + + if (!in_array($class, $no_default_check) && !isset($default[$key])) { + $this->setting[] = new setting_no_default($key,$param); + } + + $this->setting[$key] = new $class($key,$param); + $this->setting[$key]->initialize($default[$key],$local[$key],$protected[$key]); } - $class = 'setting'; - } - $param = $this->_metadata[$key]; - array_shift($param); - } else { - $class = 'setting_undefined'; - $param = null; + $this->_loaded = true; } + } - if (!in_array($class, $no_default_check) && !isset($default[$key])) { - $this->setting[] = new setting_no_default($key,$param); - } + function save_settings($id, $header='', $backup=true) { + global $conf; - $this->setting[$key] = new $class($key,$param); - $this->setting[$key]->initialize($default[$key],$local[$key],$protected[$key]); - } + if ($this->locked) return false; - $this->_loaded = true; - } - } - - function save_settings($id, $header='', $backup=true) { - global $conf; + // write back to the last file in the local config cascade + $file = end($this->_local_files); - if ($this->locked) return false; + // backup current file (remove any existing backup) + if (@file_exists($file) && $backup) { + if (@file_exists($file.'.bak')) @unlink($file.'.bak'); + if (!io_rename($file, $file.'.bak')) return false; + } - // write back to the last file in the local config cascade - $file = end($this->_local_files); + if (!$fh = @fopen($file, 'wb')) { + io_rename($file.'.bak', $file); // problem opening, restore the backup + return false; + } - // backup current file (remove any existing backup) - if (@file_exists($file) && $backup) { - if (@file_exists($file.'.bak')) @unlink($file.'.bak'); - if (!io_rename($file, $file.'.bak')) return false; - } + if (empty($header)) $header = $this->_heading; - if (!$fh = @fopen($file, 'wb')) { - io_rename($file.'.bak', $file); // problem opening, restore the backup - return false; - } + $out = $this->_out_header($id,$header); - if (empty($header)) $header = $this->_heading; + foreach ($this->setting as $setting) { + $out .= $setting->out($this->_name, $this->_format); + } - $out = $this->_out_header($id,$header); + $out .= $this->_out_footer(); - foreach ($this->setting as $setting) { - $out .= $setting->out($this->_name, $this->_format); - } + @fwrite($fh, $out); + fclose($fh); + if($conf['fperm']) chmod($file, $conf['fperm']); + return true; + } - $out .= $this->_out_footer(); + /** + * Update last modified time stamp of the config file + */ + function touch_settings(){ + if ($this->locked) return false; + $file = end($this->_local_files); + return @touch($file); + } - @fwrite($fh, $out); - fclose($fh); - if($conf['fperm']) chmod($file, $conf['fperm']); - return true; - } + function _read_config_group($files) { + $config = array(); + foreach ($files as $file) { + $config = array_merge($config, $this->_read_config($file)); + } - /** - * Update last modified time stamp of the config file - */ - function touch_settings(){ - if ($this->locked) return false; - $file = end($this->_local_files); - return @touch($file); - } + return $config; + } - function _read_config_group($files) { - $config = array(); - foreach ($files as $file) { - $config = array_merge($config, $this->_read_config($file)); - } + /** + * return an array of config settings + */ + function _read_config($file) { - return $config; - } + if (!$file) return array(); - /** - * return an array of config settings - */ - function _read_config($file) { + $config = array(); - if (!$file) return array(); + if ($this->_format == 'php') { - $config = array(); + if(@file_exists($file)){ + $contents = @php_strip_whitespace($file); + }else{ + $contents = ''; + } + $pattern = '/\$'.$this->_name.'\[[\'"]([^=]+)[\'"]\] ?= ?(.*?);(?=[^;]*(?:\$'.$this->_name.'|$))/s'; + $matches=array(); + preg_match_all($pattern,$contents,$matches,PREG_SET_ORDER); - if ($this->_format == 'php') { + for ($i=0; $i_name.'\[[\'"]([^=]+)[\'"]\] ?= ?(.*?);(?=[^;]*(?:\$'.$this->_name.'|$))/s'; - $matches=array(); - preg_match_all($pattern,$contents,$matches,PREG_SET_ORDER); - for ($i=0; $i'\\','\\\''=>'\'','\\"'=>'"')); + } - // handle arrays - if(preg_match('/^array ?\((.*)\)/', $value, $match)){ - $arr = explode(',', $match[1]); + $value = $arr; + }else{ + // remove quotes from quoted strings & unescape escaped data + $value = preg_replace('/^(\'|")(.*)(?'\\','\\\''=>'\'','\\"'=>'"')); + } - // remove quotes from quoted strings & unescape escaped data - $len = count($arr); - for($j=0; $j<$len; $j++){ - $arr[$j] = trim($arr[$j]); - $arr[$j] = preg_replace('/^(\'|")(.*)(?'\\','\\\''=>'\'','\\"'=>'"')); + $config[$key] = $value; + } } - $value = $arr; - }else{ - // remove quotes from quoted strings & unescape escaped data - $value = preg_replace('/^(\'|")(.*)(?'\\','\\\''=>'\'','\\"'=>'"')); - } - - $config[$key] = $value; + return $config; } - } - return $config; - } + function _out_header($id, $header) { + $out = ''; + if ($this->_format == 'php') { + $out .= '<'.'?php'."\n". + "/*\n". + " * ".$header."\n". + " * Auto-generated by ".$id." plugin\n". + " * Run for user: ".$_SERVER['REMOTE_USER']."\n". + " * Date: ".date('r')."\n". + " */\n\n"; + } - function _out_header($id, $header) { - $out = ''; - if ($this->_format == 'php') { - $out .= '<'.'?php'."\n". - "/*\n". - " * ".$header."\n". - " * Auto-generated by ".$id." plugin\n". - " * Run for user: ".$_SERVER['REMOTE_USER']."\n". - " * Date: ".date('r')."\n". - " */\n\n"; - } - - return $out; - } + return $out; + } - function _out_footer() { - $out = ''; - if ($this->_format == 'php') { - $out .= "\n// end auto-generated content\n"; - } + function _out_footer() { + $out = ''; + if ($this->_format == 'php') { + $out .= "\n// end auto-generated content\n"; + } - return $out; - } + return $out; + } - // configuration is considered locked if there is no local settings filename - // or the directory its in is not writable or the file exists and is not writable - function _is_locked() { - if (!$this->_local_files) return true; + // configuration is considered locked if there is no local settings filename + // or the directory its in is not writable or the file exists and is not writable + function _is_locked() { + if (!$this->_local_files) return true; - $local = $this->_local_files[0]; + $local = $this->_local_files[0]; - if (!is_writable(dirname($local))) return true; - if (@file_exists($local) && !is_writable($local)) return true; + if (!is_writable(dirname($local))) return true; + if (@file_exists($local) && !is_writable($local)) return true; - return false; - } + return false; + } - /** - * not used ... conf's contents are an array! - * reduce any multidimensional settings to one dimension using CM_KEYMARKER - */ - function _flatten($conf,$prefix='') { + /** + * not used ... conf's contents are an array! + * reduce any multidimensional settings to one dimension using CM_KEYMARKER + */ + function _flatten($conf,$prefix='') { - $out = array(); + $out = array(); - foreach($conf as $key => $value) { - if (!is_array($value)) { - $out[$prefix.$key] = $value; - continue; - } + foreach($conf as $key => $value) { + if (!is_array($value)) { + $out[$prefix.$key] = $value; + continue; + } + + $tmp = $this->_flatten($value,$prefix.$key.CM_KEYMARKER); + $out = array_merge($out,$tmp); + } - $tmp = $this->_flatten($value,$prefix.$key.CM_KEYMARKER); - $out = array_merge($out,$tmp); + return $out; } - return $out; - } + function get_plugin_list() { + if (is_null($this->_plugin_list)) { + $list = plugin_list('',$this->show_disabled_plugins); - function get_plugin_list() { - if (is_null($this->_plugin_list)) { - $list = plugin_list('',$this->show_disabled_plugins); + // remove this plugin from the list + $idx = array_search('config',$list); + unset($list[$idx]); - // remove this plugin from the list - $idx = array_search('config',$list); - unset($list[$idx]); + trigger_event('PLUGIN_CONFIG_PLUGINLIST',$list); + $this->_plugin_list = $list; + } - trigger_event('PLUGIN_CONFIG_PLUGINLIST',$list); - $this->_plugin_list = $list; - } + return $this->_plugin_list; + } - return $this->_plugin_list; - } + /** + * load metadata for plugin and template settings + */ + function get_plugintpl_metadata($tpl){ + $file = '/conf/metadata.php'; + $class = '/conf/settings.class.php'; + $metadata = array(); + + foreach ($this->get_plugin_list() as $plugin) { + $plugin_dir = plugin_directory($plugin); + if (@file_exists(DOKU_PLUGIN.$plugin_dir.$file)){ + $meta = array(); + @include(DOKU_PLUGIN.$plugin_dir.$file); + @include(DOKU_PLUGIN.$plugin_dir.$class); + if (!empty($meta)) { + $metadata['plugin'.CM_KEYMARKER.$plugin.CM_KEYMARKER.'plugin_settings_name'] = array('fieldset'); + } + foreach ($meta as $key => $value){ + if ($value[0]=='fieldset') { continue; } //plugins only get one fieldset + $metadata['plugin'.CM_KEYMARKER.$plugin.CM_KEYMARKER.$key] = $value; + } + } + } - /** - * load metadata for plugin and template settings - */ - function get_plugintpl_metadata($tpl){ - $file = '/conf/metadata.php'; - $class = '/conf/settings.class.php'; - $metadata = array(); - - foreach ($this->get_plugin_list() as $plugin) { - $plugin_dir = plugin_directory($plugin); - if (@file_exists(DOKU_PLUGIN.$plugin_dir.$file)){ - $meta = array(); - @include(DOKU_PLUGIN.$plugin_dir.$file); - @include(DOKU_PLUGIN.$plugin_dir.$class); - if (!empty($meta)) { - $metadata['plugin'.CM_KEYMARKER.$plugin.CM_KEYMARKER.'plugin_settings_name'] = array('fieldset'); - } - foreach ($meta as $key => $value){ - if ($value[0]=='fieldset') { continue; } //plugins only get one fieldset - $metadata['plugin'.CM_KEYMARKER.$plugin.CM_KEYMARKER.$key] = $value; - } - } - } - - // the same for the active template - if (@file_exists(tpl_incdir().$file)){ - $meta = array(); - @include(tpl_incdir().$file); - @include(tpl_incdir().$class); - if (!empty($meta)) { - $metadata['tpl'.CM_KEYMARKER.$tpl.CM_KEYMARKER.'template_settings_name'] = array('fieldset'); - } - foreach ($meta as $key => $value){ - if ($value[0]=='fieldset') { continue; } //template only gets one fieldset - $metadata['tpl'.CM_KEYMARKER.$tpl.CM_KEYMARKER.$key] = $value; + // the same for the active template + if (@file_exists(tpl_incdir().$file)){ + $meta = array(); + @include(tpl_incdir().$file); + @include(tpl_incdir().$class); + if (!empty($meta)) { + $metadata['tpl'.CM_KEYMARKER.$tpl.CM_KEYMARKER.'template_settings_name'] = array('fieldset'); + } + foreach ($meta as $key => $value){ + if ($value[0]=='fieldset') { continue; } //template only gets one fieldset + $metadata['tpl'.CM_KEYMARKER.$tpl.CM_KEYMARKER.$key] = $value; + } + } + + return $metadata; } - } - return $metadata; - } + /** + * load default settings for plugins and templates + */ + function get_plugintpl_default($tpl){ + $file = '/conf/default.php'; + $default = array(); + + foreach ($this->get_plugin_list() as $plugin) { + $plugin_dir = plugin_directory($plugin); + if (@file_exists(DOKU_PLUGIN.$plugin_dir.$file)){ + $conf = array(); + @include(DOKU_PLUGIN.$plugin_dir.$file); + foreach ($conf as $key => $value){ + $default['plugin'.CM_KEYMARKER.$plugin.CM_KEYMARKER.$key] = $value; + } + } + } - /** - * load default settings for plugins and templates - */ - function get_plugintpl_default($tpl){ - $file = '/conf/default.php'; - $default = array(); - - foreach ($this->get_plugin_list() as $plugin) { - $plugin_dir = plugin_directory($plugin); - if (@file_exists(DOKU_PLUGIN.$plugin_dir.$file)){ - $conf = array(); - @include(DOKU_PLUGIN.$plugin_dir.$file); - foreach ($conf as $key => $value){ - $default['plugin'.CM_KEYMARKER.$plugin.CM_KEYMARKER.$key] = $value; - } - } - } - - // the same for the active template - if (@file_exists(tpl_incdir().$file)){ - $conf = array(); - @include(tpl_incdir().$file); - foreach ($conf as $key => $value){ - $default['tpl'.CM_KEYMARKER.$tpl.CM_KEYMARKER.$key] = $value; + // the same for the active template + if (@file_exists(tpl_incdir().$file)){ + $conf = array(); + @include(tpl_incdir().$file); + foreach ($conf as $key => $value){ + $default['tpl'.CM_KEYMARKER.$tpl.CM_KEYMARKER.$key] = $value; + } + } + + return $default; } - } - return $default; } - - } } if (!class_exists('setting')) { - class setting { + class setting { - var $_key = ''; - var $_default = null; - var $_local = null; - var $_protected = null; + var $_key = ''; + var $_default = null; + var $_local = null; + var $_protected = null; - var $_pattern = ''; - var $_error = false; // only used by those classes which error check - var $_input = null; // only used by those classes which error check - var $_caution = null; // used by any setting to provide an alert along with the setting - // valid alerts, 'warning', 'danger', 'security' - // images matching the alerts are in the plugin's images directory + var $_pattern = ''; + var $_error = false; // only used by those classes which error check + var $_input = null; // only used by those classes which error check + var $_caution = null; // used by any setting to provide an alert along with the setting + // valid alerts, 'warning', 'danger', 'security' + // images matching the alerts are in the plugin's images directory - static protected $_validCautions = array('warning','danger','security'); + static protected $_validCautions = array('warning','danger','security'); - function setting($key, $params=null) { - $this->_key = $key; + function setting($key, $params=null) { + $this->_key = $key; - if (is_array($params)) { - foreach($params as $property => $value) { - $this->$property = $value; - } + if (is_array($params)) { + foreach($params as $property => $value) { + $this->$property = $value; + } + } } - } - - /** - * receives current values for the setting $key - */ - function initialize($default, $local, $protected) { - if (isset($default)) $this->_default = $default; - if (isset($local)) $this->_local = $local; - if (isset($protected)) $this->_protected = $protected; - } - /** - * update changed setting with user provided value $input - * - if changed value fails error check, save it to $this->_input (to allow echoing later) - * - if changed value passes error check, set $this->_local to the new value - * - * @param mixed $input the new value - * @return boolean true if changed, false otherwise (incl. on error) - */ - function update($input) { - if (is_null($input)) return false; - if ($this->is_protected()) return false; - - $value = is_null($this->_local) ? $this->_default : $this->_local; - if ($value == $input) return false; - - if ($this->_pattern && !preg_match($this->_pattern,$input)) { - $this->_error = true; - $this->_input = $input; - return false; + /** + * receives current values for the setting $key + */ + function initialize($default, $local, $protected) { + if (isset($default)) $this->_default = $default; + if (isset($local)) $this->_local = $local; + if (isset($protected)) $this->_protected = $protected; } - $this->_local = $input; - return true; - } + /** + * update changed setting with user provided value $input + * - if changed value fails error check, save it to $this->_input (to allow echoing later) + * - if changed value passes error check, set $this->_local to the new value + * + * @param mixed $input the new value + * @return boolean true if changed, false otherwise (incl. on error) + */ + function update($input) { + if (is_null($input)) return false; + if ($this->is_protected()) return false; - /** - * @return array(string $label_html, string $input_html) - */ - function html(&$plugin, $echo=false) { - $value = ''; - $disable = ''; - - if ($this->is_protected()) { - $value = $this->_protected; - $disable = 'disabled="disabled"'; - } else { - if ($echo && $this->_error) { - $value = $this->_input; - } else { $value = is_null($this->_local) ? $this->_default : $this->_local; - } - } + if ($value == $input) return false; - $key = htmlspecialchars($this->_key); - $value = formText($value); + if ($this->_pattern && !preg_match($this->_pattern,$input)) { + $this->_error = true; + $this->_input = $input; + return false; + } - $label = ''; - $input = ''; - return array($label,$input); - } + $this->_local = $input; + return true; + } - /** - * generate string to save setting value to file according to $fmt - */ - function out($var, $fmt='php') { + /** + * @return array(string $label_html, string $input_html) + */ + function html(&$plugin, $echo=false) { + $value = ''; + $disable = ''; - if ($this->is_protected()) return ''; - if (is_null($this->_local) || ($this->_default == $this->_local)) return ''; + if ($this->is_protected()) { + $value = $this->_protected; + $disable = 'disabled="disabled"'; + } else { + if ($echo && $this->_error) { + $value = $this->_input; + } else { + $value = is_null($this->_local) ? $this->_default : $this->_local; + } + } - $out = ''; + $key = htmlspecialchars($this->_key); + $value = formText($value); - if ($fmt=='php') { - $tr = array("\\" => '\\\\', "'" => '\\\''); + $label = ''; + $input = ''; + return array($label,$input); + } - $out = '$'.$var."['".$this->_out_key()."'] = '".strtr( cleanText($this->_local), $tr)."';\n"; - } + /** + * generate string to save setting value to file according to $fmt + */ + function out($var, $fmt='php') { - return $out; - } + if ($this->is_protected()) return ''; + if (is_null($this->_local) || ($this->_default == $this->_local)) return ''; - function prompt(&$plugin) { - $prompt = $plugin->getLang($this->_key); - if (!$prompt) $prompt = htmlspecialchars(str_replace(array('____','_'),' ',$this->_key)); - return $prompt; - } + $out = ''; - function is_protected() { return !is_null($this->_protected); } - function is_default() { return !$this->is_protected() && is_null($this->_local); } - function error() { return $this->_error; } + if ($fmt=='php') { + $tr = array("\\" => '\\\\', "'" => '\\\''); - function caution() { - if (!empty($this->_caution)) { - if (!in_array($this->_caution, setting::$_validCautions)) { - trigger_error('Invalid caution string ('.$this->_caution.') in metadata for setting "'.$this->_key.'"', E_USER_WARNING); - return false; + $out = '$'.$var."['".$this->_out_key()."'] = '".strtr( cleanText($this->_local), $tr)."';\n"; } - return $this->_caution; + + return $out; } - // compatibility with previous cautionList - // TODO: check if any plugins use; remove - if (!empty($this->_cautionList[$this->_key])) { - $this->_caution = $this->_cautionList[$this->_key]; - unset($this->_cautionList); - return $this->caution(); + function prompt(&$plugin) { + $prompt = $plugin->getLang($this->_key); + if (!$prompt) $prompt = htmlspecialchars(str_replace(array('____','_'),' ',$this->_key)); + return $prompt; } - return false; - } - function _out_key($pretty=false,$url=false) { - if($pretty){ - $out = str_replace(CM_KEYMARKER,"»",$this->_key); - if ($url && !strstr($out,'»')) {//provide no urls for plugins, etc. - if ($out == 'start') //one exception - return ''.$out.''; - else - return ''.$out.''; + function is_protected() { return !is_null($this->_protected); } + function is_default() { return !$this->is_protected() && is_null($this->_local); } + function error() { return $this->_error; } + + function caution() { + if (!empty($this->_caution)) { + if (!in_array($this->_caution, setting::$_validCautions)) { + trigger_error('Invalid caution string ('.$this->_caution.') in metadata for setting "'.$this->_key.'"', E_USER_WARNING); + return false; + } + return $this->_caution; + } + // compatibility with previous cautionList + // TODO: check if any plugins use; remove + if (!empty($this->_cautionList[$this->_key])) { + $this->_caution = $this->_cautionList[$this->_key]; + unset($this->_cautionList); + + return $this->caution(); + } + return false; + } + + function _out_key($pretty=false,$url=false) { + if($pretty){ + $out = str_replace(CM_KEYMARKER,"»",$this->_key); + if ($url && !strstr($out,'»')) {//provide no urls for plugins, etc. + if ($out == 'start') //one exception + return ''.$out.''; + else + return ''.$out.''; + } + return $out; + }else{ + return str_replace(CM_KEYMARKER,"']['",$this->_key); } - return $out; - }else{ - return str_replace(CM_KEYMARKER,"']['",$this->_key); } } - } } @@ -612,178 +612,178 @@ if (!class_exists('setting_array')) { } if (!class_exists('setting_string')) { - class setting_string extends setting { - function html(&$plugin, $echo=false) { - $value = ''; - $disable = ''; - - if ($this->is_protected()) { - $value = $this->_protected; - $disable = 'disabled="disabled"'; - } else { - if ($echo && $this->_error) { - $value = $this->_input; - } else { - $value = is_null($this->_local) ? $this->_default : $this->_local; - } - } + class setting_string extends setting { + function html(&$plugin, $echo=false) { + $value = ''; + $disable = ''; + + if ($this->is_protected()) { + $value = $this->_protected; + $disable = 'disabled="disabled"'; + } else { + if ($echo && $this->_error) { + $value = $this->_input; + } else { + $value = is_null($this->_local) ? $this->_default : $this->_local; + } + } - $key = htmlspecialchars($this->_key); - $value = htmlspecialchars($value); + $key = htmlspecialchars($this->_key); + $value = htmlspecialchars($value); - $label = ''; - $input = ''; - return array($label,$input); + $label = ''; + $input = ''; + return array($label,$input); + } } - } } if (!class_exists('setting_password')) { - class setting_password extends setting_string { + class setting_password extends setting_string { - var $_code = 'plain'; // mechanism to be used to obscure passwords + var $_code = 'plain'; // mechanism to be used to obscure passwords - function update($input) { - if ($this->is_protected()) return false; - if (!$input) return false; + function update($input) { + if ($this->is_protected()) return false; + if (!$input) return false; - if ($this->_pattern && !preg_match($this->_pattern,$input)) { - $this->_error = true; - $this->_input = $input; - return false; - } + if ($this->_pattern && !preg_match($this->_pattern,$input)) { + $this->_error = true; + $this->_input = $input; + return false; + } - $this->_local = conf_encodeString($input,$this->_code); - return true; - } + $this->_local = conf_encodeString($input,$this->_code); + return true; + } - function html(&$plugin, $echo=false) { + function html(&$plugin, $echo=false) { - $value = ''; - $disable = $this->is_protected() ? 'disabled="disabled"' : ''; + $value = ''; + $disable = $this->is_protected() ? 'disabled="disabled"' : ''; - $key = htmlspecialchars($this->_key); + $key = htmlspecialchars($this->_key); - $label = ''; - $input = ''; - return array($label,$input); + $label = ''; + $input = ''; + return array($label,$input); + } } - } } if (!class_exists('setting_email')) { - class setting_email extends setting_string { - var $_multiple = false; - var $_placeholders = false; - - /** - * update setting with user provided value $input - * if value fails error check, save it - * - * @return boolean true if changed, false otherwise (incl. on error) - */ - function update($input) { - if (is_null($input)) return false; - if ($this->is_protected()) return false; - - $value = is_null($this->_local) ? $this->_default : $this->_local; - if ($value == $input) return false; - if($input === ''){ - $this->_local = $input; - return true; - } - $mail = $input; + class setting_email extends setting_string { + var $_multiple = false; + var $_placeholders = false; - if($this->_placeholders){ - // replace variables with pseudo values - $mail = str_replace('@USER@','joe',$mail); - $mail = str_replace('@NAME@','Joe Schmoe',$mail); - $mail = str_replace('@MAIL@','joe@example.com',$mail); - } + /** + * update setting with user provided value $input + * if value fails error check, save it + * + * @return boolean true if changed, false otherwise (incl. on error) + */ + function update($input) { + if (is_null($input)) return false; + if ($this->is_protected()) return false; - // multiple mail addresses? - if ($this->_multiple) { - $mails = array_filter(array_map('trim', explode(',', $mail))); - } else { - $mails = array($mail); - } + $value = is_null($this->_local) ? $this->_default : $this->_local; + if ($value == $input) return false; + if($input === ''){ + $this->_local = $input; + return true; + } + $mail = $input; - // check them all - foreach ($mails as $mail) { - // only check the address part - if(preg_match('#(.*?)<(.*?)>#', $mail, $matches)){ - $addr = $matches[2]; - }else{ - $addr = $mail; + if($this->_placeholders){ + // replace variables with pseudo values + $mail = str_replace('@USER@','joe',$mail); + $mail = str_replace('@NAME@','Joe Schmoe',$mail); + $mail = str_replace('@MAIL@','joe@example.com',$mail); } - if (!mail_isvalid($addr)) { - $this->_error = true; - $this->_input = $input; - return false; + // multiple mail addresses? + if ($this->_multiple) { + $mails = array_filter(array_map('trim', explode(',', $mail))); + } else { + $mails = array($mail); } - } - $this->_local = $input; - return true; + // check them all + foreach ($mails as $mail) { + // only check the address part + if(preg_match('#(.*?)<(.*?)>#', $mail, $matches)){ + $addr = $matches[2]; + }else{ + $addr = $mail; + } + + if (!mail_isvalid($addr)) { + $this->_error = true; + $this->_input = $input; + return false; + } + } + + $this->_local = $input; + return true; + } } - } } /** * @deprecated 2013-02-16 */ if (!class_exists('setting_richemail')) { - class setting_richemail extends setting_email { - function update($input) { - $this->_placeholders = true; - return parent::update($input); - } - } + class setting_richemail extends setting_email { + function update($input) { + $this->_placeholders = true; + return parent::update($input); + } + } } if (!class_exists('setting_numeric')) { - class setting_numeric extends setting_string { - // This allows for many PHP syntax errors... - // var $_pattern = '/^[-+\/*0-9 ]*$/'; - // much more restrictive, but should eliminate syntax errors. - var $_pattern = '/^[-+]? *[0-9]+ *(?:[-+*] *[0-9]+ *)*$/'; - var $_min = null; - var $_max = null; - - function update($input) { - $local = $this->_local; - $valid = parent::update($input); - if ($valid && !(is_null($this->_min) && is_null($this->_max))) { - $numeric_local = (int) eval('return '.$this->_local.';'); - if ((!is_null($this->_min) && $numeric_local < $this->_min) || - (!is_null($this->_max) && $numeric_local > $this->_max)) { - $this->_error = true; - $this->_input = $input; - $this->_local = $local; - $valid = false; + class setting_numeric extends setting_string { + // This allows for many PHP syntax errors... + // var $_pattern = '/^[-+\/*0-9 ]*$/'; + // much more restrictive, but should eliminate syntax errors. + var $_pattern = '/^[-+]? *[0-9]+ *(?:[-+*] *[0-9]+ *)*$/'; + var $_min = null; + var $_max = null; + + function update($input) { + $local = $this->_local; + $valid = parent::update($input); + if ($valid && !(is_null($this->_min) && is_null($this->_max))) { + $numeric_local = (int) eval('return '.$this->_local.';'); + if ((!is_null($this->_min) && $numeric_local < $this->_min) || + (!is_null($this->_max) && $numeric_local > $this->_max)) { + $this->_error = true; + $this->_input = $input; + $this->_local = $local; + $valid = false; + } } + return $valid; } - return $valid; - } - function out($var, $fmt='php') { + function out($var, $fmt='php') { - if ($this->is_protected()) return ''; - if (is_null($this->_local) || ($this->_default == $this->_local)) return ''; + if ($this->is_protected()) return ''; + if (is_null($this->_local) || ($this->_default == $this->_local)) return ''; - $out = ''; + $out = ''; - if ($fmt=='php') { - $local = $this->_local === '' ? "''" : $this->_local; - $out .= '$'.$var."['".$this->_out_key()."'] = ".$local.";\n"; - } + if ($fmt=='php') { + $local = $this->_local === '' ? "''" : $this->_local; + $out .= '$'.$var."['".$this->_out_key()."'] = ".$local.";\n"; + } - return $out; + return $out; + } } - } } if (!class_exists('setting_numericopt')) { @@ -794,309 +794,309 @@ if (!class_exists('setting_numericopt')) { } if (!class_exists('setting_onoff')) { - class setting_onoff extends setting_numeric { + class setting_onoff extends setting_numeric { - function html(&$plugin) { - $value = ''; - $disable = ''; + function html(&$plugin) { + $value = ''; + $disable = ''; - if ($this->is_protected()) { - $value = $this->_protected; - $disable = ' disabled="disabled"'; - } else { - $value = is_null($this->_local) ? $this->_default : $this->_local; - } + if ($this->is_protected()) { + $value = $this->_protected; + $disable = ' disabled="disabled"'; + } else { + $value = is_null($this->_local) ? $this->_default : $this->_local; + } - $key = htmlspecialchars($this->_key); - $checked = ($value) ? ' checked="checked"' : ''; + $key = htmlspecialchars($this->_key); + $checked = ($value) ? ' checked="checked"' : ''; - $label = ''; - $input = '
'; - return array($label,$input); - } + $label = ''; + $input = '
'; + return array($label,$input); + } - function update($input) { - if ($this->is_protected()) return false; + function update($input) { + if ($this->is_protected()) return false; - $input = ($input) ? 1 : 0; - $value = is_null($this->_local) ? $this->_default : $this->_local; - if ($value == $input) return false; + $input = ($input) ? 1 : 0; + $value = is_null($this->_local) ? $this->_default : $this->_local; + if ($value == $input) return false; - $this->_local = $input; - return true; + $this->_local = $input; + return true; + } } - } } if (!class_exists('setting_multichoice')) { - class setting_multichoice extends setting_string { - var $_choices = array(); - - function html(&$plugin) { - $value = ''; - $disable = ''; - $nochoice = ''; - - if ($this->is_protected()) { - $value = $this->_protected; - $disable = ' disabled="disabled"'; - } else { - $value = is_null($this->_local) ? $this->_default : $this->_local; - } + class setting_multichoice extends setting_string { + var $_choices = array(); - // ensure current value is included - if (!in_array($value, $this->_choices)) { - $this->_choices[] = $value; - } - // disable if no other choices - if (!$this->is_protected() && count($this->_choices) <= 1) { - $disable = ' disabled="disabled"'; - $nochoice = $plugin->getLang('nochoice'); - } + function html(&$plugin) { + $value = ''; + $disable = ''; + $nochoice = ''; - $key = htmlspecialchars($this->_key); + if ($this->is_protected()) { + $value = $this->_protected; + $disable = ' disabled="disabled"'; + } else { + $value = is_null($this->_local) ? $this->_default : $this->_local; + } - $label = ''; + // ensure current value is included + if (!in_array($value, $this->_choices)) { + $this->_choices[] = $value; + } + // disable if no other choices + if (!$this->is_protected() && count($this->_choices) <= 1) { + $disable = ' disabled="disabled"'; + $nochoice = $plugin->getLang('nochoice'); + } - $input = "
\n"; - $input .= ' $nochoice \n"; - $input .= "
\n"; + $label = ''; - return array($label,$input); - } + $input = "
\n"; + $input .= ' $nochoice \n"; + $input .= "
\n"; + + return array($label,$input); + } - function update($input) { - if (is_null($input)) return false; - if ($this->is_protected()) return false; + function update($input) { + if (is_null($input)) return false; + if ($this->is_protected()) return false; - $value = is_null($this->_local) ? $this->_default : $this->_local; - if ($value == $input) return false; + $value = is_null($this->_local) ? $this->_default : $this->_local; + if ($value == $input) return false; - if (!in_array($input, $this->_choices)) return false; + if (!in_array($input, $this->_choices)) return false; - $this->_local = $input; - return true; + $this->_local = $input; + return true; + } } - } } if (!class_exists('setting_dirchoice')) { - class setting_dirchoice extends setting_multichoice { + class setting_dirchoice extends setting_multichoice { - var $_dir = ''; + var $_dir = ''; - function initialize($default,$local,$protected) { + function initialize($default,$local,$protected) { - // populate $this->_choices with a list of directories - $list = array(); + // populate $this->_choices with a list of directories + $list = array(); - if ($dh = @opendir($this->_dir)) { - while (false !== ($entry = readdir($dh))) { - if ($entry == '.' || $entry == '..') continue; - if ($this->_pattern && !preg_match($this->_pattern,$entry)) continue; + if ($dh = @opendir($this->_dir)) { + while (false !== ($entry = readdir($dh))) { + if ($entry == '.' || $entry == '..') continue; + if ($this->_pattern && !preg_match($this->_pattern,$entry)) continue; - $file = (is_link($this->_dir.$entry)) ? readlink($this->_dir.$entry) : $this->_dir.$entry; - if (is_dir($file)) $list[] = $entry; - } - closedir($dh); - } - sort($list); - $this->_choices = $list; + $file = (is_link($this->_dir.$entry)) ? readlink($this->_dir.$entry) : $this->_dir.$entry; + if (is_dir($file)) $list[] = $entry; + } + closedir($dh); + } + sort($list); + $this->_choices = $list; - parent::initialize($default,$local,$protected); + parent::initialize($default,$local,$protected); + } } - } } if (!class_exists('setting_hidden')) { - class setting_hidden extends setting { - // Used to explicitly ignore a setting in the configuration manager. - } + class setting_hidden extends setting { + // Used to explicitly ignore a setting in the configuration manager. + } } if (!class_exists('setting_fieldset')) { - class setting_fieldset extends setting { - // A do-nothing class used to detect the 'fieldset' type. - // Used to start a new settings "display-group". - } + class setting_fieldset extends setting { + // A do-nothing class used to detect the 'fieldset' type. + // Used to start a new settings "display-group". + } } if (!class_exists('setting_undefined')) { - class setting_undefined extends setting_hidden { - // A do-nothing class used to detect settings with no metadata entry. - // Used internaly to hide undefined settings, and generate the undefined settings list. - } + class setting_undefined extends setting_hidden { + // A do-nothing class used to detect settings with no metadata entry. + // Used internaly to hide undefined settings, and generate the undefined settings list. + } } if (!class_exists('setting_no_class')) { - class setting_no_class extends setting_undefined { - // A do-nothing class used to detect settings with a missing setting class. - // Used internaly to hide undefined settings, and generate the undefined settings list. - } + class setting_no_class extends setting_undefined { + // A do-nothing class used to detect settings with a missing setting class. + // Used internaly to hide undefined settings, and generate the undefined settings list. + } } if (!class_exists('setting_no_default')) { - class setting_no_default extends setting_undefined { - // A do-nothing class used to detect settings with no default value. - // Used internaly to hide undefined settings, and generate the undefined settings list. - } + class setting_no_default extends setting_undefined { + // A do-nothing class used to detect settings with no default value. + // Used internaly to hide undefined settings, and generate the undefined settings list. + } } if (!class_exists('setting_multicheckbox')) { - class setting_multicheckbox extends setting_string { + class setting_multicheckbox extends setting_string { - var $_choices = array(); - var $_combine = array(); + var $_choices = array(); + var $_combine = array(); - function update($input) { - if ($this->is_protected()) return false; + function update($input) { + if ($this->is_protected()) return false; - // split any combined values + convert from array to comma separated string - $input = ($input) ? $input : array(); - $input = $this->_array2str($input); + // split any combined values + convert from array to comma separated string + $input = ($input) ? $input : array(); + $input = $this->_array2str($input); - $value = is_null($this->_local) ? $this->_default : $this->_local; - if ($value == $input) return false; + $value = is_null($this->_local) ? $this->_default : $this->_local; + if ($value == $input) return false; + + if ($this->_pattern && !preg_match($this->_pattern,$input)) { + $this->_error = true; + $this->_input = $input; + return false; + } - if ($this->_pattern && !preg_match($this->_pattern,$input)) { - $this->_error = true; - $this->_input = $input; - return false; + $this->_local = $input; + return true; } - $this->_local = $input; - return true; - } + function html(&$plugin, $echo=false) { - function html(&$plugin, $echo=false) { + $value = ''; + $disable = ''; - $value = ''; - $disable = ''; + if ($this->is_protected()) { + $value = $this->_protected; + $disable = 'disabled="disabled"'; + } else { + if ($echo && $this->_error) { + $value = $this->_input; + } else { + $value = is_null($this->_local) ? $this->_default : $this->_local; + } + } - if ($this->is_protected()) { - $value = $this->_protected; - $disable = 'disabled="disabled"'; - } else { - if ($echo && $this->_error) { - $value = $this->_input; - } else { - $value = is_null($this->_local) ? $this->_default : $this->_local; - } - } + $key = htmlspecialchars($this->_key); - $key = htmlspecialchars($this->_key); + // convert from comma separated list into array + combine complimentary actions + $value = $this->_str2array($value); + $default = $this->_str2array($this->_default); - // convert from comma separated list into array + combine complimentary actions - $value = $this->_str2array($value); - $default = $this->_str2array($this->_default); + $input = ''; + foreach ($this->_choices as $choice) { + $idx = array_search($choice, $value); + $idx_default = array_search($choice,$default); - $input = ''; - foreach ($this->_choices as $choice) { - $idx = array_search($choice, $value); - $idx_default = array_search($choice,$default); + $checked = ($idx !== false) ? 'checked="checked"' : ''; - $checked = ($idx !== false) ? 'checked="checked"' : ''; + // ideally this would be handled using a second class of "default", however IE6 does not + // correctly support CSS selectors referencing multiple class names on the same element + // (e.g. .default.selection). + $class = (($idx !== false) == (false !== $idx_default)) ? " selectiondefault" : ""; - // ideally this would be handled using a second class of "default", however IE6 does not - // correctly support CSS selectors referencing multiple class names on the same element - // (e.g. .default.selection). - $class = (($idx !== false) == (false !== $idx_default)) ? " selectiondefault" : ""; + $prompt = ($plugin->getLang($this->_key.'_'.$choice) ? + $plugin->getLang($this->_key.'_'.$choice) : htmlspecialchars($choice)); - $prompt = ($plugin->getLang($this->_key.'_'.$choice) ? - $plugin->getLang($this->_key.'_'.$choice) : htmlspecialchars($choice)); + $input .= '
'."\n"; + $input .= '\n"; + $input .= '\n"; + $input .= "
\n"; - $input .= '
'."\n"; - $input .= '\n"; - $input .= '\n"; - $input .= "
\n"; + // remove this action from the disabledactions array + if ($idx !== false) unset($value[$idx]); + if ($idx_default !== false) unset($default[$idx_default]); + } - // remove this action from the disabledactions array - if ($idx !== false) unset($value[$idx]); - if ($idx_default !== false) unset($default[$idx_default]); - } + // handle any remaining values + $other = join(',',$value); - // handle any remaining values - $other = join(',',$value); + $class = (count($default == count($value)) && (count($value) == count(array_intersect($value,$default)))) ? + " selectiondefault" : ""; - $class = (count($default == count($value)) && (count($value) == count(array_intersect($value,$default)))) ? - " selectiondefault" : ""; + $input .= '
'."\n"; + $input .= '\n"; + $input .= '\n"; + $input .= "
\n"; - $input .= '
'."\n"; - $input .= '\n"; - $input .= '\n"; - $input .= "
\n"; + $label = ''; + return array($label,$input); + } - $label = ''; - return array($label,$input); - } + /** + * convert comma separated list to an array and combine any complimentary values + */ + function _str2array($str) { + $array = explode(',',$str); + + if (!empty($this->_combine)) { + foreach ($this->_combine as $key => $combinators) { + $idx = array(); + foreach ($combinators as $val) { + if (($idx[] = array_search($val, $array)) === false) break; + } + + if (count($idx) && $idx[count($idx)-1] !== false) { + foreach ($idx as $i) unset($array[$i]); + $array[] = $key; + } + } + } - /** - * convert comma separated list to an array and combine any complimentary values - */ - function _str2array($str) { - $array = explode(',',$str); - - if (!empty($this->_combine)) { - foreach ($this->_combine as $key => $combinators) { - $idx = array(); - foreach ($combinators as $val) { - if (($idx[] = array_search($val, $array)) === false) break; - } - - if (count($idx) && $idx[count($idx)-1] !== false) { - foreach ($idx as $i) unset($array[$i]); - $array[] = $key; - } + return $array; } - } - return $array; - } + /** + * convert array of values + other back to a comma separated list, incl. splitting any combined values + */ + function _array2str($input) { - /** - * convert array of values + other back to a comma separated list, incl. splitting any combined values - */ - function _array2str($input) { + // handle other + $other = trim($input['other']); + $other = !empty($other) ? explode(',',str_replace(' ','',$input['other'])) : array(); + unset($input['other']); - // handle other - $other = trim($input['other']); - $other = !empty($other) ? explode(',',str_replace(' ','',$input['other'])) : array(); - unset($input['other']); + $array = array_unique(array_merge($input, $other)); - $array = array_unique(array_merge($input, $other)); + // deconstruct any combinations + if (!empty($this->_combine)) { + foreach ($this->_combine as $key => $combinators) { - // deconstruct any combinations - if (!empty($this->_combine)) { - foreach ($this->_combine as $key => $combinators) { + $idx = array_search($key,$array); + if ($idx !== false) { + unset($array[$idx]); + $array = array_merge($array, $combinators); + } + } + } - $idx = array_search($key,$array); - if ($idx !== false) { - unset($array[$idx]); - $array = array_merge($array, $combinators); - } + return join(',',array_unique($array)); } - } - - return join(',',array_unique($array)); } - } } if (!class_exists('setting_regex')){ - class setting_regex extends setting_string { + class setting_regex extends setting_string { var $_delimiter = '/'; // regex delimiter to be used in testing input var $_pregflags = 'ui'; // regex pattern modifiers to be used in testing input diff --git a/lib/plugins/config/settings/extra.class.php b/lib/plugins/config/settings/extra.class.php index e4b97eb01..954178bc1 100644 --- a/lib/plugins/config/settings/extra.class.php +++ b/lib/plugins/config/settings/extra.class.php @@ -6,204 +6,204 @@ */ if (!class_exists('setting_sepchar')) { - class setting_sepchar extends setting_multichoice { + class setting_sepchar extends setting_multichoice { - function setting_sepchar($key,$param=NULL) { - $str = '_-.'; - for ($i=0;$i_choices[] = $str{$i}; + function setting_sepchar($key,$param=NULL) { + $str = '_-.'; + for ($i=0;$i_choices[] = $str{$i}; - // call foundation class constructor - $this->setting($key,$param); + // call foundation class constructor + $this->setting($key,$param); + } } - } } if (!class_exists('setting_savedir')) { - class setting_savedir extends setting_string { + class setting_savedir extends setting_string { - function update($input) { - if ($this->is_protected()) return false; + function update($input) { + if ($this->is_protected()) return false; - $value = is_null($this->_local) ? $this->_default : $this->_local; - if ($value == $input) return false; + $value = is_null($this->_local) ? $this->_default : $this->_local; + if ($value == $input) return false; - if (!init_path($input)) { - $this->_error = true; - $this->_input = $input; - return false; - } + if (!init_path($input)) { + $this->_error = true; + $this->_input = $input; + return false; + } - $this->_local = $input; - return true; + $this->_local = $input; + return true; + } } - } } if (!class_exists('setting_authtype')) { - class setting_authtype extends setting_multichoice { + class setting_authtype extends setting_multichoice { - function initialize($default,$local,$protected) { - global $plugin_controller; + function initialize($default,$local,$protected) { + global $plugin_controller; - // retrieve auth types provided by plugins - foreach ($plugin_controller->getList('auth') as $plugin) { - $this->_choices[] = $plugin; - } - - parent::initialize($default,$local,$protected); - } - - function update($input) { - global $plugin_controller; - - // is an update possible/requested? - $local = $this->_local; // save this, parent::update() may change it - if (!parent::update($input)) return false; // nothing changed or an error caught by parent - $this->_local = $local; // restore original, more error checking to come - - // attempt to load the plugin - $auth_plugin = $plugin_controller->load('auth', $input); - - // @TODO: throw an error in plugin controller instead of returning null - if (is_null($auth_plugin)) { - $this->_error = true; - msg('Cannot load Auth Plugin "' . $input . '"', -1); - return false; - } + // retrieve auth types provided by plugins + foreach ($plugin_controller->getList('auth') as $plugin) { + $this->_choices[] = $plugin; + } - // verify proper instantiation (is this really a plugin?) @TODO use instanceof? implement interface? - if (is_object($auth_plugin) && !method_exists($auth_plugin, 'getPluginName')) { - $this->_error = true; - msg('Cannot create Auth Plugin "' . $input . '"', -1); - return false; + parent::initialize($default,$local,$protected); } - // did we change the auth type? logout - global $conf; - if($conf['authtype'] != $input) { - msg('Authentication system changed. Please re-login.'); - auth_logoff(); + function update($input) { + global $plugin_controller; + + // is an update possible/requested? + $local = $this->_local; // save this, parent::update() may change it + if (!parent::update($input)) return false; // nothing changed or an error caught by parent + $this->_local = $local; // restore original, more error checking to come + + // attempt to load the plugin + $auth_plugin = $plugin_controller->load('auth', $input); + + // @TODO: throw an error in plugin controller instead of returning null + if (is_null($auth_plugin)) { + $this->_error = true; + msg('Cannot load Auth Plugin "' . $input . '"', -1); + return false; + } + + // verify proper instantiation (is this really a plugin?) @TODO use instanceof? implement interface? + if (is_object($auth_plugin) && !method_exists($auth_plugin, 'getPluginName')) { + $this->_error = true; + msg('Cannot create Auth Plugin "' . $input . '"', -1); + return false; + } + + // did we change the auth type? logout + global $conf; + if($conf['authtype'] != $input) { + msg('Authentication system changed. Please re-login.'); + auth_logoff(); + } + + $this->_local = $input; + return true; } - - $this->_local = $input; - return true; } - } } if (!class_exists('setting_im_convert')) { - class setting_im_convert extends setting_string { + class setting_im_convert extends setting_string { - function update($input) { - if ($this->is_protected()) return false; + function update($input) { + if ($this->is_protected()) return false; - $input = trim($input); + $input = trim($input); - $value = is_null($this->_local) ? $this->_default : $this->_local; - if ($value == $input) return false; + $value = is_null($this->_local) ? $this->_default : $this->_local; + if ($value == $input) return false; - if ($input && !@file_exists($input)) { - $this->_error = true; - $this->_input = $input; - return false; - } + if ($input && !@file_exists($input)) { + $this->_error = true; + $this->_input = $input; + return false; + } - $this->_local = $input; - return true; + $this->_local = $input; + return true; + } } - } } if (!class_exists('setting_disableactions')) { - class setting_disableactions extends setting_multicheckbox { + class setting_disableactions extends setting_multicheckbox { - function html(&$plugin, $echo=false) { - global $lang; + function html(&$plugin, $echo=false) { + global $lang; - // make some language adjustments (there must be a better way) - // transfer some DokuWiki language strings to the plugin - if (!$plugin->localised) $this->setupLocale(); - $plugin->lang[$this->_key.'_revisions'] = $lang['btn_revs']; + // make some language adjustments (there must be a better way) + // transfer some DokuWiki language strings to the plugin + if (!$plugin->localised) $this->setupLocale(); + $plugin->lang[$this->_key.'_revisions'] = $lang['btn_revs']; - foreach ($this->_choices as $choice) - if (isset($lang['btn_'.$choice])) $plugin->lang[$this->_key.'_'.$choice] = $lang['btn_'.$choice]; + foreach ($this->_choices as $choice) + if (isset($lang['btn_'.$choice])) $plugin->lang[$this->_key.'_'.$choice] = $lang['btn_'.$choice]; - return parent::html($plugin, $echo); + return parent::html($plugin, $echo); + } } - } } if (!class_exists('setting_compression')) { - class setting_compression extends setting_multichoice { + class setting_compression extends setting_multichoice { - var $_choices = array('0'); // 0 = no compression, always supported + var $_choices = array('0'); // 0 = no compression, always supported - function initialize($default,$local,$protected) { + function initialize($default,$local,$protected) { - // populate _choices with the compression methods supported by this php installation - if (function_exists('gzopen')) $this->_choices[] = 'gz'; - if (function_exists('bzopen')) $this->_choices[] = 'bz2'; + // populate _choices with the compression methods supported by this php installation + if (function_exists('gzopen')) $this->_choices[] = 'gz'; + if (function_exists('bzopen')) $this->_choices[] = 'bz2'; - parent::initialize($default,$local,$protected); + parent::initialize($default,$local,$protected); + } } - } } if (!class_exists('setting_license')) { - class setting_license extends setting_multichoice { + class setting_license extends setting_multichoice { - var $_choices = array(''); // none choosen + var $_choices = array(''); // none choosen - function initialize($default,$local,$protected) { - global $license; + function initialize($default,$local,$protected) { + global $license; - foreach($license as $key => $data){ - $this->_choices[] = $key; - $this->lang[$this->_key.'_o_'.$key] = $data['name']; - } + foreach($license as $key => $data){ + $this->_choices[] = $key; + $this->lang[$this->_key.'_o_'.$key] = $data['name']; + } - parent::initialize($default,$local,$protected); + parent::initialize($default,$local,$protected); + } } - } } if (!class_exists('setting_renderer')) { - class setting_renderer extends setting_multichoice { - var $_prompts = array(); + class setting_renderer extends setting_multichoice { + var $_prompts = array(); - function initialize($default,$local,$protected) { - $format = $this->_format; + function initialize($default,$local,$protected) { + $format = $this->_format; - foreach (plugin_list('renderer') as $plugin) { - $renderer =& plugin_load('renderer',$plugin); - if (method_exists($renderer,'canRender') && $renderer->canRender($format)) { - $this->_choices[] = $plugin; + foreach (plugin_list('renderer') as $plugin) { + $renderer =& plugin_load('renderer',$plugin); + if (method_exists($renderer,'canRender') && $renderer->canRender($format)) { + $this->_choices[] = $plugin; - $info = $renderer->getInfo(); - $this->_prompts[$plugin] = $info['name']; - } - } - - parent::initialize($default,$local,$protected); - } + $info = $renderer->getInfo(); + $this->_prompts[$plugin] = $info['name']; + } + } - function html(&$plugin, $echo=false) { - - // make some language adjustments (there must be a better way) - // transfer some plugin names to the config plugin - if (!$plugin->localised) $this->setupLocale(); + parent::initialize($default,$local,$protected); + } - foreach ($this->_choices as $choice) { - if (!isset($plugin->lang[$this->_key.'_o_'.$choice])) { - if (!isset($this->_prompts[$choice])) { - $plugin->lang[$this->_key.'_o_'.$choice] = sprintf($plugin->lang['renderer__core'],$choice); - } else { - $plugin->lang[$this->_key.'_o_'.$choice] = sprintf($plugin->lang['renderer__plugin'],$this->_prompts[$choice]); - } + function html(&$plugin, $echo=false) { + + // make some language adjustments (there must be a better way) + // transfer some plugin names to the config plugin + if (!$plugin->localised) $this->setupLocale(); + + foreach ($this->_choices as $choice) { + if (!isset($plugin->lang[$this->_key.'_o_'.$choice])) { + if (!isset($this->_prompts[$choice])) { + $plugin->lang[$this->_key.'_o_'.$choice] = sprintf($plugin->lang['renderer__core'],$choice); + } else { + $plugin->lang[$this->_key.'_o_'.$choice] = sprintf($plugin->lang['renderer__plugin'],$this->_prompts[$choice]); + } + } + } + return parent::html($plugin, $echo); } - } - return parent::html($plugin, $echo); } - } } diff --git a/lib/plugins/safefnrecode/action.php b/lib/plugins/safefnrecode/action.php index aae11c437..9127f8df2 100644 --- a/lib/plugins/safefnrecode/action.php +++ b/lib/plugins/safefnrecode/action.php @@ -15,7 +15,7 @@ class action_plugin_safefnrecode extends DokuWiki_Action_Plugin { public function register(Doku_Event_Handler $controller) { - $controller->register_hook('INDEXER_TASKS_RUN', 'BEFORE', $this, 'handle_indexer_tasks_run'); + $controller->register_hook('INDEXER_TASKS_RUN', 'BEFORE', $this, 'handle_indexer_tasks_run'); } diff --git a/lib/plugins/syntax.php b/lib/plugins/syntax.php index b7839b2b2..6aa403b61 100644 --- a/lib/plugins/syntax.php +++ b/lib/plugins/syntax.php @@ -137,7 +137,7 @@ class DokuWiki_Syntax_Plugin extends Doku_Parser_Mode { $idx = array_search(substr(get_class($this), 7), (array) $this->allowedModes); if ($idx !== false) { - unset($this->allowedModes[$idx]); + unset($this->allowedModes[$idx]); } $this->allowedModesSetup = true; } @@ -169,9 +169,9 @@ class DokuWiki_Syntax_Plugin extends Doku_Parser_Mode { * @return string string in appropriate language or english if not available */ function getLang($id) { - if (!$this->localised) $this->setupLocale(); + if (!$this->localised) $this->setupLocale(); - return (isset($this->lang[$id]) ? $this->lang[$id] : ''); + return (isset($this->lang[$id]) ? $this->lang[$id] : ''); } /** @@ -184,7 +184,7 @@ class DokuWiki_Syntax_Plugin extends Doku_Parser_Mode { * @return string parsed contents of the wiki page in xhtml format */ function locale_xhtml($id) { - return p_cached_output($this->localFN($id)); + return p_cached_output($this->localFN($id)); } /** @@ -193,17 +193,17 @@ class DokuWiki_Syntax_Plugin extends Doku_Parser_Mode { * plugin equivalent of localFN() */ function localFN($id) { - global $conf; - $plugin = $this->getPluginName(); - $file = DOKU_CONF.'/plugin_lang/'.$plugin.'/'.$conf['lang'].'/'.$id.'.txt'; - if (!@file_exists($file)){ - $file = DOKU_PLUGIN.$plugin.'/lang/'.$conf['lang'].'/'.$id.'.txt'; - if(!@file_exists($file)){ - //fall back to english - $file = DOKU_PLUGIN.$plugin.'/lang/en/'.$id.'.txt'; + global $conf; + $plugin = $this->getPluginName(); + $file = DOKU_CONF.'/plugin_lang/'.$plugin.'/'.$conf['lang'].'/'.$id.'.txt'; + if (!@file_exists($file)){ + $file = DOKU_PLUGIN.$plugin.'/lang/'.$conf['lang'].'/'.$id.'.txt'; + if(!@file_exists($file)){ + //fall back to english + $file = DOKU_PLUGIN.$plugin.'/lang/en/'.$id.'.txt'; + } } - } - return $file; + return $file; } /** @@ -214,16 +214,16 @@ class DokuWiki_Syntax_Plugin extends Doku_Parser_Mode { function setupLocale() { if ($this->localised) return; - global $conf; // definitely don't invoke "global $lang" - $path = DOKU_PLUGIN.$this->getPluginName().'/lang/'; - - $lang = array(); - // don't include once, in case several plugin components require the same language file - @include($path.'en/lang.php'); - if ($conf['lang'] != 'en') @include($path.$conf['lang'].'/lang.php'); - - $this->lang = $lang; - $this->localised = true; + global $conf; // definitely don't invoke "global $lang" + $path = DOKU_PLUGIN.$this->getPluginName().'/lang/'; + + $lang = array(); + // don't include once, in case several plugin components require the same language file + @include($path.'en/lang.php'); + if ($conf['lang'] != 'en') @include($path.$conf['lang'].'/lang.php'); + + $this->lang = $lang; + $this->localised = true; } // configuration methods diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index 762daa6b9..a0e77065e 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -41,13 +41,13 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $this->setupLocale(); if (!isset($auth)) { - $this->disabled = $this->lang['noauth']; + $this->disabled = $this->lang['noauth']; } else if (!$auth->canDo('getUsers')) { - $this->disabled = $this->lang['nosupport']; + $this->disabled = $this->lang['nosupport']; } else { - // we're good to go - $this->_auth = & $auth; + // we're good to go + $this->_auth = & $auth; } @@ -95,31 +95,31 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } if ($cmd != "search") { - $this->_start = $INPUT->int('start', 0); - $this->_filter = $this->_retrieveFilter(); + $this->_start = $INPUT->int('start', 0); + $this->_filter = $this->_retrieveFilter(); } switch($cmd){ - case "add" : $this->_addUser(); break; - case "delete" : $this->_deleteUser(); break; - case "modify" : $this->_modifyUser(); break; - case "edit" : $this->_editUser($param); break; - case "search" : $this->_setFilter($param); - $this->_start = 0; - break; - case "export" : $this->_export(); break; - case "import" : $this->_import(); break; - case "importfails" : $this->_downloadImportFailures(); break; + case "add" : $this->_addUser(); break; + case "delete" : $this->_deleteUser(); break; + case "modify" : $this->_modifyUser(); break; + case "edit" : $this->_editUser($param); break; + case "search" : $this->_setFilter($param); + $this->_start = 0; + break; + case "export" : $this->_export(); break; + case "import" : $this->_import(); break; + case "importfails" : $this->_downloadImportFailures(); break; } $this->_user_total = $this->_auth->canDo('getUserCount') ? $this->_auth->getUserCount($this->_filter) : -1; // page handling switch($cmd){ - case 'start' : $this->_start = 0; break; - case 'prev' : $this->_start -= $this->_pagesize; break; - case 'next' : $this->_start += $this->_pagesize; break; - case 'last' : $this->_start = $this->_user_total; break; + case 'start' : $this->_start = 0; break; + case 'prev' : $this->_start -= $this->_pagesize; break; + case 'next' : $this->_start += $this->_pagesize; break; + case 'last' : $this->_start = $this->_user_total; break; } $this->_validatePagination(); } @@ -151,9 +151,9 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { ptln("
"); if ($this->_user_total > 0) { - ptln("

".sprintf($this->lang['summary'],$this->_start+1,$this->_last,$this->_user_total,$this->_auth->getUserCount())."

"); + ptln("

".sprintf($this->lang['summary'],$this->_start+1,$this->_last,$this->_user_total,$this->_auth->getUserCount())."

"); } else { - ptln("

".sprintf($this->lang['nonefound'],$this->_auth->getUserCount())."

"); + ptln("

".sprintf($this->lang['nonefound'],$this->_auth->getUserCount())."

"); } ptln("
"); formSecurityToken(); @@ -174,25 +174,25 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { ptln(" "); if ($this->_user_total) { - ptln(" "); - foreach ($user_list as $user => $userinfo) { - extract($userinfo); - $groups = join(', ',$grps); - ptln(" "); - ptln(" "); - if ($editable) { - ptln(" 1, - 'do' => 'admin', - 'page' => 'usermanager', - 'sectok' => getSecurityToken())). - "\" title=\"".$this->lang['edit_prompt']."\">".hsc($user).""); - } else { - ptln(" ".hsc($user).""); + ptln(" "); + foreach ($user_list as $user => $userinfo) { + extract($userinfo); + $groups = join(', ',$grps); + ptln(" "); + ptln(" "); + if ($editable) { + ptln(" 1, + 'do' => 'admin', + 'page' => 'usermanager', + 'sectok' => getSecurityToken())). + "\" title=\"".$this->lang['edit_prompt']."\">".hsc($user).""); + } else { + ptln(" ".hsc($user).""); + } + ptln(" ".hsc($name)."".hsc($mail)."".hsc($groups).""); + ptln(" "); } - ptln(" ".hsc($name)."".hsc($mail)."".hsc($groups).""); - ptln(" "); - } - ptln(" "); + ptln(" "); } ptln(" "); @@ -226,29 +226,29 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $style = $this->_edit_user ? " class=\"edit_user\"" : ""; if ($this->_auth->canDo('addUser')) { - ptln(""); - print $this->locale_xhtml('add'); - ptln("
"); + ptln(""); + print $this->locale_xhtml('add'); + ptln("
"); - $this->_htmlUserForm('add',null,array(),4); + $this->_htmlUserForm('add',null,array(),4); - ptln("
"); - ptln("
"); + ptln("
"); + ptln(""); } if($this->_edit_user && $this->_auth->canDo('UserMod')){ - ptln(""); - print $this->locale_xhtml('edit'); - ptln("
"); + ptln(""); + print $this->locale_xhtml('edit'); + ptln("
"); - $this->_htmlUserForm('modify',$this->_edit_user,$this->_edit_userdata,4); + $this->_htmlUserForm('modify',$this->_edit_user,$this->_edit_userdata,4); - ptln("
"); - ptln("
"); + ptln(" "); + ptln(""); } if ($this->_auth->canDo('addUser')) { - $this->_htmlImportForm(); + $this->_htmlImportForm(); } ptln(""); } @@ -265,10 +265,10 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $notes = array(); if ($user) { - extract($userdata); - if (!empty($grps)) $groups = join(',',$grps); + extract($userdata); + if (!empty($grps)) $groups = join(',',$grps); } else { - $notes[] = sprintf($this->lang['note_group'],$conf['defaultgroup']); + $notes[] = sprintf($this->lang['note_group'],$conf['defaultgroup']); } ptln("",$indent); @@ -287,14 +287,14 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $this->_htmlInputField($cmd."_usergroups","usergroups",$this->lang["user_groups"],$groups,$this->_auth->canDo("modGroups"),$indent+6); if ($this->_auth->canDo("modPass")) { - if ($cmd == 'add') { - $notes[] = $this->lang['note_pass']; - } - if ($user) { - $notes[] = $this->lang['note_notify']; - } + if ($cmd == 'add') { + $notes[] = $this->lang['note_pass']; + } + if ($user) { + $notes[] = $this->lang['note_notify']; + } - ptln("", $indent); + ptln("", $indent); } ptln(" ",$indent); @@ -317,11 +317,11 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { ptln(" ",$indent); if ($notes) { - ptln("
    "); - foreach ($notes as $note) { - ptln("
  • ".$note."
  • ",$indent); - } - ptln("
"); + ptln("
    "); + foreach ($notes as $note) { + ptln("
  • ".$note."
  • ",$indent); + } + ptln("
"); } ptln(" ",$indent); ptln("",$indent); @@ -366,7 +366,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { ptln("_start."\" />",$indent); foreach ($this->_filter as $key => $filter) { - ptln("",$indent); + ptln("",$indent); } } @@ -432,52 +432,52 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { if (empty($user)) return false; if ($this->_auth->canDo('modPass')){ - if (empty($pass)){ - if($INPUT->has('usernotify')){ - $pass = auth_pwgen($user); - } else { - msg($this->lang['add_fail'], -1); - return false; + if (empty($pass)){ + if($INPUT->has('usernotify')){ + $pass = auth_pwgen($user); + } else { + msg($this->lang['add_fail'], -1); + return false; + } } - } } else { - if (!empty($pass)){ - msg($this->lang['add_fail'], -1); - return false; - } + if (!empty($pass)){ + msg($this->lang['add_fail'], -1); + return false; + } } if ($this->_auth->canDo('modName')){ - if (empty($name)){ - msg($this->lang['add_fail'], -1); - return false; - } + if (empty($name)){ + msg($this->lang['add_fail'], -1); + return false; + } } else { - if (!empty($name)){ - return false; - } + if (!empty($name)){ + return false; + } } if ($this->_auth->canDo('modMail')){ - if (empty($mail)){ - msg($this->lang['add_fail'], -1); - return false; - } + if (empty($mail)){ + msg($this->lang['add_fail'], -1); + return false; + } } else { - if (!empty($mail)){ - return false; - } + if (!empty($mail)){ + return false; + } } if ($ok = $this->_auth->triggerUserMod('create', array($user,$pass,$name,$mail,$grps))) { - msg($this->lang['add_ok'], 1); + msg($this->lang['add_ok'], 1); - if ($INPUT->has('usernotify') && $pass) { - $this->_notifyUser($user,$pass); - } + if ($INPUT->has('usernotify') && $pass) { + $this->_notifyUser($user,$pass); + } } else { - msg($this->lang['add_fail'], -1); + msg($this->lang['add_fail'], -1); } return $ok; @@ -503,12 +503,12 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $count = $this->_auth->triggerUserMod('delete', array($selected)); if ($count == count($selected)) { - $text = str_replace('%d', $count, $this->lang['delete_ok']); - msg("$text.", 1); + $text = str_replace('%d', $count, $this->lang['delete_ok']); + msg("$text.", 1); } else { - $part1 = str_replace('%d', $count, $this->lang['delete_ok']); - $part2 = str_replace('%d', (count($selected)-$count), $this->lang['delete_fail']); - msg("$part1, $part2",-1); + $part1 = str_replace('%d', $count, $this->lang['delete_ok']); + $part2 = str_replace('%d', (count($selected)-$count), $this->lang['delete_fail']); + msg("$part1, $part2",-1); } // invalidate all sessions @@ -529,8 +529,8 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { // no user found? if (!$userdata) { - msg($this->lang['edit_usermissing'],-1); - return false; + msg($this->lang['edit_usermissing'],-1); + return false; } $this->_edit_user = $user; @@ -559,18 +559,18 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $changes = array(); if ($newuser != $olduser) { - if (!$this->_auth->canDo('modLogin')) { // sanity check, shouldn't be possible - msg($this->lang['update_fail'],-1); - return false; - } + if (!$this->_auth->canDo('modLogin')) { // sanity check, shouldn't be possible + msg($this->lang['update_fail'],-1); + return false; + } - // check if $newuser already exists - if ($this->_auth->getUserData($newuser)) { - msg(sprintf($this->lang['update_exists'],$newuser),-1); - $re_edit = true; - } else { - $changes['user'] = $newuser; - } + // check if $newuser already exists + if ($this->_auth->getUserData($newuser)) { + msg(sprintf($this->lang['update_exists'],$newuser),-1); + $re_edit = true; + } else { + $changes['user'] = $newuser; + } } // generate password if left empty and notification is on @@ -588,18 +588,18 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $changes['grps'] = $newgrps; if ($ok = $this->_auth->triggerUserMod('modify', array($olduser, $changes))) { - msg($this->lang['update_ok'],1); + msg($this->lang['update_ok'],1); - if ($INPUT->has('usernotify') && $newpass) { - $notify = empty($changes['user']) ? $olduser : $newuser; - $this->_notifyUser($notify,$newpass); - } + if ($INPUT->has('usernotify') && $newpass) { + $notify = empty($changes['user']) ? $olduser : $newuser; + $this->_notifyUser($notify,$newpass); + } - // invalidate all sessions - io_saveFile($conf['cachedir'].'/sessionpurge',time()); + // invalidate all sessions + io_saveFile($conf['cachedir'].'/sessionpurge',time()); } else { - msg($this->lang['update_fail'],-1); + msg($this->lang['update_fail'],-1); } if (!empty($re_edit)) { @@ -615,13 +615,13 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { function _notifyUser($user, $password, $status_alert=true) { if ($sent = auth_sendPassword($user,$password)) { - if ($status_alert) { - msg($this->lang['notify_ok'], 1); - } + if ($status_alert) { + msg($this->lang['notify_ok'], 1); + } } else { - if ($status_alert) { - msg($this->lang['notify_fail'], -1); - } + if ($status_alert) { + msg($this->lang['notify_fail'], -1); + } } return $sent; @@ -656,12 +656,12 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $this->_filter = array(); if ($op == 'new') { - list($user,$pass,$name,$mail,$grps) = $this->_retrieveUser(false); + list($user,$pass,$name,$mail,$grps) = $this->_retrieveUser(false); - if (!empty($user)) $this->_filter['user'] = $user; - if (!empty($name)) $this->_filter['name'] = $name; - if (!empty($mail)) $this->_filter['mail'] = $mail; - if (!empty($grps)) $this->_filter['grps'] = join('|',$grps); + if (!empty($user)) $this->_filter['user'] = $user; + if (!empty($name)) $this->_filter['name'] = $name; + if (!empty($mail)) $this->_filter['mail'] = $mail; + if (!empty($grps)) $this->_filter['grps'] = join('|',$grps); } } @@ -684,7 +684,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { function _validatePagination() { if ($this->_start >= $this->_user_total) { - $this->_start = $this->_user_total - $this->_pagesize; + $this->_start = $this->_user_total - $this->_pagesize; } if ($this->_start < 0) $this->_start = 0; @@ -701,10 +701,10 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $buttons['start'] = $buttons['prev'] = ($this->_start == 0) ? $disabled : ''; if ($this->_user_total == -1) { - $buttons['last'] = $disabled; - $buttons['next'] = ''; + $buttons['last'] = $disabled; + $buttons['next'] = ''; } else { - $buttons['last'] = $buttons['next'] = (($this->_start + $this->_pagesize) >= $this->_user_total) ? $disabled : ''; + $buttons['last'] = $buttons['next'] = (($this->_start + $this->_pagesize) >= $this->_user_total) ? $disabled : ''; } return $buttons; @@ -803,9 +803,9 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { // save import failures into the session if (!headers_sent()) { - session_start(); - $_SESSION['import_failures'] = $this->_import_failures; - session_write_close(); + session_start(); + $_SESSION['import_failures'] = $this->_import_failures; + session_write_close(); } } -- cgit v1.2.3 From 0ea51e63908793de4c5d5fa2b4d82c2769fec559 Mon Sep 17 00:00:00 2001 From: Matt Perry Date: Fri, 23 Aug 2013 02:41:39 -0700 Subject: Fix CodeSniffer violations for PHP files Fix violations for Generic.PHP.LowerCaseConstant.Found --- lib/plugins/config/admin.php | 2 +- lib/plugins/config/settings/extra.class.php | 2 +- lib/plugins/plugin/admin.php | 4 ++-- lib/plugins/plugin/classes/ap_info.class.php | 2 +- lib/plugins/plugin/classes/ap_manage.class.php | 2 +- lib/plugins/revert/admin.php | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) (limited to 'lib') diff --git a/lib/plugins/config/admin.php b/lib/plugins/config/admin.php index 404560548..835d27775 100644 --- a/lib/plugins/config/admin.php +++ b/lib/plugins/config/admin.php @@ -52,7 +52,7 @@ class admin_plugin_config extends DokuWiki_Admin_Plugin { $this->_input = $INPUT->arr('config'); while (list($key) = each($this->_config->setting)) { - $input = isset($this->_input[$key]) ? $this->_input[$key] : NULL; + $input = isset($this->_input[$key]) ? $this->_input[$key] : null; if ($this->_config->setting[$key]->update($input)) { $this->_changed = true; } diff --git a/lib/plugins/config/settings/extra.class.php b/lib/plugins/config/settings/extra.class.php index 954178bc1..d0f99fa8f 100644 --- a/lib/plugins/config/settings/extra.class.php +++ b/lib/plugins/config/settings/extra.class.php @@ -8,7 +8,7 @@ if (!class_exists('setting_sepchar')) { class setting_sepchar extends setting_multichoice { - function setting_sepchar($key,$param=NULL) { + function setting_sepchar($key,$param=null) { $str = '_-.'; for ($i=0;$i_choices[] = $str{$i}; diff --git a/lib/plugins/plugin/admin.php b/lib/plugins/plugin/admin.php index de4de6aef..72c58620d 100644 --- a/lib/plugins/plugin/admin.php +++ b/lib/plugins/plugin/admin.php @@ -37,7 +37,7 @@ class admin_plugin_plugin extends DokuWiki_Admin_Plugin { /** * @var ap_manage */ - var $handler = NULL; + var $handler = null; var $functions = array('delete','update',/*'settings',*/'info'); // require a plugin name var $commands = array('manage','download','enable'); // don't require a plugin name @@ -109,7 +109,7 @@ class admin_plugin_plugin extends DokuWiki_Admin_Plugin { $this->setupLocale(); $this->_get_plugin_list(); - if ($this->handler === NULL) $this->handler = new ap_manage($this, $this->plugin); + if ($this->handler === null) $this->handler = new ap_manage($this, $this->plugin); ptln('
'); $this->handler->html(); diff --git a/lib/plugins/plugin/classes/ap_info.class.php b/lib/plugins/plugin/classes/ap_info.class.php index 44926c035..dfeb52b9d 100644 --- a/lib/plugins/plugin/classes/ap_info.class.php +++ b/lib/plugins/plugin/classes/ap_info.class.php @@ -15,7 +15,7 @@ class ap_info extends ap_manage { foreach ($component_list as $component) { - if (($obj = &plugin_load($component['type'],$component['name'],false,true)) === NULL) continue; + if (($obj = &plugin_load($component['type'],$component['name'],false,true)) === null) continue; $compname = explode('_',$component['name']); if($compname[1]){ diff --git a/lib/plugins/plugin/classes/ap_manage.class.php b/lib/plugins/plugin/classes/ap_manage.class.php index 3ec740dae..48be63050 100644 --- a/lib/plugins/plugin/classes/ap_manage.class.php +++ b/lib/plugins/plugin/classes/ap_manage.class.php @@ -2,7 +2,7 @@ class ap_manage { - var $manager = NULL; + var $manager = null; var $lang = array(); var $plugin = ''; var $downloaded = array(); diff --git a/lib/plugins/revert/admin.php b/lib/plugins/revert/admin.php index beff10ced..b65472e4c 100644 --- a/lib/plugins/revert/admin.php +++ b/lib/plugins/revert/admin.php @@ -157,7 +157,7 @@ class admin_plugin_revert extends DokuWiki_Admin_Plugin { echo ""; echo ' '; - echo html_wikilink(':'.$recent['id'],(useHeading('navigation'))?NULL:$recent['id']); + echo html_wikilink(':'.$recent['id'],(useHeading('navigation'))?null:$recent['id']); echo ' – '.htmlspecialchars($recent['sum']); echo ' '; -- cgit v1.2.3 From 089c81d581a43ab1cdf04ea3e7b22ce76e47ad48 Mon Sep 17 00:00:00 2001 From: Matt Perry Date: Fri, 23 Aug 2013 02:48:25 -0700 Subject: Fix CodeSniffer violations for PHP files Fix violations for Zend.Files.ClosingTag.NotAllowed --- lib/tpl/dokuwiki/tpl_footer.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/tpl/dokuwiki/tpl_footer.php b/lib/tpl/dokuwiki/tpl_footer.php index b7dc9c631..00417de9c 100644 --- a/lib/tpl/dokuwiki/tpl_footer.php +++ b/lib/tpl/dokuwiki/tpl_footer.php @@ -29,4 +29,5 @@ if (!defined('DOKU_INC')) die();
- + Date: Fri, 23 Aug 2013 04:33:28 -0700 Subject: Fix grammar for the hidepages description --- lib/plugins/config/lang/en/lang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/plugins/config/lang/en/lang.php b/lib/plugins/config/lang/en/lang.php index 67d3ce51f..5031e84ca 100644 --- a/lib/plugins/config/lang/en/lang.php +++ b/lib/plugins/config/lang/en/lang.php @@ -83,7 +83,7 @@ $lang['camelcase'] = 'Use CamelCase for links'; $lang['deaccent'] = 'How to clean pagenames'; $lang['useheading'] = 'Use first heading for pagenames'; $lang['sneaky_index'] = 'By default, DokuWiki will show all namespaces in the sitemap. Enabling this option will hide those where the user doesn\'t have read permissions. This might result in hiding of accessable subnamespaces which may make the index unusable with certain ACL setups.'; -$lang['hidepages'] = 'Hide pages matching this regular expressions from search, the sitemap and other automatic indexes'; +$lang['hidepages'] = 'Hide pages matching this regular expression from search, the sitemap and other automatic indexes'; /* Authentication Settings */ $lang['useacl'] = 'Use access control lists'; -- cgit v1.2.3 From 919c95be775e8c990f35db235aa8323021548b5a Mon Sep 17 00:00:00 2001 From: Matt Perry Date: Fri, 23 Aug 2013 04:34:49 -0700 Subject: Fix grammar for allowdebug description Add a full stop between sentences for the allowdebug description. --- lib/plugins/config/lang/en/lang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/plugins/config/lang/en/lang.php b/lib/plugins/config/lang/en/lang.php index 5031e84ca..3302b5bd1 100644 --- a/lib/plugins/config/lang/en/lang.php +++ b/lib/plugins/config/lang/en/lang.php @@ -63,7 +63,7 @@ $lang['baseurl'] = 'Server URL (eg. http://www.yourserver.com). $lang['cookiedir'] = 'Cookie path. Leave blank for using baseurl.'; $lang['dmode'] = 'Directory creation mode'; $lang['fmode'] = 'File creation mode'; -$lang['allowdebug'] = 'Allow debug disable if not needed!'; +$lang['allowdebug'] = 'Allow debug. Disable if not needed!'; /* Display Settings */ $lang['recent'] = 'Number of entries per page in the recent changes'; -- cgit v1.2.3 From a44e6f809d50d76fb4bb76b483d3022d2481eee6 Mon Sep 17 00:00:00 2001 From: Matt Perry Date: Fri, 23 Aug 2013 04:37:02 -0700 Subject: Fix grammar in proxy_except description Remove trailing preposition. --- lib/plugins/config/lang/en/lang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/plugins/config/lang/en/lang.php b/lib/plugins/config/lang/en/lang.php index 3302b5bd1..cdef85a85 100644 --- a/lib/plugins/config/lang/en/lang.php +++ b/lib/plugins/config/lang/en/lang.php @@ -181,7 +181,7 @@ $lang['proxy____port'] = 'Proxy port'; $lang['proxy____user'] = 'Proxy user name'; $lang['proxy____pass'] = 'Proxy password'; $lang['proxy____ssl'] = 'Use SSL to connect to proxy'; -$lang['proxy____except'] = 'Regular expression to match URLs for which the proxy should be skipped for.'; +$lang['proxy____except'] = 'Regular expression to match URLs for which the proxy should be skipped.'; /* Safemode Hack */ $lang['safemodehack'] = 'Enable safemode hack'; -- cgit v1.2.3 From c404cb3b0b4946f6308f66b6324a24489b2ef5b8 Mon Sep 17 00:00:00 2001 From: Matt Perry Date: Fri, 23 Aug 2013 03:08:41 -0700 Subject: Fix CodeSniffer violations for PHP files Fix violations for Squiz.Commenting.DocCommentAlignment.SpaceBeforeTag Conflicts: inc/parser/xhtml.php --- lib/plugins/config/settings/config.class.php | 44 ++++++++++++++-------------- lib/plugins/usermanager/admin.php | 4 +-- 2 files changed, 24 insertions(+), 24 deletions(-) (limited to 'lib') diff --git a/lib/plugins/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php index 0b9fa8103..182a4c65f 100644 --- a/lib/plugins/config/settings/config.class.php +++ b/lib/plugins/config/settings/config.class.php @@ -1,9 +1,9 @@ - * @author Ben Coburn + * @author Chris Smith + * @author Ben Coburn */ @@ -30,7 +30,7 @@ if (!class_exists('configuration')) { var $_plugin_list = null; /** - * constructor + * constructor */ function configuration($datafile) { global $conf, $config_cascade; @@ -246,8 +246,8 @@ if (!class_exists('configuration')) { } /** - * not used ... conf's contents are an array! - * reduce any multidimensional settings to one dimension using CM_KEYMARKER + * not used ... conf's contents are an array! + * reduce any multidimensional settings to one dimension using CM_KEYMARKER */ function _flatten($conf,$prefix='') { @@ -383,7 +383,7 @@ if (!class_exists('setting')) { } /** - * receives current values for the setting $key + * receives current values for the setting $key */ function initialize($default, $local, $protected) { if (isset($default)) $this->_default = $default; @@ -392,12 +392,12 @@ if (!class_exists('setting')) { } /** - * update changed setting with user provided value $input - * - if changed value fails error check, save it to $this->_input (to allow echoing later) - * - if changed value passes error check, set $this->_local to the new value + * update changed setting with user provided value $input + * - if changed value fails error check, save it to $this->_input (to allow echoing later) + * - if changed value passes error check, set $this->_local to the new value * - * @param mixed $input the new value - * @return boolean true if changed, false otherwise (incl. on error) + * @param mixed $input the new value + * @return boolean true if changed, false otherwise (incl. on error) */ function update($input) { if (is_null($input)) return false; @@ -417,7 +417,7 @@ if (!class_exists('setting')) { } /** - * @return array(string $label_html, string $input_html) + * @return array(string $label_html, string $input_html) */ function html(&$plugin, $echo=false) { $value = ''; @@ -443,7 +443,7 @@ if (!class_exists('setting')) { } /** - * generate string to save setting value to file according to $fmt + * generate string to save setting value to file according to $fmt */ function out($var, $fmt='php') { @@ -678,10 +678,10 @@ if (!class_exists('setting_email')) { var $_placeholders = false; /** - * update setting with user provided value $input - * if value fails error check, save it + * update setting with user provided value $input + * if value fails error check, save it * - * @return boolean true if changed, false otherwise (incl. on error) + * @return boolean true if changed, false otherwise (incl. on error) */ function update($input) { if (is_null($input)) return false; @@ -1102,12 +1102,12 @@ if (!class_exists('setting_regex')){ var $_pregflags = 'ui'; // regex pattern modifiers to be used in testing input /** - * update changed setting with user provided value $input - * - if changed value fails error check, save it to $this->_input (to allow echoing later) - * - if changed value passes error check, set $this->_local to the new value + * update changed setting with user provided value $input + * - if changed value fails error check, save it to $this->_input (to allow echoing later) + * - if changed value passes error check, set $this->_local to the new value * - * @param mixed $input the new value - * @return boolean true if changed, false otherwise (incl. on error) + * @param mixed $input the new value + * @return boolean true if changed, false otherwise (incl. on error) */ function update($input) { diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index a0e77065e..3dba5a86e 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -58,8 +58,8 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } /** - * return prompt for admin menu - */ + * return prompt for admin menu + */ function getMenuText($language) { if (!is_null($this->_auth)) -- cgit v1.2.3 From f9f54ce2bb33d8bd5881929e1dea07520f704600 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Urban=C4=8Di=C4=8D?= Date: Mon, 26 Aug 2013 23:31:40 +0200 Subject: translation update --- lib/plugins/acl/lang/sl/lang.php | 5 +++-- lib/plugins/authmysql/lang/sl/settings.php | 11 +++++++++++ lib/plugins/authpgsql/lang/sl/settings.php | 8 ++++++++ lib/plugins/plugin/lang/sl/lang.php | 5 +++-- lib/plugins/popularity/lang/sl/lang.php | 5 +++-- lib/plugins/revert/lang/sl/lang.php | 5 +++-- lib/plugins/usermanager/lang/sl/lang.php | 17 +++++++++++++++-- 7 files changed, 46 insertions(+), 10 deletions(-) create mode 100644 lib/plugins/authmysql/lang/sl/settings.php create mode 100644 lib/plugins/authpgsql/lang/sl/settings.php (limited to 'lib') diff --git a/lib/plugins/acl/lang/sl/lang.php b/lib/plugins/acl/lang/sl/lang.php index 44e45e491..303b18cff 100644 --- a/lib/plugins/acl/lang/sl/lang.php +++ b/lib/plugins/acl/lang/sl/lang.php @@ -1,7 +1,8 @@ * @author Boštjan Seničar * @author Gregor Skumavc (grega.skumavc@gmail.com) diff --git a/lib/plugins/authmysql/lang/sl/settings.php b/lib/plugins/authmysql/lang/sl/settings.php new file mode 100644 index 000000000..5e82816df --- /dev/null +++ b/lib/plugins/authmysql/lang/sl/settings.php @@ -0,0 +1,11 @@ + + */ +$lang['database'] = 'Podatkovna zbirka za uporabo'; +$lang['debug_o_0'] = 'brez'; +$lang['debug_o_1'] = 'le ob napakah'; +$lang['debug_o_2'] = 'vse poizvedbe SQL'; diff --git a/lib/plugins/authpgsql/lang/sl/settings.php b/lib/plugins/authpgsql/lang/sl/settings.php new file mode 100644 index 000000000..4c369abc0 --- /dev/null +++ b/lib/plugins/authpgsql/lang/sl/settings.php @@ -0,0 +1,8 @@ + + */ +$lang['database'] = 'Podatkovna zbirka za uporabo'; diff --git a/lib/plugins/plugin/lang/sl/lang.php b/lib/plugins/plugin/lang/sl/lang.php index 3e5f8c8af..e205c57f5 100644 --- a/lib/plugins/plugin/lang/sl/lang.php +++ b/lib/plugins/plugin/lang/sl/lang.php @@ -1,7 +1,8 @@ * @author Boštjan Seničar * @author Gregor Skumavc (grega.skumavc@gmail.com) diff --git a/lib/plugins/popularity/lang/sl/lang.php b/lib/plugins/popularity/lang/sl/lang.php index 5c92dd7c4..abde6555b 100644 --- a/lib/plugins/popularity/lang/sl/lang.php +++ b/lib/plugins/popularity/lang/sl/lang.php @@ -1,7 +1,8 @@ * @author Boštjan Seničar * @author Gregor Skumavc (grega.skumavc@gmail.com) * @author Matej Urbančič (mateju@svn.gnome.org) + * @author Matej Urbančič */ $lang['menu'] = 'Upravljanje uporabnikov'; $lang['noauth'] = '(overjanje istovetnosti uporabnikov ni na voljo)'; @@ -28,6 +30,9 @@ $lang['search'] = 'Iskanje'; $lang['search_prompt'] = 'Poišči'; $lang['clear'] = 'Počisti filter iskanja'; $lang['filter'] = 'Filter'; +$lang['import'] = 'Uvozi nove uporabnike'; +$lang['line'] = 'Številka vrstice'; +$lang['error'] = 'Sporočilo napake'; $lang['summary'] = 'Izpisani so uporabniki %1$d-%2$d od skupno %3$d. Vseh uporabnikov je %4$d.'; $lang['nonefound'] = 'Ni najdenih uporabnikov. Vseh uporabnikov je %d.'; $lang['delete_ok'] = '%d uporabnikov je izbrisanih'; @@ -48,3 +53,11 @@ $lang['add_ok'] = 'Uporabnik je uspešno dodan'; $lang['add_fail'] = 'Dodajanje uporabnika je spodletelo'; $lang['notify_ok'] = 'Obvestilno sporočilo je poslano.'; $lang['notify_fail'] = 'Obvestilnega sporočila ni mogoče poslati.'; +$lang['import_error_fields'] = 'Neustrezno število polj; najdenih je %d, zahtevana pa so 4.'; +$lang['import_error_baduserid'] = 'Manjka ID uporabnika'; +$lang['import_error_badname'] = 'Napačno navedeno ime'; +$lang['import_error_badmail'] = 'Napačno naveden elektronski naslov'; +$lang['import_error_upload'] = 'Uvoz je spodletel. Datoteke CSV ni mogoče naložiti ali pa je prazna.'; +$lang['import_error_readfail'] = 'Uvoz je spodletel. Ni mogoče prebrati vsebine datoteke.'; +$lang['import_error_create'] = 'Ni mogoče ustvariti računa uporabnika'; +$lang['import_notify_fail'] = 'Obvestilnega sporočila za uvoženega uporabnika %s z elektronskim naslovom %s ni mogoče poslati.'; -- cgit v1.2.3 From d91ab76f52f59d264301e18c28a0d3bae996fab8 Mon Sep 17 00:00:00 2001 From: Matt Perry Date: Tue, 27 Aug 2013 01:18:10 -0700 Subject: Fix CodeSniffer violations Fix violations for the following sniff DokuWiki.Functions.OpeningFunctionBrace Also removed an extraneous semicolon. --- lib/exe/css.php | 3 +-- lib/exe/js.php | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) (limited to 'lib') diff --git a/lib/exe/css.php b/lib/exe/css.php index 9e1e22e1a..60e17ae82 100644 --- a/lib/exe/css.php +++ b/lib/exe/css.php @@ -465,8 +465,7 @@ function css_pluginstyles($mediatype='screen'){ * * @author Gabriel Birke */ -function css_moveimports($css) -{ +function css_moveimports($css) { if(!preg_match_all('/@import\s+(?:url\([^)]+\)|"[^"]+")\s*[^;]*;\s*/', $css, $matches, PREG_OFFSET_CAPTURE)) { return $css; } diff --git a/lib/exe/js.php b/lib/exe/js.php index 4b4b598de..76238a81b 100644 --- a/lib/exe/js.php +++ b/lib/exe/js.php @@ -194,8 +194,7 @@ function js_pluginscripts(){ * * @author Gabriel Birke */ -function js_pluginstrings() -{ +function js_pluginstrings() { global $conf; $pluginstrings = array(); $plugins = plugin_list(); -- cgit v1.2.3 From f591e7b075b936baf7357625ef7edb37fe4feaa3 Mon Sep 17 00:00:00 2001 From: Matt Perry Date: Tue, 27 Aug 2013 01:45:47 -0700 Subject: Fix CodeSniffer violations Fix violations for the following sniff DokuWiki.WhiteSpace.ScopeIndent --- lib/exe/indexer.php | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'lib') diff --git a/lib/exe/indexer.php b/lib/exe/indexer.php index 57bee8925..3ab117736 100644 --- a/lib/exe/indexer.php +++ b/lib/exe/indexer.php @@ -31,12 +31,12 @@ else header('Content-Type: text/plain'); $tmp = array(); // No event data $evt = new Doku_Event('INDEXER_TASKS_RUN', $tmp); if ($evt->advise_before()) { - runIndexer() or - runSitemapper() or - sendDigest() or - runTrimRecentChanges() or - runTrimRecentChanges(true) or - $evt->advise_after(); + runIndexer() or + runSitemapper() or + sendDigest() or + runTrimRecentChanges() or + runTrimRecentChanges(true) or + $evt->advise_after(); } if(!$output) { @@ -85,13 +85,13 @@ function runTrimRecentChanges($media_changes = false) { $out_lines = array(); for ($i=0; $i Date: Sun, 1 Sep 2013 20:24:53 +0100 Subject: Removed old default template The old 'default' template was deprecated with the release of the new 'dokuwiki' template (2012-10-13). It is still available in a separate repository here: https://github.com/dokufreaks/template-default But no-one in the core development team intends to maintain this template anymore. So, anyone willing to adopt it is welcome to clone it and make it your own. --- lib/tpl/default/_admin.css | 48 -- lib/tpl/default/_fileuploader.css | 111 ---- lib/tpl/default/_linkwiz.css | 40 -- lib/tpl/default/_mediamanager.css | 475 --------------- lib/tpl/default/_mediaoptions.css | 18 - lib/tpl/default/_subscription.css | 21 - lib/tpl/default/_tabs.css | 50 -- lib/tpl/default/design.css | 863 ---------------------------- lib/tpl/default/detail.php | 86 --- lib/tpl/default/footer.html | 41 -- lib/tpl/default/images/UWEB.png | Bin 462 -> 0 bytes lib/tpl/default/images/UWEBshadow.png | Bin 900 -> 0 bytes lib/tpl/default/images/apple-touch-icon.png | Bin 17728 -> 0 bytes lib/tpl/default/images/bullet.gif | Bin 50 -> 0 bytes lib/tpl/default/images/button-cc.gif | Bin 359 -> 0 bytes lib/tpl/default/images/button-css.png | Bin 299 -> 0 bytes lib/tpl/default/images/button-donate.gif | Bin 187 -> 0 bytes lib/tpl/default/images/button-dw.png | Bin 404 -> 0 bytes lib/tpl/default/images/button-php.gif | Bin 207 -> 0 bytes lib/tpl/default/images/button-rss.png | Bin 191 -> 0 bytes lib/tpl/default/images/button-xhtml.png | Bin 321 -> 0 bytes lib/tpl/default/images/buttonshadow.png | Bin 218 -> 0 bytes lib/tpl/default/images/closed.gif | Bin 54 -> 0 bytes lib/tpl/default/images/favicon.ico | Bin 7406 -> 0 bytes lib/tpl/default/images/inputshadow.png | Bin 93 -> 0 bytes lib/tpl/default/images/link_icon.gif | Bin 168 -> 0 bytes lib/tpl/default/images/mail_icon.gif | Bin 151 -> 0 bytes lib/tpl/default/images/open.gif | Bin 54 -> 0 bytes lib/tpl/default/images/resizecol.png | Bin 225 -> 0 bytes lib/tpl/default/images/tocdot2.gif | Bin 50 -> 0 bytes lib/tpl/default/images/windows.gif | Bin 170 -> 0 bytes lib/tpl/default/layout.css | 79 --- lib/tpl/default/main.php | 135 ----- lib/tpl/default/media.css | 224 -------- lib/tpl/default/mediamanager.php | 45 -- lib/tpl/default/print.css | 228 -------- lib/tpl/default/rtl.css | 162 ------ lib/tpl/default/style.ini | 77 --- lib/tpl/default/template.info.txt | 7 - 39 files changed, 2710 deletions(-) delete mode 100644 lib/tpl/default/_admin.css delete mode 100644 lib/tpl/default/_fileuploader.css delete mode 100644 lib/tpl/default/_linkwiz.css delete mode 100644 lib/tpl/default/_mediamanager.css delete mode 100644 lib/tpl/default/_mediaoptions.css delete mode 100644 lib/tpl/default/_subscription.css delete mode 100644 lib/tpl/default/_tabs.css delete mode 100644 lib/tpl/default/design.css delete mode 100644 lib/tpl/default/detail.php delete mode 100644 lib/tpl/default/footer.html delete mode 100644 lib/tpl/default/images/UWEB.png delete mode 100644 lib/tpl/default/images/UWEBshadow.png delete mode 100644 lib/tpl/default/images/apple-touch-icon.png delete mode 100644 lib/tpl/default/images/bullet.gif delete mode 100644 lib/tpl/default/images/button-cc.gif delete mode 100644 lib/tpl/default/images/button-css.png delete mode 100644 lib/tpl/default/images/button-donate.gif delete mode 100644 lib/tpl/default/images/button-dw.png delete mode 100644 lib/tpl/default/images/button-php.gif delete mode 100644 lib/tpl/default/images/button-rss.png delete mode 100644 lib/tpl/default/images/button-xhtml.png delete mode 100644 lib/tpl/default/images/buttonshadow.png delete mode 100644 lib/tpl/default/images/closed.gif delete mode 100644 lib/tpl/default/images/favicon.ico delete mode 100644 lib/tpl/default/images/inputshadow.png delete mode 100644 lib/tpl/default/images/link_icon.gif delete mode 100644 lib/tpl/default/images/mail_icon.gif delete mode 100644 lib/tpl/default/images/open.gif delete mode 100644 lib/tpl/default/images/resizecol.png delete mode 100644 lib/tpl/default/images/tocdot2.gif delete mode 100644 lib/tpl/default/images/windows.gif delete mode 100644 lib/tpl/default/layout.css delete mode 100644 lib/tpl/default/main.php delete mode 100644 lib/tpl/default/media.css delete mode 100644 lib/tpl/default/mediamanager.php delete mode 100644 lib/tpl/default/print.css delete mode 100644 lib/tpl/default/rtl.css delete mode 100644 lib/tpl/default/style.ini delete mode 100644 lib/tpl/default/template.info.txt (limited to 'lib') diff --git a/lib/tpl/default/_admin.css b/lib/tpl/default/_admin.css deleted file mode 100644 index 6c8066ba6..000000000 --- a/lib/tpl/default/_admin.css +++ /dev/null @@ -1,48 +0,0 @@ -#admin__version { - clear:left; - float: right; - color: __text_neu__; -} - -.dokuwiki ul.admin_tasks { - font-size: 115%; - float: left; - width: 40%; - list-style-type: none; -} - -.dokuwiki ul.admin_tasks li { - line-height: 22px; - padding-left: 35px; - margin: 1em 0; - background: transparent none no-repeat scroll 0 0; - text-align: left; -} - -.dokuwiki ul.admin_tasks li div.li { - font-weight: bold; -} - -.dokuwiki ul.admin_tasks li.admin_acl { - background-image: url(../../images/admin/acl.png); -} - -.dokuwiki ul.admin_tasks li.admin_usermanager { - background-image: url(../../images/admin/usermanager.png); -} - -.dokuwiki ul.admin_tasks li.admin_plugin { - background-image: url(../../images/admin/plugin.png); -} - -.dokuwiki ul.admin_tasks li.admin_config { - background-image: url(../../images/admin/config.png); -} - -.dokuwiki ul.admin_tasks li.admin_revert { - background-image: url(../../images/admin/revert.png); -} - -.dokuwiki ul.admin_tasks li.admin_popularity { - background-image: url(../../images/admin/popularity.png); -} diff --git a/lib/tpl/default/_fileuploader.css b/lib/tpl/default/_fileuploader.css deleted file mode 100644 index d06bfd519..000000000 --- a/lib/tpl/default/_fileuploader.css +++ /dev/null @@ -1,111 +0,0 @@ - -.qq-uploader { - position: relative; - width: 100%; -} - -.qq-uploader .error { - color: #f00; - background-color: #fff; -} - -/* select file button */ - -.qq-upload-button { - display: inline-block; - border: 1px solid __border__; - color: __text__; - background: __background__ url(images/buttonshadow.png) repeat-x bottom; - text-decoration: none; - font-size: 100%; - cursor: pointer; - margin: 1px 1px 5px; - padding: 0.125em 0.4em; -} - -* html .qq-upload-button, -*+html .qq-upload-button { - display: inline; -} - -.qq-upload-button-focus { - outline: 1px dotted; -} - -/* drop area */ - -.qq-upload-drop-area { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - min-height: 70px; - z-index: 2; - background: __background_neu__; - color: __text__; - text-align: center; -} - -.qq-upload-drop-area span { - display: block; - position: absolute; - top: 50%; - width: 100%; - margin-top: -8px; - font-size: 120%; -} - -.qq-upload-drop-area-active { - background: __background_alt__; -} - -/* list of files to upload */ - -div.qq-uploader ul { - margin: 0; - list-style: none; -} - -.qq-uploader li { - margin-bottom: 5px; - color: __text__; -} - -.qq-uploader li span, -.qq-uploader li input, -.qq-uploader li a { - margin-right: 5px; -} - -.qq-upload-file { - display: block; - font-weight: bold; -} - -.qq-upload-spinner { - display: inline-block; - background: url("../../images/throbber.gif"); - width: 15px; - height: 15px; - vertical-align: text-bottom; -} - -.qq-upload-size, -.qq-upload-cancel { - font-size: 85%; -} - -.qq-upload-failed-text { - display: none; -} -.qq-upload-fail .qq-upload-failed-text { - display: inline; -} - -.qq-action-container * { - vertical-align: middle; -} -.qq-overwrite-check input { - margin-left: 10px; -} diff --git a/lib/tpl/default/_linkwiz.css b/lib/tpl/default/_linkwiz.css deleted file mode 100644 index ca8812867..000000000 --- a/lib/tpl/default/_linkwiz.css +++ /dev/null @@ -1,40 +0,0 @@ -#link__wiz { -} - -#link__wiz_result { - background-color: __background__; - width: 293px; - height: 193px; - overflow: auto; - border: 1px solid __border__; - margin: 3px auto; - text-align: left; -} - -#link__wiz_result div.type_u { - padding: 3px 3px 3px 22px; - background: transparent url(../../images/up.png) 3px 3px no-repeat; -} - -#link__wiz_result div.type_f { - padding: 3px 3px 3px 22px; - background: transparent url(../../images/page.png) 3px 3px no-repeat; -} - -#link__wiz_result div.type_d { - padding: 3px 3px 3px 22px; - background: transparent url(../../images/ns.png) 3px 3px no-repeat; -} - -#link__wiz_result div.even { - background-color: __background_neu__; -} - -#link__wiz_result div.selected { - background-color: __background_alt__; -} - -#link__wiz_result span { - display: block; - color: __text_neu__; -} diff --git a/lib/tpl/default/_mediamanager.css b/lib/tpl/default/_mediamanager.css deleted file mode 100644 index 2ce345e40..000000000 --- a/lib/tpl/default/_mediamanager.css +++ /dev/null @@ -1,475 +0,0 @@ - -/*____________ Layout ____________*/ - -#mediamanager__page h1 { - margin: 0 0 .5em; -} - -#mediamanager__page { - min-width: 800px; - width: 100%; - text-align: left; -} - -#mediamanager__page .panel { - float: left; -} - -#mediamanager__page .namespaces { - width: 15%; - min-width: 120px; -} -#mediamanager__page .filelist { - width: 50%; - min-width: 400px; -} -#mediamanager__page .file { - width: 35%; - min-width: 280px; -} - -#mediamanager__page .panelHeader { - background-color: __background_alt__; - margin: 0 10px 10px 0; - padding: 10px 10px 8px; - text-align: left; - min-height: 20px; - overflow: hidden; -} -[dir=rtl] #mediamanager__page .panelContent { - text-align: right; -} - - -#mediamanager__page .panelContent { - overflow-y: auto; - overflow-x: hidden; - padding: 0; - margin: 0 10px 10px 0; - position: relative; -} - -#mediamanager__page .file .panelHeader, -#mediamanager__page .file .panelContent { - margin-right: 0; -} - -#mediamanager__page .ui-resizable-e { - width: 6px; - right: 2px; - background: transparent url(images/resizecol.png) center center no-repeat; -} -#mediamanager__page .ui-resizable-e:hover { - background-color: __background_alt__; -} - - -/*____________ Namespaces tree ____________*/ - -[dir=rtl] #mediamanager__page .namespaces { - text-align: right; -} - -#mediamanager__page .namespaces h2 { - font-size: 1em; - display: inline-block; - border-width: 0; - padding: .3em .8em; - margin: 0 .3em 0 0; - border-radius: .5em .5em 0 0; - font-weight: normal; - background-color: __background_alt__; - color: __text__; - line-height: 1.5em; -} -* html #mediamanager__page .namespaces h2, -*+html #mediamanager__page .namespaces h2 { - display: inline; -} -[dir=rtl] #mediamanager__page .namespaces h2 { - margin-right: 10px; -} - -#mediamanager__page .namespaces ul { - margin-left: .2em; - margin-bottom: 0; - padding: 0; - list-style: none; -} -[dir=rtl] #mediamanager__page .namespaces ul { - margin-left: 0; - margin-right: .2em; -} - -#mediamanager__page .namespaces ul ul { - margin-left: 1em; -} -[dir=rtl] #mediamanager__page .namespaces ul ul { - margin-left: 0; - margin-right: 1em; -} -#mediamanager__page .namespaces ul ul li { - margin: 0; -} - - -#mediamanager__page .namespaces ul .selected { - background-color: __highlight__; - font-weight: bold; -} - -/*____________ Panel header ____________*/ - -#mediamanager__page .panelHeader h3 { - float: left; - font-weight: normal; - font-size: 1em; - padding: 0; - margin: 0 0 3px; -} - -#mediamanager__page .panelHeader form.options { - float: right; - margin-top: -3px; -} - -#mediamanager__page .panelHeader ul { - list-style: none; - margin: 0; - padding: 0; -} -#mediamanager__page .panelHeader ul li { - color: __text__; - float: left; - line-height: 1; - padding-left: 3px; -} - -#mediamanager__page .panelHeader ul li.listType { - padding-left: 30px; - background: url('../../images/icon-list.png') 3px 1px no-repeat; -} -#mediamanager__page .panelHeader ul li.sortBy { - padding-left: 30px; - background: url('../../images/icon-sort.png') 3px 1px no-repeat; -} - -#mediamanager__page .panelHeader form.options .ui-buttonset label{ - font-size: 90%; - margin-right: -0.4em; -} -#mediamanager__page .panelHeader form.options .ui-buttonset .ui-button-text { - padding: .4em .7em; - line-height: 1; -} - -/*____________ File list ____________*/ - -#mediamanager__page .filelist ul { - padding: 0; - margin: 0; -} -[dir=rtl] #mediamanager__page .filelist ul.tabs { - margin-right: 10px; -} - -#mediamanager__page .filelist .panelContent ul li:hover { - background-color: __background_alt__; -} - -#mediamanager__page .filelist li dt a { - vertical-align: middle; - display: table-cell; - overflow: hidden; -} -* html #mediamanager__page .filelist .thumbs li dt a, -*+html #mediamanager__page .filelist .thumbs li dt a { - display: block; -} -* html #mediamanager__page .filelist .rows li dt a, -*+html #mediamanager__page .filelist .rows li dt a { - display: inline; -} - -/* thumbs */ - -#mediamanager__page .filelist .thumbs li { - width: 100px; - min-height: 130px; - display: inline-block; - display: -moz-inline-stack; - /* the right margin should visually be 10px, but because of its inline-block nature the whitespace inbetween is about 4px more */ - margin: 0 6px 10px 0; - background-color: __background_neu__; - color: __text__; - padding: 5px; - vertical-align: top; - text-align: center; - position: relative; - line-height: 1.2; -} -[dir=rtl] #mediamanager__page .filelist .thumbs li { - margin-right: 0; - margin-left: 6px; -} -* html #mediamanager__page .filelist .thumbs li, -*+html #mediamanager__page .filelist .thumbs li { - display: inline; - zoom: 1; -} - -#mediamanager__page .filelist .thumbs li dt a { - width: 100px; - height: 90px; -} - -#mediamanager__page .filelist .thumbs li dt a img { - max-width: 90px; - max-height: 90px; -} - -#mediamanager__page .filelist .thumbs li .name, -#mediamanager__page .filelist .thumbs li .size, -#mediamanager__page .filelist .thumbs li .filesize, -#mediamanager__page .filelist .thumbs li .date { - display: block; - overflow: hidden; - text-overflow: ellipsis; - width: 90px; - white-space: nowrap; -} -#mediamanager__page .filelist .thumbs li .name { - padding: 5px 0; - font-weight: bold; -} -#mediamanager__page .filelist .thumbs li .date { - font-style: italic; - white-space: normal; -} - -/* rows */ - -#mediamanager__page .filelist .rows li { - list-style: none; - display: block; - position: relative; - max-height: 50px; - margin: 0; - margin-bottom: 3px; - background-color: __background__; - color: __text__; - overflow: hidden; -} - -#mediamanager__page .filelist .rows li:nth-child(2n+1) { - background-color: __background_neu__; -} - -#mediamanager__page .filelist .rows li dt { - float: left; - width: 10%; - height: 40px; - text-align: center; -} - -#mediamanager__page .filelist .rows li dt a { - width: 100px; - height: 40px; -} - -#mediamanager__page .filelist .rows li dt a img { - max-width: 40px; - max-height: 40px; -} - -#mediamanager__page .filelist .rows li .name, -#mediamanager__page .filelist .rows li .size, -#mediamanager__page .filelist .rows li .filesize, -#mediamanager__page .filelist .rows li .date { - overflow: hidden; - text-overflow: ellipsis; - float: left; - margin-left: 1%; - white-space: nowrap; -} - -#mediamanager__page .filelist .rows li .name { - width: 30%; - font-weight: bold; -} -#mediamanager__page .filelist .rows li .size, -#mediamanager__page .filelist .rows li .filesize { - width: 15%; -} -#mediamanager__page .filelist .rows li .date { - width: 20%; - font-style: italic; - white-space: normal; -} - -/*____________ Upload panel ____________*/ - -#mediamanager__page div.upload { - padding-bottom: 0.5em; -} - -#media__content #mediamanager__uploader { - border-bottom: 1px solid __border__; - padding-bottom: 0.5em; -} - -/*____________ File preview ____________*/ - -#mediamanager__page .file ul.actions { - text-align: center; - margin: 0 0 5px; - list-style: none; -} -#mediamanager__page .file ul.actions li { - display: inline; -} - -#mediamanager__page .file div.image { - margin-bottom: 5px; - text-align: center; -} - -#mediamanager__page .file div.image img { - width: 100%; -} - -#mediamanager__page .file dl { -} -#mediamanager__page .file dl dt { - font-weight: bold; - display: block; - background-color: __background_alt__; -} -#mediamanager__page .file dl dd { - display: block; - background-color: __background_neu__; -} - - -/*____________ Meta data edit form ____________*/ - -#mediamanager__page form.meta div.row { - margin-bottom: 5px; -} - -#mediamanager__page form.meta label span { - display: block; -} -[dir=rtl] #mediamanager__page form.meta label span { - text-align: right; -} - -#mediamanager__page form.meta input { - width: 50%; -} - -#mediamanager__page form.meta input.button { - width: auto; -} - -#mediamanager__page form.meta textarea.edit { - height: 6em; - width: 95%; - min-width: 95%; - max-width: 95%; -} - -/*____________ Revisions form ____________*/ - -#mediamanager__page form.changes ul { - margin-left: 10px; - list-style-type: none; -} - -#mediamanager__page form.changes ul li div.li div { - font-size: 90%; - color: __text_neu__; - padding-left: 18px; -} - -#mediamanager__page form.changes ul li div.li input { - position: relative; - top: 1px; -} - -/* File diff */ - -#mediamanager__diff table { - table-layout: fixed; -} - -#mediamanager__diff td, -#mediamanager__diff th { - width: 48%; - margin: 0 5px 10px 0; - padding: 0; - vertical-align: top; - text-align: left; -} -[dir=rtl] #mediamanager__diff td, -[dir=rtl] #mediamanager__diff th { - text-align: right; -} - -#mediamanager__diff th { - font-weight: normal; -} -#mediamanager__diff th a { - font-weight: bold; -} -#mediamanager__diff th span { - font-size: 90%; -} - -#mediamanager__diff dl dd strong{ - background-color: __highlight__; - color: __text__; - font-weight: normal; -} - -/* Image diff */ - -#mediamanager__page .file form.diffView { - margin-bottom: 10px; - display: block; -} - -#mediamanager__diff div.slider { - margin: 10px; - width: 95%; -} - -#mediamanager__diff .imageDiff { - position: relative; -} -#mediamanager__diff .imageDiff .image2 { - position: absolute; - top: 0; - left: 0; -} - -#mediamanager__diff .imageDiff.opacity .image2 { - -moz-opacity: 0.5; - -khtml-opacity: 0.5; - opacity: 0.5; -} - -#mediamanager__diff .imageDiff.portions .image2 { - border-right: 1px solid red; - overflow: hidden; -} - -#mediamanager__diff .imageDiff.portions img { - float: left; -} - -#mediamanager__diff .imageDiff img { - width: 100%; - max-width: none; -} - diff --git a/lib/tpl/default/_mediaoptions.css b/lib/tpl/default/_mediaoptions.css deleted file mode 100644 index 81e87aa8e..000000000 --- a/lib/tpl/default/_mediaoptions.css +++ /dev/null @@ -1,18 +0,0 @@ - -#media__popup_content p { - margin: 0 0 .5em; -} - -#media__popup_content label { - float: left; - width: 9em; -} - -#media__popup_content .button { - margin-right: 1px; - cursor: pointer; -} - -#media__popup_content input.button { - margin-left: 9em; -} diff --git a/lib/tpl/default/_subscription.css b/lib/tpl/default/_subscription.css deleted file mode 100644 index 0792c8c21..000000000 --- a/lib/tpl/default/_subscription.css +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Styles for the subscription page - */ - -form#subscribe__form { - display: block; - width: 300px; - text-align: center; -} - -form#subscribe__form fieldset { - text-align: left; - margin: 0.5em 0; -} - -form#subscribe__form label { - display:block; - margin: 0 0.5em 0.5em; -} - - diff --git a/lib/tpl/default/_tabs.css b/lib/tpl/default/_tabs.css deleted file mode 100644 index a39b43441..000000000 --- a/lib/tpl/default/_tabs.css +++ /dev/null @@ -1,50 +0,0 @@ - -.dokuwiki ul.tabs { - padding: 0; - margin: 0; - overflow: hidden; -} -.dokuwiki ul.tabs li { - float: left; - padding: 0; - margin: 0; - list-style: none; -} -[dir=rtl] .dokuwiki ul.tabs li { - float: right; -} - -.dokuwiki ul.tabs li strong, -.dokuwiki ul.tabs li a { - float: left; - padding: .3em .8em; - margin: 0 .3em 0 0; - background-color: __background_neu__; - color: __text__; - border-radius: .5em .5em 0 0; -} -[dir=rtl] .dokuwiki ul.tabs li strong, -[dir=rtl] .dokuwiki ul.tabs li a { - float: right; - margin: 0 0 0 .3em; -} -*+html[dir=rtl] .dokuwiki ul.tabs li strong, -*+html[dir=rtl] .dokuwiki ul.tabs li a { - float: none; - display: inline-block; -} -.dokuwiki ul.tabs li strong { - font-weight: normal; -} - -.dokuwiki ul.tabs li a:link, -.dokuwiki ul.tabs li a:visited { -} -.dokuwiki ul.tabs li a:hover, -.dokuwiki ul.tabs li a:active, -.dokuwiki ul.tabs li a:focus, -.dokuwiki ul.tabs li strong { - background-color: __background_alt__; - color: __text__; - text-decoration: none; -} diff --git a/lib/tpl/default/design.css b/lib/tpl/default/design.css deleted file mode 100644 index 4772fd2a5..000000000 --- a/lib/tpl/default/design.css +++ /dev/null @@ -1,863 +0,0 @@ -/** - * Design elements for default Template - * - * @author Andreas Gohr - * @author Anika Henke - */ - -/* -------------- general elements --------------- */ - -* { padding: 0; margin: 0; } - -body { - font: 80% "Lucida Grande", Verdana, Lucida, Helvetica, Arial, sans-serif; - background-color: __background__; - color: __text__; -} - -/* the document */ -div.dokuwiki div.page { - margin: 4px 2em 0 1em; - text-align: justify; -} - -div.dokuwiki table { - font-size: 100%; -} - -div.dokuwiki tr, -div.dokuwiki td, -div.dokuwiki th { -} - -div.dokuwiki img { - border: 0; -} - -div.dokuwiki p, -div.dokuwiki blockquote, -div.dokuwiki table, -div.dokuwiki pre { - margin: 0 0 1.0em 0; -} - -div.dokuwiki hr { - border: 0px; - border-top: 1px solid __border__; - text-align: center; - height: 0px; -} - -div.dokuwiki div.nothing { - text-align: center; - margin: 2em; -} - -/* ---------------- forms ------------------------ */ - -div.dokuwiki form { - border: none; - display: inline; -} - -div.dokuwiki label.block { - display: block; - text-align: right; - font-weight: bold; -} - -div.dokuwiki label.simple { - display: block; - text-align: left; - font-weight: normal; -} - -div.dokuwiki label.block input.edit { - width: 50%; -} - -div.dokuwiki fieldset { - width: 300px; - text-align: center; - border: 1px solid __border__; - padding: 0.5em; - margin: auto; -} - -div.dokuwiki textarea.edit { - font-family: monospace, serif; - /* second generic font fixes problem with font-size, see - http://meyerweb.com/eric/thoughts/2010/02/12/fixed-monospace-sizing/ */ - font-size: 100%; - color: __text__; - background-color: __background__; - border: 1px solid __border__; - padding: 0.3em 0 0 0.3em; - /* should just be "width: 100%", but IE8 doesn't like it, see FS#1910 + FS#1667 */ - width: 700px; - min-width: 100%; - max-width: 100%; -} - -/* nice alphatransparency background except for IE <7 */ -html>body div.dokuwiki textarea.edit { - background: __background__ url(images/inputshadow.png) repeat-x top; -} - -div.dokuwiki input.edit, -div.dokuwiki select.edit { - font-size: 100%; - border: 1px solid __border__; - color: __text__; - background-color: __background__; - vertical-align: middle; - margin: 1px; - padding: 0.20em 0.3em; - display: inline; -} - -/* nice alphatransparency background except for IE <7 */ -html>body div.dokuwiki input.edit, -html>body div.dokuwiki select.edit { - background: __background__ url(images/inputshadow.png) repeat-x top; -} - -div.dokuwiki select.edit { - padding: 0.1em 0; -} - -div.dokuwiki input.missing { - font-size: 100%; - border: 1px solid __border__; - color: __text__; - background-color: #ffcccc; - vertical-align: middle; - margin: 1px; - padding: 0.20em 0.3em; - display: inline; -} - -/* disabled style - not understood by IE */ -div.dokuwiki textarea.edit[disabled], -div.dokuwiki textarea.edit[readonly], -div.dokuwiki input.edit[disabled], -div.dokuwiki input.edit[readonly], -div.dokuwiki input.button[disabled], -div.dokuwiki select.edit[disabled] { - background-color: __background_neu__!important; - color: __text_neu__!important; -} - -/* edit form */ -div.dokuwiki div.toolbar, -div.dokuwiki div#wiki__editbar { - margin: 2px 0; - text-align: left; -} -div.dokuwiki div#size__ctl { - float: right; - width: 60px; - height: 2.7em; -} -div.dokuwiki #size__ctl img { - cursor: pointer; -} -div.dokuwiki div#wiki__editbar div.editButtons { - float: left; - padding: 0 1.0em 0.7em 0; -} -div.dokuwiki div#wiki__editbar div.summary { - float: left; -} -div.dokuwiki .nowrap { - white-space: nowrap; -} -div.dokuwiki div#draft__status { - float: right; - color: __text_alt__; -} - -div.dokuwiki div.license { - padding: 0.5em; - font-size: 90%; - text-align: center; -} - -div.dokuwiki form#dw__editform div.license { - clear: left; - font-size: 90%; -} - -/* --------- buttons ------------------- */ - -div.dokuwiki input.button, -div.dokuwiki button.button { - border: 1px solid __border__; - color: __text__; - background-color: __background__; - vertical-align: middle; - text-decoration: none; - font-size: 100%; - cursor: pointer; - margin: 1px; - padding: 0.125em 0.4em; -} - -/* nice alphatransparency background except for IE <7 */ -html>body div.dokuwiki input.button, -html>body div.dokuwiki button.button { - background: __background__ url(images/buttonshadow.png) repeat-x bottom; -} - -* html div.dokuwiki input.button, -* html div.dokuwiki button.button { - height: 1.8em; -} - -div.dokuwiki div.secedit input.button { - border: 1px solid __border__; - color: __text__; - background-color: __background__; - vertical-align: middle; - text-decoration: none; - margin: 0; - padding: 0; - font-size: 10px; - cursor: pointer; - float: right; - display: inline; -} - -/* ----------- page navigator ------------- */ - -div.dokuwiki div.pagenav { - margin: 1em 0 0 0; -} - -div.dokuwiki div.pagenav-prev { - text-align: right; - float: left; - width: 49% -} - -div.dokuwiki div.pagenav-next { - text-align: left; - float: right; - width: 49% -} - -/* ----------- type of recent changes select -------- */ - -div.dokuwiki form#dw__recent select { - margin-bottom: 10px; -} - -/* --------------- Links ------------------ */ - -div.dokuwiki a:link, -div.dokuwiki a:visited { - color: __extern__; - text-decoration: none; -} -div.dokuwiki a:hover, -div.dokuwiki a:active { - color: __text__; - text-decoration: underline; -} - -div.dokuwiki a.nolink { - color: __text__ !important; - text-decoration: none !important; -} - -/* external link */ -div.dokuwiki a.urlextern { - background: transparent url(images/link_icon.gif) 0px 1px no-repeat; - padding: 1px 0px 1px 16px; -} - -/* windows share */ -div.dokuwiki a.windows { - background: transparent url(images/windows.gif) 0px 1px no-repeat; - padding: 1px 0px 1px 16px; -} - -/* interwiki link (icon are set by dokuwiki) */ -div.dokuwiki a.interwiki { -} - -/* link to some embedded media */ -div.dokuwiki a.media { -} - -div.dokuwiki a.urlextern:link, -div.dokuwiki a.windows:link, -div.dokuwiki a.interwiki:link { - color: __extern__; -} - -div.dokuwiki a.urlextern:visited, -div.dokuwiki a.windows:visited, -div.dokuwiki a.interwiki:visited { - color: purple; -} -div.dokuwiki a.urlextern:hover, -div.dokuwiki a.urlextern:active, -div.dokuwiki a.windows:hover, -div.dokuwiki a.windows:active, -div.dokuwiki a.interwiki:hover, -div.dokuwiki a.interwiki:active { - color: __text__; -} - -/* email link */ -div.dokuwiki a.mail { - background: transparent url(images/mail_icon.gif) 0px 1px no-repeat; - padding: 1px 0px 1px 16px; -} - -/* existing wikipage */ -div.dokuwiki a.wikilink1 { - color: __existing__ !important; -} - -/* not existing wikipage */ -div.dokuwiki a.wikilink2 { - color: __missing__ !important; - text-decoration: none !important; - border-bottom: dashed 1px __missing__ !important; -} - -/* ------------- Page elements ----------------- */ - -div.dokuwiki div.preview { - background-color: __background_neu__; - margin: 0 0 0 2em; - padding: 4px; - border: 1px dashed __text__; -} - -div.dokuwiki div.breadcrumbs { - background-color: __background_neu__; - color: __text_neu__; - font-size: 80%; - padding: 0 0 0 4px; -} - -div.dokuwiki span.user { - color: __text_other__; - font-size: 90%; -} - -div.dokuwiki li.minor { - color: __text_neu__; - font-style: italic; -} - -/* embedded images */ -div.dokuwiki img.media { - margin: 3px; -} - -div.dokuwiki img.medialeft { - border: 0; - float: left; - margin: 0 1.5em 0 0; -} - -div.dokuwiki img.mediaright { - border: 0; - float: right; - margin: 0 0 0 1.5em; -} - -div.dokuwiki img.mediacenter { - border: 0; - display: block; - margin: 0 auto; -} - -/* smileys */ -div.dokuwiki img.icon { - vertical-align: middle; -} - -div.dokuwiki abbr { - cursor: help; - border-bottom: 1px dotted __text__; -} - -/* general headline setup */ -div.dokuwiki h1, -div.dokuwiki h2, -div.dokuwiki h3, -div.dokuwiki h4, -div.dokuwiki h5 { - color: __text__; - background-color: inherit; - font-size: 100%; - font-weight: normal; - margin: 0 0 1em 0; - padding: 0.5em 0 0 0; - border-bottom: 1px solid __border__; - clear: left; -} - -/* special headlines */ -div.dokuwiki h1 {font-size: 160%; margin-left: 0px; font-weight: bold;} -div.dokuwiki h2 {font-size: 150%; margin-left: 20px;} -div.dokuwiki h3 {font-size: 140%; margin-left: 40px; border-bottom: none; font-weight: bold;} -div.dokuwiki h4 {font-size: 120%; margin-left: 60px; border-bottom: none; font-weight: bold;} -div.dokuwiki h5 {font-size: 100%; margin-left: 80px; border-bottom: none; font-weight: bold;} - -/* indent different sections */ -div.dokuwiki div.level1 { margin-left: 3px; } -div.dokuwiki div.level2 { margin-left: 23px; } -div.dokuwiki div.level3 { margin-left: 43px; } -div.dokuwiki div.level4 { margin-left: 63px; } -div.dokuwiki div.level5 { margin-left: 83px; } - -/* unordered lists */ -div.dokuwiki ul { - line-height: 1.5em; - list-style-type: square; - list-style-image: none; - margin: 0 0 1em 3.5em; - color: __text_alt__; -} - -/* ordered lists */ -div.dokuwiki ol { - line-height: 1.5em; - list-style-image: none; - margin: 0 0 1em 3.5em; - color: __text_alt__; - font-weight: bold; -} - -/* no bottom gap in between and smaller left margin for nested lists */ -div.dokuwiki li ul, -div.dokuwiki li ol { - margin: 0 0 0 1.5em; -} - -/* the list items overriding the ul/ol definition */ -div.dokuwiki .li { - color: __text__; - font-weight: normal; -} - -div.dokuwiki ol { list-style-type: decimal; } -div.dokuwiki ol ol { list-style-type: upper-roman; } -div.dokuwiki ol ol ol { list-style-type: lower-alpha; } -div.dokuwiki ol ol ol ol { list-style-type: lower-greek; } - -div.dokuwiki li.open { - list-style-image: url(images/open.gif); - /*list-style-type: circle;*/ -} - -div.dokuwiki li.closed { - list-style-image: url(images/closed.gif); - /*list-style-type: disc;*/ -} - -div.dokuwiki blockquote { - border-left: 2px solid __border__; - padding-left: 3px; -} - -div.dokuwiki pre, -div.dokuwiki code { - font-family: monospace, serif; - /* second generic font fixes problem with font-size, see - http://meyerweb.com/eric/thoughts/2010/02/12/fixed-monospace-sizing/ */ - font-size: 100%; -} -div.dokuwiki pre { - padding: 0.5em; - border: 1px dashed __border__; - color: __text__; - overflow: auto; -} - -/* code blocks by indention */ -div.dokuwiki pre.pre { - background-color: __background_other__; -} - -/* code blocks by code tag */ -div.dokuwiki pre.code { - background-color: __background_other__; -} - -/* code blocks by file tag */ -div.dokuwiki pre.file { - background-color: __background_alt__; -} - -/* filenames for file and code blocks */ -div.dokuwiki dl.file, -div.dokuwiki dl.code { - margin-top: 2em; - margin-bottom: 2.5em; -} - -div.dokuwiki dl.file dt, -div.dokuwiki dl.code dt { - border: 1px dashed __border__; - display: inline; - padding: 0.1em 1em; - margin-left: 2em; -} - -div.dokuwiki dl.code dt a, -div.dokuwiki dl.file dt a { - color: __text__; -} - -div.dokuwiki dl.code dt { - background-color: __background_other__; - border-bottom: 1px solid __background_other__; -} - -div.dokuwiki dl.file dt { - background-color: __background_alt__; - border-bottom: 1px solid __background_alt__; -} - - -/* inline tables */ -div.dokuwiki table.inline { - background-color: __background__; - border-spacing: 0px; - border-collapse: collapse; -} - -div.dokuwiki table.inline th { - padding: 3px; - border: 1px solid __border__; - background-color: __background_alt__; -} - -div.dokuwiki table.inline td { - padding: 3px; - border: 1px solid __border__; -} - -/* ---------- table of contents ------------------- */ - -div.dokuwiki #dw__toc { - margin: 1.2em 0 0 2em; - float: right; - width: 200px; - font-size: 80%; - clear: both; -} - -div.dokuwiki #dw__toc h3 { - border: 1px solid __border__; - background-color: __background_alt__; - text-align: left; - font-weight: bold; - padding: 3px; - margin: 0 0 2px 0; - font-size: 1em; -} - -div.dokuwiki .toggle strong { - border: 0.4em solid __background_alt__; - float: right; - display: block; - margin: 0.4em 3px 0 0; -} - -div.dokuwiki .toggle span { - display: none; -} - -div.dokuwiki .toggle.closed strong { - margin-top: 0.4em; - border-top: 0.4em solid __text__; -} - -div.dokuwiki .toggle.open strong { - margin-top: 0; - border-bottom: 0.4em solid __text__; -} - -div.dokuwiki #dw__toc > div { - border: 1px solid __border__; - background-color: __background__; - text-align: left; - padding: 0.5em 0 0.7em 0; -} - -div.dokuwiki #dw__toc ul { - list-style-type: none; - list-style-image: none; - line-height: 1.2em; - padding-left: 1em; - margin: 0; -} - -div.dokuwiki #dw__toc ul li { - background: transparent url(images/tocdot2.gif) 0 0.6em no-repeat; - padding-left: 0.4em; -} - -div.dokuwiki #dw__toc ul li.clear { - background-image: none; - padding-left: 0.4em; -} - -div.dokuwiki #dw__toc a:link, -div.dokuwiki #dw__toc a:visited { - color: __extern__; -} - -div.dokuwiki #dw__toc a:hover, -div.dokuwiki #dw__toc a:active { - color: __text__; -} - -/* ---------------------------- Diff rendering --------------------------*/ -div.dokuwiki table.diff { - background-color: __background__; - width: 100%; -} -div.dokuwiki td.diff-blockheader { - font-weight: bold; -} -div.dokuwiki table.diff th { - border-bottom: 1px solid __border__; - font-size: 110%; - font-weight: normal; - text-align: left; -} -div.dokuwiki table.diff th a { - font-weight: bold; -} -div.dokuwiki table.diff th span.user { - color: __text__; - font-size: 80%; -} -div.dokuwiki table.diff th span.sum { - font-size: 80%; - font-weight: bold; -} -div.dokuwiki table.diff th.minor { - font-style: italic; -} -.dokuwiki table.diff_sidebyside th { - width: 50%; -} -.dokuwiki table.diff .diff-lineheader { - width: .7em; - text-align: right; -} -[dir=rtl] .dokuwiki table.diff .diff-lineheader { - text-align: left; -} -.dokuwiki table.diff .diff-lineheader, -div.dokuwiki table.diff td { - font-family: monospace; - font-size: 100%; -} -div.dokuwiki td.diff-addedline, -div.dokuwiki span.diff-addedline { - background-color: #ddffdd; -} -div.dokuwiki td.diff-deletedline, -div.dokuwiki span.diff-deletedline { - background-color: #ffffbb; -} -div.dokuwiki td.diff-context { - background-color: __background_neu__; -} -div.dokuwiki table.diff td.diff-addedline strong, -div.dokuwiki table.diff td.diff-deletedline strong { - color: red; -} - -/* --------------------- footnotes -------------------------------- */ - -div.dokuwiki div.footnotes { - clear: both; - border-top: 1px solid __border__; - padding-left: 1em; - margin-top: 1em; -} - -div.dokuwiki div.fn { - font-size: 90%; -} - -div.dokuwiki a.fn_bot { - font-weight: bold; -} - -/* insitu-footnotes */ -div.insitu-footnote { - font-size: 80%; - line-height: 1.2em; - border: 1px solid __border__; - background-color: __background_other__; - text-align: left; - padding: 4px; - max-width: 40%; /* IE's width is handled in javascript */ - min-width: 5em; -} - -/* overcome IE issue with one line code or file boxes which require h. scrolling */ -* html .insitu-footnote pre.code, -* html .insitu-footnote pre.file { - padding-bottom: 18px; -} - -/* --------------- search result formating --------------- */ -#dw__loading { - text-align: center; - margin-bottom: 1em; -} - -div.dokuwiki .search_results { - padding: 0 10px 0 30px; -} - -div.dokuwiki .search_results dt { - margin-bottom: 3px; -} -div.dokuwiki .search_results dd { - margin-bottom: 6px; - color: __text_other__; - font-size: 12px; - margin-left: 20px; -} - -div.dokuwiki .search_sep { - color: __text__; -} - -div.dokuwiki .search_hit { - color: __text__; - background-color: __highlight__; -} -div.dokuwiki strong.search_hit { - font-weight: normal; -} - -div.dokuwiki div.search_quickresult { - margin: 0 0 15px 30px; - padding: 0 10px 10px 0; - border-bottom: 1px dashed __border__; -} -div.dokuwiki div.search_quickresult h3 { - margin: 0 0 1.0em 0; - font-size: 1em; - font-weight: bold; -} - -div.dokuwiki ul.search_quickhits { - margin: 0 0 0.5em 1.0em; -} - -div.dokuwiki ul.search_quickhits li { - margin: 0 1.0em 0 1.0em; - float: left; - width: 30%; -} - -div.dokuwiki .section_highlight { - background-color: __background_alt__ !important; -} - -/* ------------------ Additional ---------------------- */ - -div.footerinc { - text-align: center; -} -.footerinc a img { - opacity: 0.5; - border: 0; -} - -.footerinc a:hover img { - opacity: 1; -} - -/* ---------- AJAX quicksearch ----------- */ - -div.dokuwiki div.ajax_qsearch { - position: absolute; - right: 237px;; - width: 200px; - opacity: 0.9; - display: none; - font-size: 80%; - line-height: 1.2em; - border: 1px solid __border__; - background-color: __background_other__; - text-align: left; - padding: 4px; -} - -/* --------- Toolbar -------------------- */ -button.toolbutton { - background-color: __background__; - padding: 0px; - margin: 0 1px 0 0; - border: 1px solid __border__; - cursor: pointer; -} - -/* nice alphatransparency background except for IE <7 */ -html>body button.toolbutton { - background: __background__ url(images/buttonshadow.png) repeat-x bottom; -} - -div.picker { - width: 250px; - border: 1px solid __border__; - background-color: __background_alt__; -} - -div.pk_hl { - width: 125px; -} - -button.pickerbutton { - padding: 0px; - margin: 0 1px 1px 0; - border: 0; - background-color: transparent; - font-size: 80%; - cursor: pointer; -} - -/* --------------- Image Details ----------------- */ - -div.dokuwiki div.img_big { - float: left; - margin-right: 0.5em; -} - -div.dokuwiki dl.img_tags dt { - font-weight: bold; - background-color: __background_alt__; -} -div.dokuwiki dl.img_tags dd { - background-color: __background_neu__; -} - -div.dokuwiki div.imagemeta { - color: __text_neu__; - font-size: 70%; - line-height: 95%; -} - -div.dokuwiki div.imagemeta img.thumb { - float: left; - margin-right: 0.1em; -} - diff --git a/lib/tpl/default/detail.php b/lib/tpl/default/detail.php deleted file mode 100644 index 1c8042e15..000000000 --- a/lib/tpl/default/detail.php +++ /dev/null @@ -1,86 +0,0 @@ - - */ - -// must be run from within DokuWiki -if (!defined('DOKU_INC')) die(); - -?> - - - - - - <?php echo hsc(tpl_img_getTag('IPTC.Headline',$IMG))?> - [<?php echo strip_tags($conf['title'])?>] - - - - - - - - -
- - -
- - -

- -
- -
- -
-

- -

- -

- = AUTH_UPLOAD) { - echo '

'.$lang['img_manager'].'

'; - } - ?> - -
- $tag){ - $t = array(); - if (!empty($tag[0])) $t = array($tag[0]); - if(is_array($tag[3])) $t = array_merge($t,$tag[3]); - $value = tpl_img_getTag($t); - if ($value) { - echo '
'.$lang[$tag[1]].':
'; - if ($tag[2] == 'date') echo dformat($value); - else echo hsc($value); - echo '
'; - } - } - ?> -
- -
- - -
-
- - - diff --git a/lib/tpl/default/footer.html b/lib/tpl/default/footer.html deleted file mode 100644 index 38aab7216..000000000 --- a/lib/tpl/default/footer.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - diff --git a/lib/tpl/default/images/UWEB.png b/lib/tpl/default/images/UWEB.png deleted file mode 100644 index 292ade4ed..000000000 Binary files a/lib/tpl/default/images/UWEB.png and /dev/null differ diff --git a/lib/tpl/default/images/UWEBshadow.png b/lib/tpl/default/images/UWEBshadow.png deleted file mode 100644 index 8c4e5f829..000000000 Binary files a/lib/tpl/default/images/UWEBshadow.png and /dev/null differ diff --git a/lib/tpl/default/images/apple-touch-icon.png b/lib/tpl/default/images/apple-touch-icon.png deleted file mode 100644 index 45fa4e7b0..000000000 Binary files a/lib/tpl/default/images/apple-touch-icon.png and /dev/null differ diff --git a/lib/tpl/default/images/bullet.gif b/lib/tpl/default/images/bullet.gif deleted file mode 100644 index b43de48a4..000000000 Binary files a/lib/tpl/default/images/bullet.gif and /dev/null differ diff --git a/lib/tpl/default/images/button-cc.gif b/lib/tpl/default/images/button-cc.gif deleted file mode 100644 index c7a403a9e..000000000 Binary files a/lib/tpl/default/images/button-cc.gif and /dev/null differ diff --git a/lib/tpl/default/images/button-css.png b/lib/tpl/default/images/button-css.png deleted file mode 100644 index 706325e1c..000000000 Binary files a/lib/tpl/default/images/button-css.png and /dev/null differ diff --git a/lib/tpl/default/images/button-donate.gif b/lib/tpl/default/images/button-donate.gif deleted file mode 100644 index bba284e21..000000000 Binary files a/lib/tpl/default/images/button-donate.gif and /dev/null differ diff --git a/lib/tpl/default/images/button-dw.png b/lib/tpl/default/images/button-dw.png deleted file mode 100644 index 97272d968..000000000 Binary files a/lib/tpl/default/images/button-dw.png and /dev/null differ diff --git a/lib/tpl/default/images/button-php.gif b/lib/tpl/default/images/button-php.gif deleted file mode 100644 index 19aefb08f..000000000 Binary files a/lib/tpl/default/images/button-php.gif and /dev/null differ diff --git a/lib/tpl/default/images/button-rss.png b/lib/tpl/default/images/button-rss.png deleted file mode 100644 index f2438043f..000000000 Binary files a/lib/tpl/default/images/button-rss.png and /dev/null differ diff --git a/lib/tpl/default/images/button-xhtml.png b/lib/tpl/default/images/button-xhtml.png deleted file mode 100644 index ec686442c..000000000 Binary files a/lib/tpl/default/images/button-xhtml.png and /dev/null differ diff --git a/lib/tpl/default/images/buttonshadow.png b/lib/tpl/default/images/buttonshadow.png deleted file mode 100644 index b96ebf759..000000000 Binary files a/lib/tpl/default/images/buttonshadow.png and /dev/null differ diff --git a/lib/tpl/default/images/closed.gif b/lib/tpl/default/images/closed.gif deleted file mode 100644 index 8414d4d69..000000000 Binary files a/lib/tpl/default/images/closed.gif and /dev/null differ diff --git a/lib/tpl/default/images/favicon.ico b/lib/tpl/default/images/favicon.ico deleted file mode 100644 index 8b9616abb..000000000 Binary files a/lib/tpl/default/images/favicon.ico and /dev/null differ diff --git a/lib/tpl/default/images/inputshadow.png b/lib/tpl/default/images/inputshadow.png deleted file mode 100644 index 480044986..000000000 Binary files a/lib/tpl/default/images/inputshadow.png and /dev/null differ diff --git a/lib/tpl/default/images/link_icon.gif b/lib/tpl/default/images/link_icon.gif deleted file mode 100644 index d0a92f2fa..000000000 Binary files a/lib/tpl/default/images/link_icon.gif and /dev/null differ diff --git a/lib/tpl/default/images/mail_icon.gif b/lib/tpl/default/images/mail_icon.gif deleted file mode 100644 index 437d28fe1..000000000 Binary files a/lib/tpl/default/images/mail_icon.gif and /dev/null differ diff --git a/lib/tpl/default/images/open.gif b/lib/tpl/default/images/open.gif deleted file mode 100644 index f5d5c7e56..000000000 Binary files a/lib/tpl/default/images/open.gif and /dev/null differ diff --git a/lib/tpl/default/images/resizecol.png b/lib/tpl/default/images/resizecol.png deleted file mode 100644 index f0111507c..000000000 Binary files a/lib/tpl/default/images/resizecol.png and /dev/null differ diff --git a/lib/tpl/default/images/tocdot2.gif b/lib/tpl/default/images/tocdot2.gif deleted file mode 100644 index e2b5f15cb..000000000 Binary files a/lib/tpl/default/images/tocdot2.gif and /dev/null differ diff --git a/lib/tpl/default/images/windows.gif b/lib/tpl/default/images/windows.gif deleted file mode 100644 index 64dfeb6fb..000000000 Binary files a/lib/tpl/default/images/windows.gif and /dev/null differ diff --git a/lib/tpl/default/layout.css b/lib/tpl/default/layout.css deleted file mode 100644 index ded2d87a2..000000000 --- a/lib/tpl/default/layout.css +++ /dev/null @@ -1,79 +0,0 @@ -/** - * Tableless Layout for default template - * - * @author Andreas Gohr - * @author moraes - */ - -/* -------------- top row --------------- */ -div.dokuwiki .header { - padding: 3px 0 0 2px; -} - -div.dokuwiki .pagename { - float: left; - font-size: 200%; - font-weight: bolder; - color: __background_alt__; - text-align: left; - vertical-align: middle; -} - -div.dokuwiki .pagename a { - color: __extern__ !important; - text-decoration: none !important; -} - -div.dokuwiki .logo { - float: right; - font-size: 220%; - font-weight: bolder; - text-align: right; - vertical-align: middle; -} - -div.dokuwiki .logo a { - color: __background_alt__ !important; - text-decoration: none !important; - font-variant: small-caps; - letter-spacing: 2pt; -} - -/* --------------- top and bottom bar ---------------- */ -div.dokuwiki .bar { - border-top: 1px solid __border__; - border-bottom: 1px solid __border__; - background: __background_alt__; - padding: 0.1em 0.15em; - clear: both; -} - -div.dokuwiki .bar-left { - float: left; -} - -div.dokuwiki .bar-right { - float: right; - text-align: right; -} - -div.dokuwiki #bar__bottom { - margin-bottom: 3px; -} - -/* ------------- File Metadata ----------------------- */ - -div.dokuwiki div.meta { - clear: both; - margin-top: 1em; - color: __text_alt__; - font-size: 70%; -} - -div.dokuwiki div.meta div.user { - float: left; -} - -div.dokuwiki div.meta div.doc { - text-align: right; -} diff --git a/lib/tpl/default/main.php b/lib/tpl/default/main.php deleted file mode 100644 index 851afde6c..000000000 --- a/lib/tpl/default/main.php +++ /dev/null @@ -1,135 +0,0 @@ - - */ - -// must be run from within DokuWiki -if (!defined('DOKU_INC')) die(); - -?> - - - - - - <?php tpl_pagetitle()?> - [<?php echo strip_tags($conf['title'])?>] - - - - - - - - - - -
- - -
- -
-
- [[]] -
- - -
-
- - - -
-
- - -
- -
- -   -
- -
-
- - - - - - - - - -
- - - - -
- - - -
- -
- - - -
- -
-
- -
-
- -
-
- - - -
-
- - - -
-
- - - - - - -   -
-
-
- -
- - - -
- - -
- - diff --git a/lib/tpl/default/media.css b/lib/tpl/default/media.css deleted file mode 100644 index 640ad3162..000000000 --- a/lib/tpl/default/media.css +++ /dev/null @@ -1,224 +0,0 @@ -/** - * The CSS in here controls the appearance of the media manager - */ - -#media__manager { - height: 100%; - overflow: hidden; -} - -#media__left { - width: 30%; - border-right: solid 1px __border__; - - height: 100%; - overflow: auto; - position: absolute; - left: 0; -} - -#media__right { - width: 69.7%; - - height: 100%; - overflow: auto; - position: absolute; - right: 0; -} - -#media__manager h1 { - margin: 0; - padding: 0; - margin-bottom: 0.5em; -} - -#media__manager a.select { - cursor: pointer; -} - -/* --- Tree formatting --- */ - -#media__tree img { - float: left; - padding: 0.5em 0.3em 0 0; -} -[dir=rtl] #media__tree img { - float: right; - padding: 0.5em 0 0 0.3em; -} - -#media__tree ul { - list-style-type: none; - list-style-image: none; - margin-left: 1.5em; -} -[dir=rtl] #media__tree ul { - margin-left: 0; - margin-right: 1.5em; -} - -#media__tree li { - clear: left; - list-style-type: none; - list-style-image: none; -} -[dir=rtl] #media__tree li { - clear: right; -} -*+html #media__tree li, -* html #media__tree li { - border: 1px solid __background__; -}/* I don't understand this, but this fixes a style bug in IE; -it's dirty, so any "real" fixes are welcome */ - -/* --- options --- */ - -#media__opts { - padding-left: 1em; - margin-bottom: 0.5em; -} - -#media__opts input { - float: left; - display: block; - margin-top: 4px; - position: absolute; -} -*+html #media__opts input, -* html #media__opts input { - position: static; -} - -#media__opts label { - display: block; - float: left; - margin-left: 20px; - margin-bottom: 4px; -} -*+html #media__opts label, -* html #media__opts label { - margin-left: 10px; -} - -#media__opts br { - clear: left; -} - -/* --- file list --- */ - -#media__content img.load { - margin: 1em auto; -} - -#media__content #scroll__here { - border: 1px dashed __border__; -} - -#media__content .odd { - background-color: __background_other__; - padding: 0.4em; -} - -#media__content .even { - padding: 0.4em; -} - -#media__content a.mediafile { - margin-right: 1.5em; - font-weight: bold; -} - -#media__content div.detail { - padding: 0.3em 0 0.3em 2em; -} - -#media__content div.detail div.thumb { - float: left; - width: 130px; - text-align: center; - margin-right: 0.4em; -} - - -#media__content img.btn { - vertical-align: text-bottom; -} - -#media__content div.example { - color: __text_neu__; - margin-left: 1em; -} - -/* --- upload form --- */ - -#media__content div.upload { - font-size: 90%; - padding: 0 0.5em 0.5em 0.5em; -} - -#media__content #mediamanager__uploader { - display: block; - border-bottom: solid 1px __border__; - padding: 0 0.5em 1em 0.5em; -} - -#media__content form#dw__upload { - border-bottom: 0; -} - -#media__content form#dw__upload fieldset { - padding: 0; - margin: 0; - border: none; - width: auto; -} -#media__content form#dw__upload p { - text-align: left; - padding: 0.25em 0; - margin: 0; - line-height: 1.0em; -} -#media__content form#dw__upload label.check { - float: none; - width: auto; - margin-left: 11.5em; -} - -/* --- meta edit form --- */ - -#media__content form.meta { - display: block; - padding: 0 0 1em 0; -} - -#media__content form.meta label { - display: block; - width: 25%; - float: left; - font-weight: bold; - margin-left: 1em; - clear: left; -} - -#media__content form.meta .edit { - font: 100% "Lucida Grande", Verdana, Lucida, Helvetica, Arial, sans-serif; - float: left; - width: 70%; - padding-right: 0; - padding-left: 0.2em; - margin: 2px; -} - -#media__content form.meta textarea.edit { - height: 8em; -} - -#media__content form.meta div.metafield { - clear: left; -} - -#media__content form.meta div.buttons { - clear: left; - margin-left: 20%; - padding-left: 1em; -} diff --git a/lib/tpl/default/mediamanager.php b/lib/tpl/default/mediamanager.php deleted file mode 100644 index 35b526a32..000000000 --- a/lib/tpl/default/mediamanager.php +++ /dev/null @@ -1,45 +0,0 @@ - - */ - -// must be run from within DokuWiki -if (!defined('DOKU_INC')) die(); - -?> - - - - - - <?php echo hsc($lang['mediaselect'])?> - [<?php echo strip_tags($conf['title'])?>] - - - - - - -
-
- -

- - -
- - -
- -
- -
-
- - diff --git a/lib/tpl/default/print.css b/lib/tpl/default/print.css deleted file mode 100644 index f83e8c97c..000000000 --- a/lib/tpl/default/print.css +++ /dev/null @@ -1,228 +0,0 @@ - -body { - font: 10pt "Lucida Grande", Verdana, Lucida, Helvetica, Arial, sans-serif; - background-color: White; - color: Black; -} - -table { - font-size: 100%; - padding: 0; - margin: 0; -} - -tr,td,th { padding: 0; margin: 0; } - -img { border: 0; } - -a { - color: #000000; - text-decoration: none; - background: none !important; -} - -a.interwiki { - padding-left: 0px !important; -} - - -div.meta { - clear: both; - margin-top: 1em; - font-size: 70%; - text-align: right; -} - -div.breadcrumbs { - display: none; -} - - -/* --------------------- Text formating -------------------------------- */ - -/* external link */ -a.urlextern:after { - content: " [" attr(href) "]"; - font-size: 90%; -} - -/* interwiki link */ -a.interwiki:after { - content: " [" attr(href) "]"; - font-size: 90%; -} - -/* email link */ -a.mail:after { - content: " [" attr(href) "]"; - font-size: 90%; -} - -/* existing wikilink */ -a.wikilink1 { text-decoration: underline; } - -/* the document */ -div.page { - text-align: justify; -} - -/* general headline setup */ -h1, h2, h3, h4, h5 { - color: Black; - background-color: transparent; - font-family: "Lucida Grande", Verdana, Lucida, Helvetica, Arial, sans-serif; - font-size: 100%; - font-weight: normal; - margin-left: 0; - margin-right: 0; - margin-top: 0; - margin-bottom: 1em; - padding-left: 0; - padding-right: 0; - padding-top: 0.5em; - padding-bottom: 0; - border-bottom: 1px solid #000000; - clear: left; -} - -/* special headlines */ -h1 { font-size: 160%; font-weight: bold; } -h2 { font-size: 150%; } -h3 { font-size: 140%; border-bottom: none; } -h4 { font-size: 120%; border-bottom: none; } -h5 { font-size: 100%; border-bottom: none; } - -/* embedded images */ -img.media { - margin: 3px; -} - -/* the styles for media images are already in - lib/styles/all.css, these are additional styles */ -img.medialeft { - margin: 0 1.5em 0 0; -} -img.mediaright { - margin: 0 0 0 1.5em; -} -img.mediacenter { -} - -/* unordered lists */ -ul { - line-height: 1.5em; - list-style-type: square; - margin: 0 0 1em 3.5em; - padding: 0; -} - -/* ordered lists */ -ol { - line-height: 1.5em; - margin: 0 0 1em 3.5em; - padding: 0; - font-weight: normal; -} - -div.dokuwiki li ul { - margin-bottom: 0; -} -div.dokuwiki li ol { - margin-bottom: 0; -} - -div.dokuwiki ol { list-style-type: decimal; } -div.dokuwiki ol ol { list-style-type: upper-roman; } -div.dokuwiki ol ol ol { list-style-type: lower-alpha; } -div.dokuwiki ol ol ol ol { list-style-type: lower-greek; } - -/* the list items overriding the ol definition */ -span.li { - font-weight: normal; -} - -pre { - font-family: monospace; -} - -/* code blocks by indention */ -pre.pre { - font-size: 8pt; - padding: 0.5em; - border: 1px dashed #000000; - color: Black; - overflow: visible; -} - -/* code blocks by code tag */ -pre.code { - font-size: 8pt; - padding: 0.5em; - border: 1px dashed #000000; - color: Black; - overflow: visible; -} - -/* inline code words */ -code { - font-size: 120%; -} - -/* code blocks by file tag */ -pre.file { - font-size: 8pt; - padding: 0.5em; - border: 1px dotted #000000; - color: Black; - overflow: visible; -} - -/* footnotes */ -div.footnotes { - clear: both; - border-top: 1px solid #000000; - padding-left: 1em; - margin-top: 1em; -} - -div.fn { - font-size: 90%; -} - -a.fn_top { - vertical-align: super; - font-size: 80%; -} - -a.fn_bot { - vertical-align: super; - font-size: 80%; - font-weight: bold; -} - -abbr { - border: 0; -} - -/* ---------- inline tables ------------------- */ - -table.inline { - font-size: 80%; - background-color: #ffffff; - border-spacing: 0px; - border-collapse: collapse; -} - -table.inline th { - padding: 3px; - border: 1px solid #000000; - border-bottom: 2px solid #000000; -} - -table.inline td { - padding: 3px; - border: 1px solid #000000; -} - -#dw__toc, .footerinc, .header, .bar, .user { display: none; } - diff --git a/lib/tpl/default/rtl.css b/lib/tpl/default/rtl.css deleted file mode 100644 index f16ba101b..000000000 --- a/lib/tpl/default/rtl.css +++ /dev/null @@ -1,162 +0,0 @@ -/** - * Layout and design corrections for right-to-left languages - * - * @author Andreas Gohr - * @author Dotan Kamber - */ - -.bar-left { - float: right; - text-align: right; -} - -.bar-right { - float: left; - text-align: left; -} - -.pagename { - float: right; - text-align: right; -} - -.logo { - float: left; - text-align: left; -} - -label { - text-align: left; -} - -label.simple { - text-align: right; -} - -div.meta div.user { - float: right; -} - -div.meta div.doc { - text-align: left; -} - -/* ------------------ Design corrections --------------------------------- */ - -div.dokuwiki ul, -div.dokuwiki ol { - margin: 0.5em 3.5em 0.5em 0; -} -div.dokuwiki li ul, -div.dokuwiki li ol { - margin: 0.5em 1.5em 0.5em 0; -} - -div.dokuwiki a.urlextern, -div.dokuwiki a.interwiki, -div.dokuwiki a.mediafile, -div.dokuwiki a.windows, -div.dokuwiki a.mail { - background-position: right 1px; - padding-right: 16px; - padding-left: 0; - display: inline-block; /* needed for IE7 */ -} - -div.dokuwiki a.mediafile { - padding-right: 18px; -} - -div.dokuwiki div.secedit input.button { - float: left; -} - -/* headlines */ -div.dokuwiki h1, div.dokuwiki h2, div.dokuwiki h3, div.dokuwiki h4, div.dokuwiki h5 { - clear: right; -} - -/* special headlines */ -div.dokuwiki h1 { margin-left: 0px; margin-right: 0px; } -div.dokuwiki h2 { margin-left: 0px; margin-right: 20px; } -div.dokuwiki h3 { margin-left: 0px; margin-right: 40px; } -div.dokuwiki h4 { margin-left: 0px; margin-right: 60px; } -div.dokuwiki h5 { margin-left: 0px; margin-right: 80px; } - -/* indent different sections */ -div.dokuwiki div.level1 { margin-left: 0px; margin-right: 3px; } -div.dokuwiki div.level2 { margin-left: 0px; margin-right: 23px; } -div.dokuwiki div.level3 { margin-left: 0px; margin-right: 43px; } -div.dokuwiki div.level4 { margin-left: 0px; margin-right: 63px; } -div.dokuwiki div.level5 { margin-left: 0px; margin-right: 83px; } - -/* TOC control */ -div.dokuwiki #dw__toc { - float: left; - margin: 1.2em 2em 0 0; -} - -div.dokuwiki #dw__toc h3 { - text-align: right; -} - -div.dokuwiki .toggle strong { - float: left; - margin: 0.4em 0 0 3px; -} - -div.dokuwiki #dw__toc > div { - text-align: right; -} - -div.dokuwiki #dw__toc ul { - padding: 0; - padding-right: 1em; -} - -div.dokuwiki #dw__toc ul li { - background-position: right 0.6em; - padding-right: 0.4em; - direction: rtl; -} - -div.dokuwiki #dw__toc ul li.clear { - padding-right: 0.4em; -} - -div.dokuwiki .code { - direction: ltr; - text-align: left; -} -div.dokuwiki blockquote { - border-left: 0; - padding-left: 0; - border-right: 2px solid __border__; - padding-right: 3px; -} - -/* Admin corrections */ -#admin__version { - clear: right; - float: left; -} - -.dokuwiki ul.admin_tasks { - float: right; -} - -.dokuwiki ul.admin_tasks li { - padding-left: 0px; - padding-right: 35px; - background: transparent none no-repeat scroll right 0; - text-align: right; -} - -/* Search corrections */ -div.dokuwiki ul.search_quickhits li { - float: right; -} - -div#qsearch__out { - text-align: right; -} diff --git a/lib/tpl/default/style.ini b/lib/tpl/default/style.ini deleted file mode 100644 index 0706303d0..000000000 --- a/lib/tpl/default/style.ini +++ /dev/null @@ -1,77 +0,0 @@ -; Please see http://www.php.net/manual/en/function.parse-ini-file.php -; for limitations of the ini format used here - -; To extend this file or make changes to it, it is recommended to create -; a style.local.ini file to prevent losing any changes after an upgrade. -; Please don't forget to copy the section your changes should be under -; (i.e. [stylesheets] or [replacements]) into that file as well. - -; Define the stylesheets your template uses here. The second value -; defines for which output media the style should be loaded. Currently -; print, screen and rtl are supported. rtl styles are loaded additionally -; to screen styles if a right-to-left language is selected (eg. hebrew) -[stylesheets] -layout.css = screen -design.css = screen -style.css = screen - -media.css = screen -_mediaoptions.css = screen -_admin.css = screen -_linkwiz.css = screen -_subscription.css = screen -_mediamanager.css = screen -_tabs.css = screen -_fileuploader.css = screen - -rtl.css = rtl -print.css = print - -; This section is used to configure some placeholder values used in -; the stylesheets. Changing this file is the simplest method to -; give your wiki a new look. -[replacements] - -;-------------------------------------------------------------------------- -;------ guaranteed dokuwiki color placeholders that every plugin can use -; main text and background colors -__text__ = "#000" -__background__ = "#fff" -; alternative text and background colors -__text_alt__ = "#638c9c" -__background_alt__ = "#dee7ec" -; neutral text and background colors -__text_neu__ = "#666" -__background_neu__ = "#f5f5f5" -; border color -__border__ = "#8cacbb" -;-------------------------------------------------------------------------- - -; other text and background colors -__text_other__ = "#ccc" -__background_other__ = "#f7f9fa" - -; these are used for links -__extern__ = "#436976" -__existing__ = "#090" -__missing__ = "#f30" - -; highlighting search snippets -__highlight__ = "#ff9" - - -;-------------------------------------------------------------------------- -;------ for keeping old templates and plugins compatible to the old pattern -; (to be deleted at the next or after next release) -__white__ = "#fff" -__lightgray__ = "#f5f5f5" -__mediumgray__ = "#ccc" -__darkgray__ = "#666" -__black__ = "#000" - -; these are the shades of blue -__lighter__ = "#f7f9fa" -__light__ = "#eef3f8" -__medium__ = "#dee7ec" -__dark__ = "#8cacbb" -__darker__ = "#638c9c" diff --git a/lib/tpl/default/template.info.txt b/lib/tpl/default/template.info.txt deleted file mode 100644 index e0dbf54ba..000000000 --- a/lib/tpl/default/template.info.txt +++ /dev/null @@ -1,7 +0,0 @@ -base default -author Andreas Gohr -email andi@splitbrain.org -date 2013-02-16 -name DokuWiki Default Template -desc DokuWiki's default template until 2012 -url http://www.dokuwiki.org/template:default -- cgit v1.2.3 From e6ce96e7985e48b36d3e78907a536becd7ee7a85 Mon Sep 17 00:00:00 2001 From: Vincent Feltz Date: Wed, 4 Sep 2013 09:45:59 +0200 Subject: translation update --- lib/plugins/usermanager/lang/fr/lang.php | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'lib') diff --git a/lib/plugins/usermanager/lang/fr/lang.php b/lib/plugins/usermanager/lang/fr/lang.php index 940603ab6..5612d3660 100644 --- a/lib/plugins/usermanager/lang/fr/lang.php +++ b/lib/plugins/usermanager/lang/fr/lang.php @@ -44,6 +44,8 @@ $lang['search'] = 'Rechercher'; $lang['search_prompt'] = 'Effectuer la recherche'; $lang['clear'] = 'Réinitialiser la recherche'; $lang['filter'] = 'Filtre'; +$lang['export_all'] = 'Exporter tous les utilisateurs (CSV)'; +$lang['export_filtered'] = 'Exporter la liste d\'utilisateurs filtrée (CSV)'; $lang['import'] = 'Importer les nouveaux utilisateurs'; $lang['line'] = 'Ligne n°'; $lang['error'] = 'Message d\'erreur'; @@ -67,7 +69,12 @@ $lang['add_ok'] = 'Utilisateur ajouté avec succès'; $lang['add_fail'] = 'Échec de l\'ajout de l\'utilisateur'; $lang['notify_ok'] = 'Courriel de notification expédié'; $lang['notify_fail'] = 'Échec de l\'expédition du courriel de notification'; +$lang['import_success_count'] = 'Import d’utilisateurs : %d utilisateurs trouvés, %d utilisateurs importés avec succès.'; +$lang['import_failure_count'] = 'Import d\'utilisateurs : %d ont échoué. Les erreurs sont listées ci-dessous.'; +$lang['import_error_fields'] = 'Nombre de champs insuffisant, %d trouvé, 4 requis.'; $lang['import_error_baduserid'] = 'Identifiant de l\'utilisateur manquant'; $lang['import_error_badname'] = 'Mauvais nom'; $lang['import_error_badmail'] = 'Mauvaise adresse e-mail'; +$lang['import_error_upload'] = 'L\'import a échoué. Le fichier csv n\'a pas pu être téléchargé ou bien il est vide.'; +$lang['import_error_readfail'] = 'L\'import a échoué. Impossible de lire le fichier téléchargé.'; $lang['import_error_create'] = 'Impossible de créer l\'utilisateur'; -- cgit v1.2.3 From 836030cf1c5473170acc7a38b431d965859636a4 Mon Sep 17 00:00:00 2001 From: Myeongjin Date: Sun, 8 Sep 2013 14:07:55 +0900 Subject: Translation update in Korean --- lib/plugins/config/lang/ko/intro.txt | 16 +- lib/plugins/config/lang/ko/lang.php | 398 +++++++++++++++++------------------ 2 files changed, 208 insertions(+), 206 deletions(-) (limited to 'lib') diff --git a/lib/plugins/config/lang/ko/intro.txt b/lib/plugins/config/lang/ko/intro.txt index c8b146930..a3ed58e17 100644 --- a/lib/plugins/config/lang/ko/intro.txt +++ b/lib/plugins/config/lang/ko/intro.txt @@ -1,7 +1,9 @@ -====== 환경 설정 관리자 ====== - -DokuWiki 설치할 때 설정을 바꾸기 위해 사용하는 페이지입니다. 각 설정에 대한 자세한 도움말이 필요하다면 [[doku>ko:config|설정]] 문서를 참고하세요. 플러그인에 대한 자세한 정보가 필요하다면 [[doku>ko:plugin:config|플러그인 설정]] 문서를 참고하세요. - -빨간 배경색으로 보이는 설정은 이 플러그인에서 바꾸지 못하도록 되어있습니다. 파란 배경색으로 보이는 설정은 기본 설정값을 가지고 있습니다. 하얀 배경색으로 보이는 설정은 특별한 설치를 위해 설정되어 있습니다. 파란색과 하얀색 배경으로 된 설정은 바꿀 수 있습니다. - -이 페이지를 떠나기 전에 **저장** 버튼을 누르지 않으면 바뀐 값은 적용되지 않습니다. \ No newline at end of file +====== 환경 설정 관리자 ====== + +도쿠위키를 설치할 때 설정을 바꾸려면 이 페이지를 사용하세요. 개별 설정에 대한 도움말은 [[doku>ko:config]]를 참고하세요. 이 플러그인에 대한 자세한 내용은 [[doku>ko:plugin:config]]를 참고하세요. + +밝은 빨간색 배경으로 보이는 설정은 이 플러그인에서 바꿀 수 없도록 보호되어 있습니다. 파란색 배경으로 보이는 설정은 기본값이며 하얀색 배경으로 보이는 설정은 특수한 설치를 위해 로컬로 설정되어 있습니다. 파란색과 하얀색 배경으로 된 설정은 바꿀 수 있습니다. + +이 페이지를 떠나기 전에 **저장** 버튼을 누르지 않으면 바뀜이 사라지는 것에 주의하세요. + + diff --git a/lib/plugins/config/lang/ko/lang.php b/lib/plugins/config/lang/ko/lang.php index 1aab4731a..843993c2b 100644 --- a/lib/plugins/config/lang/ko/lang.php +++ b/lib/plugins/config/lang/ko/lang.php @@ -1,199 +1,199 @@ - - * @author Seung-Chul Yoo - * @author erial2@gmail.com - * @author Myeongjin - */ -$lang['menu'] = '환경 설정'; -$lang['error'] = '잘못된 값 때문에 설정을 바꿀 수 없습니다. 바뀜을 검토하고 확인을 누르세요. -
잘못된 값은 빨간 선으로 둘러싸여 있습니다.'; -$lang['updated'] = '설정이 성공적으로 바뀌었습니다.'; -$lang['nochoice'] = '(다른 선택이 불가능합니다)'; -$lang['locked'] = '환경 설정 파일을 바꿀 수 없습니다. 의도한 행동이 아니라면,
-파일 이름과 권한이 맞는지 확인하세요.'; -$lang['danger'] = '위험: 이 옵션을 잘못 바꾸면 환경 설정 메뉴를 사용할 수 없을 수도 있습니다.'; -$lang['warning'] = '경고: 이 옵션을 잘못 바꾸면 잘못 동작할 수 있습니다.'; -$lang['security'] = '보안 경고: 이 옵션은 보안에 위험이 있을 수 있습니다.'; -$lang['_configuration_manager'] = '환경 설정 관리자'; -$lang['_header_dokuwiki'] = 'DokuWiki 설정'; -$lang['_header_plugin'] = '플러그인 설정'; -$lang['_header_template'] = '템플릿 설정'; -$lang['_header_undefined'] = '정의되지 않은 설정'; -$lang['_basic'] = '기본 설정'; -$lang['_display'] = '화면 표시 설정'; -$lang['_authentication'] = '인증 설정'; -$lang['_anti_spam'] = '스팸 방지 설정'; -$lang['_editing'] = '편집 설정'; -$lang['_links'] = '링크 설정'; -$lang['_media'] = '미디어 설정'; -$lang['_notifications'] = '알림 설정'; -$lang['_syndication'] = '신디케이션 설정'; -$lang['_advanced'] = '고급 설정'; -$lang['_network'] = '네트워크 설정'; -$lang['_msg_setting_undefined'] = '설정된 메타데이터가 없습니다.'; -$lang['_msg_setting_no_class'] = '설정된 클래스가 없습니다.'; -$lang['_msg_setting_no_default'] = '기본값이 없습니다.'; -$lang['title'] = '위키 제목 (위키 이름)'; -$lang['start'] = '각 이름공간에서 사용할 시작 문서 이름'; -$lang['lang'] = '인터페이스 언어'; -$lang['template'] = '템플릿 (위키 디자인)'; -$lang['tagline'] = '태그 라인 (템플릿이 지원할 때에 한함)'; -$lang['sidebar'] = '사이드바 문서 이름 (템플릿이 지원할 때에 한함), 비워두면 사이드바를 비활성화'; -$lang['license'] = '콘텐츠에 어떤 라이선스를 적용하겠습니까?'; -$lang['savedir'] = '데이터 저장 디렉토리'; -$lang['basedir'] = '서버 경로 (예를 들어 /dokuwiki/). 자동 감지를 하려면 비우세요.'; -$lang['baseurl'] = '서버 URL (예를 들어 http://www.yourserver.com). 자동 감지를 하려면 비우세요.'; -$lang['cookiedir'] = '쿠키 위치. 비워두면 기본 URL 위치로 지정됩니다.'; -$lang['dmode'] = '디렉토리 만들기 모드'; -$lang['fmode'] = '파일 만들기 모드'; -$lang['allowdebug'] = '디버그 허용 필요하지 않으면 비활성화하세요!'; -$lang['recent'] = '최근 바뀐 문서당 항목 수'; -$lang['recent_days'] = '최근 바뀐 문서 기준 시간 (일)'; -$lang['breadcrumbs'] = '위치 "추적" 수. 0으로 설정하면 비활성화합니다.'; -$lang['youarehere'] = '계층형 위치 추적 (다음 위의 옵션을 비활성화하게 됩니다)'; -$lang['fullpath'] = '문서 하단에 전체 경로 보여주기'; -$lang['typography'] = '기호 대체'; -$lang['dformat'] = '날짜 형식 (PHP strftime 기능 참고)'; -$lang['signature'] = '편집기에서 서명 버튼을 누를 때 넣을 내용'; -$lang['showuseras'] = '마지막에 문서를 편집한 사용자를 보여줄지 여부'; -$lang['toptoclevel'] = '목차 최상위 항목'; -$lang['tocminheads'] = '목차 표시 여부를 결정할 최소한의 문단 제목 항목의 수'; -$lang['maxtoclevel'] = '목차 최대 단계'; -$lang['maxseclevel'] = '문단 최대 편집 단계'; -$lang['camelcase'] = '링크에 CamelCase 사용'; -$lang['deaccent'] = '문서 이름을 지우는 방법'; -$lang['useheading'] = '문서 이름으로 첫 문단 제목 사용'; -$lang['sneaky_index'] = '기본적으로 DokuWiki는 색인 목록에 모든 이름공간을 보여줍니다. -이 옵션을 설정하면 사용자가 읽기 권한을 가지고 있지 않은 이름공간은 보여주지 않습니다. 접근 가능한 하위 이름공간을 보이지 않게 설정하면 자동으로 설정됩니다. 특정 ACL 설정은 색인 사용이 불가능하게 할 수도 있습니다.'; -$lang['hidepages'] = '사이트맵과 기타 자동 색인과 같은 찾기에서 정규 표현식과 일치하는 문서 숨기기'; -$lang['useacl'] = '접근 제어 목록 (ACL) 사용'; -$lang['autopasswd'] = '자동으로 만들어진 비밀번호'; -$lang['authtype'] = '인증 백-엔드'; -$lang['passcrypt'] = '비밀번호 암호화 방법'; -$lang['defaultgroup'] = '기본 그룹, 모든 새 사용자는 이 그룹에 속합니다'; -$lang['superuser'] = '슈퍼 유저 - ACL 설정과 상관없이 모든 문서와 기능에 대한 전체 접근 권한을 가진 그룹이나 사용자 또는 사용자1,@그룹1,사용자2 쉼표로 구분한 목록'; -$lang['manager'] = '관리자 - 관리 기능을 사용할 수 있는 그룹이나 사용자 또는 사용자1,@그룹1,사용자2 쉼표로 구분한 목록'; -$lang['profileconfirm'] = '개인 정보를 바꿀 때 비밀번호 다시 확인'; -$lang['rememberme'] = '항상 로그인 정보 저장 허용 (기억하기)'; -$lang['disableactions'] = 'DokuWiki 활동 비활성화'; -$lang['disableactions_check'] = '검사'; -$lang['disableactions_subscription'] = '구독 신청/구독 취소'; -$lang['disableactions_wikicode'] = '원본 보기/원본 내보내기'; -$lang['disableactions_other'] = '다른 활동 (쉼표로 구분)'; -$lang['auth_security_timeout'] = '인증 보안 초과 시간 (초)'; -$lang['securecookie'] = 'HTTPS로 보내진 쿠키는 HTTPS에만 적용 할까요? 위키의 로그인 페이지만 SSL로 암호화하고 위키 문서는 그렇지 않은 경우 비활성화 합니다.'; -$lang['remote'] = '원격 API를 활성화 합니다. 이 항목을 허용하면 XML-RPC 및 기타 메카니즘을 통해 다른 어플리케이션으로 접근 가능합니다.'; -$lang['remoteuser'] = '이 항목에 입력된 쉼표로 나눠진 그룹이나 사용자에게 원격 API 접근을 제한합니다. 빈칸으로 두면 모두에게 허용합니다.'; -$lang['usewordblock'] = '금지 단어를 사용해 스팸 막기'; -$lang['relnofollow'] = '바깥 링크에 rel="nofollow" 사용'; -$lang['indexdelay'] = '색인 연기 시간 (초)'; -$lang['mailguard'] = '이메일 주소를 알아볼 수 없게 하기'; -$lang['iexssprotect'] = '올린 파일의 악성 자바스크립트, HTML 코드 가능성 여부를 검사'; -$lang['usedraft'] = '편집하는 동안 자동으로 문서 초안 저장'; -$lang['htmlok'] = 'HTML 내장 허용'; -$lang['phpok'] = 'PHP 내장 허용'; -$lang['locktime'] = '최대 파일 잠금 시간(초)'; -$lang['cachetime'] = '최대 캐시 생존 시간 (초)'; -$lang['target____wiki'] = '안쪽 링크에 대한 타겟 창'; -$lang['target____interwiki'] = '인터위키 링크에 대한 타겟 창'; -$lang['target____extern'] = '바깥 링크에 대한 타겟 창'; -$lang['target____media'] = '미디어 링크에 대한 타겟 창'; -$lang['target____windows'] = '창 링크에 대한 타겟 창'; -$lang['mediarevisions'] = '미디어 판 관리를 사용하겠습니까?'; -$lang['refcheck'] = '미디어 파일을 삭제하기 전에 사용하고 있는지 검사'; -$lang['gdlib'] = 'GD 라이브러리 버전'; -$lang['im_convert'] = 'ImageMagick 변환 도구 위치'; -$lang['jpg_quality'] = 'JPG 압축 품질 (0-100)'; -$lang['fetchsize'] = 'fetch.php가 바깥에서 다운로드할 수도 있는 최대 크기 (바이트)'; -$lang['subscribers'] = '사용자가 이메일로 문서 바뀜에 구독하도록 허용'; -$lang['subscribe_time'] = '구독 목록과 요약이 보내질 경과 시간 (초); recent_days에서 설정된 시간보다 작아야 합니다.'; -$lang['notify'] = '항상 이 이메일 주소로 바뀜 알림을 보냄'; -$lang['registernotify'] = '항상 새 사용자한테 이 이메일 주소로 정보를 보냄'; -$lang['mailfrom'] = '자동으로 보내지는 메일 발신자'; -$lang['mailprefix'] = '자동으로 보내지는 메일의 제목 말머리 내용. 비웠을 경우 위키 제목 사용'; -$lang['htmlmail'] = '용량은 조금 더 크지만 보기 좋은 HTML 태그가 포함된 메일을 보냅니다. 텍스트만의 메일을 보내고자하면 비활성화하세요.'; -$lang['sitemap'] = '구글 사이트맵 생성 날짜 빈도. 0일 경우 비활성화합니다'; -$lang['rss_type'] = 'XML 피드 타입'; -$lang['rss_linkto'] = 'XML 피드 링크 정보'; -$lang['rss_content'] = 'XML 피드 항목에 표시되는 내용은 무엇입니까?'; -$lang['rss_update'] = 'XML 피드 업데이트 주기 (초)'; -$lang['rss_show_summary'] = 'XML 피드 제목에서 요약 보여주기'; -$lang['rss_media'] = '어떤 규격으로 XML 피드를 받아보시겠습니까?'; -$lang['updatecheck'] = '업데이트와 보안 문제를 검사할까요? 이 기능을 사용하려면 DokuWiki를 update.dokuwiki.org에 연결해야 합니다.'; -$lang['userewrite'] = '멋진 URL 사용'; -$lang['useslash'] = 'URL에서 이름 구분자로 슬래시 문자 사용'; -$lang['sepchar'] = '문서 이름 단어 구분자'; -$lang['canonical'] = '완전한 canonical URL 사용'; -$lang['fnencode'] = 'ASCII가 아닌 파일 이름을 인코딩 하는 방법.'; -$lang['autoplural'] = '링크 연결시 복수 양식 검사'; -$lang['compression'] = '첨부 파일 압축 방법 선택'; -$lang['gzip_output'] = 'xhml 내용 gzip 압축 사용'; -$lang['compress'] = '최적화된 CSS, 자바스크립트 출력'; -$lang['cssdatauri'] = '그림이 렌더링될 최대 용량 크기를 CSS에 규정해야 HTTP 요청 헤더 오버헤드 크기를 감소시킬 수 있습니다. 이 기술은 IE 7 이하에서는 작동하지 않습니다! 400에서 600 정도면 좋은 효율을 가져옵니다. 0로 지정할 경우 비활성화 됩니다.'; -$lang['send404'] = '존재하지 않는 페이지에 대해 "HTTP 404/Page Not Found" 응답'; -$lang['broken_iua'] = '설치된 시스템에서 ignore_user_abort 기능에 문제가 있습니까? 문제가 있다면 색인이 정상적으로 동작하지 않습니다. 이 기능이 IIS+PHP/CGI에서 문제가 있는 것으로 알려졌습니다. 자세한 정보는 버그 852를 참고하시기 바랍니다.'; -$lang['xsendfile'] = '웹 서버가 정적 파일을 제공하도록 X-Sendfile 헤더를 사용하겠습니까? 웹 서버가 이 기능을 지원해야 합니다.'; -$lang['renderer_xhtml'] = '주 (xhtml) 위키 출력 처리기'; -$lang['renderer__core'] = '%s (DokuWiki 내부)'; -$lang['renderer__plugin'] = '%s (플러그인)'; -$lang['dnslookups'] = '이 옵션을 활성화하면 DokuWiki가 문서를 편집하는 사용자의 호스트 네임과 원격 IP 주소를 확인합니다. 서버가 느리거나, DNS를 운영하지 않거나 이 기능을 원치 않으면 비활성화하세요'; -$lang['proxy____host'] = '프록시 서버 이름'; -$lang['proxy____port'] = '프록시 서버 포트'; -$lang['proxy____user'] = '프록시 사용자 이름'; -$lang['proxy____pass'] = '프록시 비밀번호'; -$lang['proxy____ssl'] = '프록시 연결시 SSL 사용'; -$lang['proxy____except'] = '프록시 설정이 무시될 URL주소의 정규 표현식'; -$lang['safemodehack'] = 'safemode hack기능 사용'; -$lang['ftp____host'] = 'safemode hack의 FTP 서버'; -$lang['ftp____port'] = 'safemode hack의 FTP 포트'; -$lang['ftp____user'] = 'safemode hack의 FTP 사용자 이름'; -$lang['ftp____pass'] = 'safemode hack의 FTP 비밀번호'; -$lang['ftp____root'] = 'safemode hack의 FTP 루트 디렉토리'; -$lang['license_o_'] = '선택하지 않음'; -$lang['typography_o_0'] = '사용 안함'; -$lang['typography_o_1'] = '이중 인용부호("")만 지원'; -$lang['typography_o_2'] = '모든 가능한 인용 부호 (동작 안될 수도 있음)'; -$lang['userewrite_o_0'] = '사용 안함'; -$lang['userewrite_o_1'] = '.htaccess'; -$lang['userewrite_o_2'] = 'DokuWiki 내부 기능'; -$lang['deaccent_o_0'] = '끄기'; -$lang['deaccent_o_1'] = '악센트 제거'; -$lang['deaccent_o_2'] = '라틴문자화'; -$lang['gdlib_o_0'] = 'GD 라이브러리 사용 불가'; -$lang['gdlib_o_1'] = '버전 1.x'; -$lang['gdlib_o_2'] = '자동 인식'; -$lang['rss_type_o_rss'] = 'RSS 0.91'; -$lang['rss_type_o_rss1'] = 'RSS 1.0'; -$lang['rss_type_o_rss2'] = 'RSS 2.0'; -$lang['rss_type_o_atom'] = 'Atom 0.3'; -$lang['rss_type_o_atom1'] = 'Atom 1.0'; -$lang['rss_content_o_abstract'] = '개요'; -$lang['rss_content_o_diff'] = '통합 차이 목록'; -$lang['rss_content_o_htmldiff'] = 'HTML 차이 목록 형식'; -$lang['rss_content_o_html'] = '최대 HTML 페이지 내용'; -$lang['rss_linkto_o_diff'] = '차이 보기'; -$lang['rss_linkto_o_page'] = '바뀐 문서 보기'; -$lang['rss_linkto_o_rev'] = '바뀐 목록 보기'; -$lang['rss_linkto_o_current'] = '현재 문서 보기'; -$lang['compression_o_0'] = '없음'; -$lang['compression_o_gz'] = 'gzip'; -$lang['compression_o_bz2'] = 'bz2'; -$lang['xsendfile_o_0'] = '사용 불가'; -$lang['xsendfile_o_1'] = '비공개 lighttpd 헤더 (1.5 이전 버전)'; -$lang['xsendfile_o_2'] = '표준 X-Sendfile 헤더'; -$lang['xsendfile_o_3'] = '비공개 Nginx X-Accel-Redirect 헤더'; -$lang['showuseras_o_loginname'] = '로그인 이름'; -$lang['showuseras_o_username'] = '사용자의 전체 이름'; -$lang['showuseras_o_email'] = '사용자의 이메일 주소 (메일 주소 보호 설정에 따라 안보일 수 있음)'; -$lang['showuseras_o_email_link'] = 'mailto: link로 표현될 사용자 이메일 주소'; -$lang['useheading_o_0'] = '아니오'; -$lang['useheading_o_navigation'] = '둘러보기에만'; -$lang['useheading_o_content'] = '위키 내용에만'; -$lang['useheading_o_1'] = '항상'; -$lang['readdircache'] = 'readdir 캐시를 위한 최대 시간 (초)'; + + * @author Seung-Chul Yoo + * @author erial2@gmail.com + * @author Myeongjin + */ +$lang['menu'] = '환경 설정'; +$lang['error'] = '잘못된 값 때문에 설정을 바꿀 수 없습니다. 바뀜을 검토하고 확인을 누르세요. +
잘못된 값은 빨간 선으로 둘러싸여 있습니다.'; +$lang['updated'] = '설정이 성공적으로 바뀌었습니다.'; +$lang['nochoice'] = '(다른 선택이 불가능합니다)'; +$lang['locked'] = '환경 설정 파일을 바꿀 수 없습니다. 의도한 행동이 아니라면,
+파일 이름과 권한이 맞는지 확인하세요.'; +$lang['danger'] = '위험: 이 옵션을 잘못 바꾸면 환경 설정 메뉴를 사용할 수 없을 수도 있습니다.'; +$lang['warning'] = '경고: 이 옵션을 잘못 바꾸면 잘못 동작할 수 있습니다.'; +$lang['security'] = '보안 경고: 이 옵션은 보안에 위험이 있을 수 있습니다.'; +$lang['_configuration_manager'] = '환경 설정 관리자'; +$lang['_header_dokuwiki'] = '도쿠위키 설정'; +$lang['_header_plugin'] = '플러그인 설정'; +$lang['_header_template'] = '템플릿 설정'; +$lang['_header_undefined'] = '정의되지 않은 설정'; +$lang['_basic'] = '기본 설정'; +$lang['_display'] = '화면 표시 설정'; +$lang['_authentication'] = '인증 설정'; +$lang['_anti_spam'] = '스팸 방지 설정'; +$lang['_editing'] = '편집 설정'; +$lang['_links'] = '링크 설정'; +$lang['_media'] = '미디어 설정'; +$lang['_notifications'] = '알림 설정'; +$lang['_syndication'] = '신디케이션 설정'; +$lang['_advanced'] = '고급 설정'; +$lang['_network'] = '네트워크 설정'; +$lang['_msg_setting_undefined'] = '설정된 메타데이터가 없습니다.'; +$lang['_msg_setting_no_class'] = '설정된 클래스가 없습니다.'; +$lang['_msg_setting_no_default'] = '기본값이 없습니다.'; +$lang['title'] = '위키 제목 (위키 이름)'; +$lang['start'] = '각 이름공간에서 사용할 시작 문서 이름'; +$lang['lang'] = '인터페이스 언어'; +$lang['template'] = '템플릿 (위키 디자인)'; +$lang['tagline'] = '태그 라인 (템플릿이 지원할 때에 한함)'; +$lang['sidebar'] = '사이드바 문서 이름 (템플릿이 지원할 때에 한함), 비워두면 사이드바를 비활성화'; +$lang['license'] = '내용에 어떤 라이선스를 적용하겠습니까?'; +$lang['savedir'] = '데이터 저장 디렉터리'; +$lang['basedir'] = '서버 경로 (예를 들어 /dokuwiki/). 자동 감지를 하려면 비우세요.'; +$lang['baseurl'] = '서버 URL (예를 들어 http://www.yourserver.com). 자동 감지를 하려면 비우세요.'; +$lang['cookiedir'] = '쿠키 위치. 비워두면 기본 URL 위치로 지정됩니다.'; +$lang['dmode'] = '디렉터리 만들기 모드'; +$lang['fmode'] = '파일 만들기 모드'; +$lang['allowdebug'] = '디버그 허용 필요하지 않으면 비활성화하세요!'; +$lang['recent'] = '최근 바뀐 문서당 항목 수'; +$lang['recent_days'] = '최근 바뀐 문서 기준 시간 (일)'; +$lang['breadcrumbs'] = '위치 "추적" 수. 0으로 설정하면 비활성화합니다.'; +$lang['youarehere'] = '계층형 위치 추적 (다음 위의 옵션을 비활성화하게 됩니다)'; +$lang['fullpath'] = '문서 하단에 전체 경로 보여주기'; +$lang['typography'] = '기호 대체'; +$lang['dformat'] = '날짜 형식 (PHP strftime 기능 참고)'; +$lang['signature'] = '편집기에서 서명 버튼을 누를 때 넣을 내용'; +$lang['showuseras'] = '마지막에 문서를 편집한 사용자를 보여줄지 여부'; +$lang['toptoclevel'] = '목차 최상위 항목'; +$lang['tocminheads'] = '목차 표시 여부를 결정할 최소한의 문단 제목 항목의 수'; +$lang['maxtoclevel'] = '목차 최대 단계'; +$lang['maxseclevel'] = '문단 최대 편집 단계'; +$lang['camelcase'] = '링크에 CamelCase 사용'; +$lang['deaccent'] = '문서 이름을 지우는 방법'; +$lang['useheading'] = '문서 이름으로 첫 문단 제목 사용'; +$lang['sneaky_index'] = '기본적으로 도쿠위키는 색인 목록에 모든 이름공간을 보여줍니다. +이 옵션을 설정하면 사용자가 읽기 권한을 가지고 있지 않은 이름공간은 보여주지 않습니다. 접근 가능한 하위 이름공간을 보이지 않게 설정하면 자동으로 설정됩니다. 특정 ACL 설정은 색인 사용이 불가능하게 할 수도 있습니다.'; +$lang['hidepages'] = '사이트맵과 기타 자동 색인과 같은 찾기에서 정규 표현식과 일치하는 문서 숨기기'; +$lang['useacl'] = '접근 제어 목록 (ACL) 사용'; +$lang['autopasswd'] = '자동으로 만들어진 비밀번호'; +$lang['authtype'] = '인증 백-엔드'; +$lang['passcrypt'] = '비밀번호 암호화 방법'; +$lang['defaultgroup'] = '기본 그룹, 모든 새 사용자는 이 그룹에 속합니다'; +$lang['superuser'] = '슈퍼 유저 - ACL 설정과 상관없이 모든 문서와 기능에 대한 전체 접근 권한을 가진 그룹이나 사용자 또는 사용자1,@그룹1,사용자2 쉼표로 구분한 목록'; +$lang['manager'] = '관리자 - 관리 기능을 사용할 수 있는 그룹이나 사용자 또는 사용자1,@그룹1,사용자2 쉼표로 구분한 목록'; +$lang['profileconfirm'] = '개인 정보를 바꿀 때 비밀번호 다시 확인'; +$lang['rememberme'] = '항상 로그인 정보 저장 허용 (기억하기)'; +$lang['disableactions'] = '도쿠위키 활동 비활성화'; +$lang['disableactions_check'] = '검사'; +$lang['disableactions_subscription'] = '구독 신청/구독 취소'; +$lang['disableactions_wikicode'] = '원본 보기/원본 내보내기'; +$lang['disableactions_other'] = '다른 활동 (쉼표로 구분)'; +$lang['auth_security_timeout'] = '인증 보안 초과 시간 (초)'; +$lang['securecookie'] = 'HTTPS로 보내진 쿠키는 HTTPS에만 적용 할까요? 위키의 로그인 페이지만 SSL로 암호화하고 위키 문서는 그렇지 않은 경우 비활성화 합니다.'; +$lang['remote'] = '원격 API를 활성화 합니다. 이 항목을 허용하면 XML-RPC 및 기타 메커니즘을 통해 다른 어플리케이션으로 접근 가능합니다.'; +$lang['remoteuser'] = '이 항목에 입력된 쉼표로 나눠진 그룹이나 사용자에게 원격 API 접근을 제한합니다. 빈칸으로 두면 모두에게 허용합니다.'; +$lang['usewordblock'] = '금지 단어를 사용해 스팸 막기'; +$lang['relnofollow'] = '바깥 링크에 rel="nofollow" 사용'; +$lang['indexdelay'] = '색인 연기 시간 (초)'; +$lang['mailguard'] = '이메일 주소를 알아볼 수 없게 하기'; +$lang['iexssprotect'] = '올린 파일의 악성 자바스크립트, HTML 코드 가능성 여부를 검사'; +$lang['usedraft'] = '편집하는 동안 자동으로 문서 초안 저장'; +$lang['htmlok'] = 'HTML 내장 허용'; +$lang['phpok'] = 'PHP 내장 허용'; +$lang['locktime'] = '최대 파일 잠금 시간(초)'; +$lang['cachetime'] = '최대 캐시 생존 시간 (초)'; +$lang['target____wiki'] = '안쪽 링크에 대한 타겟 창'; +$lang['target____interwiki'] = '인터위키 링크에 대한 타겟 창'; +$lang['target____extern'] = '바깥 링크에 대한 타겟 창'; +$lang['target____media'] = '미디어 링크에 대한 타겟 창'; +$lang['target____windows'] = '창 링크에 대한 타겟 창'; +$lang['mediarevisions'] = '미디어 판 관리를 사용하겠습니까?'; +$lang['refcheck'] = '미디어 파일을 삭제하기 전에 사용하고 있는지 검사'; +$lang['gdlib'] = 'GD 라이브러리 버전'; +$lang['im_convert'] = 'ImageMagick 변환 도구 위치'; +$lang['jpg_quality'] = 'JPG 압축 품질 (0-100)'; +$lang['fetchsize'] = 'fetch.php가 바깥에서 다운로드할 수도 있는 최대 크기 (바이트)'; +$lang['subscribers'] = '사용자가 이메일로 문서 바뀜에 구독하도록 허용'; +$lang['subscribe_time'] = '구독 목록과 요약이 보내질 경과 시간 (초); recent_days에서 설정된 시간보다 작아야 합니다.'; +$lang['notify'] = '항상 이 이메일 주소로 바뀜 알림을 보냄'; +$lang['registernotify'] = '항상 새 사용자한테 이 이메일 주소로 정보를 보냄'; +$lang['mailfrom'] = '자동으로 보내지는 메일 발신자'; +$lang['mailprefix'] = '자동으로 보내지는 메일의 제목 말머리 내용. 비웠을 경우 위키 제목 사용'; +$lang['htmlmail'] = '용량은 조금 더 크지만 보기 좋은 HTML 태그가 포함된 메일을 보냅니다. 텍스트만의 메일을 보내려면 비활성화하세요.'; +$lang['sitemap'] = '구글 사이트맵 생성 날짜 빈도. 0일 경우 비활성화합니다'; +$lang['rss_type'] = 'XML 피드 타입'; +$lang['rss_linkto'] = 'XML 피드 링크 정보'; +$lang['rss_content'] = 'XML 피드 항목에 표시되는 내용은 무엇입니까?'; +$lang['rss_update'] = 'XML 피드 업데이트 주기 (초)'; +$lang['rss_show_summary'] = 'XML 피드 제목에서 요약 보여주기'; +$lang['rss_media'] = '어떤 규격으로 XML 피드를 받아보시겠습니까?'; +$lang['updatecheck'] = '업데이트와 보안 문제를 검사할까요? 이 기능을 사용하려면 도쿠위키를 update.dokuwiki.org에 연결해야 합니다.'; +$lang['userewrite'] = '멋진 URL 사용'; +$lang['useslash'] = 'URL에서 이름 구분자로 슬래시 문자 사용'; +$lang['sepchar'] = '문서 이름 단어 구분자'; +$lang['canonical'] = '완전한 canonical URL 사용'; +$lang['fnencode'] = 'ASCII가 아닌 파일 이름을 인코딩 하는 방법.'; +$lang['autoplural'] = '링크 연결시 복수 양식 검사'; +$lang['compression'] = '첨부 파일 압축 방법 선택'; +$lang['gzip_output'] = 'xhml 내용 gzip 압축 사용'; +$lang['compress'] = '최적화된 CSS, 자바스크립트 출력'; +$lang['cssdatauri'] = '그림이 렌더링될 최대 용량 크기를 CSS에 규정해야 HTTP 요청 헤더 오버헤드 크기를 감소시킬 수 있습니다. 이 기술은 IE 7 이하에서는 작동하지 않습니다! 400에서 600 정도면 좋은 효율을 가져옵니다. 0로 지정할 경우 비활성화 됩니다.'; +$lang['send404'] = '존재하지 않는 페이지에 대해 "HTTP 404/페이지를 찾을 수 없습니다" 응답'; +$lang['broken_iua'] = '설치된 시스템에서 ignore_user_abort 기능에 문제가 있습니까? 문제가 있다면 색인이 정상적으로 동작하지 않습니다. 이 기능이 IIS+PHP/CGI에서 문제가 있는 것으로 알려졌습니다. 자세한 정보는 버그 852를 참고하시기 바랍니다.'; +$lang['xsendfile'] = '웹 서버가 정적 파일을 제공하도록 X-Sendfile 헤더를 사용하겠습니까? 웹 서버가 이 기능을 지원해야 합니다.'; +$lang['renderer_xhtml'] = '주 (xhtml) 위키 출력 처리기'; +$lang['renderer__core'] = '%s (도쿠위키 내부)'; +$lang['renderer__plugin'] = '%s (플러그인)'; +$lang['dnslookups'] = '이 옵션을 활성화하면 도쿠위키가 문서를 편집하는 사용자의 호스트 네임과 원격 IP 주소를 확인합니다. 서버가 느리거나, DNS를 운영하지 않거나 이 기능을 원치 않으면 비활성화하세요'; +$lang['proxy____host'] = '프록시 서버 이름'; +$lang['proxy____port'] = '프록시 서버 포트'; +$lang['proxy____user'] = '프록시 사용자 이름'; +$lang['proxy____pass'] = '프록시 비밀번호'; +$lang['proxy____ssl'] = '프록시 연결시 SSL 사용'; +$lang['proxy____except'] = '프록시 설정이 무시될 URL주소의 정규 표현식'; +$lang['safemodehack'] = 'safemode hack기능 사용'; +$lang['ftp____host'] = 'safemode hack의 FTP 서버'; +$lang['ftp____port'] = 'safemode hack의 FTP 포트'; +$lang['ftp____user'] = 'safemode hack의 FTP 사용자 이름'; +$lang['ftp____pass'] = 'safemode hack의 FTP 비밀번호'; +$lang['ftp____root'] = 'safemode hack의 FTP 루트 디렉터리'; +$lang['license_o_'] = '선택하지 않음'; +$lang['typography_o_0'] = '사용 안함'; +$lang['typography_o_1'] = '이중 인용부호("")만 지원'; +$lang['typography_o_2'] = '모든 가능한 인용 부호 (동작 안될 수도 있음)'; +$lang['userewrite_o_0'] = '사용 안함'; +$lang['userewrite_o_1'] = '.htaccess'; +$lang['userewrite_o_2'] = '도쿠위키 내부 기능'; +$lang['deaccent_o_0'] = '끄기'; +$lang['deaccent_o_1'] = '악센트 제거'; +$lang['deaccent_o_2'] = '라틴문자화'; +$lang['gdlib_o_0'] = 'GD 라이브러리 사용 불가'; +$lang['gdlib_o_1'] = '버전 1.x'; +$lang['gdlib_o_2'] = '자동 인식'; +$lang['rss_type_o_rss'] = 'RSS 0.91'; +$lang['rss_type_o_rss1'] = 'RSS 1.0'; +$lang['rss_type_o_rss2'] = 'RSS 2.0'; +$lang['rss_type_o_atom'] = 'Atom 0.3'; +$lang['rss_type_o_atom1'] = 'Atom 1.0'; +$lang['rss_content_o_abstract'] = '개요'; +$lang['rss_content_o_diff'] = '통합 차이 목록'; +$lang['rss_content_o_htmldiff'] = 'HTML 차이 목록 형식'; +$lang['rss_content_o_html'] = '최대 HTML 페이지 내용'; +$lang['rss_linkto_o_diff'] = '차이 보기'; +$lang['rss_linkto_o_page'] = '바뀐 문서 보기'; +$lang['rss_linkto_o_rev'] = '바뀐 목록 보기'; +$lang['rss_linkto_o_current'] = '현재 문서 보기'; +$lang['compression_o_0'] = '없음'; +$lang['compression_o_gz'] = 'gzip'; +$lang['compression_o_bz2'] = 'bz2'; +$lang['xsendfile_o_0'] = '사용 불가'; +$lang['xsendfile_o_1'] = '비공개 lighttpd 헤더 (1.5 이전 버전)'; +$lang['xsendfile_o_2'] = '표준 X-Sendfile 헤더'; +$lang['xsendfile_o_3'] = '비공개 Nginx X-Accel-Redirect 헤더'; +$lang['showuseras_o_loginname'] = '로그인 이름'; +$lang['showuseras_o_username'] = '사용자의 전체 이름'; +$lang['showuseras_o_email'] = '사용자의 이메일 주소 (메일 주소 설정에 따라 안보일 수 있음)'; +$lang['showuseras_o_email_link'] = 'mailto: link로 표현될 사용자 이메일 주소'; +$lang['useheading_o_0'] = '아니오'; +$lang['useheading_o_navigation'] = '둘러보기에만'; +$lang['useheading_o_content'] = '위키 내용에만'; +$lang['useheading_o_1'] = '항상'; +$lang['readdircache'] = 'readdir 캐시를 위한 최대 시간 (초)'; -- cgit v1.2.3 From df2df443ae3c298d604bfc769fa173b02651ef7a Mon Sep 17 00:00:00 2001 From: Aleksandr Selivanov Date: Sun, 8 Sep 2013 19:05:58 +0200 Subject: translation update --- lib/plugins/acl/lang/ru/help.txt | 9 +++++---- lib/plugins/authmysql/lang/ru/settings.php | 5 +++-- lib/plugins/authpgsql/lang/ru/settings.php | 22 ++++++++++++++++++++++ lib/plugins/plugin/lang/ru/lang.php | 2 +- lib/plugins/usermanager/lang/ru/import.txt | 6 +++--- 5 files changed, 34 insertions(+), 10 deletions(-) (limited to 'lib') diff --git a/lib/plugins/acl/lang/ru/help.txt b/lib/plugins/acl/lang/ru/help.txt index 7807105a8..ecb2fe3d0 100644 --- a/lib/plugins/acl/lang/ru/help.txt +++ b/lib/plugins/acl/lang/ru/help.txt @@ -1,7 +1,8 @@ === Краткая справка === -На этой странице вы можете добавить или удалить права доступа к пространствам имён и страницам своей вики.\\ -На панели слева отображены доступные пространства имён и страницы.\\ -Форма выше позволяет вам просмотреть и изменить права доступа для выбранного пользователя или группы.\\ -Текущие права доступа отображены в таблице ниже. Вы можете использовать её для быстрого удаления или изменения правил.\\ +На этой странице вы можете добавить или удалить права доступа к пространствам имён и страницам своей вики. + * На панели слева отображены доступные пространства имён и страницы. + * Форма выше позволяет вам просмотреть и изменить права доступа для выбранного пользователя или группы. + * Текущие права доступа отображены в таблице ниже. Вы можете использовать её для быстрого удаления или изменения правил. + Прочтение [[doku>acl|официальной документации по ACL]] может помочь вам в полном понимании работы управления правами доступа в «ДокуВики». diff --git a/lib/plugins/authmysql/lang/ru/settings.php b/lib/plugins/authmysql/lang/ru/settings.php index 23fd349af..2d8f4788e 100644 --- a/lib/plugins/authmysql/lang/ru/settings.php +++ b/lib/plugins/authmysql/lang/ru/settings.php @@ -4,6 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Ivan I. Udovichenko (sendtome@mymailbox.pp.ua) + * @author Aleksandr Selivanov */ $lang['server'] = 'Ваш MySQL-сервер'; $lang['user'] = 'Имя пользователя MySQL'; @@ -17,12 +18,12 @@ $lang['checkPass'] = 'Выражение SQL, осуществляю $lang['getUserInfo'] = 'Выражение SQL, осуществляющее извлечение информации о пользователе'; $lang['getGroups'] = 'Выражение SQL, осуществляющее извлечение информации о членстве пользователе в группах'; $lang['getUsers'] = 'Выражение SQL, осуществляющее извлечение полного списка пользователей'; -$lang['FilterLogin'] = 'Выражение SQL, осуществляющее фильтрацию пользователей по пользовательскому имени'; +$lang['FilterLogin'] = 'Выражение SQL, осуществляющее фильтрацию пользователей по логину'; $lang['FilterName'] = 'Выражение SQL, осуществляющее фильтрацию пользователей по полному имени'; $lang['FilterEmail'] = 'Выражение SQL, осуществляющее фильтрацию пользователей по адресу электронной почты'; $lang['FilterGroup'] = 'Выражение SQL, осуществляющее фильтрацию пользователей согласно членству в группе'; $lang['SortOrder'] = 'Выражение SQL, осуществляющее сортировку пользователей'; -$lang['addUser'] = 'Выражение SQL, осуществляющее добавление нового опльзователя'; +$lang['addUser'] = 'Выражение SQL, осуществляющее добавление нового пользователя'; $lang['addGroup'] = 'Выражение SQL, осуществляющее добавление новой группы'; $lang['addUserGroup'] = 'Выражение SQL, осуществляющее добавление пользователя в существующую группу'; $lang['delGroup'] = 'Выражение SQL, осуществляющее удаление группы'; diff --git a/lib/plugins/authpgsql/lang/ru/settings.php b/lib/plugins/authpgsql/lang/ru/settings.php index f5d0a77ee..48dd2a87c 100644 --- a/lib/plugins/authpgsql/lang/ru/settings.php +++ b/lib/plugins/authpgsql/lang/ru/settings.php @@ -7,4 +7,26 @@ * @author Aleksandr Selivanov */ $lang['server'] = 'Ваш PostgreSQL-сервер'; +$lang['port'] = 'Порт вашего PostgreSQL-сервера'; +$lang['user'] = 'Имя пользователя PostgreSQL'; $lang['password'] = 'Пароль для указанного пользователя.'; +$lang['database'] = 'Имя базы данных'; +$lang['checkPass'] = 'Выражение SQL, осуществляющее проверку пароля'; +$lang['getUserInfo'] = 'Выражение SQL, осуществляющее извлечение информации о пользователе'; +$lang['getGroups'] = 'Выражение SQL, осуществляющее извлечение информации о членстве пользователе в группах'; +$lang['getUsers'] = 'Выражение SQL, осуществляющее извлечение полного списка пользователей'; +$lang['FilterLogin'] = 'Выражение SQL, осуществляющее фильтрацию пользователей по логину'; +$lang['FilterName'] = 'Выражение SQL, осуществляющее фильтрацию пользователей по полному имени'; +$lang['FilterEmail'] = 'Выражение SQL, осуществляющее фильтрацию пользователей по адресу электронной почты'; +$lang['FilterGroup'] = 'Выражение SQL, осуществляющее фильтрацию пользователей согласно членству в группе'; +$lang['SortOrder'] = 'Выражение SQL, осуществляющее сортировку пользователей'; +$lang['addUser'] = 'Выражение SQL, осуществляющее добавление нового пользователя'; +$lang['addGroup'] = 'Выражение SQL, осуществляющее добавление новой группы'; +$lang['addUserGroup'] = 'Выражение SQL, осуществляющее добавление пользователя в существующую группу'; +$lang['delGroup'] = 'Выражение SQL, осуществляющее удаление группы'; +$lang['getUserID'] = 'Выражение SQL, обеспечивающее получение первичного ключа пользователя'; +$lang['delUser'] = 'Выражение SQL, осуществляющее удаление пользователя'; +$lang['delUserRefs'] = 'Выражение SQL, осуществляющее удаление пользователя из всех группы'; +$lang['updateUser'] = 'Выражение SQL, осуществляющее обновление профиля пользователя'; +$lang['delUserGroup'] = 'Выражение SQL, осуществляющее удаление пользователя из указанной группы'; +$lang['getGroupID'] = 'Выражение SQL, обеспечивающее получение первичного ключа указанной группы'; diff --git a/lib/plugins/plugin/lang/ru/lang.php b/lib/plugins/plugin/lang/ru/lang.php index 6af100bd3..b933f7754 100644 --- a/lib/plugins/plugin/lang/ru/lang.php +++ b/lib/plugins/plugin/lang/ru/lang.php @@ -57,7 +57,7 @@ $lang['error_download'] = 'Не могу скачать файл плаг $lang['error_badurl'] = 'Возможно неправильный адрес — не могу определить имя файла из адреса'; $lang['error_dircreate'] = 'Не могу создать временную директорию для скачивания'; $lang['error_decompress'] = 'Менеджеру плагинов не удалось распаковать скачанный файл. Это может быть результатом ошибки при скачивании, в этом случае вы можете попробовать снова, или же плагин упакован неизвестным архиватором, тогда вам необходимо скачать и установить плагин вручную.'; -$lang['error_copy'] = 'Произошла ошибка копирования при попытке установки файлов для плагина %s: переполнение диска или неправильные права доступа. Это могло привести к частичной установке плагина и неустойчивости вашей вики.'; +$lang['error_copy'] = 'Произошла ошибка копирования при попытке установки файлов для плагина %s: переполнение диска или неправильные права доступа. Это могло привести к частичной установке плагина и неустойчивости работы вашей вики.'; $lang['error_delete'] = 'Произошла ошибка при попытке удалить плагин %s. Наиболее вероятно, что нет необходимых прав доступа к файлам или директориям'; $lang['enabled'] = 'Плагин %s включен.'; $lang['notenabled'] = 'Не удалось включить плагин %s. Проверьте системные права доступа к файлам.'; diff --git a/lib/plugins/usermanager/lang/ru/import.txt b/lib/plugins/usermanager/lang/ru/import.txt index 271a9b177..3a25f34ce 100644 --- a/lib/plugins/usermanager/lang/ru/import.txt +++ b/lib/plugins/usermanager/lang/ru/import.txt @@ -2,8 +2,8 @@ Потребуется список пользователей в файле формата CSV, состоящий из 4 столбцов. Столбцы должны быть заполнены следующим образом: user-id, полное имя, эл. почта, группы. -Поля CSV должны быть отделены запятой (,) а строки должны быть заключены в кавычки (""). Обратный слэш используется как прерывание. -В качестве примера можете взять список пользователей, экспортированный через "Экспорт пользователей". +Поля CSV должны быть отделены запятой (,), а строки должны быть заключены в кавычки (""). Обратный слэш используется как прерывание. +В качестве примера можете взять список пользователей, экспортированный через «Экспорт пользователей». Повторяющиеся идентификаторы user-id будут игнорироваться. -Парол доступа будет сгенерирован и отправлен по почте удачно импортированному пользователю. \ No newline at end of file +Пароль доступа будет сгенерирован и отправлен по почте удачно импортированному пользователю. \ No newline at end of file -- cgit v1.2.3 From 2f7a0e94cadfbc1ece3bd1d3ff23483b845cd420 Mon Sep 17 00:00:00 2001 From: Matt Perry Date: Tue, 10 Sep 2013 22:17:43 -0700 Subject: Fix CodeSniffer whitespace violoations Removed extraneous whitespace to eliminate errors reported by the Squiz.WhiteSpace.SuperfluousWhitespace sniff. --- lib/plugins/acl/admin.php | 4 ---- lib/plugins/acl/style.css | 2 -- lib/plugins/config/settings/config.class.php | 2 -- lib/plugins/plugin/admin.php | 1 - lib/plugins/plugin/classes/ap_info.class.php | 1 - lib/plugins/popularity/action.php | 1 - lib/plugins/revert/admin.php | 1 - lib/plugins/syntax.php | 4 ++-- lib/plugins/usermanager/admin.php | 1 - lib/scripts/linkwiz.js | 1 - lib/scripts/textselection.js | 2 -- lib/tpl/dokuwiki/css/_forms.css | 1 - lib/tpl/dokuwiki/css/_media_fullscreen.css | 1 - 13 files changed, 2 insertions(+), 20 deletions(-) (limited to 'lib') diff --git a/lib/plugins/acl/admin.php b/lib/plugins/acl/admin.php index 50377da81..5ab73670d 100644 --- a/lib/plugins/acl/admin.php +++ b/lib/plugins/acl/admin.php @@ -61,7 +61,6 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { // fresh 1:1 copy without replacements $AUTH_ACL = file($config_cascade['acl']['default']); - // namespace given? if($INPUT->str('ns') == '*'){ $this->ns = '*'; @@ -386,7 +385,6 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { echo ''.$this->getLang('acl_mod').''; } - echo $this->_html_checkboxes($current,empty($this->ns),'acl'); if(is_null($current)){ @@ -686,7 +684,6 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { if($acl_level > AUTH_EDIT) $acl_level = AUTH_EDIT; } - $new_acl = "$acl_scope\t$acl_user\t$acl_level\n"; $new_config = $acl_config.$new_acl; @@ -775,7 +772,6 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { $inlist = true; } - echo '"); @@ -256,13 +263,18 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $this->_htmlImportForm(); } ptln(""); + return true; } - /** - * @todo disable fields which the backend can't change + * Display form to add or modify a user + * + * @param string $cmd 'add' or 'modify' + * @param string $user id of user + * @param array $userdata array with name, mail, pass and grps + * @param int $indent */ - function _htmlUserForm($cmd,$user='',$userdata=array(),$indent=0) { + private function _htmlUserForm($cmd,$user='',$userdata=array(),$indent=0) { global $conf; global $ID; @@ -332,7 +344,17 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { ptln("",$indent); } - function _htmlInputField($id, $name, $label, $value, $cando, $indent=0) { + /** + * Prints a inputfield + * + * @param string $id + * @param string $name + * @param string $label + * @param string $value + * @param bool $cando whether auth backend is capable to do this action + * @param int $indent + */ + private function _htmlInputField($id, $name, $label, $value, $cando, $indent=0) { $class = $cando ? '' : ' class="disabled"'; echo str_pad('',$indent); @@ -361,12 +383,23 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { echo ""; } - function _htmlFilter($key) { + /** + * Returns htmlescaped filter value + * + * @param string $key name of search field + * @return string html escaped value + */ + private function _htmlFilter($key) { if (empty($this->_filter)) return ''; return (isset($this->_filter[$key]) ? hsc($this->_filter[$key]) : ''); } - function _htmlFilterSettings($indent=0) { + /** + * Print hidden inputs with the current filter values + * + * @param int $indent + */ + private function _htmlFilterSettings($indent=0) { ptln("_start."\" />",$indent); @@ -375,7 +408,12 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } } - function _htmlImportForm($indent=0) { + /** + * Print import form and summary of previous import + * + * @param int $indent + */ + private function _htmlImportForm($indent=0) { global $ID; $failure_download_link = wl($ID,array('do'=>'admin','page'=>'usermanager','fn[importfails]'=>1)); @@ -428,7 +466,12 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } - function _addUser(){ + /** + * Add an user to auth backend + * + * @return bool whether succesful + */ + private function _addUser(){ global $INPUT; if (!checkSecurityToken()) return false; if (!$this->_auth->canDo('addUser')) return false; @@ -489,9 +532,11 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } /** - * Delete user + * Delete user from auth backend + * + * @return bool whether succesful */ - function _deleteUser(){ + private function _deleteUser(){ global $conf, $INPUT; if (!checkSecurityToken()) return false; @@ -524,8 +569,11 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { /** * Edit user (a user has been selected for editing) + * + * @param string $param id of the user + * @return bool whether succesful */ - function _editUser($param) { + private function _editUser($param) { if (!checkSecurityToken()) return false; if (!$this->_auth->canDo('UserMod')) return false; @@ -545,9 +593,11 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } /** - * Modify user (modified user data has been recieved) + * Modify user in the auth backend (modified user data has been recieved) + * + * @return bool whether succesful */ - function _modifyUser(){ + private function _modifyUser(){ global $conf, $INPUT; if (!checkSecurityToken()) return false; @@ -615,9 +665,14 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } /** - * send password change notification email + * Send password change notification email + * + * @param string $user id of user + * @param string $password plain text + * @param bool $status_alert whether status alert should be shown + * @return bool whether succesful */ - function _notifyUser($user, $password, $status_alert=true) { + private function _notifyUser($user, $password, $status_alert=true) { if ($sent = auth_sendPassword($user,$password)) { if ($status_alert) { @@ -633,11 +688,13 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } /** - * retrieve & clean user data from the form + * Retrieve & clean user data from the form * + * @param bool $clean whether the cleanUser method of the authentication backend is applied * @return array (user, password, full name, email, array(groups)) */ - function _retrieveUser($clean=true) { + private function _retrieveUser($clean=true) { + /** @var DokuWiki_Auth_Plugin $auth */ global $auth; global $INPUT; @@ -656,7 +713,12 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { return $user; } - function _setFilter($op) { + /** + * Set the filter with the current search terms or clear the filter + * + * @param string $op 'new' or 'clear' + */ + private function _setFilter($op) { $this->_filter = array(); @@ -670,7 +732,12 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } } - function _retrieveFilter() { + /** + * Get the current search terms + * + * @return array + */ + private function _retrieveFilter() { global $INPUT; $t_filter = $INPUT->arr('filter'); @@ -686,7 +753,10 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { return $filter; } - function _validatePagination() { + /** + * Validate and improve the pagination values + */ + private function _validatePagination() { if ($this->_start >= $this->_user_total) { $this->_start = $this->_user_total - $this->_pagesize; @@ -696,10 +766,12 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $this->_last = min($this->_user_total, $this->_start + $this->_pagesize); } - /* - * return an array of strings to enable/disable pagination buttons + /** + * Return an array of strings to enable/disable pagination buttons + * + * @return array with enable/disable attributes */ - function _pagination() { + private function _pagination() { $disabled = 'disabled="disabled"'; @@ -715,10 +787,10 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { return $buttons; } - /* - * export a list of users in csv format using the current filter criteria + /** + * Export a list of users in csv format using the current filter criteria */ - function _export() { + private function _export() { // list of users for export - based on current filter criteria $user_list = $this->_auth->retrieveUsers(0, 0, $this->_filter); $column_headings = array( @@ -747,12 +819,14 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { die; } - /* - * import a file of users in csv format + /** + * Import a file of users in csv format * * csv file should have 4 columns, user_id, full name, email, groups (comma separated) + * + * @return bool whether succesful */ - function _import() { + private function _import() { // check we are allowed to add users if (!checkSecurityToken()) return false; if (!$this->_auth->canDo('addUser')) return false; @@ -812,9 +886,17 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $_SESSION['import_failures'] = $this->_import_failures; session_write_close(); } + return true; } - function _cleanImportUser($candidate, & $error){ + /** + * Returns cleaned row data + * + * @param array $candidate raw values of line from input file + * @param $error + * @return array|bool cleaned data or false + */ + private function _cleanImportUser($candidate, & $error){ global $INPUT; // kludgy .... @@ -853,7 +935,16 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { return $cleaned; } - function _addImportUser($user, & $error){ + /** + * Adds imported user to auth backend + * + * Required a check of canDo('addUser') before + * + * @param array $user data of user + * @param string &$error reference catched error message + * @return bool whether succesful + */ + private function _addImportUser($user, & $error){ if (!$this->_auth->triggerUserMod('create', $user)) { $error = $this->lang['import_error_create']; return false; @@ -862,7 +953,10 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { return true; } - function _downloadImportFailures(){ + /** + * Downloads failures as csv file + */ + private function _downloadImportFailures(){ // ============================================================================================== // GENERATE OUTPUT @@ -874,7 +968,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { // output the csv $fd = fopen('php://output','w'); - foreach ($this->_import_failures as $line => $fail) { + foreach ($this->_import_failures as $fail) { fputs($fd, $fail['orig']); } fclose($fd); -- cgit v1.2.3 From b59cff8b714aa11b5b1afd209e9d73f6803883cd Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Sat, 21 Sep 2013 02:15:39 +0200 Subject: Move strings to language files. Fix lang key --- lib/plugins/usermanager/admin.php | 8 ++++---- lib/plugins/usermanager/lang/en/lang.php | 5 ++++- lib/plugins/usermanager/lang/nl/lang.php | 3 +-- 3 files changed, 9 insertions(+), 7 deletions(-) (limited to 'lib') diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index bea5de177..4abef37ff 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -143,7 +143,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $delete_disable = $this->_auth->canDo('delUser') ? '' : 'disabled="disabled"'; $editable = $this->_auth->canDo('UserMod'); - $export_label = empty($this->_filter) ? $this->lang['export_all'] : $this->lang[export_filtered]; + $export_label = empty($this->_filter) ? $this->lang['export_all'] : $this->lang['export_filtered']; print $this->locale_xhtml('intro'); print $this->locale_xhtml('list'); @@ -422,7 +422,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { print $this->locale_xhtml('import'); ptln('
',$indent); formSecurityToken(); - ptln(' ',$indent); + ptln(' ',$indent); ptln(' ',$indent); ptln(' ',$indent); ptln(' ',$indent); @@ -435,7 +435,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { if ($this->_import_failures) { $digits = strlen(count($this->_import_failures)); ptln('
',$indent); - ptln('

Most Recent Import - Failures

'); + ptln('

'.$this->lang['import_header'].'

'); ptln(' ',$indent); ptln(' ',$indent); ptln(' ',$indent); @@ -460,7 +460,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } ptln(' ',$indent); ptln('
',$indent); - ptln('

Download Failures as CSV for correction

'); + ptln('

'.$this->lang['import_downloadfailures'].'

'); ptln('
'); } diff --git a/lib/plugins/usermanager/lang/en/lang.php b/lib/plugins/usermanager/lang/en/lang.php index 69119e196..f87c77afb 100644 --- a/lib/plugins/usermanager/lang/en/lang.php +++ b/lib/plugins/usermanager/lang/en/lang.php @@ -61,7 +61,9 @@ $lang['add_fail'] = 'User addition failed'; $lang['notify_ok'] = 'Notification email sent'; $lang['notify_fail'] = 'Notification email could not be sent'; -// import errors +// import & errors +$lang['import_userlistcsv'] = 'User list file (CSV): '; +$lang['import_header'] = 'Most Recent Import - Failures'; $lang['import_success_count'] = 'User Import: %d users found, %d imported successfully.'; $lang['import_failure_count'] = 'User Import: %d failed. Failures are listed below.'; $lang['import_error_fields'] = "Insufficient fields, found %d, require 4."; @@ -72,5 +74,6 @@ $lang['import_error_upload'] = 'Import Failed. The csv file could not be upload $lang['import_error_readfail'] = 'Import Failed. Unable to read uploaded file.'; $lang['import_error_create'] = 'Unable to create the user'; $lang['import_notify_fail'] = 'Notification message could not be sent for imported user, %s with email %s.'; +$lang['import_downloadfailures'] = 'Download Failures as CSV for correction'; diff --git a/lib/plugins/usermanager/lang/nl/lang.php b/lib/plugins/usermanager/lang/nl/lang.php index 7be10c16a..da628903d 100644 --- a/lib/plugins/usermanager/lang/nl/lang.php +++ b/lib/plugins/usermanager/lang/nl/lang.php @@ -14,7 +14,6 @@ * @author Timon Van Overveldt * @author Jeroen * @author Ricardo Guijt - * @author Gerrit * @author Gerrit Uitslag */ $lang['menu'] = 'Gebruikersmanager'; @@ -39,7 +38,7 @@ $lang['search_prompt'] = 'Voer zoekopdracht uit'; $lang['clear'] = 'Verwijder zoekfilter'; $lang['filter'] = 'Filter'; $lang['export_all'] = 'Exporteer Alle Gebruikers (CSV)'; -$lang['export_filtered'] = 'Exporteer de lijst van Gefilterde Gebruikers (CSV)'; +$lang['export_filtered'] = 'Exporteer Gefilterde Gebruikers (CSV)'; $lang['import'] = 'Importeer Nieuwe Gebruikers'; $lang['line'] = 'Regelnummer'; $lang['error'] = 'Foutmelding'; -- cgit v1.2.3 From 786dfb0e75bc29b381ce487ba9564fcc0f0fbed0 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Sat, 21 Sep 2013 16:05:16 +0200 Subject: Use ->cleanUser everywhere in usermanager. Fixes FS#2849 Some auth backend have bad cleaning, but that is responsibility of these. --- lib/plugins/usermanager/admin.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'lib') diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index 4abef37ff..74eaee721 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -576,8 +576,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { private function _editUser($param) { if (!checkSecurityToken()) return false; if (!$this->_auth->canDo('UserMod')) return false; - - $user = cleanID(preg_replace('/.*:/','',$param)); + $user = $this->_auth->cleanUser(preg_replace('/.*[:\/]/','',$param)); $userdata = $this->_auth->getUserData($user); // no user found? @@ -604,7 +603,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { if (!$this->_auth->canDo('UserMod')) return false; // get currently valid user data - $olduser = cleanID(preg_replace('/.*:/','',$INPUT->str('userid_old'))); + $olduser = $this->_auth->cleanUser(preg_replace('/.*[:\/]/','',$INPUT->str('userid_old'))); $oldinfo = $this->_auth->getUserData($olduser); // get new user data subject to change @@ -890,7 +889,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } /** - * Returns cleaned row data + * Returns cleaned user data * * @param array $candidate raw values of line from input file * @param $error -- cgit v1.2.3 From 911d14c2d98b8c3c12425014a581e58d748cb214 Mon Sep 17 00:00:00 2001 From: Leone Lisboa Magevski Date: Sun, 22 Sep 2013 18:46:02 +0200 Subject: translation update --- lib/plugins/usermanager/lang/pt-br/lang.php | 3 +++ 1 file changed, 3 insertions(+) (limited to 'lib') diff --git a/lib/plugins/usermanager/lang/pt-br/lang.php b/lib/plugins/usermanager/lang/pt-br/lang.php index 8beae392f..dc53337ba 100644 --- a/lib/plugins/usermanager/lang/pt-br/lang.php +++ b/lib/plugins/usermanager/lang/pt-br/lang.php @@ -18,6 +18,7 @@ * @author Isaias Masiero Filho * @author Balaco Baco * @author Victor Westmann + * @author Leone Lisboa Magevski */ $lang['menu'] = 'Gerenciamento de Usuários'; $lang['noauth'] = '(o gerenciamento de usuários não está disponível)'; @@ -40,6 +41,8 @@ $lang['search'] = 'Pesquisar'; $lang['search_prompt'] = 'Executar a pesquisa'; $lang['clear'] = 'Limpar o filtro de pesquisa'; $lang['filter'] = 'Filtro'; +$lang['export_all'] = 'Exportar Todos Usuários (CSV)'; +$lang['import'] = 'Importar Novos Usuários'; $lang['summary'] = 'Exibindo usuários %1$d-%2$d de %3$d encontrados. %4$d usuários no total.'; $lang['nonefound'] = 'Nenhum usuário encontrado. %d usuários no total.'; $lang['delete_ok'] = '%d usuários excluídos'; -- cgit v1.2.3 From 3712ca9a1625d41832dda690dcf98bd75f955502 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Sun, 22 Sep 2013 23:34:44 +0200 Subject: change visibility of private to protected --- lib/plugins/usermanager/admin.php | 60 +++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 30 deletions(-) (limited to 'lib') diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index 74eaee721..0e677e394 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -21,16 +21,16 @@ if(!defined('DOKU_PLUGIN_IMAGES')) define('DOKU_PLUGIN_IMAGES',DOKU_BASE.'lib/pl */ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { - private $_auth = null; // auth object - private $_user_total = 0; // number of registered users - private $_filter = array(); // user selection filter(s) - private $_start = 0; // index of first user to be displayed - private $_last = 0; // index of the last user to be displayed - private $_pagesize = 20; // number of users to list on one page - private $_edit_user = ''; // set to user selected for editing - private $_edit_userdata = array(); - private $_disabled = ''; // if disabled set to explanatory string - private $_import_failures = array(); + protected $_auth = null; // auth object + protected $_user_total = 0; // number of registered users + protected $_filter = array(); // user selection filter(s) + protected $_start = 0; // index of first user to be displayed + protected $_last = 0; // index of the last user to be displayed + protected $_pagesize = 20; // number of users to list on one page + protected $_edit_user = ''; // set to user selected for editing + protected $_edit_userdata = array(); + protected $_disabled = ''; // if disabled set to explanatory string + protected $_import_failures = array(); /** * Constructor @@ -274,7 +274,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * @param array $userdata array with name, mail, pass and grps * @param int $indent */ - private function _htmlUserForm($cmd,$user='',$userdata=array(),$indent=0) { + protected function _htmlUserForm($cmd,$user='',$userdata=array(),$indent=0) { global $conf; global $ID; @@ -354,7 +354,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * @param bool $cando whether auth backend is capable to do this action * @param int $indent */ - private function _htmlInputField($id, $name, $label, $value, $cando, $indent=0) { + protected function _htmlInputField($id, $name, $label, $value, $cando, $indent=0) { $class = $cando ? '' : ' class="disabled"'; echo str_pad('',$indent); @@ -389,7 +389,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * @param string $key name of search field * @return string html escaped value */ - private function _htmlFilter($key) { + protected function _htmlFilter($key) { if (empty($this->_filter)) return ''; return (isset($this->_filter[$key]) ? hsc($this->_filter[$key]) : ''); } @@ -399,7 +399,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * * @param int $indent */ - private function _htmlFilterSettings($indent=0) { + protected function _htmlFilterSettings($indent=0) { ptln("_start."\" />",$indent); @@ -413,7 +413,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * * @param int $indent */ - private function _htmlImportForm($indent=0) { + protected function _htmlImportForm($indent=0) { global $ID; $failure_download_link = wl($ID,array('do'=>'admin','page'=>'usermanager','fn[importfails]'=>1)); @@ -471,7 +471,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * * @return bool whether succesful */ - private function _addUser(){ + protected function _addUser(){ global $INPUT; if (!checkSecurityToken()) return false; if (!$this->_auth->canDo('addUser')) return false; @@ -536,7 +536,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * * @return bool whether succesful */ - private function _deleteUser(){ + protected function _deleteUser(){ global $conf, $INPUT; if (!checkSecurityToken()) return false; @@ -573,7 +573,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * @param string $param id of the user * @return bool whether succesful */ - private function _editUser($param) { + protected function _editUser($param) { if (!checkSecurityToken()) return false; if (!$this->_auth->canDo('UserMod')) return false; $user = $this->_auth->cleanUser(preg_replace('/.*[:\/]/','',$param)); @@ -596,7 +596,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * * @return bool whether succesful */ - private function _modifyUser(){ + protected function _modifyUser(){ global $conf, $INPUT; if (!checkSecurityToken()) return false; @@ -671,7 +671,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * @param bool $status_alert whether status alert should be shown * @return bool whether succesful */ - private function _notifyUser($user, $password, $status_alert=true) { + protected function _notifyUser($user, $password, $status_alert=true) { if ($sent = auth_sendPassword($user,$password)) { if ($status_alert) { @@ -692,7 +692,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * @param bool $clean whether the cleanUser method of the authentication backend is applied * @return array (user, password, full name, email, array(groups)) */ - private function _retrieveUser($clean=true) { + protected function _retrieveUser($clean=true) { /** @var DokuWiki_Auth_Plugin $auth */ global $auth; global $INPUT; @@ -717,7 +717,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * * @param string $op 'new' or 'clear' */ - private function _setFilter($op) { + protected function _setFilter($op) { $this->_filter = array(); @@ -736,7 +736,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * * @return array */ - private function _retrieveFilter() { + protected function _retrieveFilter() { global $INPUT; $t_filter = $INPUT->arr('filter'); @@ -755,7 +755,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { /** * Validate and improve the pagination values */ - private function _validatePagination() { + protected function _validatePagination() { if ($this->_start >= $this->_user_total) { $this->_start = $this->_user_total - $this->_pagesize; @@ -770,7 +770,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * * @return array with enable/disable attributes */ - private function _pagination() { + protected function _pagination() { $disabled = 'disabled="disabled"'; @@ -789,7 +789,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { /** * Export a list of users in csv format using the current filter criteria */ - private function _export() { + protected function _export() { // list of users for export - based on current filter criteria $user_list = $this->_auth->retrieveUsers(0, 0, $this->_filter); $column_headings = array( @@ -825,7 +825,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * * @return bool whether succesful */ - private function _import() { + protected function _import() { // check we are allowed to add users if (!checkSecurityToken()) return false; if (!$this->_auth->canDo('addUser')) return false; @@ -895,7 +895,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * @param $error * @return array|bool cleaned data or false */ - private function _cleanImportUser($candidate, & $error){ + protected function _cleanImportUser($candidate, & $error){ global $INPUT; // kludgy .... @@ -943,7 +943,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * @param string &$error reference catched error message * @return bool whether succesful */ - private function _addImportUser($user, & $error){ + protected function _addImportUser($user, & $error){ if (!$this->_auth->triggerUserMod('create', $user)) { $error = $this->lang['import_error_create']; return false; @@ -955,7 +955,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { /** * Downloads failures as csv file */ - private function _downloadImportFailures(){ + protected function _downloadImportFailures(){ // ============================================================================================== // GENERATE OUTPUT -- cgit v1.2.3 From 61ccb1b0fb80338913b12ed9336ca5142456fb6b Mon Sep 17 00:00:00 2001 From: monica Date: Tue, 24 Sep 2013 21:15:54 +0200 Subject: translation update --- lib/plugins/authad/lang/es/settings.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 lib/plugins/authad/lang/es/settings.php (limited to 'lib') diff --git a/lib/plugins/authad/lang/es/settings.php b/lib/plugins/authad/lang/es/settings.php new file mode 100644 index 000000000..9d0aa80ac --- /dev/null +++ b/lib/plugins/authad/lang/es/settings.php @@ -0,0 +1,13 @@ + + */ +$lang['account_suffix'] = 'Su cuenta, sufijo. Ejem. @ my.domain.org '; +$lang['base_dn'] = 'Su base DN. Ejem. DC=my,DC=dominio,DC=org'; +$lang['domain_controllers'] = 'Una lista separada por coma de los controladores de dominios. Ejem. srv1.dominio.org,srv2.dominio.org'; +$lang['admin_username'] = 'Un usuario con privilegios de Active Directory con acceso a los datos de cualquier otro usuario. Opcional, pero es necesario para determinadas acciones como el envío de suscripciones de correos electrónicos.'; +$lang['admin_password'] = 'La contraseña del usuario anterior.'; +$lang['sso'] = 'En caso de inicio de sesión usará ¿Kerberos o NTLM?'; -- cgit v1.2.3 From 0da02e4da30749eeeec74b09658d8aac595a4fb7 Mon Sep 17 00:00:00 2001 From: Martin Michalek Date: Tue, 1 Oct 2013 23:45:59 +0200 Subject: translation update --- lib/plugins/acl/lang/sk/lang.php | 4 ++-- lib/plugins/authad/lang/sk/settings.php | 11 +++++++++++ lib/plugins/authldap/lang/sk/settings.php | 10 ++++++++++ lib/plugins/authmysql/lang/sk/settings.php | 9 +++++++++ lib/plugins/authpgsql/lang/sk/settings.php | 9 +++++++++ lib/plugins/plugin/lang/sk/lang.php | 5 +++-- lib/plugins/popularity/lang/sk/lang.php | 5 +++-- lib/plugins/revert/lang/sk/lang.php | 5 +++-- lib/plugins/usermanager/lang/sk/lang.php | 5 +++-- 9 files changed, 53 insertions(+), 10 deletions(-) create mode 100644 lib/plugins/authad/lang/sk/settings.php create mode 100644 lib/plugins/authldap/lang/sk/settings.php create mode 100644 lib/plugins/authmysql/lang/sk/settings.php create mode 100644 lib/plugins/authpgsql/lang/sk/settings.php (limited to 'lib') diff --git a/lib/plugins/acl/lang/sk/lang.php b/lib/plugins/acl/lang/sk/lang.php index 398f8c63d..51837d4b4 100644 --- a/lib/plugins/acl/lang/sk/lang.php +++ b/lib/plugins/acl/lang/sk/lang.php @@ -1,8 +1,8 @@ * @author Michal Mesko * @author exusik@gmail.com diff --git a/lib/plugins/authad/lang/sk/settings.php b/lib/plugins/authad/lang/sk/settings.php new file mode 100644 index 000000000..0cc9b9b10 --- /dev/null +++ b/lib/plugins/authad/lang/sk/settings.php @@ -0,0 +1,11 @@ + + */ +$lang['admin_password'] = 'Heslo vyššie uvedeného používateľa.'; +$lang['use_ssl'] = 'Použiť SSL pripojenie? Ak áno, nepovoľte TLS nižšie.'; +$lang['use_tls'] = 'Použiť TLS pripojenie? Ak áno, nepovoľte SSL vyššie.'; +$lang['debug'] = 'Zobraziť doplňujúce ladiace informácie pri chybe?'; diff --git a/lib/plugins/authldap/lang/sk/settings.php b/lib/plugins/authldap/lang/sk/settings.php new file mode 100644 index 000000000..759c92304 --- /dev/null +++ b/lib/plugins/authldap/lang/sk/settings.php @@ -0,0 +1,10 @@ + + */ +$lang['starttls'] = 'Použiť TLS pripojenie?'; +$lang['bindpw'] = 'Heslo vyššie uvedeného používateľa'; +$lang['debug'] = 'Zobraziť doplňujúce ladiace informácie pri chybe'; diff --git a/lib/plugins/authmysql/lang/sk/settings.php b/lib/plugins/authmysql/lang/sk/settings.php new file mode 100644 index 000000000..4dfdfbf29 --- /dev/null +++ b/lib/plugins/authmysql/lang/sk/settings.php @@ -0,0 +1,9 @@ + + */ +$lang['password'] = 'Heslo pre vyššie uvedeného používateľa'; +$lang['debug'] = 'Zobraziť doplňujúce ladiace informácie'; diff --git a/lib/plugins/authpgsql/lang/sk/settings.php b/lib/plugins/authpgsql/lang/sk/settings.php new file mode 100644 index 000000000..4dfdfbf29 --- /dev/null +++ b/lib/plugins/authpgsql/lang/sk/settings.php @@ -0,0 +1,9 @@ + + */ +$lang['password'] = 'Heslo pre vyššie uvedeného používateľa'; +$lang['debug'] = 'Zobraziť doplňujúce ladiace informácie'; diff --git a/lib/plugins/plugin/lang/sk/lang.php b/lib/plugins/plugin/lang/sk/lang.php index 5024872f1..35c07cf80 100644 --- a/lib/plugins/plugin/lang/sk/lang.php +++ b/lib/plugins/plugin/lang/sk/lang.php @@ -1,7 +1,8 @@ * @author Michal Mesko * @author exusik@gmail.com diff --git a/lib/plugins/popularity/lang/sk/lang.php b/lib/plugins/popularity/lang/sk/lang.php index bc46b03c5..ab7accf0c 100644 --- a/lib/plugins/popularity/lang/sk/lang.php +++ b/lib/plugins/popularity/lang/sk/lang.php @@ -1,7 +1,8 @@ * @author exusik@gmail.com * @author Martin Michalek diff --git a/lib/plugins/revert/lang/sk/lang.php b/lib/plugins/revert/lang/sk/lang.php index 368d2d929..6a2cb119d 100644 --- a/lib/plugins/revert/lang/sk/lang.php +++ b/lib/plugins/revert/lang/sk/lang.php @@ -1,7 +1,8 @@ * @author exusik@gmail.com * @author Martin Michalek diff --git a/lib/plugins/usermanager/lang/sk/lang.php b/lib/plugins/usermanager/lang/sk/lang.php index 54ed374c6..aea2712ef 100644 --- a/lib/plugins/usermanager/lang/sk/lang.php +++ b/lib/plugins/usermanager/lang/sk/lang.php @@ -1,7 +1,8 @@ * @author Michal Mesko * @author exusik@gmail.com -- cgit v1.2.3 From c312f2806002b060e8bd2b6e69e3749020d56fb5 Mon Sep 17 00:00:00 2001 From: Martin Michalek Date: Wed, 2 Oct 2013 07:46:31 +0200 Subject: translation update --- lib/plugins/acl/lang/sk/lang.php | 4 ++-- lib/plugins/authmysql/lang/sk/settings.php | 11 +++++++++++ lib/plugins/authpgsql/lang/sk/settings.php | 11 +++++++++++ lib/plugins/plugin/lang/sk/lang.php | 5 +++-- lib/plugins/popularity/lang/sk/lang.php | 5 +++-- lib/plugins/revert/lang/sk/lang.php | 5 +++-- lib/plugins/usermanager/lang/sk/lang.php | 5 +++-- 7 files changed, 36 insertions(+), 10 deletions(-) create mode 100644 lib/plugins/authmysql/lang/sk/settings.php create mode 100644 lib/plugins/authpgsql/lang/sk/settings.php (limited to 'lib') diff --git a/lib/plugins/acl/lang/sk/lang.php b/lib/plugins/acl/lang/sk/lang.php index 398f8c63d..51837d4b4 100644 --- a/lib/plugins/acl/lang/sk/lang.php +++ b/lib/plugins/acl/lang/sk/lang.php @@ -1,8 +1,8 @@ * @author Michal Mesko * @author exusik@gmail.com diff --git a/lib/plugins/authmysql/lang/sk/settings.php b/lib/plugins/authmysql/lang/sk/settings.php new file mode 100644 index 000000000..1b7ef66a9 --- /dev/null +++ b/lib/plugins/authmysql/lang/sk/settings.php @@ -0,0 +1,11 @@ + + */ +$lang['server'] = 'MySQL server'; +$lang['user'] = 'MySQL meno používateľa'; +$lang['database'] = 'Použiť databázu'; +$lang['charset'] = 'Znaková sada databázy'; diff --git a/lib/plugins/authpgsql/lang/sk/settings.php b/lib/plugins/authpgsql/lang/sk/settings.php new file mode 100644 index 000000000..7a4756f71 --- /dev/null +++ b/lib/plugins/authpgsql/lang/sk/settings.php @@ -0,0 +1,11 @@ + + */ +$lang['server'] = 'PostgreSQL server'; +$lang['port'] = 'Port PostgreSQL servera'; +$lang['user'] = 'Meno používateľa PostgreSQL'; +$lang['database'] = 'Použiť databázu'; diff --git a/lib/plugins/plugin/lang/sk/lang.php b/lib/plugins/plugin/lang/sk/lang.php index 5024872f1..35c07cf80 100644 --- a/lib/plugins/plugin/lang/sk/lang.php +++ b/lib/plugins/plugin/lang/sk/lang.php @@ -1,7 +1,8 @@ * @author Michal Mesko * @author exusik@gmail.com diff --git a/lib/plugins/popularity/lang/sk/lang.php b/lib/plugins/popularity/lang/sk/lang.php index bc46b03c5..ab7accf0c 100644 --- a/lib/plugins/popularity/lang/sk/lang.php +++ b/lib/plugins/popularity/lang/sk/lang.php @@ -1,7 +1,8 @@ * @author exusik@gmail.com * @author Martin Michalek diff --git a/lib/plugins/revert/lang/sk/lang.php b/lib/plugins/revert/lang/sk/lang.php index 368d2d929..6a2cb119d 100644 --- a/lib/plugins/revert/lang/sk/lang.php +++ b/lib/plugins/revert/lang/sk/lang.php @@ -1,7 +1,8 @@ * @author exusik@gmail.com * @author Martin Michalek diff --git a/lib/plugins/usermanager/lang/sk/lang.php b/lib/plugins/usermanager/lang/sk/lang.php index 54ed374c6..aea2712ef 100644 --- a/lib/plugins/usermanager/lang/sk/lang.php +++ b/lib/plugins/usermanager/lang/sk/lang.php @@ -1,7 +1,8 @@ * @author Michal Mesko * @author exusik@gmail.com -- cgit v1.2.3 From c1862b04665a6741f91092145066e46f5152804d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1rio=20Estev=C3=A3o?= Date: Thu, 3 Oct 2013 18:15:58 +0200 Subject: translation update --- lib/plugins/usermanager/lang/pt-br/lang.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'lib') diff --git a/lib/plugins/usermanager/lang/pt-br/lang.php b/lib/plugins/usermanager/lang/pt-br/lang.php index dc53337ba..9bb37742a 100644 --- a/lib/plugins/usermanager/lang/pt-br/lang.php +++ b/lib/plugins/usermanager/lang/pt-br/lang.php @@ -19,6 +19,7 @@ * @author Balaco Baco * @author Victor Westmann * @author Leone Lisboa Magevski + * @author Dário Estevão */ $lang['menu'] = 'Gerenciamento de Usuários'; $lang['noauth'] = '(o gerenciamento de usuários não está disponível)'; @@ -43,6 +44,8 @@ $lang['clear'] = 'Limpar o filtro de pesquisa'; $lang['filter'] = 'Filtro'; $lang['export_all'] = 'Exportar Todos Usuários (CSV)'; $lang['import'] = 'Importar Novos Usuários'; +$lang['line'] = 'Linha Nº.'; +$lang['error'] = 'Mensagem de Erro'; $lang['summary'] = 'Exibindo usuários %1$d-%2$d de %3$d encontrados. %4$d usuários no total.'; $lang['nonefound'] = 'Nenhum usuário encontrado. %d usuários no total.'; $lang['delete_ok'] = '%d usuários excluídos'; @@ -63,3 +66,12 @@ $lang['add_ok'] = 'O usuário foi adicionado com sucesso'; $lang['add_fail'] = 'O usuário não foi adicionado'; $lang['notify_ok'] = 'O e-mail de notificação foi enviado'; $lang['notify_fail'] = 'Não foi possível enviar o e-mail de notificação'; +$lang['import_success_count'] = 'Importação de Usuário: %d usuário (s) encontrado (s), %d importado (s) com sucesso.'; +$lang['import_failure_count'] = 'Importação de Usuário: %d falhou. As falhas estão listadas abaixo.'; +$lang['import_error_fields'] = 'Campos insuficientes, encontrado (s) %d, necessário 4.'; +$lang['import_error_baduserid'] = 'Id do usuário não encontrado.'; +$lang['import_error_badname'] = 'Nome errado'; +$lang['import_error_badmail'] = 'Endereço de email errado'; +$lang['import_error_upload'] = 'Falha na Importação: O arquivo csv não pode ser carregado ou está vazio.'; +$lang['import_error_readfail'] = 'Falha na Importação: Habilitar para ler o arquivo a ser carregado.'; +$lang['import_error_create'] = 'Habilitar para criar o usuário.'; -- cgit v1.2.3 From 844d8067502e44b64cfc7120b159fbb5f5f9b3e2 Mon Sep 17 00:00:00 2001 From: mehrdad Date: Fri, 4 Oct 2013 09:55:56 +0200 Subject: translation update --- lib/plugins/acl/lang/fa/lang.php | 5 +++-- lib/plugins/plugin/lang/fa/lang.php | 5 +++-- lib/plugins/popularity/lang/fa/lang.php | 5 +++-- lib/plugins/revert/lang/fa/lang.php | 5 +++-- lib/plugins/usermanager/lang/fa/lang.php | 5 +++-- 5 files changed, 15 insertions(+), 10 deletions(-) (limited to 'lib') diff --git a/lib/plugins/acl/lang/fa/lang.php b/lib/plugins/acl/lang/fa/lang.php index 7fe0f2c43..24bebaeaf 100644 --- a/lib/plugins/acl/lang/fa/lang.php +++ b/lib/plugins/acl/lang/fa/lang.php @@ -1,7 +1,8 @@ * @author omidmr@gmail.com diff --git a/lib/plugins/plugin/lang/fa/lang.php b/lib/plugins/plugin/lang/fa/lang.php index bc43ee3ef..0a8fadb3c 100644 --- a/lib/plugins/plugin/lang/fa/lang.php +++ b/lib/plugins/plugin/lang/fa/lang.php @@ -1,7 +1,8 @@ * @author omidmr@gmail.com diff --git a/lib/plugins/popularity/lang/fa/lang.php b/lib/plugins/popularity/lang/fa/lang.php index 6a0529891..d2f071b07 100644 --- a/lib/plugins/popularity/lang/fa/lang.php +++ b/lib/plugins/popularity/lang/fa/lang.php @@ -1,7 +1,8 @@ * @author omidmr@gmail.com diff --git a/lib/plugins/revert/lang/fa/lang.php b/lib/plugins/revert/lang/fa/lang.php index ba20313a3..c6ce6176f 100644 --- a/lib/plugins/revert/lang/fa/lang.php +++ b/lib/plugins/revert/lang/fa/lang.php @@ -1,7 +1,8 @@ * @author omidmr@gmail.com diff --git a/lib/plugins/usermanager/lang/fa/lang.php b/lib/plugins/usermanager/lang/fa/lang.php index 8176b776b..a6a484411 100644 --- a/lib/plugins/usermanager/lang/fa/lang.php +++ b/lib/plugins/usermanager/lang/fa/lang.php @@ -1,7 +1,8 @@ * @author omidmr@gmail.com -- cgit v1.2.3 From b0a59c40fabfe5c49e2bf40c1f9456ae31873b78 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Fri, 4 Oct 2013 16:45:59 +0200 Subject: translation update --- lib/plugins/plugin/lang/cs/lang.php | 1 + lib/plugins/revert/lang/cs/lang.php | 1 + 2 files changed, 2 insertions(+) (limited to 'lib') diff --git a/lib/plugins/plugin/lang/cs/lang.php b/lib/plugins/plugin/lang/cs/lang.php index a92f8b1c2..fb8b6cc4e 100644 --- a/lib/plugins/plugin/lang/cs/lang.php +++ b/lib/plugins/plugin/lang/cs/lang.php @@ -15,6 +15,7 @@ * @author Jakub A. Těšínský (j@kub.cz) * @author mkucera66@seznam.cz * @author Zbyněk Křivka + * @author Gerrit Uitslag */ $lang['menu'] = 'Správa pluginů'; $lang['download'] = 'Stáhnout a instalovat plugin'; diff --git a/lib/plugins/revert/lang/cs/lang.php b/lib/plugins/revert/lang/cs/lang.php index d918e2e69..b9e7284d4 100644 --- a/lib/plugins/revert/lang/cs/lang.php +++ b/lib/plugins/revert/lang/cs/lang.php @@ -14,6 +14,7 @@ * @author Jakub A. Těšínský (j@kub.cz) * @author mkucera66@seznam.cz * @author Zbyněk Křivka + * @author Gerrit Uitslag */ $lang['menu'] = 'Obnova zaspamovaných stránek'; $lang['filter'] = 'Hledat zaspamované stránky'; -- cgit v1.2.3 From 4432749ab2140ede94ac1c724ab39b7219fdb406 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Fri, 4 Oct 2013 17:59:13 +0100 Subject: RS#2860 fix configuration option key to 'template' --- lib/tpl/dokuwiki/detail.php | 6 +++--- lib/tpl/dokuwiki/main.php | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'lib') diff --git a/lib/tpl/dokuwiki/detail.php b/lib/tpl/dokuwiki/detail.php index 9c04ba8e7..c602830f7 100644 --- a/lib/tpl/dokuwiki/detail.php +++ b/lib/tpl/dokuwiki/detail.php @@ -122,11 +122,11 @@ header('X-UA-Compatible: IE=edge,chrome=1'); // Back to [ID]; @todo: transfer logic to backend $data['img_backto'] = '
  • '.$lang['img_backto'].' '.$ID.'
  • '; - // the page tools can be ammended through a custom plugin hook + // the page tools can be amended through a custom plugin hook // if you're deriving from this template and your design is close enough to // the dokuwiki template you might want to trigger a DOKUWIKI event instead - // of using $conf['tpl'] here - $hook = 'TEMPLATE_'.strtoupper($conf['tpl']).'_PAGETOOLS_DISPLAY'; + // of using $conf['template'] here + $hook = 'TEMPLATE_'.strtoupper($conf['template']).'_PAGETOOLS_DISPLAY'; $evt = new Doku_Event($hook, $data); if($evt->advise_before()){ foreach($evt->data as $k => $html) echo $html; diff --git a/lib/tpl/dokuwiki/main.php b/lib/tpl/dokuwiki/main.php index 9e507d86d..f6ca4ed86 100644 --- a/lib/tpl/dokuwiki/main.php +++ b/lib/tpl/dokuwiki/main.php @@ -83,11 +83,11 @@ $showSidebar = $hasSidebar && ($ACT=='show'); 'top' => tpl_action('top', 1, 'li', 1, '', '') ); - // the page tools can be ammended through a custom plugin hook + // the page tools can be amended through a custom plugin hook // if you're deriving from this template and your design is close enough to // the dokuwiki template you might want to trigger a DOKUWIKI event instead - // of using $conf['tpl'] here - $hook = 'TEMPLATE_'.strtoupper($conf['tpl']).'_PAGETOOLS_DISPLAY'; + // of using $conf['template'] here + $hook = 'TEMPLATE_'.strtoupper($conf['template']).'_PAGETOOLS_DISPLAY'; $evt = new Doku_Event($hook, $data); if($evt->advise_before()){ foreach($evt->data as $k => $html) echo $html; -- cgit v1.2.3 From 8d761d98c3f60eea7b8a37355e516bced5a27a25 Mon Sep 17 00:00:00 2001 From: Hideaki SAWADA Date: Fri, 4 Oct 2013 19:00:59 +0200 Subject: translation update --- lib/plugins/authldap/lang/ja/settings.php | 16 ++++++++++++++-- lib/plugins/usermanager/lang/ja/import.txt | 10 ++++++++++ lib/plugins/usermanager/lang/ja/lang.php | 6 ++++++ 3 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 lib/plugins/usermanager/lang/ja/import.txt (limited to 'lib') diff --git a/lib/plugins/authldap/lang/ja/settings.php b/lib/plugins/authldap/lang/ja/settings.php index fdc6fc434..cee7b059c 100644 --- a/lib/plugins/authldap/lang/ja/settings.php +++ b/lib/plugins/authldap/lang/ja/settings.php @@ -1,6 +1,18 @@ + * @author Hideaki SAWADA */ +$lang['server'] = 'LDAPサーバー。ホスト名(localhostldap://server.tld:389)'; +$lang['port'] = '上記が完全修飾URLでない場合、LDAPサーバーポート'; +$lang['usertree'] = 'ユーザーアカウントを探す場所。例:ou=People, dc=server, dc=tld'; +$lang['grouptree'] = 'ユーザーグループを探す場所。例:ou=Group, dc=server, dc=tld'; +$lang['userfilter'] = 'ユーザーアカウントを探すためのLDAP抽出条件。例:(&(uid=%{user})(objectClass=posixAccount))'; +$lang['groupfilter'] = 'グループを探すLDAP抽出条件。例:(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))'; +$lang['version'] = '使用するプロトコルのバージョン。3を設定する必要がある場合があります。'; +$lang['binddn'] = '匿名バインドでは不十分な場合、オプションバインドユーザーのDN。例:cn=admin, dc=my, dc=home'; +$lang['bindpw'] = '上記ユーザーのパスワード'; +$lang['debug'] = 'エラーに関して追加のデバッグ情報を表示する。'; diff --git a/lib/plugins/usermanager/lang/ja/import.txt b/lib/plugins/usermanager/lang/ja/import.txt new file mode 100644 index 000000000..d4f7d08bf --- /dev/null +++ b/lib/plugins/usermanager/lang/ja/import.txt @@ -0,0 +1,10 @@ +===== 一括ユーザーインポート ===== + +少なくとも4列のユーザーCSVファイルが必要です。 +列の順序:ユーザーID、氏名、電子メールアドレス、グループ。 +CSVフィールドはカンマ(,)区切り、文字列は引用符("")区切りです。 +エスケープにバックスラッシュ(\)を使用できます。 +適切なファイル例は、上記の"エクスポートユーザー"機能で試して下さい。 +重複するユーザーIDは無視されます。 + +正常にインポートされたユーザー毎に、パスワードを作成し、電子メールで送付します。 \ No newline at end of file diff --git a/lib/plugins/usermanager/lang/ja/lang.php b/lib/plugins/usermanager/lang/ja/lang.php index 8b85ee9fd..75c2f13ed 100644 --- a/lib/plugins/usermanager/lang/ja/lang.php +++ b/lib/plugins/usermanager/lang/ja/lang.php @@ -10,6 +10,7 @@ * @author Kazutaka Miyasaka * @author Taisuke Shimamoto * @author Satoshi Sahara + * @author Hideaki SAWADA */ $lang['menu'] = 'ユーザー管理'; $lang['noauth'] = '(ユーザー認証が無効です)'; @@ -32,6 +33,11 @@ $lang['search'] = '検索'; $lang['search_prompt'] = '検索を実行'; $lang['clear'] = '検索フィルターをリセット'; $lang['filter'] = 'フィルター'; +$lang['export_all'] = '全ユーザーのエクスポート(CSV)'; +$lang['export_filtered'] = '抽出したユーザー一覧のエクスポート(CSV)'; +$lang['import'] = '新規ユーザーのインポート'; +$lang['line'] = '行番号'; +$lang['error'] = 'エラーメッセージ'; $lang['summary'] = 'ユーザー %1$d-%2$d / %3$d, 総ユーザー数 %4$d'; $lang['nonefound'] = 'ユーザーが見つかりません, 総ユーザー数 %d'; $lang['delete_ok'] = '%d ユーザーが削除されました'; -- cgit v1.2.3 From e12412a22fc56a88b5c40cfc0d15a718dbba425e Mon Sep 17 00:00:00 2001 From: Santosh Joshi Date: Sun, 6 Oct 2013 19:05:08 +0200 Subject: translation update --- lib/plugins/plugin/lang/hi/lang.php | 5 +++-- lib/plugins/popularity/lang/hi/lang.php | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'lib') diff --git a/lib/plugins/plugin/lang/hi/lang.php b/lib/plugins/plugin/lang/hi/lang.php index 67b177256..89d27cee1 100644 --- a/lib/plugins/plugin/lang/hi/lang.php +++ b/lib/plugins/plugin/lang/hi/lang.php @@ -1,7 +1,8 @@ * @author yndesai@gmail.com */ diff --git a/lib/plugins/popularity/lang/hi/lang.php b/lib/plugins/popularity/lang/hi/lang.php index c0085d72a..c818c7a1e 100644 --- a/lib/plugins/popularity/lang/hi/lang.php +++ b/lib/plugins/popularity/lang/hi/lang.php @@ -1,7 +1,8 @@ * @author yndesai@gmail.com */ -- cgit v1.2.3 From 8b04378a95bd7af3561056ed65b5f460b2ce4da9 Mon Sep 17 00:00:00 2001 From: Myeongjin Date: Mon, 7 Oct 2013 07:15:59 +0200 Subject: translation update --- lib/plugins/usermanager/lang/ko/lang.php | 3 +++ 1 file changed, 3 insertions(+) (limited to 'lib') diff --git a/lib/plugins/usermanager/lang/ko/lang.php b/lib/plugins/usermanager/lang/ko/lang.php index c9e54741f..1905fadc2 100644 --- a/lib/plugins/usermanager/lang/ko/lang.php +++ b/lib/plugins/usermanager/lang/ko/lang.php @@ -57,6 +57,8 @@ $lang['add_ok'] = '사용자를 성공적으로 추가했습니 $lang['add_fail'] = '사용자 추가를 실패했습니다'; $lang['notify_ok'] = '알림 이메일을 성공적으로 보냈습니다'; $lang['notify_fail'] = '알림 이메일을 보낼 수 없습니다'; +$lang['import_userlistcsv'] = '사용자 목록 파일 (CSV):'; +$lang['import_header'] = '가장 최근 가져오기 - 실패'; $lang['import_success_count'] = '사용자 가져오기: 사용자 %d명을 찾았고, %d명을 성공적으로 가져왔습니다.'; $lang['import_failure_count'] = '사용자 가져오기: %d명을 가져오지 못했습니다. 실패는 아래에 나타나 있습니다.'; $lang['import_error_fields'] = '충분하지 않은 필드로, %d개를 찾았고, 4개가 필요합니다.'; @@ -67,3 +69,4 @@ $lang['import_error_upload'] = '가져오기를 실패했습니다. csv 파일 $lang['import_error_readfail'] = '가져오기를 실패했습니다. 올린 파일을 읽을 수 없습니다.'; $lang['import_error_create'] = '사용자를 만들 수 없습니다.'; $lang['import_notify_fail'] = '알림 메시지를 가져온 %2$s (이메일: %1$s ) 사용자에게 보낼 수 없습니다.'; +$lang['import_downloadfailures'] = '교정을 위한 CSV로 다운로드 실패'; -- cgit v1.2.3 From 076f6bc9dcc5655fc64d3629879b1095407caae2 Mon Sep 17 00:00:00 2001 From: Martin Michalek Date: Mon, 7 Oct 2013 09:25:57 +0200 Subject: translation update --- lib/plugins/authmysql/lang/sk/settings.php | 29 ++++++++++++++++++++++++++--- lib/plugins/authpgsql/lang/sk/settings.php | 29 ++++++++++++++++++++++++++--- 2 files changed, 52 insertions(+), 6 deletions(-) (limited to 'lib') diff --git a/lib/plugins/authmysql/lang/sk/settings.php b/lib/plugins/authmysql/lang/sk/settings.php index d0df4aeef..17fc7977c 100644 --- a/lib/plugins/authmysql/lang/sk/settings.php +++ b/lib/plugins/authmysql/lang/sk/settings.php @@ -5,9 +5,32 @@ * * @author Martin Michalek */ -$lang['password'] = 'Heslo pre vyššie uvedeného používateľa'; -$lang['debug'] = 'Zobraziť doplňujúce ladiace informácie'; $lang['server'] = 'MySQL server'; $lang['user'] = 'MySQL meno používateľa'; +$lang['password'] = 'Heslo pre vyššie uvedeného používateľa'; $lang['database'] = 'Použiť databázu'; -$lang['charset'] = 'Znaková sada databázy'; \ No newline at end of file +$lang['charset'] = 'Znaková sada databázy'; +$lang['debug'] = 'Zobraziť doplňujúce ladiace informácie'; +$lang['checkPass'] = 'SQL príkaz pre kontrolu hesla'; +$lang['getUserInfo'] = 'SQL príkaz pre získanie informácií o používateľovi'; +$lang['getGroups'] = 'SQL príkaz pre získanie informácií o skupinách používateľa'; +$lang['getUsers'] = 'SQL príkaz pre získanie zoznamu používateľov'; +$lang['FilterLogin'] = 'SQL podmienka pre filtrovanie používateľov podľa prihlasovacieho mena'; +$lang['FilterName'] = 'SQL podmienka pre filtrovanie používateľov podľa mena a priezviska'; +$lang['FilterEmail'] = 'SQL podmienka pre filtrovanie používateľov podľa emailovej adresy'; +$lang['FilterGroup'] = 'SQL podmienka pre filtrovanie používateľov podľa skupiny'; +$lang['SortOrder'] = 'SQL podmienka pre usporiadenia používateľov'; +$lang['addUser'] = 'SQL príkaz pre pridanie nového používateľa'; +$lang['addGroup'] = 'SQL príkaz pre pridanie novej skupiny'; +$lang['addUserGroup'] = 'SQL príkaz pre pridanie používateľa do existujúcej skupiny'; +$lang['delGroup'] = 'SQL príkaz pre zrušenie skupiny'; +$lang['getUserID'] = 'SQL príkaz pre získanie primárneho klúča používateľa'; +$lang['delUser'] = 'SQL príkaz pre zrušenie používateľa'; +$lang['delUserRefs'] = 'SQL príkaz pre vyradenie používateľa zo všetkých skupín'; +$lang['updateUser'] = 'SQL príkaz pre aktualizáciu informácií o používateľovi'; +$lang['UpdateLogin'] = 'SQL podmienka pre aktualizáciu prihlasovacieho mena používateľa'; +$lang['UpdatePass'] = 'SQL podmienka pre aktualizáciu hesla používateľa'; +$lang['UpdateEmail'] = 'SQL podmienka pre aktualizáciu emailovej adresy používateľa'; +$lang['UpdateName'] = 'SQL podmienka pre aktualizáciu mena a priezviska používateľa'; +$lang['delUserGroup'] = 'SQL príkaz pre vyradenie používateľa z danej skupiny'; +$lang['getGroupID'] = 'SQL príkaz pre získanie primárneho kľúča skupiny'; diff --git a/lib/plugins/authpgsql/lang/sk/settings.php b/lib/plugins/authpgsql/lang/sk/settings.php index 1a80c7409..dafe5e83d 100644 --- a/lib/plugins/authpgsql/lang/sk/settings.php +++ b/lib/plugins/authpgsql/lang/sk/settings.php @@ -5,9 +5,32 @@ * * @author Martin Michalek */ -$lang['password'] = 'Heslo pre vyššie uvedeného používateľa'; -$lang['debug'] = 'Zobraziť doplňujúce ladiace informácie'; $lang['server'] = 'PostgreSQL server'; $lang['port'] = 'Port PostgreSQL servera'; $lang['user'] = 'Meno používateľa PostgreSQL'; -$lang['database'] = 'Použiť databázu'; \ No newline at end of file +$lang['password'] = 'Heslo pre vyššie uvedeného používateľa'; +$lang['database'] = 'Použiť databázu'; +$lang['debug'] = 'Zobraziť doplňujúce ladiace informácie'; +$lang['checkPass'] = 'SQL príkaz pre kontrolu hesla'; +$lang['getUserInfo'] = 'SQL príkaz pre získanie informácií o používateľovi'; +$lang['getGroups'] = 'SQL príkaz pre získanie informácií o skupinách používateľa'; +$lang['getUsers'] = 'SQL príkaz pre získanie zoznamu používateľov'; +$lang['FilterLogin'] = 'SQL podmienka pre filtrovanie používateľov podľa prihlasovacieho mena'; +$lang['FilterName'] = 'SQL podmienka pre filtrovanie používateľov podľa mena a priezviska'; +$lang['FilterEmail'] = 'SQL podmienka pre filtrovanie používateľov podľa emailovej adresy'; +$lang['FilterGroup'] = 'SQL podmienka pre filtrovanie používateľov podľa skupiny'; +$lang['SortOrder'] = 'SQL podmienka pre usporiadenia používateľov'; +$lang['addUser'] = 'SQL príkaz pre pridanie nového používateľa'; +$lang['addGroup'] = 'SQL príkaz pre pridanie novej skupiny'; +$lang['addUserGroup'] = 'SQL príkaz pre pridanie používateľa do existujúcej skupiny'; +$lang['delGroup'] = 'SQL príkaz pre zrušenie skupiny'; +$lang['getUserID'] = 'SQL príkaz pre získanie primárneho klúča používateľa'; +$lang['delUser'] = 'SQL príkaz pre zrušenie používateľa'; +$lang['delUserRefs'] = 'SQL príkaz pre vyradenie používateľa zo všetkých skupín'; +$lang['updateUser'] = 'SQL príkaz pre aktualizáciu informácií o používateľovi'; +$lang['UpdateLogin'] = 'SQL podmienka pre aktualizáciu prihlasovacieho mena používateľa'; +$lang['UpdatePass'] = 'SQL podmienka pre aktualizáciu hesla používateľa'; +$lang['UpdateEmail'] = 'SQL podmienka pre aktualizáciu emailovej adresy používateľa'; +$lang['UpdateName'] = 'SQL podmienka pre aktualizáciu mena a priezviska používateľa'; +$lang['delUserGroup'] = 'SQL príkaz pre vyradenie používateľa z danej skupiny'; +$lang['getGroupID'] = 'SQL príkaz pre získanie primárneho kľúča skupiny'; -- cgit v1.2.3 From c37f0c23e2e6de68df1185a401beca8d73627d8f Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Mon, 7 Oct 2013 14:46:14 +0200 Subject: translation update --- lib/plugins/usermanager/lang/nl/lang.php | 3 +++ 1 file changed, 3 insertions(+) (limited to 'lib') diff --git a/lib/plugins/usermanager/lang/nl/lang.php b/lib/plugins/usermanager/lang/nl/lang.php index da628903d..5cebede89 100644 --- a/lib/plugins/usermanager/lang/nl/lang.php +++ b/lib/plugins/usermanager/lang/nl/lang.php @@ -62,6 +62,8 @@ $lang['add_ok'] = 'Gebruiker succesvol toegevoegd'; $lang['add_fail'] = 'Gebruiker kon niet worden toegevoegd'; $lang['notify_ok'] = 'Notificatie-e-mail verzonden'; $lang['notify_fail'] = 'Notificatie-e-mail kon niet worden verzonden'; +$lang['import_userlistcsv'] = 'Gebruikerslijst (CSV-bestand):'; +$lang['import_header'] = 'Meest recente import - Gevonden fouten'; $lang['import_success_count'] = 'Gebruikers importeren: %d gebruikers gevonden, %d geïmporteerd'; $lang['import_failure_count'] = 'Gebruikers importeren: %d mislukt. Fouten zijn hieronder weergegeven.'; $lang['import_error_fields'] = 'Onvoldoende velden, gevonden %d, nodig 4.'; @@ -72,3 +74,4 @@ $lang['import_error_upload'] = 'Importeren mislukt. Het CSV bestand kon niet w $lang['import_error_readfail'] = 'Importeren mislukt. Lezen van het geüploade bestand is mislukt.'; $lang['import_error_create'] = 'Aanmaken van de gebruiker was niet mogelijk.'; $lang['import_notify_fail'] = 'Notificatiebericht kon niet naar de geïmporteerde gebruiker worden verstuurd, %s met e-mail %s.'; +$lang['import_downloadfailures'] = 'Download de gevonden fouten als CSV voor correctie'; -- cgit v1.2.3 From 30d21b979563135c12048a582ef5877368ef3d95 Mon Sep 17 00:00:00 2001 From: Serenity87HUN Date: Mon, 7 Oct 2013 15:16:34 +0200 Subject: translation update --- lib/plugins/acl/lang/hu/lang.php | 5 +++-- lib/plugins/authad/lang/hu/settings.php | 5 +++-- lib/plugins/authldap/lang/hu/settings.php | 5 +++-- lib/plugins/authmysql/lang/hu/settings.php | 5 +++-- lib/plugins/authpgsql/lang/hu/settings.php | 5 +++-- lib/plugins/plugin/lang/hu/lang.php | 5 +++-- lib/plugins/popularity/lang/hu/lang.php | 5 +++-- lib/plugins/revert/lang/hu/lang.php | 5 +++-- lib/plugins/usermanager/lang/hu/import.txt | 9 +++++++++ lib/plugins/usermanager/lang/hu/lang.php | 24 ++++++++++++++++++++++-- 10 files changed, 55 insertions(+), 18 deletions(-) create mode 100644 lib/plugins/usermanager/lang/hu/import.txt (limited to 'lib') diff --git a/lib/plugins/acl/lang/hu/lang.php b/lib/plugins/acl/lang/hu/lang.php index 9565eddc3..cc35243e1 100644 --- a/lib/plugins/acl/lang/hu/lang.php +++ b/lib/plugins/acl/lang/hu/lang.php @@ -1,7 +1,8 @@ * @author Siaynoq Mage * @author schilling.janos@gmail.com diff --git a/lib/plugins/authad/lang/hu/settings.php b/lib/plugins/authad/lang/hu/settings.php index c2cab410f..1510e1756 100644 --- a/lib/plugins/authad/lang/hu/settings.php +++ b/lib/plugins/authad/lang/hu/settings.php @@ -1,7 +1,8 @@ */ $lang['account_suffix'] = 'Felhasználói azonosító végződése, pl. @my.domain.org.'; diff --git a/lib/plugins/authldap/lang/hu/settings.php b/lib/plugins/authldap/lang/hu/settings.php index b4b28d0a0..041f82755 100644 --- a/lib/plugins/authldap/lang/hu/settings.php +++ b/lib/plugins/authldap/lang/hu/settings.php @@ -1,7 +1,8 @@ */ $lang['server'] = 'LDAP-szerver. Hosztnév (localhost) vagy abszolút URL portszámmal (ldap://server.tld:389)'; diff --git a/lib/plugins/authmysql/lang/hu/settings.php b/lib/plugins/authmysql/lang/hu/settings.php index 9489c73f9..4edceae1e 100644 --- a/lib/plugins/authmysql/lang/hu/settings.php +++ b/lib/plugins/authmysql/lang/hu/settings.php @@ -1,7 +1,8 @@ */ $lang['server'] = 'MySQL-szerver'; diff --git a/lib/plugins/authpgsql/lang/hu/settings.php b/lib/plugins/authpgsql/lang/hu/settings.php index 7b9393256..ff62a7016 100644 --- a/lib/plugins/authpgsql/lang/hu/settings.php +++ b/lib/plugins/authpgsql/lang/hu/settings.php @@ -1,7 +1,8 @@ */ $lang['server'] = 'PostgreSQL-szerver'; diff --git a/lib/plugins/plugin/lang/hu/lang.php b/lib/plugins/plugin/lang/hu/lang.php index 235d33a0e..b8fa2cdbe 100644 --- a/lib/plugins/plugin/lang/hu/lang.php +++ b/lib/plugins/plugin/lang/hu/lang.php @@ -1,7 +1,8 @@ * @author Siaynoq Mage * @author schilling.janos@gmail.com diff --git a/lib/plugins/popularity/lang/hu/lang.php b/lib/plugins/popularity/lang/hu/lang.php index 5ee40eacc..213d22655 100644 --- a/lib/plugins/popularity/lang/hu/lang.php +++ b/lib/plugins/popularity/lang/hu/lang.php @@ -1,7 +1,8 @@ * @author Siaynoq Mage * @author schilling.janos@gmail.com diff --git a/lib/plugins/revert/lang/hu/lang.php b/lib/plugins/revert/lang/hu/lang.php index 051e7b7d7..d16764a35 100644 --- a/lib/plugins/revert/lang/hu/lang.php +++ b/lib/plugins/revert/lang/hu/lang.php @@ -1,7 +1,8 @@ * @author Siaynoq Mage * @author schilling.janos@gmail.com diff --git a/lib/plugins/usermanager/lang/hu/import.txt b/lib/plugins/usermanager/lang/hu/import.txt new file mode 100644 index 000000000..5a4bc8b1c --- /dev/null +++ b/lib/plugins/usermanager/lang/hu/import.txt @@ -0,0 +1,9 @@ +==== Felhasználók tömeges importálása ==== + +Egy, legalább 4 oszlopot tartalmazó, felhasználóikat tartalmazó fájl szükséges hozzá. +Az oszlopok kötelező tartalma, megfelelő sorrendben: felhasználói azonosító, teljes név, e-mailcím és csoportjai. +A CSV mezőit vesszővel (,) kell elválasztani, a szövegeket idézőjelek ("") közé kell foglalni. +Mintafájl megtekintéséhez próbáld ki a fenti, "Felhasználók exportálása" funkciót. A fordított törtvonallal (\) lehet kilépni. +Megegyező felhasználói azonosítók esetén, nem kerülnek feldolgozásra. + +Minden sikeresen importált felhasználó kap egy e-mailt, amiben megtalálja a generált jelszavát. \ No newline at end of file diff --git a/lib/plugins/usermanager/lang/hu/lang.php b/lib/plugins/usermanager/lang/hu/lang.php index 71a5b4bc9..dd76bfd50 100644 --- a/lib/plugins/usermanager/lang/hu/lang.php +++ b/lib/plugins/usermanager/lang/hu/lang.php @@ -1,7 +1,8 @@ * @author Siaynoq Mage * @author schilling.janos@gmail.com @@ -9,6 +10,7 @@ * @author Sándor TIHANYI * @author David Szabo * @author Marton Sebok + * @author Serenity87HUN */ $lang['menu'] = 'Felhasználók kezelése'; $lang['noauth'] = '(A felhasználói azonosítás nem működik.)'; @@ -31,6 +33,11 @@ $lang['search'] = 'Keresés'; $lang['search_prompt'] = 'Keresés'; $lang['clear'] = 'Keresési szűrés törlése'; $lang['filter'] = 'Szűrés'; +$lang['export_all'] = 'Összes felhasználó exportálása (CSV)'; +$lang['export_filtered'] = 'Kiválasztott felhasználók exportálása (CSV)'; +$lang['import'] = 'Új felhasználók importálása'; +$lang['line'] = 'Sor száma'; +$lang['error'] = 'Hibaüzenet'; $lang['summary'] = '%1$d-%2$d. felhasználók megjelenítése a(z) %3$d megtalált felhasználóból. %4$d felhasználó van összesen.'; $lang['nonefound'] = 'Nincs ilyen felhasználó. %d felhasználó van összesen.'; $lang['delete_ok'] = '%d felhasználó törölve.'; @@ -51,3 +58,16 @@ $lang['add_ok'] = 'A felhasználó sikeresen hozzáadva.'; $lang['add_fail'] = 'A felhasználó hozzáadása nem sikerült.'; $lang['notify_ok'] = 'Értesítő levél elküldve.'; $lang['notify_fail'] = 'Nem sikerült az értesítő levelet elküldeni.'; +$lang['import_userlistcsv'] = 'Felhasználók listája fájl (CSV)'; +$lang['import_header'] = 'Legutóbbi importálás - Hibák'; +$lang['import_success_count'] = 'Felhasználók importálása: %d felhasználót találtunk, ebből %d sikeresen importálva.'; +$lang['import_failure_count'] = 'Felhasználók importálása: %d sikertelen. A sikertelenség okait lejjebb találod.'; +$lang['import_error_fields'] = 'Túl kevés mezőt adtál meg, %d darabot találtunk, legalább 4-re van szükség.'; +$lang['import_error_baduserid'] = 'Felhasználói azonosító hiányzik'; +$lang['import_error_badname'] = 'Nem megfelelő név'; +$lang['import_error_badmail'] = 'Nem megfelelő e-mailcím'; +$lang['import_error_upload'] = 'Sikertelen importálás. A csv fájl nem feltölthető vagy üres.'; +$lang['import_error_readfail'] = 'Sikertelen importálás. A feltöltött fájl nem olvasható.'; +$lang['import_error_create'] = 'Ez a felhasználó nem hozható létre'; +$lang['import_notify_fail'] = 'Az értesítő e-mail nem küldhető el az alábbi importált felhasználónak: %s e-mailcíme: %s.'; +$lang['import_downloadfailures'] = 'Töltsd le a hibákat tartalmazó fájlt CSV formátumban, hogy ki tudd javítani a hibákat'; -- cgit v1.2.3 From 75e4dd8a2ec6c181e99877919b5a2b529407752a Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Tue, 8 Oct 2013 00:06:46 +0200 Subject: Use in cookie a correct path, added DOKU_COOKIEPATH to js constants Fixes FS#2837 --- lib/exe/js.php | 1 + lib/scripts/cookie.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/exe/js.php b/lib/exe/js.php index 76238a81b..fc7a869c2 100644 --- a/lib/exe/js.php +++ b/lib/exe/js.php @@ -89,6 +89,7 @@ function js_out(){ // add some global variables print "var DOKU_BASE = '".DOKU_BASE."';"; print "var DOKU_TPL = '".tpl_basedir()."';"; + print "var DOKU_COOKIEPATH = '" . (empty($conf['cookiedir']) ? DOKU_REL : $conf['cookiedir']) . "';"; // FIXME: Move those to JSINFO print "var DOKU_UHN = ".((int) useHeading('navigation')).";"; print "var DOKU_UHC = ".((int) useHeading('content')).";"; diff --git a/lib/scripts/cookie.js b/lib/scripts/cookie.js index 3ad67bfa4..4cb527f26 100644 --- a/lib/scripts/cookie.js +++ b/lib/scripts/cookie.js @@ -30,7 +30,7 @@ var DokuCookie = { text.push(encodeURIComponent(key)+'#'+encodeURIComponent(val)); } }); - jQuery.cookie(this.name, text.join('#'), {expires: 365, path: DOKU_BASE}); + jQuery.cookie(this.name, text.join('#'), {expires: 365, path: DOKU_COOKIEPATH}); }, /** -- cgit v1.2.3 From d0cc235eb123037228447ba88c28d616a6b62169 Mon Sep 17 00:00:00 2001 From: Martin Michalek Date: Tue, 8 Oct 2013 12:20:56 +0200 Subject: translation update --- lib/plugins/authmysql/lang/sk/settings.php | 2 +- lib/plugins/usermanager/lang/sk/lang.php | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/plugins/authmysql/lang/sk/settings.php b/lib/plugins/authmysql/lang/sk/settings.php index 17fc7977c..477f2f10b 100644 --- a/lib/plugins/authmysql/lang/sk/settings.php +++ b/lib/plugins/authmysql/lang/sk/settings.php @@ -6,7 +6,7 @@ * @author Martin Michalek */ $lang['server'] = 'MySQL server'; -$lang['user'] = 'MySQL meno používateľa'; +$lang['user'] = 'Meno používateľa MySQL'; $lang['password'] = 'Heslo pre vyššie uvedeného používateľa'; $lang['database'] = 'Použiť databázu'; $lang['charset'] = 'Znaková sada databázy'; diff --git a/lib/plugins/usermanager/lang/sk/lang.php b/lib/plugins/usermanager/lang/sk/lang.php index aea2712ef..9aadbb53a 100644 --- a/lib/plugins/usermanager/lang/sk/lang.php +++ b/lib/plugins/usermanager/lang/sk/lang.php @@ -29,6 +29,11 @@ $lang['search'] = 'Hľadať'; $lang['search_prompt'] = 'Vykonať vyhľadávanie'; $lang['clear'] = 'Vynulovať vyhľadávací filter'; $lang['filter'] = 'Filter'; +$lang['export_all'] = 'Export všetkých používateľov (CSV)'; +$lang['export_filtered'] = 'Export zoznamu používateľov na základe filtra (CSV)'; +$lang['import'] = 'Import nových používateľov'; +$lang['line'] = 'Riadok č.'; +$lang['error'] = 'Chybová správa'; $lang['summary'] = 'Zobrazenie užívateľov %1$d-%2$d z %3$d nájdených. %4$d užívateľov celkom.'; $lang['nonefound'] = 'Žiadni užívatelia nenájdení. %d užívateľov celkom.'; $lang['delete_ok'] = '%d užívateľov zmazaných'; @@ -49,3 +54,16 @@ $lang['add_ok'] = 'Používateľ úspešne pridaný'; $lang['add_fail'] = 'Pridávanie užívateľa nebolo úspešné'; $lang['notify_ok'] = 'Notifikačný e-mail bol poslaný'; $lang['notify_fail'] = 'Notifikačný e-mail nemohol byť poslaný'; +$lang['import_userlistcsv'] = 'Súbor so zoznamov používateľov (CSV):'; +$lang['import_header'] = 'Chyby pri poslednom importe'; +$lang['import_success_count'] = 'Import používateľov: %d nájdených, %d úspešne importovaných.'; +$lang['import_failure_count'] = 'Import používateľov: %d neúspešných. Problámy vypísané nižšie.'; +$lang['import_error_fields'] = 'Neúplné záznamy, %d nájdené, 4 požadované.'; +$lang['import_error_baduserid'] = 'Chýba ID používateľa'; +$lang['import_error_badname'] = 'Nesprávne meno'; +$lang['import_error_badmail'] = 'Nesprávna emailová adresa'; +$lang['import_error_upload'] = 'Import neúspešný. CSV súbor nemohol byť nahraný alebo je prázdny.'; +$lang['import_error_readfail'] = 'Import neúspešný. Nie je možné prečítať nahraný súbor.'; +$lang['import_error_create'] = 'Nie je možné vytvoriť pouzívateľa'; +$lang['import_notify_fail'] = 'Správa nemohla byť zaslaná importovanému používatelovi, %s s emailom %s.'; +$lang['import_downloadfailures'] = 'Stiahnuť chyby vo formáte CSV za účelom opravy'; -- cgit v1.2.3 From 88f4ee239da1f6158c3adc8549bdd688e3d9b2a3 Mon Sep 17 00:00:00 2001 From: Hideaki SAWADA Date: Tue, 8 Oct 2013 20:16:36 +0200 Subject: translation update --- lib/plugins/authad/lang/ja/settings.php | 4 ++++ lib/plugins/authldap/lang/ja/settings.php | 6 ++++++ lib/plugins/usermanager/lang/ja/lang.php | 14 ++++++++++++++ 3 files changed, 24 insertions(+) (limited to 'lib') diff --git a/lib/plugins/authad/lang/ja/settings.php b/lib/plugins/authad/lang/ja/settings.php index 72e5cc76e..f308249ef 100644 --- a/lib/plugins/authad/lang/ja/settings.php +++ b/lib/plugins/authad/lang/ja/settings.php @@ -11,6 +11,10 @@ $lang['base_dn'] = 'ベースDN。例:DC=my,DC=domain,DC=o $lang['domain_controllers'] = 'ドメインコントローラのカンマ区切り一覧。例:srv1.domain.org,srv2.domain.org'; $lang['admin_username'] = '全ユーザーデータへのアクセス権のある特権Active Directoryユーザー。任意ですが、メール通知の登録等の特定の動作に必要。'; $lang['admin_password'] = '上記ユーザーのパスワード'; +$lang['sso'] = 'Kerberos か NTLM を使ったシングルサインオン(SSO)をしますか?'; +$lang['real_primarygroup'] = '"Domain Users" を仮定する代わりに本当のプライマリグループを解決する(低速)'; +$lang['use_ssl'] = 'SSL接続を使用しますか?使用した場合、下のSSLを有効にしないでください。'; +$lang['use_tls'] = 'TLS接続を使用しますか?使用した場合、上のSSLを有効にしないでください。'; $lang['debug'] = 'エラー時に追加のデバッグ出力を表示する?'; $lang['expirywarn'] = '何日前からパスワードの有効期限をユーザーに警告する。0 の場合は無効'; $lang['additional'] = 'ユーザデータから取得する追加AD属性のカンマ区切り一覧。いくつかのプラグインが使用する。'; diff --git a/lib/plugins/authldap/lang/ja/settings.php b/lib/plugins/authldap/lang/ja/settings.php index cee7b059c..6dec9a576 100644 --- a/lib/plugins/authldap/lang/ja/settings.php +++ b/lib/plugins/authldap/lang/ja/settings.php @@ -5,6 +5,7 @@ * * @author Satoshi Sahara * @author Hideaki SAWADA + * @author Hideaki SAWADA */ $lang['server'] = 'LDAPサーバー。ホスト名(localhostldap://server.tld:389)'; $lang['port'] = '上記が完全修飾URLでない場合、LDAPサーバーポート'; @@ -13,6 +14,11 @@ $lang['grouptree'] = 'ユーザーグループを探す場所。例 $lang['userfilter'] = 'ユーザーアカウントを探すためのLDAP抽出条件。例:(&(uid=%{user})(objectClass=posixAccount))'; $lang['groupfilter'] = 'グループを探すLDAP抽出条件。例:(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))'; $lang['version'] = '使用するプロトコルのバージョン。3を設定する必要がある場合があります。'; +$lang['starttls'] = 'TLS接続を使用しますか?'; $lang['binddn'] = '匿名バインドでは不十分な場合、オプションバインドユーザーのDN。例:cn=admin, dc=my, dc=home'; $lang['bindpw'] = '上記ユーザーのパスワード'; $lang['debug'] = 'エラーに関して追加のデバッグ情報を表示する。'; +$lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; +$lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; +$lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; +$lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; diff --git a/lib/plugins/usermanager/lang/ja/lang.php b/lib/plugins/usermanager/lang/ja/lang.php index 75c2f13ed..0830416f3 100644 --- a/lib/plugins/usermanager/lang/ja/lang.php +++ b/lib/plugins/usermanager/lang/ja/lang.php @@ -11,6 +11,7 @@ * @author Taisuke Shimamoto * @author Satoshi Sahara * @author Hideaki SAWADA + * @author Hideaki SAWADA */ $lang['menu'] = 'ユーザー管理'; $lang['noauth'] = '(ユーザー認証が無効です)'; @@ -58,3 +59,16 @@ $lang['add_ok'] = 'ユーザーを登録しました'; $lang['add_fail'] = 'ユーザーの登録に失敗しました'; $lang['notify_ok'] = '通知メールを送信しました'; $lang['notify_fail'] = '通知メールを送信できませんでした'; +$lang['import_userlistcsv'] = 'ユーザー一覧ファイル(CSV):'; +$lang['import_header'] = '最新インポート - 失敗'; +$lang['import_success_count'] = 'ユーザーインポート:ユーザーが%d件あり、%d件正常にインポートされました。'; +$lang['import_failure_count'] = 'ユーザーインポート:%d件が失敗しました。失敗は次のとおりです。'; +$lang['import_error_fields'] = '列の不足(4列必要)が%d件ありました。'; +$lang['import_error_baduserid'] = '欠落したユーザーID'; +$lang['import_error_badname'] = '不正な氏名'; +$lang['import_error_badmail'] = '不正な電子メールアドレス'; +$lang['import_error_upload'] = 'インポートが失敗しました。CSVファイルをアップロードできなかったか、ファイルが空です。'; +$lang['import_error_readfail'] = 'インポートが失敗しました。アップロードされたファイルが読込できません。'; +$lang['import_error_create'] = 'ユーザーが作成できません。'; +$lang['import_notify_fail'] = '通知メッセージがインポートされたユーザー(%s)・電子メールアドレス(%s)に送信できませんでした。'; +$lang['import_downloadfailures'] = '修正用に失敗を CSVファイルとしてダウンロードする。'; -- cgit v1.2.3 From 8fd5faebc6501c1fd7ef719de47f639d097912c9 Mon Sep 17 00:00:00 2001 From: Martin Michalek Date: Thu, 10 Oct 2013 08:45:59 +0200 Subject: translation update --- lib/plugins/authad/lang/sk/settings.php | 3 +++ lib/plugins/authldap/lang/sk/settings.php | 11 +++++++++++ lib/plugins/authmysql/lang/sk/settings.php | 2 ++ lib/plugins/authpgsql/lang/sk/settings.php | 1 + lib/plugins/revert/lang/sk/intro.txt | 3 +++ lib/plugins/revert/lang/sk/lang.php | 2 +- lib/plugins/usermanager/lang/sk/import.txt | 9 +++++++++ 7 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 lib/plugins/usermanager/lang/sk/import.txt (limited to 'lib') diff --git a/lib/plugins/authad/lang/sk/settings.php b/lib/plugins/authad/lang/sk/settings.php index 0cc9b9b10..b709b50f8 100644 --- a/lib/plugins/authad/lang/sk/settings.php +++ b/lib/plugins/authad/lang/sk/settings.php @@ -5,7 +5,10 @@ * * @author Martin Michalek */ +$lang['admin_username'] = 'Privilegovaný používateľ Active Directory s prístupom ku všetkým dátam ostatných používateľov. Nepovinné nastavenie ale potrebné pre určité akcie ako napríklad zasielanie mailov o zmenách.'; $lang['admin_password'] = 'Heslo vyššie uvedeného používateľa.'; +$lang['sso'] = 'Použiť Single-Sign-On cez Kerberos alebo NTLM?'; $lang['use_ssl'] = 'Použiť SSL pripojenie? Ak áno, nepovoľte TLS nižšie.'; $lang['use_tls'] = 'Použiť TLS pripojenie? Ak áno, nepovoľte SSL vyššie.'; $lang['debug'] = 'Zobraziť doplňujúce ladiace informácie pri chybe?'; +$lang['additional'] = 'Zoznam dodatočných AD atribútov oddelených čiarkou získaných z údajov používateľa. Používané niektorými pluginmi.'; diff --git a/lib/plugins/authldap/lang/sk/settings.php b/lib/plugins/authldap/lang/sk/settings.php index 759c92304..8dd087a22 100644 --- a/lib/plugins/authldap/lang/sk/settings.php +++ b/lib/plugins/authldap/lang/sk/settings.php @@ -5,6 +5,17 @@ * * @author Martin Michalek */ +$lang['server'] = 'LDAP server. Adresa (localhost) alebo úplné URL (ldap://server.tld:389)'; +$lang['port'] = 'Port LDAP servera, ak nebola vyššie zadané úplné URL'; +$lang['usertree'] = 'Kde je možné nájsť účty používateľov. Napr. ou=People, dc=server, dc=tld'; +$lang['grouptree'] = 'Kde je možné nájsť skupiny používateľov. Napr. ou=Group, dc=server, dc=tld'; +$lang['userfilter'] = 'LDAP filter pre vyhľadávanie používateľských účtov. Napr. (&(uid=%{user})(objectClass=posixAccount))'; +$lang['groupfilter'] = 'LDAP filter pre vyhľadávanie skupín. Napr. (&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))'; +$lang['version'] = 'Použitá verzia protokolu. Možno bude potrebné nastaviť na hodnotu 3'; $lang['starttls'] = 'Použiť TLS pripojenie?'; $lang['bindpw'] = 'Heslo vyššie uvedeného používateľa'; $lang['debug'] = 'Zobraziť doplňujúce ladiace informácie pri chybe'; +$lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; +$lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; +$lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; +$lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; diff --git a/lib/plugins/authmysql/lang/sk/settings.php b/lib/plugins/authmysql/lang/sk/settings.php index 477f2f10b..650490684 100644 --- a/lib/plugins/authmysql/lang/sk/settings.php +++ b/lib/plugins/authmysql/lang/sk/settings.php @@ -11,6 +11,8 @@ $lang['password'] = 'Heslo pre vyššie uvedeného používateľa'; $lang['database'] = 'Použiť databázu'; $lang['charset'] = 'Znaková sada databázy'; $lang['debug'] = 'Zobraziť doplňujúce ladiace informácie'; +$lang['forwardClearPass'] = 'Posielať heslo ako nezakókovaný text nižšie uvedenému SQL príkazu namiesto použitia kódovania'; +$lang['TablesToLock'] = 'Zoznam tabuliek oddelených čiarkou, ktoré by mali byť uzamknuté pri operáciách zápisu'; $lang['checkPass'] = 'SQL príkaz pre kontrolu hesla'; $lang['getUserInfo'] = 'SQL príkaz pre získanie informácií o používateľovi'; $lang['getGroups'] = 'SQL príkaz pre získanie informácií o skupinách používateľa'; diff --git a/lib/plugins/authpgsql/lang/sk/settings.php b/lib/plugins/authpgsql/lang/sk/settings.php index dafe5e83d..2179b90b7 100644 --- a/lib/plugins/authpgsql/lang/sk/settings.php +++ b/lib/plugins/authpgsql/lang/sk/settings.php @@ -11,6 +11,7 @@ $lang['user'] = 'Meno používateľa PostgreSQL'; $lang['password'] = 'Heslo pre vyššie uvedeného používateľa'; $lang['database'] = 'Použiť databázu'; $lang['debug'] = 'Zobraziť doplňujúce ladiace informácie'; +$lang['forwardClearPass'] = 'Posielať heslo ako nezakókovaný text nižšie uvedenému SQL príkazu namiesto použitia kódovania'; $lang['checkPass'] = 'SQL príkaz pre kontrolu hesla'; $lang['getUserInfo'] = 'SQL príkaz pre získanie informácií o používateľovi'; $lang['getGroups'] = 'SQL príkaz pre získanie informácií o skupinách používateľa'; diff --git a/lib/plugins/revert/lang/sk/intro.txt b/lib/plugins/revert/lang/sk/intro.txt index e69de29bb..aa75a2c10 100644 --- a/lib/plugins/revert/lang/sk/intro.txt +++ b/lib/plugins/revert/lang/sk/intro.txt @@ -0,0 +1,3 @@ +====== Obnova dát ====== + +Táto stránka slúži na automatické obnovenie obsahu stránok po útoku spamom. Pre identifikáciu napadnutých stránok zadajte vyhľadávací reťazec (napr. spam URL), potom potvrďte, že nájdené stránky sú skutočne napadnuté, a zrušte posledné zmeny. \ No newline at end of file diff --git a/lib/plugins/revert/lang/sk/lang.php b/lib/plugins/revert/lang/sk/lang.php index 6a2cb119d..7ab21f287 100644 --- a/lib/plugins/revert/lang/sk/lang.php +++ b/lib/plugins/revert/lang/sk/lang.php @@ -7,7 +7,7 @@ * @author exusik@gmail.com * @author Martin Michalek */ -$lang['menu'] = 'Reverzný manažér'; +$lang['menu'] = 'Obnova dát'; $lang['filter'] = 'Hľadať spamerské stránky'; $lang['revert'] = 'Vrátiť vybrané stránky'; $lang['reverted'] = '%s vrátená na revíziu %s'; diff --git a/lib/plugins/usermanager/lang/sk/import.txt b/lib/plugins/usermanager/lang/sk/import.txt new file mode 100644 index 000000000..7f57461f9 --- /dev/null +++ b/lib/plugins/usermanager/lang/sk/import.txt @@ -0,0 +1,9 @@ +===== Hromadný import používateľov ===== + +Vyžaduje CSV súbor používateľov s minimálne 4 stĺpcami. +Stĺpce musia obsahovať postupne: ID používateľa, meno a priezvisko, emailová adresa a skupiny. +CVS záznamy by mali byť oddelené čiarkou (,) a reťazce uzavreté úvodzovkami (""). Znak (\) sa používa v spojení s špeciálnymi znakmi. +Príklad vhodného súboru je možné získať funkciou "Export používateľov". +Duplicitné ID používateľov budú ignorované. + +Každému úspešne importovanému používateľovi bude vygenerované heslo a zaslaný email. \ No newline at end of file -- cgit v1.2.3 From df5d307ea8bac1f5030d42af363ae9f7469a63f2 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Thu, 10 Oct 2013 15:53:03 +0200 Subject: add cookie secure parameter to cookies set by javascript --- lib/exe/js.php | 8 ++++++-- lib/scripts/cookie.js | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/exe/js.php b/lib/exe/js.php index fc7a869c2..040b8874d 100644 --- a/lib/exe/js.php +++ b/lib/exe/js.php @@ -86,16 +86,20 @@ function js_out(){ // start output buffering and build the script ob_start(); + $json = new JSON(); // add some global variables print "var DOKU_BASE = '".DOKU_BASE."';"; print "var DOKU_TPL = '".tpl_basedir()."';"; - print "var DOKU_COOKIEPATH = '" . (empty($conf['cookiedir']) ? DOKU_REL : $conf['cookiedir']) . "';"; + print "var DOKU_COOKIE_PARAM = " . $json->encode( + array( + 'path' => empty($conf['cookiedir']) ? DOKU_REL : $conf['cookiedir'], + 'secure' => $conf['securecookie'] && is_ssl() + )).";"; // FIXME: Move those to JSINFO print "var DOKU_UHN = ".((int) useHeading('navigation')).";"; print "var DOKU_UHC = ".((int) useHeading('content')).";"; // load JS specific translations - $json = new JSON(); $lang['js']['plugins'] = js_pluginstrings(); $templatestrings = js_templatestrings(); if(!empty($templatestrings)) { diff --git a/lib/scripts/cookie.js b/lib/scripts/cookie.js index 4cb527f26..8417d2064 100644 --- a/lib/scripts/cookie.js +++ b/lib/scripts/cookie.js @@ -30,7 +30,7 @@ var DokuCookie = { text.push(encodeURIComponent(key)+'#'+encodeURIComponent(val)); } }); - jQuery.cookie(this.name, text.join('#'), {expires: 365, path: DOKU_COOKIEPATH}); + jQuery.cookie(this.name, text.join('#'), {expires: 365, path: DOKU_COOKIE_PARAM.path, secure: DOKU_COOKIE_PARAM.secure}); }, /** -- cgit v1.2.3 From 9c7a681b5de7bebb468569a1a416000935b3b3d7 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sat, 12 Oct 2013 18:56:40 +0200 Subject: removed css_moveimports() this is now done by lessphp --- lib/exe/css.php | 25 ------------------------- 1 file changed, 25 deletions(-) (limited to 'lib') diff --git a/lib/exe/css.php b/lib/exe/css.php index 60e17ae82..afba5fc02 100644 --- a/lib/exe/css.php +++ b/lib/exe/css.php @@ -148,9 +148,6 @@ function css_out(){ // parse less $css = css_parseless($css); - // place all remaining @import statements at the top of the file - $css = css_moveimports($css); - // compress whitespace and comments if($conf['compress']){ $css = css_compress($css); @@ -459,28 +456,6 @@ function css_pluginstyles($mediatype='screen'){ return $list; } -/** - * Move all @import statements in a combined stylesheet to the top so they - * aren't ignored by the browser. - * - * @author Gabriel Birke - */ -function css_moveimports($css) { - if(!preg_match_all('/@import\s+(?:url\([^)]+\)|"[^"]+")\s*[^;]*;\s*/', $css, $matches, PREG_OFFSET_CAPTURE)) { - return $css; - } - $newCss = ""; - $imports = ""; - $offset = 0; - foreach($matches[0] as $match) { - $newCss .= substr($css, $offset, $match[1] - $offset); - $imports .= $match[0]; - $offset = $match[1] + strlen($match[0]); - } - $newCss .= substr($css, $offset); - return $imports.$newCss; -} - /** * Very simple CSS optimizer * -- cgit v1.2.3 From 34b78ec618303a5dcfec12acc6f54ab1a6f5886f Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 13 Oct 2013 10:40:24 +0200 Subject: typo fix PR #368 --- lib/plugins/authmysql/lang/en/settings.php | 4 ++-- lib/plugins/authpgsql/lang/en/settings.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/plugins/authmysql/lang/en/settings.php b/lib/plugins/authmysql/lang/en/settings.php index 77e4806b9..b95f39701 100644 --- a/lib/plugins/authmysql/lang/en/settings.php +++ b/lib/plugins/authmysql/lang/en/settings.php @@ -19,7 +19,7 @@ $lang['FilterGroup'] = 'SQL clause for filtering users by group membership' $lang['SortOrder'] = 'SQL clause to sort users'; $lang['addUser'] = 'SQL statement to add a new user'; $lang['addGroup'] = 'SQL statement to add a new group'; -$lang['addUserGroup'] = 'SQL statment to add a user to an existing group'; +$lang['addUserGroup'] = 'SQL statement to add a user to an existing group'; $lang['delGroup'] = 'SQL statement to remove a group'; $lang['getUserID'] = 'SQL statement to get the primary key of a user'; $lang['delUser'] = 'SQL statement to delete a user'; @@ -36,4 +36,4 @@ $lang['getGroupID'] = 'SQL statement to get the primary key of a given gro $lang['debug_o_0'] = 'none'; $lang['debug_o_1'] = 'on errors only'; -$lang['debug_o_2'] = 'all SQL queries'; \ No newline at end of file +$lang['debug_o_2'] = 'all SQL queries'; diff --git a/lib/plugins/authpgsql/lang/en/settings.php b/lib/plugins/authpgsql/lang/en/settings.php index e67235cfa..cfb2686cb 100644 --- a/lib/plugins/authpgsql/lang/en/settings.php +++ b/lib/plugins/authpgsql/lang/en/settings.php @@ -18,7 +18,7 @@ $lang['FilterGroup'] = 'SQL clause for filtering users by group membership' $lang['SortOrder'] = 'SQL clause to sort users'; $lang['addUser'] = 'SQL statement to add a new user'; $lang['addGroup'] = 'SQL statement to add a new group'; -$lang['addUserGroup'] = 'SQL statment to add a user to an existing group'; +$lang['addUserGroup'] = 'SQL statement to add a user to an existing group'; $lang['delGroup'] = 'SQL statement to remove a group'; $lang['getUserID'] = 'SQL statement to get the primary key of a user'; $lang['delUser'] = 'SQL statement to delete a user'; -- cgit v1.2.3 From 1da2eb6fdf5ffff04e1bb6153a89d033a4b2c7f2 Mon Sep 17 00:00:00 2001 From: Martin Michalek Date: Mon, 14 Oct 2013 02:01:01 +0200 Subject: translation update --- lib/plugins/authad/lang/sk/settings.php | 3 ++- lib/plugins/authldap/lang/sk/settings.php | 6 +++--- lib/plugins/authmysql/lang/sk/settings.php | 2 +- lib/plugins/authpgsql/lang/sk/settings.php | 2 +- lib/plugins/usermanager/lang/sk/import.txt | 2 +- 5 files changed, 8 insertions(+), 7 deletions(-) (limited to 'lib') diff --git a/lib/plugins/authad/lang/sk/settings.php b/lib/plugins/authad/lang/sk/settings.php index b709b50f8..55f266dd6 100644 --- a/lib/plugins/authad/lang/sk/settings.php +++ b/lib/plugins/authad/lang/sk/settings.php @@ -5,7 +5,8 @@ * * @author Martin Michalek */ -$lang['admin_username'] = 'Privilegovaný používateľ Active Directory s prístupom ku všetkým dátam ostatných používateľov. Nepovinné nastavenie ale potrebné pre určité akcie ako napríklad zasielanie mailov o zmenách.'; +$lang['account_suffix'] = 'Prípona používateľského účtu. Napr. @my.domain.org'; +$lang['admin_username'] = 'Privilegovaný používateľ Active Directory s prístupom ku všetkým dátam ostatných používateľov. Nepovinné nastavenie, ale potrebné pre určité akcie ako napríklad zasielanie mailov o zmenách.'; $lang['admin_password'] = 'Heslo vyššie uvedeného používateľa.'; $lang['sso'] = 'Použiť Single-Sign-On cez Kerberos alebo NTLM?'; $lang['use_ssl'] = 'Použiť SSL pripojenie? Ak áno, nepovoľte TLS nižšie.'; diff --git a/lib/plugins/authldap/lang/sk/settings.php b/lib/plugins/authldap/lang/sk/settings.php index 8dd087a22..48bd37395 100644 --- a/lib/plugins/authldap/lang/sk/settings.php +++ b/lib/plugins/authldap/lang/sk/settings.php @@ -6,9 +6,9 @@ * @author Martin Michalek */ $lang['server'] = 'LDAP server. Adresa (localhost) alebo úplné URL (ldap://server.tld:389)'; -$lang['port'] = 'Port LDAP servera, ak nebola vyššie zadané úplné URL'; -$lang['usertree'] = 'Kde je možné nájsť účty používateľov. Napr. ou=People, dc=server, dc=tld'; -$lang['grouptree'] = 'Kde je možné nájsť skupiny používateľov. Napr. ou=Group, dc=server, dc=tld'; +$lang['port'] = 'Port LDAP servera, ak nebolo vyššie zadané úplné URL'; +$lang['usertree'] = 'Umiestnenie účtov používateľov. Napr. ou=People, dc=server, dc=tld'; +$lang['grouptree'] = 'Umiestnenie skupín používateľov. Napr. ou=Group, dc=server, dc=tld'; $lang['userfilter'] = 'LDAP filter pre vyhľadávanie používateľských účtov. Napr. (&(uid=%{user})(objectClass=posixAccount))'; $lang['groupfilter'] = 'LDAP filter pre vyhľadávanie skupín. Napr. (&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))'; $lang['version'] = 'Použitá verzia protokolu. Možno bude potrebné nastaviť na hodnotu 3'; diff --git a/lib/plugins/authmysql/lang/sk/settings.php b/lib/plugins/authmysql/lang/sk/settings.php index 650490684..8c52f905e 100644 --- a/lib/plugins/authmysql/lang/sk/settings.php +++ b/lib/plugins/authmysql/lang/sk/settings.php @@ -11,7 +11,7 @@ $lang['password'] = 'Heslo pre vyššie uvedeného používateľa'; $lang['database'] = 'Použiť databázu'; $lang['charset'] = 'Znaková sada databázy'; $lang['debug'] = 'Zobraziť doplňujúce ladiace informácie'; -$lang['forwardClearPass'] = 'Posielať heslo ako nezakókovaný text nižšie uvedenému SQL príkazu namiesto použitia kódovania'; +$lang['forwardClearPass'] = 'Posielať heslo ako nezakódovaný text nižšie uvedenému SQL príkazu namiesto použitia kódovania'; $lang['TablesToLock'] = 'Zoznam tabuliek oddelených čiarkou, ktoré by mali byť uzamknuté pri operáciách zápisu'; $lang['checkPass'] = 'SQL príkaz pre kontrolu hesla'; $lang['getUserInfo'] = 'SQL príkaz pre získanie informácií o používateľovi'; diff --git a/lib/plugins/authpgsql/lang/sk/settings.php b/lib/plugins/authpgsql/lang/sk/settings.php index 2179b90b7..9d656415d 100644 --- a/lib/plugins/authpgsql/lang/sk/settings.php +++ b/lib/plugins/authpgsql/lang/sk/settings.php @@ -11,7 +11,7 @@ $lang['user'] = 'Meno používateľa PostgreSQL'; $lang['password'] = 'Heslo pre vyššie uvedeného používateľa'; $lang['database'] = 'Použiť databázu'; $lang['debug'] = 'Zobraziť doplňujúce ladiace informácie'; -$lang['forwardClearPass'] = 'Posielať heslo ako nezakókovaný text nižšie uvedenému SQL príkazu namiesto použitia kódovania'; +$lang['forwardClearPass'] = 'Posielať heslo ako nezakódovaný text nižšie uvedenému SQL príkazu namiesto použitia kódovania'; $lang['checkPass'] = 'SQL príkaz pre kontrolu hesla'; $lang['getUserInfo'] = 'SQL príkaz pre získanie informácií o používateľovi'; $lang['getGroups'] = 'SQL príkaz pre získanie informácií o skupinách používateľa'; diff --git a/lib/plugins/usermanager/lang/sk/import.txt b/lib/plugins/usermanager/lang/sk/import.txt index 7f57461f9..91fa3e370 100644 --- a/lib/plugins/usermanager/lang/sk/import.txt +++ b/lib/plugins/usermanager/lang/sk/import.txt @@ -2,7 +2,7 @@ Vyžaduje CSV súbor používateľov s minimálne 4 stĺpcami. Stĺpce musia obsahovať postupne: ID používateľa, meno a priezvisko, emailová adresa a skupiny. -CVS záznamy by mali byť oddelené čiarkou (,) a reťazce uzavreté úvodzovkami (""). Znak (\) sa používa v spojení s špeciálnymi znakmi. +CVS záznamy by mali byť oddelené čiarkou (,) a reťazce uzavreté úvodzovkami (""). Znak (\) sa používa v spojení so špeciálnymi znakmi. Príklad vhodného súboru je možné získať funkciou "Export používateľov". Duplicitné ID používateľov budú ignorované. -- cgit v1.2.3 From 8265594d98708c1c993489099402d9ee27d2a289 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Mon, 14 Oct 2013 15:55:16 +0200 Subject: move ajax.php to action.php. Fixes FS#2233 --- lib/plugins/acl/action.php | 92 ++++++++++++++++++++++++++++++++++++++++++++++ lib/plugins/acl/script.js | 9 +++-- 2 files changed, 97 insertions(+), 4 deletions(-) create mode 100644 lib/plugins/acl/action.php (limited to 'lib') diff --git a/lib/plugins/acl/action.php b/lib/plugins/acl/action.php new file mode 100644 index 000000000..92a93865c --- /dev/null +++ b/lib/plugins/acl/action.php @@ -0,0 +1,92 @@ + + */ + +// must be run within Dokuwiki +if(!defined('DOKU_INC')) die(); + +/** + * Register handler + */ +class action_plugin_acl extends DokuWiki_Action_Plugin { + + /** + * Registers a callback function for a given event + * + * @param Doku_Event_Handler $controller DokuWiki's event controller object + * @return void + */ + public function register(Doku_Event_Handler &$controller) { + + $controller->register_hook('AJAX_CALL_UNKNOWN', 'BEFORE', $this, 'handle_ajax_call_acl'); + + } + + /** + * AJAX call handler for ACL plugin + * + * @param Doku_Event $event event object by reference + * @param mixed $param empty + * @return void + */ + + public function handle_ajax_call_acl(Doku_Event &$event, $param) { + if ($event->data !== 'plugin_acl') { + return; + } + $event->stopPropagation(); + $event->preventDefault(); + + + //close session + session_write_close(); + + global $conf; + global $ID; + global $INPUT; + + //fix for Opera XMLHttpRequests + $postData = http_get_raw_post_data(); + if(!count($_POST) && !empty($postData)){ + parse_str($postData, $_POST); + } + + if(!auth_isadmin()) die('for admins only'); + if(!checkSecurityToken()) die('CRSF Attack'); + + $ID = getID(); + + /** @var $acl admin_plugin_acl */ + $acl = plugin_load('admin','acl'); + $acl->handle(); + + $ajax = $INPUT->str('ajax'); + header('Content-Type: text/html; charset=utf-8'); + + if($ajax == 'info'){ + $acl->_html_info(); + }elseif($ajax == 'tree'){ + + $dir = $conf['datadir']; + $ns = $INPUT->str('ns'); + if($ns == '*'){ + $ns =''; + } + $ns = cleanID($ns); + $lvl = count(explode(':',$ns)); + $ns = utf8_encodeFN(str_replace(':','/',$ns)); + + $data = $acl->_get_tree($ns,$ns); + + foreach(array_keys($data) as $item){ + $data[$item]['level'] = $lvl+1; + } + echo html_buildlist($data, 'acl', array($acl, '_html_list_acl'), + array($acl, '_html_li_acl')); + } + } +} \ No newline at end of file diff --git a/lib/plugins/acl/script.js b/lib/plugins/acl/script.js index 0abb80d67..58598b1e0 100644 --- a/lib/plugins/acl/script.js +++ b/lib/plugins/acl/script.js @@ -25,9 +25,10 @@ var dw_acl = { var $frm = jQuery('#acl__detail form'); jQuery.post( - DOKU_BASE + 'lib/plugins/acl/ajax.php', + DOKU_BASE + 'lib/exe/ajax.php', jQuery.extend(dw_acl.parseatt($clicky.parent().find('a')[0].search), - {ajax: 'tree', + {call: 'plugin_acl', + ajax: 'tree', current_ns: $frm.find('input[name=ns]').val(), current_id: $frm.find('input[name=id]').val()}), show_sublist, @@ -64,8 +65,8 @@ var dw_acl = { .attr('role', 'alert') .html('...') .load( - DOKU_BASE + 'lib/plugins/acl/ajax.php', - jQuery('#acl__detail form').serialize() + '&ajax=info' + DOKU_BASE + 'lib/exe/ajax.php', + jQuery('#acl__detail form').serialize() + '&call=plugin_acl&ajax=info' ); return false; }, -- cgit v1.2.3 From d4e2226677c742531e589ebd2b45fdd4553322ad Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Mon, 14 Oct 2013 15:56:52 +0200 Subject: remove unused variable --- lib/plugins/acl/action.php | 1 - 1 file changed, 1 deletion(-) (limited to 'lib') diff --git a/lib/plugins/acl/action.php b/lib/plugins/acl/action.php index 92a93865c..373d6cbb0 100644 --- a/lib/plugins/acl/action.php +++ b/lib/plugins/acl/action.php @@ -71,7 +71,6 @@ class action_plugin_acl extends DokuWiki_Action_Plugin { $acl->_html_info(); }elseif($ajax == 'tree'){ - $dir = $conf['datadir']; $ns = $INPUT->str('ns'); if($ns == '*'){ $ns =''; -- cgit v1.2.3 From 219fe1dcb7250b332a77278fd31f20e5da10846c Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Mon, 14 Oct 2013 16:00:45 +0200 Subject: Code reformatting and remove unused global conf --- lib/plugins/acl/action.php | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) (limited to 'lib') diff --git a/lib/plugins/acl/action.php b/lib/plugins/acl/action.php index 373d6cbb0..01842250e 100644 --- a/lib/plugins/acl/action.php +++ b/lib/plugins/acl/action.php @@ -30,62 +30,62 @@ class action_plugin_acl extends DokuWiki_Action_Plugin { * AJAX call handler for ACL plugin * * @param Doku_Event $event event object by reference - * @param mixed $param empty + * @param mixed $param empty * @return void */ public function handle_ajax_call_acl(Doku_Event &$event, $param) { - if ($event->data !== 'plugin_acl') { + if($event->data !== 'plugin_acl') { return; } $event->stopPropagation(); $event->preventDefault(); - //close session session_write_close(); - global $conf; global $ID; global $INPUT; //fix for Opera XMLHttpRequests $postData = http_get_raw_post_data(); - if(!count($_POST) && !empty($postData)){ + if(!count($_POST) && !empty($postData)) { parse_str($postData, $_POST); } if(!auth_isadmin()) die('for admins only'); if(!checkSecurityToken()) die('CRSF Attack'); - $ID = getID(); + $ID = getID(); /** @var $acl admin_plugin_acl */ - $acl = plugin_load('admin','acl'); + $acl = plugin_load('admin', 'acl'); $acl->handle(); $ajax = $INPUT->str('ajax'); header('Content-Type: text/html; charset=utf-8'); - if($ajax == 'info'){ + if($ajax == 'info') { $acl->_html_info(); - }elseif($ajax == 'tree'){ + } elseif($ajax == 'tree') { - $ns = $INPUT->str('ns'); - if($ns == '*'){ - $ns =''; + $ns = $INPUT->str('ns'); + if($ns == '*') { + $ns = ''; } - $ns = cleanID($ns); - $lvl = count(explode(':',$ns)); - $ns = utf8_encodeFN(str_replace(':','/',$ns)); + $ns = cleanID($ns); + $lvl = count(explode(':', $ns)); + $ns = utf8_encodeFN(str_replace(':', '/', $ns)); - $data = $acl->_get_tree($ns,$ns); + $data = $acl->_get_tree($ns, $ns); - foreach(array_keys($data) as $item){ - $data[$item]['level'] = $lvl+1; + foreach(array_keys($data) as $item) { + $data[$item]['level'] = $lvl + 1; } - echo html_buildlist($data, 'acl', array($acl, '_html_list_acl'), - array($acl, '_html_li_acl')); + echo html_buildlist( + $data, 'acl', array($acl, '_html_list_acl'), + array($acl, '_html_li_acl') + ); } } } \ No newline at end of file -- cgit v1.2.3 From 07be12a51cc4c7850e57b25c6c1bd86ca0004a00 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Mon, 14 Oct 2013 16:04:31 +0200 Subject: acl ajax: replace die() by return --- lib/plugins/acl/action.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/plugins/acl/action.php b/lib/plugins/acl/action.php index 01842250e..bac518fcd 100644 --- a/lib/plugins/acl/action.php +++ b/lib/plugins/acl/action.php @@ -53,8 +53,8 @@ class action_plugin_acl extends DokuWiki_Action_Plugin { parse_str($postData, $_POST); } - if(!auth_isadmin()) die('for admins only'); - if(!checkSecurityToken()) die('CRSF Attack'); + if(!auth_isadmin()) return; + if(!checkSecurityToken()) return; $ID = getID(); -- cgit v1.2.3 From 00dd0e7e7ab5bc29658e4be85336841af70b6b97 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Mon, 14 Oct 2013 16:12:01 +0200 Subject: acl ajax: add messages to returns --- lib/plugins/acl/action.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/plugins/acl/action.php b/lib/plugins/acl/action.php index bac518fcd..6111aca42 100644 --- a/lib/plugins/acl/action.php +++ b/lib/plugins/acl/action.php @@ -53,8 +53,14 @@ class action_plugin_acl extends DokuWiki_Action_Plugin { parse_str($postData, $_POST); } - if(!auth_isadmin()) return; - if(!checkSecurityToken()) return; + if(!auth_isadmin()) { + echo 'for admins only'; + return; + } + if(!checkSecurityToken()) { + echo 'CRSF Attack'; + return; + } $ID = getID(); -- cgit v1.2.3 From f119fb202b56acf8966f17b1ae4525c678b34865 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Mon, 14 Oct 2013 16:32:35 +0200 Subject: get version popularity plugin direct from plugin info --- lib/plugins/popularity/admin.php | 3 --- lib/plugins/popularity/helper.php | 14 ++------------ 2 files changed, 2 insertions(+), 15 deletions(-) (limited to 'lib') diff --git a/lib/plugins/popularity/admin.php b/lib/plugins/popularity/admin.php index f90f844e1..bd2d090e1 100644 --- a/lib/plugins/popularity/admin.php +++ b/lib/plugins/popularity/admin.php @@ -22,9 +22,6 @@ class admin_plugin_popularity extends DokuWiki_Admin_Plugin { function admin_plugin_popularity(){ $this->helper = $this->loadHelper('popularity', false); - - $pluginInfo = $this->getInfo(); - $this->helper->setVersion($pluginInfo['date']); } /** diff --git a/lib/plugins/popularity/helper.php b/lib/plugins/popularity/helper.php index 9220d6b6d..9b092f2be 100644 --- a/lib/plugins/popularity/helper.php +++ b/lib/plugins/popularity/helper.php @@ -29,8 +29,6 @@ class helper_plugin_popularity extends Dokuwiki_Plugin { */ var $popularityLastSubmitFile; - var $version; - function helper_plugin_popularity(){ global $conf; @@ -69,15 +67,6 @@ class helper_plugin_popularity extends Dokuwiki_Plugin { } - /** - * Sets plugin version - * - * @param string $pluginversion - */ - public function setVersion($pluginversion) { - $this->version = $pluginversion; - } - /** * Check if autosubmit is enabled * @return boolean TRUE if we should send data once a month, FALSE otherwise @@ -138,11 +127,12 @@ class helper_plugin_popularity extends Dokuwiki_Plugin { $data = array(); $phptime = ini_get('max_execution_time'); @set_time_limit(0); + $pluginInfo = $this->getInfo(); // version $data['anon_id'] = md5(auth_cookiesalt()); $data['version'] = getVersion(); - $data['popversion'] = $this->version; + $data['popversion'] = $pluginInfo['date']; $data['language'] = $conf['lang']; $data['now'] = time(); $data['popauto'] = (int) $this->isAutoSubmitEnabled(); -- cgit v1.2.3 From 36013a6f5c54847cc4a474853d502ad99ae84be6 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Mon, 14 Oct 2013 16:44:41 +0200 Subject: add PHPDocs to popularity plugin helper --- lib/plugins/popularity/helper.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'lib') diff --git a/lib/plugins/popularity/helper.php b/lib/plugins/popularity/helper.php index 9b092f2be..eacde06d0 100644 --- a/lib/plugins/popularity/helper.php +++ b/lib/plugins/popularity/helper.php @@ -37,6 +37,11 @@ class helper_plugin_popularity extends Dokuwiki_Plugin { $this->popularityLastSubmitFile = $conf['cachedir'].'/lastSubmitTime.txt'; } + /** + * Return methods of this helper + * + * @return array with methods description + */ function getMethods(){ $result = array(); $result[] = array( @@ -123,6 +128,7 @@ class helper_plugin_popularity extends Dokuwiki_Plugin { */ function _gather(){ global $conf; + /** @var $auth DokuWiki_Auth_Plugin */ global $auth; $data = array(); $phptime = ini_get('max_execution_time'); @@ -244,6 +250,17 @@ class helper_plugin_popularity extends Dokuwiki_Plugin { return $data; } + /** + * Callback to search and count the content of directories in DokuWiki + * + * @param array &$data Reference to the result data structure + * @param string $base Base usually $conf['datadir'] + * @param string $file current file or directory relative to $base + * @param string $type Type either 'd' for directory or 'f' for file + * @param int $lvl Current recursion depht + * @param array $opts option array as given to search() + * @return bool + */ function _search_count(&$data,$base,$file,$type,$lvl,$opts){ // traverse if($type == 'd'){ -- cgit v1.2.3 From a27c9d6f6c03a5b93871dd414021317c2bb9eac8 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Mon, 14 Oct 2013 20:35:17 +0200 Subject: Put syntax modes in a table layout, sort numbers in rowspans. Implements FS#2516 --- lib/plugins/info/syntax.php | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/plugins/info/syntax.php b/lib/plugins/info/syntax.php index 5e7543603..da32a6f32 100644 --- a/lib/plugins/info/syntax.php +++ b/lib/plugins/info/syntax.php @@ -215,11 +215,36 @@ class syntax_plugin_info extends DokuWiki_Syntax_Plugin { */ function _syntaxmodes_xhtml(){ $modes = p_get_parsermodes(); + + $compactmodes = array(); + foreach($modes as $mode){ + $compactmodes[$mode['sort']][] = $mode['mode']; + } $doc = ''; + $doc .= '
    '; + + foreach($compactmodes as $sort => $modes){ + $rowspan = ''; + if(count($modes) > 1) { + $rowspan = ' rowspan="'.count($modes).'"'; + } - foreach ($modes as $mode){ - $doc .= $mode['mode'].' ('.$mode['sort'].'), '; + foreach($modes as $index => $mode) { + $doc .= ''; + $doc .= ''; + + if($index === 0) { + $doc .= ''; + } + $doc .= ''; + } } + + $doc .= '
    '; + $doc .= $mode; + $doc .= ''; + $doc .= $sort; + $doc .= '
    '; return $doc; } -- cgit v1.2.3 From 9b3b9e8e02000edb4c6359d9ad50fbeeab0a4612 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Tue, 15 Oct 2013 10:30:54 +0200 Subject: Fix PHP strict messages --- lib/plugins/info/syntax.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'lib') diff --git a/lib/plugins/info/syntax.php b/lib/plugins/info/syntax.php index da32a6f32..5d969d7a2 100644 --- a/lib/plugins/info/syntax.php +++ b/lib/plugins/info/syntax.php @@ -48,7 +48,7 @@ class syntax_plugin_info extends DokuWiki_Syntax_Plugin { /** * Handle the match */ - function handle($match, $state, $pos, &$handler){ + function handle($match, $state, $pos, Doku_Handler &$handler){ $match = substr($match,7,-2); //strip ~~INFO: from start and ~~ from end return array(strtolower($match)); } @@ -56,7 +56,7 @@ class syntax_plugin_info extends DokuWiki_Syntax_Plugin { /** * Create output */ - function render($format, &$renderer, $data) { + function render($format, Doku_Renderer &$renderer, $data) { if($format == 'xhtml'){ //handle various info stuff switch ($data[0]){ @@ -112,7 +112,7 @@ class syntax_plugin_info extends DokuWiki_Syntax_Plugin { // remove subparts foreach($plugins as $p){ - if (!$po =& plugin_load($type,$p)) continue; + if (!$po = plugin_load($type,$p)) continue; list($name,$part) = explode('_',$p,2); $plginfo[$name] = $po->getInfo(); } @@ -146,7 +146,7 @@ class syntax_plugin_info extends DokuWiki_Syntax_Plugin { $plugins = plugin_list('helper'); foreach($plugins as $p){ - if (!$po =& plugin_load('helper',$p)) continue; + if (!$po = plugin_load('helper',$p)) continue; if (!method_exists($po, 'getMethods')) continue; $methods = $po->getMethods(); @@ -156,7 +156,7 @@ class syntax_plugin_info extends DokuWiki_Syntax_Plugin { $doc = '

    '.hsc($info['name']).'

    '; $doc .= '
    '; $doc .= '

    '.strtr(hsc($info['desc']), array("\n"=>"
    ")).'

    '; - $doc .= '
    $'.$p." =& plugin_load('helper', '".$p."');
    "; + $doc .= '
    $'.$p." = plugin_load('helper', '".$p."');
    "; $doc .= '
    '; foreach ($methods as $method){ $title = '$'.$p.'->'.$method['name'].'()'; -- cgit v1.2.3 From 205907a73eaf15c53de98f153e90890706e79cbe Mon Sep 17 00:00:00 2001 From: furun Date: Tue, 15 Oct 2013 11:34:31 +0200 Subject: compact some CSS styles to their shorthand syntax FS#2509 --- lib/exe/css.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/exe/css.php b/lib/exe/css.php index afba5fc02..6dfdf06e8 100644 --- a/lib/exe/css.php +++ b/lib/exe/css.php @@ -473,8 +473,19 @@ function css_compress($css){ $css = preg_replace('/ ?([;,{}\/]) ?/','\\1',$css); $css = preg_replace('/ ?: /',':',$css); + // number compression + $css = preg_replace('/([: ])0+(\.\d+?)0*((?:pt|pc|in|mm|cm|em|ex|px)\b|%)(?=[^\{]*[;\}])/', '$1$2$3', $css); // "0.1em" to ".1em", "1.10em" to "1.1em" + $css = preg_replace('/([: ])\.(0)+((?:pt|pc|in|mm|cm|em|ex|px)\b|%)(?=[^\{]*[;\}])/', '$1$2', $css); // ".0em" to "0" + $css = preg_replace('/([: ]0)0*(\.0*)?((?:pt|pc|in|mm|cm|em|ex|px)(?=[^\{]*[;\}])\b|%)/', '$1', $css); // "0.0em" to "0" + $css = preg_replace('/([: ]\d+)(\.0*)((?:pt|pc|in|mm|cm|em|ex|px)(?=[^\{]*[;\}])\b|%)/', '$1$3', $css); // "1.0em" to "1em" + $css = preg_replace('/([: ])0+(\d+|\d*\.\d+)((?:pt|pc|in|mm|cm|em|ex|px)(?=[^\{]*[;\}])\b|%)/', '$1$2$3', $css); // "001em" to "1em" + + // shorten attributes (1em 1em 1em 1em -> 1em) + $css = preg_replace('/(? Date: Tue, 15 Oct 2013 13:03:30 +0200 Subject: fix php strict notices --- lib/plugins/action.php | 2 +- lib/plugins/config/settings/extra.class.php | 2 +- lib/plugins/plugin/classes/ap_info.class.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/plugins/action.php b/lib/plugins/action.php index 04b4f07a6..4b5eef60a 100644 --- a/lib/plugins/action.php +++ b/lib/plugins/action.php @@ -17,7 +17,7 @@ class DokuWiki_Action_Plugin extends DokuWiki_Plugin { /** * Registers a callback function for a given event */ - function register(Doku_Event_Handler $controller) { + public function register(Doku_Event_Handler $controller) { trigger_error('register() not implemented in '.get_class($this), E_USER_WARNING); } } diff --git a/lib/plugins/config/settings/extra.class.php b/lib/plugins/config/settings/extra.class.php index d0f99fa8f..83de802a3 100644 --- a/lib/plugins/config/settings/extra.class.php +++ b/lib/plugins/config/settings/extra.class.php @@ -176,7 +176,7 @@ if (!class_exists('setting_renderer')) { $format = $this->_format; foreach (plugin_list('renderer') as $plugin) { - $renderer =& plugin_load('renderer',$plugin); + $renderer = plugin_load('renderer',$plugin); if (method_exists($renderer,'canRender') && $renderer->canRender($format)) { $this->_choices[] = $plugin; diff --git a/lib/plugins/plugin/classes/ap_info.class.php b/lib/plugins/plugin/classes/ap_info.class.php index b3826b944..89b78fa2d 100644 --- a/lib/plugins/plugin/classes/ap_info.class.php +++ b/lib/plugins/plugin/classes/ap_info.class.php @@ -14,7 +14,7 @@ class ap_info extends ap_manage { usort($component_list, array($this,'component_sort')); foreach ($component_list as $component) { - if (($obj = &plugin_load($component['type'],$component['name'],false,true)) === null) continue; + if (($obj = plugin_load($component['type'],$component['name'],false,true)) === null) continue; $compname = explode('_',$component['name']); if($compname[1]){ -- cgit v1.2.3 From 5da403f17a007f1b202f1c5ea2dbc80ab19d26e8 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Tue, 15 Oct 2013 16:26:25 +0200 Subject: fix signatures and old by references --- lib/plugins/config/settings/config.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/plugins/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php index 1d2173706..a5a11cda1 100644 --- a/lib/plugins/config/settings/config.class.php +++ b/lib/plugins/config/settings/config.class.php @@ -794,7 +794,7 @@ if (!class_exists('setting_numericopt')) { if (!class_exists('setting_onoff')) { class setting_onoff extends setting_numeric { - function html(&$plugin) { + function html(&$plugin, $echo = false) { $value = ''; $disable = ''; @@ -830,7 +830,7 @@ if (!class_exists('setting_multichoice')) { class setting_multichoice extends setting_string { var $_choices = array(); - function html(&$plugin) { + function html(&$plugin, $echo = false) { $value = ''; $disable = ''; $nochoice = ''; -- cgit v1.2.3 From ab4d3f3b70150d4b7c2622bd5fa6079c49b8d32f Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Tue, 15 Oct 2013 16:36:56 +0200 Subject: fix expression passed by reference --- lib/exe/detail.php | 4 +++- lib/exe/mediamanager.php | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/exe/detail.php b/lib/exe/detail.php index 7aae08f76..e3c81d877 100644 --- a/lib/exe/detail.php +++ b/lib/exe/detail.php @@ -9,7 +9,9 @@ $ID = cleanID($INPUT->str('id')); // this makes some general infos available as well as the info about the // "parent" page $INFO = array_merge(pageinfo(),mediainfo()); -trigger_event('DETAIL_STARTED', $tmp=array()); + +$tmp = array(); +trigger_event('DETAIL_STARTED', $tmp); //close session session_write_close(); diff --git a/lib/exe/mediamanager.php b/lib/exe/mediamanager.php index d9e4a6b04..d94a24c74 100644 --- a/lib/exe/mediamanager.php +++ b/lib/exe/mediamanager.php @@ -34,7 +34,8 @@ $JSINFO = array('id' => '', 'namespace' => ''); $AUTH = $INFO['perm']; // shortcut for historical reasons - trigger_event('MEDIAMANAGER_STARTED',$tmp=array()); + $tmp = array(); + trigger_event('MEDIAMANAGER_STARTED', $tmp); session_write_close(); //close session // do not display the manager if user does not have read access -- cgit v1.2.3 From 74ed54d4f9a7c9796916f33f649ef94619a31704 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Wed, 16 Oct 2013 11:29:27 +0200 Subject: fix signature mail unittest, and improve some signatures info plugin --- lib/plugins/info/syntax.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'lib') diff --git a/lib/plugins/info/syntax.php b/lib/plugins/info/syntax.php index 5d969d7a2..e68061e5d 100644 --- a/lib/plugins/info/syntax.php +++ b/lib/plugins/info/syntax.php @@ -58,6 +58,7 @@ class syntax_plugin_info extends DokuWiki_Syntax_Plugin { */ function render($format, Doku_Renderer &$renderer, $data) { if($format == 'xhtml'){ + /** @var Doku_Renderer_xhtml $renderer */ //handle various info stuff switch ($data[0]){ case 'syntaxmodes': @@ -103,7 +104,7 @@ class syntax_plugin_info extends DokuWiki_Syntax_Plugin { * * uses some of the original renderer methods */ - function _plugins_xhtml($type, Doku_Renderer &$renderer){ + function _plugins_xhtml($type, Doku_Renderer_xhtml &$renderer){ global $lang; $renderer->doc .= '
      '; @@ -141,9 +142,7 @@ class syntax_plugin_info extends DokuWiki_Syntax_Plugin { * * uses some of the original renderer methods */ - function _helpermethods_xhtml(Doku_Renderer &$renderer){ - global $lang; - + function _helpermethods_xhtml(Doku_Renderer_xhtml &$renderer){ $plugins = plugin_list('helper'); foreach($plugins as $p){ if (!$po = plugin_load('helper',$p)) continue; -- cgit v1.2.3 From b288bdefdcc243374f385a3adaea329256016e4c Mon Sep 17 00:00:00 2001 From: Yangyu Huang Date: Wed, 16 Oct 2013 17:01:02 +0200 Subject: translation update --- lib/plugins/usermanager/lang/zh/lang.php | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'lib') diff --git a/lib/plugins/usermanager/lang/zh/lang.php b/lib/plugins/usermanager/lang/zh/lang.php index 2674983b2..06656110f 100644 --- a/lib/plugins/usermanager/lang/zh/lang.php +++ b/lib/plugins/usermanager/lang/zh/lang.php @@ -16,6 +16,7 @@ * @author lainme993@gmail.com * @author Shuo-Ting Jian * @author Rachel + * @author Yangyu Huang */ $lang['menu'] = '用户管理器'; $lang['noauth'] = '(用户认证不可用)'; @@ -38,6 +39,8 @@ $lang['search'] = '搜索'; $lang['search_prompt'] = '进行搜索'; $lang['clear'] = '重置搜索过滤器'; $lang['filter'] = '过滤器'; +$lang['export_all'] = '导出所有用户(CSV)'; +$lang['export_filtered'] = '导出已筛选的用户列表(CSV)'; $lang['import'] = '请输入新用户名'; $lang['line'] = '行号'; $lang['error'] = '信息错误'; @@ -61,6 +64,10 @@ $lang['add_ok'] = '用户添加成功'; $lang['add_fail'] = '用户添加失败'; $lang['notify_ok'] = '通知邮件已发送'; $lang['notify_fail'] = '通知邮件无法发送'; +$lang['import_userlistcsv'] = '用户列表文件(CSV)'; +$lang['import_header'] = '最近一次导入 - 失败'; +$lang['import_success_count'] = '用户导入:找到了 %d 个用户,%d 个用户被成功导入。'; +$lang['import_failure_count'] = '用户导入:%d 个用户导入失败。下面列出了失败的用户。'; $lang['import_error_baduserid'] = '用户ID丢失'; $lang['import_error_badname'] = '名称错误'; $lang['import_error_badmail'] = '邮件地址错误'; -- cgit v1.2.3 From 443e135d59e9d227eec818dabf9ee64d7a73d474 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Wed, 16 Oct 2013 22:04:01 +0100 Subject: replace boolean conditional checks on possibly uninitialized vars with \!empty/empty/isset as appropriate --- lib/tpl/dokuwiki/tpl_header.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/tpl/dokuwiki/tpl_header.php b/lib/tpl/dokuwiki/tpl_header.php index 19d165059..a2bfd4346 100644 --- a/lib/tpl/dokuwiki/tpl_header.php +++ b/lib/tpl/dokuwiki/tpl_header.php @@ -41,7 +41,7 @@ if (!defined('DOKU_INC')) die();

        '; tpl_userinfo(); /* 'Logged in as ...' */ echo ''; -- cgit v1.2.3 From 7b4ce9b0b6af9a1faa35049f96663febad344302 Mon Sep 17 00:00:00 2001 From: Soren Birk Date: Thu, 17 Oct 2013 13:30:54 +0200 Subject: translation update --- lib/plugins/acl/lang/da/lang.php | 4 ++-- lib/plugins/authad/lang/da/settings.php | 10 ++++++++++ lib/plugins/plugin/lang/da/lang.php | 4 ++-- lib/plugins/popularity/lang/da/lang.php | 5 +++-- lib/plugins/revert/lang/da/lang.php | 5 +++-- lib/plugins/usermanager/lang/da/lang.php | 5 +++-- 6 files changed, 23 insertions(+), 10 deletions(-) create mode 100644 lib/plugins/authad/lang/da/settings.php (limited to 'lib') diff --git a/lib/plugins/acl/lang/da/lang.php b/lib/plugins/acl/lang/da/lang.php index 4a9d11448..2558795fd 100644 --- a/lib/plugins/acl/lang/da/lang.php +++ b/lib/plugins/acl/lang/da/lang.php @@ -1,8 +1,8 @@ * @author Jon Bendtsen * @author Lars Næsbye Christensen diff --git a/lib/plugins/authad/lang/da/settings.php b/lib/plugins/authad/lang/da/settings.php new file mode 100644 index 000000000..958c41cf5 --- /dev/null +++ b/lib/plugins/authad/lang/da/settings.php @@ -0,0 +1,10 @@ + + */ +$lang['admin_password'] = 'Kodeordet til den ovenstående bruger.'; +$lang['use_ssl'] = 'Benyt SSL forbindelse? hvis ja, vælg ikke TLS herunder.'; +$lang['use_tls'] = 'Benyt TLS forbindelse? hvis ja, vælg ikke SSL herover.'; diff --git a/lib/plugins/plugin/lang/da/lang.php b/lib/plugins/plugin/lang/da/lang.php index d1deb6310..d2751fa1b 100644 --- a/lib/plugins/plugin/lang/da/lang.php +++ b/lib/plugins/plugin/lang/da/lang.php @@ -1,8 +1,8 @@ * @author Kalle Sommer Nielsen * @author Esben Laursen diff --git a/lib/plugins/popularity/lang/da/lang.php b/lib/plugins/popularity/lang/da/lang.php index bbf2a1ab4..78c447197 100644 --- a/lib/plugins/popularity/lang/da/lang.php +++ b/lib/plugins/popularity/lang/da/lang.php @@ -1,7 +1,8 @@ * @author Esben Laursen * @author Harith diff --git a/lib/plugins/revert/lang/da/lang.php b/lib/plugins/revert/lang/da/lang.php index a76541a78..bb311f18f 100644 --- a/lib/plugins/revert/lang/da/lang.php +++ b/lib/plugins/revert/lang/da/lang.php @@ -1,7 +1,8 @@ * @author Esben Laursen * @author Harith diff --git a/lib/plugins/usermanager/lang/da/lang.php b/lib/plugins/usermanager/lang/da/lang.php index 845457f7e..6b615b51d 100644 --- a/lib/plugins/usermanager/lang/da/lang.php +++ b/lib/plugins/usermanager/lang/da/lang.php @@ -1,7 +1,8 @@ * @author Kalle Sommer Nielsen * @author Esben Laursen -- cgit v1.2.3 From 61e0b2f8bbbac3ec582aa287e110b304a3986229 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Fri, 18 Oct 2013 12:47:55 +0100 Subject: comment improvements --- lib/plugins/config/settings/config.metadata.php | 1 + 1 file changed, 1 insertion(+) (limited to 'lib') diff --git a/lib/plugins/config/settings/config.metadata.php b/lib/plugins/config/settings/config.metadata.php index f4c2ed265..f9dabfeb0 100644 --- a/lib/plugins/config/settings/config.metadata.php +++ b/lib/plugins/config/settings/config.metadata.php @@ -48,6 +48,7 @@ * 'compression' - no additional parameters. checks php installation supports possible compression alternatives * 'licence' - as multichoice, selection constructed from licence strings in language files * 'renderer' - as multichoice, selection constructed from enabled renderer plugins which canRender() + * 'authtype' - as multichoice, selection constructed from the enabled auth plugins * * Any setting commented or missing will use 'setting' class - text input, minimal validation, quoted output * -- cgit v1.2.3 From e07886c01389351f28a254ef6f7c9611453508fb Mon Sep 17 00:00:00 2001 From: Michael Hamann Date: Sun, 20 Oct 2013 20:21:42 +0200 Subject: Info plugin: allow xhtml renders to not to be an xhtml renderer Renderers that set the format to xhtml don't necessarily inherit from Doku_Renderer_xhtml, this reverts a prior change that introduced the stricter parameter type. --- lib/plugins/info/syntax.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/plugins/info/syntax.php b/lib/plugins/info/syntax.php index e68061e5d..f8c6eb484 100644 --- a/lib/plugins/info/syntax.php +++ b/lib/plugins/info/syntax.php @@ -104,7 +104,7 @@ class syntax_plugin_info extends DokuWiki_Syntax_Plugin { * * uses some of the original renderer methods */ - function _plugins_xhtml($type, Doku_Renderer_xhtml &$renderer){ + function _plugins_xhtml($type, Doku_Renderer &$renderer){ global $lang; $renderer->doc .= '
          '; @@ -142,7 +142,7 @@ class syntax_plugin_info extends DokuWiki_Syntax_Plugin { * * uses some of the original renderer methods */ - function _helpermethods_xhtml(Doku_Renderer_xhtml &$renderer){ + function _helpermethods_xhtml(Doku_Renderer &$renderer){ $plugins = plugin_list('helper'); foreach($plugins as $p){ if (!$po = plugin_load('helper',$p)) continue; @@ -250,10 +250,11 @@ class syntax_plugin_info extends DokuWiki_Syntax_Plugin { /** * Adds a TOC item */ - function _addToTOC($text, $level, Doku_Renderer_xhtml &$renderer){ + function _addToTOC($text, $level, Doku_Renderer &$renderer){ global $conf; if (($level >= $conf['toptoclevel']) && ($level <= $conf['maxtoclevel'])){ + /** @var $renderer Doku_Renderer_xhtml */ $hid = $renderer->_headerToLink($text, 'true'); $renderer->toc[] = array( 'hid' => $hid, -- cgit v1.2.3 From e979d184ca6fbad44ae1f33610c80b80d106e067 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 20 Oct 2013 21:51:13 +0200 Subject: remove no longer used ajax.php --- lib/plugins/acl/ajax.php | 57 ------------------------------------------------ 1 file changed, 57 deletions(-) delete mode 100644 lib/plugins/acl/ajax.php (limited to 'lib') diff --git a/lib/plugins/acl/ajax.php b/lib/plugins/acl/ajax.php deleted file mode 100644 index 10e18af97..000000000 --- a/lib/plugins/acl/ajax.php +++ /dev/null @@ -1,57 +0,0 @@ - - */ - -if(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/../../../'); -require_once(DOKU_INC.'inc/init.php'); -//close session -session_write_close(); - -global $conf; -global $ID; -global $INPUT; - -//fix for Opera XMLHttpRequests -$postData = http_get_raw_post_data(); -if(!count($_POST) && !empty($postData)){ - parse_str($postData, $_POST); -} - -if(!auth_isadmin()) die('for admins only'); -if(!checkSecurityToken()) die('CRSF Attack'); - -$ID = getID(); - -/** @var $acl admin_plugin_acl */ -$acl = plugin_load('admin','acl'); -$acl->handle(); - -$ajax = $INPUT->str('ajax'); -header('Content-Type: text/html; charset=utf-8'); - -if($ajax == 'info'){ - $acl->_html_info(); -}elseif($ajax == 'tree'){ - - $dir = $conf['datadir']; - $ns = $INPUT->str('ns'); - if($ns == '*'){ - $ns =''; - } - $ns = cleanID($ns); - $lvl = count(explode(':',$ns)); - $ns = utf8_encodeFN(str_replace(':','/',$ns)); - - $data = $acl->_get_tree($ns,$ns); - - foreach(array_keys($data) as $item){ - $data[$item]['level'] = $lvl+1; - } - echo html_buildlist($data, 'acl', array($acl, '_html_list_acl'), - array($acl, '_html_li_acl')); -} - -- cgit v1.2.3 From 4d13d89c45c088d6070c4e2da6d5b702f13c77ab Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 20 Oct 2013 21:52:19 +0200 Subject: remove obsolete opera handling and session closing --- lib/plugins/acl/action.php | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) (limited to 'lib') diff --git a/lib/plugins/acl/action.php b/lib/plugins/acl/action.php index 6111aca42..5e186fb61 100644 --- a/lib/plugins/acl/action.php +++ b/lib/plugins/acl/action.php @@ -41,18 +41,9 @@ class action_plugin_acl extends DokuWiki_Action_Plugin { $event->stopPropagation(); $event->preventDefault(); - //close session - session_write_close(); - global $ID; global $INPUT; - //fix for Opera XMLHttpRequests - $postData = http_get_raw_post_data(); - if(!count($_POST) && !empty($postData)) { - parse_str($postData, $_POST); - } - if(!auth_isadmin()) { echo 'for admins only'; return; @@ -94,4 +85,4 @@ class action_plugin_acl extends DokuWiki_Action_Plugin { ); } } -} \ No newline at end of file +} -- cgit v1.2.3 From 214eb73e2e4c60dc992d61d8736dd9391178d170 Mon Sep 17 00:00:00 2001 From: Jens Hyllegaard Date: Mon, 21 Oct 2013 14:20:59 +0200 Subject: translation update --- lib/plugins/plugin/lang/da/lang.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/plugins/plugin/lang/da/lang.php b/lib/plugins/plugin/lang/da/lang.php index d2751fa1b..07077eaa1 100644 --- a/lib/plugins/plugin/lang/da/lang.php +++ b/lib/plugins/plugin/lang/da/lang.php @@ -12,6 +12,7 @@ * @author rasmus@kinnerup.com * @author Michael Pedersen subben@gmail.com * @author Mikael Lyngvig + * @author Jens Hyllegaard */ $lang['menu'] = 'Håndter udvidelser'; $lang['download'] = 'Hent og tilføj ny udvidelse'; @@ -23,7 +24,7 @@ $lang['btn_settings'] = 'indstillinger'; $lang['btn_download'] = 'Hent'; $lang['btn_enable'] = 'Gem'; $lang['url'] = 'URL-adresse'; -$lang['installed'] = 'Tliføjet:'; +$lang['installed'] = 'Tilføjet:'; $lang['lastupdate'] = 'Sidst opdateret:'; $lang['source'] = 'Kilde:'; $lang['unknown'] = 'ukendt'; -- cgit v1.2.3 From e4e504c4188ebbe344ed3b6b316137e99f98f642 Mon Sep 17 00:00:00 2001 From: Roy Zahor Date: Mon, 21 Oct 2013 14:30:49 +0200 Subject: translation update --- lib/plugins/acl/lang/he/lang.php | 4 ++-- lib/plugins/plugin/lang/he/lang.php | 4 ++-- lib/plugins/popularity/lang/he/lang.php | 5 +++-- lib/plugins/revert/lang/he/lang.php | 5 +++-- lib/plugins/usermanager/lang/he/lang.php | 5 +++-- 5 files changed, 13 insertions(+), 10 deletions(-) (limited to 'lib') diff --git a/lib/plugins/acl/lang/he/lang.php b/lib/plugins/acl/lang/he/lang.php index 91025f4b8..6716081eb 100644 --- a/lib/plugins/acl/lang/he/lang.php +++ b/lib/plugins/acl/lang/he/lang.php @@ -1,8 +1,8 @@ * @author Dotan Kamber * @author Moshe Kaplan diff --git a/lib/plugins/plugin/lang/he/lang.php b/lib/plugins/plugin/lang/he/lang.php index 47253e335..7753c23cf 100644 --- a/lib/plugins/plugin/lang/he/lang.php +++ b/lib/plugins/plugin/lang/he/lang.php @@ -1,8 +1,8 @@ * @author Dotan Kamber * @author Moshe Kaplan diff --git a/lib/plugins/popularity/lang/he/lang.php b/lib/plugins/popularity/lang/he/lang.php index f619127cd..54341636b 100644 --- a/lib/plugins/popularity/lang/he/lang.php +++ b/lib/plugins/popularity/lang/he/lang.php @@ -1,7 +1,8 @@ * @author Moshe Kaplan * @author Yaron Yogev diff --git a/lib/plugins/revert/lang/he/lang.php b/lib/plugins/revert/lang/he/lang.php index ac3c3412e..2f49856f5 100644 --- a/lib/plugins/revert/lang/he/lang.php +++ b/lib/plugins/revert/lang/he/lang.php @@ -1,7 +1,8 @@ * @author Moshe Kaplan * @author Yaron Yogev diff --git a/lib/plugins/usermanager/lang/he/lang.php b/lib/plugins/usermanager/lang/he/lang.php index 601163013..18202584e 100644 --- a/lib/plugins/usermanager/lang/he/lang.php +++ b/lib/plugins/usermanager/lang/he/lang.php @@ -1,7 +1,8 @@ * @author Dotan Kamber * @author Moshe Kaplan -- cgit v1.2.3 From 48e49553b3ae1dc9624cdd96b34ffe0175ba8ae3 Mon Sep 17 00:00:00 2001 From: Jens Hyllegaard Date: Mon, 21 Oct 2013 14:36:35 +0200 Subject: translation update --- lib/plugins/authad/lang/da/settings.php | 10 ++++++++++ lib/plugins/authldap/lang/da/settings.php | 9 +++++++++ lib/plugins/authmysql/lang/da/settings.php | 12 ++++++++++++ lib/plugins/authpgsql/lang/da/settings.php | 10 ++++++++++ 4 files changed, 41 insertions(+) create mode 100644 lib/plugins/authldap/lang/da/settings.php create mode 100644 lib/plugins/authmysql/lang/da/settings.php create mode 100644 lib/plugins/authpgsql/lang/da/settings.php (limited to 'lib') diff --git a/lib/plugins/authad/lang/da/settings.php b/lib/plugins/authad/lang/da/settings.php index 958c41cf5..f50abf1ce 100644 --- a/lib/plugins/authad/lang/da/settings.php +++ b/lib/plugins/authad/lang/da/settings.php @@ -4,7 +4,17 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Soren Birk + * @author Jens Hyllegaard */ +$lang['account_suffix'] = 'Dit konto suffiks. F.eks. @mit.domæne.dk'; +$lang['base_dn'] = 'Dit grund DN. F.eks. DC=mit,DC=domæne,DC=dk'; +$lang['domain_controllers'] = 'En kommasepareret liste over domænecontrollere. F.eks. srv1.domain.org,srv2.domain.org'; +$lang['admin_username'] = 'En privilegeret Active Directory bruger med adgang til alle andre brugeres data. Valgfri, men skal bruges til forskellige handlinger såsom at sende abonnement e-mails.'; $lang['admin_password'] = 'Kodeordet til den ovenstående bruger.'; +$lang['sso'] = 'Bør Single-Sign-On via Kerberos eller NTLM bruges?'; +$lang['real_primarygroup'] = 'Bør den korrekte primære gruppe findes i stedet for at antage "Domain Users" (langsommere)'; $lang['use_ssl'] = 'Benyt SSL forbindelse? hvis ja, vælg ikke TLS herunder.'; $lang['use_tls'] = 'Benyt TLS forbindelse? hvis ja, vælg ikke SSL herover.'; +$lang['debug'] = 'Vis yderligere debug output ved fejl?'; +$lang['expirywarn'] = 'Dage før brugere skal advares om udløben adgangskode. 0 for at deaktivere.'; +$lang['additional'] = 'En kommasepareret liste over yderligere AD attributter der skal hentes fra brugerdata. Brug af nogen udvidelser.'; diff --git a/lib/plugins/authldap/lang/da/settings.php b/lib/plugins/authldap/lang/da/settings.php new file mode 100644 index 000000000..a3558aa5c --- /dev/null +++ b/lib/plugins/authldap/lang/da/settings.php @@ -0,0 +1,9 @@ + + */ +$lang['server'] = 'Din LDAP server. Enten værtsnavn (localhost) eller fuld kvalificeret URL (ldap://server.tld:389)'; +$lang['debug'] = 'Vis yderligere debug output ved fejl'; diff --git a/lib/plugins/authmysql/lang/da/settings.php b/lib/plugins/authmysql/lang/da/settings.php new file mode 100644 index 000000000..207d0ff60 --- /dev/null +++ b/lib/plugins/authmysql/lang/da/settings.php @@ -0,0 +1,12 @@ + + */ +$lang['server'] = 'Din MySQL server'; +$lang['debug'] = 'Vis yderligere debug output'; +$lang['debug_o_0'] = 'ingen'; +$lang['debug_o_1'] = 'kun ved fejl'; +$lang['debug_o_2'] = 'alle SQL forespørgsler'; diff --git a/lib/plugins/authpgsql/lang/da/settings.php b/lib/plugins/authpgsql/lang/da/settings.php new file mode 100644 index 000000000..76c08a734 --- /dev/null +++ b/lib/plugins/authpgsql/lang/da/settings.php @@ -0,0 +1,10 @@ + + */ +$lang['server'] = 'Din PostgresSQL server'; +$lang['port'] = 'Din PostgresSQL servers port'; +$lang['debug'] = 'Vis yderligere debug output'; -- cgit v1.2.3 From bbae9436b433e627e9b4f68fdc946357d214b40f Mon Sep 17 00:00:00 2001 From: Jens Hyllegaard Date: Mon, 21 Oct 2013 15:00:55 +0200 Subject: translation update --- lib/plugins/popularity/lang/da/submitted.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/plugins/popularity/lang/da/submitted.txt b/lib/plugins/popularity/lang/da/submitted.txt index 7d7d5429c..88e9ba060 100644 --- a/lib/plugins/popularity/lang/da/submitted.txt +++ b/lib/plugins/popularity/lang/da/submitted.txt @@ -1,3 +1,3 @@ -====== Popularitetsfeeback ====== +====== Popularitetsfeedback ====== Dataene er blevet sendt. \ No newline at end of file -- cgit v1.2.3 From 21c3090a76ebde3117ae1dcb9f503fe3a61c1c02 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Mon, 21 Oct 2013 23:32:15 +0100 Subject: replace \s, \S with [ \t], [^ \t] in regexs used with acls --- lib/plugins/acl/admin.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/plugins/acl/admin.php b/lib/plugins/acl/admin.php index 5ab73670d..b24981d91 100644 --- a/lib/plugins/acl/admin.php +++ b/lib/plugins/acl/admin.php @@ -554,7 +554,7 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { $line = trim(preg_replace('/#.*$/','',$line)); //ignore comments if(!$line) continue; - $acl = preg_split('/\s+/',$line); + $acl = preg_split('/[ \t]+/',$line); //0 is pagename, 1 is user, 2 is acl $acl[1] = rawurldecode($acl[1]); @@ -701,7 +701,7 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { $acl_config = file($config_cascade['acl']['default']); $acl_user = auth_nameencode($acl_user,true); - $acl_pattern = '^'.preg_quote($acl_scope,'/').'\s+'.$acl_user.'\s+[0-8].*$'; + $acl_pattern = '^'.preg_quote($acl_scope,'/').'[ \t]+'.$acl_user.'[ \t]+[0-8].*$'; // save all non!-matching $new_config = preg_grep("/$acl_pattern/", $acl_config, PREG_GREP_INVERT); -- cgit v1.2.3 From af2e0360182d7eae880fe2d8804044043e5b8b46 Mon Sep 17 00:00:00 2001 From: Mustafa Aslan Date: Tue, 22 Oct 2013 14:25:48 +0200 Subject: translation update --- lib/plugins/acl/lang/tr/lang.php | 4 ++-- lib/plugins/plugin/lang/tr/lang.php | 5 +++-- lib/plugins/popularity/lang/tr/lang.php | 5 +++-- lib/plugins/revert/lang/tr/lang.php | 5 +++-- lib/plugins/usermanager/lang/tr/lang.php | 5 +++-- 5 files changed, 14 insertions(+), 10 deletions(-) (limited to 'lib') diff --git a/lib/plugins/acl/lang/tr/lang.php b/lib/plugins/acl/lang/tr/lang.php index 629ca546b..a9699a5f9 100644 --- a/lib/plugins/acl/lang/tr/lang.php +++ b/lib/plugins/acl/lang/tr/lang.php @@ -1,8 +1,8 @@ * @author Aydın Coşkuner * @author Cihan Kahveci diff --git a/lib/plugins/plugin/lang/tr/lang.php b/lib/plugins/plugin/lang/tr/lang.php index 9598ade7d..a4feea8cd 100644 --- a/lib/plugins/plugin/lang/tr/lang.php +++ b/lib/plugins/plugin/lang/tr/lang.php @@ -1,7 +1,8 @@ * @author Cihan Kahveci * @author Yavuz Selim diff --git a/lib/plugins/popularity/lang/tr/lang.php b/lib/plugins/popularity/lang/tr/lang.php index 5339176bc..696ee38dc 100644 --- a/lib/plugins/popularity/lang/tr/lang.php +++ b/lib/plugins/popularity/lang/tr/lang.php @@ -1,7 +1,8 @@ * @author Cihan Kahveci * @author Yavuz Selim diff --git a/lib/plugins/revert/lang/tr/lang.php b/lib/plugins/revert/lang/tr/lang.php index 9030c31e3..52d28c6fa 100644 --- a/lib/plugins/revert/lang/tr/lang.php +++ b/lib/plugins/revert/lang/tr/lang.php @@ -1,7 +1,8 @@ * @author Cihan Kahveci * @author Yavuz Selim diff --git a/lib/plugins/usermanager/lang/tr/lang.php b/lib/plugins/usermanager/lang/tr/lang.php index 7ddb7dd5d..6329803a8 100644 --- a/lib/plugins/usermanager/lang/tr/lang.php +++ b/lib/plugins/usermanager/lang/tr/lang.php @@ -1,7 +1,8 @@ * @author Cihan Kahveci * @author Yavuz Selim -- cgit v1.2.3 From 57b3faf82ad2686f1ecd0678266a38a24fd23736 Mon Sep 17 00:00:00 2001 From: lainme Date: Tue, 22 Oct 2013 14:31:02 +0200 Subject: translation update --- lib/plugins/authldap/lang/zh/settings.php | 4 ++++ lib/plugins/usermanager/lang/zh/import.txt | 7 +++++++ lib/plugins/usermanager/lang/zh/lang.php | 4 ++++ 3 files changed, 15 insertions(+) create mode 100644 lib/plugins/usermanager/lang/zh/import.txt (limited to 'lib') diff --git a/lib/plugins/authldap/lang/zh/settings.php b/lib/plugins/authldap/lang/zh/settings.php index b531c192a..77c2c6952 100644 --- a/lib/plugins/authldap/lang/zh/settings.php +++ b/lib/plugins/authldap/lang/zh/settings.php @@ -20,3 +20,7 @@ $lang['userscope'] = '限制用户搜索的范围'; $lang['groupscope'] = '限制组搜索的范围'; $lang['groupkey'] = '根据任何用户属性得来的组成员(而不是标准的 AD 组),例如根据部门或者电话号码得到的组。'; $lang['debug'] = '有错误时显示额外的调试信息'; +$lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; +$lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; +$lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; +$lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; diff --git a/lib/plugins/usermanager/lang/zh/import.txt b/lib/plugins/usermanager/lang/zh/import.txt new file mode 100644 index 000000000..eacce5a77 --- /dev/null +++ b/lib/plugins/usermanager/lang/zh/import.txt @@ -0,0 +1,7 @@ +===== 批量导入用户 ===== + +需要至少有 4 列的 CSV 格式用户列表文件。列必须按顺序包括:用户ID、全名、电子邮件地址和组。 +CSV 域需要用逗号 (,) 分隔,字符串用英文双引号 ("") 分开。反斜杠可以用来转义。 +可以尝试上面的“导入用户”功能来查看示例文件。重复的用户ID将被忽略。 + +密码生成后会通过电子邮件发送给每个成功导入的用户。 \ No newline at end of file diff --git a/lib/plugins/usermanager/lang/zh/lang.php b/lib/plugins/usermanager/lang/zh/lang.php index 06656110f..25eb1a294 100644 --- a/lib/plugins/usermanager/lang/zh/lang.php +++ b/lib/plugins/usermanager/lang/zh/lang.php @@ -68,7 +68,11 @@ $lang['import_userlistcsv'] = '用户列表文件(CSV)'; $lang['import_header'] = '最近一次导入 - 失败'; $lang['import_success_count'] = '用户导入:找到了 %d 个用户,%d 个用户被成功导入。'; $lang['import_failure_count'] = '用户导入:%d 个用户导入失败。下面列出了失败的用户。'; +$lang['import_error_fields'] = '域的数目不足,发现 %d 个,需要 4 个。'; $lang['import_error_baduserid'] = '用户ID丢失'; $lang['import_error_badname'] = '名称错误'; $lang['import_error_badmail'] = '邮件地址错误'; +$lang['import_error_upload'] = '导入失败。CSV 文件无法上传或是空的。'; +$lang['import_error_readfail'] = '导入失败。无法读取上传的文件。'; $lang['import_error_create'] = '不能创建新用户'; +$lang['import_notify_fail'] = '通知消息无法发送到导入的用户 %s,电子邮件地址是 %s。'; -- cgit v1.2.3 From d34a2a38603431bc5caa74b726a6f58d86a70530 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Tue, 22 Oct 2013 21:45:37 +0200 Subject: allow charset for SSO to be configured FS#2148 --- lib/plugins/authad/auth.php | 26 +++++++++++++++++--------- lib/plugins/authad/conf/default.php | 1 + lib/plugins/authad/conf/metadata.php | 1 + lib/plugins/authad/lang/en/settings.php | 3 ++- 4 files changed, 21 insertions(+), 10 deletions(-) (limited to 'lib') diff --git a/lib/plugins/authad/auth.php b/lib/plugins/authad/auth.php index fcbd2eeef..e1d758fb8 100644 --- a/lib/plugins/authad/auth.php +++ b/lib/plugins/authad/auth.php @@ -92,16 +92,24 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { } // Prepare SSO - if(!utf8_check($_SERVER['REMOTE_USER'])) { - $_SERVER['REMOTE_USER'] = utf8_encode($_SERVER['REMOTE_USER']); - } - if($_SERVER['REMOTE_USER'] && $this->conf['sso']) { - $_SERVER['REMOTE_USER'] = $this->cleanUser($_SERVER['REMOTE_USER']); + if(!empty($_SERVER['REMOTE_USER'])) { + + // make sure the right encoding is used + if($this->getConf('sso_charset')) { + $_SERVER['REMOTE_USER'] = iconv($this->getConf('sso_charset'), 'UTF-8', $_SERVER['REMOTE_USER']); + } elseif(!utf8_check($_SERVER['REMOTE_USER'])) { + $_SERVER['REMOTE_USER'] = utf8_encode($_SERVER['REMOTE_USER']); + } - // we need to simulate a login - if(empty($_COOKIE[DOKU_COOKIE])) { - $INPUT->set('u', $_SERVER['REMOTE_USER']); - $INPUT->set('p', 'sso_only'); + // trust the incoming user + if($this->conf['sso']) { + $_SERVER['REMOTE_USER'] = $this->cleanUser($_SERVER['REMOTE_USER']); + + // we need to simulate a login + if(empty($_COOKIE[DOKU_COOKIE])) { + $INPUT->set('u', $_SERVER['REMOTE_USER']); + $INPUT->set('p', 'sso_only'); + } } } diff --git a/lib/plugins/authad/conf/default.php b/lib/plugins/authad/conf/default.php index f71202cfc..6fb4c9145 100644 --- a/lib/plugins/authad/conf/default.php +++ b/lib/plugins/authad/conf/default.php @@ -4,6 +4,7 @@ $conf['account_suffix'] = ''; $conf['base_dn'] = ''; $conf['domain_controllers'] = ''; $conf['sso'] = 0; +$conf['sso_charset'] = ''; $conf['admin_username'] = ''; $conf['admin_password'] = ''; $conf['real_primarygroup'] = 0; diff --git a/lib/plugins/authad/conf/metadata.php b/lib/plugins/authad/conf/metadata.php index 7b4f895d0..560d25315 100644 --- a/lib/plugins/authad/conf/metadata.php +++ b/lib/plugins/authad/conf/metadata.php @@ -4,6 +4,7 @@ $meta['account_suffix'] = array('string','_caution' => 'danger'); $meta['base_dn'] = array('string','_caution' => 'danger'); $meta['domain_controllers'] = array('string','_caution' => 'danger'); $meta['sso'] = array('onoff','_caution' => 'danger'); +$meta['sso_charset'] = array('string','_caution' => 'danger'); $meta['admin_username'] = array('string','_caution' => 'danger'); $meta['admin_password'] = array('password','_caution' => 'danger'); $meta['real_primarygroup'] = array('onoff','_caution' => 'danger'); diff --git a/lib/plugins/authad/lang/en/settings.php b/lib/plugins/authad/lang/en/settings.php index aff49550b..92e9ac4e8 100644 --- a/lib/plugins/authad/lang/en/settings.php +++ b/lib/plugins/authad/lang/en/settings.php @@ -6,7 +6,8 @@ $lang['domain_controllers'] = 'A comma separated list of Domain controllers. Eg. $lang['admin_username'] = 'A privileged Active Directory user with access to all other user\'s data. Optional, but needed for certain actions like sending subscription mails.'; $lang['admin_password'] = 'The password of the above user.'; $lang['sso'] = 'Should Single-Sign-On via Kerberos or NTLM be used?'; -$lang['real_primarygroup'] = 'Should the real primary group be resolved instead of assuming "Domain Users" (slower)'; +$lang['sso_charset'] = 'The charset your webserver will pass the Kerberos or NTLM username in. Empty for UTF-8 or latin-1. Requires the iconv extension.'; +$lang['real_primarygroup'] = 'Should the real primary group be resolved instead of assuming "Domain Users" (slower).'; $lang['use_ssl'] = 'Use SSL connection? If used, do not enable TLS below.'; $lang['use_tls'] = 'Use TLS connection? If used, do not enable SSL above.'; $lang['debug'] = 'Display additional debugging output on errors?'; -- cgit v1.2.3 From 269e961b5d395674d18eb2bd82814b2620c05c19 Mon Sep 17 00:00:00 2001 From: Remon Date: Fri, 25 Oct 2013 14:00:59 +0200 Subject: translation update --- lib/plugins/acl/lang/nl/lang.php | 3 ++- lib/plugins/authad/lang/nl/settings.php | 11 ++++---- lib/plugins/authldap/lang/nl/settings.php | 11 ++++---- lib/plugins/authmysql/lang/nl/settings.php | 41 +++++++++++++++--------------- lib/plugins/authpgsql/lang/nl/settings.php | 37 ++++++++++++++------------- lib/plugins/plugin/lang/nl/lang.php | 7 ++--- lib/plugins/popularity/lang/nl/lang.php | 5 ++-- lib/plugins/revert/lang/nl/lang.php | 3 ++- lib/plugins/usermanager/lang/nl/import.txt | 2 +- 9 files changed, 64 insertions(+), 56 deletions(-) (limited to 'lib') diff --git a/lib/plugins/acl/lang/nl/lang.php b/lib/plugins/acl/lang/nl/lang.php index c3850a86a..abb81ae06 100644 --- a/lib/plugins/acl/lang/nl/lang.php +++ b/lib/plugins/acl/lang/nl/lang.php @@ -20,6 +20,7 @@ * @author Ricardo Guijt * @author Gerrit * @author Gerrit Uitslag + * @author Remon */ $lang['admin_acl'] = 'Toegangsrechten'; $lang['acl_group'] = 'Groep'; @@ -38,7 +39,7 @@ $lang['p_inherited'] = 'Let op: Deze permissies zijn niet expliciet in $lang['p_isadmin'] = 'Let op: De geselecteerde groep of gebruiker heeft altijd volledige toegangsrechten omdat hij als superuser geconfigureerd is.'; $lang['p_include'] = 'Hogere permissies bevatten ook de lagere. Aanmaken, uploaden en verwijderen gelden alleen voor namespaces, niet voor pagina\'s.'; $lang['current'] = 'Huidige ACL regels'; -$lang['where'] = 'Pagina/namespace'; +$lang['where'] = 'Pagina/Namespace'; $lang['who'] = 'Gebruiker/Groep'; $lang['perm'] = 'Bevoegdheden'; $lang['acl_perm0'] = 'Geen'; diff --git a/lib/plugins/authad/lang/nl/settings.php b/lib/plugins/authad/lang/nl/settings.php index 8f5c84043..69d67be9a 100644 --- a/lib/plugins/authad/lang/nl/settings.php +++ b/lib/plugins/authad/lang/nl/settings.php @@ -3,16 +3,17 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author Remon */ $lang['account_suffix'] = 'Je account domeinnaam. Bijv @mijn.domein.org'; $lang['base_dn'] = 'Je basis DN. Bijv. DC=mijn,DC=domein,DC=org'; -$lang['domain_controllers'] = 'Eeen commagesepareerde lijst van domeinservers. Bijv. srv1.domein.org,srv2.domein.org'; -$lang['admin_username'] = 'Een geprivilegeerde Active Directory gebruiker die bij alle gebruikersgegevens kan komen. Optioneel, maar kan nodig zijn voor bepaalde acties, zoals het versturen van abonnementsmailtjes.'; -$lang['admin_password'] = 'Het wachtwoord van bovernvermelde gebruiker.'; +$lang['domain_controllers'] = 'Eeen kommagescheiden lijst van domeinservers. Bijv. srv1.domein.org,srv2.domein.org'; +$lang['admin_username'] = 'Een geprivilegeerde Active Directory gebruiker die bij alle gebruikersgegevens kan komen. Dit is optioneel maar kan nodig zijn voor bepaalde acties, zoals het versturen van abonnementsmailtjes.'; +$lang['admin_password'] = 'Het wachtwoord van bovenstaande gebruiker.'; $lang['sso'] = 'Wordt voor Single-Sign-on Kerberos of NTLM gebruikt?'; $lang['real_primarygroup'] = 'Moet de echte primaire groep worden opgezocht in plaats van het aannemen van "Domeingebruikers" (langzamer)'; -$lang['use_ssl'] = 'SSL verbinding gebruiken? Zo ja, gebruik dan TLS hieronder niet.'; +$lang['use_ssl'] = 'SSL verbinding gebruiken? Zo ja, activeer dan niet de TLS optie hieronder.'; $lang['use_tls'] = 'TLS verbinding gebruiken? Zo ja, activeer dan niet de SSL verbinding hierboven.'; $lang['debug'] = 'Aanvullende debug informatie tonen bij fouten?'; $lang['expirywarn'] = 'Waarschuwingstermijn voor vervallen wachtwoord. 0 om te deactiveren.'; -$lang['additional'] = 'Commagesepareerde lijst van aanvullend uit AD op te halen attributen. Gebruikt door sommige plugins.'; +$lang['additional'] = 'Een kommagescheiden lijst van extra AD attributen van de gebruiker. Wordt gebruikt door sommige plugins.'; diff --git a/lib/plugins/authldap/lang/nl/settings.php b/lib/plugins/authldap/lang/nl/settings.php index b6eed6f38..193d1a386 100644 --- a/lib/plugins/authldap/lang/nl/settings.php +++ b/lib/plugins/authldap/lang/nl/settings.php @@ -4,16 +4,17 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Gerrit Uitslag + * @author Remon */ -$lang['server'] = 'Je LDAP server. Ofwel servernaam (localhost) of volledige URL (ldap://server.tld:389)'; -$lang['port'] = 'LDAP server poort als hiervoor geen volledige URL is opgegeven'; +$lang['server'] = 'Je LDAP server. Of de servernaam (localhost) of de volledige URL (ldap://server.tld:389)'; +$lang['port'] = 'LDAP server poort als bij de entry hierboven geen volledige URL is opgegeven'; $lang['usertree'] = 'Locatie van de gebruikersaccounts. Bijv. ou=Personen,dc=server,dc=tld'; $lang['grouptree'] = 'Locatie van de gebruikersgroepen. Bijv. ou=Group,dc=server,dc=tld'; $lang['userfilter'] = 'LDAP gebruikersfilter. Bijv. (&(uid=%{user})(objectClass=posixAccount))'; $lang['groupfilter'] = 'LDAP groepsfilter. Bijv. (&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))'; -$lang['version'] = 'Te gebruiken protocolversie. Je zou het moeten kunnen instellen op 3'; -$lang['starttls'] = 'Gebruiken TLS verbindingen'; -$lang['referrals'] = 'Moeten verwijzingen worden gevolg'; +$lang['version'] = 'Te gebruiken protocolversie. Mogelijk dat dit ingesteld moet worden op 3'; +$lang['starttls'] = 'Gebruik maken van TLS verbindingen?'; +$lang['referrals'] = 'Moeten verwijzingen worden gevolgd?'; $lang['deref'] = 'Hoe moeten de verwijzing van aliases worden bepaald?'; $lang['binddn'] = 'DN van een optionele bind gebruiker als anonieme bind niet genoeg is. Bijv. cn=beheer, dc=mijn, dc=thuis'; $lang['bindpw'] = 'Wachtwoord van bovenstaande gebruiker'; diff --git a/lib/plugins/authmysql/lang/nl/settings.php b/lib/plugins/authmysql/lang/nl/settings.php index 39fa32112..9848f2019 100644 --- a/lib/plugins/authmysql/lang/nl/settings.php +++ b/lib/plugins/authmysql/lang/nl/settings.php @@ -3,38 +3,39 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author Remon */ -$lang['server'] = 'Je MySQL server'; +$lang['server'] = 'De MySQL server'; $lang['user'] = 'MySql gebruikersnaam'; $lang['password'] = 'Wachtwoord van bovenstaande gebruiker'; $lang['database'] = 'Te gebruiken database'; $lang['charset'] = 'Tekenset voor database'; $lang['debug'] = 'Tonen aanvullende debuginformatie'; $lang['forwardClearPass'] = 'Wachtwoorden als leesbare tekst in SQL commando\'s opnemen in plaats van versleutelde tekens'; -$lang['TablesToLock'] = 'Commagesepareerde lijst van tabellen die gelocked moeten worden bij schrijfacties'; -$lang['checkPass'] = 'SQL commando voor verifiëren van wachtwoorden'; -$lang['getUserInfo'] = 'SQL commando voor ophalen gebruikersinformatie'; -$lang['getGroups'] = 'SQL commando voor ophalen groepslidmaatschappen'; -$lang['getUsers'] = 'SQL commando voor tonen alle gebruikers'; -$lang['FilterLogin'] = 'SQL clausule voor filteren gebruikers op inlognaam'; -$lang['FilterName'] = 'SQL clausule voor filteren gebruikers op volledige naam'; -$lang['FilterEmail'] = 'SQL clausule voor filteren gebruikers op e-mailadres'; -$lang['FilterGroup'] = 'SQL clausule voor filteren gebruikers op groepslidmaatschap'; -$lang['SortOrder'] = 'SQL clausule voor sorteren gebruikers'; -$lang['addUser'] = 'SQL commando om een gebruiker toe te voegen'; -$lang['addGroup'] = 'SQL commando om een groep toe te voegen'; -$lang['addUserGroup'] = 'SQL commando om een gebruiker aan een groep toe te voegen'; +$lang['TablesToLock'] = 'Kommagescheiden lijst van tabellen die gelocked moeten worden bij schrijfacties'; +$lang['checkPass'] = 'SQL commando voor het verifiëren van wachtwoorden'; +$lang['getUserInfo'] = 'SQL commando voor het ophalen van gebruikersinformatie'; +$lang['getGroups'] = 'SQL commando voor het ophalen van groepslidmaatschappen'; +$lang['getUsers'] = 'SQL commando voor het tonen van alle gebruikers'; +$lang['FilterLogin'] = 'SQL clausule voor het filteren van gebruikers op inlognaam'; +$lang['FilterName'] = 'SQL clausule voor het filteren van gebruikers op volledige naam'; +$lang['FilterEmail'] = 'SQL clausule voor het filteren van gebruikers op e-mailadres'; +$lang['FilterGroup'] = 'SQL clausule voor het filteren van gebruikers op groepslidmaatschap'; +$lang['SortOrder'] = 'SQL clausule voor het sorteren van gebruikers'; +$lang['addUser'] = 'SQL commando om een nieuwe gebruiker toe te voegen'; +$lang['addGroup'] = 'SQL commando om een nieuwe groep toe te voegen'; +$lang['addUserGroup'] = 'SQL commando om een gebruiker aan een bestaande groep toe te voegen'; $lang['delGroup'] = 'SQL commando om een groep te verwijderen'; $lang['getUserID'] = 'SQL commando om de de primaire sleutel van een gebruiker op te halen'; $lang['delUser'] = 'SQL commando om een gebruiker te verwijderen'; $lang['delUserRefs'] = 'SQL commando om een gebruiker uit alle groepen te verwijderen'; $lang['updateUser'] = 'SQL commando om een gebruikersprofiel bij te werken'; -$lang['UpdateLogin'] = 'Bijwerkcommando om een inlognaam bij te werken'; -$lang['UpdatePass'] = 'Bijwerkcommando om een wachtwoord bij te werken'; -$lang['UpdateEmail'] = 'Bijwerkcommando om een e-mailadres bij te werken'; -$lang['UpdateName'] = 'Bijwerkcommando om een volledige naam te werken'; -$lang['UpdateTarget'] = 'Beperkingsclausule om gebruiker te identificeren voor bijwerken'; -$lang['delUserGroup'] = 'SQL commando om een gebruiker uit een bepaalde te verwijderen'; +$lang['UpdateLogin'] = 'Bijwerkcommando om de inlognaam van de gebruiker bij te werken'; +$lang['UpdatePass'] = 'Bijwerkcommando om het wachtwoord van de gebruiker bij te werken'; +$lang['UpdateEmail'] = 'Bijwerkcommando om het e-mailadres van de gebruiker bij te werken'; +$lang['UpdateName'] = 'Bijwerkcommando om de volledige naam van de gebruiker bij te werken'; +$lang['UpdateTarget'] = 'Beperkingsclausule om de gebruiker te identificeren voor bijwerken'; +$lang['delUserGroup'] = 'SQL commando om een gebruiker uit een bepaalde groep te verwijderen'; $lang['getGroupID'] = 'SQL commando om de primaire sletel van een bepaalde groep op te halen'; $lang['debug_o_0'] = 'geen'; $lang['debug_o_1'] = 'alleen bij fouten'; diff --git a/lib/plugins/authpgsql/lang/nl/settings.php b/lib/plugins/authpgsql/lang/nl/settings.php index 496017f1c..3faa78705 100644 --- a/lib/plugins/authpgsql/lang/nl/settings.php +++ b/lib/plugins/authpgsql/lang/nl/settings.php @@ -3,35 +3,36 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author Remon */ -$lang['server'] = 'Je PostgrSQL server'; +$lang['server'] = 'Je PostgreSQL server'; $lang['port'] = 'Je PostgreSQL server poort'; -$lang['user'] = 'PostgrSQL gebruikersnaam'; +$lang['user'] = 'PostgreSQL gebruikersnaam'; $lang['password'] = 'Wachtwoord voor bovenstaande gebruiker'; $lang['database'] = 'Te gebruiken database'; $lang['debug'] = 'Tonen aanvullende debuginformatie'; -$lang['forwardClearPass'] = 'Wachtwoorden als leesbare tekst in SQL commando\'s opnemen in plaats van versleutelde tekens'; -$lang['checkPass'] = 'SQL commando voor verifiëren wachtwoorden'; -$lang['getUserInfo'] = 'SQL commando voor ophalen gebruikersinformatie'; -$lang['getGroups'] = 'SQL commando voor ophalen groepslidmaatschappen van gebruikers'; -$lang['getUsers'] = 'SQL commando voor tonen alle gebruikers'; -$lang['FilterLogin'] = 'SQL commando voor filteren gebruikers op inlognaam'; -$lang['FilterName'] = 'SQL commando voor filteren gebruikers op volledige naam'; -$lang['FilterEmail'] = 'SQL commando voor filteren gebruikers op e-mailadres'; -$lang['FilterGroup'] = 'SQL commando voor filteren gebruikers op groepslidmaatschap'; -$lang['SortOrder'] = 'SQL commando voor sorteren gebruikers'; -$lang['addUser'] = 'SQL commando voor toevoegen nieuwe gebruiker'; -$lang['addGroup'] = 'SQL commando voor toevoegen nieuwe groep'; -$lang['addUserGroup'] = 'SQL commando voor toevoegen gebruiker aan bestaande groep'; -$lang['delGroup'] = 'SQL commando voor verwijderen groep'; +$lang['forwardClearPass'] = 'Wachtwoorden als leesbare tekst in SQL commando\'s opnemen in plaats van versleuteld'; +$lang['checkPass'] = 'SQL commando voor het verifiëren van wachtwoorden'; +$lang['getUserInfo'] = 'SQL commando voor het ophalen van gebruikersinformatie'; +$lang['getGroups'] = 'SQL commando voor het ophalen van groepslidmaatschappen van gebruikers'; +$lang['getUsers'] = 'SQL commando voor het tonen van alle gebruikers'; +$lang['FilterLogin'] = 'SQL commando voor het filteren van gebruikers op inlognaam'; +$lang['FilterName'] = 'SQL commando voor het filteren van gebruikers op volledige naam'; +$lang['FilterEmail'] = 'SQL commando voor het filteren van gebruikers op e-mailadres'; +$lang['FilterGroup'] = 'SQL commando voor het filteren van gebruikers op groepslidmaatschap'; +$lang['SortOrder'] = 'SQL commando voor het sorteren van gebruikers'; +$lang['addUser'] = 'SQL commando voor het toevoegen van een nieuwe gebruiker'; +$lang['addGroup'] = 'SQL commando voor het toevoegen van een nieuwe groep'; +$lang['addUserGroup'] = 'SQL commando voor toevoegen van een gebruiker aan een bestaande groep'; +$lang['delGroup'] = 'SQL commando voor het verwijderen van een groep'; $lang['getUserID'] = 'SQL commando om de primaire sleutel van een gebruiker op te halen'; -$lang['delUser'] = 'SQL commando voor verwijderen gebruiker'; +$lang['delUser'] = 'SQL commando voor het verwijderen van een gebruiker'; $lang['delUserRefs'] = 'SQL commando om een gebruiker uit alle groepen te verwijderen'; $lang['updateUser'] = 'SQL commando om een gebruikersprofiel bij te werken'; $lang['UpdateLogin'] = 'SQL commando om een inlognaam bij te werken'; $lang['UpdatePass'] = 'SQL commando om een wachtwoord bij te werken'; $lang['UpdateEmail'] = 'SQL commando om een e-mailadres bij te werken'; $lang['UpdateName'] = 'SQL commando om een volledige naam bij te werken'; -$lang['UpdateTarget'] = 'Beperkingsclausule om gebruiker te identificeren voor bijwerken'; +$lang['UpdateTarget'] = 'Beperkingsclausule om de gebruiker te identificeren bij het bijwerken'; $lang['delUserGroup'] = 'SQL commando om een gebruiker uit een bepaalde groep te verwijderen'; $lang['getGroupID'] = 'SQL commando om de primaire sleutel van een bepaalde groep op te halen'; diff --git a/lib/plugins/plugin/lang/nl/lang.php b/lib/plugins/plugin/lang/nl/lang.php index 1317e44f2..2836c7030 100644 --- a/lib/plugins/plugin/lang/nl/lang.php +++ b/lib/plugins/plugin/lang/nl/lang.php @@ -15,6 +15,7 @@ * @author Jeroen * @author Ricardo Guijt * @author Gerrit + * @author Remon */ $lang['menu'] = 'Plugins beheren'; $lang['download'] = 'Download en installeer een nieuwe plugin'; @@ -36,7 +37,7 @@ $lang['updates'] = 'De volgende plugins zijn succesvol bijgewerkt' $lang['update_none'] = 'Geen updates gevonden.'; $lang['deleting'] = 'Verwijderen ...'; $lang['deleted'] = 'Plugin %s verwijderd.'; -$lang['downloading'] = 'Downloaden ...'; +$lang['downloading'] = 'Bezig met downloaden ...'; $lang['downloaded'] = 'Plugin %s succesvol geïnstalleerd'; $lang['downloads'] = 'De volgende plugins zijn succesvol geïnstalleerd:'; $lang['download_none'] = 'Geen plugins gevonden, of er is een onbekende fout opgetreden tijdens het downloaden en installeren.'; @@ -51,10 +52,10 @@ $lang['author'] = 'Auteur:'; $lang['www'] = 'Weblocatie:'; $lang['error'] = 'Er is een onbekende fout opgetreden.'; $lang['error_download'] = 'Kan het volgende plugin bestand niet downloaden: %s'; -$lang['error_badurl'] = 'Vermoedelijk onjuiste url - kan de filename niet uit de url afleiden'; +$lang['error_badurl'] = 'Vermoedelijk onjuiste url - kan de bestandsnaam niet uit de url afleiden'; $lang['error_dircreate'] = 'Kan geen tijdelijke directory aanmaken voor de download'; $lang['error_decompress'] = 'De pluginmanager kan het gedownloade bestand niet uitpakken. Dit kan het resultaat zijn van een mislukte download: probeer het opnieuw; of het compressieformaat is onbekend: in dat geval moet je de plugin handmatig downloaden en installeren.'; -$lang['error_copy'] = 'Er was een probleem met het kopiëren van een bestand tijdens de installatie van plugin %s: de schijf kan vol zijn of onjuiste toegangsrechten hebben. Dit kan tot gevolg hebben dat de plugin slechts gedeeltelijk geïnstalleerd is en kan uw wiki onstabiel maken.'; +$lang['error_copy'] = 'Er was een probleem met het kopiëren van een bestand tijdens de installatie van plugin %s: de schijf kan vol zijn of onjuiste toegangsrechten hebben. Dit kan tot gevolg hebben dat de plugin slechts gedeeltelijk geïnstalleerd is en kan de wiki onstabiel maken.'; $lang['error_delete'] = 'Er is een probleem opgetreden tijdens het verwijderen van plugin %s. De meest voorkomende oorzaak is onjuiste toegangsrechten op bestanden of directory\'s.'; $lang['enabled'] = 'Plugin %s ingeschakeld.'; $lang['notenabled'] = 'Plugin %s kon niet worden ingeschakeld, controleer bestandsrechten.'; diff --git a/lib/plugins/popularity/lang/nl/lang.php b/lib/plugins/popularity/lang/nl/lang.php index dda4a1d7f..6ffa71e82 100644 --- a/lib/plugins/popularity/lang/nl/lang.php +++ b/lib/plugins/popularity/lang/nl/lang.php @@ -14,11 +14,12 @@ * @author Jeroen * @author Ricardo Guijt * @author Gerrit + * @author Remon */ $lang['name'] = 'Populariteitsfeedback (kan even duren om in te laden)'; -$lang['submit'] = 'Verstuur'; +$lang['submit'] = 'Verstuur gegevens'; $lang['autosubmit'] = 'Gegevens automatisch maandelijks verzenden'; -$lang['submissionFailed'] = 'De gegevens konden niet verstuurd worden vanwege de volgende fouten:'; +$lang['submissionFailed'] = 'De gegevens konden niet verstuurd worden vanwege de volgende fout:'; $lang['submitDirectly'] = 'Je kan de gegevens handmatig sturen door het onderstaande formulier te verzenden.'; $lang['autosubmitError'] = 'De laatste automatische verzending is mislukt vanwege de volgende fout:'; $lang['lastSent'] = 'De gegevens zijn verstuurd.'; diff --git a/lib/plugins/revert/lang/nl/lang.php b/lib/plugins/revert/lang/nl/lang.php index 882675b81..ee8678e63 100644 --- a/lib/plugins/revert/lang/nl/lang.php +++ b/lib/plugins/revert/lang/nl/lang.php @@ -15,13 +15,14 @@ * @author Jeroen * @author Ricardo Guijt * @author Gerrit + * @author Remon */ $lang['menu'] = 'Herstelmanager'; $lang['filter'] = 'Zoek naar bekladde pagina\'s'; $lang['revert'] = 'Herstel geselecteerde pagina\'s'; $lang['reverted'] = '%s hersteld naar revisie %s'; $lang['removed'] = '%s verwijderd'; -$lang['revstart'] = 'Herstelproces begonnen. Dit kan een lange tijd duren. Als het script een timeout genereerd voor het klaar is, moet je in kleinere selecties herstellen.'; +$lang['revstart'] = 'Herstelproces is begonnen. Dit kan een lange tijd duren. Als het script een timeout genereert voor het klaar is, moet je in kleinere delen herstellen.'; $lang['revstop'] = 'Herstelproces succesvol afgerond.'; $lang['note1'] = 'NB: deze zoekopdracht is hoofdlettergevoelig'; $lang['note2'] = 'NB: de pagina zal hersteld worden naar de laatste versie waar de opgegeven spam-term %s niet op voorkomt.'; diff --git a/lib/plugins/usermanager/lang/nl/import.txt b/lib/plugins/usermanager/lang/nl/import.txt index 69d2c2306..267891098 100644 --- a/lib/plugins/usermanager/lang/nl/import.txt +++ b/lib/plugins/usermanager/lang/nl/import.txt @@ -1,7 +1,7 @@ ===== Massa-import van gebruikers ===== Hiervoor is een CSV-bestand nodig van de gebruikers met minstens vier kolommen. De kolommen moeten bevatten, in deze volgorde: gebruikers-id, complete naam, e-mailadres en groepen. -Het CSV-velden moeten worden gescheiden met komma's (,) en de teksten moeten worden omringt met dubbele aanhalingstekens (""). Backslash (\) kan worden gebruikt om te escapen. +Het CSV-velden moeten worden gescheiden met komma's (,) en de teksten moeten worden omringd met dubbele aanhalingstekens (""). Backslash (\) kan worden gebruikt om te escapen. Voor een voorbeeld van een werkend bestand, probeer de "Exporteer Gebruikers" functie hierboven. Dubbele gebruikers-id's zullen worden genegeerd. -- cgit v1.2.3 From c3d02ebb91843d2fbaaea8acf3079add3fa77f8a Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Sun, 27 Oct 2013 13:26:03 +0100 Subject: Fix issues from teams:i18n:translation-check in localizations --- lib/plugins/authldap/lang/cs/settings.php | 2 +- lib/plugins/config/lang/de-informal/lang.php | 1 - lib/plugins/config/lang/de/lang.php | 1 - lib/plugins/config/lang/pt-br/lang.php | 1 - lib/plugins/usermanager/lang/cs/lang.php | 2 +- 5 files changed, 2 insertions(+), 5 deletions(-) (limited to 'lib') diff --git a/lib/plugins/authldap/lang/cs/settings.php b/lib/plugins/authldap/lang/cs/settings.php index b2b5b59dc..20491f1fb 100644 --- a/lib/plugins/authldap/lang/cs/settings.php +++ b/lib/plugins/authldap/lang/cs/settings.php @@ -10,7 +10,7 @@ $lang['port'] = 'Port serveru LDAP. Pokud není, bude využito $lang['usertree'] = 'Kde najít uživatelské účty, tj. ou=Lide, dc=server, dc=tld'; $lang['grouptree'] = 'Kde najít uživatelské skupiny, tj. ou=Skupina, dc=server, dc=tld'; $lang['userfilter'] = 'Filter LDAPu pro vyhledávání uživatelských účtů, tj. (&(uid=%{user})(objectClass=posixAccount))'; -$lang['groupfilter'] = 'Filter LDAPu pro vyhledávání uživatelských skupin, tj. (&(uid=%{user})(objectClass=posixAccount))'; +$lang['groupfilter'] = 'Filter LDAPu pro vyhledávání uživatelských skupin, tj. (&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))'; $lang['version'] = 'Verze použitého protokolu. Můžete potřebovat jej nastavit na 3'; $lang['starttls'] = 'Využít spojení TLS?'; $lang['referrals'] = 'Přeposílat odkazy?'; diff --git a/lib/plugins/config/lang/de-informal/lang.php b/lib/plugins/config/lang/de-informal/lang.php index 598c1a72d..7a17ace4a 100644 --- a/lib/plugins/config/lang/de-informal/lang.php +++ b/lib/plugins/config/lang/de-informal/lang.php @@ -108,7 +108,6 @@ $lang['target____media'] = 'Zielfenstername für Medienlinks'; $lang['target____windows'] = 'Zielfenstername für Windows-Freigaben-Links'; $lang['mediarevisions'] = 'Media-Revisionen (ältere Versionen) aktivieren?'; $lang['refcheck'] = 'Auf Verwendung beim Löschen von Media-Dateien testen'; -$lang['refshow'] = 'Wie viele Verwendungsorte der Media-Datei zeigen'; $lang['gdlib'] = 'GD Lib Version'; $lang['im_convert'] = 'Pfad zu ImageMagicks-Konvertierwerkzeug'; $lang['jpg_quality'] = 'JPEG Kompressionsqualität (0-100)'; diff --git a/lib/plugins/config/lang/de/lang.php b/lib/plugins/config/lang/de/lang.php index 07eb4a750..e55081a91 100644 --- a/lib/plugins/config/lang/de/lang.php +++ b/lib/plugins/config/lang/de/lang.php @@ -76,7 +76,6 @@ $lang['camelcase'] = 'CamelCase-Verlinkungen verwenden'; $lang['deaccent'] = 'Seitennamen bereinigen'; $lang['useheading'] = 'Erste Überschrift als Seitennamen verwenden'; $lang['refcheck'] = 'Auf Verwendung beim Löschen von Media-Dateien testen'; -$lang['refshow'] = 'Wie viele Verwendungsorte der Media-Datei zeigen'; $lang['allowdebug'] = 'Debug-Ausgaben erlauben Abschalten wenn nicht benötigt!'; $lang['mediarevisions'] = 'Media-Revisionen (ältere Versionen) aktivieren?'; $lang['usewordblock'] = 'Spam-Blocking benutzen'; diff --git a/lib/plugins/config/lang/pt-br/lang.php b/lib/plugins/config/lang/pt-br/lang.php index ee1447b4e..795ee81c0 100644 --- a/lib/plugins/config/lang/pt-br/lang.php +++ b/lib/plugins/config/lang/pt-br/lang.php @@ -114,7 +114,6 @@ $lang['target____media'] = 'Parâmetro "target" para links de mídia'; $lang['target____windows'] = 'Parâmetro "target" para links do Windows'; $lang['mediarevisions'] = 'Habilitar revisões de mídias?'; $lang['refcheck'] = 'Verificação de referência da mídia'; -$lang['refshow'] = 'Número de referências de mídia a exibir'; $lang['gdlib'] = 'Versão da biblioteca "GD Lib"'; $lang['im_convert'] = 'Caminho para a ferramenta de conversão ImageMagick'; $lang['jpg_quality'] = 'Qualidade de compressão do JPG (0-100)'; diff --git a/lib/plugins/usermanager/lang/cs/lang.php b/lib/plugins/usermanager/lang/cs/lang.php index b2c736e09..bbb560679 100644 --- a/lib/plugins/usermanager/lang/cs/lang.php +++ b/lib/plugins/usermanager/lang/cs/lang.php @@ -62,7 +62,7 @@ $lang['add_ok'] = 'Uživatel úspěšně vytvořen'; $lang['add_fail'] = 'Vytvoření uživatele selhalo'; $lang['notify_ok'] = 'Odeslán mail s upozorněním'; $lang['notify_fail'] = 'Mail s upozorněním nebylo možno odeslat'; -$lang['import_success_count'] = 'Import uživatelů: nalezeno %s uživatelů, %d úspěšně importováno.'; +$lang['import_success_count'] = 'Import uživatelů: nalezeno %d uživatelů, %d úspěšně importováno.'; $lang['import_failure_count'] = 'Import uživatelů: %d selhalo. Seznam chybných je níže.'; $lang['import_error_fields'] = 'Nedostatek položek, nalezena/y %d, požadovány 4.'; $lang['import_error_baduserid'] = 'Chybí User-id'; -- cgit v1.2.3 From e82704a003f35c4e6b6b94746e9c408b22d7d229 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Mon, 28 Oct 2013 20:04:59 +0100 Subject: fixed strict violation in ACL plugin --- lib/plugins/acl/action.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/plugins/acl/action.php b/lib/plugins/acl/action.php index 5e186fb61..a7226f598 100644 --- a/lib/plugins/acl/action.php +++ b/lib/plugins/acl/action.php @@ -20,7 +20,7 @@ class action_plugin_acl extends DokuWiki_Action_Plugin { * @param Doku_Event_Handler $controller DokuWiki's event controller object * @return void */ - public function register(Doku_Event_Handler &$controller) { + public function register(Doku_Event_Handler $controller) { $controller->register_hook('AJAX_CALL_UNKNOWN', 'BEFORE', $this, 'handle_ajax_call_acl'); -- cgit v1.2.3 From 32f6505fe52f99f50966e08334b7a07d2fbedc07 Mon Sep 17 00:00:00 2001 From: Ahmad Abd-Elghany Date: Mon, 28 Oct 2013 21:30:55 +0100 Subject: translation update --- lib/plugins/acl/lang/ar/lang.php | 4 ++-- lib/plugins/plugin/lang/ar/lang.php | 5 +++-- lib/plugins/popularity/lang/ar/lang.php | 5 +++-- lib/plugins/revert/lang/ar/lang.php | 6 ++++-- lib/plugins/usermanager/lang/ar/lang.php | 5 +++-- 5 files changed, 15 insertions(+), 10 deletions(-) (limited to 'lib') diff --git a/lib/plugins/acl/lang/ar/lang.php b/lib/plugins/acl/lang/ar/lang.php index 7c05b721c..4e44dab5f 100644 --- a/lib/plugins/acl/lang/ar/lang.php +++ b/lib/plugins/acl/lang/ar/lang.php @@ -1,8 +1,8 @@ * @author Yaman Hokan * @author Usama Akkad diff --git a/lib/plugins/plugin/lang/ar/lang.php b/lib/plugins/plugin/lang/ar/lang.php index a1a778131..aae58fdb9 100644 --- a/lib/plugins/plugin/lang/ar/lang.php +++ b/lib/plugins/plugin/lang/ar/lang.php @@ -1,7 +1,8 @@ * @author Usama Akkad * @author uahello@gmail.com diff --git a/lib/plugins/popularity/lang/ar/lang.php b/lib/plugins/popularity/lang/ar/lang.php index 481668505..c3e21868f 100644 --- a/lib/plugins/popularity/lang/ar/lang.php +++ b/lib/plugins/popularity/lang/ar/lang.php @@ -1,7 +1,8 @@ * @author Usama Akkad * @author uahello@gmail.com diff --git a/lib/plugins/revert/lang/ar/lang.php b/lib/plugins/revert/lang/ar/lang.php index a073c336d..27de54f16 100644 --- a/lib/plugins/revert/lang/ar/lang.php +++ b/lib/plugins/revert/lang/ar/lang.php @@ -1,10 +1,12 @@ * @author Usama Akkad * @author uahello@gmail.com + * @author Ahmad Abd-Elghany */ $lang['menu'] = 'مدير الاسترجاع'; $lang['filter'] = 'ابحث في الصفحات المتأذاة'; diff --git a/lib/plugins/usermanager/lang/ar/lang.php b/lib/plugins/usermanager/lang/ar/lang.php index d4b891320..0a751e7fb 100644 --- a/lib/plugins/usermanager/lang/ar/lang.php +++ b/lib/plugins/usermanager/lang/ar/lang.php @@ -1,7 +1,8 @@ * @author Usama Akkad * @author uahello@gmail.com -- cgit v1.2.3 From e068f3bfba02021f42a5e9c5afa8d8f1a87e8fea Mon Sep 17 00:00:00 2001 From: Robert Bogenschneider Date: Tue, 29 Oct 2013 13:26:37 +0100 Subject: translation update --- lib/plugins/authad/lang/eo/settings.php | 2 ++ lib/plugins/usermanager/lang/eo/lang.php | 3 +++ 2 files changed, 5 insertions(+) (limited to 'lib') diff --git a/lib/plugins/authad/lang/eo/settings.php b/lib/plugins/authad/lang/eo/settings.php index ee672ecd3..11640ebb7 100644 --- a/lib/plugins/authad/lang/eo/settings.php +++ b/lib/plugins/authad/lang/eo/settings.php @@ -3,6 +3,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author Robert Bogenschneider */ $lang['account_suffix'] = 'Via konto-aldonaĵo, ekz. @mia.domajno.lando'; $lang['base_dn'] = 'Via baza DN, ekz. DC=mia,DC=domajno,DC=lando'; @@ -10,6 +11,7 @@ $lang['domain_controllers'] = 'Komodisigita listo de domajno-serviloj, ekz. < $lang['admin_username'] = 'Privilegiita Aktiv-Dosieruja uzanto kun aliro al ĉiuj uzantaj datumoj. Libervole, sed necesa por iuj agadoj kiel sendi abonan retpoŝton.'; $lang['admin_password'] = 'La pasvorto de tiu uzanto.'; $lang['sso'] = 'Ĉu uzi Sola Aliro tra Kerberos aŭ NTLM?'; +$lang['sso_charset'] = 'Per kiu karaktraro via retservilo pludonas uzantonomojn al Kerberos aŭ NTLM? Malplena por UTF-8 aŭ latin-1. Bezonas iconv-aldonaĵon.'; $lang['real_primarygroup'] = 'Ĉu trovi la veran ĉefan grupon anstataŭ supozi "Domajnuzantoj" (pli malrapida)?'; $lang['use_ssl'] = 'Ĉu uzi SSL-konekton? Se jes, ne aktivigu TLS sube.'; $lang['use_tls'] = 'Ĉu uzi TLS-konekton? Se jes, ne aktivigu SSL supre.'; diff --git a/lib/plugins/usermanager/lang/eo/lang.php b/lib/plugins/usermanager/lang/eo/lang.php index 4c4174339..ff7818e05 100644 --- a/lib/plugins/usermanager/lang/eo/lang.php +++ b/lib/plugins/usermanager/lang/eo/lang.php @@ -59,6 +59,8 @@ $lang['add_ok'] = 'La uzanto sukcese aldoniĝis'; $lang['add_fail'] = 'Ne eblis aldoni uzanton'; $lang['notify_ok'] = 'Avizanta mesaĝo sendiĝis'; $lang['notify_fail'] = 'La avizanta mesaĝo ne povis esti sendita'; +$lang['import_userlistcsv'] = 'Dosiero kun listo de uzantoj (CSV):'; +$lang['import_header'] = 'Plej lastaj Import-eraroj'; $lang['import_success_count'] = 'Uzant-importo: %d uzantoj trovataj, %d sukcese importitaj.'; $lang['import_failure_count'] = 'Uzant-importo: %d fiaskis. Fiaskoj estas sube listitaj.'; $lang['import_error_fields'] = 'Nesufiĉe da kampoj, ni trovis %d, necesas 4.'; @@ -69,3 +71,4 @@ $lang['import_error_upload'] = 'Importo fiaskis. La csv-dosiero ne povis esti $lang['import_error_readfail'] = 'Importo fiaskis. Ne eblas legi alŝutitan dosieron.'; $lang['import_error_create'] = 'Ne eblas krei la uzanton'; $lang['import_notify_fail'] = 'Averta mesaĝo ne povis esti sendata al la importita uzanto %s, kun retdreso %s.'; +$lang['import_downloadfailures'] = 'Elŝut-eraroj por korektado (CSV)'; -- cgit v1.2.3 From 6a5d68178752212e9dc2ef82d500940b49bf6500 Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Sun, 3 Nov 2013 20:49:30 +0000 Subject: Revert "Fixes validation problems with base64 encoded images in CSS." This reverts commit 88833bac87e7fb295c0479a8260d1d63051bca8d. and fixes FS#2874 --- lib/exe/css.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/exe/css.php b/lib/exe/css.php index 6dfdf06e8..f0bd24b43 100644 --- a/lib/exe/css.php +++ b/lib/exe/css.php @@ -422,7 +422,7 @@ function css_datauri($match){ $data = base64_encode(file_get_contents($local)); } if($data){ - $url = '\'data:image/'.$ext.';base64,'.$data.'\''; + $url = 'data:image/'.$ext.';base64,'.$data; }else{ $url = $base.$url; } -- cgit v1.2.3 From 8c867678811e7f91159175c41ef4722a2fc5308c Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Mon, 4 Nov 2013 01:17:09 +0000 Subject: removed loading of deprecated RTL styles --- lib/exe/css.php | 15 --------------- 1 file changed, 15 deletions(-) (limited to 'lib') diff --git a/lib/exe/css.php b/lib/exe/css.php index f0bd24b43..87fb779eb 100644 --- a/lib/exe/css.php +++ b/lib/exe/css.php @@ -84,16 +84,6 @@ function css_out(){ if(isset($config_cascade['userstyle'][$mediatype])){ $files[$mediatype][$config_cascade['userstyle'][$mediatype]] = DOKU_BASE; } - // load rtl styles - // note: this adds the rtl styles only to the 'screen' media type - // @deprecated 2012-04-09: rtl will cease to be a mode of its own, - // please use "[dir=rtl]" in any css file in all, screen or print mode instead - if ($mediatype=='screen') { - if($lang['direction'] == 'rtl'){ - if (isset($styleini['stylesheets']['rtl'])) $files[$mediatype] = array_merge($files[$mediatype], $styleini['stylesheets']['rtl']); - if (isset($config_cascade['userstyle']['rtl'])) $files[$mediatype][$config_cascade['userstyle']['rtl']] = DOKU_BASE; - } - } $cache_files = array_merge($cache_files, array_keys($files[$mediatype])); } @@ -447,11 +437,6 @@ function css_pluginstyles($mediatype='screen'){ $list[DOKU_PLUGIN."$p/style.css"] = DOKU_BASE."lib/plugins/$p/"; $list[DOKU_PLUGIN."$p/style.less"] = DOKU_BASE."lib/plugins/$p/"; } - // @deprecated 2012-04-09: rtl will cease to be a mode of its own, - // please use "[dir=rtl]" in any css file in all, screen or print mode instead - if($lang['direction'] == 'rtl'){ - $list[DOKU_PLUGIN."$p/rtl.css"] = DOKU_BASE."lib/plugins/$p/"; - } } return $list; } -- cgit v1.2.3 From a9d0f1c468fc51bc74c65a9ad127b45f718a9d75 Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Mon, 4 Nov 2013 01:39:18 +0000 Subject: removed deprecated images --- lib/images/_deprecated.txt | 12 +----------- lib/images/arrow_down.gif | Bin 273 -> 0 bytes lib/images/arrow_up.gif | Bin 274 -> 0 bytes lib/images/at.gif | Bin 57 -> 0 bytes lib/images/close.png | Bin 137 -> 0 bytes lib/images/del.png | Bin 355 -> 0 bytes lib/images/edit.gif | Bin 142 -> 0 bytes lib/images/list-minus.gif | Bin 64 -> 0 bytes lib/images/list-plus.gif | Bin 67 -> 0 bytes lib/images/pencil.png | Bin 391 -> 0 bytes 10 files changed, 1 insertion(+), 11 deletions(-) delete mode 100644 lib/images/arrow_down.gif delete mode 100644 lib/images/arrow_up.gif delete mode 100644 lib/images/at.gif delete mode 100644 lib/images/close.png delete mode 100644 lib/images/del.png delete mode 100644 lib/images/edit.gif delete mode 100644 lib/images/list-minus.gif delete mode 100644 lib/images/list-plus.gif delete mode 100644 lib/images/pencil.png (limited to 'lib') diff --git a/lib/images/_deprecated.txt b/lib/images/_deprecated.txt index bccea2049..a347f8b3c 100644 --- a/lib/images/_deprecated.txt +++ b/lib/images/_deprecated.txt @@ -1,12 +1,2 @@ -== @deprecated 2012-10-06 == - -arrow_down.gif -arrow_up.gif -at.gif -close.png -del.png -edit.gif -list-minus.gif -list-plus.gif -pencil.png +(none) diff --git a/lib/images/arrow_down.gif b/lib/images/arrow_down.gif deleted file mode 100644 index ff13b9585..000000000 Binary files a/lib/images/arrow_down.gif and /dev/null differ diff --git a/lib/images/arrow_up.gif b/lib/images/arrow_up.gif deleted file mode 100644 index d491c18db..000000000 Binary files a/lib/images/arrow_up.gif and /dev/null differ diff --git a/lib/images/at.gif b/lib/images/at.gif deleted file mode 100644 index 8bdf40d54..000000000 Binary files a/lib/images/at.gif and /dev/null differ diff --git a/lib/images/close.png b/lib/images/close.png deleted file mode 100644 index 4ccef0603..000000000 Binary files a/lib/images/close.png and /dev/null differ diff --git a/lib/images/del.png b/lib/images/del.png deleted file mode 100644 index e59ded55f..000000000 Binary files a/lib/images/del.png and /dev/null differ diff --git a/lib/images/edit.gif b/lib/images/edit.gif deleted file mode 100644 index a2a23de7b..000000000 Binary files a/lib/images/edit.gif and /dev/null differ diff --git a/lib/images/list-minus.gif b/lib/images/list-minus.gif deleted file mode 100644 index 36902f159..000000000 Binary files a/lib/images/list-minus.gif and /dev/null differ diff --git a/lib/images/list-plus.gif b/lib/images/list-plus.gif deleted file mode 100644 index adc3fac8a..000000000 Binary files a/lib/images/list-plus.gif and /dev/null differ diff --git a/lib/images/pencil.png b/lib/images/pencil.png deleted file mode 100644 index 78142b61e..000000000 Binary files a/lib/images/pencil.png and /dev/null differ -- cgit v1.2.3 From 30f686eb67205a1da8765c992e2f9ee1a158c712 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Tue, 5 Nov 2013 20:15:00 +0000 Subject: add DOKU_INC to less import directories --- lib/exe/css.php | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'lib') diff --git a/lib/exe/css.php b/lib/exe/css.php index f0bd24b43..bc0645400 100644 --- a/lib/exe/css.php +++ b/lib/exe/css.php @@ -173,6 +173,12 @@ function css_out(){ */ function css_parseless($css) { $less = new lessc(); + $less->importDir[] = DOKU_INC; + + if (defined('DOKU_UNITTEST')){ + $less->importDir[] = TMP_DIR; + } + try { return $less->compile($css); } catch(Exception $e) { -- cgit v1.2.3 From de737055c55e54246de5000d601a089328c1af1c Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Tue, 5 Nov 2013 20:15:39 +0000 Subject: update url/file rewriting in css_loadfile() to support @import of less files --- lib/exe/css.php | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/exe/css.php b/lib/exe/css.php index bc0645400..3929b2d4b 100644 --- a/lib/exe/css.php +++ b/lib/exe/css.php @@ -403,12 +403,38 @@ function css_loadfile($file,$location=''){ $css = io_readFile($file); if(!$location) return $css; - $css = preg_replace('#(url\([ \'"]*)(?!/|data:|http://|https://| |\'|")#','\\1'.$location,$css); - $css = preg_replace('#(@import\s+[\'"])(?!/|data:|http://|https://)#', '\\1'.$location, $css); + global $css_location; + global $css_current_dir; + $css_current_dir = preg_replace('#^('.DOKU_INC.(defined('DOKU_UNITTEST')?'|'.realpath(TMP_DIR) : '').')#','',dirname($file)).'/'; + $css_location = $location; + + $css = preg_replace_callback('#(url\( *)([\'"]?)(.*?)(\2)( *\))#','css_loadfile_callback',$css); + $css = preg_replace_callback('#(@import\s+)([\'"])(.*?)(\2)#','css_loadfile_callback',$css); +# $css = preg_replace_callback('#(url\([ \'"]*)(?!/|data:|http://|https://| |\'|")#','\\1'.$location,$css); +# $css = preg_replace_callback('#(@import\s+[\'"])(?!/|data:|http://|https://)#', '\\1'.$location, $css); return $css; } +function css_loadfile_callback($match){ + global $css_location; + global $css_current_dir; + + if (preg_match('#^(/|data:|https?://)#',$match[3])) { + return $match[0]; + } + else if (substr($match[3],-5) == '.less') { + if ($match[3]{0} != '/') { + $match[3] = $css_current_dir . $match[3]; + } + } + else { + $match[3] = $css_location . $match[3]; + } + + return join('',array_slice($match,1)); +} + /** * Converte local image URLs to data URLs if the filesize is small * -- cgit v1.2.3 From b4304655d0b09ba0a958b9cf56f1bf699cf05b84 Mon Sep 17 00:00:00 2001 From: Michael Hamann Date: Fri, 8 Nov 2013 10:48:50 +0100 Subject: Fix password decryption during LDAP rebinding The LDAP rebinding was still using the old blowfish encryption instead of AES so rebinding failed. --- lib/plugins/authldap/auth.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/plugins/authldap/auth.php b/lib/plugins/authldap/auth.php index de1332282..31e2c5135 100644 --- a/lib/plugins/authldap/auth.php +++ b/lib/plugins/authldap/auth.php @@ -166,7 +166,7 @@ class auth_plugin_authldap extends DokuWiki_Auth_Plugin { // be accessible anonymously, so we try to rebind the current user here list($loginuser, $loginsticky, $loginpass) = auth_getCookie(); if($loginuser && $loginpass) { - $loginpass = PMA_blowfish_decrypt($loginpass, auth_cookiesalt(!$loginsticky)); + $loginpass = auth_decrypt($loginpass, auth_cookiesalt(!$loginsticky, true)); $this->checkPass($loginuser, $loginpass); } } -- cgit v1.2.3 From fb4828803b474f9729dcc8e9920b19b7bc533a54 Mon Sep 17 00:00:00 2001 From: Danny Lin Date: Mon, 11 Nov 2013 09:26:50 +0800 Subject: Update zh-tw translation --- lib/plugins/authldap/lang/zh-tw/settings.php | 6 ++++- lib/plugins/usermanager/lang/zh-tw/import.txt | 9 ++++++++ lib/plugins/usermanager/lang/zh-tw/lang.php | 32 ++++++++++++++++++++++++--- 3 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 lib/plugins/usermanager/lang/zh-tw/import.txt (limited to 'lib') diff --git a/lib/plugins/authldap/lang/zh-tw/settings.php b/lib/plugins/authldap/lang/zh-tw/settings.php index d2513eeff..7e35ef632 100644 --- a/lib/plugins/authldap/lang/zh-tw/settings.php +++ b/lib/plugins/authldap/lang/zh-tw/settings.php @@ -1,5 +1,4 @@ * @author Li-Jiun Huang * @author Cheng-Wei Chien - * @author Danny Lin * @author Shuo-Ting Jian * @author syaoranhinata@gmail.com * @author Ichirou Uchiki * @author tsangho + * @author Danny Lin */ $lang['menu'] = '帳號管理器'; + +// custom language strings for the plugin $lang['noauth'] = '(帳號認證尚未開放)'; $lang['nosupport'] = '(尚不支援帳號管理)'; + $lang['badauth'] = '錯誤的認證機制'; + $lang['user_id'] = '帳號'; $lang['user_pass'] = '密碼'; $lang['user_name'] = '名稱'; $lang['user_mail'] = '電郵'; $lang['user_groups'] = '群組'; + $lang['field'] = '欄位'; $lang['value'] = '設定值'; $lang['add'] = '增加'; @@ -36,8 +41,12 @@ $lang['search'] = '搜尋'; $lang['search_prompt'] = '開始搜尋'; $lang['clear'] = '重設篩選條件'; $lang['filter'] = '篩選條件 (Filter)'; -$lang['import'] = '匯入新的用戶'; +$lang['export_all'] = '匯出所有使用者 (CSV)'; +$lang['export_filtered'] = '匯出篩選後的使用者列表 (CSV)'; +$lang['import'] = '匯入新使用者'; +$lang['line'] = '列號'; $lang['error'] = '錯誤訊息'; + $lang['summary'] = '顯示帳號 %1$d-%2$d,共 %3$d 筆符合。共有 %4$d 個帳號。'; $lang['nonefound'] = '找不到帳號。共有 %d 個帳號。'; $lang['delete_ok'] = '已刪除 %d 個帳號'; @@ -45,10 +54,13 @@ $lang['delete_fail'] = '%d 個帳號無法刪除。'; $lang['update_ok'] = '已更新該帳號'; $lang['update_fail'] = '無法更新該帳號'; $lang['update_exists'] = '無法變更帳號名稱 (%s) ,因為有同名帳號存在。其他修改則已套用。'; + $lang['start'] = '開始'; $lang['prev'] = '上一頁'; $lang['next'] = '下一頁'; $lang['last'] = '最後一頁'; + +// added after 2006-03-09 release $lang['edit_usermissing'] = '找不到選取的帳號,可能已被刪除或改為其他名稱。'; $lang['user_notify'] = '通知使用者'; $lang['note_notify'] = '通知信只會在指定使用者新密碼時寄送。'; @@ -58,4 +70,18 @@ $lang['add_ok'] = '已新增使用者'; $lang['add_fail'] = '無法新增使用者'; $lang['notify_ok'] = '通知信已寄出'; $lang['notify_fail'] = '通知信無法寄出'; -$lang['import_error_readfail'] = '會入錯誤,無法讀取已經上傳的檔案'; + +// import & errors +$lang['import_userlistcsv'] = '使用者列表檔案 (CSV): '; +$lang['import_header'] = '最近一次匯入 - 失敗'; +$lang['import_success_count'] = '使用者匯入:找到 %d 個使用者,已成功匯入 %d 個。'; +$lang['import_failure_count'] = '使用者匯入:%d 個匯入失敗,列出於下。'; +$lang['import_error_fields'] = '欄位不足,需要 4 個,找到 %d 個。'; +$lang['import_error_baduserid'] = '使用者帳號遺失'; +$lang['import_error_badname'] = '名稱不正確'; +$lang['import_error_badmail'] = '電郵位址不正確'; +$lang['import_error_upload'] = '匯入失敗,CSV 檔案內容空白或無法匯入。'; +$lang['import_error_readfail'] = '匯入錯誤,無法讀取上傳的檔案'; +$lang['import_error_create'] = '無法建立使用者'; +$lang['import_notify_fail'] = '通知訊息無法寄給已匯入的使用者 %s(電郵 %s)'; +$lang['import_downloadfailures'] = '下載失敗項的 CSV 檔案以供修正'; -- cgit v1.2.3 From cfe186a5905005f882e870f5af79b31d53dd04ae Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Mon, 11 Nov 2013 11:49:36 +0000 Subject: updated inline documentation about location of local style.ini --- lib/tpl/dokuwiki/style.ini | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/tpl/dokuwiki/style.ini b/lib/tpl/dokuwiki/style.ini index 897b6e6da..cc23c169f 100644 --- a/lib/tpl/dokuwiki/style.ini +++ b/lib/tpl/dokuwiki/style.ini @@ -2,7 +2,8 @@ ; for limitations of the ini format used here ; To extend this file or make changes to it, it is recommended to create -; a style.local.ini file to prevent losing any changes after an upgrade. +; a local conf/tpl//style.ini file to prevent losing +; any changes after an upgrade. ; Please don't forget to copy the section your changes should be under ; (i.e. [stylesheets] or [replacements]) into that file as well. -- cgit v1.2.3 From 4eb5f931edaaabdd436f4c2802d0d293f8ef76cd Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Mon, 11 Nov 2013 22:03:58 +0000 Subject: fix sp. in comment --- lib/exe/css.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/exe/css.php b/lib/exe/css.php index 3929b2d4b..948251440 100644 --- a/lib/exe/css.php +++ b/lib/exe/css.php @@ -436,7 +436,7 @@ function css_loadfile_callback($match){ } /** - * Converte local image URLs to data URLs if the filesize is small + * Convert local image URLs to data URLs if the filesize is small * * Callback for preg_replace_callback */ -- cgit v1.2.3 From 12ffbbc324be1f06ccfcff580f512990dca929b8 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Mon, 11 Nov 2013 22:31:28 +0000 Subject: refactor to improve elegance --- lib/exe/css.php | 75 ++++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 50 insertions(+), 25 deletions(-) (limited to 'lib') diff --git a/lib/exe/css.php b/lib/exe/css.php index 948251440..9cde09545 100644 --- a/lib/exe/css.php +++ b/lib/exe/css.php @@ -399,40 +399,65 @@ function css_filetypes(){ * given location prefix */ function css_loadfile($file,$location=''){ - if(!@file_exists($file)) return ''; - $css = io_readFile($file); - if(!$location) return $css; + $css_file = new DokuCssFile($file); + return $css_file->load($location); +} - global $css_location; - global $css_current_dir; - $css_current_dir = preg_replace('#^('.DOKU_INC.(defined('DOKU_UNITTEST')?'|'.realpath(TMP_DIR) : '').')#','',dirname($file)).'/'; - $css_location = $location; +class DokuCssFile { - $css = preg_replace_callback('#(url\( *)([\'"]?)(.*?)(\2)( *\))#','css_loadfile_callback',$css); - $css = preg_replace_callback('#(@import\s+)([\'"])(.*?)(\2)#','css_loadfile_callback',$css); -# $css = preg_replace_callback('#(url\([ \'"]*)(?!/|data:|http://|https://| |\'|")#','\\1'.$location,$css); -# $css = preg_replace_callback('#(@import\s+[\'"])(?!/|data:|http://|https://)#', '\\1'.$location, $css); + protected $filepath; + protected $location; + private $relative_path = null; - return $css; -} + public function __construct($file) { + $this->filepath = $file; + } + + public function load($location='') { + if (!@file_exists($this->filepath)) return ''; -function css_loadfile_callback($match){ - global $css_location; - global $css_current_dir; + $css = io_readFile($this->filepath); + if (!$location) return $css; - if (preg_match('#^(/|data:|https?://)#',$match[3])) { - return $match[0]; + $this->location = $location; + + $css = preg_replace_callback('#(url\( *)([\'"]?)(.*?)(\2)( *\))#',array($this,'replacements'),$css); + $css = preg_replace_callback('#(@import\s+)([\'"])(.*?)(\2)#',array($this,'replacements'),$css); + + return $css; } - else if (substr($match[3],-5) == '.less') { - if ($match[3]{0} != '/') { - $match[3] = $css_current_dir . $match[3]; + + private function getRelativePath(){ + + if (is_null($this->relative_path)) { + $basedir = array(DOKU_INC); + if (defined('DOKU_UNITTEST')) { + $basedir[] = realpath(TMP_DIR); + } + $regex = '#^('.join('|',$basedir).')#'; + + $this->relative_path = preg_replace($regex, '', dirname($this->filepath)); } + + return $this->relative_path; } - else { - $match[3] = $css_location . $match[3]; - } - return join('',array_slice($match,1)); + public function replacements($match) { + + if (preg_match('#^(/|data:|https?://)#',$match[3])) { + return $match[0]; + } + else if (substr($match[3],-5) == '.less') { + if ($match[3]{0} != '/') { + $match[3] = $this->getRelativePath() . '/' . $match[3]; + } + } + else { + $match[3] = $this->location . $match[3]; + } + + return join('',array_slice($match,1)); + } } /** -- cgit v1.2.3 From 3b77d6b3902e7c6a4d65c6d7fb191a5ac639d337 Mon Sep 17 00:00:00 2001 From: Ben Fey Date: Tue, 12 Nov 2013 20:46:38 +0100 Subject: translation update --- lib/plugins/authad/lang/de/settings.php | 2 ++ lib/plugins/usermanager/lang/de/lang.php | 4 ++++ 2 files changed, 6 insertions(+) (limited to 'lib') diff --git a/lib/plugins/authad/lang/de/settings.php b/lib/plugins/authad/lang/de/settings.php index fd624ad02..a1fdcbf55 100644 --- a/lib/plugins/authad/lang/de/settings.php +++ b/lib/plugins/authad/lang/de/settings.php @@ -5,6 +5,7 @@ * * @author Frank Loizzi * @author Matthias Schulte + * @author Ben Fey */ $lang['account_suffix'] = 'Ihr Account-Suffix. Z. B. @my.domain.org'; $lang['base_dn'] = 'Ihr Base-DN. Z. B. DC=my,DC=domain,DC=org'; @@ -12,6 +13,7 @@ $lang['domain_controllers'] = 'Eine Komma-separierte Liste von Domänen-Contr $lang['admin_username'] = 'Ein priviligierter Active Directory-Benutzer mit Zugriff zu allen anderen Benutzerdaten. Optional, aber wird benötigt für Aktionen wie z. B. dass Senden von Benachrichtigungs-Mails.'; $lang['admin_password'] = 'Das Passwort des obigen Benutzers.'; $lang['sso'] = 'Soll Single-Sign-On via Kerberos oder NTLM benutzt werden?'; +$lang['sso_charset'] = 'Die Codierung, in welcher Kerberos oder NTLM Benutzername vom Webserver weitergegeben wird. Nicht ausfüllen für UTF-8 oder latin-1, benötigt iconv Erweiterung.'; $lang['real_primarygroup'] = 'Soll die echte primäre Gruppe aufgelöst werden anstelle der Annahme "Domain Users" (langsamer)'; $lang['use_ssl'] = 'SSL-Verbindung benutzen? Falls ja, TLS unterhalb nicht aktivieren.'; $lang['use_tls'] = 'TLS-Verbindung benutzen? Falls ja, SSL oberhalb nicht aktivieren.'; diff --git a/lib/plugins/usermanager/lang/de/lang.php b/lib/plugins/usermanager/lang/de/lang.php index 21be74f71..7d79c1b21 100644 --- a/lib/plugins/usermanager/lang/de/lang.php +++ b/lib/plugins/usermanager/lang/de/lang.php @@ -20,6 +20,7 @@ * @author Matthias Schulte * @author Sven * @author christian studer + * @author Ben Fey */ $lang['menu'] = 'Benutzerverwaltung'; $lang['noauth'] = '(Authentifizierungssystem nicht verfügbar)'; @@ -67,6 +68,8 @@ $lang['add_ok'] = 'Nutzer erfolgreich angelegt'; $lang['add_fail'] = 'Nutzer konnte nicht angelegt werden'; $lang['notify_ok'] = 'Benachrichtigungsmail wurde versandt'; $lang['notify_fail'] = 'Benachrichtigungsmail konnte nicht versandt werden'; +$lang['import_userlistcsv'] = 'Benutzerliste (CSV):'; +$lang['import_header'] = 'Neueste Fehler bei Import'; $lang['import_success_count'] = 'User-Import: %d User gefunden, %d erfolgreich importiert.'; $lang['import_failure_count'] = 'User-Import: %d fehlgeschlagen. Fehlgeschlagene User sind nachfolgend aufgelistet.'; $lang['import_error_fields'] = 'Unzureichende Anzahl an Feldern: %d gefunden, benötigt sind 4.'; @@ -77,3 +80,4 @@ $lang['import_error_upload'] = 'Import fehlgeschlagen. Die CSV-Datei konnte ni $lang['import_error_readfail'] = 'Import fehlgeschlagen. Die hochgeladene Datei konnte nicht gelesen werden.'; $lang['import_error_create'] = 'User konnte nicht angelegt werden'; $lang['import_notify_fail'] = 'Notifikation konnte nicht an den importierten Benutzer %s (E-Mail: %s) gesendet werden.'; +$lang['import_downloadfailures'] = 'Download der Fehler für Korrektur als CSV-Datei'; -- cgit v1.2.3 From 797e3eee76b03d0f1af440597bcb6cc3a8fc0951 Mon Sep 17 00:00:00 2001 From: Artur Date: Tue, 12 Nov 2013 20:48:09 +0100 Subject: translation update --- lib/plugins/authad/lang/ru/settings.php | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'lib') diff --git a/lib/plugins/authad/lang/ru/settings.php b/lib/plugins/authad/lang/ru/settings.php index f849c201a..6854e0920 100644 --- a/lib/plugins/authad/lang/ru/settings.php +++ b/lib/plugins/authad/lang/ru/settings.php @@ -5,5 +5,9 @@ * * @author Ivan I. Udovichenko (sendtome@mymailbox.pp.ua) * @author Aleksandr Selivanov + * @author Artur */ $lang['admin_password'] = 'Пароль для указанного пользователя.'; +$lang['sso'] = 'Использовать SSO (Single-Sign-On) через Kerberos или NTLM?'; +$lang['use_ssl'] = 'Использовать SSL? Если да, то не включайте TLS.'; +$lang['use_tls'] = 'Использовать TLS? Если да, то не включайте SSL.'; -- cgit v1.2.3 From 95b73a82a05bbfa3987672c556d86e4e726c0e7d Mon Sep 17 00:00:00 2001 From: Myeongjin Date: Tue, 12 Nov 2013 20:50:13 +0100 Subject: translation update --- lib/plugins/authad/lang/ko/settings.php | 1 + 1 file changed, 1 insertion(+) (limited to 'lib') diff --git a/lib/plugins/authad/lang/ko/settings.php b/lib/plugins/authad/lang/ko/settings.php index 2914bf47b..053823508 100644 --- a/lib/plugins/authad/lang/ko/settings.php +++ b/lib/plugins/authad/lang/ko/settings.php @@ -11,6 +11,7 @@ $lang['domain_controllers'] = '도메인 컨트롤러의 쉼표로 구분한 $lang['admin_username'] = '다른 모든 사용자의 데이터에 접근할 수 있는 권한이 있는 Active Directory 사용자. 선택적이지만 구독 메일을 보내는 등의 특정 작업에 필요합니다.'; $lang['admin_password'] = '위 사용자의 비밀번호.'; $lang['sso'] = 'Kerberos나 NTLM을 통해 Single-Sign-On을 사용해야 합니까?'; +$lang['sso_charset'] = '당신의 웹서버의 문자집합은 Kerberos나 NTLM 사용자 이름으로 전달됩니다. UTF-8이나 라린-1이 비어 있습니다. icov 확장 기능이 필요합니다.'; $lang['real_primarygroup'] = '실제 기본 그룹은 "도메인 사용자"를 가정하는 대신 해결될 것입니다 (느림)'; $lang['use_ssl'] = 'SSL 연결을 사용합니까? 사용한다면 아래 TLS을 활성화하지 마세요.'; $lang['use_tls'] = 'TLS 연결을 사용합니까? 사용한다면 위 SSL을 활성화하지 마세요.'; -- cgit v1.2.3 From 0fdcfd96106295c8aac3f83b36be0ac4e3b21d46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Gr=C3=B6ger?= Date: Tue, 12 Nov 2013 20:51:19 +0100 Subject: translation update --- lib/plugins/authad/lang/de/settings.php | 2 ++ lib/plugins/usermanager/lang/de/lang.php | 4 ++++ 2 files changed, 6 insertions(+) (limited to 'lib') diff --git a/lib/plugins/authad/lang/de/settings.php b/lib/plugins/authad/lang/de/settings.php index fd624ad02..5d13c15b7 100644 --- a/lib/plugins/authad/lang/de/settings.php +++ b/lib/plugins/authad/lang/de/settings.php @@ -5,6 +5,7 @@ * * @author Frank Loizzi * @author Matthias Schulte + * @author Jonas Gröger */ $lang['account_suffix'] = 'Ihr Account-Suffix. Z. B. @my.domain.org'; $lang['base_dn'] = 'Ihr Base-DN. Z. B. DC=my,DC=domain,DC=org'; @@ -12,6 +13,7 @@ $lang['domain_controllers'] = 'Eine Komma-separierte Liste von Domänen-Contr $lang['admin_username'] = 'Ein priviligierter Active Directory-Benutzer mit Zugriff zu allen anderen Benutzerdaten. Optional, aber wird benötigt für Aktionen wie z. B. dass Senden von Benachrichtigungs-Mails.'; $lang['admin_password'] = 'Das Passwort des obigen Benutzers.'; $lang['sso'] = 'Soll Single-Sign-On via Kerberos oder NTLM benutzt werden?'; +$lang['sso_charset'] = 'Der Zeichensatz mit dem der Server den Kerberos oder NTLM Benutzernamen versendet. Leer lassen für UTF-8 oder Latin-1. Benötigt die Erweiterung iconv.'; $lang['real_primarygroup'] = 'Soll die echte primäre Gruppe aufgelöst werden anstelle der Annahme "Domain Users" (langsamer)'; $lang['use_ssl'] = 'SSL-Verbindung benutzen? Falls ja, TLS unterhalb nicht aktivieren.'; $lang['use_tls'] = 'TLS-Verbindung benutzen? Falls ja, SSL oberhalb nicht aktivieren.'; diff --git a/lib/plugins/usermanager/lang/de/lang.php b/lib/plugins/usermanager/lang/de/lang.php index 21be74f71..d89c9d154 100644 --- a/lib/plugins/usermanager/lang/de/lang.php +++ b/lib/plugins/usermanager/lang/de/lang.php @@ -20,6 +20,7 @@ * @author Matthias Schulte * @author Sven * @author christian studer + * @author Jonas Gröger */ $lang['menu'] = 'Benutzerverwaltung'; $lang['noauth'] = '(Authentifizierungssystem nicht verfügbar)'; @@ -67,6 +68,8 @@ $lang['add_ok'] = 'Nutzer erfolgreich angelegt'; $lang['add_fail'] = 'Nutzer konnte nicht angelegt werden'; $lang['notify_ok'] = 'Benachrichtigungsmail wurde versandt'; $lang['notify_fail'] = 'Benachrichtigungsmail konnte nicht versandt werden'; +$lang['import_userlistcsv'] = 'Benutzerliste (CSV-Datei)'; +$lang['import_header'] = 'Letzer Import - Fehler'; $lang['import_success_count'] = 'User-Import: %d User gefunden, %d erfolgreich importiert.'; $lang['import_failure_count'] = 'User-Import: %d fehlgeschlagen. Fehlgeschlagene User sind nachfolgend aufgelistet.'; $lang['import_error_fields'] = 'Unzureichende Anzahl an Feldern: %d gefunden, benötigt sind 4.'; @@ -77,3 +80,4 @@ $lang['import_error_upload'] = 'Import fehlgeschlagen. Die CSV-Datei konnte ni $lang['import_error_readfail'] = 'Import fehlgeschlagen. Die hochgeladene Datei konnte nicht gelesen werden.'; $lang['import_error_create'] = 'User konnte nicht angelegt werden'; $lang['import_notify_fail'] = 'Notifikation konnte nicht an den importierten Benutzer %s (E-Mail: %s) gesendet werden.'; +$lang['import_downloadfailures'] = 'Fehler als CSV-Datei zur Korrektur herunterladen'; -- cgit v1.2.3 From ac4d41ba8ae73bb61890475242df4887e1f58399 Mon Sep 17 00:00:00 2001 From: soer9648 Date: Tue, 12 Nov 2013 20:52:27 +0100 Subject: translation update --- lib/plugins/authldap/lang/da/settings.php | 6 ++++++ lib/plugins/authmysql/lang/da/settings.php | 6 ++++++ 2 files changed, 12 insertions(+) (limited to 'lib') diff --git a/lib/plugins/authldap/lang/da/settings.php b/lib/plugins/authldap/lang/da/settings.php index a3558aa5c..b736504a5 100644 --- a/lib/plugins/authldap/lang/da/settings.php +++ b/lib/plugins/authldap/lang/da/settings.php @@ -4,6 +4,12 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Jens Hyllegaard + * @author soer9648 */ $lang['server'] = 'Din LDAP server. Enten værtsnavn (localhost) eller fuld kvalificeret URL (ldap://server.tld:389)'; +$lang['port'] = 'LDAP server port, hvis der ikke er angivet en komplet URL ovenfor.'; +$lang['usertree'] = 'Hvor findes brugerkonti. F.eks. ou=Personer, dc=server, dc=tld'; +$lang['grouptree'] = 'Hvor findes brugergrupper. F.eks. ou=Grupper, dc=server, dc=tld'; +$lang['starttls'] = 'Benyt TLS forbindelser?'; +$lang['bindpw'] = 'Kodeord til ovenstående bruger'; $lang['debug'] = 'Vis yderligere debug output ved fejl'; diff --git a/lib/plugins/authmysql/lang/da/settings.php b/lib/plugins/authmysql/lang/da/settings.php index 207d0ff60..8e90ee4ed 100644 --- a/lib/plugins/authmysql/lang/da/settings.php +++ b/lib/plugins/authmysql/lang/da/settings.php @@ -4,9 +4,15 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Jens Hyllegaard + * @author soer9648 */ $lang['server'] = 'Din MySQL server'; +$lang['user'] = 'MySQL brugernavn'; +$lang['password'] = 'Kodeord til ovenstående bruger'; +$lang['database'] = 'Database der skal benyttes'; +$lang['charset'] = 'Tegnsæt benyttet i database'; $lang['debug'] = 'Vis yderligere debug output'; +$lang['checkPass'] = 'SQL-sætning til at kontrollere kodeord'; $lang['debug_o_0'] = 'ingen'; $lang['debug_o_1'] = 'kun ved fejl'; $lang['debug_o_2'] = 'alle SQL forespørgsler'; -- cgit v1.2.3 From a2edc01b990d4f183c3441cf703444d57b0949ea Mon Sep 17 00:00:00 2001 From: soer9648 Date: Tue, 12 Nov 2013 20:53:33 +0100 Subject: translation update --- lib/plugins/authmysql/lang/da/settings.php | 10 ++++++++++ lib/plugins/authpgsql/lang/da/settings.php | 12 ++++++++++++ lib/plugins/usermanager/lang/da/lang.php | 18 ++++++++++++++++++ 3 files changed, 40 insertions(+) (limited to 'lib') diff --git a/lib/plugins/authmysql/lang/da/settings.php b/lib/plugins/authmysql/lang/da/settings.php index 207d0ff60..97d511dc1 100644 --- a/lib/plugins/authmysql/lang/da/settings.php +++ b/lib/plugins/authmysql/lang/da/settings.php @@ -4,9 +4,19 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Jens Hyllegaard + * @author soer9648 */ $lang['server'] = 'Din MySQL server'; $lang['debug'] = 'Vis yderligere debug output'; +$lang['getUserInfo'] = 'SQL-sætning til at hente brugerinformation'; +$lang['getUsers'] = 'SQL-sætning til at liste alle brugere'; +$lang['addUser'] = 'SQL-sætning til at tilføje en ny bruger'; +$lang['addGroup'] = 'SQL-sætning til at tilføje en ny gruppe'; +$lang['addUserGroup'] = 'SQL-sætning til at tilføje en bruger til en eksisterende gruppe'; +$lang['delGroup'] = 'SQL-sætning til at fjerne en gruppe'; +$lang['delUser'] = 'SQL-sætning til at slette en bruger'; +$lang['delUserRefs'] = 'SQL-sætning til at fjerne en bruger fra alle grupper'; +$lang['updateUser'] = 'SQL-sætning til at opdatere en brugerprofil'; $lang['debug_o_0'] = 'ingen'; $lang['debug_o_1'] = 'kun ved fejl'; $lang['debug_o_2'] = 'alle SQL forespørgsler'; diff --git a/lib/plugins/authpgsql/lang/da/settings.php b/lib/plugins/authpgsql/lang/da/settings.php index 76c08a734..007174815 100644 --- a/lib/plugins/authpgsql/lang/da/settings.php +++ b/lib/plugins/authpgsql/lang/da/settings.php @@ -4,7 +4,19 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Jens Hyllegaard + * @author soer9648 */ $lang['server'] = 'Din PostgresSQL server'; $lang['port'] = 'Din PostgresSQL servers port'; +$lang['password'] = 'Kodeord til ovenstående bruger'; +$lang['database'] = 'Database der skal benyttes'; $lang['debug'] = 'Vis yderligere debug output'; +$lang['checkPass'] = 'SQL-sætning til at kontrollere kodeord'; +$lang['getUsers'] = 'SQL-sætning til at liste alle brugere'; +$lang['addUser'] = 'SQL-sætning til at tilføje en ny bruger'; +$lang['addGroup'] = 'SQL-sætning til at tilføje en ny gruppe'; +$lang['addUserGroup'] = 'SQL-sætning til at tilføje en bruger til en eksisterende gruppe'; +$lang['delGroup'] = 'SQL-sætning til at fjerne en gruppe'; +$lang['delUser'] = 'SQL-sætning til at slette en bruger'; +$lang['delUserRefs'] = 'SQL-sætning til at fjerne en bruger fra alle grupper'; +$lang['updateUser'] = 'SQL-sætning til at opdatere en brugerprofil'; diff --git a/lib/plugins/usermanager/lang/da/lang.php b/lib/plugins/usermanager/lang/da/lang.php index 6b615b51d..47d7efea2 100644 --- a/lib/plugins/usermanager/lang/da/lang.php +++ b/lib/plugins/usermanager/lang/da/lang.php @@ -12,6 +12,7 @@ * @author rasmus@kinnerup.com * @author Michael Pedersen subben@gmail.com * @author Mikael Lyngvig + * @author soer9648 */ $lang['menu'] = 'Brugerstyring'; $lang['noauth'] = '(Brugervalidering er ikke tilgængelig)'; @@ -34,6 +35,11 @@ $lang['search'] = 'Søg'; $lang['search_prompt'] = 'Udfør søgning'; $lang['clear'] = 'Nulstil søgefilter'; $lang['filter'] = 'Filter'; +$lang['export_all'] = 'Eksportér Alle Brugere (CSV)'; +$lang['export_filtered'] = 'Eksportér Filtrerede Brugerliste (CSV)'; +$lang['import'] = 'Importér Nye Brugere'; +$lang['line'] = 'Linje nr.'; +$lang['error'] = 'Fejlmeddelelse'; $lang['summary'] = 'Viser brugerne %1$d-%2$d ud af %3$d fundne. %4$d brugere totalt.'; $lang['nonefound'] = 'Ingen brugere fundet. %d brugere totalt.'; $lang['delete_ok'] = '%d brugere slettet'; @@ -54,3 +60,15 @@ $lang['add_ok'] = 'Bruger tilføjet uden fejl.'; $lang['add_fail'] = 'Tilføjelse af bruger mislykkedes'; $lang['notify_ok'] = 'Meddelelse sendt'; $lang['notify_fail'] = 'Meddelelse kunne ikke sendes'; +$lang['import_userlistcsv'] = 'Brugerlistefil (CSV):'; +$lang['import_header'] = 'Nyeste Import - Fejl'; +$lang['import_success_count'] = 'Bruger-Import: %d brugere fundet, %d importeret med succes.'; +$lang['import_failure_count'] = 'Bruger-Import: %d fejlet. Fejl er listet nedenfor.'; +$lang['import_error_fields'] = 'Utilstrækkelige felter, fandt %d, påkrævet 4.'; +$lang['import_error_baduserid'] = 'Bruger-id mangler'; +$lang['import_error_badname'] = 'Ugyldigt navn'; +$lang['import_error_badmail'] = 'Ugyldig email-adresse'; +$lang['import_error_upload'] = 'Import Fejlet. CSV-filen kunne ikke uploades eller er tom.'; +$lang['import_error_readfail'] = 'Import Fejlet. Ikke muligt at læse uploadede fil.'; +$lang['import_error_create'] = 'Ikke muligt at oprette brugeren'; +$lang['import_notify_fail'] = 'Notifikationsmeddelelse kunne ikke sendes for importerede bruger %s, med emailen %s.'; -- cgit v1.2.3 From 9970bf3ddc2f2a04491ead0bf54523270c3f0102 Mon Sep 17 00:00:00 2001 From: Martin Michalek Date: Tue, 12 Nov 2013 20:56:02 +0100 Subject: translation update --- lib/plugins/authad/lang/sk/settings.php | 5 +++++ lib/plugins/authldap/lang/sk/settings.php | 6 ++++++ lib/plugins/authmysql/lang/sk/settings.php | 4 ++++ lib/plugins/authpgsql/lang/sk/settings.php | 1 + 4 files changed, 16 insertions(+) (limited to 'lib') diff --git a/lib/plugins/authad/lang/sk/settings.php b/lib/plugins/authad/lang/sk/settings.php index 55f266dd6..b7d822f7e 100644 --- a/lib/plugins/authad/lang/sk/settings.php +++ b/lib/plugins/authad/lang/sk/settings.php @@ -6,10 +6,15 @@ * @author Martin Michalek */ $lang['account_suffix'] = 'Prípona používateľského účtu. Napr. @my.domain.org'; +$lang['base_dn'] = 'Vaše base DN. Napr. DC=my,DC=domain,DC=org'; +$lang['domain_controllers'] = 'Zoznam doménových radičov oddelených čiarkou. Napr. srv1.domain.org,srv2.domain.org'; $lang['admin_username'] = 'Privilegovaný používateľ Active Directory s prístupom ku všetkým dátam ostatných používateľov. Nepovinné nastavenie, ale potrebné pre určité akcie ako napríklad zasielanie mailov o zmenách.'; $lang['admin_password'] = 'Heslo vyššie uvedeného používateľa.'; $lang['sso'] = 'Použiť Single-Sign-On cez Kerberos alebo NTLM?'; +$lang['sso_charset'] = 'Znaková sada, v ktorej bude webserver prenášať meno Kerberos or NTLM používateľa. Prázne pole znamená UTF-8 alebo latin-1. Vyžaduje iconv rozšírenie.'; +$lang['real_primarygroup'] = 'Použiť skutočnú primárnu skupinu používateľa namiesto "Doménoví používatelia" (pomalšie).'; $lang['use_ssl'] = 'Použiť SSL pripojenie? Ak áno, nepovoľte TLS nižšie.'; $lang['use_tls'] = 'Použiť TLS pripojenie? Ak áno, nepovoľte SSL vyššie.'; $lang['debug'] = 'Zobraziť doplňujúce ladiace informácie pri chybe?'; +$lang['expirywarn'] = 'Počet dní pred uplynutím platnosti hesla, počas ktorých používateľ dostáva upozornenie. 0 deaktivuje túto voľbu.'; $lang['additional'] = 'Zoznam dodatočných AD atribútov oddelených čiarkou získaných z údajov používateľa. Používané niektorými pluginmi.'; diff --git a/lib/plugins/authldap/lang/sk/settings.php b/lib/plugins/authldap/lang/sk/settings.php index 48bd37395..c44f07e97 100644 --- a/lib/plugins/authldap/lang/sk/settings.php +++ b/lib/plugins/authldap/lang/sk/settings.php @@ -13,7 +13,13 @@ $lang['userfilter'] = 'LDAP filter pre vyhľadávanie používateľsk $lang['groupfilter'] = 'LDAP filter pre vyhľadávanie skupín. Napr. (&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))'; $lang['version'] = 'Použitá verzia protokolu. Možno bude potrebné nastaviť na hodnotu 3'; $lang['starttls'] = 'Použiť TLS pripojenie?'; +$lang['referrals'] = 'Majú byť nasledované odkazy na používateľov (referrals)?'; +$lang['deref'] = 'Ako previesť aliasy?'; +$lang['binddn'] = 'DN prípadného priradenia používateľa, ak anonymné priradenie nie je dostatočné. Napr. cn=admin, dc=my, dc=home'; $lang['bindpw'] = 'Heslo vyššie uvedeného používateľa'; +$lang['userscope'] = 'Obmedzenie oblasti pri vyhľadávaní používateľa'; +$lang['groupscope'] = 'Obmedzenie oblasti pri vyhľadávaní skupiny'; +$lang['groupkey'] = 'Príslušnost k skupine určená z daného atribútu používateľa (namiesto štandardnej AD skupiny) napr. skupiny podľa oddelenia alebo telefónneho čísla'; $lang['debug'] = 'Zobraziť doplňujúce ladiace informácie pri chybe'; $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; diff --git a/lib/plugins/authmysql/lang/sk/settings.php b/lib/plugins/authmysql/lang/sk/settings.php index 8c52f905e..d7e8cb286 100644 --- a/lib/plugins/authmysql/lang/sk/settings.php +++ b/lib/plugins/authmysql/lang/sk/settings.php @@ -34,5 +34,9 @@ $lang['UpdateLogin'] = 'SQL podmienka pre aktualizáciu prihlasovacieh $lang['UpdatePass'] = 'SQL podmienka pre aktualizáciu hesla používateľa'; $lang['UpdateEmail'] = 'SQL podmienka pre aktualizáciu emailovej adresy používateľa'; $lang['UpdateName'] = 'SQL podmienka pre aktualizáciu mena a priezviska používateľa'; +$lang['UpdateTarget'] = 'Podmienka identifikácie používateľa pri aktualizácii'; $lang['delUserGroup'] = 'SQL príkaz pre vyradenie používateľa z danej skupiny'; $lang['getGroupID'] = 'SQL príkaz pre získanie primárneho kľúča skupiny'; +$lang['debug_o_0'] = 'žiadne'; +$lang['debug_o_1'] = 'iba pri chybách'; +$lang['debug_o_2'] = 'všetky SQL dopyty'; diff --git a/lib/plugins/authpgsql/lang/sk/settings.php b/lib/plugins/authpgsql/lang/sk/settings.php index 9d656415d..861d1237d 100644 --- a/lib/plugins/authpgsql/lang/sk/settings.php +++ b/lib/plugins/authpgsql/lang/sk/settings.php @@ -33,5 +33,6 @@ $lang['UpdateLogin'] = 'SQL podmienka pre aktualizáciu prihlasovacieh $lang['UpdatePass'] = 'SQL podmienka pre aktualizáciu hesla používateľa'; $lang['UpdateEmail'] = 'SQL podmienka pre aktualizáciu emailovej adresy používateľa'; $lang['UpdateName'] = 'SQL podmienka pre aktualizáciu mena a priezviska používateľa'; +$lang['UpdateTarget'] = 'Podmienka identifikácie používateľa pri aktualizácii'; $lang['delUserGroup'] = 'SQL príkaz pre vyradenie používateľa z danej skupiny'; $lang['getGroupID'] = 'SQL príkaz pre získanie primárneho kľúča skupiny'; -- cgit v1.2.3 From 47f862d1e038979f4d2dd5bb0c3eaaa9d1ee8fee Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Tue, 12 Nov 2013 23:37:38 +0000 Subject: Fix an issue with style.ini replacements values not having relative locations corrected, when those values are "url(...)". Explanation: In the change to the less css extension, variable replacements now happen after the less/css files are processed for correction of relative locations. --- lib/exe/css.php | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/exe/css.php b/lib/exe/css.php index f0bd24b43..af7f9e4f1 100644 --- a/lib/exe/css.php +++ b/lib/exe/css.php @@ -271,7 +271,7 @@ function css_styleini($tpl) { // replacements if(is_array($data['replacements'])){ - $replacements = array_merge($replacements, $data['replacements']); + $replacements = array_merge($replacements, css_fixreplacementurls($data['replacements'],$webbase)); } } @@ -288,7 +288,7 @@ function css_styleini($tpl) { // replacements if(is_array($data['replacements'])){ - $replacements = array_merge($replacements, $data['replacements']); + $replacements = array_merge($replacements, css_fixreplacementurls($data['replacements'],$webbase)); } } @@ -306,7 +306,7 @@ function css_styleini($tpl) { // replacements if(is_array($data['replacements'])){ - $replacements = array_merge($replacements, $data['replacements']); + $replacements = array_merge($replacements, css_fixreplacementurls($data['replacements'],$webbase)); } } @@ -316,6 +316,13 @@ function css_styleini($tpl) { ); } +function css_fixreplacementurls($replacements, $location) { + foreach($replacements as $key => $value) { + $replacements[$key] = preg_replace('#(url\([ \'"]*)(?!/|data:|http://|https://| |\'|")#','\\1'.$location,$value); + } + return $replacements; +} + /** * Prints classes for interwikilinks * -- cgit v1.2.3 From 5381a7ee4e6527c7d6d6af67134ef92ba97f8745 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elan=20Ruusam=C3=A4e?= Date: Wed, 13 Nov 2013 22:52:40 +0200 Subject: remove 'infos' misspelling http://english.stackexchange.com/questions/117552/why-does-information-not-have-a-plural-form --- lib/exe/detail.php | 2 +- lib/plugins/acl/admin.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/exe/detail.php b/lib/exe/detail.php index e3c81d877..cd3f362ad 100644 --- a/lib/exe/detail.php +++ b/lib/exe/detail.php @@ -6,7 +6,7 @@ require_once(DOKU_INC.'inc/init.php'); $IMG = getID('media'); $ID = cleanID($INPUT->str('id')); -// this makes some general infos available as well as the info about the +// this makes some general info available as well as the info about the // "parent" page $INFO = array_merge(pageinfo(),mediainfo()); diff --git a/lib/plugins/acl/admin.php b/lib/plugins/acl/admin.php index b24981d91..6c7c28ff6 100644 --- a/lib/plugins/acl/admin.php +++ b/lib/plugins/acl/admin.php @@ -345,7 +345,7 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { } /** - * Print infos and editor + * Print info and editor */ function _html_info(){ global $ID; -- cgit v1.2.3 From dc4e861bc179b74b87293e83e19a73f781d41690 Mon Sep 17 00:00:00 2001 From: Myeongjin Date: Sat, 16 Nov 2013 01:30:59 +0100 Subject: translation update --- lib/plugins/authldap/lang/ko/settings.php | 4 ++-- lib/plugins/revert/lang/ko/intro.txt | 2 +- lib/plugins/revert/lang/ko/lang.php | 2 +- lib/plugins/usermanager/lang/ko/lang.php | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) (limited to 'lib') diff --git a/lib/plugins/authldap/lang/ko/settings.php b/lib/plugins/authldap/lang/ko/settings.php index 5c5341b31..ae8dc7ab6 100644 --- a/lib/plugins/authldap/lang/ko/settings.php +++ b/lib/plugins/authldap/lang/ko/settings.php @@ -17,8 +17,8 @@ $lang['referrals'] = '참고(referrals)를 허용하겠습니까? '; $lang['deref'] = '어떻게 별명을 간접 참고하겠습니까?'; $lang['binddn'] = '익명 바인드가 충분하지 않으면 선택적인 바인드 사용자의 DN. 예를 들어 cn=admin, dc=my, dc=home'; $lang['bindpw'] = '위 사용자의 비밀번호'; -$lang['userscope'] = '사용자 찾기에 대한 찾기 범위 제한'; -$lang['groupscope'] = '그룹 찾기에 대한 찾기 범위 제한'; +$lang['userscope'] = '사용자 검색에 대한 검색 범위 제한'; +$lang['groupscope'] = '그룹 검색에 대한 검색 범위 제한'; $lang['groupkey'] = '(표준 AD 그룹 대신) 사용자 속성에서 그룹 구성원. 예를 들어 부서나 전화에서 그룹'; $lang['debug'] = '오류에 대한 추가적인 디버그 정보를 보이기'; $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; diff --git a/lib/plugins/revert/lang/ko/intro.txt b/lib/plugins/revert/lang/ko/intro.txt index 7aa618ba6..565aa4bbe 100644 --- a/lib/plugins/revert/lang/ko/intro.txt +++ b/lib/plugins/revert/lang/ko/intro.txt @@ -1,3 +1,3 @@ ====== 되돌리기 관리자 ====== -스팸 공격으로부터 자동으로 되돌리는데 이 페이지가 도움이 될 수 있습니다. 스팸 공격받은 문서 목록을 찾으려면 문자열을 입력하고(예를 들어 스팸 URL) 나서 찾은 문서가 스팸 공격을 받았는지 확인하고 되돌리세요. \ No newline at end of file +스팸 공격으로부터 자동으로 되돌리는데 이 페이지가 도움이 될 수 있습니다. 스팸에 공격 받은 문서 목록을 찾으려면 검색어를 입력하고(예를 들어 스팸 URL) 나서 찾은 문서가 스팸 공격을 받았는지 확인하고 되돌리세요. \ No newline at end of file diff --git a/lib/plugins/revert/lang/ko/lang.php b/lib/plugins/revert/lang/ko/lang.php index e63706960..5666100e9 100644 --- a/lib/plugins/revert/lang/ko/lang.php +++ b/lib/plugins/revert/lang/ko/lang.php @@ -11,7 +11,7 @@ * @author Myeongjin */ $lang['menu'] = '되돌리기 관리자'; -$lang['filter'] = '스팸 문서 찾기'; +$lang['filter'] = '스팸 문서 검색'; $lang['revert'] = '선택한 문서 되돌리기'; $lang['reverted'] = '%s 판을 %s 판으로 되돌림'; $lang['removed'] = '%s 제거됨'; diff --git a/lib/plugins/usermanager/lang/ko/lang.php b/lib/plugins/usermanager/lang/ko/lang.php index 1905fadc2..ccc7f9059 100644 --- a/lib/plugins/usermanager/lang/ko/lang.php +++ b/lib/plugins/usermanager/lang/ko/lang.php @@ -28,9 +28,9 @@ $lang['delete_selected'] = '선택 삭제'; $lang['edit'] = '편집'; $lang['edit_prompt'] = '이 사용자 편집'; $lang['modify'] = '바뀜 저장'; -$lang['search'] = '찾기'; -$lang['search_prompt'] = '찾기 실행'; -$lang['clear'] = '찾기 필터 재설정'; +$lang['search'] = '검색'; +$lang['search_prompt'] = '검색 수행'; +$lang['clear'] = '검색 필터 재설정'; $lang['filter'] = '필터'; $lang['export_all'] = '모든 사용자 목록 내보내기 (CSV)'; $lang['export_filtered'] = '필터된 사용자 목록 내보내기 (CSV)'; -- cgit v1.2.3 From 072d667427a897f2b6320dd0a24ccf7206d08ae3 Mon Sep 17 00:00:00 2001 From: Myeongjin Date: Sat, 16 Nov 2013 15:46:04 +0900 Subject: fix mistranslated messages --- lib/plugins/config/lang/ko/lang.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/plugins/config/lang/ko/lang.php b/lib/plugins/config/lang/ko/lang.php index ac52090e3..0cdaca90d 100644 --- a/lib/plugins/config/lang/ko/lang.php +++ b/lib/plugins/config/lang/ko/lang.php @@ -71,7 +71,7 @@ $lang['deaccent'] = '문서 이름을 지우는 방법'; $lang['useheading'] = '문서 이름으로 첫 문단 제목 사용'; $lang['sneaky_index'] = '기본적으로 도쿠위키는 색인 목록에 모든 이름공간을 보여줍니다. 이 옵션을 설정하면 사용자가 읽기 권한을 가지고 있지 않은 이름공간은 보여주지 않습니다. 접근 가능한 하위 이름공간을 보이지 않게 설정하면 자동으로 설정됩니다. 특정 ACL 설정은 색인 사용이 불가능하게 할 수도 있습니다.'; -$lang['hidepages'] = '사이트맵과 기타 자동 색인과 같은 찾기에서 정규 표현식과 일치하는 문서 숨기기'; +$lang['hidepages'] = '검색, 사이트맵과 기타 자동 색인에서 정규 표현식과 일치하는 문서 숨기기'; $lang['useacl'] = '접근 제어 목록 (ACL) 사용'; $lang['autopasswd'] = '자동으로 만들어진 비밀번호'; $lang['authtype'] = '인증 백-엔드'; @@ -137,7 +137,7 @@ $lang['gzip_output'] = 'xhml 내용 gzip 압축 사용'; $lang['compress'] = '최적화된 CSS, 자바스크립트 출력'; $lang['cssdatauri'] = '그림이 렌더링될 최대 용량 크기를 CSS에 규정해야 HTTP 요청 헤더 오버헤드 크기를 감소시킬 수 있습니다. 이 기술은 IE 7 이하에서는 작동하지 않습니다! 400에서 600 정도면 좋은 효율을 가져옵니다. 0로 지정할 경우 비활성화 됩니다.'; $lang['send404'] = '존재하지 않는 페이지에 대해 "HTTP 404/페이지를 찾을 수 없습니다" 응답'; -$lang['broken_iua'] = '설치된 시스템에서 ignore_user_abort 기능에 문제가 있습니까? 문제가 있다면 색인이 정상적으로 동작하지 않습니다. 이 기능이 IIS+PHP/CGI에서 문제가 있는 것으로 알려졌습니다. 자세한 정보는 버그 852를 참고하시기 바랍니다.'; +$lang['broken_iua'] = '설치된 시스템에서 ignore_user_abort 기능에 문제가 있습니까? 문제가 있다면 검색 색인이 정상적으로 동작하지 않습니다. 이 기능이 IIS+PHP/CGI에서 문제가 있는 것으로 알려졌습니다. 자세한 정보는 버그 852를 참고하시기 바랍니다.'; $lang['xsendfile'] = '웹 서버가 정적 파일을 제공하도록 X-Sendfile 헤더를 사용하겠습니까? 웹 서버가 이 기능을 지원해야 합니다.'; $lang['renderer_xhtml'] = '주 (xhtml) 위키 출력 처리기'; $lang['renderer__core'] = '%s (도쿠위키 내부)'; -- cgit v1.2.3 From 834ad97fc976d60bd2e57b488a43aca1f39b2277 Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Sat, 16 Nov 2013 21:18:23 +0000 Subject: Improved pagetools event in dokuwiki template This moves the template name away from the hook name into the event data (as the 'tpl' value). Therefore it moves the previous data items into the 'items' sub array. A 'view' value has also been added to describe in which template file the event was called ('main' or 'detail'). This way it will be much easier for plugins to consider default cases and differentiate between main and other layouts. --- lib/tpl/dokuwiki/detail.php | 14 ++++++-------- lib/tpl/dokuwiki/main.php | 24 ++++++++++++------------ 2 files changed, 18 insertions(+), 20 deletions(-) (limited to 'lib') diff --git a/lib/tpl/dokuwiki/detail.php b/lib/tpl/dokuwiki/detail.php index c602830f7..2ee36a2a9 100644 --- a/lib/tpl/dokuwiki/detail.php +++ b/lib/tpl/dokuwiki/detail.php @@ -110,26 +110,24 @@ header('X-UA-Compatible: IE=edge,chrome=1');
            = AUTH_UPLOAD) && function_exists('media_managerURL')) { $mmURL = media_managerURL(array('ns' => $imgNS, 'image' => $IMG)); - $data['mediaManager'] = '
          • '.$lang['img_manager'].'
          • '; + $data['items']['mediaManager'] = '
          • '.$lang['img_manager'].'
          • '; } // Back to [ID]; @todo: transfer logic to backend - $data['img_backto'] = '
          • '.$lang['img_backto'].' '.$ID.'
          • '; + $data['items']['img_backto'] = '
          • '.$lang['img_backto'].' '.$ID.'
          • '; // the page tools can be amended through a custom plugin hook - // if you're deriving from this template and your design is close enough to - // the dokuwiki template you might want to trigger a DOKUWIKI event instead - // of using $conf['template'] here - $hook = 'TEMPLATE_'.strtoupper($conf['template']).'_PAGETOOLS_DISPLAY'; - $evt = new Doku_Event($hook, $data); + $evt = new Doku_Event('TEMPLATE_PAGETOOLS_DISPLAY', $data); if($evt->advise_before()){ - foreach($evt->data as $k => $html) echo $html; + foreach($evt->data['items'] as $k => $html) echo $html; } $evt->advise_after(); unset($data); diff --git a/lib/tpl/dokuwiki/main.php b/lib/tpl/dokuwiki/main.php index f6ca4ed86..0dbaa681b 100644 --- a/lib/tpl/dokuwiki/main.php +++ b/lib/tpl/dokuwiki/main.php @@ -75,22 +75,22 @@ $showSidebar = $hasSidebar && ($ACT=='show');
              tpl_action('edit', 1, 'li', 1, '', ''), - 'revert' => tpl_action('revert', 1, 'li', 1, '', ''), - 'revisions' => tpl_action('revisions', 1, 'li', 1, '', ''), - 'backlink' => tpl_action('backlink', 1, 'li', 1, '', ''), - 'subscribe' => tpl_action('subscribe', 1, 'li', 1, '', ''), - 'top' => tpl_action('top', 1, 'li', 1, '', '') + 'tpl' => $conf['template'], + 'view' => 'main', + 'items' => array( + 'edit' => tpl_action('edit', 1, 'li', 1, '', ''), + 'revert' => tpl_action('revert', 1, 'li', 1, '', ''), + 'revisions' => tpl_action('revisions', 1, 'li', 1, '', ''), + 'backlink' => tpl_action('backlink', 1, 'li', 1, '', ''), + 'subscribe' => tpl_action('subscribe', 1, 'li', 1, '', ''), + 'top' => tpl_action('top', 1, 'li', 1, '', '') + ) ); // the page tools can be amended through a custom plugin hook - // if you're deriving from this template and your design is close enough to - // the dokuwiki template you might want to trigger a DOKUWIKI event instead - // of using $conf['template'] here - $hook = 'TEMPLATE_'.strtoupper($conf['template']).'_PAGETOOLS_DISPLAY'; - $evt = new Doku_Event($hook, $data); + $evt = new Doku_Event('TEMPLATE_PAGETOOLS_DISPLAY', $data); if($evt->advise_before()){ - foreach($evt->data as $k => $html) echo $html; + foreach($evt->data['items'] as $k => $html) echo $html; } $evt->advise_after(); unset($data); -- cgit v1.2.3 From f8cadb6a04d3c1c201dd77627c89bd1c0efcac51 Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Sun, 17 Nov 2013 20:39:07 +0000 Subject: removed tpl from TEMPLATE_PAGETOOLS_DISPLAY event as it's always available in --- lib/tpl/dokuwiki/detail.php | 1 - lib/tpl/dokuwiki/main.php | 1 - 2 files changed, 2 deletions(-) (limited to 'lib') diff --git a/lib/tpl/dokuwiki/detail.php b/lib/tpl/dokuwiki/detail.php index 2ee36a2a9..ec846f6fd 100644 --- a/lib/tpl/dokuwiki/detail.php +++ b/lib/tpl/dokuwiki/detail.php @@ -110,7 +110,6 @@ header('X-UA-Compatible: IE=edge,chrome=1');
                $conf['template'], 'view' => 'main', 'items' => array( 'edit' => tpl_action('edit', 1, 'li', 1, '', ''), -- cgit v1.2.3 From b090397b36856aa72a3c87dc391f5fea13c68571 Mon Sep 17 00:00:00 2001 From: Benedikt Fey Date: Mon, 18 Nov 2013 11:21:02 +0100 Subject: translation update --- lib/plugins/authad/lang/de/settings.php | 2 +- lib/plugins/usermanager/lang/de/lang.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/plugins/authad/lang/de/settings.php b/lib/plugins/authad/lang/de/settings.php index 6bc86dc01..8105fb6f2 100644 --- a/lib/plugins/authad/lang/de/settings.php +++ b/lib/plugins/authad/lang/de/settings.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Frank Loizzi * @author Matthias Schulte * @author Ben Fey diff --git a/lib/plugins/usermanager/lang/de/lang.php b/lib/plugins/usermanager/lang/de/lang.php index d1b9b908b..4b297b0dc 100644 --- a/lib/plugins/usermanager/lang/de/lang.php +++ b/lib/plugins/usermanager/lang/de/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Matthias Grimm * @author Andreas Gohr * @author Michael Klier -- cgit v1.2.3 From dce9cd11f94321df5bde479e72fd8a01257b59d3 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Mon, 18 Nov 2013 17:11:10 +0100 Subject: translation update --- lib/plugins/authad/lang/nl/settings.php | 2 ++ 1 file changed, 2 insertions(+) (limited to 'lib') diff --git a/lib/plugins/authad/lang/nl/settings.php b/lib/plugins/authad/lang/nl/settings.php index 69d67be9a..591d72941 100644 --- a/lib/plugins/authad/lang/nl/settings.php +++ b/lib/plugins/authad/lang/nl/settings.php @@ -4,6 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Remon + * @author Gerrit Uitslag */ $lang['account_suffix'] = 'Je account domeinnaam. Bijv @mijn.domein.org'; $lang['base_dn'] = 'Je basis DN. Bijv. DC=mijn,DC=domein,DC=org'; @@ -11,6 +12,7 @@ $lang['domain_controllers'] = 'Eeen kommagescheiden lijst van domeinservers. $lang['admin_username'] = 'Een geprivilegeerde Active Directory gebruiker die bij alle gebruikersgegevens kan komen. Dit is optioneel maar kan nodig zijn voor bepaalde acties, zoals het versturen van abonnementsmailtjes.'; $lang['admin_password'] = 'Het wachtwoord van bovenstaande gebruiker.'; $lang['sso'] = 'Wordt voor Single-Sign-on Kerberos of NTLM gebruikt?'; +$lang['sso_charset'] = 'Het tekenset waarin je webserver de Kerberos of NTLM gebruikersnaam doorsturen. Leeglaten voor UTF-8 of latin-1. Vereist de iconv extensie.'; $lang['real_primarygroup'] = 'Moet de echte primaire groep worden opgezocht in plaats van het aannemen van "Domeingebruikers" (langzamer)'; $lang['use_ssl'] = 'SSL verbinding gebruiken? Zo ja, activeer dan niet de TLS optie hieronder.'; $lang['use_tls'] = 'TLS verbinding gebruiken? Zo ja, activeer dan niet de SSL verbinding hierboven.'; -- cgit v1.2.3 From 32f730b04ba68c7ca7c2d32208dfac042e6ffffd Mon Sep 17 00:00:00 2001 From: Satoshi Sahara Date: Tue, 19 Nov 2013 08:11:04 +0100 Subject: translation update --- lib/plugins/authmysql/lang/ja/settings.php | 2 +- lib/plugins/authpgsql/lang/ja/settings.php | 2 +- lib/plugins/usermanager/lang/ja/import.txt | 2 +- lib/plugins/usermanager/lang/ja/lang.php | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) (limited to 'lib') diff --git a/lib/plugins/authmysql/lang/ja/settings.php b/lib/plugins/authmysql/lang/ja/settings.php index 0dc5f1ad8..e5d5689df 100644 --- a/lib/plugins/authmysql/lang/ja/settings.php +++ b/lib/plugins/authmysql/lang/ja/settings.php @@ -11,7 +11,7 @@ $lang['password'] = 'MySQL 接続用ユーザーのパスワード' $lang['database'] = '使用するデータベース名'; $lang['charset'] = 'データベースの文字コード'; $lang['debug'] = 'デバック情報を表示する'; -$lang['forwardClearPass'] = '以下で定義する SQL ステートメントにおいて, パスワード変数 %{pass} を平文とする(DokiWiki側で暗号化しない)'; +$lang['forwardClearPass'] = '以下で定義する SQL ステートメントにおいて, パスワード変数 %{pass} を平文とする(DokiWiki側で暗号化しない)'; $lang['TablesToLock'] = '書き込み時にロックするテーブル(コンマ区切りで列挙)'; $lang['checkPass'] = 'パスワードの照合に用いる SQL ステートメント'; $lang['getUserInfo'] = 'ユーザー情報の取得に用いる SQL ステートメント'; diff --git a/lib/plugins/authpgsql/lang/ja/settings.php b/lib/plugins/authpgsql/lang/ja/settings.php index 2ce63a34a..d7a5f6cf2 100644 --- a/lib/plugins/authpgsql/lang/ja/settings.php +++ b/lib/plugins/authpgsql/lang/ja/settings.php @@ -11,7 +11,7 @@ $lang['user'] = 'PostgreSQL 接続用ユーザー名'; $lang['password'] = 'PostgreSQL 接続用ユーザーのパスワード'; $lang['database'] = '使用するデータベース名'; $lang['debug'] = 'デバック情報を表示する'; -$lang['forwardClearPass'] = '以下で定義する SQL ステートメントにおいて, パスワード変数 %{pass} を平文とする(DokiWiki側で暗号化しない)'; +$lang['forwardClearPass'] = '以下で定義する SQL ステートメントにおいて, パスワード変数 %{pass} を平文とする(DokiWiki側で暗号化しない)'; $lang['checkPass'] = 'パスワードの照合に用いる SQL ステートメント'; $lang['getUserInfo'] = 'ユーザー情報の取得に用いる SQL ステートメント'; $lang['getGroups'] = 'ユーザーが所属する全てのグループの取得に用いる SQL ステートメント'; diff --git a/lib/plugins/usermanager/lang/ja/import.txt b/lib/plugins/usermanager/lang/ja/import.txt index d4f7d08bf..751e515ac 100644 --- a/lib/plugins/usermanager/lang/ja/import.txt +++ b/lib/plugins/usermanager/lang/ja/import.txt @@ -4,7 +4,7 @@ 列の順序:ユーザーID、氏名、電子メールアドレス、グループ。 CSVフィールドはカンマ(,)区切り、文字列は引用符("")区切りです。 エスケープにバックスラッシュ(\)を使用できます。 -適切なファイル例は、上記の"エクスポートユーザー"機能で試して下さい。 +適切なファイル例は、上記の"エクスポートユーザー"機能で試して下さい。 重複するユーザーIDは無視されます。 正常にインポートされたユーザー毎に、パスワードを作成し、電子メールで送付します。 \ No newline at end of file diff --git a/lib/plugins/usermanager/lang/ja/lang.php b/lib/plugins/usermanager/lang/ja/lang.php index 0830416f3..23109f2a2 100644 --- a/lib/plugins/usermanager/lang/ja/lang.php +++ b/lib/plugins/usermanager/lang/ja/lang.php @@ -54,7 +54,7 @@ $lang['edit_usermissing'] = '選択したユーザーは見つかりませ $lang['user_notify'] = 'ユーザーに通知する'; $lang['note_notify'] = '通知メールは、ユーザーに新たなパスワードが設定された場合のみ送信されます。'; $lang['note_group'] = 'グループを指定しない場合は、既定のグループ(%s)に配属されます。'; -$lang['note_pass'] = 'パスワードを空欄とした場合は、(”ユーザーに通知する”がチェックされていなくとも)自動生成したパスワードの通知がユーザー宛てに送信されます。'; +$lang['note_pass'] = '”ユーザーに通知する”をチェックしてパスワードを空欄にすると、パスワードは自動生成されます。'; $lang['add_ok'] = 'ユーザーを登録しました'; $lang['add_fail'] = 'ユーザーの登録に失敗しました'; $lang['notify_ok'] = '通知メールを送信しました'; -- cgit v1.2.3 From a6c758f14a44f0415d89385e5612bb9ae32d6daa Mon Sep 17 00:00:00 2001 From: Myeongjin Date: Sun, 24 Nov 2013 11:37:45 +0100 Subject: translation update --- lib/plugins/usermanager/lang/ko/lang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/plugins/usermanager/lang/ko/lang.php b/lib/plugins/usermanager/lang/ko/lang.php index ccc7f9059..a01cbbdba 100644 --- a/lib/plugins/usermanager/lang/ko/lang.php +++ b/lib/plugins/usermanager/lang/ko/lang.php @@ -68,5 +68,5 @@ $lang['import_error_badmail'] = '잘못된 이메일 주소'; $lang['import_error_upload'] = '가져오기를 실패했습니다. csv 파일을 올릴 수 없거나 비어 있습니다.'; $lang['import_error_readfail'] = '가져오기를 실패했습니다. 올린 파일을 읽을 수 없습니다.'; $lang['import_error_create'] = '사용자를 만들 수 없습니다.'; -$lang['import_notify_fail'] = '알림 메시지를 가져온 %2$s (이메일: %1$s ) 사용자에게 보낼 수 없습니다.'; +$lang['import_notify_fail'] = '알림 메시지를 가져온 %s (이메일: %s ) 사용자에게 보낼 수 없습니다.'; $lang['import_downloadfailures'] = '교정을 위한 CSV로 다운로드 실패'; -- cgit v1.2.3 From 853aa1550199223a46b55e9563790b9ef6a1d234 Mon Sep 17 00:00:00 2001 From: Rami Lehti Date: Sun, 24 Nov 2013 11:38:46 +0100 Subject: translation update --- lib/plugins/acl/lang/fi/lang.php | 5 +++-- lib/plugins/plugin/lang/fi/lang.php | 5 +++-- lib/plugins/popularity/lang/fi/lang.php | 5 +++-- lib/plugins/revert/lang/fi/lang.php | 5 +++-- lib/plugins/usermanager/lang/fi/lang.php | 5 +++-- 5 files changed, 15 insertions(+), 10 deletions(-) (limited to 'lib') diff --git a/lib/plugins/acl/lang/fi/lang.php b/lib/plugins/acl/lang/fi/lang.php index 4f145e0f6..50224dfb4 100644 --- a/lib/plugins/acl/lang/fi/lang.php +++ b/lib/plugins/acl/lang/fi/lang.php @@ -1,7 +1,8 @@ * @author Teemu Mattila diff --git a/lib/plugins/plugin/lang/fi/lang.php b/lib/plugins/plugin/lang/fi/lang.php index 923029a6f..f51746faa 100644 --- a/lib/plugins/plugin/lang/fi/lang.php +++ b/lib/plugins/plugin/lang/fi/lang.php @@ -1,7 +1,8 @@ * @author Teemu Mattila diff --git a/lib/plugins/popularity/lang/fi/lang.php b/lib/plugins/popularity/lang/fi/lang.php index d7c230742..ec0fc4071 100644 --- a/lib/plugins/popularity/lang/fi/lang.php +++ b/lib/plugins/popularity/lang/fi/lang.php @@ -1,7 +1,8 @@ * @author Teemu Mattila * @author Sami Olmari diff --git a/lib/plugins/revert/lang/fi/lang.php b/lib/plugins/revert/lang/fi/lang.php index fdf9bb81c..d14f527f9 100644 --- a/lib/plugins/revert/lang/fi/lang.php +++ b/lib/plugins/revert/lang/fi/lang.php @@ -1,7 +1,8 @@ * @author Teemu Mattila diff --git a/lib/plugins/usermanager/lang/fi/lang.php b/lib/plugins/usermanager/lang/fi/lang.php index 1db4bd7fb..de243133a 100644 --- a/lib/plugins/usermanager/lang/fi/lang.php +++ b/lib/plugins/usermanager/lang/fi/lang.php @@ -1,7 +1,8 @@ * @author Teemu Mattila -- cgit v1.2.3 From a8bca8a644cdcea093acf51a543cbff261ef0b8a Mon Sep 17 00:00:00 2001 From: Otto Vainio Date: Sun, 24 Nov 2013 18:01:23 +0100 Subject: translation update --- lib/plugins/acl/lang/fi/lang.php | 5 +++-- lib/plugins/authad/lang/fi/settings.php | 7 +++++-- lib/plugins/authldap/lang/fi/settings.php | 9 +++++++-- lib/plugins/plugin/lang/fi/lang.php | 5 +++-- lib/plugins/popularity/lang/fi/lang.php | 5 +++-- lib/plugins/revert/lang/fi/lang.php | 5 +++-- lib/plugins/usermanager/lang/fi/lang.php | 5 +++-- 7 files changed, 27 insertions(+), 14 deletions(-) (limited to 'lib') diff --git a/lib/plugins/acl/lang/fi/lang.php b/lib/plugins/acl/lang/fi/lang.php index 4f145e0f6..50224dfb4 100644 --- a/lib/plugins/acl/lang/fi/lang.php +++ b/lib/plugins/acl/lang/fi/lang.php @@ -1,7 +1,8 @@ * @author Teemu Mattila diff --git a/lib/plugins/authad/lang/fi/settings.php b/lib/plugins/authad/lang/fi/settings.php index d3aa13e07..e2f432f36 100644 --- a/lib/plugins/authad/lang/fi/settings.php +++ b/lib/plugins/authad/lang/fi/settings.php @@ -1,6 +1,9 @@ */ +$lang['debug'] = 'Näytä lisää debug-koodia virheistä?'; +$lang['expirywarn'] = 'Montako päivää etukäteen varoitetaan salasanan vanhenemissta. 0 poistaa.'; diff --git a/lib/plugins/authldap/lang/fi/settings.php b/lib/plugins/authldap/lang/fi/settings.php index d3aa13e07..b15d8c676 100644 --- a/lib/plugins/authldap/lang/fi/settings.php +++ b/lib/plugins/authldap/lang/fi/settings.php @@ -1,6 +1,11 @@ */ +$lang['starttls'] = 'Käytä TLS yhteyttä'; +$lang['bindpw'] = 'Ylläolevan käyttäjän salasana'; +$lang['userscope'] = 'Etsi vain käyttäjiä'; +$lang['groupscope'] = 'Etsi vain ryhmiä'; diff --git a/lib/plugins/plugin/lang/fi/lang.php b/lib/plugins/plugin/lang/fi/lang.php index 923029a6f..f51746faa 100644 --- a/lib/plugins/plugin/lang/fi/lang.php +++ b/lib/plugins/plugin/lang/fi/lang.php @@ -1,7 +1,8 @@ * @author Teemu Mattila diff --git a/lib/plugins/popularity/lang/fi/lang.php b/lib/plugins/popularity/lang/fi/lang.php index d7c230742..ec0fc4071 100644 --- a/lib/plugins/popularity/lang/fi/lang.php +++ b/lib/plugins/popularity/lang/fi/lang.php @@ -1,7 +1,8 @@ * @author Teemu Mattila * @author Sami Olmari diff --git a/lib/plugins/revert/lang/fi/lang.php b/lib/plugins/revert/lang/fi/lang.php index fdf9bb81c..d14f527f9 100644 --- a/lib/plugins/revert/lang/fi/lang.php +++ b/lib/plugins/revert/lang/fi/lang.php @@ -1,7 +1,8 @@ * @author Teemu Mattila diff --git a/lib/plugins/usermanager/lang/fi/lang.php b/lib/plugins/usermanager/lang/fi/lang.php index 1db4bd7fb..de243133a 100644 --- a/lib/plugins/usermanager/lang/fi/lang.php +++ b/lib/plugins/usermanager/lang/fi/lang.php @@ -1,7 +1,8 @@ * @author Teemu Mattila -- cgit v1.2.3 From 94070874cc8d8702821161dbaa291e8b2d043ad3 Mon Sep 17 00:00:00 2001 From: Thomas Juberg Date: Sun, 24 Nov 2013 18:02:23 +0100 Subject: translation update --- lib/plugins/acl/lang/no/lang.php | 6 +++--- lib/plugins/plugin/lang/no/lang.php | 7 ++++--- lib/plugins/popularity/lang/no/lang.php | 7 ++++--- lib/plugins/revert/lang/no/lang.php | 8 +++++--- lib/plugins/usermanager/lang/no/lang.php | 7 ++++--- 5 files changed, 20 insertions(+), 15 deletions(-) (limited to 'lib') diff --git a/lib/plugins/acl/lang/no/lang.php b/lib/plugins/acl/lang/no/lang.php index 09d71937a..82cdd5eef 100644 --- a/lib/plugins/acl/lang/no/lang.php +++ b/lib/plugins/acl/lang/no/lang.php @@ -1,8 +1,8 @@ * @author Jorge Barrera Grandon * @author Thomas Nygreen @@ -10,7 +10,7 @@ * @author Torkill Bruland * @author Rune M. Andersen * @author Jakob Vad Nielsen (me@jakobnielsen.net) - * @author Kjell Tore Næsgaard + * @author Kjell Tore Næsgaard * @author Knut Staring * @author Lisa Ditlefsen * @author Erik Pedersen diff --git a/lib/plugins/plugin/lang/no/lang.php b/lib/plugins/plugin/lang/no/lang.php index 829d29387..2b890f972 100644 --- a/lib/plugins/plugin/lang/no/lang.php +++ b/lib/plugins/plugin/lang/no/lang.php @@ -1,13 +1,14 @@ * @author Arild Burud * @author Torkill Bruland * @author Rune M. Andersen * @author Jakob Vad Nielsen (me@jakobnielsen.net) - * @author Kjell Tore Næsgaard + * @author Kjell Tore Næsgaard * @author Knut Staring * @author Lisa Ditlefsen * @author Erik Pedersen diff --git a/lib/plugins/popularity/lang/no/lang.php b/lib/plugins/popularity/lang/no/lang.php index df38f6e0e..dfa99d824 100644 --- a/lib/plugins/popularity/lang/no/lang.php +++ b/lib/plugins/popularity/lang/no/lang.php @@ -1,10 +1,11 @@ * @author Jakob Vad Nielsen (me@jakobnielsen.net) - * @author Kjell Tore Næsgaard + * @author Kjell Tore Næsgaard * @author Knut Staring * @author Lisa Ditlefsen * @author Erik Pedersen diff --git a/lib/plugins/revert/lang/no/lang.php b/lib/plugins/revert/lang/no/lang.php index 299b12ea7..e7887a07e 100644 --- a/lib/plugins/revert/lang/no/lang.php +++ b/lib/plugins/revert/lang/no/lang.php @@ -1,13 +1,14 @@ * @author Arild Burud * @author Torkill Bruland * @author Rune M. Andersen * @author Jakob Vad Nielsen (me@jakobnielsen.net) - * @author Kjell Tore Næsgaard + * @author Kjell Tore Næsgaard * @author Knut Staring * @author Lisa Ditlefsen * @author Erik Pedersen @@ -15,6 +16,7 @@ * @author Rune Rasmussen syntaxerror.no@gmail.com * @author Jon Bøe * @author Egil Hansen + * @author Thomas Juberg */ $lang['menu'] = 'Tilbakestillingsbehandler'; $lang['filter'] = 'Søk etter søppelmeldinger'; diff --git a/lib/plugins/usermanager/lang/no/lang.php b/lib/plugins/usermanager/lang/no/lang.php index 7124e4811..83823b2b8 100644 --- a/lib/plugins/usermanager/lang/no/lang.php +++ b/lib/plugins/usermanager/lang/no/lang.php @@ -1,13 +1,14 @@ * @author Arild Burud * @author Torkill Bruland * @author Rune M. Andersen * @author Jakob Vad Nielsen (me@jakobnielsen.net) - * @author Kjell Tore Næsgaard + * @author Kjell Tore Næsgaard * @author Knut Staring * @author Lisa Ditlefsen * @author Erik Pedersen -- cgit v1.2.3 From 8d6ec7dd27c536bbaf7d7c0c4f5f99ae20860f3b Mon Sep 17 00:00:00 2001 From: Tomasz Bosak Date: Sun, 24 Nov 2013 18:03:51 +0100 Subject: translation update --- lib/plugins/acl/lang/pl/lang.php | 4 ++-- lib/plugins/authad/lang/pl/settings.php | 7 +++++-- lib/plugins/authldap/lang/pl/settings.php | 5 +++-- lib/plugins/authmysql/lang/pl/settings.php | 5 +++-- lib/plugins/plugin/lang/pl/lang.php | 4 ++-- lib/plugins/popularity/lang/pl/lang.php | 5 +++-- lib/plugins/revert/lang/pl/lang.php | 4 +++- lib/plugins/usermanager/lang/pl/lang.php | 5 +++-- 8 files changed, 24 insertions(+), 15 deletions(-) (limited to 'lib') diff --git a/lib/plugins/acl/lang/pl/lang.php b/lib/plugins/acl/lang/pl/lang.php index bef2d2615..42ce7fdaf 100644 --- a/lib/plugins/acl/lang/pl/lang.php +++ b/lib/plugins/acl/lang/pl/lang.php @@ -1,8 +1,8 @@ * @author Mariusz Kujawski * @author Maciej Kurczewski diff --git a/lib/plugins/authad/lang/pl/settings.php b/lib/plugins/authad/lang/pl/settings.php index 9113c0e51..ad051b0ac 100644 --- a/lib/plugins/authad/lang/pl/settings.php +++ b/lib/plugins/authad/lang/pl/settings.php @@ -1,9 +1,12 @@ */ $lang['account_suffix'] = 'Przyrostek twojej nazwy konta np. @my.domain.org'; +$lang['base_dn'] = 'Twoje bazowe DN. Na przykład: DC=my,DC=domain,DC=org'; $lang['admin_password'] = 'Hasło dla powyższego użytkownika.'; $lang['use_ssl'] = 'Użyć połączenie SSL? Jeśli tak to nie aktywuj TLS poniżej.'; $lang['use_tls'] = 'Użyć połączenie TLS? Jeśli tak to nie aktywuj SSL powyżej.'; diff --git a/lib/plugins/authldap/lang/pl/settings.php b/lib/plugins/authldap/lang/pl/settings.php index 44641f514..084521e0d 100644 --- a/lib/plugins/authldap/lang/pl/settings.php +++ b/lib/plugins/authldap/lang/pl/settings.php @@ -1,7 +1,8 @@ * @author Grzegorz Żur * @author Mariusz Kujawski diff --git a/lib/plugins/popularity/lang/pl/lang.php b/lib/plugins/popularity/lang/pl/lang.php index 76a9464bd..045574a69 100644 --- a/lib/plugins/popularity/lang/pl/lang.php +++ b/lib/plugins/popularity/lang/pl/lang.php @@ -1,7 +1,8 @@ * @author Mariusz Kujawski * @author Maciej Kurczewski diff --git a/lib/plugins/revert/lang/pl/lang.php b/lib/plugins/revert/lang/pl/lang.php index 462841292..d2d53b87e 100644 --- a/lib/plugins/revert/lang/pl/lang.php +++ b/lib/plugins/revert/lang/pl/lang.php @@ -1,6 +1,8 @@ * @author Mariusz Kujawski * @author Maciej Kurczewski diff --git a/lib/plugins/usermanager/lang/pl/lang.php b/lib/plugins/usermanager/lang/pl/lang.php index cfc0ba327..2e063d2bb 100644 --- a/lib/plugins/usermanager/lang/pl/lang.php +++ b/lib/plugins/usermanager/lang/pl/lang.php @@ -1,7 +1,8 @@ * @author Mariusz Kujawski * @author Maciej Kurczewski -- cgit v1.2.3 From eb1d4fdee478e7cd379c3dd4a89f81ad096155c6 Mon Sep 17 00:00:00 2001 From: Claudio Lanconelli Date: Mon, 25 Nov 2013 02:00:56 +0100 Subject: translation update --- lib/plugins/authldap/lang/it/settings.php | 4 ++++ lib/plugins/authmysql/lang/it/settings.php | 7 +++++-- lib/plugins/usermanager/lang/it/lang.php | 3 +++ 3 files changed, 12 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/plugins/authldap/lang/it/settings.php b/lib/plugins/authldap/lang/it/settings.php index 023159489..eba7cde6e 100644 --- a/lib/plugins/authldap/lang/it/settings.php +++ b/lib/plugins/authldap/lang/it/settings.php @@ -4,6 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Edmondo Di Tucci + * @author Claudio Lanconelli */ $lang['server'] = 'Il tuo server LDAP. Inserire o l\'hostname (localhost) oppure un URL completo (ldap://server.tld:389)'; $lang['port'] = 'Porta del server LDAP se non è stato fornito un URL completo più sopra.'; @@ -13,3 +14,6 @@ $lang['userfilter'] = 'Filtro per cercare l\'account utente LDAP. Eg. $lang['groupfilter'] = 'Filtro per cercare i gruppi LDAP. Eg. (&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))'; $lang['version'] = 'Versione protocollo da usare. Pu3'; $lang['starttls'] = 'Usare la connessione TSL?'; +$lang['userscope'] = 'Limita il contesto di ricerca per la ricerca degli utenti'; +$lang['groupscope'] = 'Limita il contesto di ricerca per la ricerca dei gruppi'; +$lang['debug'] = 'In caso di errori mostra ulteriori informazioni di debug'; diff --git a/lib/plugins/authmysql/lang/it/settings.php b/lib/plugins/authmysql/lang/it/settings.php index 10ae72f87..e493ec7e9 100644 --- a/lib/plugins/authmysql/lang/it/settings.php +++ b/lib/plugins/authmysql/lang/it/settings.php @@ -1,5 +1,8 @@ */ +$lang['debug'] = 'Mostra ulteriori informazioni di debug'; diff --git a/lib/plugins/usermanager/lang/it/lang.php b/lib/plugins/usermanager/lang/it/lang.php index dfacc6545..6c6789442 100644 --- a/lib/plugins/usermanager/lang/it/lang.php +++ b/lib/plugins/usermanager/lang/it/lang.php @@ -15,6 +15,7 @@ * @author Jacopo Corbetta * @author Matteo Pasotti * @author snarchio@gmail.com + * @author Claudio Lanconelli */ $lang['menu'] = 'Gestione Utenti'; $lang['noauth'] = '(autenticazione non disponibile)'; @@ -37,6 +38,8 @@ $lang['search'] = 'Cerca'; $lang['search_prompt'] = 'Esegui ricerca'; $lang['clear'] = 'Azzera filtro di ricerca'; $lang['filter'] = 'Filtro'; +$lang['export_all'] = 'Esporta tutti gli utenti (CSV)'; +$lang['export_filtered'] = 'Esporta elenco utenti filtrati (CSV)'; $lang['summary'] = 'Visualizzazione utenti %1$d-%2$d di %3$d trovati. %4$d utenti totali.'; $lang['nonefound'] = 'Nessun utente trovato. %d utenti totali.'; $lang['delete_ok'] = '%d utenti eliminati'; -- cgit v1.2.3 From 79c64e955bca6f4339fafa21543e532b11f341cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Brandt?= Date: Mon, 25 Nov 2013 08:31:02 +0100 Subject: translation update --- lib/plugins/usermanager/lang/fr/lang.php | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'lib') diff --git a/lib/plugins/usermanager/lang/fr/lang.php b/lib/plugins/usermanager/lang/fr/lang.php index 7c24ef900..dd0e64fc4 100644 --- a/lib/plugins/usermanager/lang/fr/lang.php +++ b/lib/plugins/usermanager/lang/fr/lang.php @@ -23,6 +23,7 @@ * @author Bruno Veilleux * @author Antoine Turmel * @author schplurtz + * @author Jérôme Brandt */ $lang['menu'] = 'Gestion des utilisateurs'; $lang['noauth'] = '(authentification de l\'utilisateur non disponible)'; @@ -70,6 +71,8 @@ $lang['add_ok'] = 'Utilisateur ajouté avec succès'; $lang['add_fail'] = 'Échec de l\'ajout de l\'utilisateur'; $lang['notify_ok'] = 'Courriel de notification expédié'; $lang['notify_fail'] = 'Échec de l\'expédition du courriel de notification'; +$lang['import_userlistcsv'] = 'Liste utilisateur (fichier CSV)'; +$lang['import_header'] = 'Erreurs d\'import les plus récentes'; $lang['import_success_count'] = 'Import d’utilisateurs : %d utilisateurs trouvés, %d utilisateurs importés avec succès.'; $lang['import_failure_count'] = 'Import d\'utilisateurs : %d ont échoué. Les erreurs sont listées ci-dessous.'; $lang['import_error_fields'] = 'Nombre de champs insuffisant, %d trouvé, 4 requis.'; @@ -80,3 +83,4 @@ $lang['import_error_upload'] = 'L\'import a échoué. Le fichier csv n\'a pas $lang['import_error_readfail'] = 'L\'import a échoué. Impossible de lire le fichier téléchargé.'; $lang['import_error_create'] = 'Impossible de créer l\'utilisateur'; $lang['import_notify_fail'] = 'Impossible d\'expédier une notification à l\'utilisateur importé %s, adresse %s.'; +$lang['import_downloadfailures'] = 'Télécharger les erreurs au format CSV pour correction'; -- cgit v1.2.3 From 356106d54d31e84089087217b4895a87900b3fe0 Mon Sep 17 00:00:00 2001 From: Boris Date: Mon, 25 Nov 2013 14:05:53 +0100 Subject: translation update --- lib/plugins/revert/lang/no/lang.php | 1 + 1 file changed, 1 insertion(+) (limited to 'lib') diff --git a/lib/plugins/revert/lang/no/lang.php b/lib/plugins/revert/lang/no/lang.php index e7887a07e..c58300dc0 100644 --- a/lib/plugins/revert/lang/no/lang.php +++ b/lib/plugins/revert/lang/no/lang.php @@ -17,6 +17,7 @@ * @author Jon Bøe * @author Egil Hansen * @author Thomas Juberg + * @author Boris */ $lang['menu'] = 'Tilbakestillingsbehandler'; $lang['filter'] = 'Søk etter søppelmeldinger'; -- cgit v1.2.3 From 53afdafe30f20e091aff7b0cf6bbb86aa7b50078 Mon Sep 17 00:00:00 2001 From: Garam Date: Mon, 25 Nov 2013 20:05:58 +0100 Subject: translation update --- lib/plugins/authmysql/lang/ko/settings.php | 9 +++++---- lib/plugins/authpgsql/lang/ko/settings.php | 9 +++++---- lib/plugins/usermanager/lang/ko/lang.php | 3 ++- 3 files changed, 12 insertions(+), 9 deletions(-) (limited to 'lib') diff --git a/lib/plugins/authmysql/lang/ko/settings.php b/lib/plugins/authmysql/lang/ko/settings.php index 2175c1eea..b3479ad41 100644 --- a/lib/plugins/authmysql/lang/ko/settings.php +++ b/lib/plugins/authmysql/lang/ko/settings.php @@ -4,6 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Myeongjin + * @author Garam */ $lang['server'] = 'MySQL 서버'; $lang['user'] = 'MySQL 사용자 이름'; @@ -17,10 +18,10 @@ $lang['checkPass'] = '비밀번호를 확인하기 위한 SQL 문'; $lang['getUserInfo'] = '사용자 정보를 가져오기 위한 SQL 문'; $lang['getGroups'] = '사용자의 그룹 구성원을 가져오기 위한 SQL 문'; $lang['getUsers'] = '모든 사용자를 나타낼 SQL 문'; -$lang['FilterLogin'] = '로그인 이름 별로 사용자를 필터하기 위한 SQL 조항'; -$lang['FilterName'] = '전체 이름 별로 사용자를 필터하기 위한 SQL 조항'; -$lang['FilterEmail'] = '이메일 주소 별로 사용자를 필터하기 위한 SQL 조항'; -$lang['FilterGroup'] = '그룹 구성원 별로 사용자를 필터하기 위한 SQL 조항'; +$lang['FilterLogin'] = '로그인 이름별로 사용자를 필터하기 위한 SQL 조항'; +$lang['FilterName'] = '전체 이름별로 사용자를 필터하기 위한 SQL 조항'; +$lang['FilterEmail'] = '이메일 주소별로 사용자를 필터하기 위한 SQL 조항'; +$lang['FilterGroup'] = '그룹 구성원별로 사용자를 필터하기 위한 SQL 조항'; $lang['SortOrder'] = '사용자를 정렬할 SQL 조항'; $lang['addUser'] = '새 사용자를 추가할 SQL 문'; $lang['addGroup'] = '새 그룹을 추가할 SQL 문'; diff --git a/lib/plugins/authpgsql/lang/ko/settings.php b/lib/plugins/authpgsql/lang/ko/settings.php index bdd8c2718..bdf38b3c7 100644 --- a/lib/plugins/authpgsql/lang/ko/settings.php +++ b/lib/plugins/authpgsql/lang/ko/settings.php @@ -4,6 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Myeongjin + * @author Garam */ $lang['server'] = 'PostgreSQL 서버'; $lang['port'] = 'PostgreSQL 서버의 포트'; @@ -16,10 +17,10 @@ $lang['checkPass'] = '비밀번호를 확인하기 위한 SQL 문'; $lang['getUserInfo'] = '사용자 정보를 가져오기 위한 SQL 문'; $lang['getGroups'] = '사용자의 그룹 구성원을 가져오기 위한 SQL 문'; $lang['getUsers'] = '모든 사용자를 나타낼 SQL 문'; -$lang['FilterLogin'] = '로그인 이름 별로 사용자를 필터하기 위한 SQL 조항'; -$lang['FilterName'] = '전체 이름 별로 사용자를 필터하기 위한 SQL 조항'; -$lang['FilterEmail'] = '이메일 주소 별로 사용자를 필터하기 위한 SQL 조항'; -$lang['FilterGroup'] = '그룹 구성원 별로 사용자를 필터하기 위한 SQL 조항'; +$lang['FilterLogin'] = '로그인 이름별로 사용자를 필터하기 위한 SQL 조항'; +$lang['FilterName'] = '전체 이름별로 사용자를 필터하기 위한 SQL 조항'; +$lang['FilterEmail'] = '이메일 주소별로 사용자를 필터하기 위한 SQL 조항'; +$lang['FilterGroup'] = '그룹 구성원별로 사용자를 필터하기 위한 SQL 조항'; $lang['SortOrder'] = '사용자를 정렬할 SQL 조항'; $lang['addUser'] = '새 사용자를 추가할 SQL 문'; $lang['addGroup'] = '새 그룹을 추가할 SQL 문'; diff --git a/lib/plugins/usermanager/lang/ko/lang.php b/lib/plugins/usermanager/lang/ko/lang.php index a01cbbdba..3656a1698 100644 --- a/lib/plugins/usermanager/lang/ko/lang.php +++ b/lib/plugins/usermanager/lang/ko/lang.php @@ -10,6 +10,7 @@ * @author erial2@gmail.com * @author Myeongjin * @author Gerrit Uitslag + * @author Garam */ $lang['menu'] = '사용자 관리자'; $lang['noauth'] = '(사용자 인증이 불가능합니다)'; @@ -33,7 +34,7 @@ $lang['search_prompt'] = '검색 수행'; $lang['clear'] = '검색 필터 재설정'; $lang['filter'] = '필터'; $lang['export_all'] = '모든 사용자 목록 내보내기 (CSV)'; -$lang['export_filtered'] = '필터된 사용자 목록 내보내기 (CSV)'; +$lang['export_filtered'] = '필터된 사용자 목록 내보내기(CSV)'; $lang['import'] = '새 사용자 목록 가져오기'; $lang['line'] = '줄 번호'; $lang['error'] = '오류 메시지'; -- cgit v1.2.3 From ffe35fe919de6c9f52316dd272e6e22c4bde8d81 Mon Sep 17 00:00:00 2001 From: Garam Date: Mon, 25 Nov 2013 20:50:59 +0100 Subject: translation update --- lib/plugins/acl/lang/ko/lang.php | 5 +++-- lib/plugins/authad/lang/ko/settings.php | 3 ++- lib/plugins/authpgsql/lang/ko/settings.php | 9 +++++---- lib/plugins/plugin/lang/ko/lang.php | 15 ++++++++------- lib/plugins/popularity/lang/ko/lang.php | 3 ++- lib/plugins/usermanager/lang/ko/lang.php | 11 ++++++----- 6 files changed, 26 insertions(+), 20 deletions(-) (limited to 'lib') diff --git a/lib/plugins/acl/lang/ko/lang.php b/lib/plugins/acl/lang/ko/lang.php index 2f1ba2311..37cec307c 100644 --- a/lib/plugins/acl/lang/ko/lang.php +++ b/lib/plugins/acl/lang/ko/lang.php @@ -12,6 +12,7 @@ * @author Seung-Chul Yoo * @author erial2@gmail.com * @author Myeongjin + * @author Garam */ $lang['admin_acl'] = '접근 제어 목록 관리'; $lang['acl_group'] = '그룹'; @@ -27,7 +28,7 @@ $lang['p_group_ns'] = '%s 그룹 구성원은 $lang['p_choose_id'] = '%s 문서 접근 권한을 보거나 바꾸려면 사용자그룹을 위 양식에 입력하세요.'; $lang['p_choose_ns'] = '%s 이름공간 접근 권한을 보거나 바꾸려면 사용자그룹을 위 양식에 입력하세요.'; $lang['p_inherited'] = '참고: 권한이 명시적으로 설정되지 않았으므로 다른 그룹이나 상위 이름공간으로부터 가져왔습니다.'; -$lang['p_isadmin'] = '참고: 슈퍼유저로 설정되어 있으므로 선택된 그룹이나 사용자는 언제나 모든 접근 권한을 가집니다.'; +$lang['p_isadmin'] = '참고: 슈퍼 사용자로 설정되어 있으므로 선택된 그룹이나 사용자는 언제나 모든 접근 권한을 가집니다.'; $lang['p_include'] = '더 높은 접근 권한은 하위를 포함합니다. 문서가 아닌 이름공간에는 만들기, 올리기, 삭제 권한만 적용됩니다.'; $lang['current'] = '현재 ACL 규칙'; $lang['where'] = '문서/이름공간'; @@ -38,6 +39,6 @@ $lang['acl_perm1'] = '읽기'; $lang['acl_perm2'] = '편집'; $lang['acl_perm4'] = '만들기'; $lang['acl_perm8'] = '올리기'; -$lang['acl_perm16'] = '삭제'; +$lang['acl_perm16'] = '지우기'; $lang['acl_new'] = '새 항목 추가'; $lang['acl_mod'] = '항목 수정'; diff --git a/lib/plugins/authad/lang/ko/settings.php b/lib/plugins/authad/lang/ko/settings.php index 053823508..6c00950bf 100644 --- a/lib/plugins/authad/lang/ko/settings.php +++ b/lib/plugins/authad/lang/ko/settings.php @@ -4,6 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Myeongjin + * @author Garam */ $lang['account_suffix'] = '계정 접미어. 예를 들어 @my.domain.org'; $lang['base_dn'] = '기본 DN. 예를 들어 DC=my,DC=domain,DC=org'; @@ -12,7 +13,7 @@ $lang['admin_username'] = '다른 모든 사용자의 데이터에 접근 $lang['admin_password'] = '위 사용자의 비밀번호.'; $lang['sso'] = 'Kerberos나 NTLM을 통해 Single-Sign-On을 사용해야 합니까?'; $lang['sso_charset'] = '당신의 웹서버의 문자집합은 Kerberos나 NTLM 사용자 이름으로 전달됩니다. UTF-8이나 라린-1이 비어 있습니다. icov 확장 기능이 필요합니다.'; -$lang['real_primarygroup'] = '실제 기본 그룹은 "도메인 사용자"를 가정하는 대신 해결될 것입니다 (느림)'; +$lang['real_primarygroup'] = '실제 기본 그룹은 "도메인 사용자"를 가정하는 대신 해결될 것입니다(느림)'; $lang['use_ssl'] = 'SSL 연결을 사용합니까? 사용한다면 아래 TLS을 활성화하지 마세요.'; $lang['use_tls'] = 'TLS 연결을 사용합니까? 사용한다면 위 SSL을 활성화하지 마세요.'; $lang['debug'] = '오류에 대한 추가적인 디버그 정보를 보이겠습니까?'; diff --git a/lib/plugins/authpgsql/lang/ko/settings.php b/lib/plugins/authpgsql/lang/ko/settings.php index bdd8c2718..bdf38b3c7 100644 --- a/lib/plugins/authpgsql/lang/ko/settings.php +++ b/lib/plugins/authpgsql/lang/ko/settings.php @@ -4,6 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Myeongjin + * @author Garam */ $lang['server'] = 'PostgreSQL 서버'; $lang['port'] = 'PostgreSQL 서버의 포트'; @@ -16,10 +17,10 @@ $lang['checkPass'] = '비밀번호를 확인하기 위한 SQL 문'; $lang['getUserInfo'] = '사용자 정보를 가져오기 위한 SQL 문'; $lang['getGroups'] = '사용자의 그룹 구성원을 가져오기 위한 SQL 문'; $lang['getUsers'] = '모든 사용자를 나타낼 SQL 문'; -$lang['FilterLogin'] = '로그인 이름 별로 사용자를 필터하기 위한 SQL 조항'; -$lang['FilterName'] = '전체 이름 별로 사용자를 필터하기 위한 SQL 조항'; -$lang['FilterEmail'] = '이메일 주소 별로 사용자를 필터하기 위한 SQL 조항'; -$lang['FilterGroup'] = '그룹 구성원 별로 사용자를 필터하기 위한 SQL 조항'; +$lang['FilterLogin'] = '로그인 이름별로 사용자를 필터하기 위한 SQL 조항'; +$lang['FilterName'] = '전체 이름별로 사용자를 필터하기 위한 SQL 조항'; +$lang['FilterEmail'] = '이메일 주소별로 사용자를 필터하기 위한 SQL 조항'; +$lang['FilterGroup'] = '그룹 구성원별로 사용자를 필터하기 위한 SQL 조항'; $lang['SortOrder'] = '사용자를 정렬할 SQL 조항'; $lang['addUser'] = '새 사용자를 추가할 SQL 문'; $lang['addGroup'] = '새 그룹을 추가할 SQL 문'; diff --git a/lib/plugins/plugin/lang/ko/lang.php b/lib/plugins/plugin/lang/ko/lang.php index 6ef9cd69a..8d2006672 100644 --- a/lib/plugins/plugin/lang/ko/lang.php +++ b/lib/plugins/plugin/lang/ko/lang.php @@ -9,6 +9,7 @@ * @author Seung-Chul Yoo * @author erial2@gmail.com * @author Myeongjin + * @author Garam */ $lang['menu'] = '플러그인 관리'; $lang['download'] = '새 플러그인을 다운로드하고 설치'; @@ -33,16 +34,16 @@ $lang['deleted'] = '%s 플러그인이 삭제되었습니다.'; $lang['downloading'] = '다운로드 중 ...'; $lang['downloaded'] = '%s 플러그인이 성공적으로 설치되었습니다'; $lang['downloads'] = '다음 플러그인이 성공적으로 설치되었습니다:'; -$lang['download_none'] = '플러그인이 없거나 다운로드 또는 설치 중에 알 수 없는 문제가 발생했습니다.'; +$lang['download_none'] = '플러그인이 없거나 다운로드 또는 설치 중에 알 수 없는 문제가 발생하였습니다.'; $lang['plugin'] = '플러그인:'; $lang['components'] = '구성 요소'; $lang['noinfo'] = '이 플러그인은 어떤 정보도 없습니다. 잘못된 플러그인일 수 있습니다.'; -$lang['name'] = '이름:'; -$lang['date'] = '날짜:'; -$lang['type'] = '종류:'; -$lang['desc'] = '설명:'; -$lang['author'] = '저자:'; -$lang['www'] = '웹:'; +$lang['name'] = '이름: '; +$lang['date'] = '날짜: '; +$lang['type'] = '종류: '; +$lang['desc'] = '설명: '; +$lang['author'] = '저자: '; +$lang['www'] = '웹: '; $lang['error'] = '알 수 없는 문제가 발생했습니다.'; $lang['error_download'] = '플러그인 파일을 다운로드 할 수 없습니다: %s'; $lang['error_badurl'] = '잘못된 URL 같습니다 - URL에서 파일 이름을 알 수 없습니다'; diff --git a/lib/plugins/popularity/lang/ko/lang.php b/lib/plugins/popularity/lang/ko/lang.php index f52e0007a..088ef1dc9 100644 --- a/lib/plugins/popularity/lang/ko/lang.php +++ b/lib/plugins/popularity/lang/ko/lang.php @@ -9,8 +9,9 @@ * @author Seung-Chul Yoo * @author erial2@gmail.com * @author Myeongjin + * @author Garam */ -$lang['name'] = '인기도 조사 (불러오는 데 시간이 걸릴 수 있습니다)'; +$lang['name'] = '인기도 조사(불러오는 데 시간이 걸릴 수 있습니다)'; $lang['submit'] = '자료 보내기'; $lang['autosubmit'] = '자료를 자동으로 한 달에 한 번씩 보내기'; $lang['submissionFailed'] = '다음과 같은 이유로 자료 보내기에 실패했습니다:'; diff --git a/lib/plugins/usermanager/lang/ko/lang.php b/lib/plugins/usermanager/lang/ko/lang.php index a01cbbdba..7c629f74f 100644 --- a/lib/plugins/usermanager/lang/ko/lang.php +++ b/lib/plugins/usermanager/lang/ko/lang.php @@ -10,6 +10,7 @@ * @author erial2@gmail.com * @author Myeongjin * @author Gerrit Uitslag + * @author Garam */ $lang['menu'] = '사용자 관리자'; $lang['noauth'] = '(사용자 인증이 불가능합니다)'; @@ -32,8 +33,8 @@ $lang['search'] = '검색'; $lang['search_prompt'] = '검색 수행'; $lang['clear'] = '검색 필터 재설정'; $lang['filter'] = '필터'; -$lang['export_all'] = '모든 사용자 목록 내보내기 (CSV)'; -$lang['export_filtered'] = '필터된 사용자 목록 내보내기 (CSV)'; +$lang['export_all'] = '모든 사용자 목록 내보내기(CSV)'; +$lang['export_filtered'] = '필터된 사용자 목록 내보내기(CSV)'; $lang['import'] = '새 사용자 목록 가져오기'; $lang['line'] = '줄 번호'; $lang['error'] = '오류 메시지'; @@ -52,12 +53,12 @@ $lang['edit_usermissing'] = '선택된 사용자를 찾을 수 없습니다 $lang['user_notify'] = '사용자에게 알림'; $lang['note_notify'] = '사용자에게 새로운 비밀번호를 준 경우에만 알림 이메일이 보내집니다.'; $lang['note_group'] = '새로운 사용자는 어떤 그룹도 설정하지 않은 경우에 기본 그룹(%s)에 추가됩니다.'; -$lang['note_pass'] = '사용자 통지가 지정되어 있을 때 필드에 아무 값도 입력하지 않으면 비밀번호가 자동으로 만들어집니다.'; +$lang['note_pass'] = '사용자 알림이 지정되어 있을 때 필드에 아무 값도 입력하지 않으면 비밀번호가 자동으로 만들어집니다.'; $lang['add_ok'] = '사용자를 성공적으로 추가했습니다'; $lang['add_fail'] = '사용자 추가를 실패했습니다'; $lang['notify_ok'] = '알림 이메일을 성공적으로 보냈습니다'; $lang['notify_fail'] = '알림 이메일을 보낼 수 없습니다'; -$lang['import_userlistcsv'] = '사용자 목록 파일 (CSV):'; +$lang['import_userlistcsv'] = '사용자 목록 파일(CSV):'; $lang['import_header'] = '가장 최근 가져오기 - 실패'; $lang['import_success_count'] = '사용자 가져오기: 사용자 %d명을 찾았고, %d명을 성공적으로 가져왔습니다.'; $lang['import_failure_count'] = '사용자 가져오기: %d명을 가져오지 못했습니다. 실패는 아래에 나타나 있습니다.'; @@ -68,5 +69,5 @@ $lang['import_error_badmail'] = '잘못된 이메일 주소'; $lang['import_error_upload'] = '가져오기를 실패했습니다. csv 파일을 올릴 수 없거나 비어 있습니다.'; $lang['import_error_readfail'] = '가져오기를 실패했습니다. 올린 파일을 읽을 수 없습니다.'; $lang['import_error_create'] = '사용자를 만들 수 없습니다.'; -$lang['import_notify_fail'] = '알림 메시지를 가져온 %s (이메일: %s ) 사용자에게 보낼 수 없습니다.'; +$lang['import_notify_fail'] = '알림 메시지를 가져온 %s(이메일: %s) 사용자에게 보낼 수 없습니다.'; $lang['import_downloadfailures'] = '교정을 위한 CSV로 다운로드 실패'; -- cgit v1.2.3 From 43e700149db19863b559e0eebc44132c611ef08d Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Tue, 26 Nov 2013 12:19:18 +0100 Subject: fix numeric expression read in plugin default conf FS#2888 --- lib/plugins/config/settings/config.class.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/plugins/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php index a5a11cda1..ab76ddc9e 100644 --- a/lib/plugins/config/settings/config.class.php +++ b/lib/plugins/config/settings/config.class.php @@ -330,8 +330,7 @@ if (!class_exists('configuration')) { foreach ($this->get_plugin_list() as $plugin) { $plugin_dir = plugin_directory($plugin); if (@file_exists(DOKU_PLUGIN.$plugin_dir.$file)){ - $conf = array(); - @include(DOKU_PLUGIN.$plugin_dir.$file); + $conf = $this->_read_config(DOKU_PLUGIN.$plugin_dir.$file); foreach ($conf as $key => $value){ $default['plugin'.CM_KEYMARKER.$plugin.CM_KEYMARKER.$key] = $value; } -- cgit v1.2.3 From 8c58242fcc4654752ab53c46ec31d1bc4a622140 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Tue, 26 Nov 2013 12:47:40 +0100 Subject: FS#2888 fix for templates --- lib/plugins/config/settings/config.class.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/plugins/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php index ab76ddc9e..05f8470f7 100644 --- a/lib/plugins/config/settings/config.class.php +++ b/lib/plugins/config/settings/config.class.php @@ -339,8 +339,7 @@ if (!class_exists('configuration')) { // the same for the active template if (@file_exists(tpl_incdir().$file)){ - $conf = array(); - @include(tpl_incdir().$file); + $conf = $this->_read_config(tpl_incdir().$file); foreach ($conf as $key => $value){ $default['tpl'.CM_KEYMARKER.$tpl.CM_KEYMARKER.$key] = $value; } -- cgit v1.2.3 From 1e2c59485b8396275abde11d047a4a42a4e4e335 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Tue, 26 Nov 2013 19:39:05 +0000 Subject: improved comments for code associated with PR#407 & PR#408 --- lib/exe/css.php | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/exe/css.php b/lib/exe/css.php index c2540cc03..c96dedd37 100644 --- a/lib/exe/css.php +++ b/lib/exe/css.php @@ -312,6 +312,11 @@ function css_styleini($tpl) { ); } +/** + * Amend paths used in replacement relative urls, refer FS#2879 + * + * @author Chris Smith + */ function css_fixreplacementurls($replacements, $location) { foreach($replacements as $key => $value) { $replacements[$key] = preg_replace('#(url\([ \'"]*)(?!/|data:|http://|https://| |\'|")#','\\1'.$location,$value); @@ -400,16 +405,29 @@ function css_loadfile($file,$location=''){ return $css_file->load($location); } +/** + * Helper class to abstract loading of css/less files + * + * @author Chris Smith + */ class DokuCssFile { - protected $filepath; - protected $location; + protected $filepath; // file system path to the CSS/Less file + protected $location; // base url location of the CSS/Less file private $relative_path = null; public function __construct($file) { $this->filepath = $file; } + /** + * Load the contents of the css/less file and adjust any relative paths/urls (relative to this file) to be + * relative to the dokuwiki root: the web root (DOKU_BASE) for most files; the file system root (DOKU_INC) + * for less files. + * + * @param string $location base url for this file + * @return string the CSS/Less contents of the file + */ public function load($location='') { if (!@file_exists($this->filepath)) return ''; @@ -424,10 +442,17 @@ class DokuCssFile { return $css; } + /** + * Get the relative file system path of this file, relative to dokuwiki's root folder, DOKU_INC + * + * @return string relative file system path + */ private function getRelativePath(){ if (is_null($this->relative_path)) { $basedir = array(DOKU_INC); + + // during testing, files may be found relative to a second base dir, TMP_DIR if (defined('DOKU_UNITTEST')) { $basedir[] = realpath(TMP_DIR); } @@ -439,16 +464,26 @@ class DokuCssFile { return $this->relative_path; } + /** + * preg_replace callback to adjust relative urls from relative to this file to relative + * to the appropriate dokuwiki root location as described in the code + * + * @param array see http://php.net/preg_replace_callback + * @return string see http://php.net/preg_replace_callback + */ public function replacements($match) { + // not a relative url? - no adjustment required if (preg_match('#^(/|data:|https?://)#',$match[3])) { return $match[0]; } + // a less file import? - requires a file system location else if (substr($match[3],-5) == '.less') { if ($match[3]{0} != '/') { $match[3] = $this->getRelativePath() . '/' . $match[3]; } } + // everything else requires a url adjustment else { $match[3] = $this->location . $match[3]; } -- cgit v1.2.3 From 32087ed0672a7921af76f92eb2e8d3b6e3a166de Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Thu, 28 Nov 2013 00:01:35 +0000 Subject: Bugfix: correct variable name to --- lib/plugins/usermanager/admin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index c4d71cb22..f2ee95b38 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -830,7 +830,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { if (!$this->_auth->canDo('addUser')) return false; // check file uploaded ok. - if (empty($_FILES['import']['size']) || !empty($FILES['import']['error']) && is_uploaded_file($FILES['import']['tmp_name'])) { + if (empty($_FILES['import']['size']) || !empty($_FILES['import']['error']) && is_uploaded_file($_FILES['import']['tmp_name'])) { msg($this->lang['import_error_upload'],-1); return false; } -- cgit v1.2.3 From e73725bac6a3c60835092d4e2253730b7d683263 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Thu, 28 Nov 2013 00:03:48 +0000 Subject: IMPROVEMENT: remove generated password from import failure data --- lib/plugins/usermanager/admin.php | 1 + 1 file changed, 1 insertion(+) (limited to 'lib') diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index f2ee95b38..95524c56a 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -867,6 +867,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $import_success_count++; } else { $import_fail_count++; + array_splice($raw, 1, 1); // remove the spliced in password $this->_import_failures[$line] = array('error' => $error, 'user' => $raw, 'orig' => $csv); } } -- cgit v1.2.3 From 5ba64050580b6936c8b364e3a288e7c875263c88 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Thu, 28 Nov 2013 00:04:20 +0000 Subject: MINOR: comment spelling corrections --- lib/plugins/usermanager/admin.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index 95524c56a..2c566723a 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -822,7 +822,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * * csv file should have 4 columns, user_id, full name, email, groups (comma separated) * - * @return bool whether succesful + * @return bool whether successful */ protected function _import() { // check we are allowed to add users @@ -941,7 +941,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * * @param array $user data of user * @param string &$error reference catched error message - * @return bool whether succesful + * @return bool whether successful */ protected function _addImportUser($user, & $error){ if (!$this->_auth->triggerUserMod('create', $user)) { -- cgit v1.2.3 From b2c01466e61a7800306d8705eada83563ca90a55 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Thu, 28 Nov 2013 00:08:52 +0000 Subject: Improvements to facilitate unit testing - don't die at end of _export() - internal classs wrapper method for is_uploaded_file() to allow overriding for use under cli & without having to upload a file --- lib/plugins/usermanager/admin.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index 2c566723a..782443ee1 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -814,6 +814,8 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { fputcsv($fd, $line); } fclose($fd); + if (defined('DOKU_UNITTEST')){ return; } + die; } @@ -830,7 +832,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { if (!$this->_auth->canDo('addUser')) return false; // check file uploaded ok. - if (empty($_FILES['import']['size']) || !empty($_FILES['import']['error']) && is_uploaded_file($_FILES['import']['tmp_name'])) { + if (empty($_FILES['import']['size']) || !empty($_FILES['import']['error']) && $this->_isUploadedFile($_FILES['import']['tmp_name'])) { msg($this->lang['import_error_upload'],-1); return false; } @@ -974,4 +976,11 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { die; } + /** + * wrapper for is_uploaded_file to facilitate overriding by test suite + */ + protected function _isUploadedFile($file) { + return is_uploaded_file($file); + } + } -- cgit v1.2.3 From ed6bf75f5a78a346e3c3192b2bab79450e206598 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Thu, 28 Nov 2013 00:12:38 +0000 Subject: Add unit tests for usermanager import & export functions --- lib/plugins/usermanager/_test/csv_export.test.php | 59 ++++++++ lib/plugins/usermanager/_test/csv_import.test.php | 155 ++++++++++++++++++++++ lib/plugins/usermanager/_test/mocks.class.php | 43 ++++++ 3 files changed, 257 insertions(+) create mode 100644 lib/plugins/usermanager/_test/csv_export.test.php create mode 100644 lib/plugins/usermanager/_test/csv_import.test.php create mode 100644 lib/plugins/usermanager/_test/mocks.class.php (limited to 'lib') diff --git a/lib/plugins/usermanager/_test/csv_export.test.php b/lib/plugins/usermanager/_test/csv_export.test.php new file mode 100644 index 000000000..d0942a861 --- /dev/null +++ b/lib/plugins/usermanager/_test/csv_export.test.php @@ -0,0 +1,59 @@ +usermanager = new admin_mock_usermanager(); + parent::setUp(); + } + + /** + * based on standard test user/conf setup + * + * users per _test/conf/users.auth.php + * expected to be: testuser:179ad45c6ce2cb97cf1029e212046e81:Arthur Dent:arthur@example.com + */ + function test_export() { + $expected = 'User,"Real Name",Email,Groups +testuser,"Arthur Dent",arthur@example.com, +'; + $this->assertEquals($expected, $this->usermanager->tryExport()); + } + + /** + * when configured to use a different locale, the column headings in the first line of the + * exported csv data should reflect the langauge strings of that locale + */ + function test_export_withlocale(){ + global $conf; + $old_conf = $conf; + $conf['lang'] = 'de'; + + $this->usermanager->localised = false; + $this->usermanager->setupLocale(); + + $conf = $old_conf; + + $expected = 'Benutzername,"Voller Name",E-Mail,Gruppen +testuser,"Arthur Dent",arthur@example.com, +'; + $this->assertEquals($expected, $this->usermanager->tryExport()); + } + + function test_export_withfilter(){ + $this->markTestIncomplete( + 'This test has not been implemented yet.' + ); + } + +} diff --git a/lib/plugins/usermanager/_test/csv_import.test.php b/lib/plugins/usermanager/_test/csv_import.test.php new file mode 100644 index 000000000..5deb201ba --- /dev/null +++ b/lib/plugins/usermanager/_test/csv_import.test.php @@ -0,0 +1,155 @@ +importfile = tempnam(TMP_DIR, 'csv'); + + $this->old_files = $_FILES; + $_FILES = array( + 'import' => array( + 'name' => 'import.csv', + 'tmp_name' => $this->importfile, + 'type' => 'text/plain', + 'size' => 1, + 'error' => 0, + ), + ); + + $this->usermanager = new admin_mock_usermanager(); + parent::setUp(); + } + + function tearDown() { + $_FILES = $this->old_files; + parent::tearDown(); + } + + function doImportTest($importCsv, $expectedResult, $expectedNewUsers, $expectedFailures) { + global $auth; + $before_users = $auth->retrieveUsers(); + + io_savefile($this->importfile, $importCsv); + $result = $this->usermanager->tryImport(); + + $after_users = $auth->retrieveUsers(); + $import_count = count($after_users) - count($before_users); + $new_users = array_diff_key($after_users, $before_users); + $diff_users = array_diff_assoc($after_users, $before_users); + + $expectedCount = count($expectedNewUsers); + + $this->assertEquals($expectedResult, $result); // import result as expected + $this->assertEquals($expectedCount, $import_count); // number of new users matches expected number imported + $this->assertEquals($expectedNewUsers, $this->stripPasswords($new_users)); // new user data matches imported user data + $this->assertEquals($expectedCount, $this->countPasswords($new_users)); // new users have a password + $this->assertEquals($expectedCount, $this->usermanager->mock_email_notifications_sent); // new users notified of their passwords + $this->assertEquals($new_users, $diff_users); // no other users were harmed in the testing of this import + $this->assertEquals($expectedFailures, $this->usermanager->getImportFailures()); // failures as expected + } + + function test_import() { + $csv = 'User,"Real Name",Email,Groups +importuser,"Ford Prefect",ford@example.com,user +'; + $expected = array( + 'importuser' => array( + 'name' => 'Ford Prefect', + 'mail' => 'ford@example.com', + 'grps' => array('user'), + ), + ); + + $this->doImportTest($csv, true, $expected, array()); + } + + function test_importExisting() { + $csv = 'User,"Real Name",Email,Groups +importuser,"Ford Prefect",ford@example.com,user +'; + $failures = array( + '2' => array( + 'error' => $this->usermanager->lang['import_error_create'], + 'user' => array( + 'importuser', + 'Ford Prefect', + 'ford@example.com', + 'user', + ), + 'orig' => 'importuser,"Ford Prefect",ford@example.com,user'.NL, + ), + ); + + $this->doImportTest($csv, true, array(), $failures); + } + + function test_importUtf8() { + $csv = 'User,"Real Name",Email,Groups +importutf8,"Førd Prefect",ford@example.com,user +'; + $expected = array( + 'importutf8' => array( + 'name' => 'Førd Prefect', + 'mail' => 'ford@example.com', + 'grps' => array('user'), + ), + ); + + $this->doImportTest($csv, true, $expected, array()); + } + + /** + * utf8: u+00F8 (ø) <=> 0xF8 :iso-8859-1 + */ + function test_importIso8859() { + $csv = 'User,"Real Name",Email,Groups +importiso8859,"F'.chr(0xF8).'rd Prefect",ford@example.com,user +'; + $expected = array( + 'importiso8859' => array( + 'name' => 'Førd Prefect', + 'mail' => 'ford@example.com', + 'grps' => array('user'), + ), + ); + + $this->doImportTest($csv, true, $expected, array()); + } + + private function stripPasswords($array){ + foreach ($array as $user => $data) { + unset($array[$user]['pass']); + } + return $array; + } + + private function countPasswords($array){ + $count = 0; + foreach ($array as $user => $data) { + if (!empty($data['pass'])) { + $count++; + } + } + return $count; + } + +} + diff --git a/lib/plugins/usermanager/_test/mocks.class.php b/lib/plugins/usermanager/_test/mocks.class.php new file mode 100644 index 000000000..edf5438b2 --- /dev/null +++ b/lib/plugins/usermanager/_test/mocks.class.php @@ -0,0 +1,43 @@ +_import_failures; + } + + public function tryExport() { + ob_start(); + $this->_export(); + return ob_get_clean(); + } + + public function tryImport() { + return $this->_import(); + } + + // no need to send email notifications (mostly) + protected function _notifyUser($user, $password, $status_alert=true) { + if ($this->mock_email_notifications) { + $this->mock_email_notifications_sent++; + return true; + } else { + return parent::_notifyUser($user, $password, $status_alert); + } + } + + protected function _isUploadedFile($file) { + return file_exists($file); + } +} + -- cgit v1.2.3 From 211955bef84071b025e83bdeeefe496a5002fdd8 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Thu, 28 Nov 2013 00:49:31 +0000 Subject: test import against auth plugin which doesn't allow adding users --- lib/plugins/usermanager/_test/csv_import.test.php | 18 +++++++++++++++++- lib/plugins/usermanager/_test/mocks.class.php | 7 +++++++ 2 files changed, 24 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/plugins/usermanager/_test/csv_import.test.php b/lib/plugins/usermanager/_test/csv_import.test.php index 5deb201ba..1f0ee7436 100644 --- a/lib/plugins/usermanager/_test/csv_import.test.php +++ b/lib/plugins/usermanager/_test/csv_import.test.php @@ -47,7 +47,7 @@ class plugin_usermanager_csv_import_test extends DokuWikiTest { global $auth; $before_users = $auth->retrieveUsers(); - io_savefile($this->importfile, $importCsv); + io_savefile($this->importfile, $importCsv); $result = $this->usermanager->tryImport(); $after_users = $auth->retrieveUsers(); @@ -66,6 +66,22 @@ class plugin_usermanager_csv_import_test extends DokuWikiTest { $this->assertEquals($expectedFailures, $this->usermanager->getImportFailures()); // failures as expected } + function test_cantImport(){ + global $auth; + $oldauth = $auth; + + $auth = new auth_mock_authplain(); + $auth->setCanDo('addUser', false); + + $csv = 'User,"Real Name",Email,Groups +importuser,"Ford Prefect",ford@example.com,user +'; + + $this->doImportTest($csv, false, array(), array()); + + $auth = $oldauth; + } + function test_import() { $csv = 'User,"Real Name",Email,Groups importuser,"Ford Prefect",ford@example.com,user diff --git a/lib/plugins/usermanager/_test/mocks.class.php b/lib/plugins/usermanager/_test/mocks.class.php index edf5438b2..f3cc72c27 100644 --- a/lib/plugins/usermanager/_test/mocks.class.php +++ b/lib/plugins/usermanager/_test/mocks.class.php @@ -41,3 +41,10 @@ class admin_mock_usermanager extends admin_plugin_usermanager { } } +class auth_mock_authplain extends auth_plugin_authplain { + + public function setCanDo($op, $canDo) { + $this->cando[$op] = $canDo; + } + +} -- cgit v1.2.3 From 0d1370783bb8cfbdc2e1e347edb743fd0de590a2 Mon Sep 17 00:00:00 2001 From: chris taklis Date: Sat, 30 Nov 2013 19:05:55 +0100 Subject: translation update --- lib/plugins/authad/lang/el/settings.php | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 lib/plugins/authad/lang/el/settings.php (limited to 'lib') diff --git a/lib/plugins/authad/lang/el/settings.php b/lib/plugins/authad/lang/el/settings.php new file mode 100644 index 000000000..9bf23ea1c --- /dev/null +++ b/lib/plugins/authad/lang/el/settings.php @@ -0,0 +1,8 @@ + + */ +$lang['admin_password'] = 'Ο κωδικός του παραπάνω χρήστη.'; -- cgit v1.2.3 From d2a843c310418267d3baedd63547d75917da2efe Mon Sep 17 00:00:00 2001 From: Juliano Marconi Lanigra Date: Sat, 30 Nov 2013 23:10:58 +0100 Subject: translation update --- lib/plugins/authad/lang/pt-br/settings.php | 2 ++ lib/plugins/usermanager/lang/pt-br/lang.php | 6 ++++++ 2 files changed, 8 insertions(+) (limited to 'lib') diff --git a/lib/plugins/authad/lang/pt-br/settings.php b/lib/plugins/authad/lang/pt-br/settings.php index 76fb419a6..cdc748055 100644 --- a/lib/plugins/authad/lang/pt-br/settings.php +++ b/lib/plugins/authad/lang/pt-br/settings.php @@ -5,6 +5,7 @@ * * @author Victor Westmann * @author Frederico Guimarães + * @author Juliano Marconi Lanigra */ $lang['account_suffix'] = 'Sufixo de sua conta. Eg. @meu.domínio.org'; $lang['base_dn'] = 'Sua base DN. Eg. DC=meu,DC=domínio,DC=org'; @@ -12,6 +13,7 @@ $lang['domain_controllers'] = 'Uma lista de controles de domínios separada p $lang['admin_username'] = 'Um usuário do Active Directory com privilégios para acessar os dados de todos os outros usuários. Opcional, mas necessário para realizar certas ações, tais como enviar mensagens de assinatura.'; $lang['admin_password'] = 'A senha do usuário acima.'; $lang['sso'] = 'Usar Single-Sign-On através do Kerberos ou NTLM?'; +$lang['sso_charset'] = 'A codificação de caracteres que seu servidor web passará o nome de usuário Kerberos ou NTLM. Vazio para UTF-8 ou latin-1. Requere a extensão iconv.'; $lang['real_primarygroup'] = 'O grupo primário real deve ser resolvido ao invés de assumirmos como "Usuários do Domínio" (mais lento)'; $lang['use_ssl'] = 'Usar conexão SSL? Se usar, não habilitar TLS abaixo.'; $lang['use_tls'] = 'Usar conexão TLS? se usar, não habilitar SSL acima.'; diff --git a/lib/plugins/usermanager/lang/pt-br/lang.php b/lib/plugins/usermanager/lang/pt-br/lang.php index 9bb37742a..356d139eb 100644 --- a/lib/plugins/usermanager/lang/pt-br/lang.php +++ b/lib/plugins/usermanager/lang/pt-br/lang.php @@ -20,6 +20,7 @@ * @author Victor Westmann * @author Leone Lisboa Magevski * @author Dário Estevão + * @author Juliano Marconi Lanigra */ $lang['menu'] = 'Gerenciamento de Usuários'; $lang['noauth'] = '(o gerenciamento de usuários não está disponível)'; @@ -43,6 +44,7 @@ $lang['search_prompt'] = 'Executar a pesquisa'; $lang['clear'] = 'Limpar o filtro de pesquisa'; $lang['filter'] = 'Filtro'; $lang['export_all'] = 'Exportar Todos Usuários (CSV)'; +$lang['export_filtered'] = 'Exportar lista de Usuários Filtrados (CSV)'; $lang['import'] = 'Importar Novos Usuários'; $lang['line'] = 'Linha Nº.'; $lang['error'] = 'Mensagem de Erro'; @@ -66,6 +68,8 @@ $lang['add_ok'] = 'O usuário foi adicionado com sucesso'; $lang['add_fail'] = 'O usuário não foi adicionado'; $lang['notify_ok'] = 'O e-mail de notificação foi enviado'; $lang['notify_fail'] = 'Não foi possível enviar o e-mail de notificação'; +$lang['import_userlistcsv'] = 'Arquivo de lista de usuários (CSV):'; +$lang['import_header'] = 'Importações Mais Recentes - Falhas'; $lang['import_success_count'] = 'Importação de Usuário: %d usuário (s) encontrado (s), %d importado (s) com sucesso.'; $lang['import_failure_count'] = 'Importação de Usuário: %d falhou. As falhas estão listadas abaixo.'; $lang['import_error_fields'] = 'Campos insuficientes, encontrado (s) %d, necessário 4.'; @@ -75,3 +79,5 @@ $lang['import_error_badmail'] = 'Endereço de email errado'; $lang['import_error_upload'] = 'Falha na Importação: O arquivo csv não pode ser carregado ou está vazio.'; $lang['import_error_readfail'] = 'Falha na Importação: Habilitar para ler o arquivo a ser carregado.'; $lang['import_error_create'] = 'Habilitar para criar o usuário.'; +$lang['import_notify_fail'] = 'Mensagem de notificação não pode ser enviada para o usuário importado, %s com email %s.'; +$lang['import_downloadfailures'] = 'Falhas no Download como CSV para correção'; -- cgit v1.2.3 From c9454ee3a82b29418a7ee59f0bb35006ea6a7fb1 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Sun, 1 Dec 2013 16:23:02 +0000 Subject: Per FS#2884, implement a local version of str_getcsv() to maintain compatibility with php 5.2.x (str_getcsv() is only available in php 5.3+ and is used by user manager import feature. --- lib/plugins/usermanager/_test/csv_import.test.php | 14 ++++++++++++ lib/plugins/usermanager/_test/mocks.class.php | 8 +++++++ lib/plugins/usermanager/admin.php | 28 ++++++++++++++++++++++- 3 files changed, 49 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/plugins/usermanager/_test/csv_import.test.php b/lib/plugins/usermanager/_test/csv_import.test.php index 1f0ee7436..5133c1256 100644 --- a/lib/plugins/usermanager/_test/csv_import.test.php +++ b/lib/plugins/usermanager/_test/csv_import.test.php @@ -150,6 +150,20 @@ importiso8859,"F'.chr(0xF8).'rd Prefect",ford@example.com,user $this->doImportTest($csv, true, $expected, array()); } + /** + * Verify usermanager::str_getcsv() behaves identically to php 5.3's str_getcsv() + * within the context/parameters required by _import() + * + * @requires PHP 5.3 + * @deprecated remove when dokuwiki requires 5.3+ + * also associated usermanager & mock usermanager access methods + */ + private function test_getcsvcompatibility() { + $line = 'importuser,"Ford Prefect",ford@example.com,user'.NL; + + $this->assertEquals(str_getcsv($line), $this->usermanager->access_str_getcsv($line)); + } + private function stripPasswords($array){ foreach ($array as $user => $data) { unset($array[$user]['pass']); diff --git a/lib/plugins/usermanager/_test/mocks.class.php b/lib/plugins/usermanager/_test/mocks.class.php index f3cc72c27..91c74768c 100644 --- a/lib/plugins/usermanager/_test/mocks.class.php +++ b/lib/plugins/usermanager/_test/mocks.class.php @@ -26,6 +26,14 @@ class admin_mock_usermanager extends admin_plugin_usermanager { return $this->_import(); } + /** + * @deprecated remove when dokuwiki requires php 5.3+ + * also associated unit test & usermanager methods + */ + public function access_str_getcsv($line){ + return $this->str_getcsv($line); + } + // no need to send email notifications (mostly) protected function _notifyUser($user, $password, $status_alert=true) { if ($this->mock_email_notifications) { diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index 782443ee1..156037f09 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -847,7 +847,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { if (!utf8_check($csv)) { $csv = utf8_encode($csv); } - $raw = str_getcsv($csv); + $raw = $this->_getcsv($csv); $error = ''; // clean out any errors from the previous line // data checks... if (1 == ++$line) { @@ -983,4 +983,30 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { return is_uploaded_file($file); } + /** + * wrapper for str_getcsv() to simplify maintaining compatibility with php 5.2 + * + * @deprecated remove when dokuwiki php requirement increases to 5.3+ + * also associated unit test & mock access method + */ + protected function _getcsv($csv) { + return function_exists('str_getcsv') ? str_getcsv($csv) : $this->str_getcsv($csv); + } + + /** + * replacement str_getcsv() function for php < 5.3 + * loosely based on www.php.net/str_getcsv#88311 + * + * @deprecated remove when dokuwiki php requirement increases to 5.3+ + */ + protected function str_getcsv($str) { + $fp = fopen("php://temp/maxmemory:1048576", 'r+'); // 1MiB + fputs($fp, $str); + rewind($fp); + + $data = fgetcsv($fp); + + fclose($fp); + return $data; + } } -- cgit v1.2.3 From 3946d21690c98d095fff4a0ad5be4c47c0230ed7 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Sun, 1 Dec 2013 16:44:37 +0000 Subject: comment (hide) incomplete export with filter test --- lib/plugins/usermanager/_test/csv_export.test.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/plugins/usermanager/_test/csv_export.test.php b/lib/plugins/usermanager/_test/csv_export.test.php index d0942a861..667fc71dc 100644 --- a/lib/plugins/usermanager/_test/csv_export.test.php +++ b/lib/plugins/usermanager/_test/csv_export.test.php @@ -49,11 +49,11 @@ testuser,"Arthur Dent",arthur@example.com, '; $this->assertEquals($expected, $this->usermanager->tryExport()); } - +/* function test_export_withfilter(){ $this->markTestIncomplete( 'This test has not been implemented yet.' ); } - +*/ } -- cgit v1.2.3 From 1da08fca34cb20a1b12d83e70a1d915f66cf6438 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Sun, 1 Dec 2013 16:45:53 +0000 Subject: remove incorrect 'private' restriction from tset method --- lib/plugins/usermanager/_test/csv_import.test.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/plugins/usermanager/_test/csv_import.test.php b/lib/plugins/usermanager/_test/csv_import.test.php index 5133c1256..3968356bc 100644 --- a/lib/plugins/usermanager/_test/csv_import.test.php +++ b/lib/plugins/usermanager/_test/csv_import.test.php @@ -158,7 +158,7 @@ importiso8859,"F'.chr(0xF8).'rd Prefect",ford@example.com,user * @deprecated remove when dokuwiki requires 5.3+ * also associated usermanager & mock usermanager access methods */ - private function test_getcsvcompatibility() { + function test_getcsvcompatibility() { $line = 'importuser,"Ford Prefect",ford@example.com,user'.NL; $this->assertEquals(str_getcsv($line), $this->usermanager->access_str_getcsv($line)); -- cgit v1.2.3 From 6b1ab5ac63d5b5cb49c944d4ef20650977759a66 Mon Sep 17 00:00:00 2001 From: Antonio Bueno Date: Mon, 2 Dec 2013 01:21:32 +0100 Subject: translation update --- lib/plugins/authad/lang/es/settings.php | 2 ++ lib/plugins/authldap/lang/es/settings.php | 13 +++++++++++++ lib/plugins/authmysql/lang/es/settings.php | 12 ++++++++++++ 3 files changed, 27 insertions(+) create mode 100644 lib/plugins/authldap/lang/es/settings.php create mode 100644 lib/plugins/authmysql/lang/es/settings.php (limited to 'lib') diff --git a/lib/plugins/authad/lang/es/settings.php b/lib/plugins/authad/lang/es/settings.php index 9d0aa80ac..98b78056b 100644 --- a/lib/plugins/authad/lang/es/settings.php +++ b/lib/plugins/authad/lang/es/settings.php @@ -4,6 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author monica + * @author Antonio Bueno */ $lang['account_suffix'] = 'Su cuenta, sufijo. Ejem. @ my.domain.org '; $lang['base_dn'] = 'Su base DN. Ejem. DC=my,DC=dominio,DC=org'; @@ -11,3 +12,4 @@ $lang['domain_controllers'] = 'Una lista separada por coma de los controlador $lang['admin_username'] = 'Un usuario con privilegios de Active Directory con acceso a los datos de cualquier otro usuario. Opcional, pero es necesario para determinadas acciones como el envío de suscripciones de correos electrónicos.'; $lang['admin_password'] = 'La contraseña del usuario anterior.'; $lang['sso'] = 'En caso de inicio de sesión usará ¿Kerberos o NTLM?'; +$lang['sso_charset'] = 'La codificación con que tu servidor web pasará el nombre de usuario Kerberos o NTLM. Si es UTF-8 o latin-1 dejar en blanco. Requiere la extensión iconv.'; diff --git a/lib/plugins/authldap/lang/es/settings.php b/lib/plugins/authldap/lang/es/settings.php new file mode 100644 index 000000000..f8c3ad014 --- /dev/null +++ b/lib/plugins/authldap/lang/es/settings.php @@ -0,0 +1,13 @@ + + */ +$lang['starttls'] = 'Usar conexiones TLS?'; +$lang['debug'] = 'Mostrar información adicional para depuración de errores'; +$lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; +$lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; +$lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; +$lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; diff --git a/lib/plugins/authmysql/lang/es/settings.php b/lib/plugins/authmysql/lang/es/settings.php new file mode 100644 index 000000000..64d422102 --- /dev/null +++ b/lib/plugins/authmysql/lang/es/settings.php @@ -0,0 +1,12 @@ + + */ +$lang['server'] = 'Tu servidor MySQL'; +$lang['user'] = 'Nombre de usuario MySQL'; +$lang['database'] = 'Base de datos a usar'; +$lang['charset'] = 'Codificación usada en la base de datos'; +$lang['debug'] = 'Mostrar información adicional para depuración de errores'; -- cgit v1.2.3 From 2c01be2ff65c7adeb4e34cd2a507c910e84b79b7 Mon Sep 17 00:00:00 2001 From: zamroni Date: Tue, 3 Dec 2013 06:45:45 +0100 Subject: translation update --- lib/plugins/acl/lang/id/lang.php | 4 ++-- lib/plugins/plugin/lang/id/lang.php | 5 +++-- lib/plugins/usermanager/lang/id/lang.php | 5 +++-- 3 files changed, 8 insertions(+), 6 deletions(-) (limited to 'lib') diff --git a/lib/plugins/acl/lang/id/lang.php b/lib/plugins/acl/lang/id/lang.php index 650637635..6f619c5ec 100644 --- a/lib/plugins/acl/lang/id/lang.php +++ b/lib/plugins/acl/lang/id/lang.php @@ -1,8 +1,8 @@ * @author Yustinus Waruwu */ diff --git a/lib/plugins/plugin/lang/id/lang.php b/lib/plugins/plugin/lang/id/lang.php index f3a1fe4e6..2653b075e 100644 --- a/lib/plugins/plugin/lang/id/lang.php +++ b/lib/plugins/plugin/lang/id/lang.php @@ -1,7 +1,8 @@ * @author Yustinus Waruwu */ diff --git a/lib/plugins/usermanager/lang/id/lang.php b/lib/plugins/usermanager/lang/id/lang.php index 457ad4963..425b2ff59 100644 --- a/lib/plugins/usermanager/lang/id/lang.php +++ b/lib/plugins/usermanager/lang/id/lang.php @@ -1,7 +1,8 @@ * @author Yustinus Waruwu */ -- cgit v1.2.3 From 7c586cd898dec6fc85ce7817f134aa1b35fcb499 Mon Sep 17 00:00:00 2001 From: anjianshi Date: Thu, 5 Dec 2013 08:11:19 +0100 Subject: translation update --- lib/plugins/plugin/lang/zh/lang.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/plugins/plugin/lang/zh/lang.php b/lib/plugins/plugin/lang/zh/lang.php index f69410503..b39c6b063 100644 --- a/lib/plugins/plugin/lang/zh/lang.php +++ b/lib/plugins/plugin/lang/zh/lang.php @@ -15,6 +15,7 @@ * @author caii, patent agent in China * @author lainme993@gmail.com * @author Shuo-Ting Jian + * @author anjianshi */ $lang['menu'] = '插件管理器'; $lang['download'] = '下载并安装新的插件'; @@ -26,7 +27,7 @@ $lang['btn_settings'] = '设置'; $lang['btn_download'] = '下载'; $lang['btn_enable'] = '保存'; $lang['url'] = 'URL'; -$lang['installed'] = '已安装:'; +$lang['installed'] = '安装时间:'; $lang['lastupdate'] = '最后更新于:'; $lang['source'] = '来源:'; $lang['unknown'] = '未知'; -- cgit v1.2.3 From 6593db4300a3db6d88c9b09df725ecc8589e99b6 Mon Sep 17 00:00:00 2001 From: Myeongjin Date: Sat, 7 Dec 2013 02:01:38 +0100 Subject: translation update --- lib/plugins/acl/lang/ko/lang.php | 2 +- lib/plugins/authad/lang/ko/settings.php | 2 +- lib/plugins/plugin/lang/ko/lang.php | 14 +++++++------- lib/plugins/popularity/lang/ko/lang.php | 2 +- lib/plugins/usermanager/lang/ko/lang.php | 8 ++++---- 5 files changed, 14 insertions(+), 14 deletions(-) (limited to 'lib') diff --git a/lib/plugins/acl/lang/ko/lang.php b/lib/plugins/acl/lang/ko/lang.php index 37cec307c..34b93a9f4 100644 --- a/lib/plugins/acl/lang/ko/lang.php +++ b/lib/plugins/acl/lang/ko/lang.php @@ -39,6 +39,6 @@ $lang['acl_perm1'] = '읽기'; $lang['acl_perm2'] = '편집'; $lang['acl_perm4'] = '만들기'; $lang['acl_perm8'] = '올리기'; -$lang['acl_perm16'] = '지우기'; +$lang['acl_perm16'] = '삭제'; $lang['acl_new'] = '새 항목 추가'; $lang['acl_mod'] = '항목 수정'; diff --git a/lib/plugins/authad/lang/ko/settings.php b/lib/plugins/authad/lang/ko/settings.php index 6c00950bf..b104371fe 100644 --- a/lib/plugins/authad/lang/ko/settings.php +++ b/lib/plugins/authad/lang/ko/settings.php @@ -13,7 +13,7 @@ $lang['admin_username'] = '다른 모든 사용자의 데이터에 접근 $lang['admin_password'] = '위 사용자의 비밀번호.'; $lang['sso'] = 'Kerberos나 NTLM을 통해 Single-Sign-On을 사용해야 합니까?'; $lang['sso_charset'] = '당신의 웹서버의 문자집합은 Kerberos나 NTLM 사용자 이름으로 전달됩니다. UTF-8이나 라린-1이 비어 있습니다. icov 확장 기능이 필요합니다.'; -$lang['real_primarygroup'] = '실제 기본 그룹은 "도메인 사용자"를 가정하는 대신 해결될 것입니다(느림)'; +$lang['real_primarygroup'] = '실제 기본 그룹은 "도메인 사용자"를 가정하는 대신 해결될 것입니다. (느림)'; $lang['use_ssl'] = 'SSL 연결을 사용합니까? 사용한다면 아래 TLS을 활성화하지 마세요.'; $lang['use_tls'] = 'TLS 연결을 사용합니까? 사용한다면 위 SSL을 활성화하지 마세요.'; $lang['debug'] = '오류에 대한 추가적인 디버그 정보를 보이겠습니까?'; diff --git a/lib/plugins/plugin/lang/ko/lang.php b/lib/plugins/plugin/lang/ko/lang.php index 8d2006672..4cd1ae3c7 100644 --- a/lib/plugins/plugin/lang/ko/lang.php +++ b/lib/plugins/plugin/lang/ko/lang.php @@ -34,16 +34,16 @@ $lang['deleted'] = '%s 플러그인이 삭제되었습니다.'; $lang['downloading'] = '다운로드 중 ...'; $lang['downloaded'] = '%s 플러그인이 성공적으로 설치되었습니다'; $lang['downloads'] = '다음 플러그인이 성공적으로 설치되었습니다:'; -$lang['download_none'] = '플러그인이 없거나 다운로드 또는 설치 중에 알 수 없는 문제가 발생하였습니다.'; +$lang['download_none'] = '플러그인이 없거나 다운로드 또는 설치 중에 알 수 없는 문제가 발생했습니다.'; $lang['plugin'] = '플러그인:'; $lang['components'] = '구성 요소'; $lang['noinfo'] = '이 플러그인은 어떤 정보도 없습니다. 잘못된 플러그인일 수 있습니다.'; -$lang['name'] = '이름: '; -$lang['date'] = '날짜: '; -$lang['type'] = '종류: '; -$lang['desc'] = '설명: '; -$lang['author'] = '저자: '; -$lang['www'] = '웹: '; +$lang['name'] = '이름:'; +$lang['date'] = '날짜:'; +$lang['type'] = '종류:'; +$lang['desc'] = '설명:'; +$lang['author'] = '저자:'; +$lang['www'] = '웹:'; $lang['error'] = '알 수 없는 문제가 발생했습니다.'; $lang['error_download'] = '플러그인 파일을 다운로드 할 수 없습니다: %s'; $lang['error_badurl'] = '잘못된 URL 같습니다 - URL에서 파일 이름을 알 수 없습니다'; diff --git a/lib/plugins/popularity/lang/ko/lang.php b/lib/plugins/popularity/lang/ko/lang.php index 088ef1dc9..f8cf4525d 100644 --- a/lib/plugins/popularity/lang/ko/lang.php +++ b/lib/plugins/popularity/lang/ko/lang.php @@ -11,7 +11,7 @@ * @author Myeongjin * @author Garam */ -$lang['name'] = '인기도 조사(불러오는 데 시간이 걸릴 수 있습니다)'; +$lang['name'] = '인기도 조사 (불러오는 데 시간이 걸릴 수 있습니다)'; $lang['submit'] = '자료 보내기'; $lang['autosubmit'] = '자료를 자동으로 한 달에 한 번씩 보내기'; $lang['submissionFailed'] = '다음과 같은 이유로 자료 보내기에 실패했습니다:'; diff --git a/lib/plugins/usermanager/lang/ko/lang.php b/lib/plugins/usermanager/lang/ko/lang.php index 7c629f74f..ac129c95e 100644 --- a/lib/plugins/usermanager/lang/ko/lang.php +++ b/lib/plugins/usermanager/lang/ko/lang.php @@ -33,8 +33,8 @@ $lang['search'] = '검색'; $lang['search_prompt'] = '검색 수행'; $lang['clear'] = '검색 필터 재설정'; $lang['filter'] = '필터'; -$lang['export_all'] = '모든 사용자 목록 내보내기(CSV)'; -$lang['export_filtered'] = '필터된 사용자 목록 내보내기(CSV)'; +$lang['export_all'] = '모든 사용자 목록 내보내기 (CSV)'; +$lang['export_filtered'] = '필터된 사용자 목록 내보내기 (CSV)'; $lang['import'] = '새 사용자 목록 가져오기'; $lang['line'] = '줄 번호'; $lang['error'] = '오류 메시지'; @@ -58,7 +58,7 @@ $lang['add_ok'] = '사용자를 성공적으로 추가했습니 $lang['add_fail'] = '사용자 추가를 실패했습니다'; $lang['notify_ok'] = '알림 이메일을 성공적으로 보냈습니다'; $lang['notify_fail'] = '알림 이메일을 보낼 수 없습니다'; -$lang['import_userlistcsv'] = '사용자 목록 파일(CSV):'; +$lang['import_userlistcsv'] = '사용자 목록 파일 (CSV):'; $lang['import_header'] = '가장 최근 가져오기 - 실패'; $lang['import_success_count'] = '사용자 가져오기: 사용자 %d명을 찾았고, %d명을 성공적으로 가져왔습니다.'; $lang['import_failure_count'] = '사용자 가져오기: %d명을 가져오지 못했습니다. 실패는 아래에 나타나 있습니다.'; @@ -69,5 +69,5 @@ $lang['import_error_badmail'] = '잘못된 이메일 주소'; $lang['import_error_upload'] = '가져오기를 실패했습니다. csv 파일을 올릴 수 없거나 비어 있습니다.'; $lang['import_error_readfail'] = '가져오기를 실패했습니다. 올린 파일을 읽을 수 없습니다.'; $lang['import_error_create'] = '사용자를 만들 수 없습니다.'; -$lang['import_notify_fail'] = '알림 메시지를 가져온 %s(이메일: %s) 사용자에게 보낼 수 없습니다.'; +$lang['import_notify_fail'] = '알림 메시지를 가져온 %s (이메일: %s) 사용자에게 보낼 수 없습니다.'; $lang['import_downloadfailures'] = '교정을 위한 CSV로 다운로드 실패'; -- cgit v1.2.3 From ccfec5606dae81e6524f6cfcdaca09d4cde7f111 Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Sat, 7 Dec 2013 23:10:05 +0000 Subject: crlf 2 lf whitespace fixes --- lib/plugins/authad/adLDAP/adLDAP.php | 1900 ++++++++++---------- .../authad/adLDAP/classes/adLDAPComputers.php | 304 ++-- .../authad/adLDAP/classes/adLDAPContacts.php | 588 +++--- .../authad/adLDAP/classes/adLDAPExchange.php | 778 ++++---- .../authad/adLDAP/classes/adLDAPFolders.php | 356 ++-- lib/plugins/authad/adLDAP/classes/adLDAPGroups.php | 1262 ++++++------- lib/plugins/authad/adLDAP/classes/adLDAPUsers.php | 1364 +++++++------- lib/plugins/authad/adLDAP/classes/adLDAPUtils.php | 526 +++--- .../authad/adLDAP/collections/adLDAPCollection.php | 274 +-- .../collections/adLDAPComputerCollection.php | 92 +- .../adLDAP/collections/adLDAPContactCollection.php | 92 +- .../adLDAP/collections/adLDAPGroupCollection.php | 92 +- .../adLDAP/collections/adLDAPUserCollection.php | 92 +- lib/scripts/jquery/jquery-migrate.js | 1022 +++++------ lib/scripts/jquery/jquery-migrate.min.js | 2 +- 15 files changed, 4372 insertions(+), 4372 deletions(-) (limited to 'lib') diff --git a/lib/plugins/authad/adLDAP/adLDAP.php b/lib/plugins/authad/adLDAP/adLDAP.php index a8f33b47e..c1f92abe2 100644 --- a/lib/plugins/authad/adLDAP/adLDAP.php +++ b/lib/plugins/authad/adLDAP/adLDAP.php @@ -1,951 +1,951 @@ -ldapConnection) { - return $this->ldapConnection; - } - return false; - } - - /** - * Get the bind status - * - * @return bool - */ - public function getLdapBind() { - return $this->ldapBind; - } - - /** - * Get the current base DN - * - * @return string - */ - public function getBaseDn() { - return $this->baseDn; - } - - /** - * The group class - * - * @var adLDAPGroups - */ - protected $groupClass; - - /** - * Get the group class interface - * - * @return adLDAPGroups - */ - public function group() { - if (!$this->groupClass) { - $this->groupClass = new adLDAPGroups($this); - } - return $this->groupClass; - } - - /** - * The user class - * - * @var adLDAPUsers - */ - protected $userClass; - - /** - * Get the userclass interface - * - * @return adLDAPUsers - */ - public function user() { - if (!$this->userClass) { - $this->userClass = new adLDAPUsers($this); - } - return $this->userClass; - } - - /** - * The folders class - * - * @var adLDAPFolders - */ - protected $folderClass; - - /** - * Get the folder class interface - * - * @return adLDAPFolders - */ - public function folder() { - if (!$this->folderClass) { - $this->folderClass = new adLDAPFolders($this); - } - return $this->folderClass; - } - - /** - * The utils class - * - * @var adLDAPUtils - */ - protected $utilClass; - - /** - * Get the utils class interface - * - * @return adLDAPUtils - */ - public function utilities() { - if (!$this->utilClass) { - $this->utilClass = new adLDAPUtils($this); - } - return $this->utilClass; - } - - /** - * The contacts class - * - * @var adLDAPContacts - */ - protected $contactClass; - - /** - * Get the contacts class interface - * - * @return adLDAPContacts - */ - public function contact() { - if (!$this->contactClass) { - $this->contactClass = new adLDAPContacts($this); - } - return $this->contactClass; - } - - /** - * The exchange class - * - * @var adLDAPExchange - */ - protected $exchangeClass; - - /** - * Get the exchange class interface - * - * @return adLDAPExchange - */ - public function exchange() { - if (!$this->exchangeClass) { - $this->exchangeClass = new adLDAPExchange($this); - } - return $this->exchangeClass; - } - - /** - * The computers class - * - * @var adLDAPComputers - */ - protected $computersClass; - - /** - * Get the computers class interface - * - * @return adLDAPComputers - */ - public function computer() { - if (!$this->computerClass) { - $this->computerClass = new adLDAPComputers($this); - } - return $this->computerClass; - } - - /** - * Getters and Setters - */ - - /** - * Set the account suffix - * - * @param string $accountSuffix - * @return void - */ - public function setAccountSuffix($accountSuffix) - { - $this->accountSuffix = $accountSuffix; - } - - /** - * Get the account suffix - * - * @return string - */ - public function getAccountSuffix() - { - return $this->accountSuffix; - } - - /** - * Set the domain controllers array - * - * @param array $domainControllers - * @return void - */ - public function setDomainControllers(array $domainControllers) - { - $this->domainControllers = $domainControllers; - } - - /** - * Get the list of domain controllers - * - * @return void - */ - public function getDomainControllers() - { - return $this->domainControllers; - } - - /** - * Sets the port number your domain controller communicates over - * - * @param int $adPort - */ - public function setPort($adPort) - { - $this->adPort = $adPort; - } - - /** - * Gets the port number your domain controller communicates over - * - * @return int - */ - public function getPort() - { - return $this->adPort; - } - - /** - * Set the username of an account with higher priviledges - * - * @param string $adminUsername - * @return void - */ - public function setAdminUsername($adminUsername) - { - $this->adminUsername = $adminUsername; - } - - /** - * Get the username of the account with higher priviledges - * - * This will throw an exception for security reasons - */ - public function getAdminUsername() - { - throw new adLDAPException('For security reasons you cannot access the domain administrator account details'); - } - - /** - * Set the password of an account with higher priviledges - * - * @param string $adminPassword - * @return void - */ - public function setAdminPassword($adminPassword) - { - $this->adminPassword = $adminPassword; - } - - /** - * Get the password of the account with higher priviledges - * - * This will throw an exception for security reasons - */ - public function getAdminPassword() - { - throw new adLDAPException('For security reasons you cannot access the domain administrator account details'); - } - - /** - * Set whether to detect the true primary group - * - * @param bool $realPrimaryGroup - * @return void - */ - public function setRealPrimaryGroup($realPrimaryGroup) - { - $this->realPrimaryGroup = $realPrimaryGroup; - } - - /** - * Get the real primary group setting - * - * @return bool - */ - public function getRealPrimaryGroup() - { - return $this->realPrimaryGroup; - } - - /** - * Set whether to use SSL - * - * @param bool $useSSL - * @return void - */ - public function setUseSSL($useSSL) - { - $this->useSSL = $useSSL; - // Set the default port correctly - if($this->useSSL) { - $this->setPort(self::ADLDAP_LDAPS_PORT); - } - else { - $this->setPort(self::ADLDAP_LDAP_PORT); - } - } - - /** - * Get the SSL setting - * - * @return bool - */ - public function getUseSSL() - { - return $this->useSSL; - } - - /** - * Set whether to use TLS - * - * @param bool $useTLS - * @return void - */ - public function setUseTLS($useTLS) - { - $this->useTLS = $useTLS; - } - - /** - * Get the TLS setting - * - * @return bool - */ - public function getUseTLS() - { - return $this->useTLS; - } - - /** - * Set whether to use SSO - * Requires ldap_sasl_bind support. Be sure --with-ldap-sasl is used when configuring PHP otherwise this function will be undefined. - * - * @param bool $useSSO - * @return void - */ - public function setUseSSO($useSSO) - { - if ($useSSO === true && !$this->ldapSaslSupported()) { - throw new adLDAPException('No LDAP SASL support for PHP. See: http://www.php.net/ldap_sasl_bind'); - } - $this->useSSO = $useSSO; - } - - /** - * Get the SSO setting - * - * @return bool - */ - public function getUseSSO() - { - return $this->useSSO; - } - - /** - * Set whether to lookup recursive groups - * - * @param bool $recursiveGroups - * @return void - */ - public function setRecursiveGroups($recursiveGroups) - { - $this->recursiveGroups = $recursiveGroups; - } - - /** - * Get the recursive groups setting - * - * @return bool - */ - public function getRecursiveGroups() - { - return $this->recursiveGroups; - } - - /** - * Default Constructor - * - * Tries to bind to the AD domain over LDAP or LDAPs - * - * @param array $options Array of options to pass to the constructor - * @throws Exception - if unable to bind to Domain Controller - * @return bool - */ - function __construct($options = array()) { - // You can specifically overide any of the default configuration options setup above - if (count($options) > 0) { - if (array_key_exists("account_suffix",$options)){ $this->accountSuffix = $options["account_suffix"]; } - if (array_key_exists("base_dn",$options)){ $this->baseDn = $options["base_dn"]; } - if (array_key_exists("domain_controllers",$options)){ - if (!is_array($options["domain_controllers"])) { - throw new adLDAPException('[domain_controllers] option must be an array'); - } - $this->domainControllers = $options["domain_controllers"]; - } - if (array_key_exists("admin_username",$options)){ $this->adminUsername = $options["admin_username"]; } - if (array_key_exists("admin_password",$options)){ $this->adminPassword = $options["admin_password"]; } - if (array_key_exists("real_primarygroup",$options)){ $this->realPrimaryGroup = $options["real_primarygroup"]; } - if (array_key_exists("use_ssl",$options)){ $this->setUseSSL($options["use_ssl"]); } - if (array_key_exists("use_tls",$options)){ $this->useTLS = $options["use_tls"]; } - if (array_key_exists("recursive_groups",$options)){ $this->recursiveGroups = $options["recursive_groups"]; } - if (array_key_exists("ad_port",$options)){ $this->setPort($options["ad_port"]); } - if (array_key_exists("sso",$options)) { - $this->setUseSSO($options["sso"]); - if (!$this->ldapSaslSupported()) { - $this->setUseSSO(false); - } - } - } - - if ($this->ldapSupported() === false) { - throw new adLDAPException('No LDAP support for PHP. See: http://www.php.net/ldap'); - } - - return $this->connect(); - } - - /** - * Default Destructor - * - * Closes the LDAP connection - * - * @return void - */ - function __destruct() { - $this->close(); - } - - /** - * Connects and Binds to the Domain Controller - * - * @return bool - */ - public function connect() - { - // Connect to the AD/LDAP server as the username/password - $domainController = $this->randomController(); - if ($this->useSSL) { - $this->ldapConnection = ldap_connect("ldaps://" . $domainController, $this->adPort); - } else { - $this->ldapConnection = ldap_connect($domainController, $this->adPort); - } - - // Set some ldap options for talking to AD - ldap_set_option($this->ldapConnection, LDAP_OPT_PROTOCOL_VERSION, 3); - ldap_set_option($this->ldapConnection, LDAP_OPT_REFERRALS, 0); - - if ($this->useTLS) { - ldap_start_tls($this->ldapConnection); - } - - // Bind as a domain admin if they've set it up - if ($this->adminUsername !== NULL && $this->adminPassword !== NULL) { - $this->ldapBind = @ldap_bind($this->ldapConnection, $this->adminUsername . $this->accountSuffix, $this->adminPassword); - if (!$this->ldapBind) { - if ($this->useSSL && !$this->useTLS) { - // If you have problems troubleshooting, remove the @ character from the ldapldapBind command above to get the actual error message - throw new adLDAPException('Bind to Active Directory failed. Either the LDAPs connection failed or the login credentials are incorrect. AD said: ' . $this->getLastError()); - } - else { - throw new adLDAPException('Bind to Active Directory failed. Check the login credentials and/or server details. AD said: ' . $this->getLastError()); - } - } - } - if ($this->useSSO && $_SERVER['REMOTE_USER'] && $this->adminUsername === null && $_SERVER['KRB5CCNAME']) { - putenv("KRB5CCNAME=" . $_SERVER['KRB5CCNAME']); - $this->ldapBind = @ldap_sasl_bind($this->ldapConnection, NULL, NULL, "GSSAPI"); - if (!$this->ldapBind){ - throw new adLDAPException('Rebind to Active Directory failed. AD said: ' . $this->getLastError()); - } - else { - return true; - } - } - - - if ($this->baseDn == NULL) { - $this->baseDn = $this->findBaseDn(); - } - - return true; - } - - /** - * Closes the LDAP connection - * - * @return void - */ - public function close() { - if ($this->ldapConnection) { - @ldap_close($this->ldapConnection); - } - } - - /** - * Validate a user's login credentials - * - * @param string $username A user's AD username - * @param string $password A user's AD password - * @param bool optional $preventRebind - * @return bool - */ - public function authenticate($username, $password, $preventRebind = false) { - // Prevent null binding - if ($username === NULL || $password === NULL) { return false; } - if (empty($username) || empty($password)) { return false; } - - // Allow binding over SSO for Kerberos - if ($this->useSSO && $_SERVER['REMOTE_USER'] && $_SERVER['REMOTE_USER'] == $username && $this->adminUsername === NULL && $_SERVER['KRB5CCNAME']) { - putenv("KRB5CCNAME=" . $_SERVER['KRB5CCNAME']); - $this->ldapBind = @ldap_sasl_bind($this->ldapConnection, NULL, NULL, "GSSAPI"); - if (!$this->ldapBind) { - throw new adLDAPException('Rebind to Active Directory failed. AD said: ' . $this->getLastError()); - } - else { - return true; - } - } - - // Bind as the user - $ret = true; - $this->ldapBind = @ldap_bind($this->ldapConnection, $username . $this->accountSuffix, $password); - if (!$this->ldapBind){ - $ret = false; - } - - // Cnce we've checked their details, kick back into admin mode if we have it - if ($this->adminUsername !== NULL && !$preventRebind) { - $this->ldapBind = @ldap_bind($this->ldapConnection, $this->adminUsername . $this->accountSuffix , $this->adminPassword); - if (!$this->ldapBind){ - // This should never happen in theory - throw new adLDAPException('Rebind to Active Directory failed. AD said: ' . $this->getLastError()); - } - } - - return $ret; - } - - /** - * Find the Base DN of your domain controller - * - * @return string - */ - public function findBaseDn() - { - $namingContext = $this->getRootDse(array('defaultnamingcontext')); - return $namingContext[0]['defaultnamingcontext'][0]; - } - - /** - * Get the RootDSE properties from a domain controller - * - * @param array $attributes The attributes you wish to query e.g. defaultnamingcontext - * @return array - */ - public function getRootDse($attributes = array("*", "+")) { - if (!$this->ldapBind){ return (false); } - - $sr = @ldap_read($this->ldapConnection, NULL, 'objectClass=*', $attributes); - $entries = @ldap_get_entries($this->ldapConnection, $sr); - return $entries; - } - - /** - * Get last error from Active Directory - * - * This function gets the last message from Active Directory - * This may indeed be a 'Success' message but if you get an unknown error - * it might be worth calling this function to see what errors were raised - * - * return string - */ - public function getLastError() { - return @ldap_error($this->ldapConnection); - } - - /** - * Detect LDAP support in php - * - * @return bool - */ - protected function ldapSupported() - { - if (!function_exists('ldap_connect')) { - return false; - } - return true; - } - - /** - * Detect ldap_sasl_bind support in PHP - * - * @return bool - */ - protected function ldapSaslSupported() - { - if (!function_exists('ldap_sasl_bind')) { - return false; - } - return true; - } - - /** - * Schema - * - * @param array $attributes Attributes to be queried - * @return array - */ - public function adldap_schema($attributes){ - - // LDAP doesn't like NULL attributes, only set them if they have values - // If you wish to remove an attribute you should set it to a space - // TO DO: Adapt user_modify to use ldap_mod_delete to remove a NULL attribute - $mod=array(); - - // Check every attribute to see if it contains 8bit characters and then UTF8 encode them - array_walk($attributes, array($this, 'encode8bit')); - - if ($attributes["address_city"]){ $mod["l"][0]=$attributes["address_city"]; } - if ($attributes["address_code"]){ $mod["postalCode"][0]=$attributes["address_code"]; } - //if ($attributes["address_country"]){ $mod["countryCode"][0]=$attributes["address_country"]; } // use country codes? - if ($attributes["address_country"]){ $mod["c"][0]=$attributes["address_country"]; } - if ($attributes["address_pobox"]){ $mod["postOfficeBox"][0]=$attributes["address_pobox"]; } - if ($attributes["address_state"]){ $mod["st"][0]=$attributes["address_state"]; } - if ($attributes["address_street"]){ $mod["streetAddress"][0]=$attributes["address_street"]; } - if ($attributes["company"]){ $mod["company"][0]=$attributes["company"]; } - if ($attributes["change_password"]){ $mod["pwdLastSet"][0]=0; } - if ($attributes["department"]){ $mod["department"][0]=$attributes["department"]; } - if ($attributes["description"]){ $mod["description"][0]=$attributes["description"]; } - if ($attributes["display_name"]){ $mod["displayName"][0]=$attributes["display_name"]; } - if ($attributes["email"]){ $mod["mail"][0]=$attributes["email"]; } - if ($attributes["expires"]){ $mod["accountExpires"][0]=$attributes["expires"]; } //unix epoch format? - if ($attributes["firstname"]){ $mod["givenName"][0]=$attributes["firstname"]; } - if ($attributes["home_directory"]){ $mod["homeDirectory"][0]=$attributes["home_directory"]; } - if ($attributes["home_drive"]){ $mod["homeDrive"][0]=$attributes["home_drive"]; } - if ($attributes["initials"]){ $mod["initials"][0]=$attributes["initials"]; } - if ($attributes["logon_name"]){ $mod["userPrincipalName"][0]=$attributes["logon_name"]; } - if ($attributes["manager"]){ $mod["manager"][0]=$attributes["manager"]; } //UNTESTED ***Use DistinguishedName*** - if ($attributes["office"]){ $mod["physicalDeliveryOfficeName"][0]=$attributes["office"]; } - if ($attributes["password"]){ $mod["unicodePwd"][0]=$this->user()->encodePassword($attributes["password"]); } - if ($attributes["profile_path"]){ $mod["profilepath"][0]=$attributes["profile_path"]; } - if ($attributes["script_path"]){ $mod["scriptPath"][0]=$attributes["script_path"]; } - if ($attributes["surname"]){ $mod["sn"][0]=$attributes["surname"]; } - if ($attributes["title"]){ $mod["title"][0]=$attributes["title"]; } - if ($attributes["telephone"]){ $mod["telephoneNumber"][0]=$attributes["telephone"]; } - if ($attributes["mobile"]){ $mod["mobile"][0]=$attributes["mobile"]; } - if ($attributes["pager"]){ $mod["pager"][0]=$attributes["pager"]; } - if ($attributes["ipphone"]){ $mod["ipphone"][0]=$attributes["ipphone"]; } - if ($attributes["web_page"]){ $mod["wWWHomePage"][0]=$attributes["web_page"]; } - if ($attributes["fax"]){ $mod["facsimileTelephoneNumber"][0]=$attributes["fax"]; } - if ($attributes["enabled"]){ $mod["userAccountControl"][0]=$attributes["enabled"]; } - if ($attributes["homephone"]){ $mod["homephone"][0]=$attributes["homephone"]; } - - // Distribution List specific schema - if ($attributes["group_sendpermission"]){ $mod["dlMemSubmitPerms"][0]=$attributes["group_sendpermission"]; } - if ($attributes["group_rejectpermission"]){ $mod["dlMemRejectPerms"][0]=$attributes["group_rejectpermission"]; } - - // Exchange Schema - if ($attributes["exchange_homemdb"]){ $mod["homeMDB"][0]=$attributes["exchange_homemdb"]; } - if ($attributes["exchange_mailnickname"]){ $mod["mailNickname"][0]=$attributes["exchange_mailnickname"]; } - if ($attributes["exchange_proxyaddress"]){ $mod["proxyAddresses"][0]=$attributes["exchange_proxyaddress"]; } - if ($attributes["exchange_usedefaults"]){ $mod["mDBUseDefaults"][0]=$attributes["exchange_usedefaults"]; } - if ($attributes["exchange_policyexclude"]){ $mod["msExchPoliciesExcluded"][0]=$attributes["exchange_policyexclude"]; } - if ($attributes["exchange_policyinclude"]){ $mod["msExchPoliciesIncluded"][0]=$attributes["exchange_policyinclude"]; } - if ($attributes["exchange_addressbook"]){ $mod["showInAddressBook"][0]=$attributes["exchange_addressbook"]; } - if ($attributes["exchange_altrecipient"]){ $mod["altRecipient"][0]=$attributes["exchange_altrecipient"]; } - if ($attributes["exchange_deliverandredirect"]){ $mod["deliverAndRedirect"][0]=$attributes["exchange_deliverandredirect"]; } - - // This schema is designed for contacts - if ($attributes["exchange_hidefromlists"]){ $mod["msExchHideFromAddressLists"][0]=$attributes["exchange_hidefromlists"]; } - if ($attributes["contact_email"]){ $mod["targetAddress"][0]=$attributes["contact_email"]; } - - //echo ("
                "); print_r($mod);
                -        /*
                -        // modifying a name is a bit fiddly
                -        if ($attributes["firstname"] && $attributes["surname"]){
                -            $mod["cn"][0]=$attributes["firstname"]." ".$attributes["surname"];
                -            $mod["displayname"][0]=$attributes["firstname"]." ".$attributes["surname"];
                -            $mod["name"][0]=$attributes["firstname"]." ".$attributes["surname"];
                -        }
                -        */
                -
                -        if (count($mod)==0){ return (false); }
                -        return ($mod);
                -    }
                -    
                -    /**
                -    * Convert 8bit characters e.g. accented characters to UTF8 encoded characters
                -    */
                -    protected function encode8Bit(&$item, $key) {
                -        $encode = false;
                -        if (is_string($item)) {
                -            for ($i=0; $i> 7) {
                -                    $encode = true;
                -                }
                -            }
                -        }
                -        if ($encode === true && $key != 'password') {
                -            $item = utf8_encode($item);   
                -        }
                -    }
                -    
                -    /**
                -    * Select a random domain controller from your domain controller array
                -    * 
                -    * @return string
                -    */
                -    protected function randomController() 
                -    {
                -        mt_srand(doubleval(microtime()) * 100000000); // For older PHP versions
                -        /*if (sizeof($this->domainControllers) > 1) {
                -            $adController = $this->domainControllers[array_rand($this->domainControllers)]; 
                -            // Test if the controller is responding to pings
                -            $ping = $this->pingController($adController); 
                -            if ($ping === false) { 
                -                // Find the current key in the domain controllers array
                -                $key = array_search($adController, $this->domainControllers);
                -                // Remove it so that we don't end up in a recursive loop
                -                unset($this->domainControllers[$key]);
                -                // Select a new controller
                -                return $this->randomController(); 
                -            }
                -            else { 
                -                return ($adController); 
                -            }
                -        } */
                -        return $this->domainControllers[array_rand($this->domainControllers)];
                -    }  
                -    
                -    /** 
                -    * Test basic connectivity to controller 
                -    * 
                -    * @return bool
                -    */ 
                -    protected function pingController($host) {
                -        $port = $this->adPort; 
                -        fsockopen($host, $port, $errno, $errstr, 10); 
                -        if ($errno > 0) {
                -            return false;
                -        }
                -        return true;
                -    }
                -
                -}
                -
                -/**
                -* adLDAP Exception Handler
                -* 
                -* Exceptions of this type are thrown on bind failure or when SSL is required but not configured
                -* Example:
                -* try {
                -*   $adldap = new adLDAP();
                -* }
                -* catch (adLDAPException $e) {
                -*   echo $e;
                -*   exit();
                -* }
                -*/
                -class adLDAPException extends Exception {}
                -
                +ldapConnection) {
                +            return $this->ldapConnection;   
                +        }
                +        return false;
                +    }
                +    
                +    /**
                +    * Get the bind status
                +    * 
                +    * @return bool
                +    */
                +    public function getLdapBind() {
                +        return $this->ldapBind;
                +    }
                +    
                +    /**
                +    * Get the current base DN
                +    * 
                +    * @return string
                +    */
                +    public function getBaseDn() {
                +        return $this->baseDn;   
                +    }
                +    
                +    /**
                +    * The group class
                +    * 
                +    * @var adLDAPGroups
                +    */
                +    protected $groupClass;
                +    
                +    /**
                +    * Get the group class interface
                +    * 
                +    * @return adLDAPGroups
                +    */
                +    public function group() {
                +        if (!$this->groupClass) {
                +            $this->groupClass = new adLDAPGroups($this);
                +        }   
                +        return $this->groupClass;
                +    }
                +    
                +    /**
                +    * The user class
                +    * 
                +    * @var adLDAPUsers
                +    */
                +    protected $userClass;
                +    
                +    /**
                +    * Get the userclass interface
                +    * 
                +    * @return adLDAPUsers
                +    */
                +    public function user() {
                +        if (!$this->userClass) {
                +            $this->userClass = new adLDAPUsers($this);
                +        }   
                +        return $this->userClass;
                +    }
                +    
                +    /**
                +    * The folders class
                +    * 
                +    * @var adLDAPFolders
                +    */
                +    protected $folderClass;
                +    
                +    /**
                +    * Get the folder class interface
                +    * 
                +    * @return adLDAPFolders
                +    */
                +    public function folder() {
                +        if (!$this->folderClass) {
                +            $this->folderClass = new adLDAPFolders($this);
                +        }   
                +        return $this->folderClass;
                +    }
                +    
                +    /**
                +    * The utils class
                +    * 
                +    * @var adLDAPUtils
                +    */
                +    protected $utilClass;
                +    
                +    /**
                +    * Get the utils class interface
                +    * 
                +    * @return adLDAPUtils
                +    */
                +    public function utilities() {
                +        if (!$this->utilClass) {
                +            $this->utilClass = new adLDAPUtils($this);
                +        }   
                +        return $this->utilClass;
                +    }
                +    
                +    /**
                +    * The contacts class
                +    * 
                +    * @var adLDAPContacts
                +    */
                +    protected $contactClass;
                +    
                +    /**
                +    * Get the contacts class interface
                +    * 
                +    * @return adLDAPContacts
                +    */
                +    public function contact() {
                +        if (!$this->contactClass) {
                +            $this->contactClass = new adLDAPContacts($this);
                +        }   
                +        return $this->contactClass;
                +    }
                +    
                +    /**
                +    * The exchange class
                +    * 
                +    * @var adLDAPExchange
                +    */
                +    protected $exchangeClass;
                +    
                +    /**
                +    * Get the exchange class interface
                +    * 
                +    * @return adLDAPExchange
                +    */
                +    public function exchange() {
                +        if (!$this->exchangeClass) {
                +            $this->exchangeClass = new adLDAPExchange($this);
                +        }   
                +        return $this->exchangeClass;
                +    }
                +    
                +    /**
                +    * The computers class
                +    * 
                +    * @var adLDAPComputers
                +    */
                +    protected $computersClass;
                +    
                +    /**
                +    * Get the computers class interface
                +    * 
                +    * @return adLDAPComputers
                +    */
                +    public function computer() {
                +        if (!$this->computerClass) {
                +            $this->computerClass = new adLDAPComputers($this);
                +        }   
                +        return $this->computerClass;
                +    }
                +
                +    /**
                +    * Getters and Setters
                +    */
                +    
                +    /**
                +    * Set the account suffix
                +    * 
                +    * @param string $accountSuffix
                +    * @return void
                +    */
                +    public function setAccountSuffix($accountSuffix)
                +    {
                +          $this->accountSuffix = $accountSuffix;
                +    }
                +
                +    /**
                +    * Get the account suffix
                +    * 
                +    * @return string
                +    */
                +    public function getAccountSuffix()
                +    {
                +          return $this->accountSuffix;
                +    }
                +    
                +    /**
                +    * Set the domain controllers array
                +    * 
                +    * @param array $domainControllers
                +    * @return void
                +    */
                +    public function setDomainControllers(array $domainControllers)
                +    {
                +          $this->domainControllers = $domainControllers;
                +    }
                +
                +    /**
                +    * Get the list of domain controllers
                +    * 
                +    * @return void
                +    */
                +    public function getDomainControllers()
                +    {
                +          return $this->domainControllers;
                +    }
                +    
                +    /**
                +    * Sets the port number your domain controller communicates over
                +    * 
                +    * @param int $adPort
                +    */
                +    public function setPort($adPort) 
                +    { 
                +        $this->adPort = $adPort; 
                +    } 
                +    
                +    /**
                +    * Gets the port number your domain controller communicates over
                +    * 
                +    * @return int
                +    */
                +    public function getPort() 
                +    { 
                +        return $this->adPort; 
                +    } 
                +    
                +    /**
                +    * Set the username of an account with higher priviledges
                +    * 
                +    * @param string $adminUsername
                +    * @return void
                +    */
                +    public function setAdminUsername($adminUsername)
                +    {
                +          $this->adminUsername = $adminUsername;
                +    }
                +
                +    /**
                +    * Get the username of the account with higher priviledges
                +    * 
                +    * This will throw an exception for security reasons
                +    */
                +    public function getAdminUsername()
                +    {
                +          throw new adLDAPException('For security reasons you cannot access the domain administrator account details');
                +    }
                +    
                +    /**
                +    * Set the password of an account with higher priviledges
                +    * 
                +    * @param string $adminPassword
                +    * @return void
                +    */
                +    public function setAdminPassword($adminPassword)
                +    {
                +          $this->adminPassword = $adminPassword;
                +    }
                +
                +    /**
                +    * Get the password of the account with higher priviledges
                +    * 
                +    * This will throw an exception for security reasons
                +    */
                +    public function getAdminPassword()
                +    {
                +          throw new adLDAPException('For security reasons you cannot access the domain administrator account details');
                +    }
                +    
                +    /**
                +    * Set whether to detect the true primary group
                +    * 
                +    * @param bool $realPrimaryGroup
                +    * @return void
                +    */
                +    public function setRealPrimaryGroup($realPrimaryGroup)
                +    {
                +          $this->realPrimaryGroup = $realPrimaryGroup;
                +    }
                +
                +    /**
                +    * Get the real primary group setting
                +    * 
                +    * @return bool
                +    */
                +    public function getRealPrimaryGroup()
                +    {
                +          return $this->realPrimaryGroup;
                +    }
                +    
                +    /**
                +    * Set whether to use SSL
                +    * 
                +    * @param bool $useSSL
                +    * @return void
                +    */
                +    public function setUseSSL($useSSL)
                +    {
                +          $this->useSSL = $useSSL;
                +          // Set the default port correctly 
                +          if($this->useSSL) { 
                +            $this->setPort(self::ADLDAP_LDAPS_PORT); 
                +          }
                +          else { 
                +            $this->setPort(self::ADLDAP_LDAP_PORT); 
                +          } 
                +    }
                +
                +    /**
                +    * Get the SSL setting
                +    * 
                +    * @return bool
                +    */
                +    public function getUseSSL()
                +    {
                +          return $this->useSSL;
                +    }
                +    
                +    /**
                +    * Set whether to use TLS
                +    * 
                +    * @param bool $useTLS
                +    * @return void
                +    */
                +    public function setUseTLS($useTLS)
                +    {
                +          $this->useTLS = $useTLS;
                +    }
                +
                +    /**
                +    * Get the TLS setting
                +    * 
                +    * @return bool
                +    */
                +    public function getUseTLS()
                +    {
                +          return $this->useTLS;
                +    }
                +    
                +    /**
                +    * Set whether to use SSO
                +    * Requires ldap_sasl_bind support. Be sure --with-ldap-sasl is used when configuring PHP otherwise this function will be undefined. 
                +    * 
                +    * @param bool $useSSO
                +    * @return void
                +    */
                +    public function setUseSSO($useSSO)
                +    {
                +          if ($useSSO === true && !$this->ldapSaslSupported()) {
                +              throw new adLDAPException('No LDAP SASL support for PHP.  See: http://www.php.net/ldap_sasl_bind');
                +          }
                +          $this->useSSO = $useSSO;
                +    }
                +
                +    /**
                +    * Get the SSO setting
                +    * 
                +    * @return bool
                +    */
                +    public function getUseSSO()
                +    {
                +          return $this->useSSO;
                +    }
                +    
                +    /**
                +    * Set whether to lookup recursive groups
                +    * 
                +    * @param bool $recursiveGroups
                +    * @return void
                +    */
                +    public function setRecursiveGroups($recursiveGroups)
                +    {
                +          $this->recursiveGroups = $recursiveGroups;
                +    }
                +
                +    /**
                +    * Get the recursive groups setting
                +    * 
                +    * @return bool
                +    */
                +    public function getRecursiveGroups()
                +    {
                +          return $this->recursiveGroups;
                +    }
                +
                +    /**
                +    * Default Constructor
                +    * 
                +    * Tries to bind to the AD domain over LDAP or LDAPs
                +    * 
                +    * @param array $options Array of options to pass to the constructor
                +    * @throws Exception - if unable to bind to Domain Controller
                +    * @return bool
                +    */
                +    function __construct($options = array()) {
                +        // You can specifically overide any of the default configuration options setup above
                +        if (count($options) > 0) {
                +            if (array_key_exists("account_suffix",$options)){ $this->accountSuffix = $options["account_suffix"]; }
                +            if (array_key_exists("base_dn",$options)){ $this->baseDn = $options["base_dn"]; }
                +            if (array_key_exists("domain_controllers",$options)){ 
                +                if (!is_array($options["domain_controllers"])) { 
                +                    throw new adLDAPException('[domain_controllers] option must be an array');
                +                }
                +                $this->domainControllers = $options["domain_controllers"]; 
                +            }
                +            if (array_key_exists("admin_username",$options)){ $this->adminUsername = $options["admin_username"]; }
                +            if (array_key_exists("admin_password",$options)){ $this->adminPassword = $options["admin_password"]; }
                +            if (array_key_exists("real_primarygroup",$options)){ $this->realPrimaryGroup = $options["real_primarygroup"]; }
                +            if (array_key_exists("use_ssl",$options)){ $this->setUseSSL($options["use_ssl"]); }
                +            if (array_key_exists("use_tls",$options)){ $this->useTLS = $options["use_tls"]; }
                +            if (array_key_exists("recursive_groups",$options)){ $this->recursiveGroups = $options["recursive_groups"]; }
                +            if (array_key_exists("ad_port",$options)){ $this->setPort($options["ad_port"]); } 
                +            if (array_key_exists("sso",$options)) { 
                +                $this->setUseSSO($options["sso"]);
                +                if (!$this->ldapSaslSupported()) {
                +                    $this->setUseSSO(false);
                +                }
                +            } 
                +        }
                +        
                +        if ($this->ldapSupported() === false) {
                +            throw new adLDAPException('No LDAP support for PHP.  See: http://www.php.net/ldap');
                +        }
                +
                +        return $this->connect();
                +    }
                +
                +    /**
                +    * Default Destructor
                +    * 
                +    * Closes the LDAP connection
                +    * 
                +    * @return void
                +    */
                +    function __destruct() { 
                +        $this->close(); 
                +    }
                +
                +    /**
                +    * Connects and Binds to the Domain Controller
                +    * 
                +    * @return bool
                +    */
                +    public function connect() 
                +    {
                +        // Connect to the AD/LDAP server as the username/password
                +        $domainController = $this->randomController();
                +        if ($this->useSSL) {
                +            $this->ldapConnection = ldap_connect("ldaps://" . $domainController, $this->adPort);
                +        } else {
                +            $this->ldapConnection = ldap_connect($domainController, $this->adPort);
                +        }
                +               
                +        // Set some ldap options for talking to AD
                +        ldap_set_option($this->ldapConnection, LDAP_OPT_PROTOCOL_VERSION, 3);
                +        ldap_set_option($this->ldapConnection, LDAP_OPT_REFERRALS, 0);
                +        
                +        if ($this->useTLS) {
                +            ldap_start_tls($this->ldapConnection);
                +        }
                +               
                +        // Bind as a domain admin if they've set it up
                +        if ($this->adminUsername !== NULL && $this->adminPassword !== NULL) {
                +            $this->ldapBind = @ldap_bind($this->ldapConnection, $this->adminUsername . $this->accountSuffix, $this->adminPassword);
                +            if (!$this->ldapBind) {
                +                if ($this->useSSL && !$this->useTLS) {
                +                    // If you have problems troubleshooting, remove the @ character from the ldapldapBind command above to get the actual error message
                +                    throw new adLDAPException('Bind to Active Directory failed. Either the LDAPs connection failed or the login credentials are incorrect. AD said: ' . $this->getLastError());
                +                }
                +                else {
                +                    throw new adLDAPException('Bind to Active Directory failed. Check the login credentials and/or server details. AD said: ' . $this->getLastError());
                +                }
                +            }
                +        }
                +        if ($this->useSSO && $_SERVER['REMOTE_USER'] && $this->adminUsername === null && $_SERVER['KRB5CCNAME']) {
                +            putenv("KRB5CCNAME=" . $_SERVER['KRB5CCNAME']);  
                +            $this->ldapBind = @ldap_sasl_bind($this->ldapConnection, NULL, NULL, "GSSAPI"); 
                +            if (!$this->ldapBind){ 
                +                throw new adLDAPException('Rebind to Active Directory failed. AD said: ' . $this->getLastError()); 
                +            }
                +            else {
                +                return true;
                +            }
                +        }
                +                
                +        
                +        if ($this->baseDn == NULL) {
                +            $this->baseDn = $this->findBaseDn();   
                +        }
                +        
                +        return true;
                +    }
                +    
                +    /**
                +    * Closes the LDAP connection
                +    * 
                +    * @return void
                +    */
                +    public function close() {
                +        if ($this->ldapConnection) {
                +            @ldap_close($this->ldapConnection);
                +        }
                +    }
                +    
                +    /**
                +    * Validate a user's login credentials
                +    * 
                +    * @param string $username A user's AD username
                +    * @param string $password A user's AD password
                +    * @param bool optional $preventRebind
                +    * @return bool
                +    */
                +    public function authenticate($username, $password, $preventRebind = false) {
                +        // Prevent null binding
                +        if ($username === NULL || $password === NULL) { return false; } 
                +        if (empty($username) || empty($password)) { return false; }
                +        
                +        // Allow binding over SSO for Kerberos
                +        if ($this->useSSO && $_SERVER['REMOTE_USER'] && $_SERVER['REMOTE_USER'] == $username && $this->adminUsername === NULL && $_SERVER['KRB5CCNAME']) { 
                +            putenv("KRB5CCNAME=" . $_SERVER['KRB5CCNAME']);
                +            $this->ldapBind = @ldap_sasl_bind($this->ldapConnection, NULL, NULL, "GSSAPI");
                +            if (!$this->ldapBind) {
                +                throw new adLDAPException('Rebind to Active Directory failed. AD said: ' . $this->getLastError());
                +            }
                +            else {
                +                return true;
                +            }
                +        }
                +        
                +        // Bind as the user        
                +        $ret = true;
                +        $this->ldapBind = @ldap_bind($this->ldapConnection, $username . $this->accountSuffix, $password);
                +        if (!$this->ldapBind){ 
                +            $ret = false; 
                +        }
                +        
                +        // Cnce we've checked their details, kick back into admin mode if we have it
                +        if ($this->adminUsername !== NULL && !$preventRebind) {
                +            $this->ldapBind = @ldap_bind($this->ldapConnection, $this->adminUsername . $this->accountSuffix , $this->adminPassword);
                +            if (!$this->ldapBind){
                +                // This should never happen in theory
                +                throw new adLDAPException('Rebind to Active Directory failed. AD said: ' . $this->getLastError());
                +            } 
                +        } 
                +        
                +        return $ret;
                +    }
                +    
                +    /**
                +    * Find the Base DN of your domain controller
                +    * 
                +    * @return string
                +    */
                +    public function findBaseDn() 
                +    {
                +        $namingContext = $this->getRootDse(array('defaultnamingcontext'));   
                +        return $namingContext[0]['defaultnamingcontext'][0];
                +    }
                +    
                +    /**
                +    * Get the RootDSE properties from a domain controller
                +    * 
                +    * @param array $attributes The attributes you wish to query e.g. defaultnamingcontext
                +    * @return array
                +    */
                +    public function getRootDse($attributes = array("*", "+")) {
                +        if (!$this->ldapBind){ return (false); }
                +        
                +        $sr = @ldap_read($this->ldapConnection, NULL, 'objectClass=*', $attributes);
                +        $entries = @ldap_get_entries($this->ldapConnection, $sr);
                +        return $entries;
                +    }
                +
                +    /**
                +    * Get last error from Active Directory
                +    * 
                +    * This function gets the last message from Active Directory
                +    * This may indeed be a 'Success' message but if you get an unknown error
                +    * it might be worth calling this function to see what errors were raised
                +    * 
                +    * return string
                +    */
                +    public function getLastError() {
                +        return @ldap_error($this->ldapConnection);
                +    }
                +    
                +    /**
                +    * Detect LDAP support in php
                +    * 
                +    * @return bool
                +    */    
                +    protected function ldapSupported()
                +    {
                +        if (!function_exists('ldap_connect')) {
                +            return false;   
                +        }
                +        return true;
                +    }
                +    
                +    /**
                +    * Detect ldap_sasl_bind support in PHP
                +    * 
                +    * @return bool
                +    */
                +    protected function ldapSaslSupported()
                +    {
                +        if (!function_exists('ldap_sasl_bind')) {
                +            return false;
                +        }
                +        return true;
                +    }
                +    
                +    /**
                +    * Schema
                +    * 
                +    * @param array $attributes Attributes to be queried
                +    * @return array
                +    */    
                +    public function adldap_schema($attributes){
                +    
                +        // LDAP doesn't like NULL attributes, only set them if they have values
                +        // If you wish to remove an attribute you should set it to a space
                +        // TO DO: Adapt user_modify to use ldap_mod_delete to remove a NULL attribute
                +        $mod=array();
                +        
                +        // Check every attribute to see if it contains 8bit characters and then UTF8 encode them
                +        array_walk($attributes, array($this, 'encode8bit'));
                +
                +        if ($attributes["address_city"]){ $mod["l"][0]=$attributes["address_city"]; }
                +        if ($attributes["address_code"]){ $mod["postalCode"][0]=$attributes["address_code"]; }
                +        //if ($attributes["address_country"]){ $mod["countryCode"][0]=$attributes["address_country"]; } // use country codes?
                +        if ($attributes["address_country"]){ $mod["c"][0]=$attributes["address_country"]; }
                +        if ($attributes["address_pobox"]){ $mod["postOfficeBox"][0]=$attributes["address_pobox"]; }
                +        if ($attributes["address_state"]){ $mod["st"][0]=$attributes["address_state"]; }
                +        if ($attributes["address_street"]){ $mod["streetAddress"][0]=$attributes["address_street"]; }
                +        if ($attributes["company"]){ $mod["company"][0]=$attributes["company"]; }
                +        if ($attributes["change_password"]){ $mod["pwdLastSet"][0]=0; }
                +        if ($attributes["department"]){ $mod["department"][0]=$attributes["department"]; }
                +        if ($attributes["description"]){ $mod["description"][0]=$attributes["description"]; }
                +        if ($attributes["display_name"]){ $mod["displayName"][0]=$attributes["display_name"]; }
                +        if ($attributes["email"]){ $mod["mail"][0]=$attributes["email"]; }
                +        if ($attributes["expires"]){ $mod["accountExpires"][0]=$attributes["expires"]; } //unix epoch format?
                +        if ($attributes["firstname"]){ $mod["givenName"][0]=$attributes["firstname"]; }
                +        if ($attributes["home_directory"]){ $mod["homeDirectory"][0]=$attributes["home_directory"]; }
                +        if ($attributes["home_drive"]){ $mod["homeDrive"][0]=$attributes["home_drive"]; }
                +        if ($attributes["initials"]){ $mod["initials"][0]=$attributes["initials"]; }
                +        if ($attributes["logon_name"]){ $mod["userPrincipalName"][0]=$attributes["logon_name"]; }
                +        if ($attributes["manager"]){ $mod["manager"][0]=$attributes["manager"]; }  //UNTESTED ***Use DistinguishedName***
                +        if ($attributes["office"]){ $mod["physicalDeliveryOfficeName"][0]=$attributes["office"]; }
                +        if ($attributes["password"]){ $mod["unicodePwd"][0]=$this->user()->encodePassword($attributes["password"]); }
                +        if ($attributes["profile_path"]){ $mod["profilepath"][0]=$attributes["profile_path"]; }
                +        if ($attributes["script_path"]){ $mod["scriptPath"][0]=$attributes["script_path"]; }
                +        if ($attributes["surname"]){ $mod["sn"][0]=$attributes["surname"]; }
                +        if ($attributes["title"]){ $mod["title"][0]=$attributes["title"]; }
                +        if ($attributes["telephone"]){ $mod["telephoneNumber"][0]=$attributes["telephone"]; }
                +        if ($attributes["mobile"]){ $mod["mobile"][0]=$attributes["mobile"]; }
                +        if ($attributes["pager"]){ $mod["pager"][0]=$attributes["pager"]; }
                +        if ($attributes["ipphone"]){ $mod["ipphone"][0]=$attributes["ipphone"]; }
                +        if ($attributes["web_page"]){ $mod["wWWHomePage"][0]=$attributes["web_page"]; }
                +        if ($attributes["fax"]){ $mod["facsimileTelephoneNumber"][0]=$attributes["fax"]; }
                +        if ($attributes["enabled"]){ $mod["userAccountControl"][0]=$attributes["enabled"]; }
                +        if ($attributes["homephone"]){ $mod["homephone"][0]=$attributes["homephone"]; }
                +        
                +        // Distribution List specific schema
                +        if ($attributes["group_sendpermission"]){ $mod["dlMemSubmitPerms"][0]=$attributes["group_sendpermission"]; }
                +        if ($attributes["group_rejectpermission"]){ $mod["dlMemRejectPerms"][0]=$attributes["group_rejectpermission"]; }
                +        
                +        // Exchange Schema
                +        if ($attributes["exchange_homemdb"]){ $mod["homeMDB"][0]=$attributes["exchange_homemdb"]; }
                +        if ($attributes["exchange_mailnickname"]){ $mod["mailNickname"][0]=$attributes["exchange_mailnickname"]; }
                +        if ($attributes["exchange_proxyaddress"]){ $mod["proxyAddresses"][0]=$attributes["exchange_proxyaddress"]; }
                +        if ($attributes["exchange_usedefaults"]){ $mod["mDBUseDefaults"][0]=$attributes["exchange_usedefaults"]; }
                +        if ($attributes["exchange_policyexclude"]){ $mod["msExchPoliciesExcluded"][0]=$attributes["exchange_policyexclude"]; }
                +        if ($attributes["exchange_policyinclude"]){ $mod["msExchPoliciesIncluded"][0]=$attributes["exchange_policyinclude"]; }       
                +        if ($attributes["exchange_addressbook"]){ $mod["showInAddressBook"][0]=$attributes["exchange_addressbook"]; }    
                +        if ($attributes["exchange_altrecipient"]){ $mod["altRecipient"][0]=$attributes["exchange_altrecipient"]; } 
                +        if ($attributes["exchange_deliverandredirect"]){ $mod["deliverAndRedirect"][0]=$attributes["exchange_deliverandredirect"]; }    
                +        
                +        // This schema is designed for contacts
                +        if ($attributes["exchange_hidefromlists"]){ $mod["msExchHideFromAddressLists"][0]=$attributes["exchange_hidefromlists"]; }
                +        if ($attributes["contact_email"]){ $mod["targetAddress"][0]=$attributes["contact_email"]; }
                +        
                +        //echo ("
                "); print_r($mod);
                +        /*
                +        // modifying a name is a bit fiddly
                +        if ($attributes["firstname"] && $attributes["surname"]){
                +            $mod["cn"][0]=$attributes["firstname"]." ".$attributes["surname"];
                +            $mod["displayname"][0]=$attributes["firstname"]." ".$attributes["surname"];
                +            $mod["name"][0]=$attributes["firstname"]." ".$attributes["surname"];
                +        }
                +        */
                +
                +        if (count($mod)==0){ return (false); }
                +        return ($mod);
                +    }
                +    
                +    /**
                +    * Convert 8bit characters e.g. accented characters to UTF8 encoded characters
                +    */
                +    protected function encode8Bit(&$item, $key) {
                +        $encode = false;
                +        if (is_string($item)) {
                +            for ($i=0; $i> 7) {
                +                    $encode = true;
                +                }
                +            }
                +        }
                +        if ($encode === true && $key != 'password') {
                +            $item = utf8_encode($item);   
                +        }
                +    }
                +    
                +    /**
                +    * Select a random domain controller from your domain controller array
                +    * 
                +    * @return string
                +    */
                +    protected function randomController() 
                +    {
                +        mt_srand(doubleval(microtime()) * 100000000); // For older PHP versions
                +        /*if (sizeof($this->domainControllers) > 1) {
                +            $adController = $this->domainControllers[array_rand($this->domainControllers)]; 
                +            // Test if the controller is responding to pings
                +            $ping = $this->pingController($adController); 
                +            if ($ping === false) { 
                +                // Find the current key in the domain controllers array
                +                $key = array_search($adController, $this->domainControllers);
                +                // Remove it so that we don't end up in a recursive loop
                +                unset($this->domainControllers[$key]);
                +                // Select a new controller
                +                return $this->randomController(); 
                +            }
                +            else { 
                +                return ($adController); 
                +            }
                +        } */
                +        return $this->domainControllers[array_rand($this->domainControllers)];
                +    }  
                +    
                +    /** 
                +    * Test basic connectivity to controller 
                +    * 
                +    * @return bool
                +    */ 
                +    protected function pingController($host) {
                +        $port = $this->adPort; 
                +        fsockopen($host, $port, $errno, $errstr, 10); 
                +        if ($errno > 0) {
                +            return false;
                +        }
                +        return true;
                +    }
                +
                +}
                +
                +/**
                +* adLDAP Exception Handler
                +* 
                +* Exceptions of this type are thrown on bind failure or when SSL is required but not configured
                +* Example:
                +* try {
                +*   $adldap = new adLDAP();
                +* }
                +* catch (adLDAPException $e) {
                +*   echo $e;
                +*   exit();
                +* }
                +*/
                +class adLDAPException extends Exception {}
                +
                 ?>
                \ No newline at end of file
                diff --git a/lib/plugins/authad/adLDAP/classes/adLDAPComputers.php b/lib/plugins/authad/adLDAP/classes/adLDAPComputers.php
                index 71b24a04f..aabd88fa5 100644
                --- a/lib/plugins/authad/adLDAP/classes/adLDAPComputers.php
                +++ b/lib/plugins/authad/adLDAP/classes/adLDAPComputers.php
                @@ -1,153 +1,153 @@
                -adldap = $adldap;
                -    }
                -    
                -    /**
                -    * Get information about a specific computer. Returned in a raw array format from AD
                -    * 
                -    * @param string $computerName The name of the computer
                -    * @param array $fields Attributes to return
                -    * @return array
                -    */
                -    public function info($computerName, $fields = NULL)
                -    {
                -        if ($computerName === NULL) { return false; }
                -        if (!$this->adldap->getLdapBind()) { return false; }
                -
                -        $filter = "(&(objectClass=computer)(cn=" . $computerName . "))";
                -        if ($fields === NULL) { 
                -            $fields = array("memberof","cn","displayname","dnshostname","distinguishedname","objectcategory","operatingsystem","operatingsystemservicepack","operatingsystemversion"); 
                -        }
                -        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
                -        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                -        
                -        return $entries;
                -    }
                -    
                -    /**
                -    * Find information about the computers. Returned in a raw array format from AD
                -    * 
                -    * @param string $computerName The name of the computer
                -    * @param array $fields Array of parameters to query
                -    * @return mixed
                -    */
                -    public function infoCollection($computerName, $fields = NULL)
                -    {
                -        if ($computerName === NULL) { return false; }
                -        if (!$this->adldap->getLdapBind()) { return false; }
                -        
                -        $info = $this->info($computerName, $fields);
                -        
                -        if ($info !== false) {
                -            $collection = new adLDAPComputerCollection($info, $this->adldap);
                -            return $collection;
                -        }
                -        return false;
                -    }
                -    
                -    /**
                -    * Check if a computer is in a group
                -    * 
                -    * @param string $computerName The name of the computer
                -    * @param string $group The group to check
                -    * @param bool $recursive Whether to check recursively
                -    * @return array
                -    */
                -    public function inGroup($computerName, $group, $recursive = NULL)
                -    {
                -        if ($computerName === NULL) { return false; }
                -        if ($group === NULL) { return false; }
                -        if (!$this->adldap->getLdapBind()) { return false; }
                -        if ($recursive === NULL) { $recursive = $this->adldap->getRecursiveGroups(); } // use the default option if they haven't set it
                -
                -        //get a list of the groups
                -        $groups = $this->groups($computerName, array("memberof"), $recursive);
                -
                -        //return true if the specified group is in the group list
                -        if (in_array($group, $groups)){ 
                -            return true; 
                -        }
                -
                -        return false;
                -    }
                -    
                -    /**
                -    * Get the groups a computer is in
                -    * 
                -    * @param string $computerName The name of the computer
                -    * @param bool $recursive Whether to check recursively
                -    * @return array
                -    */
                -    public function groups($computerName, $recursive = NULL)
                -    {
                -        if ($computerName === NULL) { return false; }
                -        if ($recursive === NULL) { $recursive = $this->adldap->getRecursiveGroups(); } //use the default option if they haven't set it
                -        if (!$this->adldap->getLdapBind()){ return false; }
                -
                -        //search the directory for their information
                -        $info = @$this->info($computerName, array("memberof", "primarygroupid"));
                -        $groups = $this->adldap->utilities()->niceNames($info[0]["memberof"]); //presuming the entry returned is our guy (unique usernames)
                -
                -        if ($recursive === true) {
                -            foreach ($groups as $id => $groupName){
                -              $extraGroups = $this->adldap->group()->recursiveGroups($groupName);
                -              $groups = array_merge($groups, $extraGroups);
                -            }
                -        }
                -
                -        return $groups;
                -    }
                -    
                -}
                +adldap = $adldap;
                +    }
                +    
                +    /**
                +    * Get information about a specific computer. Returned in a raw array format from AD
                +    * 
                +    * @param string $computerName The name of the computer
                +    * @param array $fields Attributes to return
                +    * @return array
                +    */
                +    public function info($computerName, $fields = NULL)
                +    {
                +        if ($computerName === NULL) { return false; }
                +        if (!$this->adldap->getLdapBind()) { return false; }
                +
                +        $filter = "(&(objectClass=computer)(cn=" . $computerName . "))";
                +        if ($fields === NULL) { 
                +            $fields = array("memberof","cn","displayname","dnshostname","distinguishedname","objectcategory","operatingsystem","operatingsystemservicepack","operatingsystemversion"); 
                +        }
                +        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
                +        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                +        
                +        return $entries;
                +    }
                +    
                +    /**
                +    * Find information about the computers. Returned in a raw array format from AD
                +    * 
                +    * @param string $computerName The name of the computer
                +    * @param array $fields Array of parameters to query
                +    * @return mixed
                +    */
                +    public function infoCollection($computerName, $fields = NULL)
                +    {
                +        if ($computerName === NULL) { return false; }
                +        if (!$this->adldap->getLdapBind()) { return false; }
                +        
                +        $info = $this->info($computerName, $fields);
                +        
                +        if ($info !== false) {
                +            $collection = new adLDAPComputerCollection($info, $this->adldap);
                +            return $collection;
                +        }
                +        return false;
                +    }
                +    
                +    /**
                +    * Check if a computer is in a group
                +    * 
                +    * @param string $computerName The name of the computer
                +    * @param string $group The group to check
                +    * @param bool $recursive Whether to check recursively
                +    * @return array
                +    */
                +    public function inGroup($computerName, $group, $recursive = NULL)
                +    {
                +        if ($computerName === NULL) { return false; }
                +        if ($group === NULL) { return false; }
                +        if (!$this->adldap->getLdapBind()) { return false; }
                +        if ($recursive === NULL) { $recursive = $this->adldap->getRecursiveGroups(); } // use the default option if they haven't set it
                +
                +        //get a list of the groups
                +        $groups = $this->groups($computerName, array("memberof"), $recursive);
                +
                +        //return true if the specified group is in the group list
                +        if (in_array($group, $groups)){ 
                +            return true; 
                +        }
                +
                +        return false;
                +    }
                +    
                +    /**
                +    * Get the groups a computer is in
                +    * 
                +    * @param string $computerName The name of the computer
                +    * @param bool $recursive Whether to check recursively
                +    * @return array
                +    */
                +    public function groups($computerName, $recursive = NULL)
                +    {
                +        if ($computerName === NULL) { return false; }
                +        if ($recursive === NULL) { $recursive = $this->adldap->getRecursiveGroups(); } //use the default option if they haven't set it
                +        if (!$this->adldap->getLdapBind()){ return false; }
                +
                +        //search the directory for their information
                +        $info = @$this->info($computerName, array("memberof", "primarygroupid"));
                +        $groups = $this->adldap->utilities()->niceNames($info[0]["memberof"]); //presuming the entry returned is our guy (unique usernames)
                +
                +        if ($recursive === true) {
                +            foreach ($groups as $id => $groupName){
                +              $extraGroups = $this->adldap->group()->recursiveGroups($groupName);
                +              $groups = array_merge($groups, $extraGroups);
                +            }
                +        }
                +
                +        return $groups;
                +    }
                +    
                +}
                 ?>
                \ No newline at end of file
                diff --git a/lib/plugins/authad/adLDAP/classes/adLDAPContacts.php b/lib/plugins/authad/adLDAP/classes/adLDAPContacts.php
                index addd3e5f0..42a0d756b 100644
                --- a/lib/plugins/authad/adLDAP/classes/adLDAPContacts.php
                +++ b/lib/plugins/authad/adLDAP/classes/adLDAPContacts.php
                @@ -1,294 +1,294 @@
                -adldap = $adldap;
                -    }
                -    
                -    //*****************************************************************************************************************
                -    // CONTACT FUNCTIONS
                -    // * Still work to do in this area, and new functions to write
                -    
                -    /**
                -    * Create a contact
                -    * 
                -    * @param array $attributes The attributes to set to the contact
                -    * @return bool
                -    */
                -    public function create($attributes)
                -    {
                -        // Check for compulsory fields
                -        if (!array_key_exists("display_name", $attributes)) { return "Missing compulsory field [display_name]"; }
                -        if (!array_key_exists("email", $attributes)) { return "Missing compulsory field [email]"; }
                -        if (!array_key_exists("container", $attributes)) { return "Missing compulsory field [container]"; }
                -        if (!is_array($attributes["container"])) { return "Container attribute must be an array."; }
                -
                -        // Translate the schema
                -        $add = $this->adldap->adldap_schema($attributes);
                -        
                -        // Additional stuff only used for adding contacts
                -        $add["cn"][0] = $attributes["display_name"];
                -        $add["objectclass"][0] = "top";
                -        $add["objectclass"][1] = "person";
                -        $add["objectclass"][2] = "organizationalPerson";
                -        $add["objectclass"][3] = "contact"; 
                -        if (!isset($attributes['exchange_hidefromlists'])) {
                -            $add["msExchHideFromAddressLists"][0] = "TRUE";
                -        }
                -
                -        // Determine the container
                -        $attributes["container"] = array_reverse($attributes["container"]);
                -        $container= "OU=" . implode(",OU=", $attributes["container"]);
                -
                -        // Add the entry
                -        $result = @ldap_add($this->adldap->getLdapConnection(), "CN=" . $this->adldap->utilities()->escapeCharacters($add["cn"][0]) . ", " . $container . "," . $this->adldap->getBaseDn(), $add);
                -        if ($result != true) { 
                -            return false; 
                -        }
                -        
                -        return true;
                -    }  
                -    
                -    /**
                -    * Determine the list of groups a contact is a member of
                -    * 
                -    * @param string $distinguisedname The full DN of a contact
                -    * @param bool $recursive Recursively check groups
                -    * @return array
                -    */
                -    public function groups($distinguishedName, $recursive = NULL)
                -    {
                -        if ($distinguishedName === NULL) { return false; }
                -        if ($recursive === NULL) { $recursive = $this->adldap->getRecursiveGroups(); } //use the default option if they haven't set it
                -        if (!$this->adldap->getLdapBind()){ return false; }
                -        
                -        // Search the directory for their information
                -        $info = @$this->info($distinguishedName, array("memberof", "primarygroupid"));
                -        $groups = $this->adldap->utilities()->niceNames($info[0]["memberof"]); //presuming the entry returned is our contact
                -
                -        if ($recursive === true){
                -            foreach ($groups as $id => $groupName){
                -                $extraGroups = $this->adldap->group()->recursiveGroups($groupName);
                -                $groups = array_merge($groups, $extraGroups);
                -            }
                -        }
                -        
                -        return $groups;
                -    }
                -    
                -    /**
                -    * Get contact information. Returned in a raw array format from AD
                -    * 
                -    * @param string $distinguisedname The full DN of a contact
                -    * @param array $fields Attributes to be returned
                -    * @return array
                -    */
                -    public function info($distinguishedName, $fields = NULL)
                -    {
                -        if ($distinguishedName === NULL) { return false; }
                -        if (!$this->adldap->getLdapBind()) { return false; }
                -
                -        $filter = "distinguishedName=" . $distinguishedName;
                -        if ($fields === NULL) { 
                -            $fields = array("distinguishedname", "mail", "memberof", "department", "displayname", "telephonenumber", "primarygroupid", "objectsid"); 
                -        }
                -        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
                -        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                -        
                -        if ($entries[0]['count'] >= 1) {
                -            // AD does not return the primary group in the ldap query, we may need to fudge it
                -            if ($this->adldap->getRealPrimaryGroup() && isset($entries[0]["primarygroupid"][0]) && isset($entries[0]["primarygroupid"][0])){
                -                //$entries[0]["memberof"][]=$this->group_cn($entries[0]["primarygroupid"][0]);
                -                $entries[0]["memberof"][] = $this->adldap->group()->getPrimaryGroup($entries[0]["primarygroupid"][0], $entries[0]["objectsid"][0]);
                -            } else {
                -                $entries[0]["memberof"][] = "CN=Domain Users,CN=Users," . $this->adldap->getBaseDn();
                -            }
                -        }
                -        
                -        $entries[0]["memberof"]["count"]++;
                -        return $entries;
                -    }
                -    
                -    /**
                -    * Find information about the contacts. Returned in a raw array format from AD
                -    * 
                -    * @param string $distinguishedName The full DN of a contact 
                -    * @param array $fields Array of parameters to query
                -    * @return mixed
                -    */
                -    public function infoCollection($distinguishedName, $fields = NULL)
                -    {
                -        if ($distinguishedName === NULL) { return false; }
                -        if (!$this->adldap->getLdapBind()) { return false; }
                -        
                -        $info = $this->info($distinguishedName, $fields);
                -        
                -        if ($info !== false) {
                -            $collection = new adLDAPContactCollection($info, $this->adldap);
                -            return $collection;
                -        }
                -        return false;
                -    }
                -    
                -    /**
                -    * Determine if a contact is a member of a group
                -    * 
                -    * @param string $distinguisedName The full DN of a contact
                -    * @param string $group The group name to query
                -    * @param bool $recursive Recursively check groups
                -    * @return bool
                -    */
                -    public function inGroup($distinguisedName, $group, $recursive = NULL)
                -    {
                -        if ($distinguisedName === NULL) { return false; }
                -        if ($group === NULL) { return false; }
                -        if (!$this->adldap->getLdapBind()) { return false; }
                -        if ($recursive === NULL) { $recursive = $this->adldap->getRecursiveGroups(); } //use the default option if they haven't set it
                -        
                -        // Get a list of the groups
                -        $groups = $this->groups($distinguisedName, array("memberof"), $recursive);
                -        
                -        // Return true if the specified group is in the group list
                -        if (in_array($group, $groups)){ 
                -            return true; 
                -        }
                -
                -        return false;
                -    }          
                -    
                -    /**
                -    * Modify a contact
                -    * 
                -    * @param string $distinguishedName The contact to query
                -    * @param array $attributes The attributes to modify.  Note if you set the enabled attribute you must not specify any other attributes
                -    * @return bool
                -    */
                -    public function modify($distinguishedName, $attributes) {
                -        if ($distinguishedName === NULL) { return "Missing compulsory field [distinguishedname]"; }
                -        
                -        // Translate the update to the LDAP schema                
                -        $mod = $this->adldap->adldap_schema($attributes);
                -        
                -        // Check to see if this is an enabled status update
                -        if (!$mod) { 
                -            return false; 
                -        }
                -        
                -        // Do the update
                -        $result = ldap_modify($this->adldap->getLdapConnection(), $distinguishedName, $mod);
                -        if ($result == false) { 
                -            return false; 
                -        }
                -        
                -        return true;
                -    }
                -    
                -    /**
                -    * Delete a contact
                -    * 
                -    * @param string $distinguishedName The contact dn to delete (please be careful here!)
                -    * @return array
                -    */
                -    public function delete($distinguishedName) 
                -    {
                -        $result = $this->folder()->delete($distinguishedName);
                -        if ($result != true) { 
                -            return false; 
                -        }       
                -        return true;
                -    }
                -    
                -    /**
                -    * Return a list of all contacts
                -    * 
                -    * @param bool $includeDescription Include a description of a contact
                -    * @param string $search The search parameters
                -    * @param bool $sorted Whether to sort the results
                -    * @return array
                -    */
                -    public function all($includeDescription = false, $search = "*", $sorted = true) {
                -        if (!$this->adldap->getLdapBind()) { return false; }
                -        
                -        // Perform the search and grab all their details
                -        $filter = "(&(objectClass=contact)(cn=" . $search . "))";
                -        $fields = array("displayname","distinguishedname");           
                -        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
                -        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                -
                -        $usersArray = array();
                -        for ($i=0; $i<$entries["count"]; $i++){
                -            if ($includeDescription && strlen($entries[$i]["displayname"][0])>0){
                -                $usersArray[$entries[$i]["distinguishedname"][0]] = $entries[$i]["displayname"][0];
                -            } elseif ($includeDescription){
                -                $usersArray[$entries[$i]["distinguishedname"][0]] = $entries[$i]["distinguishedname"][0];
                -            } else {
                -                array_push($usersArray, $entries[$i]["distinguishedname"][0]);
                -            }
                -        }
                -        if ($sorted) { 
                -            asort($usersArray); 
                -        }
                -        return $usersArray;
                -    }
                -    
                -    /**
                -    * Mail enable a contact
                -    * Allows email to be sent to them through Exchange
                -    * 
                -    * @param string $distinguishedname The contact to mail enable
                -    * @param string $emailaddress The email address to allow emails to be sent through
                -    * @param string $mailnickname The mailnickname for the contact in Exchange.  If NULL this will be set to the display name
                -    * @return bool
                -    */
                -    public function contactMailEnable($distinguishedName, $emailAddress, $mailNickname = NULL){
                -        return $this->adldap->exchange()->contactMailEnable($distinguishedName, $emailAddress, $mailNickname);
                -    }
                -    
                -    
                -}
                -?>
                +adldap = $adldap;
                +    }
                +    
                +    //*****************************************************************************************************************
                +    // CONTACT FUNCTIONS
                +    // * Still work to do in this area, and new functions to write
                +    
                +    /**
                +    * Create a contact
                +    * 
                +    * @param array $attributes The attributes to set to the contact
                +    * @return bool
                +    */
                +    public function create($attributes)
                +    {
                +        // Check for compulsory fields
                +        if (!array_key_exists("display_name", $attributes)) { return "Missing compulsory field [display_name]"; }
                +        if (!array_key_exists("email", $attributes)) { return "Missing compulsory field [email]"; }
                +        if (!array_key_exists("container", $attributes)) { return "Missing compulsory field [container]"; }
                +        if (!is_array($attributes["container"])) { return "Container attribute must be an array."; }
                +
                +        // Translate the schema
                +        $add = $this->adldap->adldap_schema($attributes);
                +        
                +        // Additional stuff only used for adding contacts
                +        $add["cn"][0] = $attributes["display_name"];
                +        $add["objectclass"][0] = "top";
                +        $add["objectclass"][1] = "person";
                +        $add["objectclass"][2] = "organizationalPerson";
                +        $add["objectclass"][3] = "contact"; 
                +        if (!isset($attributes['exchange_hidefromlists'])) {
                +            $add["msExchHideFromAddressLists"][0] = "TRUE";
                +        }
                +
                +        // Determine the container
                +        $attributes["container"] = array_reverse($attributes["container"]);
                +        $container= "OU=" . implode(",OU=", $attributes["container"]);
                +
                +        // Add the entry
                +        $result = @ldap_add($this->adldap->getLdapConnection(), "CN=" . $this->adldap->utilities()->escapeCharacters($add["cn"][0]) . ", " . $container . "," . $this->adldap->getBaseDn(), $add);
                +        if ($result != true) { 
                +            return false; 
                +        }
                +        
                +        return true;
                +    }  
                +    
                +    /**
                +    * Determine the list of groups a contact is a member of
                +    * 
                +    * @param string $distinguisedname The full DN of a contact
                +    * @param bool $recursive Recursively check groups
                +    * @return array
                +    */
                +    public function groups($distinguishedName, $recursive = NULL)
                +    {
                +        if ($distinguishedName === NULL) { return false; }
                +        if ($recursive === NULL) { $recursive = $this->adldap->getRecursiveGroups(); } //use the default option if they haven't set it
                +        if (!$this->adldap->getLdapBind()){ return false; }
                +        
                +        // Search the directory for their information
                +        $info = @$this->info($distinguishedName, array("memberof", "primarygroupid"));
                +        $groups = $this->adldap->utilities()->niceNames($info[0]["memberof"]); //presuming the entry returned is our contact
                +
                +        if ($recursive === true){
                +            foreach ($groups as $id => $groupName){
                +                $extraGroups = $this->adldap->group()->recursiveGroups($groupName);
                +                $groups = array_merge($groups, $extraGroups);
                +            }
                +        }
                +        
                +        return $groups;
                +    }
                +    
                +    /**
                +    * Get contact information. Returned in a raw array format from AD
                +    * 
                +    * @param string $distinguisedname The full DN of a contact
                +    * @param array $fields Attributes to be returned
                +    * @return array
                +    */
                +    public function info($distinguishedName, $fields = NULL)
                +    {
                +        if ($distinguishedName === NULL) { return false; }
                +        if (!$this->adldap->getLdapBind()) { return false; }
                +
                +        $filter = "distinguishedName=" . $distinguishedName;
                +        if ($fields === NULL) { 
                +            $fields = array("distinguishedname", "mail", "memberof", "department", "displayname", "telephonenumber", "primarygroupid", "objectsid"); 
                +        }
                +        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
                +        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                +        
                +        if ($entries[0]['count'] >= 1) {
                +            // AD does not return the primary group in the ldap query, we may need to fudge it
                +            if ($this->adldap->getRealPrimaryGroup() && isset($entries[0]["primarygroupid"][0]) && isset($entries[0]["primarygroupid"][0])){
                +                //$entries[0]["memberof"][]=$this->group_cn($entries[0]["primarygroupid"][0]);
                +                $entries[0]["memberof"][] = $this->adldap->group()->getPrimaryGroup($entries[0]["primarygroupid"][0], $entries[0]["objectsid"][0]);
                +            } else {
                +                $entries[0]["memberof"][] = "CN=Domain Users,CN=Users," . $this->adldap->getBaseDn();
                +            }
                +        }
                +        
                +        $entries[0]["memberof"]["count"]++;
                +        return $entries;
                +    }
                +    
                +    /**
                +    * Find information about the contacts. Returned in a raw array format from AD
                +    * 
                +    * @param string $distinguishedName The full DN of a contact 
                +    * @param array $fields Array of parameters to query
                +    * @return mixed
                +    */
                +    public function infoCollection($distinguishedName, $fields = NULL)
                +    {
                +        if ($distinguishedName === NULL) { return false; }
                +        if (!$this->adldap->getLdapBind()) { return false; }
                +        
                +        $info = $this->info($distinguishedName, $fields);
                +        
                +        if ($info !== false) {
                +            $collection = new adLDAPContactCollection($info, $this->adldap);
                +            return $collection;
                +        }
                +        return false;
                +    }
                +    
                +    /**
                +    * Determine if a contact is a member of a group
                +    * 
                +    * @param string $distinguisedName The full DN of a contact
                +    * @param string $group The group name to query
                +    * @param bool $recursive Recursively check groups
                +    * @return bool
                +    */
                +    public function inGroup($distinguisedName, $group, $recursive = NULL)
                +    {
                +        if ($distinguisedName === NULL) { return false; }
                +        if ($group === NULL) { return false; }
                +        if (!$this->adldap->getLdapBind()) { return false; }
                +        if ($recursive === NULL) { $recursive = $this->adldap->getRecursiveGroups(); } //use the default option if they haven't set it
                +        
                +        // Get a list of the groups
                +        $groups = $this->groups($distinguisedName, array("memberof"), $recursive);
                +        
                +        // Return true if the specified group is in the group list
                +        if (in_array($group, $groups)){ 
                +            return true; 
                +        }
                +
                +        return false;
                +    }          
                +    
                +    /**
                +    * Modify a contact
                +    * 
                +    * @param string $distinguishedName The contact to query
                +    * @param array $attributes The attributes to modify.  Note if you set the enabled attribute you must not specify any other attributes
                +    * @return bool
                +    */
                +    public function modify($distinguishedName, $attributes) {
                +        if ($distinguishedName === NULL) { return "Missing compulsory field [distinguishedname]"; }
                +        
                +        // Translate the update to the LDAP schema                
                +        $mod = $this->adldap->adldap_schema($attributes);
                +        
                +        // Check to see if this is an enabled status update
                +        if (!$mod) { 
                +            return false; 
                +        }
                +        
                +        // Do the update
                +        $result = ldap_modify($this->adldap->getLdapConnection(), $distinguishedName, $mod);
                +        if ($result == false) { 
                +            return false; 
                +        }
                +        
                +        return true;
                +    }
                +    
                +    /**
                +    * Delete a contact
                +    * 
                +    * @param string $distinguishedName The contact dn to delete (please be careful here!)
                +    * @return array
                +    */
                +    public function delete($distinguishedName) 
                +    {
                +        $result = $this->folder()->delete($distinguishedName);
                +        if ($result != true) { 
                +            return false; 
                +        }       
                +        return true;
                +    }
                +    
                +    /**
                +    * Return a list of all contacts
                +    * 
                +    * @param bool $includeDescription Include a description of a contact
                +    * @param string $search The search parameters
                +    * @param bool $sorted Whether to sort the results
                +    * @return array
                +    */
                +    public function all($includeDescription = false, $search = "*", $sorted = true) {
                +        if (!$this->adldap->getLdapBind()) { return false; }
                +        
                +        // Perform the search and grab all their details
                +        $filter = "(&(objectClass=contact)(cn=" . $search . "))";
                +        $fields = array("displayname","distinguishedname");           
                +        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
                +        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                +
                +        $usersArray = array();
                +        for ($i=0; $i<$entries["count"]; $i++){
                +            if ($includeDescription && strlen($entries[$i]["displayname"][0])>0){
                +                $usersArray[$entries[$i]["distinguishedname"][0]] = $entries[$i]["displayname"][0];
                +            } elseif ($includeDescription){
                +                $usersArray[$entries[$i]["distinguishedname"][0]] = $entries[$i]["distinguishedname"][0];
                +            } else {
                +                array_push($usersArray, $entries[$i]["distinguishedname"][0]);
                +            }
                +        }
                +        if ($sorted) { 
                +            asort($usersArray); 
                +        }
                +        return $usersArray;
                +    }
                +    
                +    /**
                +    * Mail enable a contact
                +    * Allows email to be sent to them through Exchange
                +    * 
                +    * @param string $distinguishedname The contact to mail enable
                +    * @param string $emailaddress The email address to allow emails to be sent through
                +    * @param string $mailnickname The mailnickname for the contact in Exchange.  If NULL this will be set to the display name
                +    * @return bool
                +    */
                +    public function contactMailEnable($distinguishedName, $emailAddress, $mailNickname = NULL){
                +        return $this->adldap->exchange()->contactMailEnable($distinguishedName, $emailAddress, $mailNickname);
                +    }
                +    
                +    
                +}
                +?>
                diff --git a/lib/plugins/authad/adLDAP/classes/adLDAPExchange.php b/lib/plugins/authad/adLDAP/classes/adLDAPExchange.php
                index dd0c6de05..d70aac779 100644
                --- a/lib/plugins/authad/adLDAP/classes/adLDAPExchange.php
                +++ b/lib/plugins/authad/adLDAP/classes/adLDAPExchange.php
                @@ -1,390 +1,390 @@
                -adldap = $adldap;
                -    }
                -    
                -    /**
                -    * Create an Exchange account
                -    * 
                -    * @param string $username The username of the user to add the Exchange account to
                -    * @param array $storageGroup The mailbox, Exchange Storage Group, for the user account, this must be a full CN
                -    *                            If the storage group has a different base_dn to the adLDAP configuration, set it using $base_dn
                -    * @param string $emailAddress The primary email address to add to this user
                -    * @param string $mailNickname The mail nick name.  If mail nickname is blank, the username will be used
                -    * @param bool $mdbUseDefaults Indicates whether the store should use the default quota, rather than the per-mailbox quota.
                -    * @param string $baseDn Specify an alternative base_dn for the Exchange storage group
                -    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                -    * @return bool
                -    */
                -    public function createMailbox($username, $storageGroup, $emailAddress, $mailNickname=NULL, $useDefaults=TRUE, $baseDn=NULL, $isGUID=false)
                -    {
                -        if ($username === NULL){ return "Missing compulsory field [username]"; }     
                -        if ($storageGroup === NULL) { return "Missing compulsory array [storagegroup]"; }
                -        if (!is_array($storageGroup)) { return "[storagegroup] must be an array"; }
                -        if ($emailAddress === NULL) { return "Missing compulsory field [emailAddress]"; }
                -        
                -        if ($baseDn === NULL) {
                -            $baseDn = $this->adldap->getBaseDn();   
                -        }
                -        
                -        $container = "CN=" . implode(",CN=", $storageGroup);
                -        
                -        if ($mailNickname === NULL) { 
                -            $mailNickname = $username; 
                -        }
                -        $mdbUseDefaults = $this->adldap->utilities()->boolToString($useDefaults);
                -        
                -        $attributes = array(
                -            'exchange_homemdb'=>$container.",".$baseDn,
                -            'exchange_proxyaddress'=>'SMTP:' . $emailAddress,
                -            'exchange_mailnickname'=>$mailNickname,
                -            'exchange_usedefaults'=>$mdbUseDefaults
                -        );
                -        $result = $this->adldap->user()->modify($username, $attributes, $isGUID);
                -        if ($result == false) { 
                -            return false; 
                -        }
                -        return true;
                -    }
                -    
                -    /**
                -    * Add an X400 address to Exchange
                -    * See http://tools.ietf.org/html/rfc1685 for more information.
                -    * An X400 Address looks similar to this X400:c=US;a= ;p=Domain;o=Organization;s=Doe;g=John;
                -    * 
                -    * @param string $username The username of the user to add the X400 to to
                -    * @param string $country Country
                -    * @param string $admd Administration Management Domain
                -    * @param string $pdmd Private Management Domain (often your AD domain)
                -    * @param string $org Organization
                -    * @param string $surname Surname
                -    * @param string $givenName Given name
                -    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                -    * @return bool
                -    */
                -    public function addX400($username, $country, $admd, $pdmd, $org, $surname, $givenName, $isGUID=false) 
                -    {
                -        if ($username === NULL){ return "Missing compulsory field [username]"; }     
                -        
                -        $proxyValue = 'X400:';
                -            
                -        // Find the dn of the user
                -        $user = $this->adldap->user()->info($username, array("cn","proxyaddresses"), $isGUID);
                -        if ($user[0]["dn"] === NULL) { return false; }
                -        $userDn = $user[0]["dn"];
                -        
                -        // We do not have to demote an email address from the default so we can just add the new proxy address
                -        $attributes['exchange_proxyaddress'] = $proxyValue . 'c=' . $country . ';a=' . $admd . ';p=' . $pdmd . ';o=' . $org . ';s=' . $surname . ';g=' . $givenName . ';';
                -       
                -        // Translate the update to the LDAP schema                
                -        $add = $this->adldap->adldap_schema($attributes);
                -        
                -        if (!$add) { return false; }
                -        
                -        // Do the update
                -        // Take out the @ to see any errors, usually this error might occur because the address already
                -        // exists in the list of proxyAddresses
                -        $result = @ldap_mod_add($this->adldap->getLdapConnection(), $userDn, $add);
                -        if ($result == false) { 
                -            return false; 
                -        }
                -        
                -        return true;
                -    }
                -    
                -    /**
                -    * Add an address to Exchange
                -    * 
                -    * @param string $username The username of the user to add the Exchange account to
                -    * @param string $emailAddress The email address to add to this user
                -    * @param bool $default Make this email address the default address, this is a bit more intensive as we have to demote any existing default addresses
                -    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                -    * @return bool
                -    */
                -    public function addAddress($username, $emailAddress, $default = FALSE, $isGUID = false) 
                -    {
                -        if ($username === NULL) { return "Missing compulsory field [username]"; }     
                -        if ($emailAddress === NULL) { return "Missing compulsory fields [emailAddress]"; }
                -        
                -        $proxyValue = 'smtp:';
                -        if ($default === true) {
                -            $proxyValue = 'SMTP:';
                -        }
                -              
                -        // Find the dn of the user
                -        $user = $this->adldap->user()->info($username, array("cn","proxyaddresses"), $isGUID);
                -        if ($user[0]["dn"] === NULL){ return false; }
                -        $userDn = $user[0]["dn"];
                -        
                -        // We need to scan existing proxy addresses and demote the default one
                -        if (is_array($user[0]["proxyaddresses"]) && $default === true) {
                -            $modAddresses = array();
                -            for ($i=0;$iadldap->getLdapConnection(), $userDn, $modAddresses);
                -            if ($result == false) { 
                -                return false; 
                -            }
                -            
                -            return true;
                -        }
                -        else {
                -            // We do not have to demote an email address from the default so we can just add the new proxy address
                -            $attributes['exchange_proxyaddress'] = $proxyValue . $emailAddress;
                -            
                -            // Translate the update to the LDAP schema                
                -            $add = $this->adldap->adldap_schema($attributes);
                -            
                -            if (!$add) { 
                -                return false; 
                -            }
                -            
                -            // Do the update
                -            // Take out the @ to see any errors, usually this error might occur because the address already
                -            // exists in the list of proxyAddresses
                -            $result = @ldap_mod_add($this->adldap->getLdapConnection(), $userDn,$add);
                -            if ($result == false) { 
                -                return false; 
                -            }
                -            
                -            return true;
                -        }
                -    }
                -    
                -    /**
                -    * Remove an address to Exchange
                -    * If you remove a default address the account will no longer have a default, 
                -    * we recommend changing the default address first
                -    * 
                -    * @param string $username The username of the user to add the Exchange account to
                -    * @param string $emailAddress The email address to add to this user
                -    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                -    * @return bool
                -    */
                -    public function deleteAddress($username, $emailAddress, $isGUID=false) 
                -    {
                -        if ($username === NULL) { return "Missing compulsory field [username]"; }     
                -        if ($emailAddress === NULL) { return "Missing compulsory fields [emailAddress]"; }
                -        
                -        // Find the dn of the user
                -        $user = $this->adldap->user()->info($username, array("cn","proxyaddresses"), $isGUID);
                -        if ($user[0]["dn"] === NULL) { return false; }
                -        $userDn = $user[0]["dn"];
                -        
                -        if (is_array($user[0]["proxyaddresses"])) {
                -            $mod = array();
                -            for ($i=0;$iadldap->getLdapConnection(), $userDn,$mod);
                -            if ($result == false) { 
                -                return false; 
                -            }
                -            
                -            return true;
                -        }
                -        else {
                -            return false;
                -        }
                -    }
                -    /**
                -    * Change the default address
                -    * 
                -    * @param string $username The username of the user to add the Exchange account to
                -    * @param string $emailAddress The email address to make default
                -    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                -    * @return bool
                -    */
                -    public function primaryAddress($username, $emailAddress, $isGUID = false) 
                -    {
                -        if ($username === NULL) { return "Missing compulsory field [username]"; }     
                -        if ($emailAddress === NULL) { return "Missing compulsory fields [emailAddress]"; }
                -        
                -        // Find the dn of the user
                -        $user = $this->adldap->user()->info($username, array("cn","proxyaddresses"), $isGUID);
                -        if ($user[0]["dn"] === NULL){ return false; }
                -        $userDn = $user[0]["dn"];
                -        
                -        if (is_array($user[0]["proxyaddresses"])) {
                -            $modAddresses = array();
                -            for ($i=0;$iadldap->getLdapConnection(), $userDn, $modAddresses);
                -            if ($result == false) { 
                -                return false; 
                -            }
                -            
                -            return true;
                -        }
                -        
                -    }
                -    
                -    /**
                -    * Mail enable a contact
                -    * Allows email to be sent to them through Exchange
                -    * 
                -    * @param string $distinguishedName The contact to mail enable
                -    * @param string $emailAddress The email address to allow emails to be sent through
                -    * @param string $mailNickname The mailnickname for the contact in Exchange.  If NULL this will be set to the display name
                -    * @return bool
                -    */
                -    public function contactMailEnable($distinguishedName, $emailAddress, $mailNickname = NULL)
                -    {
                -        if ($distinguishedName === NULL) { return "Missing compulsory field [distinguishedName]"; }   
                -        if ($emailAddress === NULL) { return "Missing compulsory field [emailAddress]"; }  
                -        
                -        if ($mailNickname !== NULL) {
                -            // Find the dn of the user
                -            $user = $this->adldap->contact()->info($distinguishedName, array("cn","displayname"));
                -            if ($user[0]["displayname"] === NULL) { return false; }
                -            $mailNickname = $user[0]['displayname'][0];
                -        }
                -        
                -        $attributes = array("email"=>$emailAddress,"contact_email"=>"SMTP:" . $emailAddress,"exchange_proxyaddress"=>"SMTP:" . $emailAddress,"exchange_mailnickname" => $mailNickname);
                -         
                -        // Translate the update to the LDAP schema                
                -        $mod = $this->adldap->adldap_schema($attributes);
                -        
                -        // Check to see if this is an enabled status update
                -        if (!$mod) { return false; }
                -        
                -        // Do the update
                -        $result = ldap_modify($this->adldap->getLdapConnection(), $distinguishedName, $mod);
                -        if ($result == false) { return false; }
                -        
                -        return true;
                -    }
                -    
                -    /**
                -    * Returns a list of Exchange Servers in the ConfigurationNamingContext of the domain
                -    * 
                -    * @param array $attributes An array of the AD attributes you wish to return
                -    * @return array
                -    */
                -    public function servers($attributes = array('cn','distinguishedname','serialnumber')) 
                -    {
                -        if (!$this->adldap->getLdapBind()){ return false; }
                -        
                -        $configurationNamingContext = $this->adldap->getRootDse(array('configurationnamingcontext'));
                -        $sr = @ldap_search($this->adldap->getLdapConnection(), $configurationNamingContext[0]['configurationnamingcontext'][0],'(&(objectCategory=msExchExchangeServer))', $attributes);
                -        $entries = @ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                -        return $entries;
                -    }
                -    
                -    /**
                -    * Returns a list of Storage Groups in Exchange for a given mail server
                -    * 
                -    * @param string $exchangeServer The full DN of an Exchange server.  You can use exchange_servers() to find the DN for your server
                -    * @param array $attributes An array of the AD attributes you wish to return
                -    * @param bool $recursive If enabled this will automatically query the databases within a storage group
                -    * @return array
                -    */
                -    public function storageGroups($exchangeServer, $attributes = array('cn','distinguishedname'), $recursive = NULL) 
                -    {
                -        if (!$this->adldap->getLdapBind()){ return false; }
                -        if ($exchangeServer === NULL) { return "Missing compulsory field [exchangeServer]"; }
                -        if ($recursive === NULL) { $recursive = $this->adldap->getRecursiveGroups(); }
                -
                -        $filter = '(&(objectCategory=msExchStorageGroup))';
                -        $sr = @ldap_search($this->adldap->getLdapConnection(), $exchangeServer, $filter, $attributes);
                -        $entries = @ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                -
                -        if ($recursive === true) {
                -            for ($i=0; $i<$entries['count']; $i++) {
                -                $entries[$i]['msexchprivatemdb'] = $this->storageDatabases($entries[$i]['distinguishedname'][0]);       
                -            }
                -        }
                -        
                -        return $entries;
                -    }
                -    
                -    /**
                -    * Returns a list of Databases within any given storage group in Exchange for a given mail server
                -    * 
                -    * @param string $storageGroup The full DN of an Storage Group.  You can use exchange_storage_groups() to find the DN 
                -    * @param array $attributes An array of the AD attributes you wish to return
                -    * @return array
                -    */
                -    public function storageDatabases($storageGroup, $attributes = array('cn','distinguishedname','displayname')) {
                -        if (!$this->adldap->getLdapBind()){ return false; }
                -        if ($storageGroup === NULL) { return "Missing compulsory field [storageGroup]"; }
                -        
                -        $filter = '(&(objectCategory=msExchPrivateMDB))';
                -        $sr = @ldap_search($this->adldap->getLdapConnection(), $storageGroup, $filter, $attributes);
                -        $entries = @ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                -        return $entries;
                -    }
                -}
                +adldap = $adldap;
                +    }
                +    
                +    /**
                +    * Create an Exchange account
                +    * 
                +    * @param string $username The username of the user to add the Exchange account to
                +    * @param array $storageGroup The mailbox, Exchange Storage Group, for the user account, this must be a full CN
                +    *                            If the storage group has a different base_dn to the adLDAP configuration, set it using $base_dn
                +    * @param string $emailAddress The primary email address to add to this user
                +    * @param string $mailNickname The mail nick name.  If mail nickname is blank, the username will be used
                +    * @param bool $mdbUseDefaults Indicates whether the store should use the default quota, rather than the per-mailbox quota.
                +    * @param string $baseDn Specify an alternative base_dn for the Exchange storage group
                +    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                +    * @return bool
                +    */
                +    public function createMailbox($username, $storageGroup, $emailAddress, $mailNickname=NULL, $useDefaults=TRUE, $baseDn=NULL, $isGUID=false)
                +    {
                +        if ($username === NULL){ return "Missing compulsory field [username]"; }     
                +        if ($storageGroup === NULL) { return "Missing compulsory array [storagegroup]"; }
                +        if (!is_array($storageGroup)) { return "[storagegroup] must be an array"; }
                +        if ($emailAddress === NULL) { return "Missing compulsory field [emailAddress]"; }
                +        
                +        if ($baseDn === NULL) {
                +            $baseDn = $this->adldap->getBaseDn();   
                +        }
                +        
                +        $container = "CN=" . implode(",CN=", $storageGroup);
                +        
                +        if ($mailNickname === NULL) { 
                +            $mailNickname = $username; 
                +        }
                +        $mdbUseDefaults = $this->adldap->utilities()->boolToString($useDefaults);
                +        
                +        $attributes = array(
                +            'exchange_homemdb'=>$container.",".$baseDn,
                +            'exchange_proxyaddress'=>'SMTP:' . $emailAddress,
                +            'exchange_mailnickname'=>$mailNickname,
                +            'exchange_usedefaults'=>$mdbUseDefaults
                +        );
                +        $result = $this->adldap->user()->modify($username, $attributes, $isGUID);
                +        if ($result == false) { 
                +            return false; 
                +        }
                +        return true;
                +    }
                +    
                +    /**
                +    * Add an X400 address to Exchange
                +    * See http://tools.ietf.org/html/rfc1685 for more information.
                +    * An X400 Address looks similar to this X400:c=US;a= ;p=Domain;o=Organization;s=Doe;g=John;
                +    * 
                +    * @param string $username The username of the user to add the X400 to to
                +    * @param string $country Country
                +    * @param string $admd Administration Management Domain
                +    * @param string $pdmd Private Management Domain (often your AD domain)
                +    * @param string $org Organization
                +    * @param string $surname Surname
                +    * @param string $givenName Given name
                +    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                +    * @return bool
                +    */
                +    public function addX400($username, $country, $admd, $pdmd, $org, $surname, $givenName, $isGUID=false) 
                +    {
                +        if ($username === NULL){ return "Missing compulsory field [username]"; }     
                +        
                +        $proxyValue = 'X400:';
                +            
                +        // Find the dn of the user
                +        $user = $this->adldap->user()->info($username, array("cn","proxyaddresses"), $isGUID);
                +        if ($user[0]["dn"] === NULL) { return false; }
                +        $userDn = $user[0]["dn"];
                +        
                +        // We do not have to demote an email address from the default so we can just add the new proxy address
                +        $attributes['exchange_proxyaddress'] = $proxyValue . 'c=' . $country . ';a=' . $admd . ';p=' . $pdmd . ';o=' . $org . ';s=' . $surname . ';g=' . $givenName . ';';
                +       
                +        // Translate the update to the LDAP schema                
                +        $add = $this->adldap->adldap_schema($attributes);
                +        
                +        if (!$add) { return false; }
                +        
                +        // Do the update
                +        // Take out the @ to see any errors, usually this error might occur because the address already
                +        // exists in the list of proxyAddresses
                +        $result = @ldap_mod_add($this->adldap->getLdapConnection(), $userDn, $add);
                +        if ($result == false) { 
                +            return false; 
                +        }
                +        
                +        return true;
                +    }
                +    
                +    /**
                +    * Add an address to Exchange
                +    * 
                +    * @param string $username The username of the user to add the Exchange account to
                +    * @param string $emailAddress The email address to add to this user
                +    * @param bool $default Make this email address the default address, this is a bit more intensive as we have to demote any existing default addresses
                +    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                +    * @return bool
                +    */
                +    public function addAddress($username, $emailAddress, $default = FALSE, $isGUID = false) 
                +    {
                +        if ($username === NULL) { return "Missing compulsory field [username]"; }     
                +        if ($emailAddress === NULL) { return "Missing compulsory fields [emailAddress]"; }
                +        
                +        $proxyValue = 'smtp:';
                +        if ($default === true) {
                +            $proxyValue = 'SMTP:';
                +        }
                +              
                +        // Find the dn of the user
                +        $user = $this->adldap->user()->info($username, array("cn","proxyaddresses"), $isGUID);
                +        if ($user[0]["dn"] === NULL){ return false; }
                +        $userDn = $user[0]["dn"];
                +        
                +        // We need to scan existing proxy addresses and demote the default one
                +        if (is_array($user[0]["proxyaddresses"]) && $default === true) {
                +            $modAddresses = array();
                +            for ($i=0;$iadldap->getLdapConnection(), $userDn, $modAddresses);
                +            if ($result == false) { 
                +                return false; 
                +            }
                +            
                +            return true;
                +        }
                +        else {
                +            // We do not have to demote an email address from the default so we can just add the new proxy address
                +            $attributes['exchange_proxyaddress'] = $proxyValue . $emailAddress;
                +            
                +            // Translate the update to the LDAP schema                
                +            $add = $this->adldap->adldap_schema($attributes);
                +            
                +            if (!$add) { 
                +                return false; 
                +            }
                +            
                +            // Do the update
                +            // Take out the @ to see any errors, usually this error might occur because the address already
                +            // exists in the list of proxyAddresses
                +            $result = @ldap_mod_add($this->adldap->getLdapConnection(), $userDn,$add);
                +            if ($result == false) { 
                +                return false; 
                +            }
                +            
                +            return true;
                +        }
                +    }
                +    
                +    /**
                +    * Remove an address to Exchange
                +    * If you remove a default address the account will no longer have a default, 
                +    * we recommend changing the default address first
                +    * 
                +    * @param string $username The username of the user to add the Exchange account to
                +    * @param string $emailAddress The email address to add to this user
                +    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                +    * @return bool
                +    */
                +    public function deleteAddress($username, $emailAddress, $isGUID=false) 
                +    {
                +        if ($username === NULL) { return "Missing compulsory field [username]"; }     
                +        if ($emailAddress === NULL) { return "Missing compulsory fields [emailAddress]"; }
                +        
                +        // Find the dn of the user
                +        $user = $this->adldap->user()->info($username, array("cn","proxyaddresses"), $isGUID);
                +        if ($user[0]["dn"] === NULL) { return false; }
                +        $userDn = $user[0]["dn"];
                +        
                +        if (is_array($user[0]["proxyaddresses"])) {
                +            $mod = array();
                +            for ($i=0;$iadldap->getLdapConnection(), $userDn,$mod);
                +            if ($result == false) { 
                +                return false; 
                +            }
                +            
                +            return true;
                +        }
                +        else {
                +            return false;
                +        }
                +    }
                +    /**
                +    * Change the default address
                +    * 
                +    * @param string $username The username of the user to add the Exchange account to
                +    * @param string $emailAddress The email address to make default
                +    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                +    * @return bool
                +    */
                +    public function primaryAddress($username, $emailAddress, $isGUID = false) 
                +    {
                +        if ($username === NULL) { return "Missing compulsory field [username]"; }     
                +        if ($emailAddress === NULL) { return "Missing compulsory fields [emailAddress]"; }
                +        
                +        // Find the dn of the user
                +        $user = $this->adldap->user()->info($username, array("cn","proxyaddresses"), $isGUID);
                +        if ($user[0]["dn"] === NULL){ return false; }
                +        $userDn = $user[0]["dn"];
                +        
                +        if (is_array($user[0]["proxyaddresses"])) {
                +            $modAddresses = array();
                +            for ($i=0;$iadldap->getLdapConnection(), $userDn, $modAddresses);
                +            if ($result == false) { 
                +                return false; 
                +            }
                +            
                +            return true;
                +        }
                +        
                +    }
                +    
                +    /**
                +    * Mail enable a contact
                +    * Allows email to be sent to them through Exchange
                +    * 
                +    * @param string $distinguishedName The contact to mail enable
                +    * @param string $emailAddress The email address to allow emails to be sent through
                +    * @param string $mailNickname The mailnickname for the contact in Exchange.  If NULL this will be set to the display name
                +    * @return bool
                +    */
                +    public function contactMailEnable($distinguishedName, $emailAddress, $mailNickname = NULL)
                +    {
                +        if ($distinguishedName === NULL) { return "Missing compulsory field [distinguishedName]"; }   
                +        if ($emailAddress === NULL) { return "Missing compulsory field [emailAddress]"; }  
                +        
                +        if ($mailNickname !== NULL) {
                +            // Find the dn of the user
                +            $user = $this->adldap->contact()->info($distinguishedName, array("cn","displayname"));
                +            if ($user[0]["displayname"] === NULL) { return false; }
                +            $mailNickname = $user[0]['displayname'][0];
                +        }
                +        
                +        $attributes = array("email"=>$emailAddress,"contact_email"=>"SMTP:" . $emailAddress,"exchange_proxyaddress"=>"SMTP:" . $emailAddress,"exchange_mailnickname" => $mailNickname);
                +         
                +        // Translate the update to the LDAP schema                
                +        $mod = $this->adldap->adldap_schema($attributes);
                +        
                +        // Check to see if this is an enabled status update
                +        if (!$mod) { return false; }
                +        
                +        // Do the update
                +        $result = ldap_modify($this->adldap->getLdapConnection(), $distinguishedName, $mod);
                +        if ($result == false) { return false; }
                +        
                +        return true;
                +    }
                +    
                +    /**
                +    * Returns a list of Exchange Servers in the ConfigurationNamingContext of the domain
                +    * 
                +    * @param array $attributes An array of the AD attributes you wish to return
                +    * @return array
                +    */
                +    public function servers($attributes = array('cn','distinguishedname','serialnumber')) 
                +    {
                +        if (!$this->adldap->getLdapBind()){ return false; }
                +        
                +        $configurationNamingContext = $this->adldap->getRootDse(array('configurationnamingcontext'));
                +        $sr = @ldap_search($this->adldap->getLdapConnection(), $configurationNamingContext[0]['configurationnamingcontext'][0],'(&(objectCategory=msExchExchangeServer))', $attributes);
                +        $entries = @ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                +        return $entries;
                +    }
                +    
                +    /**
                +    * Returns a list of Storage Groups in Exchange for a given mail server
                +    * 
                +    * @param string $exchangeServer The full DN of an Exchange server.  You can use exchange_servers() to find the DN for your server
                +    * @param array $attributes An array of the AD attributes you wish to return
                +    * @param bool $recursive If enabled this will automatically query the databases within a storage group
                +    * @return array
                +    */
                +    public function storageGroups($exchangeServer, $attributes = array('cn','distinguishedname'), $recursive = NULL) 
                +    {
                +        if (!$this->adldap->getLdapBind()){ return false; }
                +        if ($exchangeServer === NULL) { return "Missing compulsory field [exchangeServer]"; }
                +        if ($recursive === NULL) { $recursive = $this->adldap->getRecursiveGroups(); }
                +
                +        $filter = '(&(objectCategory=msExchStorageGroup))';
                +        $sr = @ldap_search($this->adldap->getLdapConnection(), $exchangeServer, $filter, $attributes);
                +        $entries = @ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                +
                +        if ($recursive === true) {
                +            for ($i=0; $i<$entries['count']; $i++) {
                +                $entries[$i]['msexchprivatemdb'] = $this->storageDatabases($entries[$i]['distinguishedname'][0]);       
                +            }
                +        }
                +        
                +        return $entries;
                +    }
                +    
                +    /**
                +    * Returns a list of Databases within any given storage group in Exchange for a given mail server
                +    * 
                +    * @param string $storageGroup The full DN of an Storage Group.  You can use exchange_storage_groups() to find the DN 
                +    * @param array $attributes An array of the AD attributes you wish to return
                +    * @return array
                +    */
                +    public function storageDatabases($storageGroup, $attributes = array('cn','distinguishedname','displayname')) {
                +        if (!$this->adldap->getLdapBind()){ return false; }
                +        if ($storageGroup === NULL) { return "Missing compulsory field [storageGroup]"; }
                +        
                +        $filter = '(&(objectCategory=msExchPrivateMDB))';
                +        $sr = @ldap_search($this->adldap->getLdapConnection(), $storageGroup, $filter, $attributes);
                +        $entries = @ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                +        return $entries;
                +    }
                +}
                 ?>
                \ No newline at end of file
                diff --git a/lib/plugins/authad/adLDAP/classes/adLDAPFolders.php b/lib/plugins/authad/adLDAP/classes/adLDAPFolders.php
                index 55120152d..67b1474db 100644
                --- a/lib/plugins/authad/adLDAP/classes/adLDAPFolders.php
                +++ b/lib/plugins/authad/adLDAP/classes/adLDAPFolders.php
                @@ -1,179 +1,179 @@
                -adldap = $adldap;
                -    }
                -    
                -    /**
                -    * Delete a distinguished name from Active Directory
                -    * You should never need to call this yourself, just use the wrapper functions user_delete and contact_delete
                -    *
                -    * @param string $dn The distinguished name to delete
                -    * @return bool
                -    */
                -    public function delete($dn){ 
                -        $result = ldap_delete($this->adldap->getLdapConnection(), $dn);
                -        if ($result != true) { 
                -            return false; 
                -        }
                -        return true;
                -    }
                -    
                -    /**
                -    * Returns a folder listing for a specific OU
                -    * See http://adldap.sourceforge.net/wiki/doku.php?id=api_folder_functions
                -    * 
                -    * @param array $folderName An array to the OU you wish to list. 
                -    *                           If set to NULL will list the root, strongly recommended to set 
                -    *                           $recursive to false in that instance!
                -    * @param string $dnType The type of record to list.  This can be ADLDAP_FOLDER or ADLDAP_CONTAINER.
                -    * @param bool $recursive Recursively search sub folders
                -    * @param bool $type Specify a type of object to search for
                -    * @return array
                -    */
                -    public function listing($folderName = NULL, $dnType = adLDAP::ADLDAP_FOLDER, $recursive = NULL, $type = NULL) 
                -    {
                -        if ($recursive === NULL) { $recursive = $this->adldap->getRecursiveGroups(); } //use the default option if they haven't set it
                -        if (!$this->adldap->getLdapBind()) { return false; }
                -
                -        $filter = '(&';
                -        if ($type !== NULL) {
                -            switch ($type) {
                -                case 'contact':
                -                    $filter .= '(objectClass=contact)';
                -                    break;
                -                case 'computer':
                -                    $filter .= '(objectClass=computer)';
                -                    break;
                -                case 'group':
                -                    $filter .= '(objectClass=group)';
                -                    break;
                -                case 'folder':
                -                    $filter .= '(objectClass=organizationalUnit)';
                -                    break;
                -                case 'container':
                -                    $filter .= '(objectClass=container)';
                -                    break;
                -                case 'domain':
                -                    $filter .= '(objectClass=builtinDomain)';
                -                    break;
                -                default:
                -                    $filter .= '(objectClass=user)';
                -                    break;   
                -            }
                -        }
                -        else {
                -            $filter .= '(objectClass=*)';   
                -        }
                -        // If the folder name is null then we will search the root level of AD
                -        // This requires us to not have an OU= part, just the base_dn
                -        $searchOu = $this->adldap->getBaseDn();
                -        if (is_array($folderName)) {
                -            $ou = $dnType . "=" . implode("," . $dnType . "=", $folderName);
                -            $filter .= '(!(distinguishedname=' . $ou . ',' . $this->adldap->getBaseDn() . ')))';
                -            $searchOu = $ou . ',' . $this->adldap->getBaseDn();
                -        }
                -        else {
                -            $filter .= '(!(distinguishedname=' . $this->adldap->getBaseDn() . ')))';
                -        }
                -
                -        if ($recursive === true) {
                -            $sr = ldap_search($this->adldap->getLdapConnection(), $searchOu, $filter, array('objectclass', 'distinguishedname', 'samaccountname'));
                -            $entries = @ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                -            if (is_array($entries)) {
                -                return $entries;
                -            }
                -        }
                -        else {
                -            $sr = ldap_list($this->adldap->getLdapConnection(), $searchOu, $filter, array('objectclass', 'distinguishedname', 'samaccountname'));
                -            $entries = @ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                -            if (is_array($entries)) {
                -                return $entries;
                -            }
                -        }
                -        
                -        return false;
                -    }
                -
                -    /**
                -    * Create an organizational unit
                -    * 
                -    * @param array $attributes Default attributes of the ou
                -    * @return bool
                -    */
                -    public function create($attributes)
                -    {
                -        if (!is_array($attributes)){ return "Attributes must be an array"; }
                -        if (!is_array($attributes["container"])) { return "Container attribute must be an array."; }
                -        if (!array_key_exists("ou_name",$attributes)) { return "Missing compulsory field [ou_name]"; }
                -        if (!array_key_exists("container",$attributes)) { return "Missing compulsory field [container]"; }
                -        
                -        $attributes["container"] = array_reverse($attributes["container"]);
                -
                -        $add=array();
                -        $add["objectClass"] = "organizationalUnit";
                -        $add["OU"] = $attributes['ou_name'];
                -        $containers = "";
                -        if (count($attributes['container']) > 0) {
                -            $containers = "OU=" . implode(",OU=", $attributes["container"]) . ",";
                -        }
                -
                -        $containers = "OU=" . implode(",OU=", $attributes["container"]);
                -        $result = ldap_add($this->adldap->getLdapConnection(), "OU=" . $add["OU"] . ", " . $containers . $this->adldap->getBaseDn(), $add);
                -        if ($result != true) { 
                -            return false; 
                -        }
                -        
                -        return true;
                -    }
                -    
                -}
                -
                +adldap = $adldap;
                +    }
                +    
                +    /**
                +    * Delete a distinguished name from Active Directory
                +    * You should never need to call this yourself, just use the wrapper functions user_delete and contact_delete
                +    *
                +    * @param string $dn The distinguished name to delete
                +    * @return bool
                +    */
                +    public function delete($dn){ 
                +        $result = ldap_delete($this->adldap->getLdapConnection(), $dn);
                +        if ($result != true) { 
                +            return false; 
                +        }
                +        return true;
                +    }
                +    
                +    /**
                +    * Returns a folder listing for a specific OU
                +    * See http://adldap.sourceforge.net/wiki/doku.php?id=api_folder_functions
                +    * 
                +    * @param array $folderName An array to the OU you wish to list. 
                +    *                           If set to NULL will list the root, strongly recommended to set 
                +    *                           $recursive to false in that instance!
                +    * @param string $dnType The type of record to list.  This can be ADLDAP_FOLDER or ADLDAP_CONTAINER.
                +    * @param bool $recursive Recursively search sub folders
                +    * @param bool $type Specify a type of object to search for
                +    * @return array
                +    */
                +    public function listing($folderName = NULL, $dnType = adLDAP::ADLDAP_FOLDER, $recursive = NULL, $type = NULL) 
                +    {
                +        if ($recursive === NULL) { $recursive = $this->adldap->getRecursiveGroups(); } //use the default option if they haven't set it
                +        if (!$this->adldap->getLdapBind()) { return false; }
                +
                +        $filter = '(&';
                +        if ($type !== NULL) {
                +            switch ($type) {
                +                case 'contact':
                +                    $filter .= '(objectClass=contact)';
                +                    break;
                +                case 'computer':
                +                    $filter .= '(objectClass=computer)';
                +                    break;
                +                case 'group':
                +                    $filter .= '(objectClass=group)';
                +                    break;
                +                case 'folder':
                +                    $filter .= '(objectClass=organizationalUnit)';
                +                    break;
                +                case 'container':
                +                    $filter .= '(objectClass=container)';
                +                    break;
                +                case 'domain':
                +                    $filter .= '(objectClass=builtinDomain)';
                +                    break;
                +                default:
                +                    $filter .= '(objectClass=user)';
                +                    break;   
                +            }
                +        }
                +        else {
                +            $filter .= '(objectClass=*)';   
                +        }
                +        // If the folder name is null then we will search the root level of AD
                +        // This requires us to not have an OU= part, just the base_dn
                +        $searchOu = $this->adldap->getBaseDn();
                +        if (is_array($folderName)) {
                +            $ou = $dnType . "=" . implode("," . $dnType . "=", $folderName);
                +            $filter .= '(!(distinguishedname=' . $ou . ',' . $this->adldap->getBaseDn() . ')))';
                +            $searchOu = $ou . ',' . $this->adldap->getBaseDn();
                +        }
                +        else {
                +            $filter .= '(!(distinguishedname=' . $this->adldap->getBaseDn() . ')))';
                +        }
                +
                +        if ($recursive === true) {
                +            $sr = ldap_search($this->adldap->getLdapConnection(), $searchOu, $filter, array('objectclass', 'distinguishedname', 'samaccountname'));
                +            $entries = @ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                +            if (is_array($entries)) {
                +                return $entries;
                +            }
                +        }
                +        else {
                +            $sr = ldap_list($this->adldap->getLdapConnection(), $searchOu, $filter, array('objectclass', 'distinguishedname', 'samaccountname'));
                +            $entries = @ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                +            if (is_array($entries)) {
                +                return $entries;
                +            }
                +        }
                +        
                +        return false;
                +    }
                +
                +    /**
                +    * Create an organizational unit
                +    * 
                +    * @param array $attributes Default attributes of the ou
                +    * @return bool
                +    */
                +    public function create($attributes)
                +    {
                +        if (!is_array($attributes)){ return "Attributes must be an array"; }
                +        if (!is_array($attributes["container"])) { return "Container attribute must be an array."; }
                +        if (!array_key_exists("ou_name",$attributes)) { return "Missing compulsory field [ou_name]"; }
                +        if (!array_key_exists("container",$attributes)) { return "Missing compulsory field [container]"; }
                +        
                +        $attributes["container"] = array_reverse($attributes["container"]);
                +
                +        $add=array();
                +        $add["objectClass"] = "organizationalUnit";
                +        $add["OU"] = $attributes['ou_name'];
                +        $containers = "";
                +        if (count($attributes['container']) > 0) {
                +            $containers = "OU=" . implode(",OU=", $attributes["container"]) . ",";
                +        }
                +
                +        $containers = "OU=" . implode(",OU=", $attributes["container"]);
                +        $result = ldap_add($this->adldap->getLdapConnection(), "OU=" . $add["OU"] . ", " . $containers . $this->adldap->getBaseDn(), $add);
                +        if ($result != true) { 
                +            return false; 
                +        }
                +        
                +        return true;
                +    }
                +    
                +}
                +
                 ?>
                \ No newline at end of file
                diff --git a/lib/plugins/authad/adLDAP/classes/adLDAPGroups.php b/lib/plugins/authad/adLDAP/classes/adLDAPGroups.php
                index 05e4cc93b..94bc04853 100644
                --- a/lib/plugins/authad/adLDAP/classes/adLDAPGroups.php
                +++ b/lib/plugins/authad/adLDAP/classes/adLDAPGroups.php
                @@ -1,631 +1,631 @@
                -adldap = $adldap;
                -    }
                -    
                -    /**
                -    * Add a group to a group
                -    * 
                -    * @param string $parent The parent group name
                -    * @param string $child The child group name
                -    * @return bool
                -    */
                -    public function addGroup($parent,$child){
                -
                -        // Find the parent group's dn
                -        $parentGroup = $this->ginfo($parent, array("cn"));
                -        if ($parentGroup[0]["dn"] === NULL){
                -            return false; 
                -        }
                -        $parentDn = $parentGroup[0]["dn"];
                -        
                -        // Find the child group's dn
                -        $childGroup = $this->info($child, array("cn"));
                -        if ($childGroup[0]["dn"] === NULL){ 
                -            return false; 
                -        }
                -        $childDn = $childGroup[0]["dn"];
                -                
                -        $add = array();
                -        $add["member"] = $childDn;
                -        
                -        $result = @ldap_mod_add($this->adldap->getLdapConnection(), $parentDn, $add);
                -        if ($result == false) { 
                -            return false; 
                -        }
                -        return true;
                -    }
                -    
                -    /**
                -    * Add a user to a group
                -    * 
                -    * @param string $group The group to add the user to
                -    * @param string $user The user to add to the group
                -    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                -    * @return bool
                -    */
                -    public function addUser($group, $user, $isGUID = false)
                -    {
                -        // Adding a user is a bit fiddly, we need to get the full DN of the user
                -        // and add it using the full DN of the group
                -        
                -        // Find the user's dn
                -        $userDn = $this->adldap->user()->dn($user, $isGUID);
                -        if ($userDn === false) { 
                -            return false; 
                -        }
                -        
                -        // Find the group's dn
                -        $groupInfo = $this->info($group, array("cn"));
                -        if ($groupInfo[0]["dn"] === NULL) { 
                -            return false; 
                -        }
                -        $groupDn = $groupInfo[0]["dn"];
                -        
                -        $add = array();
                -        $add["member"] = $userDn;
                -        
                -        $result = @ldap_mod_add($this->adldap->getLdapConnection(), $groupDn, $add);
                -        if ($result == false) { 
                -            return false; 
                -        }
                -        return true;
                -    }
                -    
                -    /**
                -    * Add a contact to a group
                -    * 
                -    * @param string $group The group to add the contact to
                -    * @param string $contactDn The DN of the contact to add
                -    * @return bool
                -    */
                -    public function addContact($group, $contactDn)
                -    {
                -        // To add a contact we take the contact's DN
                -        // and add it using the full DN of the group
                -        
                -        // Find the group's dn
                -        $groupInfo = $this->info($group, array("cn"));
                -        if ($groupInfo[0]["dn"] === NULL) { 
                -            return false; 
                -        }
                -        $groupDn = $groupInfo[0]["dn"];
                -        
                -        $add = array();
                -        $add["member"] = $contactDn;
                -        
                -        $result = @ldap_mod_add($this->adldap->getLdapConnection(), $groupDn, $add);
                -        if ($result == false) { 
                -            return false; 
                -        }
                -        return true;
                -    }
                -
                -    /**
                -    * Create a group
                -    * 
                -    * @param array $attributes Default attributes of the group
                -    * @return bool
                -    */
                -    public function create($attributes)
                -    {
                -        if (!is_array($attributes)){ return "Attributes must be an array"; }
                -        if (!array_key_exists("group_name", $attributes)){ return "Missing compulsory field [group_name]"; }
                -        if (!array_key_exists("container", $attributes)){ return "Missing compulsory field [container]"; }
                -        if (!array_key_exists("description", $attributes)){ return "Missing compulsory field [description]"; }
                -        if (!is_array($attributes["container"])){ return "Container attribute must be an array."; }
                -        $attributes["container"] = array_reverse($attributes["container"]);
                -
                -        //$member_array = array();
                -        //$member_array[0] = "cn=user1,cn=Users,dc=yourdomain,dc=com";
                -        //$member_array[1] = "cn=administrator,cn=Users,dc=yourdomain,dc=com";
                -        
                -        $add = array();
                -        $add["cn"] = $attributes["group_name"];
                -        $add["samaccountname"] = $attributes["group_name"];
                -        $add["objectClass"] = "Group";
                -        $add["description"] = $attributes["description"];
                -        //$add["member"] = $member_array; UNTESTED
                -
                -        $container = "OU=" . implode(",OU=", $attributes["container"]);
                -        $result = ldap_add($this->adldap->getLdapConnection(), "CN=" . $add["cn"] . ", " . $container . "," . $this->adldap->getBaseDn(), $add);
                -        if ($result != true) { 
                -            return false; 
                -        }
                -        return true;
                -    }
                -    
                -    /**
                -    * Delete a group account 
                -    * 
                -    * @param string $group The group to delete (please be careful here!) 
                -    * 
                -    * @return array 
                -    */
                -    public function delete($group) {
                -        if (!$this->adldap->getLdapBind()){ return false; }
                -        if ($group === null){ return "Missing compulsory field [group]"; }
                -        
                -        $groupInfo = $this->info($group, array("*"));
                -        $dn = $groupInfo[0]['distinguishedname'][0]; 
                -        $result = $this->adldap->folder()->delete($dn); 
                -        if ($result !== true) { 
                -            return false; 
                -        } return true;   
                -    }
                -
                -    /**
                -    * Remove a group from a group
                -    * 
                -    * @param string $parent The parent group name
                -    * @param string $child The child group name
                -    * @return bool
                -    */
                -    public function removeGroup($parent , $child)
                -    {
                -    
                -        // Find the parent dn
                -        $parentGroup = $this->info($parent, array("cn"));
                -        if ($parentGroup[0]["dn"] === NULL) { 
                -            return false; 
                -        }
                -        $parentDn = $parentGroup[0]["dn"];
                -        
                -        // Find the child dn
                -        $childGroup = $this->info($child, array("cn"));
                -        if ($childGroup[0]["dn"] === NULL) { 
                -            return false; 
                -        }
                -        $childDn = $childGroup[0]["dn"];
                -        
                -        $del = array();
                -        $del["member"] = $childDn;
                -        
                -        $result = @ldap_mod_del($this->adldap->getLdapConnection(), $parentDn, $del);
                -        if ($result == false) { 
                -            return false; 
                -        }
                -        return true;
                -    }
                -    
                -    /**
                -    * Remove a user from a group
                -    * 
                -    * @param string $group The group to remove a user from
                -    * @param string $user The AD user to remove from the group
                -    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                -    * @return bool
                -    */
                -    public function removeUser($group, $user, $isGUID = false)
                -    {
                -    
                -        // Find the parent dn
                -        $groupInfo = $this->info($group, array("cn"));
                -        if ($groupInfo[0]["dn"] === NULL){ 
                -            return false; 
                -        }
                -        $groupDn = $groupInfo[0]["dn"];
                -        
                -        // Find the users dn
                -        $userDn = $this->adldap->user()->dn($user, $isGUID);
                -        if ($userDn === false) {
                -            return false; 
                -        }
                -
                -        $del = array();
                -        $del["member"] = $userDn;
                -        
                -        $result = @ldap_mod_del($this->adldap->getLdapConnection(), $groupDn, $del);
                -        if ($result == false) {
                -            return false; 
                -        }
                -        return true;
                -    }
                -    
                -    /**
                -    * Remove a contact from a group
                -    * 
                -    * @param string $group The group to remove a user from
                -    * @param string $contactDn The DN of a contact to remove from the group
                -    * @return bool
                -    */
                -    public function removeContact($group, $contactDn)
                -    {
                -    
                -        // Find the parent dn
                -        $groupInfo = $this->info($group, array("cn"));
                -        if ($groupInfo[0]["dn"] === NULL) { 
                -            return false; 
                -        }
                -        $groupDn = $groupInfo[0]["dn"];
                -    
                -        $del = array();
                -        $del["member"] = $contactDn;
                -        
                -        $result = @ldap_mod_del($this->adldap->getLdapConnection(), $groupDn, $del);
                -        if ($result == false) { 
                -            return false; 
                -        }
                -        return true;
                -    }
                -    
                -    /**
                -    * Return a list of groups in a group
                -    * 
                -    * @param string $group The group to query
                -    * @param bool $recursive Recursively get groups
                -    * @return array
                -    */
                -    public function inGroup($group, $recursive = NULL)
                -    {
                -        if (!$this->adldap->getLdapBind()){ return false; }
                -        if ($recursive === NULL){ $recursive = $this->adldap->getRecursiveGroups(); } // Use the default option if they haven't set it 
                -        
                -        // Search the directory for the members of a group
                -        $info = $this->info($group, array("member","cn"));
                -        $groups = $info[0]["member"];
                -        if (!is_array($groups)) {
                -            return false;   
                -        }
                - 
                -        $groupArray = array();
                -
                -        for ($i=0; $i<$groups["count"]; $i++){ 
                -             $filter = "(&(objectCategory=group)(distinguishedName=" . $this->adldap->utilities()->ldapSlashes($groups[$i]) . "))";
                -             $fields = array("samaccountname", "distinguishedname", "objectClass");
                -             $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
                -             $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                -
                -             // not a person, look for a group  
                -             if ($entries['count'] == 0 && $recursive == true) {  
                -                $filter = "(&(objectCategory=group)(distinguishedName=" . $this->adldap->utilities()->ldapSlashes($groups[$i]) . "))";  
                -                $fields = array("distinguishedname");  
                -                $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);  
                -                $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);  
                -                if (!isset($entries[0]['distinguishedname'][0])) {
                -                    continue;  
                -                }
                -                $subGroups = $this->inGroup($entries[0]['distinguishedname'][0], $recursive);  
                -                if (is_array($subGroups)) {
                -                    $groupArray = array_merge($groupArray, $subGroups); 
                -                    $groupArray = array_unique($groupArray);  
                -                }
                -                continue;  
                -             } 
                -
                -             $groupArray[] = $entries[0]['distinguishedname'][0];
                -        }
                -        return $groupArray;
                -    }
                -    
                -    /**
                -    * Return a list of members in a group
                -    * 
                -    * @param string $group The group to query
                -    * @param bool $recursive Recursively get group members
                -    * @return array
                -    */
                -    public function members($group, $recursive = NULL)
                -    {
                -        if (!$this->adldap->getLdapBind()){ return false; }
                -        if ($recursive === NULL){ $recursive = $this->adldap->getRecursiveGroups(); } // Use the default option if they haven't set it 
                -        // Search the directory for the members of a group
                -        $info = $this->info($group, array("member","cn"));
                -        $users = $info[0]["member"];
                -        if (!is_array($users)) {
                -            return false;   
                -        }
                - 
                -        $userArray = array();
                -
                -        for ($i=0; $i<$users["count"]; $i++){ 
                -             $filter = "(&(objectCategory=person)(distinguishedName=" . $this->adldap->utilities()->ldapSlashes($users[$i]) . "))";
                -             $fields = array("samaccountname", "distinguishedname", "objectClass");
                -             $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
                -             $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                -
                -             // not a person, look for a group  
                -             if ($entries['count'] == 0 && $recursive == true) {  
                -                $filter = "(&(objectCategory=group)(distinguishedName=" . $this->adldap->utilities()->ldapSlashes($users[$i]) . "))";  
                -                $fields = array("samaccountname");  
                -                $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);  
                -                $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);  
                -                if (!isset($entries[0]['samaccountname'][0])) {
                -                    continue;  
                -                }
                -                $subUsers = $this->members($entries[0]['samaccountname'][0], $recursive);  
                -                if (is_array($subUsers)) {
                -                    $userArray = array_merge($userArray, $subUsers); 
                -                    $userArray = array_unique($userArray);  
                -                }
                -                continue;  
                -             } 
                -             else if ($entries['count'] == 0) {   
                -                continue; 
                -             } 
                -
                -             if ((!isset($entries[0]['samaccountname'][0]) || $entries[0]['samaccountname'][0] === NULL) && $entries[0]['distinguishedname'][0] !== NULL) {
                -                 $userArray[] = $entries[0]['distinguishedname'][0];
                -             }
                -             else if ($entries[0]['samaccountname'][0] !== NULL) {
                -                $userArray[] = $entries[0]['samaccountname'][0];
                -             }
                -        }
                -        return $userArray;
                -    }
                -    
                -    /**
                -    * Group Information.  Returns an array of raw information about a group.
                -    * The group name is case sensitive
                -    * 
                -    * @param string $groupName The group name to retrieve info about
                -    * @param array $fields Fields to retrieve
                -    * @return array
                -    */
                -    public function info($groupName, $fields = NULL)
                -    {
                -        if ($groupName === NULL) { return false; }
                -        if (!$this->adldap->getLdapBind()) { return false; }
                -        
                -        if (stristr($groupName, '+')) {
                -            $groupName = stripslashes($groupName);   
                -        }
                -        
                -        $filter = "(&(objectCategory=group)(name=" . $this->adldap->utilities()->ldapSlashes($groupName) . "))";
                -        if ($fields === NULL) { 
                -            $fields = array("member","memberof","cn","description","distinguishedname","objectcategory","samaccountname"); 
                -        }
                -        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
                -        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                -
                -        return $entries;
                -    }
                -    
                -    /**
                -    * Group Information.  Returns an collection
                -    * The group name is case sensitive
                -    * 
                -    * @param string $groupName The group name to retrieve info about
                -    * @param array $fields Fields to retrieve
                -    * @return adLDAPGroupCollection
                -    */
                -    public function infoCollection($groupName, $fields = NULL)
                -    {
                -        if ($groupName === NULL) { return false; }
                -        if (!$this->adldap->getLdapBind()) { return false; }
                -        
                -        $info = $this->info($groupName, $fields);
                -        if ($info !== false) {
                -            $collection = new adLDAPGroupCollection($info, $this->adldap);
                -            return $collection;
                -        }
                -        return false;
                -    }
                -    
                -    /**
                -    * Return a complete list of "groups in groups"
                -    * 
                -    * @param string $group The group to get the list from
                -    * @return array
                -    */
                -    public function recursiveGroups($group)
                -    {
                -        if ($group === NULL) { return false; }
                -
                -        $stack = array(); 
                -        $processed = array(); 
                -        $retGroups = array(); 
                -     
                -        array_push($stack, $group); // Initial Group to Start with 
                -        while (count($stack) > 0) {
                -            $parent = array_pop($stack);
                -            array_push($processed, $parent);
                -            
                -            $info = $this->info($parent, array("memberof"));
                -            
                -            if (isset($info[0]["memberof"]) && is_array($info[0]["memberof"])) {
                -                $groups = $info[0]["memberof"]; 
                -                if ($groups) {
                -                    $groupNames = $this->adldap->utilities()->niceNames($groups);  
                -                    $retGroups = array_merge($retGroups, $groupNames); //final groups to return
                -                    foreach ($groupNames as $id => $groupName) { 
                -                        if (!in_array($groupName, $processed)) {
                -                            array_push($stack, $groupName);
                -                        }
                -                    }
                -                }
                -            }
                -        }
                -        
                -        return $retGroups;
                -    }
                -    
                -    /**
                -    * Returns a complete list of the groups in AD based on a SAM Account Type  
                -    * 
                -    * @param string $sAMAaccountType The account type to return
                -    * @param bool $includeDescription Whether to return a description
                -    * @param string $search Search parameters
                -    * @param bool $sorted Whether to sort the results
                -    * @return array
                -    */
                -    public function search($sAMAaccountType = adLDAP::ADLDAP_SECURITY_GLOBAL_GROUP, $includeDescription = false, $search = "*", $sorted = true) {
                -        if (!$this->adldap->getLdapBind()) { return false; }
                -        
                -        $filter = '(&(objectCategory=group)';
                -        if ($sAMAaccountType !== null) {
                -            $filter .= '(samaccounttype='. $sAMAaccountType .')';
                -        }
                -        $filter .= '(cn=' . $search . '))';
                -        // Perform the search and grab all their details
                -        $fields = array("samaccountname", "description");
                -        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
                -        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                -
                -        $groupsArray = array();        
                -        for ($i=0; $i<$entries["count"]; $i++){
                -            if ($includeDescription && strlen($entries[$i]["description"][0]) > 0 ) {
                -                $groupsArray[$entries[$i]["samaccountname"][0]] = $entries[$i]["description"][0];
                -            }
                -            else if ($includeDescription){
                -                $groupsArray[$entries[$i]["samaccountname"][0]] = $entries[$i]["samaccountname"][0];
                -            }
                -            else {
                -                array_push($groupsArray, $entries[$i]["samaccountname"][0]);
                -            }
                -        }
                -        if ($sorted) { 
                -            asort($groupsArray); 
                -        }
                -        return $groupsArray;
                -    }
                -    
                -    /**
                -    * Returns a complete list of all groups in AD
                -    * 
                -    * @param bool $includeDescription Whether to return a description
                -    * @param string $search Search parameters
                -    * @param bool $sorted Whether to sort the results
                -    * @return array
                -    */
                -    public function all($includeDescription = false, $search = "*", $sorted = true){
                -        $groupsArray = $this->search(null, $includeDescription, $search, $sorted);
                -        return $groupsArray;
                -    }
                -    
                -    /**
                -    * Returns a complete list of security groups in AD
                -    * 
                -    * @param bool $includeDescription Whether to return a description
                -    * @param string $search Search parameters
                -    * @param bool $sorted Whether to sort the results
                -    * @return array
                -    */
                -    public function allSecurity($includeDescription = false, $search = "*", $sorted = true){
                -        $groupsArray = $this->search(adLDAP::ADLDAP_SECURITY_GLOBAL_GROUP, $includeDescription, $search, $sorted);
                -        return $groupsArray;
                -    }
                -    
                -    /**
                -    * Returns a complete list of distribution lists in AD
                -    * 
                -    * @param bool $includeDescription Whether to return a description
                -    * @param string $search Search parameters
                -    * @param bool $sorted Whether to sort the results
                -    * @return array
                -    */
                -    public function allDistribution($includeDescription = false, $search = "*", $sorted = true){
                -        $groupsArray = $this->search(adLDAP::ADLDAP_DISTRIBUTION_GROUP, $includeDescription, $search, $sorted);
                -        return $groupsArray;
                -    }
                -    
                -    /**
                -    * Coping with AD not returning the primary group
                -    * http://support.microsoft.com/?kbid=321360 
                -    * 
                -    * This is a re-write based on code submitted by Bruce which prevents the 
                -    * need to search each security group to find the true primary group
                -    * 
                -    * @param string $gid Group ID
                -    * @param string $usersid User's Object SID
                -    * @return mixed
                -    */
                -    public function getPrimaryGroup($gid, $usersid)
                -    {
                -        if ($gid === NULL || $usersid === NULL) { return false; }
                -        $sr = false;
                -
                -        $gsid = substr_replace($usersid, pack('V',$gid), strlen($usersid)-4,4);
                -        $filter = '(objectsid=' . $this->adldap->utilities()->getTextSID($gsid).')';
                -        $fields = array("samaccountname","distinguishedname");
                -        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
                -        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                -
                -        if (isset($entries[0]['distinguishedname'][0])) {
                -            return $entries[0]['distinguishedname'][0];
                -        }
                -        return false;
                -     }
                -     
                -     /**
                -    * Coping with AD not returning the primary group
                -    * http://support.microsoft.com/?kbid=321360 
                -    * 
                -    * For some reason it's not possible to search on primarygrouptoken=XXX
                -    * If someone can show otherwise, I'd like to know about it :)
                -    * this way is resource intensive and generally a pain in the @#%^
                -    * 
                -    * @deprecated deprecated since version 3.1, see get get_primary_group
                -    * @param string $gid Group ID
                -    * @return string
                -    */
                -    public function cn($gid){    
                -        if ($gid === NULL) { return false; }
                -        $sr = false;
                -        $r = '';
                -        
                -        $filter = "(&(objectCategory=group)(samaccounttype=" . adLDAP::ADLDAP_SECURITY_GLOBAL_GROUP . "))";
                -        $fields = array("primarygrouptoken", "samaccountname", "distinguishedname");
                -        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
                -        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                -        
                -        for ($i=0; $i<$entries["count"]; $i++){
                -            if ($entries[$i]["primarygrouptoken"][0] == $gid) {
                -                $r = $entries[$i]["distinguishedname"][0];
                -                $i = $entries["count"];
                -            }
                -        }
                -
                -        return $r;
                -    }
                -}
                -?>
                +adldap = $adldap;
                +    }
                +    
                +    /**
                +    * Add a group to a group
                +    * 
                +    * @param string $parent The parent group name
                +    * @param string $child The child group name
                +    * @return bool
                +    */
                +    public function addGroup($parent,$child){
                +
                +        // Find the parent group's dn
                +        $parentGroup = $this->ginfo($parent, array("cn"));
                +        if ($parentGroup[0]["dn"] === NULL){
                +            return false; 
                +        }
                +        $parentDn = $parentGroup[0]["dn"];
                +        
                +        // Find the child group's dn
                +        $childGroup = $this->info($child, array("cn"));
                +        if ($childGroup[0]["dn"] === NULL){ 
                +            return false; 
                +        }
                +        $childDn = $childGroup[0]["dn"];
                +                
                +        $add = array();
                +        $add["member"] = $childDn;
                +        
                +        $result = @ldap_mod_add($this->adldap->getLdapConnection(), $parentDn, $add);
                +        if ($result == false) { 
                +            return false; 
                +        }
                +        return true;
                +    }
                +    
                +    /**
                +    * Add a user to a group
                +    * 
                +    * @param string $group The group to add the user to
                +    * @param string $user The user to add to the group
                +    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                +    * @return bool
                +    */
                +    public function addUser($group, $user, $isGUID = false)
                +    {
                +        // Adding a user is a bit fiddly, we need to get the full DN of the user
                +        // and add it using the full DN of the group
                +        
                +        // Find the user's dn
                +        $userDn = $this->adldap->user()->dn($user, $isGUID);
                +        if ($userDn === false) { 
                +            return false; 
                +        }
                +        
                +        // Find the group's dn
                +        $groupInfo = $this->info($group, array("cn"));
                +        if ($groupInfo[0]["dn"] === NULL) { 
                +            return false; 
                +        }
                +        $groupDn = $groupInfo[0]["dn"];
                +        
                +        $add = array();
                +        $add["member"] = $userDn;
                +        
                +        $result = @ldap_mod_add($this->adldap->getLdapConnection(), $groupDn, $add);
                +        if ($result == false) { 
                +            return false; 
                +        }
                +        return true;
                +    }
                +    
                +    /**
                +    * Add a contact to a group
                +    * 
                +    * @param string $group The group to add the contact to
                +    * @param string $contactDn The DN of the contact to add
                +    * @return bool
                +    */
                +    public function addContact($group, $contactDn)
                +    {
                +        // To add a contact we take the contact's DN
                +        // and add it using the full DN of the group
                +        
                +        // Find the group's dn
                +        $groupInfo = $this->info($group, array("cn"));
                +        if ($groupInfo[0]["dn"] === NULL) { 
                +            return false; 
                +        }
                +        $groupDn = $groupInfo[0]["dn"];
                +        
                +        $add = array();
                +        $add["member"] = $contactDn;
                +        
                +        $result = @ldap_mod_add($this->adldap->getLdapConnection(), $groupDn, $add);
                +        if ($result == false) { 
                +            return false; 
                +        }
                +        return true;
                +    }
                +
                +    /**
                +    * Create a group
                +    * 
                +    * @param array $attributes Default attributes of the group
                +    * @return bool
                +    */
                +    public function create($attributes)
                +    {
                +        if (!is_array($attributes)){ return "Attributes must be an array"; }
                +        if (!array_key_exists("group_name", $attributes)){ return "Missing compulsory field [group_name]"; }
                +        if (!array_key_exists("container", $attributes)){ return "Missing compulsory field [container]"; }
                +        if (!array_key_exists("description", $attributes)){ return "Missing compulsory field [description]"; }
                +        if (!is_array($attributes["container"])){ return "Container attribute must be an array."; }
                +        $attributes["container"] = array_reverse($attributes["container"]);
                +
                +        //$member_array = array();
                +        //$member_array[0] = "cn=user1,cn=Users,dc=yourdomain,dc=com";
                +        //$member_array[1] = "cn=administrator,cn=Users,dc=yourdomain,dc=com";
                +        
                +        $add = array();
                +        $add["cn"] = $attributes["group_name"];
                +        $add["samaccountname"] = $attributes["group_name"];
                +        $add["objectClass"] = "Group";
                +        $add["description"] = $attributes["description"];
                +        //$add["member"] = $member_array; UNTESTED
                +
                +        $container = "OU=" . implode(",OU=", $attributes["container"]);
                +        $result = ldap_add($this->adldap->getLdapConnection(), "CN=" . $add["cn"] . ", " . $container . "," . $this->adldap->getBaseDn(), $add);
                +        if ($result != true) { 
                +            return false; 
                +        }
                +        return true;
                +    }
                +    
                +    /**
                +    * Delete a group account 
                +    * 
                +    * @param string $group The group to delete (please be careful here!) 
                +    * 
                +    * @return array 
                +    */
                +    public function delete($group) {
                +        if (!$this->adldap->getLdapBind()){ return false; }
                +        if ($group === null){ return "Missing compulsory field [group]"; }
                +        
                +        $groupInfo = $this->info($group, array("*"));
                +        $dn = $groupInfo[0]['distinguishedname'][0]; 
                +        $result = $this->adldap->folder()->delete($dn); 
                +        if ($result !== true) { 
                +            return false; 
                +        } return true;   
                +    }
                +
                +    /**
                +    * Remove a group from a group
                +    * 
                +    * @param string $parent The parent group name
                +    * @param string $child The child group name
                +    * @return bool
                +    */
                +    public function removeGroup($parent , $child)
                +    {
                +    
                +        // Find the parent dn
                +        $parentGroup = $this->info($parent, array("cn"));
                +        if ($parentGroup[0]["dn"] === NULL) { 
                +            return false; 
                +        }
                +        $parentDn = $parentGroup[0]["dn"];
                +        
                +        // Find the child dn
                +        $childGroup = $this->info($child, array("cn"));
                +        if ($childGroup[0]["dn"] === NULL) { 
                +            return false; 
                +        }
                +        $childDn = $childGroup[0]["dn"];
                +        
                +        $del = array();
                +        $del["member"] = $childDn;
                +        
                +        $result = @ldap_mod_del($this->adldap->getLdapConnection(), $parentDn, $del);
                +        if ($result == false) { 
                +            return false; 
                +        }
                +        return true;
                +    }
                +    
                +    /**
                +    * Remove a user from a group
                +    * 
                +    * @param string $group The group to remove a user from
                +    * @param string $user The AD user to remove from the group
                +    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                +    * @return bool
                +    */
                +    public function removeUser($group, $user, $isGUID = false)
                +    {
                +    
                +        // Find the parent dn
                +        $groupInfo = $this->info($group, array("cn"));
                +        if ($groupInfo[0]["dn"] === NULL){ 
                +            return false; 
                +        }
                +        $groupDn = $groupInfo[0]["dn"];
                +        
                +        // Find the users dn
                +        $userDn = $this->adldap->user()->dn($user, $isGUID);
                +        if ($userDn === false) {
                +            return false; 
                +        }
                +
                +        $del = array();
                +        $del["member"] = $userDn;
                +        
                +        $result = @ldap_mod_del($this->adldap->getLdapConnection(), $groupDn, $del);
                +        if ($result == false) {
                +            return false; 
                +        }
                +        return true;
                +    }
                +    
                +    /**
                +    * Remove a contact from a group
                +    * 
                +    * @param string $group The group to remove a user from
                +    * @param string $contactDn The DN of a contact to remove from the group
                +    * @return bool
                +    */
                +    public function removeContact($group, $contactDn)
                +    {
                +    
                +        // Find the parent dn
                +        $groupInfo = $this->info($group, array("cn"));
                +        if ($groupInfo[0]["dn"] === NULL) { 
                +            return false; 
                +        }
                +        $groupDn = $groupInfo[0]["dn"];
                +    
                +        $del = array();
                +        $del["member"] = $contactDn;
                +        
                +        $result = @ldap_mod_del($this->adldap->getLdapConnection(), $groupDn, $del);
                +        if ($result == false) { 
                +            return false; 
                +        }
                +        return true;
                +    }
                +    
                +    /**
                +    * Return a list of groups in a group
                +    * 
                +    * @param string $group The group to query
                +    * @param bool $recursive Recursively get groups
                +    * @return array
                +    */
                +    public function inGroup($group, $recursive = NULL)
                +    {
                +        if (!$this->adldap->getLdapBind()){ return false; }
                +        if ($recursive === NULL){ $recursive = $this->adldap->getRecursiveGroups(); } // Use the default option if they haven't set it 
                +        
                +        // Search the directory for the members of a group
                +        $info = $this->info($group, array("member","cn"));
                +        $groups = $info[0]["member"];
                +        if (!is_array($groups)) {
                +            return false;   
                +        }
                + 
                +        $groupArray = array();
                +
                +        for ($i=0; $i<$groups["count"]; $i++){ 
                +             $filter = "(&(objectCategory=group)(distinguishedName=" . $this->adldap->utilities()->ldapSlashes($groups[$i]) . "))";
                +             $fields = array("samaccountname", "distinguishedname", "objectClass");
                +             $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
                +             $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                +
                +             // not a person, look for a group  
                +             if ($entries['count'] == 0 && $recursive == true) {  
                +                $filter = "(&(objectCategory=group)(distinguishedName=" . $this->adldap->utilities()->ldapSlashes($groups[$i]) . "))";  
                +                $fields = array("distinguishedname");  
                +                $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);  
                +                $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);  
                +                if (!isset($entries[0]['distinguishedname'][0])) {
                +                    continue;  
                +                }
                +                $subGroups = $this->inGroup($entries[0]['distinguishedname'][0], $recursive);  
                +                if (is_array($subGroups)) {
                +                    $groupArray = array_merge($groupArray, $subGroups); 
                +                    $groupArray = array_unique($groupArray);  
                +                }
                +                continue;  
                +             } 
                +
                +             $groupArray[] = $entries[0]['distinguishedname'][0];
                +        }
                +        return $groupArray;
                +    }
                +    
                +    /**
                +    * Return a list of members in a group
                +    * 
                +    * @param string $group The group to query
                +    * @param bool $recursive Recursively get group members
                +    * @return array
                +    */
                +    public function members($group, $recursive = NULL)
                +    {
                +        if (!$this->adldap->getLdapBind()){ return false; }
                +        if ($recursive === NULL){ $recursive = $this->adldap->getRecursiveGroups(); } // Use the default option if they haven't set it 
                +        // Search the directory for the members of a group
                +        $info = $this->info($group, array("member","cn"));
                +        $users = $info[0]["member"];
                +        if (!is_array($users)) {
                +            return false;   
                +        }
                + 
                +        $userArray = array();
                +
                +        for ($i=0; $i<$users["count"]; $i++){ 
                +             $filter = "(&(objectCategory=person)(distinguishedName=" . $this->adldap->utilities()->ldapSlashes($users[$i]) . "))";
                +             $fields = array("samaccountname", "distinguishedname", "objectClass");
                +             $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
                +             $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                +
                +             // not a person, look for a group  
                +             if ($entries['count'] == 0 && $recursive == true) {  
                +                $filter = "(&(objectCategory=group)(distinguishedName=" . $this->adldap->utilities()->ldapSlashes($users[$i]) . "))";  
                +                $fields = array("samaccountname");  
                +                $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);  
                +                $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);  
                +                if (!isset($entries[0]['samaccountname'][0])) {
                +                    continue;  
                +                }
                +                $subUsers = $this->members($entries[0]['samaccountname'][0], $recursive);  
                +                if (is_array($subUsers)) {
                +                    $userArray = array_merge($userArray, $subUsers); 
                +                    $userArray = array_unique($userArray);  
                +                }
                +                continue;  
                +             } 
                +             else if ($entries['count'] == 0) {   
                +                continue; 
                +             } 
                +
                +             if ((!isset($entries[0]['samaccountname'][0]) || $entries[0]['samaccountname'][0] === NULL) && $entries[0]['distinguishedname'][0] !== NULL) {
                +                 $userArray[] = $entries[0]['distinguishedname'][0];
                +             }
                +             else if ($entries[0]['samaccountname'][0] !== NULL) {
                +                $userArray[] = $entries[0]['samaccountname'][0];
                +             }
                +        }
                +        return $userArray;
                +    }
                +    
                +    /**
                +    * Group Information.  Returns an array of raw information about a group.
                +    * The group name is case sensitive
                +    * 
                +    * @param string $groupName The group name to retrieve info about
                +    * @param array $fields Fields to retrieve
                +    * @return array
                +    */
                +    public function info($groupName, $fields = NULL)
                +    {
                +        if ($groupName === NULL) { return false; }
                +        if (!$this->adldap->getLdapBind()) { return false; }
                +        
                +        if (stristr($groupName, '+')) {
                +            $groupName = stripslashes($groupName);   
                +        }
                +        
                +        $filter = "(&(objectCategory=group)(name=" . $this->adldap->utilities()->ldapSlashes($groupName) . "))";
                +        if ($fields === NULL) { 
                +            $fields = array("member","memberof","cn","description","distinguishedname","objectcategory","samaccountname"); 
                +        }
                +        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
                +        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                +
                +        return $entries;
                +    }
                +    
                +    /**
                +    * Group Information.  Returns an collection
                +    * The group name is case sensitive
                +    * 
                +    * @param string $groupName The group name to retrieve info about
                +    * @param array $fields Fields to retrieve
                +    * @return adLDAPGroupCollection
                +    */
                +    public function infoCollection($groupName, $fields = NULL)
                +    {
                +        if ($groupName === NULL) { return false; }
                +        if (!$this->adldap->getLdapBind()) { return false; }
                +        
                +        $info = $this->info($groupName, $fields);
                +        if ($info !== false) {
                +            $collection = new adLDAPGroupCollection($info, $this->adldap);
                +            return $collection;
                +        }
                +        return false;
                +    }
                +    
                +    /**
                +    * Return a complete list of "groups in groups"
                +    * 
                +    * @param string $group The group to get the list from
                +    * @return array
                +    */
                +    public function recursiveGroups($group)
                +    {
                +        if ($group === NULL) { return false; }
                +
                +        $stack = array(); 
                +        $processed = array(); 
                +        $retGroups = array(); 
                +     
                +        array_push($stack, $group); // Initial Group to Start with 
                +        while (count($stack) > 0) {
                +            $parent = array_pop($stack);
                +            array_push($processed, $parent);
                +            
                +            $info = $this->info($parent, array("memberof"));
                +            
                +            if (isset($info[0]["memberof"]) && is_array($info[0]["memberof"])) {
                +                $groups = $info[0]["memberof"]; 
                +                if ($groups) {
                +                    $groupNames = $this->adldap->utilities()->niceNames($groups);  
                +                    $retGroups = array_merge($retGroups, $groupNames); //final groups to return
                +                    foreach ($groupNames as $id => $groupName) { 
                +                        if (!in_array($groupName, $processed)) {
                +                            array_push($stack, $groupName);
                +                        }
                +                    }
                +                }
                +            }
                +        }
                +        
                +        return $retGroups;
                +    }
                +    
                +    /**
                +    * Returns a complete list of the groups in AD based on a SAM Account Type  
                +    * 
                +    * @param string $sAMAaccountType The account type to return
                +    * @param bool $includeDescription Whether to return a description
                +    * @param string $search Search parameters
                +    * @param bool $sorted Whether to sort the results
                +    * @return array
                +    */
                +    public function search($sAMAaccountType = adLDAP::ADLDAP_SECURITY_GLOBAL_GROUP, $includeDescription = false, $search = "*", $sorted = true) {
                +        if (!$this->adldap->getLdapBind()) { return false; }
                +        
                +        $filter = '(&(objectCategory=group)';
                +        if ($sAMAaccountType !== null) {
                +            $filter .= '(samaccounttype='. $sAMAaccountType .')';
                +        }
                +        $filter .= '(cn=' . $search . '))';
                +        // Perform the search and grab all their details
                +        $fields = array("samaccountname", "description");
                +        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
                +        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                +
                +        $groupsArray = array();        
                +        for ($i=0; $i<$entries["count"]; $i++){
                +            if ($includeDescription && strlen($entries[$i]["description"][0]) > 0 ) {
                +                $groupsArray[$entries[$i]["samaccountname"][0]] = $entries[$i]["description"][0];
                +            }
                +            else if ($includeDescription){
                +                $groupsArray[$entries[$i]["samaccountname"][0]] = $entries[$i]["samaccountname"][0];
                +            }
                +            else {
                +                array_push($groupsArray, $entries[$i]["samaccountname"][0]);
                +            }
                +        }
                +        if ($sorted) { 
                +            asort($groupsArray); 
                +        }
                +        return $groupsArray;
                +    }
                +    
                +    /**
                +    * Returns a complete list of all groups in AD
                +    * 
                +    * @param bool $includeDescription Whether to return a description
                +    * @param string $search Search parameters
                +    * @param bool $sorted Whether to sort the results
                +    * @return array
                +    */
                +    public function all($includeDescription = false, $search = "*", $sorted = true){
                +        $groupsArray = $this->search(null, $includeDescription, $search, $sorted);
                +        return $groupsArray;
                +    }
                +    
                +    /**
                +    * Returns a complete list of security groups in AD
                +    * 
                +    * @param bool $includeDescription Whether to return a description
                +    * @param string $search Search parameters
                +    * @param bool $sorted Whether to sort the results
                +    * @return array
                +    */
                +    public function allSecurity($includeDescription = false, $search = "*", $sorted = true){
                +        $groupsArray = $this->search(adLDAP::ADLDAP_SECURITY_GLOBAL_GROUP, $includeDescription, $search, $sorted);
                +        return $groupsArray;
                +    }
                +    
                +    /**
                +    * Returns a complete list of distribution lists in AD
                +    * 
                +    * @param bool $includeDescription Whether to return a description
                +    * @param string $search Search parameters
                +    * @param bool $sorted Whether to sort the results
                +    * @return array
                +    */
                +    public function allDistribution($includeDescription = false, $search = "*", $sorted = true){
                +        $groupsArray = $this->search(adLDAP::ADLDAP_DISTRIBUTION_GROUP, $includeDescription, $search, $sorted);
                +        return $groupsArray;
                +    }
                +    
                +    /**
                +    * Coping with AD not returning the primary group
                +    * http://support.microsoft.com/?kbid=321360 
                +    * 
                +    * This is a re-write based on code submitted by Bruce which prevents the 
                +    * need to search each security group to find the true primary group
                +    * 
                +    * @param string $gid Group ID
                +    * @param string $usersid User's Object SID
                +    * @return mixed
                +    */
                +    public function getPrimaryGroup($gid, $usersid)
                +    {
                +        if ($gid === NULL || $usersid === NULL) { return false; }
                +        $sr = false;
                +
                +        $gsid = substr_replace($usersid, pack('V',$gid), strlen($usersid)-4,4);
                +        $filter = '(objectsid=' . $this->adldap->utilities()->getTextSID($gsid).')';
                +        $fields = array("samaccountname","distinguishedname");
                +        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
                +        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                +
                +        if (isset($entries[0]['distinguishedname'][0])) {
                +            return $entries[0]['distinguishedname'][0];
                +        }
                +        return false;
                +     }
                +     
                +     /**
                +    * Coping with AD not returning the primary group
                +    * http://support.microsoft.com/?kbid=321360 
                +    * 
                +    * For some reason it's not possible to search on primarygrouptoken=XXX
                +    * If someone can show otherwise, I'd like to know about it :)
                +    * this way is resource intensive and generally a pain in the @#%^
                +    * 
                +    * @deprecated deprecated since version 3.1, see get get_primary_group
                +    * @param string $gid Group ID
                +    * @return string
                +    */
                +    public function cn($gid){    
                +        if ($gid === NULL) { return false; }
                +        $sr = false;
                +        $r = '';
                +        
                +        $filter = "(&(objectCategory=group)(samaccounttype=" . adLDAP::ADLDAP_SECURITY_GLOBAL_GROUP . "))";
                +        $fields = array("primarygrouptoken", "samaccountname", "distinguishedname");
                +        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
                +        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                +        
                +        for ($i=0; $i<$entries["count"]; $i++){
                +            if ($entries[$i]["primarygrouptoken"][0] == $gid) {
                +                $r = $entries[$i]["distinguishedname"][0];
                +                $i = $entries["count"];
                +            }
                +        }
                +
                +        return $r;
                +    }
                +}
                +?>
                diff --git a/lib/plugins/authad/adLDAP/classes/adLDAPUsers.php b/lib/plugins/authad/adLDAP/classes/adLDAPUsers.php
                index 96a93b512..839fd592d 100644
                --- a/lib/plugins/authad/adLDAP/classes/adLDAPUsers.php
                +++ b/lib/plugins/authad/adLDAP/classes/adLDAPUsers.php
                @@ -1,682 +1,682 @@
                -adldap = $adldap;
                -    }
                -    
                -    /**
                -    * Validate a user's login credentials
                -    * 
                -    * @param string $username A user's AD username
                -    * @param string $password A user's AD password
                -    * @param bool optional $prevent_rebind
                -    * @return bool
                -    */
                -    public function authenticate($username, $password, $preventRebind = false) {
                -        return $this->adldap->authenticate($username, $password, $preventRebind);
                -    }
                -    
                -    /**
                -    * Create a user
                -    * 
                -    * If you specify a password here, this can only be performed over SSL
                -    * 
                -    * @param array $attributes The attributes to set to the user account
                -    * @return bool
                -    */
                -    public function create($attributes)
                -    {
                -        // Check for compulsory fields
                -        if (!array_key_exists("username", $attributes)){ return "Missing compulsory field [username]"; }
                -        if (!array_key_exists("firstname", $attributes)){ return "Missing compulsory field [firstname]"; }
                -        if (!array_key_exists("surname", $attributes)){ return "Missing compulsory field [surname]"; }
                -        if (!array_key_exists("email", $attributes)){ return "Missing compulsory field [email]"; }
                -        if (!array_key_exists("container", $attributes)){ return "Missing compulsory field [container]"; }
                -        if (!is_array($attributes["container"])){ return "Container attribute must be an array."; }
                -
                -        if (array_key_exists("password",$attributes) && (!$this->adldap->getUseSSL() && !$this->adldap->getUseTLS())){ 
                -            throw new adLDAPException('SSL must be configured on your webserver and enabled in the class to set passwords.');
                -        }
                -
                -        if (!array_key_exists("display_name", $attributes)) { 
                -            $attributes["display_name"] = $attributes["firstname"] . " " . $attributes["surname"]; 
                -        }
                -
                -        // Translate the schema
                -        $add = $this->adldap->adldap_schema($attributes);
                -        
                -        // Additional stuff only used for adding accounts
                -        $add["cn"][0] = $attributes["display_name"];
                -        $add["samaccountname"][0] = $attributes["username"];
                -        $add["objectclass"][0] = "top";
                -        $add["objectclass"][1] = "person";
                -        $add["objectclass"][2] = "organizationalPerson";
                -        $add["objectclass"][3] = "user"; //person?
                -        //$add["name"][0]=$attributes["firstname"]." ".$attributes["surname"];
                -
                -        // Set the account control attribute
                -        $control_options = array("NORMAL_ACCOUNT");
                -        if (!$attributes["enabled"]) { 
                -            $control_options[] = "ACCOUNTDISABLE"; 
                -        }
                -        $add["userAccountControl"][0] = $this->accountControl($control_options);
                -        
                -        // Determine the container
                -        $attributes["container"] = array_reverse($attributes["container"]);
                -        $container = "OU=" . implode(", OU=",$attributes["container"]);
                -
                -        // Add the entry
                -        $result = @ldap_add($this->adldap->getLdapConnection(), "CN=" . $add["cn"][0] . ", " . $container . "," . $this->adldap->getBaseDn(), $add);
                -        if ($result != true) { 
                -            return false; 
                -        }
                -        
                -        return true;
                -    }
                -    
                -    /**
                -    * Account control options
                -    *
                -    * @param array $options The options to convert to int 
                -    * @return int
                -    */
                -    protected function accountControl($options)
                -    {
                -        $val=0;
                -
                -        if (is_array($options)) {
                -            if (in_array("SCRIPT",$options)){ $val=$val+1; }
                -            if (in_array("ACCOUNTDISABLE",$options)){ $val=$val+2; }
                -            if (in_array("HOMEDIR_REQUIRED",$options)){ $val=$val+8; }
                -            if (in_array("LOCKOUT",$options)){ $val=$val+16; }
                -            if (in_array("PASSWD_NOTREQD",$options)){ $val=$val+32; }
                -            //PASSWD_CANT_CHANGE Note You cannot assign this permission by directly modifying the UserAccountControl attribute.
                -            //For information about how to set the permission programmatically, see the "Property flag descriptions" section.
                -            if (in_array("ENCRYPTED_TEXT_PWD_ALLOWED",$options)){ $val=$val+128; }
                -            if (in_array("TEMP_DUPLICATE_ACCOUNT",$options)){ $val=$val+256; }
                -            if (in_array("NORMAL_ACCOUNT",$options)){ $val=$val+512; }
                -            if (in_array("INTERDOMAIN_TRUST_ACCOUNT",$options)){ $val=$val+2048; }
                -            if (in_array("WORKSTATION_TRUST_ACCOUNT",$options)){ $val=$val+4096; }
                -            if (in_array("SERVER_TRUST_ACCOUNT",$options)){ $val=$val+8192; }
                -            if (in_array("DONT_EXPIRE_PASSWORD",$options)){ $val=$val+65536; }
                -            if (in_array("MNS_LOGON_ACCOUNT",$options)){ $val=$val+131072; }
                -            if (in_array("SMARTCARD_REQUIRED",$options)){ $val=$val+262144; }
                -            if (in_array("TRUSTED_FOR_DELEGATION",$options)){ $val=$val+524288; }
                -            if (in_array("NOT_DELEGATED",$options)){ $val=$val+1048576; }
                -            if (in_array("USE_DES_KEY_ONLY",$options)){ $val=$val+2097152; }
                -            if (in_array("DONT_REQ_PREAUTH",$options)){ $val=$val+4194304; } 
                -            if (in_array("PASSWORD_EXPIRED",$options)){ $val=$val+8388608; }
                -            if (in_array("TRUSTED_TO_AUTH_FOR_DELEGATION",$options)){ $val=$val+16777216; }
                -        }
                -        return $val;
                -    }
                -    
                -    /**
                -    * Delete a user account
                -    * 
                -    * @param string $username The username to delete (please be careful here!)
                -    * @param bool $isGUID Is the username a GUID or a samAccountName
                -    * @return array
                -    */
                -    public function delete($username, $isGUID = false) 
                -    {      
                -        $userinfo = $this->info($username, array("*"), $isGUID);
                -        $dn = $userinfo[0]['distinguishedname'][0];
                -        $result = $this->adldap->folder()->delete($dn);
                -        if ($result != true) { 
                -            return false;
                -        }        
                -        return true;
                -    }
                -    
                -    /**
                -    * Groups the user is a member of
                -    * 
                -    * @param string $username The username to query
                -    * @param bool $recursive Recursive list of groups
                -    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                -    * @return array
                -    */
                -    public function groups($username, $recursive = NULL, $isGUID = false)
                -    {
                -        if ($username === NULL) { return false; }
                -        if ($recursive === NULL) { $recursive = $this->adldap->getRecursiveGroups(); } // Use the default option if they haven't set it
                -        if (!$this->adldap->getLdapBind()) { return false; }
                -        
                -        // Search the directory for their information
                -        $info = @$this->info($username, array("memberof", "primarygroupid"), $isGUID);
                -        $groups = $this->adldap->utilities()->niceNames($info[0]["memberof"]); // Presuming the entry returned is our guy (unique usernames)
                -
                -        if ($recursive === true){
                -            foreach ($groups as $id => $groupName){
                -                $extraGroups = $this->adldap->group()->recursiveGroups($groupName);
                -                $groups = array_merge($groups, $extraGroups);
                -            }
                -        }
                -        
                -        return $groups;
                -    }
                -    
                -    /**
                -    * Find information about the users. Returned in a raw array format from AD
                -    * 
                -    * @param string $username The username to query
                -    * @param array $fields Array of parameters to query
                -    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                -    * @return array
                -    */
                -    public function info($username, $fields = NULL, $isGUID = false)
                -    {
                -        if ($username === NULL) { return false; }
                -        if (!$this->adldap->getLdapBind()) { return false; }
                -
                -        if ($isGUID === true) {
                -            $username = $this->adldap->utilities()->strGuidToHex($username);
                -            $filter = "objectguid=" . $username;
                -        }
                -        else if (strstr($username, "@")) {
                -             $filter = "userPrincipalName=" . $username;
                -        }
                -        else {
                -             $filter = "samaccountname=" . $username;
                -        }
                -        $filter = "(&(objectCategory=person)({$filter}))";
                -        if ($fields === NULL) { 
                -            $fields = array("samaccountname","mail","memberof","department","displayname","telephonenumber","primarygroupid","objectsid"); 
                -        }
                -        if (!in_array("objectsid", $fields)) {
                -            $fields[] = "objectsid";
                -        }
                -        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
                -        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                -        
                -        if (isset($entries[0])) {
                -            if ($entries[0]['count'] >= 1) {
                -                if (in_array("memberof", $fields)) {
                -                    // AD does not return the primary group in the ldap query, we may need to fudge it
                -                    if ($this->adldap->getRealPrimaryGroup() && isset($entries[0]["primarygroupid"][0]) && isset($entries[0]["objectsid"][0])){
                -                        //$entries[0]["memberof"][]=$this->group_cn($entries[0]["primarygroupid"][0]);
                -                        $entries[0]["memberof"][] = $this->adldap->group()->getPrimaryGroup($entries[0]["primarygroupid"][0], $entries[0]["objectsid"][0]);
                -                    } else {
                -                        $entries[0]["memberof"][] = "CN=Domain Users,CN=Users," . $this->adldap->getBaseDn();
                -                    }
                -                    if (!isset($entries[0]["memberof"]["count"])) {
                -                        $entries[0]["memberof"]["count"] = 0;
                -                    }
                -                    $entries[0]["memberof"]["count"]++;
                -                }
                -            }
                -            
                -            return $entries;
                -        }
                -        return false;
                -    }
                -    
                -    /**
                -    * Find information about the users. Returned in a raw array format from AD
                -    * 
                -    * @param string $username The username to query
                -    * @param array $fields Array of parameters to query
                -    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                -    * @return mixed
                -    */
                -    public function infoCollection($username, $fields = NULL, $isGUID = false)
                -    {
                -        if ($username === NULL) { return false; }
                -        if (!$this->adldap->getLdapBind()) { return false; }
                -        
                -        $info = $this->info($username, $fields, $isGUID);
                -        
                -        if ($info !== false) {
                -            $collection = new adLDAPUserCollection($info, $this->adldap);
                -            return $collection;
                -        }
                -        return false;
                -    }
                -    
                -    /**
                -    * Determine if a user is in a specific group
                -    * 
                -    * @param string $username The username to query
                -    * @param string $group The name of the group to check against
                -    * @param bool $recursive Check groups recursively
                -    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                -    * @return bool
                -    */
                -    public function inGroup($username, $group, $recursive = NULL, $isGUID = false)
                -    {
                -        if ($username === NULL) { return false; }
                -        if ($group === NULL) { return false; }
                -        if (!$this->adldap->getLdapBind()) { return false; }
                -        if ($recursive === NULL) { $recursive = $this->adldap->getRecursiveGroups(); } // Use the default option if they haven't set it
                -        
                -        // Get a list of the groups
                -        $groups = $this->groups($username, $recursive, $isGUID);
                -        
                -        // Return true if the specified group is in the group list
                -        if (in_array($group, $groups)) { 
                -            return true; 
                -        }
                -
                -        return false;
                -    }
                -    
                -    /**
                -    * Determine a user's password expiry date
                -    * 
                -    * @param string $username The username to query
                -    * @param book $isGUID Is the username passed a GUID or a samAccountName
                -    * @requires bcmath http://www.php.net/manual/en/book.bc.php
                -    * @return array
                -    */
                -    public function passwordExpiry($username, $isGUID = false) 
                -    {
                -        if ($username === NULL) { return "Missing compulsory field [username]"; }
                -        if (!$this->adldap->getLdapBind()) { return false; }
                -        if (!function_exists('bcmod')) { throw new adLDAPException("Missing function support [bcmod] http://www.php.net/manual/en/book.bc.php"); };
                -        
                -        $userInfo = $this->info($username, array("pwdlastset", "useraccountcontrol"), $isGUID);
                -        $pwdLastSet = $userInfo[0]['pwdlastset'][0];
                -        $status = array();
                -        
                -        if ($userInfo[0]['useraccountcontrol'][0] == '66048') {
                -            // Password does not expire
                -            return "Does not expire";
                -        }
                -        if ($pwdLastSet === '0') {
                -            // Password has already expired
                -            return "Password has expired";
                -        }
                -        
                -         // Password expiry in AD can be calculated from TWO values:
                -         //   - User's own pwdLastSet attribute: stores the last time the password was changed
                -         //   - Domain's maxPwdAge attribute: how long passwords last in the domain
                -         //
                -         // Although Microsoft chose to use a different base and unit for time measurements.
                -         // This function will convert them to Unix timestamps
                -         $sr = ldap_read($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), 'objectclass=*', array('maxPwdAge'));
                -         if (!$sr) {
                -             return false;
                -         }
                -         $info = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                -         $maxPwdAge = $info[0]['maxpwdage'][0];
                -         
                -
                -         // See MSDN: http://msdn.microsoft.com/en-us/library/ms974598.aspx
                -         //
                -         // pwdLastSet contains the number of 100 nanosecond intervals since January 1, 1601 (UTC), 
                -         // stored in a 64 bit integer. 
                -         //
                -         // The number of seconds between this date and Unix epoch is 11644473600.
                -         //
                -         // maxPwdAge is stored as a large integer that represents the number of 100 nanosecond
                -         // intervals from the time the password was set before the password expires.
                -         //
                -         // We also need to scale this to seconds but also this value is a _negative_ quantity!
                -         //
                -         // If the low 32 bits of maxPwdAge are equal to 0 passwords do not expire
                -         //
                -         // Unfortunately the maths involved are too big for PHP integers, so I've had to require
                -         // BCMath functions to work with arbitrary precision numbers.
                -         if (bcmod($maxPwdAge, 4294967296) === '0') {
                -            return "Domain does not expire passwords";
                -        }
                -        
                -        // Add maxpwdage and pwdlastset and we get password expiration time in Microsoft's
                -        // time units.  Because maxpwd age is negative we need to subtract it.
                -        $pwdExpire = bcsub($pwdLastSet, $maxPwdAge);
                -    
                -        // Convert MS's time to Unix time
                -        $status['expiryts'] = bcsub(bcdiv($pwdExpire, '10000000'), '11644473600');
                -        $status['expiryformat'] = date('Y-m-d H:i:s', bcsub(bcdiv($pwdExpire, '10000000'), '11644473600'));
                -        
                -        return $status;
                -    }
                -    
                -    /**
                -    * Modify a user
                -    * 
                -    * @param string $username The username to query
                -    * @param array $attributes The attributes to modify.  Note if you set the enabled attribute you must not specify any other attributes
                -    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                -    * @return bool
                -    */
                -    public function modify($username, $attributes, $isGUID = false)
                -    {
                -        if ($username === NULL) { return "Missing compulsory field [username]"; }
                -        if (array_key_exists("password", $attributes) && !$this->adldap->getUseSSL() && !$this->adldap->getUseTLS()) { 
                -            throw new adLDAPException('SSL/TLS must be configured on your webserver and enabled in the class to set passwords.');
                -        }
                -
                -        // Find the dn of the user
                -        $userDn = $this->dn($username, $isGUID);
                -        if ($userDn === false) { 
                -            return false; 
                -        }
                -        
                -        // Translate the update to the LDAP schema                
                -        $mod = $this->adldap->adldap_schema($attributes);
                -        
                -        // Check to see if this is an enabled status update
                -        if (!$mod && !array_key_exists("enabled", $attributes)){ 
                -            return false; 
                -        }
                -        
                -        // Set the account control attribute (only if specified)
                -        if (array_key_exists("enabled", $attributes)){
                -            if ($attributes["enabled"]){ 
                -                $controlOptions = array("NORMAL_ACCOUNT"); 
                -            }
                -            else { 
                -                $controlOptions = array("NORMAL_ACCOUNT", "ACCOUNTDISABLE"); 
                -            }
                -            $mod["userAccountControl"][0] = $this->accountControl($controlOptions);
                -        }
                -
                -        // Do the update
                -        $result = @ldap_modify($this->adldap->getLdapConnection(), $userDn, $mod);
                -        if ($result == false) { 
                -            return false; 
                -        }
                -        
                -        return true;
                -    }
                -    
                -    /**
                -    * Disable a user account
                -    * 
                -    * @param string $username The username to disable
                -    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                -    * @return bool
                -    */
                -    public function disable($username, $isGUID = false)
                -    {
                -        if ($username === NULL) { return "Missing compulsory field [username]"; }
                -        $attributes = array("enabled" => 0);
                -        $result = $this->modify($username, $attributes, $isGUID);
                -        if ($result == false) { return false; }
                -        
                -        return true;
                -    }
                -    
                -    /**
                -    * Enable a user account
                -    * 
                -    * @param string $username The username to enable
                -    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                -    * @return bool
                -    */
                -    public function enable($username, $isGUID = false)
                -    {
                -        if ($username === NULL) { return "Missing compulsory field [username]"; }
                -        $attributes = array("enabled" => 1);
                -        $result = $this->modify($username, $attributes, $isGUID);
                -        if ($result == false) { return false; }
                -        
                -        return true;
                -    }
                -    
                -    /**
                -    * Set the password of a user - This must be performed over SSL
                -    * 
                -    * @param string $username The username to modify
                -    * @param string $password The new password
                -    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                -    * @return bool
                -    */
                -    public function password($username, $password, $isGUID = false)
                -    {
                -        if ($username === NULL) { return false; }
                -        if ($password === NULL) { return false; }
                -        if (!$this->adldap->getLdapBind()) { return false; }
                -        if (!$this->adldap->getUseSSL() && !$this->adldap->getUseTLS()) { 
                -            throw new adLDAPException('SSL must be configured on your webserver and enabled in the class to set passwords.');
                -        }
                -        
                -        $userDn = $this->dn($username, $isGUID);
                -        if ($userDn === false) { 
                -            return false; 
                -        }
                -                
                -        $add=array();
                -        $add["unicodePwd"][0] = $this->encodePassword($password);
                -        
                -        $result = @ldap_mod_replace($this->adldap->getLdapConnection(), $userDn, $add);
                -        if ($result === false){
                -            $err = ldap_errno($this->adldap->getLdapConnection());
                -            if ($err) {
                -                $msg = 'Error ' . $err . ': ' . ldap_err2str($err) . '.';
                -                if($err == 53) {
                -                    $msg .= ' Your password might not match the password policy.';
                -                }
                -                throw new adLDAPException($msg);
                -            }
                -            else {
                -                return false;
                -            }
                -        }
                -        
                -        return true;
                -    }
                -    
                -    /**
                -    * Encode a password for transmission over LDAP
                -    *
                -    * @param string $password The password to encode
                -    * @return string
                -    */
                -    public function encodePassword($password)
                -    {
                -        $password="\"".$password."\"";
                -        $encoded="";
                -        for ($i=0; $i info($username, array("cn"), $isGUID);
                -        if ($user[0]["dn"] === NULL) { 
                -            return false; 
                -        }
                -        $userDn = $user[0]["dn"];
                -        return $userDn;
                -    }
                -    
                -    /**
                -    * Return a list of all users in AD
                -    * 
                -    * @param bool $includeDescription Return a description of the user
                -    * @param string $search Search parameter
                -    * @param bool $sorted Sort the user accounts
                -    * @return array
                -    */
                -    public function all($includeDescription = false, $search = "*", $sorted = true)
                -    {
                -        if (!$this->adldap->getLdapBind()) { return false; }
                -        
                -        // Perform the search and grab all their details
                -        $filter = "(&(objectClass=user)(samaccounttype=" . adLDAP::ADLDAP_NORMAL_ACCOUNT .")(objectCategory=person)(cn=" . $search . "))";
                -        $fields = array("samaccountname","displayname");
                -        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
                -        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                -
                -        $usersArray = array();
                -        for ($i=0; $i<$entries["count"]; $i++){
                -            if ($includeDescription && strlen($entries[$i]["displayname"][0])>0){
                -                $usersArray[$entries[$i]["samaccountname"][0]] = $entries[$i]["displayname"][0];
                -            } elseif ($includeDescription){
                -                $usersArray[$entries[$i]["samaccountname"][0]] = $entries[$i]["samaccountname"][0];
                -            } else {
                -                array_push($usersArray, $entries[$i]["samaccountname"][0]);
                -            }
                -        }
                -        if ($sorted) { 
                -            asort($usersArray); 
                -        }
                -        return $usersArray;
                -    }
                -    
                -    /**
                -    * Converts a username (samAccountName) to a GUID
                -    * 
                -    * @param string $username The username to query
                -    * @return string
                -    */
                -    public function usernameToGuid($username) 
                -    {
                -        if (!$this->adldap->getLdapBind()){ return false; }
                -        if ($username === null){ return "Missing compulsory field [username]"; }
                -        
                -        $filter = "samaccountname=" . $username; 
                -        $fields = array("objectGUID"); 
                -        $sr = @ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields); 
                -        if (ldap_count_entries($this->adldap->getLdapConnection(), $sr) > 0) { 
                -            $entry = @ldap_first_entry($this->adldap->getLdapConnection(), $sr); 
                -            $guid = @ldap_get_values_len($this->adldap->getLdapConnection(), $entry, 'objectGUID'); 
                -            $strGUID = $this->adldap->utilities()->binaryToText($guid[0]);          
                -            return $strGUID; 
                -        }
                -        return false; 
                -    }
                -    
                -    /**
                -    * Return a list of all users in AD that have a specific value in a field
                -    *
                -    * @param bool $includeDescription Return a description of the user
                -    * @param string $searchField Field to search search for
                -    * @param string $searchFilter Value to search for in the specified field
                -    * @param bool $sorted Sort the user accounts
                -    * @return array
                -    */
                -    public function find($includeDescription = false, $searchField = false, $searchFilter = false, $sorted = true){
                -        if (!$this->adldap->getLdapBind()){ return false; }
                -          
                -        // Perform the search and grab all their details
                -        $searchParams = "";
                -        if ($searchField) {
                -            $searchParams = "(" . $searchField . "=" . $searchFilter . ")";
                -        }                           
                -        $filter = "(&(objectClass=user)(samaccounttype=" . adLDAP::ADLDAP_NORMAL_ACCOUNT .")(objectCategory=person)" . $searchParams . ")";
                -        $fields = array("samaccountname","displayname");
                -        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
                -        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                -
                -        $usersArray = array();
                -        for ($i=0; $i < $entries["count"]; $i++) {
                -            if ($includeDescription && strlen($entries[$i]["displayname"][0]) > 0) {
                -                $usersArray[$entries[$i]["samaccountname"][0]] = $entries[$i]["displayname"][0];
                -            }
                -            else if ($includeDescription) {
                -                $usersArray[$entries[$i]["samaccountname"][0]] = $entries[$i]["samaccountname"][0];
                -            }
                -            else {
                -                array_push($usersArray, $entries[$i]["samaccountname"][0]);
                -            }
                -        }
                -        if ($sorted){ 
                -          asort($usersArray); 
                -        }
                -        return ($usersArray);
                -    }
                -    
                -    /**
                -    * Move a user account to a different OU
                -    *
                -    * @param string $username The username to move (please be careful here!)
                -    * @param array $container The container or containers to move the user to (please be careful here!).
                -    * accepts containers in 1. parent 2. child order
                -    * @return array
                -    */
                -    public function move($username, $container) 
                -    {
                -        if (!$this->adldap->getLdapBind()) { return false; }
                -        if ($username === null) { return "Missing compulsory field [username]"; }
                -        if ($container === null) { return "Missing compulsory field [container]"; }
                -        if (!is_array($container)) { return "Container must be an array"; }
                -        
                -        $userInfo = $this->info($username, array("*"));
                -        $dn = $userInfo[0]['distinguishedname'][0];
                -        $newRDn = "cn=" . $username;
                -        $container = array_reverse($container);
                -        $newContainer = "ou=" . implode(",ou=",$container);
                -        $newBaseDn = strtolower($newContainer) . "," . $this->adldap->getBaseDn();
                -        $result = @ldap_rename($this->adldap->getLdapConnection(), $dn, $newRDn, $newBaseDn, true);
                -        if ($result !== true) {
                -            return false;
                -        }
                -        return true;
                -    }
                -    
                -    /**
                -    * Get the last logon time of any user as a Unix timestamp
                -    * 
                -    * @param string $username
                -    * @return long $unixTimestamp
                -    */
                -    public function getLastLogon($username) {
                -        if (!$this->adldap->getLdapBind()) { return false; }
                -        if ($username === null) { return "Missing compulsory field [username]"; }
                -        $userInfo = $this->info($username, array("lastLogonTimestamp"));
                -        $lastLogon = adLDAPUtils::convertWindowsTimeToUnixTime($userInfo[0]['lastLogonTimestamp'][0]);
                -        return $lastLogon;
                -    }
                -    
                -}
                -?>
                +adldap = $adldap;
                +    }
                +    
                +    /**
                +    * Validate a user's login credentials
                +    * 
                +    * @param string $username A user's AD username
                +    * @param string $password A user's AD password
                +    * @param bool optional $prevent_rebind
                +    * @return bool
                +    */
                +    public function authenticate($username, $password, $preventRebind = false) {
                +        return $this->adldap->authenticate($username, $password, $preventRebind);
                +    }
                +    
                +    /**
                +    * Create a user
                +    * 
                +    * If you specify a password here, this can only be performed over SSL
                +    * 
                +    * @param array $attributes The attributes to set to the user account
                +    * @return bool
                +    */
                +    public function create($attributes)
                +    {
                +        // Check for compulsory fields
                +        if (!array_key_exists("username", $attributes)){ return "Missing compulsory field [username]"; }
                +        if (!array_key_exists("firstname", $attributes)){ return "Missing compulsory field [firstname]"; }
                +        if (!array_key_exists("surname", $attributes)){ return "Missing compulsory field [surname]"; }
                +        if (!array_key_exists("email", $attributes)){ return "Missing compulsory field [email]"; }
                +        if (!array_key_exists("container", $attributes)){ return "Missing compulsory field [container]"; }
                +        if (!is_array($attributes["container"])){ return "Container attribute must be an array."; }
                +
                +        if (array_key_exists("password",$attributes) && (!$this->adldap->getUseSSL() && !$this->adldap->getUseTLS())){ 
                +            throw new adLDAPException('SSL must be configured on your webserver and enabled in the class to set passwords.');
                +        }
                +
                +        if (!array_key_exists("display_name", $attributes)) { 
                +            $attributes["display_name"] = $attributes["firstname"] . " " . $attributes["surname"]; 
                +        }
                +
                +        // Translate the schema
                +        $add = $this->adldap->adldap_schema($attributes);
                +        
                +        // Additional stuff only used for adding accounts
                +        $add["cn"][0] = $attributes["display_name"];
                +        $add["samaccountname"][0] = $attributes["username"];
                +        $add["objectclass"][0] = "top";
                +        $add["objectclass"][1] = "person";
                +        $add["objectclass"][2] = "organizationalPerson";
                +        $add["objectclass"][3] = "user"; //person?
                +        //$add["name"][0]=$attributes["firstname"]." ".$attributes["surname"];
                +
                +        // Set the account control attribute
                +        $control_options = array("NORMAL_ACCOUNT");
                +        if (!$attributes["enabled"]) { 
                +            $control_options[] = "ACCOUNTDISABLE"; 
                +        }
                +        $add["userAccountControl"][0] = $this->accountControl($control_options);
                +        
                +        // Determine the container
                +        $attributes["container"] = array_reverse($attributes["container"]);
                +        $container = "OU=" . implode(", OU=",$attributes["container"]);
                +
                +        // Add the entry
                +        $result = @ldap_add($this->adldap->getLdapConnection(), "CN=" . $add["cn"][0] . ", " . $container . "," . $this->adldap->getBaseDn(), $add);
                +        if ($result != true) { 
                +            return false; 
                +        }
                +        
                +        return true;
                +    }
                +    
                +    /**
                +    * Account control options
                +    *
                +    * @param array $options The options to convert to int 
                +    * @return int
                +    */
                +    protected function accountControl($options)
                +    {
                +        $val=0;
                +
                +        if (is_array($options)) {
                +            if (in_array("SCRIPT",$options)){ $val=$val+1; }
                +            if (in_array("ACCOUNTDISABLE",$options)){ $val=$val+2; }
                +            if (in_array("HOMEDIR_REQUIRED",$options)){ $val=$val+8; }
                +            if (in_array("LOCKOUT",$options)){ $val=$val+16; }
                +            if (in_array("PASSWD_NOTREQD",$options)){ $val=$val+32; }
                +            //PASSWD_CANT_CHANGE Note You cannot assign this permission by directly modifying the UserAccountControl attribute.
                +            //For information about how to set the permission programmatically, see the "Property flag descriptions" section.
                +            if (in_array("ENCRYPTED_TEXT_PWD_ALLOWED",$options)){ $val=$val+128; }
                +            if (in_array("TEMP_DUPLICATE_ACCOUNT",$options)){ $val=$val+256; }
                +            if (in_array("NORMAL_ACCOUNT",$options)){ $val=$val+512; }
                +            if (in_array("INTERDOMAIN_TRUST_ACCOUNT",$options)){ $val=$val+2048; }
                +            if (in_array("WORKSTATION_TRUST_ACCOUNT",$options)){ $val=$val+4096; }
                +            if (in_array("SERVER_TRUST_ACCOUNT",$options)){ $val=$val+8192; }
                +            if (in_array("DONT_EXPIRE_PASSWORD",$options)){ $val=$val+65536; }
                +            if (in_array("MNS_LOGON_ACCOUNT",$options)){ $val=$val+131072; }
                +            if (in_array("SMARTCARD_REQUIRED",$options)){ $val=$val+262144; }
                +            if (in_array("TRUSTED_FOR_DELEGATION",$options)){ $val=$val+524288; }
                +            if (in_array("NOT_DELEGATED",$options)){ $val=$val+1048576; }
                +            if (in_array("USE_DES_KEY_ONLY",$options)){ $val=$val+2097152; }
                +            if (in_array("DONT_REQ_PREAUTH",$options)){ $val=$val+4194304; } 
                +            if (in_array("PASSWORD_EXPIRED",$options)){ $val=$val+8388608; }
                +            if (in_array("TRUSTED_TO_AUTH_FOR_DELEGATION",$options)){ $val=$val+16777216; }
                +        }
                +        return $val;
                +    }
                +    
                +    /**
                +    * Delete a user account
                +    * 
                +    * @param string $username The username to delete (please be careful here!)
                +    * @param bool $isGUID Is the username a GUID or a samAccountName
                +    * @return array
                +    */
                +    public function delete($username, $isGUID = false) 
                +    {      
                +        $userinfo = $this->info($username, array("*"), $isGUID);
                +        $dn = $userinfo[0]['distinguishedname'][0];
                +        $result = $this->adldap->folder()->delete($dn);
                +        if ($result != true) { 
                +            return false;
                +        }        
                +        return true;
                +    }
                +    
                +    /**
                +    * Groups the user is a member of
                +    * 
                +    * @param string $username The username to query
                +    * @param bool $recursive Recursive list of groups
                +    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                +    * @return array
                +    */
                +    public function groups($username, $recursive = NULL, $isGUID = false)
                +    {
                +        if ($username === NULL) { return false; }
                +        if ($recursive === NULL) { $recursive = $this->adldap->getRecursiveGroups(); } // Use the default option if they haven't set it
                +        if (!$this->adldap->getLdapBind()) { return false; }
                +        
                +        // Search the directory for their information
                +        $info = @$this->info($username, array("memberof", "primarygroupid"), $isGUID);
                +        $groups = $this->adldap->utilities()->niceNames($info[0]["memberof"]); // Presuming the entry returned is our guy (unique usernames)
                +
                +        if ($recursive === true){
                +            foreach ($groups as $id => $groupName){
                +                $extraGroups = $this->adldap->group()->recursiveGroups($groupName);
                +                $groups = array_merge($groups, $extraGroups);
                +            }
                +        }
                +        
                +        return $groups;
                +    }
                +    
                +    /**
                +    * Find information about the users. Returned in a raw array format from AD
                +    * 
                +    * @param string $username The username to query
                +    * @param array $fields Array of parameters to query
                +    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                +    * @return array
                +    */
                +    public function info($username, $fields = NULL, $isGUID = false)
                +    {
                +        if ($username === NULL) { return false; }
                +        if (!$this->adldap->getLdapBind()) { return false; }
                +
                +        if ($isGUID === true) {
                +            $username = $this->adldap->utilities()->strGuidToHex($username);
                +            $filter = "objectguid=" . $username;
                +        }
                +        else if (strstr($username, "@")) {
                +             $filter = "userPrincipalName=" . $username;
                +        }
                +        else {
                +             $filter = "samaccountname=" . $username;
                +        }
                +        $filter = "(&(objectCategory=person)({$filter}))";
                +        if ($fields === NULL) { 
                +            $fields = array("samaccountname","mail","memberof","department","displayname","telephonenumber","primarygroupid","objectsid"); 
                +        }
                +        if (!in_array("objectsid", $fields)) {
                +            $fields[] = "objectsid";
                +        }
                +        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
                +        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                +        
                +        if (isset($entries[0])) {
                +            if ($entries[0]['count'] >= 1) {
                +                if (in_array("memberof", $fields)) {
                +                    // AD does not return the primary group in the ldap query, we may need to fudge it
                +                    if ($this->adldap->getRealPrimaryGroup() && isset($entries[0]["primarygroupid"][0]) && isset($entries[0]["objectsid"][0])){
                +                        //$entries[0]["memberof"][]=$this->group_cn($entries[0]["primarygroupid"][0]);
                +                        $entries[0]["memberof"][] = $this->adldap->group()->getPrimaryGroup($entries[0]["primarygroupid"][0], $entries[0]["objectsid"][0]);
                +                    } else {
                +                        $entries[0]["memberof"][] = "CN=Domain Users,CN=Users," . $this->adldap->getBaseDn();
                +                    }
                +                    if (!isset($entries[0]["memberof"]["count"])) {
                +                        $entries[0]["memberof"]["count"] = 0;
                +                    }
                +                    $entries[0]["memberof"]["count"]++;
                +                }
                +            }
                +            
                +            return $entries;
                +        }
                +        return false;
                +    }
                +    
                +    /**
                +    * Find information about the users. Returned in a raw array format from AD
                +    * 
                +    * @param string $username The username to query
                +    * @param array $fields Array of parameters to query
                +    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                +    * @return mixed
                +    */
                +    public function infoCollection($username, $fields = NULL, $isGUID = false)
                +    {
                +        if ($username === NULL) { return false; }
                +        if (!$this->adldap->getLdapBind()) { return false; }
                +        
                +        $info = $this->info($username, $fields, $isGUID);
                +        
                +        if ($info !== false) {
                +            $collection = new adLDAPUserCollection($info, $this->adldap);
                +            return $collection;
                +        }
                +        return false;
                +    }
                +    
                +    /**
                +    * Determine if a user is in a specific group
                +    * 
                +    * @param string $username The username to query
                +    * @param string $group The name of the group to check against
                +    * @param bool $recursive Check groups recursively
                +    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                +    * @return bool
                +    */
                +    public function inGroup($username, $group, $recursive = NULL, $isGUID = false)
                +    {
                +        if ($username === NULL) { return false; }
                +        if ($group === NULL) { return false; }
                +        if (!$this->adldap->getLdapBind()) { return false; }
                +        if ($recursive === NULL) { $recursive = $this->adldap->getRecursiveGroups(); } // Use the default option if they haven't set it
                +        
                +        // Get a list of the groups
                +        $groups = $this->groups($username, $recursive, $isGUID);
                +        
                +        // Return true if the specified group is in the group list
                +        if (in_array($group, $groups)) { 
                +            return true; 
                +        }
                +
                +        return false;
                +    }
                +    
                +    /**
                +    * Determine a user's password expiry date
                +    * 
                +    * @param string $username The username to query
                +    * @param book $isGUID Is the username passed a GUID or a samAccountName
                +    * @requires bcmath http://www.php.net/manual/en/book.bc.php
                +    * @return array
                +    */
                +    public function passwordExpiry($username, $isGUID = false) 
                +    {
                +        if ($username === NULL) { return "Missing compulsory field [username]"; }
                +        if (!$this->adldap->getLdapBind()) { return false; }
                +        if (!function_exists('bcmod')) { throw new adLDAPException("Missing function support [bcmod] http://www.php.net/manual/en/book.bc.php"); };
                +        
                +        $userInfo = $this->info($username, array("pwdlastset", "useraccountcontrol"), $isGUID);
                +        $pwdLastSet = $userInfo[0]['pwdlastset'][0];
                +        $status = array();
                +        
                +        if ($userInfo[0]['useraccountcontrol'][0] == '66048') {
                +            // Password does not expire
                +            return "Does not expire";
                +        }
                +        if ($pwdLastSet === '0') {
                +            // Password has already expired
                +            return "Password has expired";
                +        }
                +        
                +         // Password expiry in AD can be calculated from TWO values:
                +         //   - User's own pwdLastSet attribute: stores the last time the password was changed
                +         //   - Domain's maxPwdAge attribute: how long passwords last in the domain
                +         //
                +         // Although Microsoft chose to use a different base and unit for time measurements.
                +         // This function will convert them to Unix timestamps
                +         $sr = ldap_read($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), 'objectclass=*', array('maxPwdAge'));
                +         if (!$sr) {
                +             return false;
                +         }
                +         $info = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                +         $maxPwdAge = $info[0]['maxpwdage'][0];
                +         
                +
                +         // See MSDN: http://msdn.microsoft.com/en-us/library/ms974598.aspx
                +         //
                +         // pwdLastSet contains the number of 100 nanosecond intervals since January 1, 1601 (UTC), 
                +         // stored in a 64 bit integer. 
                +         //
                +         // The number of seconds between this date and Unix epoch is 11644473600.
                +         //
                +         // maxPwdAge is stored as a large integer that represents the number of 100 nanosecond
                +         // intervals from the time the password was set before the password expires.
                +         //
                +         // We also need to scale this to seconds but also this value is a _negative_ quantity!
                +         //
                +         // If the low 32 bits of maxPwdAge are equal to 0 passwords do not expire
                +         //
                +         // Unfortunately the maths involved are too big for PHP integers, so I've had to require
                +         // BCMath functions to work with arbitrary precision numbers.
                +         if (bcmod($maxPwdAge, 4294967296) === '0') {
                +            return "Domain does not expire passwords";
                +        }
                +        
                +        // Add maxpwdage and pwdlastset and we get password expiration time in Microsoft's
                +        // time units.  Because maxpwd age is negative we need to subtract it.
                +        $pwdExpire = bcsub($pwdLastSet, $maxPwdAge);
                +    
                +        // Convert MS's time to Unix time
                +        $status['expiryts'] = bcsub(bcdiv($pwdExpire, '10000000'), '11644473600');
                +        $status['expiryformat'] = date('Y-m-d H:i:s', bcsub(bcdiv($pwdExpire, '10000000'), '11644473600'));
                +        
                +        return $status;
                +    }
                +    
                +    /**
                +    * Modify a user
                +    * 
                +    * @param string $username The username to query
                +    * @param array $attributes The attributes to modify.  Note if you set the enabled attribute you must not specify any other attributes
                +    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                +    * @return bool
                +    */
                +    public function modify($username, $attributes, $isGUID = false)
                +    {
                +        if ($username === NULL) { return "Missing compulsory field [username]"; }
                +        if (array_key_exists("password", $attributes) && !$this->adldap->getUseSSL() && !$this->adldap->getUseTLS()) { 
                +            throw new adLDAPException('SSL/TLS must be configured on your webserver and enabled in the class to set passwords.');
                +        }
                +
                +        // Find the dn of the user
                +        $userDn = $this->dn($username, $isGUID);
                +        if ($userDn === false) { 
                +            return false; 
                +        }
                +        
                +        // Translate the update to the LDAP schema                
                +        $mod = $this->adldap->adldap_schema($attributes);
                +        
                +        // Check to see if this is an enabled status update
                +        if (!$mod && !array_key_exists("enabled", $attributes)){ 
                +            return false; 
                +        }
                +        
                +        // Set the account control attribute (only if specified)
                +        if (array_key_exists("enabled", $attributes)){
                +            if ($attributes["enabled"]){ 
                +                $controlOptions = array("NORMAL_ACCOUNT"); 
                +            }
                +            else { 
                +                $controlOptions = array("NORMAL_ACCOUNT", "ACCOUNTDISABLE"); 
                +            }
                +            $mod["userAccountControl"][0] = $this->accountControl($controlOptions);
                +        }
                +
                +        // Do the update
                +        $result = @ldap_modify($this->adldap->getLdapConnection(), $userDn, $mod);
                +        if ($result == false) { 
                +            return false; 
                +        }
                +        
                +        return true;
                +    }
                +    
                +    /**
                +    * Disable a user account
                +    * 
                +    * @param string $username The username to disable
                +    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                +    * @return bool
                +    */
                +    public function disable($username, $isGUID = false)
                +    {
                +        if ($username === NULL) { return "Missing compulsory field [username]"; }
                +        $attributes = array("enabled" => 0);
                +        $result = $this->modify($username, $attributes, $isGUID);
                +        if ($result == false) { return false; }
                +        
                +        return true;
                +    }
                +    
                +    /**
                +    * Enable a user account
                +    * 
                +    * @param string $username The username to enable
                +    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                +    * @return bool
                +    */
                +    public function enable($username, $isGUID = false)
                +    {
                +        if ($username === NULL) { return "Missing compulsory field [username]"; }
                +        $attributes = array("enabled" => 1);
                +        $result = $this->modify($username, $attributes, $isGUID);
                +        if ($result == false) { return false; }
                +        
                +        return true;
                +    }
                +    
                +    /**
                +    * Set the password of a user - This must be performed over SSL
                +    * 
                +    * @param string $username The username to modify
                +    * @param string $password The new password
                +    * @param bool $isGUID Is the username passed a GUID or a samAccountName
                +    * @return bool
                +    */
                +    public function password($username, $password, $isGUID = false)
                +    {
                +        if ($username === NULL) { return false; }
                +        if ($password === NULL) { return false; }
                +        if (!$this->adldap->getLdapBind()) { return false; }
                +        if (!$this->adldap->getUseSSL() && !$this->adldap->getUseTLS()) { 
                +            throw new adLDAPException('SSL must be configured on your webserver and enabled in the class to set passwords.');
                +        }
                +        
                +        $userDn = $this->dn($username, $isGUID);
                +        if ($userDn === false) { 
                +            return false; 
                +        }
                +                
                +        $add=array();
                +        $add["unicodePwd"][0] = $this->encodePassword($password);
                +        
                +        $result = @ldap_mod_replace($this->adldap->getLdapConnection(), $userDn, $add);
                +        if ($result === false){
                +            $err = ldap_errno($this->adldap->getLdapConnection());
                +            if ($err) {
                +                $msg = 'Error ' . $err . ': ' . ldap_err2str($err) . '.';
                +                if($err == 53) {
                +                    $msg .= ' Your password might not match the password policy.';
                +                }
                +                throw new adLDAPException($msg);
                +            }
                +            else {
                +                return false;
                +            }
                +        }
                +        
                +        return true;
                +    }
                +    
                +    /**
                +    * Encode a password for transmission over LDAP
                +    *
                +    * @param string $password The password to encode
                +    * @return string
                +    */
                +    public function encodePassword($password)
                +    {
                +        $password="\"".$password."\"";
                +        $encoded="";
                +        for ($i=0; $i info($username, array("cn"), $isGUID);
                +        if ($user[0]["dn"] === NULL) { 
                +            return false; 
                +        }
                +        $userDn = $user[0]["dn"];
                +        return $userDn;
                +    }
                +    
                +    /**
                +    * Return a list of all users in AD
                +    * 
                +    * @param bool $includeDescription Return a description of the user
                +    * @param string $search Search parameter
                +    * @param bool $sorted Sort the user accounts
                +    * @return array
                +    */
                +    public function all($includeDescription = false, $search = "*", $sorted = true)
                +    {
                +        if (!$this->adldap->getLdapBind()) { return false; }
                +        
                +        // Perform the search and grab all their details
                +        $filter = "(&(objectClass=user)(samaccounttype=" . adLDAP::ADLDAP_NORMAL_ACCOUNT .")(objectCategory=person)(cn=" . $search . "))";
                +        $fields = array("samaccountname","displayname");
                +        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
                +        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                +
                +        $usersArray = array();
                +        for ($i=0; $i<$entries["count"]; $i++){
                +            if ($includeDescription && strlen($entries[$i]["displayname"][0])>0){
                +                $usersArray[$entries[$i]["samaccountname"][0]] = $entries[$i]["displayname"][0];
                +            } elseif ($includeDescription){
                +                $usersArray[$entries[$i]["samaccountname"][0]] = $entries[$i]["samaccountname"][0];
                +            } else {
                +                array_push($usersArray, $entries[$i]["samaccountname"][0]);
                +            }
                +        }
                +        if ($sorted) { 
                +            asort($usersArray); 
                +        }
                +        return $usersArray;
                +    }
                +    
                +    /**
                +    * Converts a username (samAccountName) to a GUID
                +    * 
                +    * @param string $username The username to query
                +    * @return string
                +    */
                +    public function usernameToGuid($username) 
                +    {
                +        if (!$this->adldap->getLdapBind()){ return false; }
                +        if ($username === null){ return "Missing compulsory field [username]"; }
                +        
                +        $filter = "samaccountname=" . $username; 
                +        $fields = array("objectGUID"); 
                +        $sr = @ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields); 
                +        if (ldap_count_entries($this->adldap->getLdapConnection(), $sr) > 0) { 
                +            $entry = @ldap_first_entry($this->adldap->getLdapConnection(), $sr); 
                +            $guid = @ldap_get_values_len($this->adldap->getLdapConnection(), $entry, 'objectGUID'); 
                +            $strGUID = $this->adldap->utilities()->binaryToText($guid[0]);          
                +            return $strGUID; 
                +        }
                +        return false; 
                +    }
                +    
                +    /**
                +    * Return a list of all users in AD that have a specific value in a field
                +    *
                +    * @param bool $includeDescription Return a description of the user
                +    * @param string $searchField Field to search search for
                +    * @param string $searchFilter Value to search for in the specified field
                +    * @param bool $sorted Sort the user accounts
                +    * @return array
                +    */
                +    public function find($includeDescription = false, $searchField = false, $searchFilter = false, $sorted = true){
                +        if (!$this->adldap->getLdapBind()){ return false; }
                +          
                +        // Perform the search and grab all their details
                +        $searchParams = "";
                +        if ($searchField) {
                +            $searchParams = "(" . $searchField . "=" . $searchFilter . ")";
                +        }                           
                +        $filter = "(&(objectClass=user)(samaccounttype=" . adLDAP::ADLDAP_NORMAL_ACCOUNT .")(objectCategory=person)" . $searchParams . ")";
                +        $fields = array("samaccountname","displayname");
                +        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
                +        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
                +
                +        $usersArray = array();
                +        for ($i=0; $i < $entries["count"]; $i++) {
                +            if ($includeDescription && strlen($entries[$i]["displayname"][0]) > 0) {
                +                $usersArray[$entries[$i]["samaccountname"][0]] = $entries[$i]["displayname"][0];
                +            }
                +            else if ($includeDescription) {
                +                $usersArray[$entries[$i]["samaccountname"][0]] = $entries[$i]["samaccountname"][0];
                +            }
                +            else {
                +                array_push($usersArray, $entries[$i]["samaccountname"][0]);
                +            }
                +        }
                +        if ($sorted){ 
                +          asort($usersArray); 
                +        }
                +        return ($usersArray);
                +    }
                +    
                +    /**
                +    * Move a user account to a different OU
                +    *
                +    * @param string $username The username to move (please be careful here!)
                +    * @param array $container The container or containers to move the user to (please be careful here!).
                +    * accepts containers in 1. parent 2. child order
                +    * @return array
                +    */
                +    public function move($username, $container) 
                +    {
                +        if (!$this->adldap->getLdapBind()) { return false; }
                +        if ($username === null) { return "Missing compulsory field [username]"; }
                +        if ($container === null) { return "Missing compulsory field [container]"; }
                +        if (!is_array($container)) { return "Container must be an array"; }
                +        
                +        $userInfo = $this->info($username, array("*"));
                +        $dn = $userInfo[0]['distinguishedname'][0];
                +        $newRDn = "cn=" . $username;
                +        $container = array_reverse($container);
                +        $newContainer = "ou=" . implode(",ou=",$container);
                +        $newBaseDn = strtolower($newContainer) . "," . $this->adldap->getBaseDn();
                +        $result = @ldap_rename($this->adldap->getLdapConnection(), $dn, $newRDn, $newBaseDn, true);
                +        if ($result !== true) {
                +            return false;
                +        }
                +        return true;
                +    }
                +    
                +    /**
                +    * Get the last logon time of any user as a Unix timestamp
                +    * 
                +    * @param string $username
                +    * @return long $unixTimestamp
                +    */
                +    public function getLastLogon($username) {
                +        if (!$this->adldap->getLdapBind()) { return false; }
                +        if ($username === null) { return "Missing compulsory field [username]"; }
                +        $userInfo = $this->info($username, array("lastLogonTimestamp"));
                +        $lastLogon = adLDAPUtils::convertWindowsTimeToUnixTime($userInfo[0]['lastLogonTimestamp'][0]);
                +        return $lastLogon;
                +    }
                +    
                +}
                +?>
                diff --git a/lib/plugins/authad/adLDAP/classes/adLDAPUtils.php b/lib/plugins/authad/adLDAP/classes/adLDAPUtils.php
                index f039a4290..5e8644188 100644
                --- a/lib/plugins/authad/adLDAP/classes/adLDAPUtils.php
                +++ b/lib/plugins/authad/adLDAP/classes/adLDAPUtils.php
                @@ -1,264 +1,264 @@
                -adldap = $adldap;
                -    }
                -    
                -    
                -    /**
                -    * Take an LDAP query and return the nice names, without all the LDAP prefixes (eg. CN, DN)
                -    *
                -    * @param array $groups
                -    * @return array
                -    */
                -    public function niceNames($groups)
                -    {
                -
                -        $groupArray = array();
                -        for ($i=0; $i<$groups["count"]; $i++){ // For each group
                -            $line = $groups[$i];
                -            
                -            if (strlen($line)>0) { 
                -                // More presumptions, they're all prefixed with CN=
                -                // so we ditch the first three characters and the group
                -                // name goes up to the first comma
                -                $bits=explode(",", $line);
                -                $groupArray[] = substr($bits[0], 3, (strlen($bits[0])-3));
                -            }
                -        }
                -        return $groupArray;    
                -    }
                -    
                -    /**
                -    * Escape characters for use in an ldap_create function
                -    * 
                -    * @param string $str
                -    * @return string
                -    */
                -    public function escapeCharacters($str) {
                -        $str = str_replace(",", "\,", $str);
                -        return $str;
                -    }
                -    
                -    /**
                -    * Escape strings for the use in LDAP filters
                -    * 
                -    * DEVELOPERS SHOULD BE DOING PROPER FILTERING IF THEY'RE ACCEPTING USER INPUT
                -    * Ported from Perl's Net::LDAP::Util escape_filter_value
                -    *
                -    * @param string $str The string the parse
                -    * @author Port by Andreas Gohr 
                -    * @return string
                -    */
                -    public function ldapSlashes($str){
                -        return preg_replace('/([\x00-\x1F\*\(\)\\\\])/e',
                -                            '"\\\\\".join("",unpack("H2","$1"))',
                -                            $str);
                -    }
                -    
                -    /**
                -    * Converts a string GUID to a hexdecimal value so it can be queried
                -    * 
                -    * @param string $strGUID A string representation of a GUID
                -    * @return string
                -    */
                -    public function strGuidToHex($strGUID) 
                -    {
                -        $strGUID = str_replace('-', '', $strGUID);
                -
                -        $octet_str = '\\' . substr($strGUID, 6, 2);
                -        $octet_str .= '\\' . substr($strGUID, 4, 2);
                -        $octet_str .= '\\' . substr($strGUID, 2, 2);
                -        $octet_str .= '\\' . substr($strGUID, 0, 2);
                -        $octet_str .= '\\' . substr($strGUID, 10, 2);
                -        $octet_str .= '\\' . substr($strGUID, 8, 2);
                -        $octet_str .= '\\' . substr($strGUID, 14, 2);
                -        $octet_str .= '\\' . substr($strGUID, 12, 2);
                -        //$octet_str .= '\\' . substr($strGUID, 16, strlen($strGUID));
                -        for ($i=16; $i<=(strlen($strGUID)-2); $i++) {
                -            if (($i % 2) == 0) {
                -                $octet_str .= '\\' . substr($strGUID, $i, 2);
                -            }
                -        }
                -        
                -        return $octet_str;
                -    }
                -    
                -    /**
                -    * Convert a binary SID to a text SID
                -    * 
                -    * @param string $binsid A Binary SID
                -    * @return string
                -    */
                -     public function getTextSID($binsid) {
                -        $hex_sid = bin2hex($binsid);
                -        $rev = hexdec(substr($hex_sid, 0, 2));
                -        $subcount = hexdec(substr($hex_sid, 2, 2));
                -        $auth = hexdec(substr($hex_sid, 4, 12));
                -        $result = "$rev-$auth";
                -
                -        for ($x=0;$x < $subcount; $x++) {
                -            $subauth[$x] =
                -                hexdec($this->littleEndian(substr($hex_sid, 16 + ($x * 8), 8)));
                -                $result .= "-" . $subauth[$x];
                -        }
                -
                -        // Cheat by tacking on the S-
                -        return 'S-' . $result;
                -     }
                -     
                -    /**
                -    * Converts a little-endian hex number to one that hexdec() can convert
                -    * 
                -    * @param string $hex A hex code
                -    * @return string
                -    */
                -     public function littleEndian($hex) 
                -     {
                -        $result = '';
                -        for ($x = strlen($hex) - 2; $x >= 0; $x = $x - 2) {
                -            $result .= substr($hex, $x, 2);
                -        }
                -        return $result;
                -     }
                -     
                -     /**
                -    * Converts a binary attribute to a string
                -    * 
                -    * @param string $bin A binary LDAP attribute
                -    * @return string
                -    */
                -    public function binaryToText($bin) 
                -    {
                -        $hex_guid = bin2hex($bin); 
                -        $hex_guid_to_guid_str = ''; 
                -        for($k = 1; $k <= 4; ++$k) { 
                -            $hex_guid_to_guid_str .= substr($hex_guid, 8 - 2 * $k, 2); 
                -        } 
                -        $hex_guid_to_guid_str .= '-'; 
                -        for($k = 1; $k <= 2; ++$k) { 
                -            $hex_guid_to_guid_str .= substr($hex_guid, 12 - 2 * $k, 2); 
                -        } 
                -        $hex_guid_to_guid_str .= '-'; 
                -        for($k = 1; $k <= 2; ++$k) { 
                -            $hex_guid_to_guid_str .= substr($hex_guid, 16 - 2 * $k, 2); 
                -        } 
                -        $hex_guid_to_guid_str .= '-' . substr($hex_guid, 16, 4); 
                -        $hex_guid_to_guid_str .= '-' . substr($hex_guid, 20); 
                -        return strtoupper($hex_guid_to_guid_str);   
                -    }
                -    
                -    /**
                -    * Converts a binary GUID to a string GUID
                -    * 
                -    * @param string $binaryGuid The binary GUID attribute to convert
                -    * @return string
                -    */
                -    public function decodeGuid($binaryGuid) 
                -    {
                -        if ($binaryGuid === null){ return "Missing compulsory field [binaryGuid]"; }
                -        
                -        $strGUID = $this->binaryToText($binaryGuid);          
                -        return $strGUID; 
                -    }
                -    
                -    /**
                -    * Convert a boolean value to a string
                -    * You should never need to call this yourself
                -    *
                -    * @param bool $bool Boolean value
                -    * @return string
                -    */
                -    public function boolToStr($bool) 
                -    {
                -        return ($bool) ? 'TRUE' : 'FALSE';
                -    }
                -    
                -    /**
                -    * Convert 8bit characters e.g. accented characters to UTF8 encoded characters
                -    */
                -    public function encode8Bit(&$item, $key) {
                -        $encode = false;
                -        if (is_string($item)) {
                -            for ($i=0; $i> 7) {
                -                    $encode = true;
                -                }
                -            }
                -        }
                -        if ($encode === true && $key != 'password') {
                -            $item = utf8_encode($item);   
                -        }
                -    }  
                -    
                -    /**
                -    * Get the current class version number
                -    * 
                -    * @return string
                -    */
                -    public function getVersion() {
                -        return self::ADLDAP_VERSION;
                -    }
                -    
                -    /**
                -    * Round a Windows timestamp down to seconds and remove the seconds between 1601-01-01 and 1970-01-01
                -    * 
                -    * @param long $windowsTime
                -    * @return long $unixTime
                -    */
                -    public static function convertWindowsTimeToUnixTime($windowsTime) {
                -      $unixTime = round($windowsTime / 10000000) - 11644477200; 
                -      return $unixTime; 
                -    }
                -}
                -
                +adldap = $adldap;
                +    }
                +    
                +    
                +    /**
                +    * Take an LDAP query and return the nice names, without all the LDAP prefixes (eg. CN, DN)
                +    *
                +    * @param array $groups
                +    * @return array
                +    */
                +    public function niceNames($groups)
                +    {
                +
                +        $groupArray = array();
                +        for ($i=0; $i<$groups["count"]; $i++){ // For each group
                +            $line = $groups[$i];
                +            
                +            if (strlen($line)>0) { 
                +                // More presumptions, they're all prefixed with CN=
                +                // so we ditch the first three characters and the group
                +                // name goes up to the first comma
                +                $bits=explode(",", $line);
                +                $groupArray[] = substr($bits[0], 3, (strlen($bits[0])-3));
                +            }
                +        }
                +        return $groupArray;    
                +    }
                +    
                +    /**
                +    * Escape characters for use in an ldap_create function
                +    * 
                +    * @param string $str
                +    * @return string
                +    */
                +    public function escapeCharacters($str) {
                +        $str = str_replace(",", "\,", $str);
                +        return $str;
                +    }
                +    
                +    /**
                +    * Escape strings for the use in LDAP filters
                +    * 
                +    * DEVELOPERS SHOULD BE DOING PROPER FILTERING IF THEY'RE ACCEPTING USER INPUT
                +    * Ported from Perl's Net::LDAP::Util escape_filter_value
                +    *
                +    * @param string $str The string the parse
                +    * @author Port by Andreas Gohr 
                +    * @return string
                +    */
                +    public function ldapSlashes($str){
                +        return preg_replace('/([\x00-\x1F\*\(\)\\\\])/e',
                +                            '"\\\\\".join("",unpack("H2","$1"))',
                +                            $str);
                +    }
                +    
                +    /**
                +    * Converts a string GUID to a hexdecimal value so it can be queried
                +    * 
                +    * @param string $strGUID A string representation of a GUID
                +    * @return string
                +    */
                +    public function strGuidToHex($strGUID) 
                +    {
                +        $strGUID = str_replace('-', '', $strGUID);
                +
                +        $octet_str = '\\' . substr($strGUID, 6, 2);
                +        $octet_str .= '\\' . substr($strGUID, 4, 2);
                +        $octet_str .= '\\' . substr($strGUID, 2, 2);
                +        $octet_str .= '\\' . substr($strGUID, 0, 2);
                +        $octet_str .= '\\' . substr($strGUID, 10, 2);
                +        $octet_str .= '\\' . substr($strGUID, 8, 2);
                +        $octet_str .= '\\' . substr($strGUID, 14, 2);
                +        $octet_str .= '\\' . substr($strGUID, 12, 2);
                +        //$octet_str .= '\\' . substr($strGUID, 16, strlen($strGUID));
                +        for ($i=16; $i<=(strlen($strGUID)-2); $i++) {
                +            if (($i % 2) == 0) {
                +                $octet_str .= '\\' . substr($strGUID, $i, 2);
                +            }
                +        }
                +        
                +        return $octet_str;
                +    }
                +    
                +    /**
                +    * Convert a binary SID to a text SID
                +    * 
                +    * @param string $binsid A Binary SID
                +    * @return string
                +    */
                +     public function getTextSID($binsid) {
                +        $hex_sid = bin2hex($binsid);
                +        $rev = hexdec(substr($hex_sid, 0, 2));
                +        $subcount = hexdec(substr($hex_sid, 2, 2));
                +        $auth = hexdec(substr($hex_sid, 4, 12));
                +        $result = "$rev-$auth";
                +
                +        for ($x=0;$x < $subcount; $x++) {
                +            $subauth[$x] =
                +                hexdec($this->littleEndian(substr($hex_sid, 16 + ($x * 8), 8)));
                +                $result .= "-" . $subauth[$x];
                +        }
                +
                +        // Cheat by tacking on the S-
                +        return 'S-' . $result;
                +     }
                +     
                +    /**
                +    * Converts a little-endian hex number to one that hexdec() can convert
                +    * 
                +    * @param string $hex A hex code
                +    * @return string
                +    */
                +     public function littleEndian($hex) 
                +     {
                +        $result = '';
                +        for ($x = strlen($hex) - 2; $x >= 0; $x = $x - 2) {
                +            $result .= substr($hex, $x, 2);
                +        }
                +        return $result;
                +     }
                +     
                +     /**
                +    * Converts a binary attribute to a string
                +    * 
                +    * @param string $bin A binary LDAP attribute
                +    * @return string
                +    */
                +    public function binaryToText($bin) 
                +    {
                +        $hex_guid = bin2hex($bin); 
                +        $hex_guid_to_guid_str = ''; 
                +        for($k = 1; $k <= 4; ++$k) { 
                +            $hex_guid_to_guid_str .= substr($hex_guid, 8 - 2 * $k, 2); 
                +        } 
                +        $hex_guid_to_guid_str .= '-'; 
                +        for($k = 1; $k <= 2; ++$k) { 
                +            $hex_guid_to_guid_str .= substr($hex_guid, 12 - 2 * $k, 2); 
                +        } 
                +        $hex_guid_to_guid_str .= '-'; 
                +        for($k = 1; $k <= 2; ++$k) { 
                +            $hex_guid_to_guid_str .= substr($hex_guid, 16 - 2 * $k, 2); 
                +        } 
                +        $hex_guid_to_guid_str .= '-' . substr($hex_guid, 16, 4); 
                +        $hex_guid_to_guid_str .= '-' . substr($hex_guid, 20); 
                +        return strtoupper($hex_guid_to_guid_str);   
                +    }
                +    
                +    /**
                +    * Converts a binary GUID to a string GUID
                +    * 
                +    * @param string $binaryGuid The binary GUID attribute to convert
                +    * @return string
                +    */
                +    public function decodeGuid($binaryGuid) 
                +    {
                +        if ($binaryGuid === null){ return "Missing compulsory field [binaryGuid]"; }
                +        
                +        $strGUID = $this->binaryToText($binaryGuid);          
                +        return $strGUID; 
                +    }
                +    
                +    /**
                +    * Convert a boolean value to a string
                +    * You should never need to call this yourself
                +    *
                +    * @param bool $bool Boolean value
                +    * @return string
                +    */
                +    public function boolToStr($bool) 
                +    {
                +        return ($bool) ? 'TRUE' : 'FALSE';
                +    }
                +    
                +    /**
                +    * Convert 8bit characters e.g. accented characters to UTF8 encoded characters
                +    */
                +    public function encode8Bit(&$item, $key) {
                +        $encode = false;
                +        if (is_string($item)) {
                +            for ($i=0; $i> 7) {
                +                    $encode = true;
                +                }
                +            }
                +        }
                +        if ($encode === true && $key != 'password') {
                +            $item = utf8_encode($item);   
                +        }
                +    }  
                +    
                +    /**
                +    * Get the current class version number
                +    * 
                +    * @return string
                +    */
                +    public function getVersion() {
                +        return self::ADLDAP_VERSION;
                +    }
                +    
                +    /**
                +    * Round a Windows timestamp down to seconds and remove the seconds between 1601-01-01 and 1970-01-01
                +    * 
                +    * @param long $windowsTime
                +    * @return long $unixTime
                +    */
                +    public static function convertWindowsTimeToUnixTime($windowsTime) {
                +      $unixTime = round($windowsTime / 10000000) - 11644477200; 
                +      return $unixTime; 
                +    }
                +}
                +
                 ?>
                \ No newline at end of file
                diff --git a/lib/plugins/authad/adLDAP/collections/adLDAPCollection.php b/lib/plugins/authad/adLDAP/collections/adLDAPCollection.php
                index c0a2eb2fa..433d39f18 100644
                --- a/lib/plugins/authad/adLDAP/collections/adLDAPCollection.php
                +++ b/lib/plugins/authad/adLDAP/collections/adLDAPCollection.php
                @@ -1,137 +1,137 @@
                -setInfo($info);   
                -        $this->adldap = $adldap;
                -    }
                -    
                -    /**
                -    * Set the raw info array from Active Directory
                -    * 
                -    * @param array $info
                -    */
                -    public function setInfo(array $info) 
                -    {
                -        if ($this->info && sizeof($info) >= 1) {
                -            unset($this->info);
                -        }
                -        $this->info = $info;   
                -    }
                -    
                -    /**
                -    * Magic get method to retrieve data from the raw array in a formatted way
                -    * 
                -    * @param string $attribute
                -    * @return mixed
                -    */
                -    public function __get($attribute)
                -    {
                -        if (isset($this->info[0]) && is_array($this->info[0])) {
                -            foreach ($this->info[0] as $keyAttr => $valueAttr) {
                -                if (strtolower($keyAttr) == strtolower($attribute)) {
                -                    if ($this->info[0][strtolower($attribute)]['count'] == 1) {
                -                        return $this->info[0][strtolower($attribute)][0];   
                -                    }
                -                    else {
                -                        $array = array();
                -                        foreach ($this->info[0][strtolower($attribute)] as $key => $value) {
                -                            if ((string)$key != 'count') {
                -                                $array[$key] = $value;
                -                            } 
                -                        }  
                -                        return $array;   
                -                    }
                -                }   
                -            }
                -        }
                -        else {
                -            return NULL;   
                -        }
                -    }    
                -    
                -    /**
                -    * Magic set method to update an attribute
                -    * 
                -    * @param string $attribute
                -    * @param string $value
                -    * @return bool
                -    */
                -    abstract public function __set($attribute, $value);
                -    
                -    /** 
                -    * Magic isset method to check for the existence of an attribute 
                -    * 
                -    * @param string $attribute 
                -    * @return bool 
                -    */ 
                -    public function __isset($attribute) {
                -        if (isset($this->info[0]) && is_array($this->info[0])) { 
                -            foreach ($this->info[0] as $keyAttr => $valueAttr) { 
                -                if (strtolower($keyAttr) == strtolower($attribute)) { 
                -                    return true; 
                -                } 
                -            } 
                -        } 
                -        return false; 
                -     } 
                -}
                -?>
                +setInfo($info);   
                +        $this->adldap = $adldap;
                +    }
                +    
                +    /**
                +    * Set the raw info array from Active Directory
                +    * 
                +    * @param array $info
                +    */
                +    public function setInfo(array $info) 
                +    {
                +        if ($this->info && sizeof($info) >= 1) {
                +            unset($this->info);
                +        }
                +        $this->info = $info;   
                +    }
                +    
                +    /**
                +    * Magic get method to retrieve data from the raw array in a formatted way
                +    * 
                +    * @param string $attribute
                +    * @return mixed
                +    */
                +    public function __get($attribute)
                +    {
                +        if (isset($this->info[0]) && is_array($this->info[0])) {
                +            foreach ($this->info[0] as $keyAttr => $valueAttr) {
                +                if (strtolower($keyAttr) == strtolower($attribute)) {
                +                    if ($this->info[0][strtolower($attribute)]['count'] == 1) {
                +                        return $this->info[0][strtolower($attribute)][0];   
                +                    }
                +                    else {
                +                        $array = array();
                +                        foreach ($this->info[0][strtolower($attribute)] as $key => $value) {
                +                            if ((string)$key != 'count') {
                +                                $array[$key] = $value;
                +                            } 
                +                        }  
                +                        return $array;   
                +                    }
                +                }   
                +            }
                +        }
                +        else {
                +            return NULL;   
                +        }
                +    }    
                +    
                +    /**
                +    * Magic set method to update an attribute
                +    * 
                +    * @param string $attribute
                +    * @param string $value
                +    * @return bool
                +    */
                +    abstract public function __set($attribute, $value);
                +    
                +    /** 
                +    * Magic isset method to check for the existence of an attribute 
                +    * 
                +    * @param string $attribute 
                +    * @return bool 
                +    */ 
                +    public function __isset($attribute) {
                +        if (isset($this->info[0]) && is_array($this->info[0])) { 
                +            foreach ($this->info[0] as $keyAttr => $valueAttr) { 
                +                if (strtolower($keyAttr) == strtolower($attribute)) { 
                +                    return true; 
                +                } 
                +            } 
                +        } 
                +        return false; 
                +     } 
                +}
                +?>
                diff --git a/lib/plugins/authad/adLDAP/collections/adLDAPComputerCollection.php b/lib/plugins/authad/adLDAP/collections/adLDAPComputerCollection.php
                index 4f11d8f41..09f82cadc 100644
                --- a/lib/plugins/authad/adLDAP/collections/adLDAPComputerCollection.php
                +++ b/lib/plugins/authad/adLDAP/collections/adLDAPComputerCollection.php
                @@ -1,46 +1,46 @@
                -
                +
                diff --git a/lib/plugins/authad/adLDAP/collections/adLDAPContactCollection.php b/lib/plugins/authad/adLDAP/collections/adLDAPContactCollection.php
                index d42fe6d4c..a9efad5a9 100644
                --- a/lib/plugins/authad/adLDAP/collections/adLDAPContactCollection.php
                +++ b/lib/plugins/authad/adLDAP/collections/adLDAPContactCollection.php
                @@ -1,46 +1,46 @@
                -
                +
                diff --git a/lib/plugins/authad/adLDAP/collections/adLDAPGroupCollection.php b/lib/plugins/authad/adLDAP/collections/adLDAPGroupCollection.php
                index cff12fc20..ef4af8df2 100644
                --- a/lib/plugins/authad/adLDAP/collections/adLDAPGroupCollection.php
                +++ b/lib/plugins/authad/adLDAP/collections/adLDAPGroupCollection.php
                @@ -1,46 +1,46 @@
                -
                +
                diff --git a/lib/plugins/authad/adLDAP/collections/adLDAPUserCollection.php b/lib/plugins/authad/adLDAP/collections/adLDAPUserCollection.php
                index 801d90296..63fce5f96 100644
                --- a/lib/plugins/authad/adLDAP/collections/adLDAPUserCollection.php
                +++ b/lib/plugins/authad/adLDAP/collections/adLDAPUserCollection.php
                @@ -1,46 +1,46 @@
                -
                +
                diff --git a/lib/scripts/jquery/jquery-migrate.js b/lib/scripts/jquery/jquery-migrate.js
                index e99f954e6..942cb8b4d 100644
                --- a/lib/scripts/jquery/jquery-migrate.js
                +++ b/lib/scripts/jquery/jquery-migrate.js
                @@ -1,511 +1,511 @@
                -/*!
                - * jQuery Migrate - v1.1.1 - 2013-02-16
                - * https://github.com/jquery/jquery-migrate
                - * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors; Licensed MIT
                - */
                -(function( jQuery, window, undefined ) {
                -// See http://bugs.jquery.com/ticket/13335
                -// "use strict";
                -
                -
                -var warnedAbout = {};
                -
                -// List of warnings already given; public read only
                -jQuery.migrateWarnings = [];
                -
                -// Set to true to prevent console output; migrateWarnings still maintained
                -// jQuery.migrateMute = false;
                -
                -// Show a message on the console so devs know we're active
                -if ( !jQuery.migrateMute && window.console && console.log ) {
                -	console.log("JQMIGRATE: Logging is active");
                -}
                -
                -// Set to false to disable traces that appear with warnings
                -if ( jQuery.migrateTrace === undefined ) {
                -	jQuery.migrateTrace = true;
                -}
                -
                -// Forget any warnings we've already given; public
                -jQuery.migrateReset = function() {
                -	warnedAbout = {};
                -	jQuery.migrateWarnings.length = 0;
                -};
                -
                -function migrateWarn( msg) {
                -	if ( !warnedAbout[ msg ] ) {
                -		warnedAbout[ msg ] = true;
                -		jQuery.migrateWarnings.push( msg );
                -		if ( window.console && console.warn && !jQuery.migrateMute ) {
                -			console.warn( "JQMIGRATE: " + msg );
                -			if ( jQuery.migrateTrace && console.trace ) {
                -				console.trace();
                -			}
                -		}
                -	}
                -}
                -
                -function migrateWarnProp( obj, prop, value, msg ) {
                -	if ( Object.defineProperty ) {
                -		// On ES5 browsers (non-oldIE), warn if the code tries to get prop;
                -		// allow property to be overwritten in case some other plugin wants it
                -		try {
                -			Object.defineProperty( obj, prop, {
                -				configurable: true,
                -				enumerable: true,
                -				get: function() {
                -					migrateWarn( msg );
                -					return value;
                -				},
                -				set: function( newValue ) {
                -					migrateWarn( msg );
                -					value = newValue;
                -				}
                -			});
                -			return;
                -		} catch( err ) {
                -			// IE8 is a dope about Object.defineProperty, can't warn there
                -		}
                -	}
                -
                -	// Non-ES5 (or broken) browser; just set the property
                -	jQuery._definePropertyBroken = true;
                -	obj[ prop ] = value;
                -}
                -
                -if ( document.compatMode === "BackCompat" ) {
                -	// jQuery has never supported or tested Quirks Mode
                -	migrateWarn( "jQuery is not compatible with Quirks Mode" );
                -}
                -
                -
                -var attrFn = jQuery( "", { size: 1 } ).attr("size") && jQuery.attrFn,
                -	oldAttr = jQuery.attr,
                -	valueAttrGet = jQuery.attrHooks.value && jQuery.attrHooks.value.get ||
                -		function() { return null; },
                -	valueAttrSet = jQuery.attrHooks.value && jQuery.attrHooks.value.set ||
                -		function() { return undefined; },
                -	rnoType = /^(?:input|button)$/i,
                -	rnoAttrNodeType = /^[238]$/,
                -	rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
                -	ruseDefault = /^(?:checked|selected)$/i;
                -
                -// jQuery.attrFn
                -migrateWarnProp( jQuery, "attrFn", attrFn || {}, "jQuery.attrFn is deprecated" );
                -
                -jQuery.attr = function( elem, name, value, pass ) {
                -	var lowerName = name.toLowerCase(),
                -		nType = elem && elem.nodeType;
                -
                -	if ( pass ) {
                -		// Since pass is used internally, we only warn for new jQuery
                -		// versions where there isn't a pass arg in the formal params
                -		if ( oldAttr.length < 4 ) {
                -			migrateWarn("jQuery.fn.attr( props, pass ) is deprecated");
                -		}
                -		if ( elem && !rnoAttrNodeType.test( nType ) &&
                -			(attrFn ? name in attrFn : jQuery.isFunction(jQuery.fn[name])) ) {
                -			return jQuery( elem )[ name ]( value );
                -		}
                -	}
                -
                -	// Warn if user tries to set `type`, since it breaks on IE 6/7/8; by checking
                -	// for disconnected elements we don't warn on $( "