summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--_cs/DokuWiki/ruleset.xml7
-rw-r--r--_test/bootstrap.php10
-rw-r--r--_test/data/meta/mailinglist.changes24
-rw-r--r--_test/data/pages/mailinglist.txt11
-rw-r--r--_test/tests/inc/auth_loadacl.test.php130
-rw-r--r--_test/tests/inc/auth_nameencode.test.php28
-rw-r--r--_test/tests/inc/changelog_getrevisioninfo.test.php120
-rw-r--r--_test/tests/inc/changelog_getrevisions.test.php200
-rw-r--r--_test/tests/inc/fulltext_backlinks.test.php10
-rw-r--r--_test/tests/inc/fulltext_mediause.test.php7
-rw-r--r--_test/tests/inc/httpclient_http_proxy.test.php4
-rw-r--r--_test/tests/inc/indexer_indexing.test.php45
-rw-r--r--_test/tests/inc/mailer.test.php69
-rw-r--r--_test/tests/inc/pageutils_clean_id.test.php3
-rw-r--r--_test/tests/inc/parser/parser_table.test.php58
-rw-r--r--_test/tests/inc/parserutils_set_metadata_during_rendering.test.php2
-rw-r--r--_test/tests/inc/subscription.test.php2
-rw-r--r--_test/tests/lib/exe/css_css_compress.test.php40
-rwxr-xr-xbin/dwpage.php8
-rwxr-xr-xbin/striplangs.php2
-rwxr-xr-xbin/wantedpages.php4
-rw-r--r--conf/interwiki.conf95
-rw-r--r--data/deleted.files53
-rw-r--r--doku.php2
-rw-r--r--feed.php27
-rw-r--r--inc/DifferenceEngine.php2
-rw-r--r--inc/HTTPClient.php2
-rw-r--r--inc/Input.class.php1
-rw-r--r--inc/JpegMeta.php16
-rw-r--r--inc/Mailer.class.php44
-rw-r--r--inc/RemoteAPICore.php7
-rw-r--r--inc/SimplePie.php6
-rw-r--r--inc/actions.php3
-rw-r--r--inc/auth.php59
-rw-r--r--inc/changelog.php2
-rw-r--r--inc/common.php11
-rw-r--r--inc/compatibility.php36
-rw-r--r--inc/farm.php2
-rw-r--r--inc/fulltext.php1
-rw-r--r--inc/html.php28
-rw-r--r--inc/indexer.php25
-rw-r--r--inc/infoutils.php5
-rw-r--r--inc/init.php6
-rw-r--r--inc/io.php2
-rw-r--r--inc/lang/af/lang.php1
-rw-r--r--inc/lang/ar/lang.php13
-rw-r--r--inc/lang/az/lang.php8
-rw-r--r--inc/lang/bg/lang.php1
-rw-r--r--inc/lang/ca-valencia/lang.php9
-rw-r--r--inc/lang/ca/lang.php1
-rw-r--r--inc/lang/cs/lang.php21
-rw-r--r--inc/lang/cs/registermail.txt2
-rw-r--r--inc/lang/da/lang.php15
-rw-r--r--inc/lang/de-informal/lang.php9
-rw-r--r--inc/lang/de/admin.txt2
-rw-r--r--inc/lang/de/backlinks.txt2
-rw-r--r--inc/lang/de/lang.php9
-rw-r--r--inc/lang/el/lang.php13
-rw-r--r--inc/lang/en/lang.php7
-rw-r--r--inc/lang/eo/admin.txt2
-rw-r--r--inc/lang/eo/lang.php12
-rw-r--r--inc/lang/es/lang.php19
-rw-r--r--inc/lang/et/lang.php1
-rw-r--r--inc/lang/eu/lang.php1
-rw-r--r--inc/lang/fa/lang.php17
-rw-r--r--inc/lang/fi/lang.php1
-rw-r--r--inc/lang/fo/lang.php1
-rw-r--r--inc/lang/fr/diff.txt2
-rw-r--r--inc/lang/fr/lang.php13
-rw-r--r--inc/lang/gl/lang.php1
-rw-r--r--inc/lang/he/lang.php35
-rw-r--r--inc/lang/hi/diff.txt3
-rw-r--r--inc/lang/hi/lang.php18
-rw-r--r--inc/lang/hr/lang.php1
-rw-r--r--inc/lang/hu/lang.php13
-rw-r--r--inc/lang/ia/lang.php1
-rw-r--r--inc/lang/id/lang.php7
-rw-r--r--inc/lang/is/lang.php1
-rw-r--r--inc/lang/it/lang.php13
-rw-r--r--inc/lang/ja/lang.php17
-rw-r--r--inc/lang/km/lang.php17
-rw-r--r--inc/lang/ko/admin.txt4
-rw-r--r--inc/lang/ko/conflict.txt4
-rw-r--r--inc/lang/ko/denied.txt2
-rw-r--r--inc/lang/ko/diff.txt2
-rw-r--r--inc/lang/ko/draft.txt2
-rw-r--r--inc/lang/ko/edit.txt2
-rw-r--r--inc/lang/ko/editrev.txt2
-rw-r--r--inc/lang/ko/index.txt2
-rw-r--r--inc/lang/ko/lang.php167
-rw-r--r--inc/lang/ko/locked.txt4
-rw-r--r--inc/lang/ko/mailtext.txt6
-rw-r--r--inc/lang/ko/mailwrap.html20
-rw-r--r--inc/lang/ko/newpage.txt2
-rw-r--r--inc/lang/ko/norev.txt2
-rw-r--r--inc/lang/ko/password.txt8
-rw-r--r--inc/lang/ko/pwconfirm.txt8
-rw-r--r--inc/lang/ko/registermail.txt6
-rw-r--r--inc/lang/ko/resendpwd.txt2
-rw-r--r--inc/lang/ko/resetpwd.txt2
-rw-r--r--inc/lang/ko/revisions.txt2
-rw-r--r--inc/lang/ko/searchpage.txt2
-rw-r--r--inc/lang/ko/stopwords.txt6
-rw-r--r--inc/lang/ko/subscr_digest.txt4
-rw-r--r--inc/lang/ko/subscr_list.txt4
-rw-r--r--inc/lang/ko/subscr_single.txt4
-rw-r--r--inc/lang/ko/uploadmail.txt4
-rw-r--r--inc/lang/ku/lang.php21
-rw-r--r--inc/lang/la/lang.php1
-rw-r--r--inc/lang/lb/lang.php1
-rw-r--r--inc/lang/lt/lang.php7
-rw-r--r--inc/lang/lv/lang.php1
-rw-r--r--inc/lang/mg/lang.php14
-rw-r--r--inc/lang/mk/lang.php1
-rw-r--r--inc/lang/mr/lang.php1
-rw-r--r--inc/lang/ne/lang.php20
-rw-r--r--inc/lang/nl/lang.php14
-rw-r--r--inc/lang/nl/mailtext.txt4
-rw-r--r--inc/lang/nl/read.txt2
-rw-r--r--inc/lang/nl/resendpwd.txt2
-rw-r--r--inc/lang/nl/subscr_form.txt2
-rw-r--r--inc/lang/nl/subscr_list.txt2
-rw-r--r--inc/lang/no/lang.php1
-rw-r--r--inc/lang/pl/lang.php1
-rw-r--r--inc/lang/pt-br/lang.php12
-rw-r--r--inc/lang/pt/lang.php108
-rw-r--r--inc/lang/ro/lang.php245
-rw-r--r--inc/lang/ru/denied.txt2
-rw-r--r--inc/lang/ru/diff.txt2
-rw-r--r--inc/lang/ru/lang.php55
-rw-r--r--inc/lang/ru/mailtext.txt16
-rw-r--r--inc/lang/ru/password.txt1
-rw-r--r--inc/lang/ru/registermail.txt14
-rw-r--r--inc/lang/ru/subscr_single.txt1
-rw-r--r--inc/lang/ru/uploadmail.txt16
-rw-r--r--inc/lang/sk/lang.php15
-rw-r--r--inc/lang/sl/lang.php14
-rw-r--r--inc/lang/sq/lang.php1
-rw-r--r--inc/lang/sr/lang.php1
-rw-r--r--inc/lang/sv/lang.php6
-rw-r--r--inc/lang/th/lang.php7
-rw-r--r--inc/lang/tr/adminplugins.txt1
-rw-r--r--inc/lang/tr/lang.php15
-rw-r--r--inc/lang/uk/lang.php20
-rw-r--r--inc/lang/zh-tw/lang.php13
-rw-r--r--inc/lang/zh/lang.php15
-rw-r--r--inc/lessc.inc.php398
-rw-r--r--inc/load.php1
-rw-r--r--inc/mail.php8
-rw-r--r--inc/media.php19
-rw-r--r--inc/pageutils.php4
-rw-r--r--inc/parser/code.php4
-rw-r--r--inc/parser/handler.php224
-rw-r--r--inc/parser/lexer.php414
-rw-r--r--inc/parser/metadata.php756
-rw-r--r--inc/parser/parser.php23
-rw-r--r--inc/parser/renderer.php42
-rw-r--r--inc/parser/xhtml.php87
-rw-r--r--inc/parserutils.php8
-rw-r--r--inc/plugin.php2
-rw-r--r--inc/plugincontroller.class.php120
-rw-r--r--inc/pluginutils.php61
-rw-r--r--inc/search.php50
-rw-r--r--inc/subscription.php6
-rw-r--r--inc/template.php36
-rw-r--r--install.php1
-rw-r--r--lib/exe/ajax.php3
-rw-r--r--lib/exe/css.php39
-rw-r--r--lib/exe/detail.php8
-rw-r--r--lib/exe/indexer.php26
-rw-r--r--lib/exe/js.php10
-rw-r--r--lib/exe/mediamanager.php3
-rw-r--r--lib/images/interwiki/meatball.gifbin339 -> 0 bytes
-rw-r--r--lib/images/interwiki/wiki.gifbin131 -> 0 bytes
-rw-r--r--lib/plugins/acl/action.php88
-rw-r--r--lib/plugins/acl/admin.php8
-rw-r--r--lib/plugins/acl/ajax.php57
-rw-r--r--lib/plugins/acl/lang/ar/lang.php4
-rw-r--r--lib/plugins/acl/lang/cs/lang.php4
-rw-r--r--lib/plugins/acl/lang/da/lang.php4
-rw-r--r--lib/plugins/acl/lang/de-informal/lang.php5
-rw-r--r--lib/plugins/acl/lang/de/lang.php4
-rw-r--r--lib/plugins/acl/lang/el/lang.php7
-rw-r--r--lib/plugins/acl/lang/eo/lang.php5
-rw-r--r--lib/plugins/acl/lang/es/lang.php4
-rw-r--r--lib/plugins/acl/lang/fa/lang.php5
-rw-r--r--lib/plugins/acl/lang/fr/lang.php4
-rw-r--r--lib/plugins/acl/lang/he/lang.php4
-rw-r--r--lib/plugins/acl/lang/hu/lang.php5
-rw-r--r--lib/plugins/acl/lang/it/lang.php4
-rw-r--r--lib/plugins/acl/lang/ja/lang.php4
-rw-r--r--lib/plugins/acl/lang/ko/help.txt2
-rw-r--r--lib/plugins/acl/lang/ko/lang.php6
-rw-r--r--lib/plugins/acl/lang/ne/lang.php5
-rw-r--r--lib/plugins/acl/lang/nl/lang.php6
-rw-r--r--lib/plugins/acl/lang/pt-br/lang.php4
-rw-r--r--lib/plugins/acl/lang/pt/lang.php4
-rw-r--r--lib/plugins/acl/lang/ru/help.txt9
-rw-r--r--lib/plugins/acl/lang/ru/lang.php6
-rw-r--r--lib/plugins/acl/lang/sk/lang.php4
-rw-r--r--lib/plugins/acl/lang/sl/lang.php5
-rw-r--r--lib/plugins/acl/lang/tr/lang.php4
-rw-r--r--lib/plugins/acl/lang/uk/lang.php4
-rw-r--r--lib/plugins/acl/lang/zh-tw/lang.php4
-rw-r--r--lib/plugins/acl/lang/zh/lang.php4
-rw-r--r--lib/plugins/acl/remote.php8
-rw-r--r--lib/plugins/acl/script.js9
-rw-r--r--lib/plugins/acl/style.css2
-rw-r--r--lib/plugins/action.php10
-rw-r--r--lib/plugins/authad/auth.php26
-rw-r--r--lib/plugins/authad/conf/default.php1
-rw-r--r--lib/plugins/authad/conf/metadata.php25
-rw-r--r--lib/plugins/authad/lang/cs/settings.php5
-rw-r--r--lib/plugins/authad/lang/da/settings.php20
-rw-r--r--lib/plugins/authad/lang/de-informal/settings.php5
-rw-r--r--lib/plugins/authad/lang/de/settings.php5
-rw-r--r--lib/plugins/authad/lang/en/settings.php3
-rw-r--r--lib/plugins/authad/lang/eo/settings.php7
-rw-r--r--lib/plugins/authad/lang/es/settings.php13
-rw-r--r--lib/plugins/authad/lang/fr/settings.php5
-rw-r--r--lib/plugins/authad/lang/hu/settings.php5
-rw-r--r--lib/plugins/authad/lang/it/settings.php17
-rw-r--r--lib/plugins/authad/lang/ja/settings.php18
-rw-r--r--lib/plugins/authad/lang/ko/settings.php5
-rw-r--r--lib/plugins/authad/lang/nl/settings.php11
-rw-r--r--lib/plugins/authad/lang/pt-br/settings.php5
-rw-r--r--lib/plugins/authad/lang/pt/settings.php12
-rw-r--r--lib/plugins/authad/lang/ru/settings.php7
-rw-r--r--lib/plugins/authad/lang/sk/settings.php15
-rw-r--r--lib/plugins/authad/lang/zh-tw/settings.php5
-rw-r--r--lib/plugins/authad/lang/zh/settings.php5
-rw-r--r--lib/plugins/authad/plugin.info.txt4
-rw-r--r--lib/plugins/authldap/auth.php4
-rw-r--r--lib/plugins/authldap/conf/metadata.php32
-rw-r--r--lib/plugins/authldap/lang/cs/settings.php7
-rw-r--r--lib/plugins/authldap/lang/da/settings.php9
-rw-r--r--lib/plugins/authldap/lang/de-informal/settings.php4
-rw-r--r--lib/plugins/authldap/lang/de/settings.php10
-rw-r--r--lib/plugins/authldap/lang/eo/settings.php11
-rw-r--r--lib/plugins/authldap/lang/fr/settings.php11
-rw-r--r--lib/plugins/authldap/lang/hu/settings.php5
-rw-r--r--lib/plugins/authldap/lang/it/settings.php14
-rw-r--r--lib/plugins/authldap/lang/ja/settings.php22
-rw-r--r--lib/plugins/authldap/lang/ko/settings.php13
-rw-r--r--lib/plugins/authldap/lang/nl/settings.php17
-rw-r--r--lib/plugins/authldap/lang/pt-br/settings.php5
-rw-r--r--lib/plugins/authldap/lang/pt/settings.php18
-rw-r--r--lib/plugins/authldap/lang/ru/settings.php7
-rw-r--r--lib/plugins/authldap/lang/sk/settings.php21
-rw-r--r--lib/plugins/authldap/lang/sv/settings.php2
-rw-r--r--lib/plugins/authldap/lang/zh-tw/settings.php5
-rw-r--r--lib/plugins/authldap/lang/zh/settings.php9
-rw-r--r--lib/plugins/authldap/plugin.info.txt4
-rw-r--r--lib/plugins/authmysql/conf/metadata.php64
-rw-r--r--lib/plugins/authmysql/lang/cs/settings.php5
-rw-r--r--lib/plugins/authmysql/lang/da/settings.php12
-rw-r--r--lib/plugins/authmysql/lang/de-informal/settings.php4
-rw-r--r--lib/plugins/authmysql/lang/de/settings.php4
-rw-r--r--lib/plugins/authmysql/lang/en/settings.php4
-rw-r--r--lib/plugins/authmysql/lang/eo/settings.php5
-rw-r--r--lib/plugins/authmysql/lang/fr/settings.php5
-rw-r--r--lib/plugins/authmysql/lang/hu/settings.php5
-rw-r--r--lib/plugins/authmysql/lang/ja/settings.php5
-rw-r--r--lib/plugins/authmysql/lang/ko/settings.php5
-rw-r--r--lib/plugins/authmysql/lang/nl/settings.php41
-rw-r--r--lib/plugins/authmysql/lang/pt-br/settings.php5
-rw-r--r--lib/plugins/authmysql/lang/pt/settings.php23
-rw-r--r--lib/plugins/authmysql/lang/ru/settings.php10
-rw-r--r--lib/plugins/authmysql/lang/sk/settings.php38
-rw-r--r--lib/plugins/authmysql/lang/sl/settings.php11
-rw-r--r--lib/plugins/authmysql/lang/zh-tw/settings.php5
-rw-r--r--lib/plugins/authmysql/lang/zh/settings.php5
-rw-r--r--lib/plugins/authmysql/plugin.info.txt4
-rw-r--r--lib/plugins/authpgsql/conf/metadata.php60
-rw-r--r--lib/plugins/authpgsql/lang/cs/settings.php5
-rw-r--r--lib/plugins/authpgsql/lang/da/settings.php10
-rw-r--r--lib/plugins/authpgsql/lang/de-informal/settings.php4
-rw-r--r--lib/plugins/authpgsql/lang/de/settings.php4
-rw-r--r--lib/plugins/authpgsql/lang/en/settings.php2
-rw-r--r--lib/plugins/authpgsql/lang/eo/settings.php5
-rw-r--r--lib/plugins/authpgsql/lang/fr/settings.php5
-rw-r--r--lib/plugins/authpgsql/lang/hu/settings.php5
-rw-r--r--lib/plugins/authpgsql/lang/ja/settings.php5
-rw-r--r--lib/plugins/authpgsql/lang/ko/settings.php5
-rw-r--r--lib/plugins/authpgsql/lang/nl/settings.php37
-rw-r--r--lib/plugins/authpgsql/lang/pt-br/settings.php5
-rw-r--r--lib/plugins/authpgsql/lang/pt/settings.php22
-rw-r--r--lib/plugins/authpgsql/lang/ru/settings.php30
-rw-r--r--lib/plugins/authpgsql/lang/sk/settings.php37
-rw-r--r--lib/plugins/authpgsql/lang/sl/settings.php8
-rw-r--r--lib/plugins/authpgsql/lang/zh-tw/settings.php5
-rw-r--r--lib/plugins/authpgsql/lang/zh/settings.php5
-rw-r--r--lib/plugins/authpgsql/plugin.info.txt4
-rw-r--r--lib/plugins/authplain/plugin.info.txt4
-rw-r--r--lib/plugins/config/admin.php488
-rw-r--r--lib/plugins/config/lang/de-informal/lang.php1
-rw-r--r--lib/plugins/config/lang/de/lang.php1
-rw-r--r--lib/plugins/config/lang/en/lang.php6
-rw-r--r--lib/plugins/config/lang/ko/intro.txt8
-rw-r--r--lib/plugins/config/lang/ko/lang.php30
-rw-r--r--lib/plugins/config/lang/pt-br/lang.php1
-rw-r--r--lib/plugins/config/settings/config.class.php1523
-rw-r--r--lib/plugins/config/settings/config.metadata.php1
-rw-r--r--lib/plugins/config/settings/extra.class.php270
-rw-r--r--lib/plugins/info/syntax.php45
-rw-r--r--lib/plugins/plugin/admin.php5
-rw-r--r--lib/plugins/plugin/classes/ap_info.class.php3
-rw-r--r--lib/plugins/plugin/classes/ap_manage.class.php2
-rw-r--r--lib/plugins/plugin/lang/ar/lang.php5
-rw-r--r--lib/plugins/plugin/lang/cs/lang.php6
-rw-r--r--lib/plugins/plugin/lang/da/lang.php7
-rw-r--r--lib/plugins/plugin/lang/de-informal/lang.php5
-rw-r--r--lib/plugins/plugin/lang/de/lang.php4
-rw-r--r--lib/plugins/plugin/lang/el/lang.php7
-rw-r--r--lib/plugins/plugin/lang/eo/lang.php5
-rw-r--r--lib/plugins/plugin/lang/es/lang.php4
-rw-r--r--lib/plugins/plugin/lang/fa/lang.php5
-rw-r--r--lib/plugins/plugin/lang/fr/lang.php4
-rw-r--r--lib/plugins/plugin/lang/he/lang.php4
-rw-r--r--lib/plugins/plugin/lang/hi/lang.php5
-rw-r--r--lib/plugins/plugin/lang/hu/lang.php5
-rw-r--r--lib/plugins/plugin/lang/it/lang.php4
-rw-r--r--lib/plugins/plugin/lang/ja/lang.php4
-rw-r--r--lib/plugins/plugin/lang/ko/admin_plugin.txt2
-rw-r--r--lib/plugins/plugin/lang/ko/lang.php20
-rw-r--r--lib/plugins/plugin/lang/ne/lang.php5
-rw-r--r--lib/plugins/plugin/lang/nl/lang.php7
-rw-r--r--lib/plugins/plugin/lang/pt-br/lang.php5
-rw-r--r--lib/plugins/plugin/lang/pt/lang.php5
-rw-r--r--lib/plugins/plugin/lang/ru/lang.php12
-rw-r--r--lib/plugins/plugin/lang/sk/lang.php5
-rw-r--r--lib/plugins/plugin/lang/sl/lang.php5
-rw-r--r--lib/plugins/plugin/lang/tr/lang.php5
-rw-r--r--lib/plugins/plugin/lang/uk/lang.php4
-rw-r--r--lib/plugins/plugin/lang/zh-tw/lang.php5
-rw-r--r--lib/plugins/plugin/lang/zh/lang.php4
-rw-r--r--lib/plugins/popularity/action.php1
-rw-r--r--lib/plugins/popularity/admin.php4
-rw-r--r--lib/plugins/popularity/helper.php22
-rw-r--r--lib/plugins/popularity/lang/ar/lang.php5
-rw-r--r--lib/plugins/popularity/lang/cs/lang.php5
-rw-r--r--lib/plugins/popularity/lang/da/lang.php5
-rw-r--r--lib/plugins/popularity/lang/da/submitted.txt2
-rw-r--r--lib/plugins/popularity/lang/de-informal/lang.php5
-rw-r--r--lib/plugins/popularity/lang/de/lang.php5
-rw-r--r--lib/plugins/popularity/lang/el/lang.php5
-rw-r--r--lib/plugins/popularity/lang/eo/lang.php5
-rw-r--r--lib/plugins/popularity/lang/es/lang.php5
-rw-r--r--lib/plugins/popularity/lang/fa/lang.php5
-rw-r--r--lib/plugins/popularity/lang/fr/lang.php5
-rw-r--r--lib/plugins/popularity/lang/he/lang.php5
-rw-r--r--lib/plugins/popularity/lang/hi/lang.php5
-rw-r--r--lib/plugins/popularity/lang/hu/lang.php5
-rw-r--r--lib/plugins/popularity/lang/it/lang.php5
-rw-r--r--lib/plugins/popularity/lang/ja/lang.php5
-rw-r--r--lib/plugins/popularity/lang/ko/intro.txt4
-rw-r--r--lib/plugins/popularity/lang/ko/lang.php7
-rw-r--r--lib/plugins/popularity/lang/ne/lang.php5
-rw-r--r--lib/plugins/popularity/lang/nl/lang.php5
-rw-r--r--lib/plugins/popularity/lang/pt-br/lang.php5
-rw-r--r--lib/plugins/popularity/lang/pt/lang.php5
-rw-r--r--lib/plugins/popularity/lang/ru/intro.txt2
-rw-r--r--lib/plugins/popularity/lang/ru/lang.php5
-rw-r--r--lib/plugins/popularity/lang/ru/submitted.txt3
-rw-r--r--lib/plugins/popularity/lang/sk/lang.php5
-rw-r--r--lib/plugins/popularity/lang/sl/lang.php5
-rw-r--r--lib/plugins/popularity/lang/tr/lang.php5
-rw-r--r--lib/plugins/popularity/lang/uk/lang.php5
-rw-r--r--lib/plugins/popularity/lang/zh-tw/lang.php5
-rw-r--r--lib/plugins/popularity/lang/zh/lang.php5
-rw-r--r--lib/plugins/popularity/plugin.info.txt2
-rw-r--r--lib/plugins/revert/admin.php3
-rw-r--r--lib/plugins/revert/lang/ar/lang.php6
-rw-r--r--lib/plugins/revert/lang/cs/lang.php7
-rw-r--r--lib/plugins/revert/lang/da/lang.php5
-rw-r--r--lib/plugins/revert/lang/de-informal/lang.php5
-rw-r--r--lib/plugins/revert/lang/de/lang.php5
-rw-r--r--lib/plugins/revert/lang/el/lang.php8
-rw-r--r--lib/plugins/revert/lang/eo/lang.php5
-rw-r--r--lib/plugins/revert/lang/es/lang.php5
-rw-r--r--lib/plugins/revert/lang/fa/lang.php5
-rw-r--r--lib/plugins/revert/lang/fr/lang.php4
-rw-r--r--lib/plugins/revert/lang/he/lang.php5
-rw-r--r--lib/plugins/revert/lang/hu/lang.php5
-rw-r--r--lib/plugins/revert/lang/it/lang.php5
-rw-r--r--lib/plugins/revert/lang/ja/lang.php4
-rw-r--r--lib/plugins/revert/lang/ko/lang.php9
-rw-r--r--lib/plugins/revert/lang/ne/lang.php5
-rw-r--r--lib/plugins/revert/lang/nl/lang.php3
-rw-r--r--lib/plugins/revert/lang/pt-br/lang.php5
-rw-r--r--lib/plugins/revert/lang/pt/lang.php5
-rw-r--r--lib/plugins/revert/lang/ru/lang.php6
-rw-r--r--lib/plugins/revert/lang/sk/intro.txt3
-rw-r--r--lib/plugins/revert/lang/sk/lang.php7
-rw-r--r--lib/plugins/revert/lang/sl/lang.php5
-rw-r--r--lib/plugins/revert/lang/sv/lang.php1
-rw-r--r--lib/plugins/revert/lang/tr/lang.php5
-rw-r--r--lib/plugins/revert/lang/uk/lang.php5
-rw-r--r--lib/plugins/revert/lang/zh-tw/lang.php5
-rw-r--r--lib/plugins/revert/lang/zh/lang.php4
-rw-r--r--lib/plugins/revert/plugin.info.txt2
-rw-r--r--lib/plugins/safefnrecode/action.php2
-rw-r--r--lib/plugins/syntax.php44
-rw-r--r--lib/plugins/usermanager/admin.php696
-rw-r--r--lib/plugins/usermanager/lang/ar/lang.php5
-rw-r--r--lib/plugins/usermanager/lang/cs/import.txt9
-rw-r--r--lib/plugins/usermanager/lang/cs/lang.php23
-rw-r--r--lib/plugins/usermanager/lang/da/lang.php5
-rw-r--r--lib/plugins/usermanager/lang/de-informal/import.txt7
-rw-r--r--lib/plugins/usermanager/lang/de-informal/lang.php21
-rw-r--r--lib/plugins/usermanager/lang/de/import.txt8
-rw-r--r--lib/plugins/usermanager/lang/de/lang.php22
-rw-r--r--lib/plugins/usermanager/lang/el/lang.php8
-rw-r--r--lib/plugins/usermanager/lang/en/import.txt9
-rw-r--r--lib/plugins/usermanager/lang/en/lang.php21
-rw-r--r--lib/plugins/usermanager/lang/eo/import.txt9
-rw-r--r--lib/plugins/usermanager/lang/eo/lang.php24
-rw-r--r--lib/plugins/usermanager/lang/es/lang.php5
-rw-r--r--lib/plugins/usermanager/lang/fa/lang.php5
-rw-r--r--lib/plugins/usermanager/lang/fr/import.txt11
-rw-r--r--lib/plugins/usermanager/lang/fr/lang.php22
-rw-r--r--lib/plugins/usermanager/lang/he/lang.php5
-rw-r--r--lib/plugins/usermanager/lang/hu/import.txt9
-rw-r--r--lib/plugins/usermanager/lang/hu/lang.php24
-rw-r--r--lib/plugins/usermanager/lang/it/lang.php5
-rw-r--r--lib/plugins/usermanager/lang/ja/import.txt10
-rw-r--r--lib/plugins/usermanager/lang/ja/lang.php24
-rw-r--r--lib/plugins/usermanager/lang/ko/import.txt9
-rw-r--r--lib/plugins/usermanager/lang/ko/lang.php32
-rw-r--r--lib/plugins/usermanager/lang/ne/lang.php5
-rw-r--r--lib/plugins/usermanager/lang/nl/import.txt8
-rw-r--r--lib/plugins/usermanager/lang/nl/lang.php20
-rw-r--r--lib/plugins/usermanager/lang/pt-br/lang.php20
-rw-r--r--lib/plugins/usermanager/lang/pt/import.txt9
-rw-r--r--lib/plugins/usermanager/lang/pt/lang.php17
-rw-r--r--lib/plugins/usermanager/lang/ru/import.txt9
-rw-r--r--lib/plugins/usermanager/lang/ru/lang.php22
-rw-r--r--lib/plugins/usermanager/lang/sk/import.txt9
-rw-r--r--lib/plugins/usermanager/lang/sk/lang.php23
-rw-r--r--lib/plugins/usermanager/lang/sl/lang.php17
-rw-r--r--lib/plugins/usermanager/lang/sv/lang.php13
-rw-r--r--lib/plugins/usermanager/lang/tr/lang.php5
-rw-r--r--lib/plugins/usermanager/lang/uk/lang.php4
-rw-r--r--lib/plugins/usermanager/lang/zh-tw/lang.php9
-rw-r--r--lib/plugins/usermanager/lang/zh/import.txt7
-rw-r--r--lib/plugins/usermanager/lang/zh/lang.php24
-rw-r--r--lib/plugins/usermanager/plugin.info.txt2
-rw-r--r--lib/plugins/usermanager/style.css9
-rw-r--r--lib/scripts/cookie.js2
-rw-r--r--lib/scripts/fileuploaderextended.js1
-rw-r--r--lib/scripts/linkwiz.js1
-rw-r--r--lib/scripts/textselection.js2
-rw-r--r--lib/tpl/default/_admin.css48
-rw-r--r--lib/tpl/default/_fileuploader.css111
-rw-r--r--lib/tpl/default/_linkwiz.css40
-rw-r--r--lib/tpl/default/_mediamanager.css475
-rw-r--r--lib/tpl/default/_mediaoptions.css18
-rw-r--r--lib/tpl/default/_subscription.css21
-rw-r--r--lib/tpl/default/_tabs.css50
-rw-r--r--lib/tpl/default/design.css863
-rw-r--r--lib/tpl/default/detail.php86
-rw-r--r--lib/tpl/default/footer.html41
-rw-r--r--lib/tpl/default/images/UWEB.pngbin462 -> 0 bytes
-rw-r--r--lib/tpl/default/images/UWEBshadow.pngbin900 -> 0 bytes
-rw-r--r--lib/tpl/default/images/apple-touch-icon.pngbin17728 -> 0 bytes
-rw-r--r--lib/tpl/default/images/bullet.gifbin50 -> 0 bytes
-rw-r--r--lib/tpl/default/images/button-cc.gifbin359 -> 0 bytes
-rw-r--r--lib/tpl/default/images/button-css.pngbin299 -> 0 bytes
-rw-r--r--lib/tpl/default/images/button-donate.gifbin187 -> 0 bytes
-rw-r--r--lib/tpl/default/images/button-dw.pngbin404 -> 0 bytes
-rw-r--r--lib/tpl/default/images/button-php.gifbin207 -> 0 bytes
-rw-r--r--lib/tpl/default/images/button-rss.pngbin191 -> 0 bytes
-rw-r--r--lib/tpl/default/images/button-xhtml.pngbin321 -> 0 bytes
-rw-r--r--lib/tpl/default/images/buttonshadow.pngbin218 -> 0 bytes
-rw-r--r--lib/tpl/default/images/closed.gifbin54 -> 0 bytes
-rw-r--r--lib/tpl/default/images/favicon.icobin7406 -> 0 bytes
-rw-r--r--lib/tpl/default/images/inputshadow.pngbin93 -> 0 bytes
-rw-r--r--lib/tpl/default/images/link_icon.gifbin168 -> 0 bytes
-rw-r--r--lib/tpl/default/images/mail_icon.gifbin151 -> 0 bytes
-rw-r--r--lib/tpl/default/images/open.gifbin54 -> 0 bytes
-rw-r--r--lib/tpl/default/images/resizecol.pngbin225 -> 0 bytes
-rw-r--r--lib/tpl/default/images/tocdot2.gifbin50 -> 0 bytes
-rw-r--r--lib/tpl/default/images/windows.gifbin170 -> 0 bytes
-rw-r--r--lib/tpl/default/layout.css79
-rw-r--r--lib/tpl/default/main.php135
-rw-r--r--lib/tpl/default/media.css224
-rw-r--r--lib/tpl/default/mediamanager.php45
-rw-r--r--lib/tpl/default/print.css228
-rw-r--r--lib/tpl/default/rtl.css162
-rw-r--r--lib/tpl/default/style.ini77
-rw-r--r--lib/tpl/default/template.info.txt7
-rw-r--r--lib/tpl/dokuwiki/css/_forms.css1
-rw-r--r--lib/tpl/dokuwiki/css/_media_fullscreen.css1
-rw-r--r--lib/tpl/dokuwiki/css/_media_popup.css1
-rw-r--r--lib/tpl/dokuwiki/css/content.less15
-rw-r--r--lib/tpl/dokuwiki/detail.php9
-rw-r--r--lib/tpl/dokuwiki/main.php6
-rw-r--r--lib/tpl/dokuwiki/tpl_footer.php3
-rw-r--r--lib/tpl/dokuwiki/tpl_header.php2
499 files changed, 6428 insertions, 6620 deletions
diff --git a/_cs/DokuWiki/ruleset.xml b/_cs/DokuWiki/ruleset.xml
index c69ef853a..3ee7fb667 100644
--- a/_cs/DokuWiki/ruleset.xml
+++ b/_cs/DokuWiki/ruleset.xml
@@ -3,7 +3,12 @@
<description>DokuWiki Coding Standard</description>
<!-- ignore 3rd party libraries (that we haven't adopted) -->
- <exclude-pattern>*/adLDAP.php</exclude-pattern>
+ <exclude-pattern>*/inc/blowfish.php</exclude-pattern>
+ <exclude-pattern>*/inc/lessc.inc.php</exclude-pattern>
+ <exclude-pattern>*/inc/phpseclib/*</exclude-pattern>
+ <exclude-pattern>*/lib/plugins/authad/adLDAP/*</exclude-pattern>
+ <exclude-pattern>*/lib/scripts/fileuploader.js</exclude-pattern>
+ <exclude-pattern>*/lib/scripts/jquery/*</exclude-pattern>
<exclude-pattern>*/EmailAddressValidator.php</exclude-pattern>
<exclude-pattern>*/feedcreator.class.php</exclude-pattern>
<exclude-pattern>*/SimplePie.php</exclude-pattern>
diff --git a/_test/bootstrap.php b/_test/bootstrap.php
index 732fef9ed..4f0d5efaa 100644
--- a/_test/bootstrap.php
+++ b/_test/bootstrap.php
@@ -15,7 +15,8 @@ require_once DOKU_UNITTEST.'core/TestUtils.php';
define('SIMPLE_TEST', true);
// basic behaviours
-error_reporting(E_ALL);
+define('DOKU_E_LEVEL',E_ALL ^ E_NOTICE);
+error_reporting(DOKU_E_LEVEL);
set_time_limit(0);
ini_set('memory_limit','2048M');
@@ -68,6 +69,13 @@ $default_server_vars = array(
'REQUEST_TIME' => time(),
);
+// fixup for $_SERVER when run from CLI,
+// some values should be mocked for use by inc/init.php which is called here
+// [ $_SERVER is also mocked in TestRequest::execute() ]
+if (php_sapi_name() == 'cli') {
+ $_SERVER = array_merge($default_server_vars, $_SERVER);
+}
+
// create temp directories
mkdir(TMP_DIR);
diff --git a/_test/data/meta/mailinglist.changes b/_test/data/meta/mailinglist.changes
new file mode 100644
index 000000000..348f8258f
--- /dev/null
+++ b/_test/data/meta/mailinglist.changes
@@ -0,0 +1,24 @@
+1360110636 127.0.0.1 C mailinglist pubcie aangemaakt
+1361901536 127.0.0.1 E mailinglist pubcie
+1362524799 127.0.0.1 E mailinglist pubcie
+1362525145 127.0.0.1 E mailinglist pubcie
+1362525359 127.0.0.1 E mailinglist pubcie [Data entry]
+1362525899 127.0.0.1 E mailinglist pubcie [Data entry]
+1362525926 127.0.0.1 E mailinglist pubcie
+1362526039 127.0.0.1 E mailinglist pubcie [Data entry]
+1362526119 127.0.0.1 E mailinglist pubcie
+1362526167 127.0.0.1 E mailinglist pubcie [Data entry]
+1362526767 127.0.0.1 E mailinglist pubcie [Data entry]
+1362526861 127.0.0.1 E mailinglist pubcie [Data entry]
+1362527046 127.0.0.1 E mailinglist pubcie [Data entry]
+1362527164 127.0.0.1 E mailinglist pubcie [Data entry]
+1363436892 127.0.0.1 E mailinglist pubcie
+1368575634 127.0.0.1 E mailinglist pubcie
+1368609772 127.0.0.1 E mailinglist pubcie
+1368612506 127.0.0.1 E mailinglist pubcie [Data entry]
+1368612599 127.0.0.1 E mailinglist pubcie [Data entry]
+1368622152 127.0.0.1 E mailinglist pubcie [Data entry]
+1368622195 127.0.0.1 E mailinglist pubcie
+1368622240 127.0.0.1 E mailinglist pubcie [Data entry]
+1371579614 127.0.0.1 E mailinglist pubcie
+1374261194 127.0.0.1 E mailinglist pubcie
diff --git a/_test/data/pages/mailinglist.txt b/_test/data/pages/mailinglist.txt
new file mode 100644
index 000000000..3fbe91b67
--- /dev/null
+++ b/_test/data/pages/mailinglist.txt
@@ -0,0 +1,11 @@
+====== Mailing Lists ======
+
+[[DokuWiki]]'s development is coordinated through multiple Mailinglists hosted by [[http://www.freelists.org|freelists.org]].
+
+===== Using the lists =====
+
+First you should subscribe to one or several of the mailing lists presented below. After subscribing you can send emails to the list(s) by using the mailing list address stated in its description. If you rather want to use the mailing list through a news group interface, please read the section [[#News group interface]].
+
+If you are new to mailing lists in general, please read [[rfc>1855|RFC 1855 - Netiquette Guidelines]], especially the sections 3.1.1 and 3.1.2. Before you ask any questions you should also have a look at [[http://www.catb.org/~esr/faqs/smart-questions.html|How To Ask Questions The Smart Way]].
+
+:!: Please note that these documents are linked here solely for the purpose of information. Their respective authors have nothing do to with [[DokuWiki]] and in **no case** should you send email to them, asking for help related to [[DokuWiki]]!
diff --git a/_test/tests/inc/auth_loadacl.test.php b/_test/tests/inc/auth_loadacl.test.php
new file mode 100644
index 000000000..e8d9f6696
--- /dev/null
+++ b/_test/tests/inc/auth_loadacl.test.php
@@ -0,0 +1,130 @@
+<?php
+/**
+ * auth_loadACL carries out the user & group substitutions
+ *
+ * @author Chris Smith <chris@jalakai.co.uk>
+ */
+
+class auth_loadacl_test extends DokuWikiTest {
+
+ function setUp() {
+ global $USERINFO;
+ parent::setUp();
+ $_SERVER['REMOTE_USER'] = 'testuser';
+ $USERINFO['grps'] = array('foo','bar');
+ }
+
+ function tearDown() {
+ parent::tearDown();
+ }
+
+ function auth_loadACL_testwrapper($acls) {
+ global $config_cascade;
+ $acl_file = $config_cascade['acl']['default'];
+
+ $config_cascade['acl']['default'] .= '.test';
+ file_put_contents($config_cascade['acl']['default'],$acls);
+
+ $result = auth_loadACL();
+
+ unlink($config_cascade['acl']['default']);
+ $config_cascade['acl']['default'] = $acl_file;
+
+ return $result;
+ }
+
+ function test_simple() {
+ $acls = <<<ACL
+* @ALL 2
+ACL;
+ $expect = array("*\t@ALL 2");
+ $this->assertEquals($expect, $this->auth_loadACL_testwrapper($acls));
+ }
+
+ function test_user_substitution() {
+ $acls = <<<ACL
+%USER% %USER% 2
+ACL;
+ $expect = array(
+ "testuser\ttestuser 2",
+ );
+ $this->assertEquals($expect, $this->auth_loadACL_testwrapper($acls));
+ }
+
+ function test_group_substitution() {
+ $acls = <<<ACL
+%GROUP% %GROUP% 2
+ACL;
+ $expect = array(
+ "foo\t@foo 2",
+ "bar\t@bar 2",
+ );
+ $this->assertEquals($expect, $this->auth_loadACL_testwrapper($acls));
+ }
+
+ function test_both_substitution() {
+ $acls = <<<ACL
+%GROUP%:%USER% %USER% 2
+%GROUP%:%USER% %GROUP% 2
+ACL;
+ $expect = array(
+ "foo:testuser\ttestuser 2",
+ "bar:testuser\ttestuser 2",
+ "foo:testuser\t@foo 2",
+ "bar:testuser\t@bar 2",
+ );
+ $this->assertEquals($expect, $this->auth_loadACL_testwrapper($acls));
+ }
+
+ // put it all together - read the standard acl provided with the test suite
+ function test_standardtestacls(){
+ $expect = array(
+ "*\t@ALL 8",
+ "private:*\t@ALL 0",
+ "users:*\t@ALL 1",
+ "users:testuser:*\ttestuser 16",
+ "groups:*\t@ALL 1",
+ "groups:foo:*\t@foo 16",
+ "groups:bar:*\t@bar 16",
+ );
+ $this->assertEquals($expect, auth_loadACL());
+ }
+
+ // FS#2867, '\s' in php regular expressions may match non-space characters utf8 strings
+ // this is due to locale setting on the server, which may match bytes '\xA0' and '\x85'
+ // these two bytes are present in valid multi-byte UTF-8 characters.
+ // this test will use one, 'ठ' (DEVANAGARI LETTER TTHA, e0 a4 a0). There are many others.
+ function test_FS2867() {
+ global $USERINFO;
+
+ $old_locale = setlocale(LC_ALL, '0');
+ setlocale(LC_ALL, "English_United States.1252"); // should only succeed on windows systems
+ setlocale(LC_ALL, "en_US.UTF-8"); // should succeed on other systems
+
+ // no point continuing with this test if \s doesn't match A0
+ if (!preg_match('/\s/',"\xa0")) {
+ setlocale(LC_ALL, $old_locale);
+ $this->markTestSkipped('Unable to change locale.');
+ }
+
+ $_SERVER['REMOTE_USER'] = 'utfठ8';
+ $USERINFO['grps'] = array('utfठ16','utfठa');
+
+ $acls = <<<ACL
+%GROUP%:%USER% %USER% 2
+%GROUP%:* %GROUP% 4
+devangariठttha @ALL 2
+ACL;
+ $expect = array(
+ "utfठ16:utfठ8\tutfठ8 2",
+ "utfठa:utfठ8\tutfठ8 2",
+ "utfठ16:*\t@utfठ16 4",
+ "utfठa:*\t@utfठa 4",
+ "devangariठttha\t@ALL 2",
+ );
+ $this->assertEquals($expect, $this->auth_loadACL_testwrapper($acls));
+ setlocale(LC_ALL, $old_locale);
+ }
+}
+
+//Setup VIM: ex: et ts=4 :
diff --git a/_test/tests/inc/auth_nameencode.test.php b/_test/tests/inc/auth_nameencode.test.php
index da9f31f90..86db843d6 100644
--- a/_test/tests/inc/auth_nameencode.test.php
+++ b/_test/tests/inc/auth_nameencode.test.php
@@ -19,6 +19,18 @@ class auth_nameencode_test extends DokuWikiTest {
$this->assertEquals(auth_nameencode($in),$out);
}
+ function test_apostrophe(){
+ $in = 'hey\'you';
+ $out = 'hey%27you';
+ $this->assertEquals(auth_nameencode($in),$out);
+ }
+
+ function test_backslash(){
+ $in = 'hey\\you';
+ $out = 'hey%5cyou';
+ $this->assertEquals(auth_nameencode($in),$out);
+ }
+
function test_complex(){
$in = 'hey $ you !$%! foo ';
$out = 'hey%20%24%20you%20%21%24%25%21%20foo%20';
@@ -42,6 +54,22 @@ class auth_nameencode_test extends DokuWikiTest {
$out = '%40hey%24you';
$this->assertEquals(auth_nameencode($in),$out);
}
+
+ // include a two byte utf8 character which shouldn't be encoded
+ function test_hebrew(){
+ $in = 'nun-נ8';
+ $expect = 'nun%2dנ8';
+
+ $this->assertEquals($expect, auth_nameencode($in));
+ }
+
+ // include a three byte utf8 character which shouldn't be encoded
+ function test_devanagiri(){
+ $in = 'ut-fठ8';
+ $expect = 'ut%2dfठ8';
+
+ $this->assertEquals($expect, auth_nameencode($in));
+ }
}
//Setup VIM: ex: et ts=4 :
diff --git a/_test/tests/inc/changelog_getrevisioninfo.test.php b/_test/tests/inc/changelog_getrevisioninfo.test.php
new file mode 100644
index 000000000..9637d21c8
--- /dev/null
+++ b/_test/tests/inc/changelog_getrevisioninfo.test.php
@@ -0,0 +1,120 @@
+<?php
+
+/**
+ * Tests for requesting revisioninfo of a revision of a page with getRevisionInfo()
+ *
+ * This class uses the files:
+ * - data/pages/mailinglist.txt
+ * - data/meta/mailinglist.changes
+ */
+class changelog_getrevisionsinfo_test extends DokuWikiTest {
+
+ private $logline = "1362525899 127.0.0.1 E mailinglist pubcie [Data entry] \n";
+ private $firstlogline = "1374261194 127.0.0.1 E mailinglist pubcie \n";
+ private $pageid = 'mailinglist';
+
+ function setup() {
+ parent::setup();
+ global $cache_revinfo;
+ $cache =& $cache_revinfo;
+ if(isset($cache['nonexist'])) {
+ unset($cache['nonexist']);
+ }
+ if(isset($cache['mailinglist'])) {
+ unset($cache['nonexist']);
+ }
+ }
+
+ /**
+ * no nonexist.changes meta file available
+ */
+ function test_changemetadatanotexists() {
+ $rev = 1362525899;
+ $id = 'nonexist';
+ $revsexpected = false;
+
+ $revs = getRevisionInfo($id, $rev, $chunk_size = 8192, $media = false);
+ $this->assertEquals($revsexpected, $revs);
+ }
+
+ /**
+ * request existing rev
+ */
+ function test_requestrev() {
+ $rev = 1362525899;
+ $infoexpected = parseChangelogLine($this->logline);
+
+ $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false);
+ $this->assertEquals($infoexpected, $info);
+ //returns cached value
+ $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false);
+ $this->assertEquals($infoexpected, $info);
+ }
+
+ /**
+ * request existing rev with chucked reading
+ */
+ function test_requestrev_chuncked() {
+ $rev = 1362525899;
+ $infoexpected = parseChangelogLine($this->logline);
+
+ $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 512, $media = false);
+ $this->assertEquals($infoexpected, $info);
+ }
+
+ /**
+ * request current version
+ */
+ function test_requestrecentestlogline() {
+ $rev = 1374261194;
+ $infoexpected = parseChangelogLine($this->firstlogline);
+
+ $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false);
+ $this->assertEquals($infoexpected, $info);
+ //returns cached value
+ $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false);
+ $this->assertEquals($infoexpected, $info);
+ }
+
+ /**
+ * request current version, with chuncked reading
+ */
+ function test_requestrecentestlogline_chuncked() {
+ $rev = 1374261194;
+ $infoexpected = parseChangelogLine($this->firstlogline);
+
+ $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 512, $media = false);
+ $this->assertEquals($infoexpected, $info);
+ }
+
+ /**
+ * request negative revision
+ */
+ function test_negativerev() {
+ $rev = -10;
+
+ $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false);
+ $this->assertEquals(false, $info);
+ }
+
+ /**
+ * request non existing revision somewhere between existing revisions
+ */
+ function test_notexistingrev() {
+ $rev = 1362525890;
+
+ $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false);
+ $this->assertEquals(false, $info);
+ }
+
+ /**
+ * sometimes chuncksize is set to true
+ */
+ function test_chuncksizetrue() {
+ $rev = 1362525899;
+ $infoexpected = parseChangelogLine($this->logline);
+
+ $info = getRevisionInfo($this->pageid, $rev, true);
+ $this->assertEquals($infoexpected, $info);
+ }
+} \ No newline at end of file
diff --git a/_test/tests/inc/changelog_getrevisions.test.php b/_test/tests/inc/changelog_getrevisions.test.php
new file mode 100644
index 000000000..a9be26dae
--- /dev/null
+++ b/_test/tests/inc/changelog_getrevisions.test.php
@@ -0,0 +1,200 @@
+<?php
+/**
+ * Tests for requesting revisions of a page with getRevisions()
+ *
+ * This class uses the files:
+ * - data/pages/mailinglist.txt
+ * - data/meta/mailinglist.changes
+ */
+class changelog_getrevisions_test extends DokuWikiTest {
+
+ /**
+ * $first counts inclusive zero, after the current page
+ */
+ private $revsexpected = array(
+ 1374261194, //current page
+ 1371579614, 1368622240, // revisions, corresponds to respectively $first = 0 and 1
+ 1368622195, 1368622152,
+ 1368612599, 1368612506,
+ 1368609772, 1368575634,
+ 1363436892, 1362527164,
+ 1362527046, 1362526861, //10 and 11
+ 1362526767, 1362526167,
+ 1362526119, 1362526039,
+ 1362525926, 1362525899,
+ 1362525359, 1362525145,
+ 1362524799, 1361901536, //20 and 21
+ 1360110636
+ );
+ private $pageid = 'mailinglist';
+
+ function setup() {
+ parent::setup();
+ global $cache_revinfo;
+ $cache =& $cache_revinfo;
+ if(isset($cache['nonexist'])) {
+ unset($cache['nonexist']);
+ }
+ if(isset($cache['mailinglist'])) {
+ unset($cache['nonexist']);
+ }
+ }
+
+ /**
+ * no nonexist.changes meta file available
+ */
+ function test_changemetadatanotexists() {
+ $first = 0;
+ $num = 1;
+ $id = 'nonexist';
+
+ $revs = getRevisions($id, $first, $num, $chunk_size = 8192, $media = false);
+ $revsexpected = array();
+ $this->assertEquals($revsexpected, $revs);
+ }
+
+ /**
+ * request first recentest revision
+ * (so skips first line which belongs to the current existing page)
+ */
+ function test_requestlastrev() {
+ $first = 0;
+ $num = 1;
+ $revsexpected = array($this->revsexpected[1]);
+
+ $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false);
+ $this->assertEquals($revsexpected, $revs);
+
+ $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false);
+ $this->assertEquals($revsexpected, $revs);
+ }
+
+ /**
+ * request first recentest revision
+ * (so skips first line which belongs to the current existing page)
+ */
+ function test_requestonebutlastrev() {
+ $first = 1;
+ $num = 1;
+ $revsexpected = array($this->revsexpected[2]);
+
+ $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false);
+ $this->assertEquals($revsexpected, $revs);
+
+ $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false);
+ $this->assertEquals($revsexpected, $revs);
+ }
+
+ /**
+ * request first recentest revision
+ * (so skips first line of current existing page)
+ */
+ function test_requestrevswithoffset() {
+ $first = 10;
+ $num = 5;
+ $revsexpected = array_slice($this->revsexpected, $first + 1, $num);
+
+ $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false);
+ $this->assertEquals($revsexpected, $revs);
+
+ $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false);
+ $this->assertEquals($revsexpected, $revs);
+ }
+
+ /**
+ * first = -1 requests recentest logline, without skipping
+ */
+ function test_requestrecentestlogline() {
+ $first = -1;
+ $num = 1;
+ $revsexpected = array($this->revsexpected[0]);
+
+ $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false);
+ $this->assertEquals($revsexpected, $revs);
+
+ $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false);
+ $this->assertEquals($revsexpected, $revs);
+ }
+
+ /**
+ * chunck size = 0 skips chuncked loading
+ */
+ function test_wholefile() {
+ $first = 0;
+ $num = 1000;
+ $revsexpected = array_slice($this->revsexpected, 1);
+
+ $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 0, $media = false);
+ $this->assertEquals($revsexpected, $revs);
+ }
+
+ /**
+ * Negative range returns no result
+ */
+ function test_negativenum() {
+ $first = 0;
+ $num = -10;
+ $revsexpected = array();
+
+ $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false);
+ $this->assertEquals($revsexpected, $revs);
+
+ $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false);
+ $this->assertEquals($revsexpected, $revs);
+ }
+
+ /**
+ * Negative range returns no result
+ */
+ function test_negativennumoffset() {
+ $first = 2;
+ $num = -10;
+ $revsexpected = array();
+
+ $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false);
+ $this->assertEquals($revsexpected, $revs);
+
+ $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false);
+ $this->assertEquals($revsexpected, $revs);
+ }
+
+ /**
+ * zero range returns no result
+ */
+ function test_zeronum() {
+ $first = 5;
+ $num = 0;
+ $revsexpected = array();
+
+ $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false);
+ $this->assertEquals($revsexpected, $revs);
+
+ $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false);
+ $this->assertEquals($revsexpected, $revs);
+ }
+
+ /**
+ * get oldest revisions
+ */
+ function test_requestlargeoffset() {
+ $first = 22;
+ $num = 50;
+ $revsexpected = array_slice($this->revsexpected, $first + 1);
+
+ $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false);
+ $this->assertEquals($revsexpected, $revs);
+ }
+
+ /**
+ * request with too large offset and range
+ */
+ function test_requesttoolargenumberrevs() {
+ $first = 50;
+ $num = 50;
+ $revsexpected = array();
+
+ $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false);
+ $this->assertEquals($revsexpected, $revs);
+ }
+
+} \ No newline at end of file
diff --git a/_test/tests/inc/fulltext_backlinks.test.php b/_test/tests/inc/fulltext_backlinks.test.php
index 058e13498..b20a16ee1 100644
--- a/_test/tests/inc/fulltext_backlinks.test.php
+++ b/_test/tests/inc/fulltext_backlinks.test.php
@@ -8,7 +8,7 @@ if (!defined('DOKU_INC')) die();
*
* @author Michael Hamann <michael@content-space.de>
*/
-class fultext_backlinks_test extends DokuWikiTest {
+class fulltext_backlinks_test extends DokuWikiTest {
public function test_internallink() {
saveWikiText('test:internallinks', '[[internälLink]] [[..:internal link]]', 'Test initialization');
@@ -74,4 +74,12 @@ class fultext_backlinks_test extends DokuWikiTest {
$this->assertEquals(array(), ft_backlinks('test:internallink'));
$this->assertEquals(array(), ft_backlinks('internal_link'));
}
+
+ function test_parameters() {
+ saveWikiText('test:links', '[[wiki:syntax?do=export_raw]] [[:web:scripts:add_vhost.sh?do=export_raw]]', 'Init tests');
+ idx_addPage('test:links');
+
+ $this->assertEquals(array('test:links'), ft_backlinks('wiki:syntax'));
+ $this->assertEquals(array('test:links'), ft_backlinks('web:scripts:add_vhost.sh'));
+ }
}
diff --git a/_test/tests/inc/fulltext_mediause.test.php b/_test/tests/inc/fulltext_mediause.test.php
index 9d5b2dc84..503b8bc84 100644
--- a/_test/tests/inc/fulltext_mediause.test.php
+++ b/_test/tests/inc/fulltext_mediause.test.php
@@ -26,6 +26,13 @@ class fultext_mediause_test extends DokuWikiTest {
$this->assertEquals(array('test:medialinks'), ft_mediause('test:example.png'));
}
+ public function test_media_in_local_links() {
+ saveWikiText('test:locallinks', '[[#test|{{wiki:logolocal.png}}]]', 'Test init');
+ idx_addPage('test:locallinks');
+
+ $this->assertEquals(array('test:locallinks'), ft_mediause('wiki:logolocal.png'));
+ }
+
public function test_media_in_footnotes() {
saveWikiText('test:media_footnotes', '(({{footnote.png?20x50}} [[foonote|{{:footlink.png}}]]))', 'Test initialization');
idx_addPage('test:media_footnotes');
diff --git a/_test/tests/inc/httpclient_http_proxy.test.php b/_test/tests/inc/httpclient_http_proxy.test.php
index faa7a4280..4aa039fcc 100644
--- a/_test/tests/inc/httpclient_http_proxy.test.php
+++ b/_test/tests/inc/httpclient_http_proxy.test.php
@@ -1,7 +1,7 @@
<?php
class httpclient_http_proxy_test extends DokuWikiTest {
- protected $url = 'http://www.dokuwiki.org/README';
+ protected $url = 'http://test.dokuwiki.org/README';
/**
* @group internet
@@ -13,7 +13,7 @@ class httpclient_http_proxy_test extends DokuWikiTest {
$http->proxy_port = 8080;
$data = $http->get($this->url);
- $this->assertFalse($data === false, 'HTTP response');
+ $this->assertFalse($data === false, 'HTTP response '.$http->error);
$this->assertTrue(strpos($data,'DokuWiki') !== false, 'response content');
}
diff --git a/_test/tests/inc/indexer_indexing.test.php b/_test/tests/inc/indexer_indexing.test.php
new file mode 100644
index 000000000..628e82e00
--- /dev/null
+++ b/_test/tests/inc/indexer_indexing.test.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * Tests the indexing functionality of the indexer
+ *
+ * @author Michael Hamann <michael@content-space.de>
+ */
+class indexer_indexing_test extends DokuWikiTest {
+ public function setUp() {
+ parent::setUp();
+ saveWikiText('testpage', 'Foo bar baz.', 'Test initialization');
+ saveWikiText('notfound', 'Foon barn bazn.', 'Test initialization');
+ idx_addPage('testpage');
+ idx_addPage('notfound');
+ }
+
+ public function test_words() {
+ $indexer = idx_get_indexer();
+ $query = array('baz', 'foo');
+ $this->assertEquals(array('baz' => array('testpage' => 1), 'foo' => array('testpage' => 1)), $indexer->lookup($query));
+ }
+
+ public function test_numerically_identical_words() {
+ $indexer = idx_get_indexer();
+ $indexer->addPageWords('testpage', '0x1 002');
+ $indexer->addPageWords('notfound', '0x2');
+ $query = array('001', '002');
+ $this->assertEquals(array('001' => array(), '002' => array('testpage' => 1)), $indexer->lookup($query));
+ }
+
+ public function test_meta() {
+ $indexer = idx_get_indexer();
+ $indexer->addMetaKeys('testpage', 'testkey', 'testvalue');
+ $indexer->addMetaKeys('notfound', 'testkey', 'notvalue');
+ $query = 'testvalue';
+ $this->assertEquals(array('testpage'), $indexer->lookupKey('testkey', $query));
+ }
+
+ public function test_numerically_identical_meta_values() {
+ $indexer = idx_get_indexer();
+ $indexer->addMetaKeys('testpage', 'numkey', array('0001', '01'));
+ $indexer->addMetaKeys('notfound', 'numkey', array('00001', '000001'));
+ $query = array('001', '01');
+ $this->assertEquals(array('001' => array(), '01' => array('testpage')), $indexer->lookupKey('numkey', $query));
+ }
+} \ No newline at end of file
diff --git a/_test/tests/inc/mailer.test.php b/_test/tests/inc/mailer.test.php
index ef78692b3..bac0c39ba 100644
--- a/_test/tests/inc/mailer.test.php
+++ b/_test/tests/inc/mailer.test.php
@@ -50,8 +50,8 @@ class mailer_test extends DokuWikiTest {
// set a bunch of test headers
$mail->setHeader('test-header','bla');
$mail->setHeader('to','A valid ASCII name <test@example.com>');
- $mail->setHeader('from',"Thös ne\needs\x00serious cleaning$§%.");
- $mail->setHeader('bad',"Thös ne\needs\x00serious cleaning$§%.",false);
+ $mail->setHeader('from',"Thös ne\needs\x00serious cleaning\$§%.");
+ $mail->setHeader('bad',"Thös ne\needs\x00serious cleaning\$§%.",false);
$mail->setHeader("weird\n*+\x00foo.-_@bar?",'now clean');
// are they set?
@@ -63,7 +63,7 @@ class mailer_test extends DokuWikiTest {
$this->assertArrayHasKey('From',$headers);
$this->assertEquals('Ths neeedsserious cleaning.',$headers['From']);
$this->assertArrayHasKey('Bad',$headers);
- $this->assertEquals("Thös ne\needs\x00serious cleaning$§%.",$headers['Bad']);
+ $this->assertEquals("Thös ne\needs\x00serious cleaning\$§%.",$headers['Bad']);
$this->assertArrayHasKey('Weird+foo.-_@bar',$headers);
// unset a header again
@@ -156,5 +156,68 @@ class mailer_test extends DokuWikiTest {
$this->assertEquals(0, preg_match('/(^|\n)Bcc: (\n|$)/', $header), 'Bcc found in headers.');
$this->assertEquals(0, preg_match('/(^|\n)Cc: (\n|$)/', $header), 'Bcc found in headers.');
}
+
+ /**
+ * @group internet
+ */
+ function test_lint(){
+ // prepare a simple multipart message
+ $mail = new TestMailer();
+ $mail->to(array('Möp <moep@example.com> ',' foo <foo@example.com>'));
+ $mail->from('Me <test@example.com>');
+ $mail->subject('This is a töst');
+ $mail->setBody('Hello Wörld,
+
+ please don\'t burn, okay?
+ ');
+ $mail->attachContent('some test data', 'text/plain', 'a text.txt');
+ $msg = $mail->dump();
+ $msglines = explode("\n", $msg);
+
+ //echo $msg;
+
+ // ask message lint if it is okay
+ $html = new HTTPClient();
+ $results = $html->post('http://tools.ietf.org/tools/msglint/msglint', array('msg'=>$msg));
+ $this->assertTrue($results !== false);
+
+ // parse the result lines
+ $lines = explode("\n", $results);
+ $rows = count($lines);
+ $i=0;
+ while(trim($lines[$i]) != '-----------' && $i<$rows) $i++; //skip preamble
+ for($i=$i+1; $i<$rows; $i++){
+ $line = trim($lines[$i]);
+ if($line == '-----------') break; //skip appendix
+
+ // get possible continuation of the line
+ while($lines[$i+1][0] == ' '){
+ $line .= ' '.trim($lines[$i+1]);
+ $i++;
+ }
+
+ // check the line for errors
+ if(substr($line,0,5) == 'ERROR' || substr($line,0,7) == 'WARNING'){
+ // ignore some errors
+ if(strpos($line, "missing mandatory header 'return-path'")) continue; #set by MDA
+ if(strpos($line, "bare newline in text body decoded")) continue; #seems to be false positive
+
+ // get the context in which the error occured
+ $errorin = '';
+ if(preg_match('/line (\d+)$/', $line, $m)){
+ $errorin .= "\n".$msglines[$m[1] - 1];
+ }
+ if(preg_match('/lines (\d+)-(\d+)$/', $line, $m)){
+ for($x=$m[1]-1; $x<$m[2]; $x++){
+ $errorin .= "\n".$msglines[$x];
+ }
+ }
+
+ // raise the error
+ throw new Exception($line.$errorin);
+ }
+ }
+
+ }
}
//Setup VIM: ex: et ts=4 :
diff --git a/_test/tests/inc/pageutils_clean_id.test.php b/_test/tests/inc/pageutils_clean_id.test.php
index 478fd2bc4..f67109ba3 100644
--- a/_test/tests/inc/pageutils_clean_id.test.php
+++ b/_test/tests/inc/pageutils_clean_id.test.php
@@ -43,6 +43,9 @@ class init_clean_id_test extends DokuWikiTest {
$tests[] = array('ns._#!ns:page','false','ns._ns:page');
$tests[] = array('ns_:page',false,'ns:page');
$tests[] = array('page...page','false','page...page');
+ $tests[] = array('page---page','false','page---page');
+ $tests[] = array('page___page','false','page_page');
+ $tests[] = array('page_-.page','false','page_-.page');
$tests[] = array(':page',false,'page');
$tests[] = array(':ns:page',false,'ns:page');
$tests[] = array('page:',false,'page');
diff --git a/_test/tests/inc/parser/parser_table.test.php b/_test/tests/inc/parser/parser_table.test.php
index 96789c38c..542a307b8 100644
--- a/_test/tests/inc/parser/parser_table.test.php
+++ b/_test/tests/inc/parser/parser_table.test.php
@@ -270,6 +270,64 @@ def');
);
$this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
}
+
+ function testCellRowSpanFirstRow() {
+ $this->P->addMode('table',new Doku_Parser_Mode_Table());
+ $this->P->parse('
+abc
+|::: ^ d:::^:::| ::: |
+| b ^ e | | ::: |
+|c ^ ::: | |:::|
+def');
+
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\n\nabc")),
+ array('p_close',array()),
+ array('table_open',array(4, 3, 6)),
+ array('tablerow_open',array()),
+ array('tablecell_open',array(1,NULL,1)),
+ array('cdata',array('')),
+ array('tablecell_close',array()),
+ array('tableheader_open',array(1,'right',1)),
+ array('cdata',array(' d:::')),
+ array('tableheader_close',array()),
+ array('tableheader_open',array(1,NULL,1)),
+ array('cdata',array('')),
+ array('tableheader_close',array()),
+ array('tablecell_open',array(1,NULL,3)),
+ array('cdata',array('')),
+ array('tablecell_close',array()),
+ array('tablerow_close',array()),
+ array('tablerow_open',array()),
+ array('tablecell_open',array(1,NULL,1)),
+ array('cdata',array(' b ')),
+ array('tablecell_close',array()),
+ array('tableheader_open',array(1,'left',2)),
+ array('cdata',array(' e ')),
+ array('tableheader_close',array()),
+ array('tablecell_open',array(1,NULL,1)),
+ array('cdata',array(' ')),
+ array('tablecell_close',array()),
+ array('tablerow_close',array()),
+ array('tablerow_open',array()),
+ array('tablecell_open',array(1,'left',1)),
+ array('cdata',array('c ')),
+ array('tablecell_close',array()),
+ array('tablecell_open',array(1,NULL,1)),
+ array('cdata',array(' ')),
+ array('tablecell_close',array()),
+ array('tablerow_close',array()),
+
+ array('table_close',array(69)),
+ array('p_open',array()),
+ array('cdata',array('def')),
+ array('p_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
+ }
function testCellAlignmentFormatting() {
$this->P->addMode('table',new Doku_Parser_Mode_Table());
diff --git a/_test/tests/inc/parserutils_set_metadata_during_rendering.test.php b/_test/tests/inc/parserutils_set_metadata_during_rendering.test.php
index f08785ca2..18660553d 100644
--- a/_test/tests/inc/parserutils_set_metadata_during_rendering.test.php
+++ b/_test/tests/inc/parserutils_set_metadata_during_rendering.test.php
@@ -80,7 +80,7 @@ class parserutils_set_metadata_during_rendering_test extends DokuWikiTest {
}
// wrapper function for the fake plugin controller, return $this for the fake syntax of this test
- function &load($type,$name,$new=false,$disabled=false){
+ function load($type,$name,$new=false,$disabled=false){
if ($name == 'parserutils_test') {
return $this;
} else {
diff --git a/_test/tests/inc/subscription.test.php b/_test/tests/inc/subscription.test.php
index 333400576..34a7b9e4b 100644
--- a/_test/tests/inc/subscription.test.php
+++ b/_test/tests/inc/subscription.test.php
@@ -237,7 +237,7 @@ class MockupSubscription extends Subscription {
return parent::buildregex($user, $style, $data);
}
- protected function send($subscriber_mail, $subject, $id, $template, $trep, $hrep = null) {
+ protected function send($subscriber_mail, $subject, $id, $template, $trep, $hrep = null, $headers = array()) {
$this->mails[] = $subscriber_mail;
return true;
}
diff --git a/_test/tests/lib/exe/css_css_compress.test.php b/_test/tests/lib/exe/css_css_compress.test.php
index a7c87b6a7..a614ea2fd 100644
--- a/_test/tests/lib/exe/css_css_compress.test.php
+++ b/_test/tests/lib/exe/css_css_compress.test.php
@@ -62,6 +62,46 @@ class css_css_compress_test extends DokuWikiTest {
$this->assertEquals(css_compress($text), 'a{left:20px;top:20px}');
}
+ function test_shortening() {
+ $input = array(
+ 'margin:0em 0em 0em 0em ul.test margin:0em :0em div#FFFFFF {',
+ 'margin: 1px 1px 1px 1px;',
+ 'padding: 1px 2px 1px 2px;',
+ 'margin: 1px 2px 3px 1px;',
+ 'padding: 1px 2px 3px 4px;',
+ 'margin: 00.00em 0em 01.00px 0em;',
+ 'padding: 0010em 0010.00em 00.00em 00.00100em;',
+ 'padding: 0010% 0010.00% 00.00% 00.00100xxx;',
+ 'padding: 0.0em .0em 0.em 00.00em;',
+ 'padding: 01.0em;',
+ 'color: #FFFFFF;',
+ 'color: #777777;',
+ 'color: #123456;',
+ 'border: 01.0em solid #ffffff;',
+ );
+
+ $expected = array(
+ 'margin:0em 0em 0em 0em ul.test margin:0em :0em div#FFFFFF{',
+ 'margin:1px;',
+ 'padding:1px 2px;',
+ 'margin:1px 2px 3px 1px;',
+ 'padding:1px 2px 3px 4px;',
+ 'margin:0 0 1px 0;',
+ 'padding:10em 10em 0 .001em;',
+ 'padding:10% 10% 0 00.00100xxx;',
+ 'padding:0;',
+ 'padding:1em;',
+ 'color:#FFF;',
+ 'color:#777;',
+ 'color:#123456;',
+ 'border:1em solid #fff;',
+ );
+
+ $input = array_map('css_compress', $input);
+
+ $this->assertEquals($expected, $input);
+ }
+
}
//Setup VIM: ex: et ts=4 :
diff --git a/bin/dwpage.php b/bin/dwpage.php
index bc9c0f6bb..96f6d3ef9 100755
--- a/bin/dwpage.php
+++ b/bin/dwpage.php
@@ -13,7 +13,7 @@ require_once DOKU_INC.'inc/cliopts.php';
function usage($action) {
switch ( $action ) {
case 'checkout':
- print "Usage: dwpage.php [opts] checkout <wiki:page> [working_file]
+ print "Usage: dwpage.php [opts] checkout <wiki:page> [working_file]
Checks out a file from the repository, using the wiki id and obtaining
a lock for the page.
@@ -30,7 +30,7 @@ function usage($action) {
";
break;
case 'commit':
- print "Usage: dwpage.php [opts] -m \"Msg\" commit <working_file> <wiki:page>
+ print "Usage: dwpage.php [opts] -m \"Msg\" commit <working_file> <wiki:page>
Checks in the working_file into the repository using the specified
wiki id, archiving the previous version.
@@ -46,7 +46,7 @@ function usage($action) {
";
break;
case 'lock':
- print "Usage: dwpage.php [opts] lock <wiki:page>
+ print "Usage: dwpage.php [opts] lock <wiki:page>
Obtains or updates a lock for a wiki page
@@ -59,7 +59,7 @@ function usage($action) {
";
break;
case 'unlock':
- print "Usage: dwpage.php [opts] unlock <wiki:page>
+ print "Usage: dwpage.php [opts] unlock <wiki:page>
Removes a lock for a wiki page.
diff --git a/bin/striplangs.php b/bin/striplangs.php
index 40cef5063..ac95626c9 100755
--- a/bin/striplangs.php
+++ b/bin/striplangs.php
@@ -127,7 +127,7 @@ if ( $OPTS->has('k') or $OPTS->has('keep') ) {
// ! always enforce 'en' lang when using '--keep' (DW relies on it)
if ( !isset($langs['en']) ) {
- $langs[]='en';
+ $langs[]='en';
}
} elseif ( $OPTS->has('e') or $OPTS->has('english') ) {
// '--english' was specified strip everything besides 'en'
diff --git a/bin/wantedpages.php b/bin/wantedpages.php
index 30171fc15..afcb6b271 100755
--- a/bin/wantedpages.php
+++ b/bin/wantedpages.php
@@ -49,7 +49,7 @@ function dw_dir_filter($entry, $basepath) {
#------------------------------------------------------------------------------
function dw_get_pages($dir) {
- static $trunclen = NULL;
+ static $trunclen = null;
if ( !$trunclen ) {
global $conf;
$trunclen = strlen($conf['datadir'].':');
@@ -92,7 +92,7 @@ function dw_internal_links($page) {
$mid = $ins[1][0];
resolve_pageid($cns,$mid,$exists);
if ( !$exists ) {
- list($mid) = explode('#',$mid); //record pages without hashs
+ list($mid) = explode('#',$mid); //record pages without hashs
$links[] = $mid;
}
}
diff --git a/conf/interwiki.conf b/conf/interwiki.conf
index aba475a0e..28561a4ae 100644
--- a/conf/interwiki.conf
+++ b/conf/interwiki.conf
@@ -34,98 +34,3 @@ go http://www.google.com/search?q={URL}&amp;btnI=lucky
# To support VoIP/SIP links
callto callto://{NAME}
-# Standards from http://usemod.com/intermap.txt follow
-
-AbbeNormal http://www.ourpla.net/cgi-bin/pikie.cgi?
-AcadWiki http://xarch.tu-graz.ac.at/autocad/wiki/
-Acronym http://www.acronymfinder.com/af-query.asp?String=exact&amp;Acronym=
-Advogato http://www.advogato.org/
-AIWiki http://www.ifi.unizh.ch/ailab/aiwiki/aiw.cgi?
-ALife http://news.alife.org/wiki/index.php?
-AndStuff http://andstuff.org/wiki.php?
-Annotation http://bayle.stanford.edu/crit/nph-med.cgi/
-AnnotationWiki http://www.seedwiki.com/page.cfm?wikiid=368&amp;doc=
-AwarenessWiki http://taoriver.net/aware/
-BenefitsWiki http://www.benefitslink.com/cgi-bin/wiki.cgi?
-BridgesWiki http://c2.com/w2/bridges/
-C2find http://c2.com/cgi/wiki?FindPage&amp;value=
-Cache http://www.google.com/search?q=cache:
-CLiki http://ww.telent.net/cliki/
-CmWiki http://www.ourpla.net/cgi-bin/wiki.pl?
-CreationMatters http://www.ourpla.net/cgi-bin/wiki.pl?
-DejaNews http://www.deja.com/=dnc/getdoc.xp?AN=
-DeWikiPedia http://www.wikipedia.de/wiki.cgi?
-Dictionary http://www.dict.org/bin/Dict?Database=*&amp;Form=Dict1&amp;Strategy=*&amp;Query=
-DiveIntoOsx http://diveintoosx.org/
-DocBook http://docbook.org/wiki/moin.cgi/
-DolphinWiki http://www.object-arts.com/wiki/html/Dolphin/
-EfnetCeeWiki http://purl.net/wiki/c/
-EfnetCppWiki http://purl.net/wiki/cpp/
-EfnetPythonWiki http://purl.net/wiki/python/
-EfnetXmlWiki http://purl.net/wiki/xml/
-EljWiki http://elj.sourceforge.net/phpwiki/index.php/
-EmacsWiki http://www.emacswiki.org/cgi-bin/wiki.pl?
-FinalEmpire http://final-empire.sourceforge.net/cgi-bin/wiki.pl?
-Foldoc http://www.foldoc.org/foldoc/foldoc.cgi?
-FoxWiki http://fox.wikis.com/wc.dll?Wiki~
-FreeBSDman http://www.FreeBSD.org/cgi/man.cgi?apropos=1&amp;query=
-Google http://www.google.com/search?q=
-GoogleGroups http://groups.google.com/groups?q=
-GreenCheese http://www.greencheese.org/
-HammondWiki http://www.dairiki.org/HammondWiki/index.php3?
-Haribeau http://wiki.haribeau.de/cgi-bin/wiki.pl?
-IAWiki http://www.IAwiki.net/
-IMDB http://us.imdb.com/Title?
-JargonFile http://sunir.org/apps/meta.pl?wiki=JargonFile&amp;redirect=
-JiniWiki http://www.cdegroot.com/cgi-bin/jini?
-JspWiki http://www.ecyrd.com/JSPWiki/Wiki.jsp?page=
-KmWiki http://www.voght.com/cgi-bin/pywiki?
-KnowHow http://www2.iro.umontreal.ca/~paquetse/cgi-bin/wiki.cgi?
-LanifexWiki http://opt.lanifex.com/cgi-bin/wiki.pl?
-LegoWiki http://www.object-arts.com/wiki/html/Lego-Robotics/
-LinuxWiki http://www.linuxwiki.de/
-LugKR http://lug-kr.sourceforge.net/cgi-bin/lugwiki.pl?
-MathSongsWiki http://SeedWiki.com/page.cfm?wikiid=237&amp;doc=
-MbTest http://www.usemod.com/cgi-bin/mbtest.pl?
-MeatBall http://www.usemod.com/cgi-bin/mb.pl?
-MetaWiki http://sunir.org/apps/meta.pl?
-MetaWikiPedia http://meta.wikipedia.com/wiki/
-MoinMoin http://purl.net/wiki/moin/
-MuWeb http://www.dunstable.com/scripts/MuWebWeb?
-NetVillage http://www.netbros.com/?
-OpenWiki http://openwiki.com/?
-OrgPatterns http://www.bell-labs.com/cgi-user/OrgPatterns/OrgPatterns?
-PangalacticOrg http://www.pangalactic.org/Wiki/
-PersonalTelco http://www.personaltelco.net/index.cgi/
-PhpWiki http://phpwiki.sourceforge.net/phpwiki/index.php?
-Pikie http://pikie.darktech.org/cgi/pikie?
-PPR http://c2.com/cgi/wiki?
-PurlNet http://purl.oclc.org/NET/
-PythonInfo http://www.python.org/cgi-bin/moinmoin/
-PythonWiki http://www.pythonwiki.de/
-PyWiki http://www.voght.com/cgi-bin/pywiki?
-SeaPig http://www.seapig.org/
-SeattleWireless http://seattlewireless.net/?
-SenseisLibrary http://senseis.xmp.net/?
-Shakti http://cgi.algonet.se/htbin/cgiwrap/pgd/ShaktiWiki/
-SourceForge http://sourceforge.net/{NAME}
-Squeak http://minnow.cc.gatech.edu/squeak/
-StrikiWiki http://ch.twi.tudelft.nl/~mostert/striki/teststriki.pl?
-SVGWiki http://www.protocol7.com/svg-wiki/default.asp?
-Tavi http://tavi.sourceforge.net/index.php?
-TmNet http://www.technomanifestos.net/?
-TMwiki http://www.EasyTopicMaps.com/?page=
-TWiki http://twiki.org/cgi-bin/view/{NAME}
-TwistedWiki http://purl.net/wiki/twisted/
-Unreal http://wiki.beyondunreal.com/wiki/
-UseMod http://www.usemod.com/cgi-bin/wiki.pl?
-VisualWorks http://wiki.cs.uiuc.edu/VisualWorks/
-WebDevWikiNL http://www.promo-it.nl/WebDevWiki/index.php?page=
-WebSeitzWiki http://webseitz.fluxent.com/wiki/
-Why http://clublet.com/c/c/why?
-Wiki http://c2.com/cgi/wiki?
-WikiPedia http://www.wikipedia.com/wiki/
-WikiWorld http://WikiWorld.com/wiki/index.php/
-YpsiEyeball http://sknkwrks.dyndns.org:1957/writewiki/wiki.pl?
-ZWiki http://www.zwiki.org/
-
diff --git a/data/deleted.files b/data/deleted.files
index 664086c25..59f1f0ab8 100644
--- a/data/deleted.files
+++ b/data/deleted.files
@@ -1,8 +1,57 @@
# This is a list of files that were present in previous DokuWiki releases
# but were removed later. An up to date DokuWiki should not have any of
# the files installed
-# A copy of this list is maintained at
-# http://www.dokuwiki.org/install:upgrade#files_to_remove
+
+# removed in 2013-10-28
+lib/images/interwiki/meatball.gif
+lib/images/interwiki/wiki.gif
+lib/plugins/acl/ajax.php
+lib/tpl/default/_admin.css
+lib/tpl/default/_fileuploader.css
+lib/tpl/default/_linkwiz.css
+lib/tpl/default/_mediamanager.css
+lib/tpl/default/_mediaoptions.css
+lib/tpl/default/_subscription.css
+lib/tpl/default/_tabs.css
+lib/tpl/default/design.css
+lib/tpl/default/detail.php
+lib/tpl/default/footer.html
+lib/tpl/default/images/UWEB.png
+lib/tpl/default/images/UWEBshadow.png
+lib/tpl/default/images/apple-touch-icon.png
+lib/tpl/default/images/bullet.gif
+lib/tpl/default/images/button-cc.gif
+lib/tpl/default/images/button-css.png
+lib/tpl/default/images/button-donate.gif
+lib/tpl/default/images/button-dw.png
+lib/tpl/default/images/button-php.gif
+lib/tpl/default/images/button-rss.png
+lib/tpl/default/images/button-xhtml.png
+lib/tpl/default/images/buttonshadow.png
+lib/tpl/default/images/closed.gif
+lib/tpl/default/images/favicon.ico
+lib/tpl/default/images/inputshadow.png
+lib/tpl/default/images/link_icon.gif
+lib/tpl/default/images/mail_icon.gif
+lib/tpl/default/images/open.gif
+lib/tpl/default/images/resizecol.png
+lib/tpl/default/images/tocdot2.gif
+lib/tpl/default/images/windows.gif
+lib/tpl/default/layout.css
+lib/tpl/default/main.php
+lib/tpl/default/media.css
+lib/tpl/default/mediamanager.php
+lib/tpl/default/print.css
+lib/tpl/default/rtl.css
+lib/tpl/default/style.ini
+lib/tpl/default/template.info.txt
+lib/tpl/dokuwiki/css/basic.css
+lib/tpl/dokuwiki/css/content.css
+lib/tpl/dokuwiki/css/design.css
+lib/tpl/dokuwiki/css/includes.css
+lib/tpl/dokuwiki/css/mobile.css
+lib/tpl/dokuwiki/css/pagetools.css
+lib/tpl/dokuwiki/css/structure.css
# removed in 2013-05-10
lib/plugins/info/lang/sl/lang.php
diff --git a/doku.php b/doku.php
index 777a68df8..b7d9ec0eb 100644
--- a/doku.php
+++ b/doku.php
@@ -9,7 +9,7 @@
*/
// update message version
-$updateVersion = 40.1;
+$updateVersion = 41;
// xdebug_start_profiling();
diff --git a/feed.php b/feed.php
index 8d1dcea6a..77c8b28df 100644
--- a/feed.php
+++ b/feed.php
@@ -429,19 +429,22 @@ function rss_buildItems(&$rss, &$data, $opt) {
$cat = getNS($id);
if($cat) $item->category = $cat;
}
-
- // finally add the item to the feed object, after handing it to registered plugins
- $evdata = array(
- 'item' => &$item,
- 'opt' => &$opt,
- 'ditem' => &$ditem,
- 'rss' => &$rss
- );
- $evt = new Doku_Event('FEED_ITEM_ADD', $evdata);
- if($evt->advise_before()) {
- $rss->addItem($item);
+
+ // Add only visible items
+ if(isVisiblePage($id)) {
+ // finally add the item to the feed object, after handing it to registered plugins
+ $evdata = array(
+ 'item' => &$item,
+ 'opt' => &$opt,
+ 'ditem' => &$ditem,
+ 'rss' => &$rss
+ );
+ $evt = new Doku_Event('FEED_ITEM_ADD', $evdata);
+ if($evt->advise_before()) {
+ $rss->addItem($item);
+ }
+ $evt->advise_after(); // for completeness
}
- $evt->advise_after(); // for completeness
}
}
$event->advise_after();
diff --git a/inc/DifferenceEngine.php b/inc/DifferenceEngine.php
index 07df7a4be..3c955cf88 100644
--- a/inc/DifferenceEngine.php
+++ b/inc/DifferenceEngine.php
@@ -826,7 +826,7 @@ class DiffFormatter {
* @param $str string Text string to escape
* @return string The escaped string.
*/
- function _escape($str){
+ function _escape($str){
return $str;
}
}
diff --git a/inc/HTTPClient.php b/inc/HTTPClient.php
index b2621bdbb..96954fb47 100644
--- a/inc/HTTPClient.php
+++ b/inc/HTTPClient.php
@@ -553,7 +553,7 @@ class HTTPClient {
}while($r_line != "\r\n" && $r_line != "\n");
$this->_debug('SSL Tunnel Response',$r_headers);
- if(preg_match('/^HTTP\/1\.0 200/i',$r_headers)){
+ if(preg_match('/^HTTP\/1\.[01] 200/i',$r_headers)){
if (stream_socket_enable_crypto($socket, true, STREAM_CRYPTO_METHOD_SSLv3_CLIENT)) {
$requesturl = $requestinfo['path'];
return true;
diff --git a/inc/Input.class.php b/inc/Input.class.php
index 35aecdb45..7434d2b2c 100644
--- a/inc/Input.class.php
+++ b/inc/Input.class.php
@@ -238,7 +238,6 @@ class PostInput extends Input {
/**
* Internal class used for $_GET access in Input class
-
*/
class GetInput extends Input {
protected $access;
diff --git a/inc/JpegMeta.php b/inc/JpegMeta.php
index ba6a2b5bb..cb1772736 100644
--- a/inc/JpegMeta.php
+++ b/inc/JpegMeta.php
@@ -161,7 +161,7 @@ class JpegMeta {
if($info != false) break;
}
- if($info === false) $info = $alt;
+ if($info === false) $info = '';
if(is_array($info)){
if(isset($info['val'])){
$info = $info['val'];
@@ -874,7 +874,7 @@ class JpegMeta {
/*************************************************************/
/*************************************************************/
- function _dispose() {
+ function _dispose($fileName = "") {
$this->_fileName = $fileName;
$this->_fp = null;
@@ -975,7 +975,7 @@ class JpegMeta {
if ($capture) {
if ($length)
- $this->_markers[$count]['data'] =& fread($this->_fp, $length);
+ $this->_markers[$count]['data'] = fread($this->_fp, $length);
else
$this->_markers[$count]['data'] = "";
}
@@ -1452,7 +1452,7 @@ class JpegMeta {
if ($this->_markers[$i]['marker'] == 0xE1) {
$signature = $this->_getFixedString($this->_markers[$i]['data'], 0, 29);
if ($signature == "http://ns.adobe.com/xap/1.0/\0") {
- $data =& substr($this->_markers[$i]['data'], 29);
+ $data = substr($this->_markers[$i]['data'], 29);
break;
}
}
@@ -2183,7 +2183,8 @@ class JpegMeta {
}
while ($j < $count) {
- $this->_putString($value, $j * 4, "\0\0\0\0");
+ $v = "\0\0\0\0";
+ $this->_putString($value, $j * 4, $v);
$j++;
}
break;
@@ -2206,7 +2207,8 @@ class JpegMeta {
}
while ($j < $count) {
- $this->_putString($value, $j * 8, "\0\0\0\0\0\0\0\0");
+ $v = "\0\0\0\0\0\0\0\0";
+ $this->_putString($value, $j * 8, $v);
$j++;
}
break;
@@ -2335,7 +2337,7 @@ class JpegMeta {
function _readIPTC(&$data, $pos = 0) {
$totalLength = strlen($data);
- $IPTCTags =& $this->_iptcTagNames();
+ $IPTCTags = $this->_iptcTagNames();
while ($pos < ($totalLength - 5)) {
$signature = $this->_getShort($data, $pos);
diff --git a/inc/Mailer.class.php b/inc/Mailer.class.php
index 0f3321bb9..186bd531a 100644
--- a/inc/Mailer.class.php
+++ b/inc/Mailer.class.php
@@ -41,9 +41,10 @@ class Mailer {
global $conf;
$server = parse_url(DOKU_URL, PHP_URL_HOST);
+ if(strpos($server,'.') === false) $server = $server.'.localhost';
- $this->partid = md5(uniqid(rand(), true)).'@'.$server;
- $this->boundary = '----------'.md5(uniqid(rand(), true));
+ $this->partid = substr(md5(uniqid(rand(), true)),0, 8).'@'.$server;
+ $this->boundary = '__________'.md5(uniqid(rand(), true));
$listid = join('.', array_reverse(explode('/', DOKU_BASE))).$server;
$listid = strtolower(trim($listid, '.'));
@@ -57,6 +58,7 @@ class Mailer {
$this->setHeader('X-DokuWiki-Server', $server);
$this->setHeader('X-Auto-Response-Suppress', 'OOF');
$this->setHeader('List-Id', $conf['title'].' <'.$listid.'>');
+ $this->setHeader('Date', date('r'), false);
}
/**
@@ -417,6 +419,8 @@ class Mailer {
$part = 1;
// embedded attachments
foreach($this->attach as $media) {
+ $media['name'] = str_replace(':', '_', cleanID($media['name'], true));
+
// create content id
$cid = 'part'.$part.'.'.$this->partid;
@@ -426,13 +430,13 @@ class Mailer {
}
$mime .= '--'.$this->boundary.MAILHEADER_EOL;
- $mime .= 'Content-Type: '.$media['mime'].';'.MAILHEADER_EOL;
- $mime .= 'Content-Transfer-Encoding: base64'.MAILHEADER_EOL;
- $mime .= "Content-ID: <$cid>".MAILHEADER_EOL;
+ $mime .= $this->wrappedHeaderLine('Content-Type', $media['mime'].'; id="'.$cid.'"');
+ $mime .= $this->wrappedHeaderLine('Content-Transfer-Encoding', 'base64');
+ $mime .= $this->wrappedHeaderLine('Content-ID',"<$cid>");
if($media['embed']) {
- $mime .= 'Content-Disposition: inline; filename="'.$media['name'].'"'.MAILHEADER_EOL;
+ $mime .= $this->wrappedHeaderLine('Content-Disposition', 'inline; filename='.$media['name']);
} else {
- $mime .= 'Content-Disposition: attachment; filename="'.$media['name'].'"'.MAILHEADER_EOL;
+ $mime .= $this->wrappedHeaderLine('Content-Disposition', 'attachment; filename='.$media['name']);
}
$mime .= MAILHEADER_EOL; //end of headers
$mime .= chunk_split(base64_encode($media['data']), 74, MAILHEADER_EOL);
@@ -469,7 +473,7 @@ class Mailer {
if(!$this->html && !count($this->attach)) { // we can send a simple single part message
$this->headers['Content-Type'] = 'text/plain; charset=UTF-8';
$this->headers['Content-Transfer-Encoding'] = 'base64';
- $body .= chunk_split(base64_encode($this->text), 74, MAILHEADER_EOL);
+ $body .= chunk_split(base64_encode($this->text), 72, MAILHEADER_EOL);
} else { // multi part it is
$body .= "This is a multi-part message in MIME format.".MAILHEADER_EOL;
@@ -484,10 +488,11 @@ class Mailer {
$body .= 'Content-Type: text/plain; charset=UTF-8'.MAILHEADER_EOL;
$body .= 'Content-Transfer-Encoding: base64'.MAILHEADER_EOL;
$body .= MAILHEADER_EOL;
- $body .= chunk_split(base64_encode($this->text), 74, MAILHEADER_EOL);
+ $body .= chunk_split(base64_encode($this->text), 72, MAILHEADER_EOL);
$body .= '--'.$this->boundary.'XX'.MAILHEADER_EOL;
$body .= 'Content-Type: multipart/related;'.MAILHEADER_EOL.
- ' boundary="'.$this->boundary.'"'.MAILHEADER_EOL;
+ ' boundary="'.$this->boundary.'";'.MAILHEADER_EOL.
+ ' type="text/html"'.MAILHEADER_EOL;
$body .= MAILHEADER_EOL;
}
@@ -495,7 +500,7 @@ class Mailer {
$body .= 'Content-Type: text/html; charset=UTF-8'.MAILHEADER_EOL;
$body .= 'Content-Transfer-Encoding: base64'.MAILHEADER_EOL;
$body .= MAILHEADER_EOL;
- $body .= chunk_split(base64_encode($this->html), 74, MAILHEADER_EOL);
+ $body .= chunk_split(base64_encode($this->html), 72, MAILHEADER_EOL);
$body .= MAILHEADER_EOL;
$body .= $attachments;
$body .= '--'.$this->boundary.'--'.MAILHEADER_EOL;
@@ -550,10 +555,17 @@ class Mailer {
}
}
- // wrap headers
- foreach($this->headers as $key => $val) {
- $this->headers[$key] = wordwrap($val, 78, MAILHEADER_EOL.' ');
- }
+ }
+
+ /**
+ * Returns a complete, EOL terminated header line, wraps it if necessary
+ *
+ * @param $key
+ * @param $val
+ * @return string
+ */
+ protected function wrappedHeaderLine($key, $val){
+ return wordwrap("$key: $val", 78, MAILHEADER_EOL.' ').MAILHEADER_EOL;
}
/**
@@ -565,7 +577,7 @@ class Mailer {
$headers = '';
foreach($this->headers as $key => $val) {
if ($val === '') continue;
- $headers .= "$key: $val".MAILHEADER_EOL;
+ $headers .= $this->wrappedHeaderLine($key, $val);
}
return $headers;
}
diff --git a/inc/RemoteAPICore.php b/inc/RemoteAPICore.php
index 4c940b39e..74c6689ac 100644
--- a/inc/RemoteAPICore.php
+++ b/inc/RemoteAPICore.php
@@ -333,7 +333,6 @@ class RemoteAPICore {
if (!is_array($options)) $options = array();
$options['skipacl'] = 0; // no ACL skipping for XMLRPC
-
if(auth_quickaclcheck($ns.':*') >= AUTH_READ) {
$dir = utf8_encodeFN(str_replace(':', '/', $ns));
@@ -506,8 +505,8 @@ class RemoteAPICore {
}
/**
- * Returns the permissions of a given wiki page
- */
+ * Returns the permissions of a given wiki page
+ */
function aclCheck($id) {
$id = $this->resolvePageId($id);
return auth_quickaclcheck($id);
@@ -772,7 +771,7 @@ class RemoteAPICore {
$id = cleanID($id);
if(empty($id)) {
global $conf;
- $id = cleanID($conf['start']);
+ $id = cleanID($conf['start']);
}
return $id;
}
diff --git a/inc/SimplePie.php b/inc/SimplePie.php
index fd69b4b09..8a9060509 100644
--- a/inc/SimplePie.php
+++ b/inc/SimplePie.php
@@ -16579,7 +16579,11 @@ class SimplePie_Sanitize
if ($type & (SIMPLEPIE_CONSTRUCT_HTML | SIMPLEPIE_CONSTRUCT_XHTML))
{
-
+ if (!class_exists('DOMDocument'))
+ {
+ $this->registry->call('Misc', 'error', array('DOMDocument not found, unable to use sanitizer', E_USER_WARNING, __FILE__, __LINE__));
+ return '';
+ }
$document = new DOMDocument();
$document->encoding = 'UTF-8';
$data = $this->preprocess($data, $type);
diff --git a/inc/actions.php b/inc/actions.php
index bf124c887..5a59d852d 100644
--- a/inc/actions.php
+++ b/inc/actions.php
@@ -164,7 +164,8 @@ function act_dispatch(){
$pluginlist = plugin_list('admin');
if (in_array($page, $pluginlist)) {
// attempt to load the plugin
- if ($plugin =& plugin_load('admin',$page) !== null){
+
+ if (($plugin = plugin_load('admin',$page)) !== null){
/** @var DokuWiki_Admin_Plugin $plugin */
if($plugin->forAdminOnly() && !$INFO['isadmin']){
// a manager tried to load a plugin that's for admins only
diff --git a/inc/auth.php b/inc/auth.php
index 1c0bf5b4f..b793f5d12 100644
--- a/inc/auth.php
+++ b/inc/auth.php
@@ -48,15 +48,15 @@ function auth_setup() {
// try to load auth backend from plugins
foreach ($plugin_controller->getList('auth') as $plugin) {
- if ($conf['authtype'] === $plugin) {
- $auth = $plugin_controller->load('auth', $plugin);
- break;
- } elseif ('auth' . $conf['authtype'] === $plugin) {
- // matches old auth backends (pre-Weatherwax)
- $auth = $plugin_controller->load('auth', $plugin);
- msg('Your authtype setting is deprecated. You must set $conf[\'authtype\'] = "auth' . $conf['authtype'] . '"'
- . ' in your configuration (see <a href="https://www.dokuwiki.org/auth">Authentication Backends</a>)',-1,'','',MSG_ADMINS_ONLY);
- }
+ if ($conf['authtype'] === $plugin) {
+ $auth = $plugin_controller->load('auth', $plugin);
+ break;
+ } elseif ('auth' . $conf['authtype'] === $plugin) {
+ // matches old auth backends (pre-Weatherwax)
+ $auth = $plugin_controller->load('auth', $plugin);
+ msg('Your authtype setting is deprecated. You must set $conf[\'authtype\'] = "auth' . $conf['authtype'] . '"'
+ . ' in your configuration (see <a href="https://www.dokuwiki.org/auth">Authentication Backends</a>)',-1,'','',MSG_ADMINS_ONLY);
+ }
}
if(!isset($auth) || !$auth){
@@ -65,10 +65,10 @@ function auth_setup() {
}
if ($auth->success == false) {
- // degrade to unauthenticated user
- unset($auth);
- auth_logoff();
- msg($lang['authtempfail'], -1);
+ // degrade to unauthenticated user
+ unset($auth);
+ auth_logoff();
+ msg($lang['authtempfail'], -1);
return false;
}
@@ -139,10 +139,10 @@ function auth_loadACL() {
$out = array();
foreach($acl as $line) {
$line = trim($line);
- if($line{0} == '#') continue;
- list($id,$rest) = preg_split('/\s+/',$line,2);
+ if(empty($line) || ($line{0} == '#')) continue; // skip blank lines & comments
+ list($id,$rest) = preg_split('/[ \t]+/',$line,2);
- // substitue user wildcard first (its 1:1)
+ // substitute user wildcard first (its 1:1)
if(strstr($line, '%USER%')){
// if user is not logged in, this ACL line is meaningless - skip it
if (!isset($_SERVER['REMOTE_USER'])) continue;
@@ -391,7 +391,6 @@ function auth_randombytes($length) {
}
}
-
// If no strong randoms available, try OS the specific ways
if(!$strong) {
// Unix/Linux platform
@@ -717,11 +716,11 @@ function auth_aclcheck($id, $user, $groups) {
}
//check exact match first
- $matches = preg_grep('/^'.preg_quote($id, '/').'\s+(\S+)\s+/u', $AUTH_ACL);
+ $matches = preg_grep('/^'.preg_quote($id, '/').'[ \t]+([^ \t]+)[ \t]+/', $AUTH_ACL);
if(count($matches)) {
foreach($matches as $match) {
$match = preg_replace('/#.*$/', '', $match); //ignore comments
- $acl = preg_split('/\s+/', $match);
+ $acl = preg_split('/[ \t]+/', $match);
if(!$auth->isCaseSensitive() && $acl[1] !== '@ALL') {
$acl[1] = utf8_strtolower($acl[1]);
}
@@ -747,11 +746,11 @@ function auth_aclcheck($id, $user, $groups) {
}
do {
- $matches = preg_grep('/^'.preg_quote($path, '/').'\s+(\S+)\s+/u', $AUTH_ACL);
+ $matches = preg_grep('/^'.preg_quote($path, '/').'[ \t]+([^ \t]+)[ \t]+/', $AUTH_ACL);
if(count($matches)) {
foreach($matches as $match) {
$match = preg_replace('/#.*$/', '', $match); //ignore comments
- $acl = preg_split('/\s+/', $match);
+ $acl = preg_split('/[ \t]+/', $match);
if(!$auth->isCaseSensitive() && $acl[1] !== '@ALL') {
$acl[1] = utf8_strtolower($acl[1]);
}
@@ -809,14 +808,14 @@ function auth_nameencode($name, $skip_group = false) {
if(!isset($cache[$name][$skip_group])) {
if($skip_group && $name{0} == '@') {
- $cache[$name][$skip_group] = '@'.preg_replace(
- '/([\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f])/e',
- "'%'.dechex(ord(substr('\\1',-1)))", substr($name, 1)
+ $cache[$name][$skip_group] = '@'.preg_replace_callback(
+ '/([\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f])/',
+ 'auth_nameencode_callback', substr($name, 1)
);
} else {
- $cache[$name][$skip_group] = preg_replace(
- '/([\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f])/e',
- "'%'.dechex(ord(substr('\\1',-1)))", $name
+ $cache[$name][$skip_group] = preg_replace_callback(
+ '/([\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f])/',
+ 'auth_nameencode_callback', $name
);
}
}
@@ -824,6 +823,10 @@ function auth_nameencode($name, $skip_group = false) {
return $cache[$name][$skip_group];
}
+function auth_nameencode_callback($matches) {
+ return '%'.dechex(ord(substr($matches[1],-1)));
+}
+
/**
* Create a pronouncable password
*
@@ -1061,7 +1064,7 @@ function auth_deleteprofile(){
if(!$INPUT->post->bool('delete')) return false;
if(!checkSecurityToken()) return false;
- // action prevented or auth module disallows
+ // action prevented or auth module disallows
if(!actionOK('profile_delete') || !$auth->canDo('delUser')) {
msg($lang['profnodelete'], -1);
return false;
diff --git a/inc/changelog.php b/inc/changelog.php
index 9768fea51..6ff1e0eca 100644
--- a/inc/changelog.php
+++ b/inc/changelog.php
@@ -460,6 +460,8 @@ function getRevisions($id, $first, $num, $chunk_size=8192, $media=false) {
$file = metaFN($id, '.changes');
}
$num = max($num, 0);
+ if ($num == 0) { return $revs; }
+
$chunk_size = max($chunk_size, 0);
if ($first<0) {
$first = 0;
diff --git a/inc/common.php b/inc/common.php
index 3312141c8..32771285b 100644
--- a/inc/common.php
+++ b/inc/common.php
@@ -64,7 +64,7 @@ function getSecurityToken() {
*/
function checkSecurityToken($token = null) {
global $INPUT;
- if(!$_SERVER['REMOTE_USER']) return true; // no logged in user, no need for a check
+ if(empty($_SERVER['REMOTE_USER'])) return true; // no logged in user, no need for a check
if(is_null($token)) $token = $INPUT->str('sectok');
if(getSecurityToken() != $token) {
@@ -474,13 +474,13 @@ function ml($id = '', $more = '', $direct = true, $sep = '&amp;', $abs = false)
if(is_array($more)) {
// add token for resized images
- if($more['w'] || $more['h'] || $isexternalimage){
+ if(!empty($more['w']) || !empty($more['h']) || $isexternalimage){
$more['tok'] = media_get_token($id,$more['w'],$more['h']);
}
// strip defaults for shorter URLs
if(isset($more['cache']) && $more['cache'] == 'cache') unset($more['cache']);
- if(!$more['w']) unset($more['w']);
- if(!$more['h']) unset($more['h']);
+ if(empty($more['w'])) unset($more['w']);
+ if(empty($more['h'])) unset($more['h']);
if(isset($more['id']) && $direct) unset($more['id']);
$more = buildURLparams($more, $sep);
} else {
@@ -1625,7 +1625,8 @@ function set_doku_pref($pref, $val) {
}
if (!empty($cookieVal)) {
- setcookie('DOKU_PREFS', $cookieVal, time()+365*24*3600, DOKU_BASE, '', ($conf['securecookie'] && is_ssl()));
+ $cookieDir = empty($conf['cookiedir']) ? DOKU_REL : $conf['cookiedir'];
+ setcookie('DOKU_PREFS', $cookieVal, time()+365*24*3600, $cookieDir, '', ($conf['securecookie'] && is_ssl()));
}
}
diff --git a/inc/compatibility.php b/inc/compatibility.php
new file mode 100644
index 000000000..ae780e5ac
--- /dev/null
+++ b/inc/compatibility.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * compatibility functions
+ *
+ * This file contains a few functions that might be missing from the PHP build
+ */
+
+if(!function_exists('ctype_space')) {
+ /**
+ * Check for whitespace character(s)
+ *
+ * @see ctype_space
+ * @param string $text
+ * @return bool
+ */
+ function ctype_space($text) {
+ if(!is_string($text)) return false; #FIXME original treats between -128 and 255 inclusive as ASCII chars
+ if(trim($text) === '') return true;
+ return false;
+ }
+}
+
+if(!function_exists('ctype_digit')) {
+ /**
+ * Check for numeric character(s)
+ *
+ * @see ctype_digit
+ * @param string $text
+ * @return bool
+ */
+ function ctype_digit($text) {
+ if(!is_string($text)) return false; #FIXME original treats between -128 and 255 inclusive as ASCII chars
+ if(preg_match('/^\d+$/', $text)) return true;
+ return false;
+ }
+} \ No newline at end of file
diff --git a/inc/farm.php b/inc/farm.php
index 54fff3ec6..54692928d 100644
--- a/inc/farm.php
+++ b/inc/farm.php
@@ -20,7 +20,7 @@
* @author virtual host part of farm_confpath() based on conf_path() from Drupal.org's /includes/bootstrap.inc
* (see https://github.com/drupal/drupal/blob/7.x/includes/bootstrap.inc#L537)
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
-*/
+ */
// DOKU_FARMDIR needs to be set in preload.php, here the fallback is the same as DOKU_INC would be (if it was set already)
if(!defined('DOKU_FARMDIR')) define('DOKU_FARMDIR', fullpath(dirname(__FILE__).'/../').'/');
diff --git a/inc/fulltext.php b/inc/fulltext.php
index c03126994..bd8e6b866 100644
--- a/inc/fulltext.php
+++ b/inc/fulltext.php
@@ -395,7 +395,6 @@ function ft_snippet_re_preprocess($term) {
$BR = '\b';
}
-
if(substr($term,0,2) == '\\*'){
$term = substr($term,2);
}else{
diff --git a/inc/html.php b/inc/html.php
index a2a726406..bbe29e371 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -428,7 +428,7 @@ function html_revisions($first=0, $media_id = false){
global $conf;
global $lang;
$id = $ID;
- /* we need to get one additionally log entry to be able to
+ /* we need to get one additional log entry to be able to
* decide if this is the last page or is there another one.
* see html_recent()
*/
@@ -1240,20 +1240,20 @@ function html_diff($text='',$intro=true,$type=null){
}
function html_insert_softbreaks($diffhtml) {
- // search the diff html string for both:
- // - html tags, so these can be ignored
- // - long strings of characters without breaking characters
- return preg_replace_callback('/<[^>]*>|[^<> ]{12,}/','html_softbreak_callback',$diffhtml);
+ // search the diff html string for both:
+ // - html tags, so these can be ignored
+ // - long strings of characters without breaking characters
+ return preg_replace_callback('/<[^>]*>|[^<> ]{12,}/','html_softbreak_callback',$diffhtml);
}
function html_softbreak_callback($match){
- // if match is an html tag, return it intact
- if ($match[0]{0} == '<') return $match[0];
+ // if match is an html tag, return it intact
+ if ($match[0]{0} == '<') return $match[0];
- // its a long string without a breaking character,
- // make certain characters into breaking characters by inserting a
- // breaking character (zero length space, U+200B / #8203) in front them.
- $regex = <<< REGEX
+ // its a long string without a breaking character,
+ // make certain characters into breaking characters by inserting a
+ // breaking character (zero length space, U+200B / #8203) in front them.
+ $regex = <<< REGEX
(?(?= # start a conditional expression with a positive look ahead ...
&\#?\\w{1,6};) # ... for html entities - we don't want to split them (ok to catch some invalid combinations)
&\#?\\w{1,6}; # yes pattern - a quicker match for the html entity, since we know we have one
@@ -1262,7 +1262,7 @@ function html_softbreak_callback($match){
)+ # end conditional expression
REGEX;
- return preg_replace('<'.$regex.'>xu','\0&#8203;',$match[0]);
+ return preg_replace('<'.$regex.'>xu','\0&#8203;',$match[0]);
}
/**
@@ -1661,7 +1661,7 @@ function html_admin(){
global $ID;
global $INFO;
global $conf;
- /** @var auth_basic $auth */
+ /** @var DokuWiki_Auth_Plugin $auth */
global $auth;
// build menu of admin functions from the plugins that handle them
@@ -1669,7 +1669,7 @@ function html_admin(){
$menu = array();
foreach ($pluginlist as $p) {
/** @var DokuWiki_Admin_Plugin $obj */
- if($obj =& plugin_load('admin',$p) === null) continue;
+ if(($obj = plugin_load('admin',$p)) === null) continue;
// check permissions
if($obj->forAdminOnly() && !$INFO['isadmin']) continue;
diff --git a/inc/indexer.php b/inc/indexer.php
index 8f0ba7ec6..658fb966b 100644
--- a/inc/indexer.php
+++ b/inc/indexer.php
@@ -10,7 +10,7 @@
if(!defined('DOKU_INC')) die('meh.');
// Version tag used to force rebuild on upgrade
-define('INDEXER_VERSION', 6);
+define('INDEXER_VERSION', 7);
// set the minimum token length to use in the index (note, this doesn't apply to numeric tokens)
if (!defined('IDX_MINWORDLENGTH')) define('IDX_MINWORDLENGTH',2);
@@ -215,7 +215,7 @@ class Doku_Indexer {
foreach (array_keys($words) as $wlen) {
$word_idx = $this->getIndex('w', $wlen);
foreach ($words[$wlen] as $word => $freq) {
- $wid = array_search($word, $word_idx);
+ $wid = array_search($word, $word_idx, true);
if ($wid === false) {
$wid = count($word_idx);
$word_idx[] = $word;
@@ -296,7 +296,7 @@ class Doku_Indexer {
foreach ($values as $val) {
$val = (string)$val;
if ($val !== "") {
- $id = array_search($val, $metawords);
+ $id = array_search($val, $metawords, true);
if ($id === false) {
$id = count($metawords);
$metawords[$id] = $val;
@@ -352,13 +352,13 @@ class Doku_Indexer {
$pages = $this->getPages();
- $id = array_search($oldpage, $pages);
+ $id = array_search($oldpage, $pages, true);
if ($id === false) {
$this->unlock();
return 'page is not in index';
}
- $new_id = array_search($newpage, $pages);
+ $new_id = array_search($newpage, $pages, true);
if ($new_id !== false) {
// make sure the page is not in the index anymore
if ($this->deletePageNoLock($newpage) !== true) {
@@ -397,9 +397,9 @@ class Doku_Indexer {
// change the relation references index
$metavalues = $this->getIndex($key, '_w');
- $oldid = array_search($oldvalue, $metavalues);
+ $oldid = array_search($oldvalue, $metavalues, true);
if ($oldid !== false) {
- $newid = array_search($newvalue, $metavalues);
+ $newid = array_search($newvalue, $metavalues, true);
if ($newid !== false) {
// free memory
unset ($metavalues);
@@ -600,7 +600,7 @@ class Doku_Indexer {
foreach ($wordlist as $i => $word) {
if ((!is_numeric($word) && strlen($word) < IDX_MINWORDLENGTH)
- || array_search($word, $stopwords) !== false)
+ || array_search($word, $stopwords, true) !== false)
unset($wordlist[$i]);
}
return array_values($wordlist);
@@ -771,7 +771,7 @@ class Doku_Indexer {
foreach(array_keys(preg_grep('/'.$re.'/', $words)) as $i)
$value_ids[$i][] = $val;
} else {
- if (($i = array_search($val, $words)) !== false)
+ if (($i = array_search($val, $words, true)) !== false)
$value_ids[$i][] = $val;
}
}
@@ -874,7 +874,7 @@ class Doku_Indexer {
// handle exact search
if (isset($tokenlength[$ixlen])) {
foreach ($tokenlength[$ixlen] as $xword) {
- $wid = array_search($xword, $word_idx);
+ $wid = array_search($xword, $word_idx, true);
if ($wid !== false) {
$wids[$ixlen][] = $wid;
foreach ($tokens[$xword] as $w)
@@ -1017,8 +1017,9 @@ class Doku_Indexer {
return false;
}
}
- if ($conf['dperm'])
+ if (!empty($conf['dperm'])) {
chmod($lock, $conf['dperm']);
+ }
return $status;
}
@@ -1152,7 +1153,7 @@ class Doku_Indexer {
*/
protected function addIndexKey($idx, $suffix, $value) {
$index = $this->getIndex($idx, $suffix);
- $id = array_search($value, $index);
+ $id = array_search($value, $index, true);
if ($id === false) {
$id = count($index);
$index[$id] = $value;
diff --git a/inc/infoutils.php b/inc/infoutils.php
index 71e642995..7358955a0 100644
--- a/inc/infoutils.php
+++ b/inc/infoutils.php
@@ -26,13 +26,13 @@ function checkUpdateMessages(){
// check if new messages needs to be fetched
if($lm < time()-(60*60*24) || $lm < @filemtime(DOKU_INC.DOKU_SCRIPT)){
@touch($cf);
- dbglog("checkUpdatesMessages(): downloading messages.txt");
+ dbglog("checkUpdateMessages(): downloading messages.txt");
$http = new DokuHTTPClient();
$http->timeout = 12;
$data = $http->get(DOKU_MESSAGEURL.$updateVersion);
io_saveFile($cf,$data);
}else{
- dbglog("checkUpdatesMessages(): messages.txt up to date");
+ dbglog("checkUpdateMessages(): messages.txt up to date");
$data = io_readFile($cf);
}
@@ -193,7 +193,6 @@ function check(){
msg('Valid locale '.hsc($loc).' found.', 1);
}
-
if($conf['allowdebug']){
msg('Debugging support is enabled. If you don\'t need it you should set $conf[\'allowdebug\'] = 0',-1);
}else{
diff --git a/inc/init.php b/inc/init.php
index 30eb1b251..a937b934d 100644
--- a/inc/init.php
+++ b/inc/init.php
@@ -267,10 +267,10 @@ function init_lang($langCode) {
$lang = array();
//load the language files
- require_once(DOKU_INC.'inc/lang/en/lang.php');
+ require(DOKU_INC.'inc/lang/en/lang.php');
if ($langCode && $langCode != 'en') {
if (file_exists(DOKU_INC."inc/lang/$langCode/lang.php")) {
- require_once(DOKU_INC."inc/lang/$langCode/lang.php");
+ require(DOKU_INC."inc/lang/$langCode/lang.php");
}
}
}
@@ -288,7 +288,7 @@ function init_files(){
$fh = @fopen($file,'a');
if($fh){
fclose($fh);
- if($conf['fperm']) chmod($file, $conf['fperm']);
+ if(!empty($conf['fperm'])) chmod($file, $conf['fperm']);
}else{
nice_die("$file is not writable. Check your permissions settings!");
}
diff --git a/inc/io.php b/inc/io.php
index 4bd7c3364..eff0279ac 100644
--- a/inc/io.php
+++ b/inc/io.php
@@ -393,7 +393,7 @@ function io_mkdir_p($target){
return io_mkdir_ftp($dir);
}else{
$ret = @mkdir($target,$conf['dmode']); // crawl back up & create dir tree
- if($ret && $conf['dperm']) chmod($target, $conf['dperm']);
+ if($ret && !empty($conf['dperm'])) chmod($target, $conf['dperm']);
return $ret;
}
}
diff --git a/inc/lang/af/lang.php b/inc/lang/af/lang.php
index ab8e5177b..826fda6e8 100644
--- a/inc/lang/af/lang.php
+++ b/inc/lang/af/lang.php
@@ -24,7 +24,6 @@ $lang['btn_logout'] = 'Teken uit';
$lang['btn_back'] = 'Terug';
$lang['btn_backlink'] = 'Wat skakel hierheen';
$lang['btn_subscribe'] = 'Hou bladsy dop';
-$lang['btn_unsubscribe'] = 'Verwyder van bladsy dophoulys';
$lang['btn_register'] = 'Skep gerus \'n rekening';
$lang['loggedinas'] = 'Ingeteken as';
$lang['user'] = 'Gebruikernaam';
diff --git a/inc/lang/ar/lang.php b/inc/lang/ar/lang.php
index 5b72e0a51..fdb407da0 100644
--- a/inc/lang/ar/lang.php
+++ b/inc/lang/ar/lang.php
@@ -1,12 +1,13 @@
<?php
+
/**
- * Arabic language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Mostafa Hussein <mostafa@gmail.com>
* @author Yaman Hokan <always.smile.yh@hotmail.com>
* @author Usama Akkad <uahello@gmail.com>
* @author uahello@gmail.com
+ * @author Ahmad Abd-Elghany <tolpa1@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'rtl';
@@ -50,6 +51,7 @@ $lang['btn_revert'] = 'استعد';
$lang['btn_register'] = 'سجّل';
$lang['btn_apply'] = 'طبق';
$lang['btn_media'] = 'مدير الوسائط';
+$lang['btn_deleteuser'] = 'احذف حسابي الخاص';
$lang['loggedinas'] = 'داخل باسم';
$lang['user'] = 'اسم المستخدم';
$lang['pass'] = 'كلمة السر';
@@ -61,6 +63,7 @@ $lang['fullname'] = 'الاسم الحقيقي';
$lang['email'] = 'البريد الإلكتروني';
$lang['profile'] = 'الملف الشخصي';
$lang['badlogin'] = 'عذرا، اسم المشترك أو كلمة السر غير صحيحة';
+$lang['badpassconfirm'] = 'عذراً,كلمة السر غير صحيحة';
$lang['minoredit'] = 'تعديلات طفيفة';
$lang['draftdate'] = 'حفظ المسودات آليا مفعّل';
$lang['nosecedit'] = 'غُيرت الصفحة في هذه الأثناء، معلومات الجزء اصبحت قديمة. حُمُلت كل الصفحة بدلا.';
@@ -77,6 +80,11 @@ $lang['profna'] = 'هذه الويكي لا تدعم تعديل
$lang['profnochange'] = 'لا تغييرات، لا شيء ليُعمل.';
$lang['profnoempty'] = 'غير مسموح باسم مستخدم أو بريد فارغ.';
$lang['profchanged'] = 'حُدث الملف الشخصي للمستخدم بنجاح.';
+$lang['profnodelete'] = 'هذه الموسوعه لا ندعم حذف الأشخاص';
+$lang['profdeleteuser'] = 'احذف حساب';
+$lang['profdeleted'] = 'حسابك الخاص تم حذفه من هذه الموسوعة';
+$lang['profconfdelete'] = 'أنا أرغب في حذف حسابي من هذه الموسوعة.<br/>
+هذا الحدث غير ممكن.';
$lang['pwdforget'] = 'أنسيت كلمة السر؟ احصل على واحدة جديدة';
$lang['resendna'] = 'هذه الويكي لا تدعم إعادة إرسال كلمة المرور.';
$lang['resendpwd'] = 'اضبط كلمة سر جديدة لـ';
@@ -258,7 +266,6 @@ $lang['subscr_m_unsubscribe'] = 'ألغ الاشتراك';
$lang['subscr_m_subscribe'] = 'اشترك';
$lang['subscr_m_receive'] = 'استقبال';
$lang['subscr_style_every'] = 'بريدا على كل تغيير';
-$lang['authmodfailed'] = 'إعدادات تصريح فاسدة، يرجى مراسلة المدير.';
$lang['authtempfail'] = 'تصريح المشترك غير متوفر مؤقتاً، إن استمرت هذه الحالة يرجى مراسلة المدير';
$lang['authpwdexpire'] = 'ستنتهي صلاحية كلمة السر في %d . عليك بتغييرها سريعا.';
$lang['i_chooselang'] = 'اختر لغتك';
diff --git a/inc/lang/az/lang.php b/inc/lang/az/lang.php
index 5084d9f60..df54b4f10 100644
--- a/inc/lang/az/lang.php
+++ b/inc/lang/az/lang.php
@@ -37,7 +37,6 @@ $lang['btn_back'] = 'Geri';
$lang['btn_backlink'] = 'Bura olan link-lər';
$lang['btn_backtomedia'] = 'media-fayl seçiminə qayıt';
$lang['btn_subscribe'] = 'Abunə ol (bütün dəyişiklər)';
-$lang['btn_unsubscribe'] = 'Abunəlikdən çıx (bütün dəyişiklər)';
$lang['btn_profile'] = 'Profil';
$lang['btn_reset'] = 'Boşalt';
$lang['btn_draft'] = 'Qaralamada düzəliş etmək';
@@ -89,7 +88,6 @@ $lang['txt_overwrt'] = 'Mövcud olan faylın üstündən yaz';
$lang['lockedby'] = 'В данный момент заблокирован Bu an blokdadır';
$lang['lockexpire'] = 'Blok bitir:';
$lang['js']['willexpire'] = 'Sizin bu səhifədə dəyişik etmək üçün blokunuz bir dəqiqə ərzində bitəcək.\nMünaqişələrdən yayınmaq və blokun taymerini sıfırlamaq üçün, baxış düyməsini sıxın.';
-$lang['notsavedyet'] = 'Yaddaşa yazılmamış dəyişiklər itəcəklər.\nSiz davam etmək istəyirsiz?';
$lang['rssfailed'] = 'Aşağıda göstərilmiş xəbər lentini əldə edən zaman xəta baş verdi: ';
$lang['nothingfound'] = 'Heçnə tapılmadı.';
$lang['mediaselect'] = 'Mediya-faylın seçilməsi';
@@ -185,12 +183,6 @@ $lang['img_copyr'] = 'Müəllif hüquqları';
$lang['img_format'] = 'Format';
$lang['img_camera'] = 'Model';
$lang['img_keywords'] = 'Açar sözlər';
-$lang['subscribe_success'] = '%s adlı istifadəçi %s səhifənin paylanma siyahısına əlavə olundu';
-$lang['subscribe_error'] = '%s adlı istifadəçini %s səhifənin paylanma siyahısına əlavə etmə zamanı səhv baş verdi';
-$lang['subscribe_noaddress'] = 'Sizin profilinizdə e-mail göstərilməyib.Ona görə siz paylnma siyahılarına əlavə edilə bilməzsiniz.';
-$lang['unsubscribe_success'] = '%s adlı istifadəçi %s səhifənin paylanma siyahısından silinmişdir';
-$lang['unsubscribe_error'] = '%s adlı istifadəçini %s səhifənin paylanma siyahısından silən zaman xəta baş verdi.';
-$lang['authmodfailed'] = 'İstifadəçinin autentifikasiyasının konfiqurasiyası səhfdir. Xaiş olunur ki wiki-nin administratoru ilə əlaqə saxlayasınız.';
$lang['authtempfail'] = 'İstifadəçilərin autentifikasiyası müvəqqəti dayandırılıb. Əgər bu problem uzun müddət davam edir sə, administrator ilə əlaqə saxlayın.';
$lang['i_chooselang'] = 'Dili seçin/Language';
$lang['i_installer'] = 'DokuWiki quraşdırılır';
diff --git a/inc/lang/bg/lang.php b/inc/lang/bg/lang.php
index f356955cb..e909980db 100644
--- a/inc/lang/bg/lang.php
+++ b/inc/lang/bg/lang.php
@@ -279,7 +279,6 @@ $lang['subscr_style_digest'] = 'на ел. писмо с обобщение н
$lang['subscr_style_list'] = 'на списък с променените страници от последното ел. писмо (всеки %.2f дни)';
/* auth.class language support */
-$lang['authmodfailed'] = 'Лоша настройки за удостоверяване. Моля, уведомете администратора на Wiki страницата.';
$lang['authtempfail'] = 'Удостоверяването на потребители не е възможно за момента. Ако продължи дълго, моля уведомете администратора на Wiki страницата.';
$lang['authpwdexpire'] = 'Срока на паролата ви ще изтече след %d дни. Препорачително е да я смените по-скоро.';
diff --git a/inc/lang/ca-valencia/lang.php b/inc/lang/ca-valencia/lang.php
index b7f322796..9ab423783 100644
--- a/inc/lang/ca-valencia/lang.php
+++ b/inc/lang/ca-valencia/lang.php
@@ -38,7 +38,6 @@ $lang['btn_back'] = 'Arrere';
$lang['btn_backlink'] = 'Vínculs remitents';
$lang['btn_backtomedia'] = 'Tornar a la selecció d\'archius de mijos';
$lang['btn_subscribe'] = 'Subscriure\'s a la pàgina';
-$lang['btn_unsubscribe'] = 'Desubscriure\'s de la pàgina';
$lang['btn_profile'] = 'Actualisar perfil';
$lang['btn_reset'] = 'Reiniciar';
$lang['btn_draft'] = 'Editar borrador';
@@ -186,12 +185,6 @@ $lang['img_copyr'] = 'Copyright';
$lang['img_format'] = 'Format';
$lang['img_camera'] = 'Càmara';
$lang['img_keywords'] = 'Paraules clau';
-$lang['subscribe_success'] = '%s afegit a la llista de subscripció per a %s';
-$lang['subscribe_error'] = 'Erro afegint a %s a la llista de subscripció per a %s';
-$lang['subscribe_noaddress'] = 'No hi ha cap direcció associada a la sessió, no es pot subscriure';
-$lang['unsubscribe_success'] = '%s borrat de la llista de subscripció per a %s';
-$lang['unsubscribe_error'] = 'Erro borrant a %s de la llista de subscripció per a %s';
-$lang['authmodfailed'] = 'Mala configuració de l\'autenticació d\'usuari. Per favor, informe a l\'administrador del Wiki.';
$lang['authtempfail'] = 'L\'autenticació d\'usuaris està desactivada temporalment. Si la situació persistix, per favor, informe a l\'administrador del Wiki.';
$lang['i_chooselang'] = 'Trie l\'idioma';
$lang['i_installer'] = 'Instalador de DokuWiki';
@@ -222,7 +215,7 @@ $lang['i_retry'] = 'Reintentar';
$lang['recent_global'] = 'Està veent els canvis dins de l\'espai de noms <b>%s</b>. També pot <a href="%s">vore els canvis recents en el wiki sancer</a>.';
$lang['years'] = 'fa %d anys';
$lang['months'] = 'fa %d mesos';
-$lang['weeks'] = 'fa %s semanes';
+$lang['weeks'] = 'fa %d semanes';
$lang['days'] = 'fa %d dies';
$lang['hours'] = 'fa %d hores';
$lang['minutes'] = 'fa %d minuts';
diff --git a/inc/lang/ca/lang.php b/inc/lang/ca/lang.php
index a429dc06a..fd19c6834 100644
--- a/inc/lang/ca/lang.php
+++ b/inc/lang/ca/lang.php
@@ -257,7 +257,6 @@ $lang['subscr_m_receive'] = 'Rebre';
$lang['subscr_style_every'] = 'Envia\'m un correu electrònic per a cada canvi';
$lang['subscr_style_digest'] = 'Envia\'m un correu electrònic amb un resum dels canvis per a cada pàgina (cada %.2f dies)';
$lang['subscr_style_list'] = 'llistat de pàgines canviades des de l\'últim correu electrònic (cada %.2f dies)';
-$lang['authmodfailed'] = 'La configuració de l\'autenticació d\'usuaris és errònia. Informeu els administradors del wiki.';
$lang['authtempfail'] = 'L\'autenticació d\'usuaris no està disponible temporalment. Si aquesta situació persisteix, si us plau informeu els administradors del wiki.';
$lang['authpwdexpire'] = 'La vostra contrasenya caducarà en %d dies, l\'hauríeu de canviar aviat.';
$lang['i_chooselang'] = 'Trieu l\'idioma';
diff --git a/inc/lang/cs/lang.php b/inc/lang/cs/lang.php
index c01b72a1b..56ffd91de 100644
--- a/inc/lang/cs/lang.php
+++ b/inc/lang/cs/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Czech language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Bohumir Zamecnik <bohumir@zamecnik.org>
* @author Tomas Valenta <t.valenta@sh.cvut.cz>
* @author Tomas Valenta <tomas@valenta.cz>
@@ -14,6 +14,8 @@
* @author Bohumir Zamecnik <bohumir.zamecnik@gmail.com>
* @author Jakub A. Těšínský (j@kub.cz)
* @author mkucera66@seznam.cz
+ * @author Zbyněk Křivka <krivka@fit.vutbr.cz>
+ * @author Gerrit Uitslag <klapinklapin@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -57,6 +59,7 @@ $lang['btn_revert'] = 'Vrátit zpět';
$lang['btn_register'] = 'Registrovat';
$lang['btn_apply'] = 'Použít';
$lang['btn_media'] = 'Správa médií';
+$lang['btn_deleteuser'] = 'Odstranit můj účet';
$lang['loggedinas'] = 'Přihlášen(a) jako';
$lang['user'] = 'Uživatelské jméno';
$lang['pass'] = 'Heslo';
@@ -68,6 +71,7 @@ $lang['fullname'] = 'Celé jméno';
$lang['email'] = 'E-mail';
$lang['profile'] = 'Uživatelský profil';
$lang['badlogin'] = 'Zadané uživatelské jméno a heslo není správně.';
+$lang['badpassconfirm'] = 'Bohužel špatné heslo';
$lang['minoredit'] = 'Drobné změny';
$lang['draftdate'] = 'Koncept automaticky uložen v';
$lang['nosecedit'] = 'Stránka byla v mezičase změněna. Informace o sekci již nebylo platné, byla načtena celá stránka.';
@@ -84,6 +88,11 @@ $lang['profna'] = 'Tato wiki neumožňuje změnu profilu';
$lang['profnochange'] = 'Žádné změny nebyly provedeny.';
$lang['profnoempty'] = 'Nelze zadat prázdné jméno nebo mailová adresa.';
$lang['profchanged'] = 'Uživatelský profil změněn.';
+$lang['profnodelete'] = 'Tato wiki nepodporuje mazání uživatelů';
+$lang['profdeleteuser'] = 'Smazat účet';
+$lang['profdeleted'] = 'Váš uživatelský účet byl z této wiki smazán';
+$lang['profconfdelete'] = 'Chci smazat můj účet z této wiki. <br/> Tato akce je nevratná.';
+$lang['profconfdeletemissing'] = 'Potvrzovací tlačítko nezaškrtnuto';
$lang['pwdforget'] = 'Zapomněli jste heslo? Nechte si zaslat nové';
$lang['resendna'] = 'Tato wiki neumožňuje zasílání nových hesel.';
$lang['resendpwd'] = 'Nastavit nové heslo pro';
@@ -153,7 +162,7 @@ $lang['uploadsucc'] = 'Přenos proběhl v pořádku';
$lang['uploadfail'] = 'Chyba při načítání. Možná kvůli špatně nastaveným právům?';
$lang['uploadwrong'] = 'Načtení souboru s takovouto příponou není dovoleno.';
$lang['uploadexist'] = 'Soubor už existuje, necháme ho být.';
-$lang['uploadbadcontent'] = 'Obsah načteného dokumentu %s neodpovídá jeho příponě.';
+$lang['uploadbadcontent'] = 'Nahraný obsah neodpovídá jeho příponě souboru %s.';
$lang['uploadspam'] = 'Načtený dokument byl odmítnut, je na spamovém blacklistu.';
$lang['uploadxss'] = 'Načtený dokument byl odmítnut. Zdá se, že obsahuje škodlivé věci.';
$lang['uploadsize'] = 'Nahraný soubor byl příliš velký (max. %s)';
@@ -204,7 +213,7 @@ $lang['mail_newpage'] = 'nová stránka:';
$lang['mail_changed'] = 'změna stránky:';
$lang['mail_subscribe_list'] = 'stránky změněné ve jmenném prostoru:';
$lang['mail_new_user'] = 'nový uživatel:';
-$lang['mail_upload'] = 'načtený dokument:';
+$lang['mail_upload'] = 'nahraný soubor:';
$lang['changes_type'] = 'Prohlednou změny ';
$lang['pages_changes'] = 'stránek';
$lang['media_changes'] = 'souborů médií';
@@ -268,7 +277,6 @@ $lang['subscr_m_receive'] = 'Přejete si dostávat';
$lang['subscr_style_every'] = 'email pro každou změnu';
$lang['subscr_style_digest'] = 'souhrnný email změn pro každou stránku (každé %.2f dny/dní)';
$lang['subscr_style_list'] = 'seznam změněných stránek od posledního emailu (každé %.2f dny/dní)';
-$lang['authmodfailed'] = 'Autentizace uživatelů je špatně nastavena. Informujte prosím správce této wiki.';
$lang['authtempfail'] = 'Autentizace uživatelů je dočasně nedostupná. Pokud tento problém přetrvává, informujte prosím správce této wiki.';
$lang['authpwdexpire'] = 'Platnost vašeho hesla vyprší za %d dní, měli byste ho změnit co nejdříve.';
$lang['i_chooselang'] = 'Vyberte si jazyk';
@@ -293,6 +301,9 @@ $lang['i_pol1'] = 'Veřejná wiki (čtení pro všechny, zápis a
$lang['i_pol2'] = 'Uzavřená wiki (čtení, zápis a upload pouze pro registrované uživatele)';
$lang['i_retry'] = 'Zkusit znovu';
$lang['i_license'] = 'Vyberte prosím licenci obsahu:';
+$lang['i_license_none'] = 'Nezobrazovat žádné licenční informace';
+$lang['i_pop_field'] = 'Prosím, pomozte nám vylepšit DokuWiki:';
+$lang['i_pop_label'] = 'Jednou měsíčně zaslat anonymní data o využívání DokuWiki jejím vývojářům';
$lang['recent_global'] = 'Právě si prohlížíte změny ve jmenném prostoru <b>%s</b>. Také si můžete <a href="%s">zobrazit změny v celé wiki</a>.';
$lang['years'] = 'před %d roky';
$lang['months'] = 'před %d měsíci';
diff --git a/inc/lang/cs/registermail.txt b/inc/lang/cs/registermail.txt
index 7f5e4feb1..201e7b779 100644
--- a/inc/lang/cs/registermail.txt
+++ b/inc/lang/cs/registermail.txt
@@ -7,7 +7,7 @@ E-mail : @NEWEMAIL@
Datum : @DATE@
Prohlížeč : @BROWSER@
IP adresa : @IPADDRESS@
-Hostitel : @HOSTNAME
+Hostitel : @HOSTNAME@
--
Tento email byl automaticky vygenerován systémem DokuWiki
diff --git a/inc/lang/da/lang.php b/inc/lang/da/lang.php
index 022de8127..0da7e4761 100644
--- a/inc/lang/da/lang.php
+++ b/inc/lang/da/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * danish language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author koeppe <koeppe@kazur.dk>
* @author Jon Bendtsen <bendtsen@diku.dk>
* @author Lars Næsbye Christensen <larsnaesbye@stud.ku.dk>
@@ -14,6 +14,8 @@
* @author rasmus@kinnerup.com
* @author Michael Pedersen subben@gmail.com
* @author Mikael Lyngvig <mikael@lyngvig.org>
+ * @author Soren Birk <soer9648@hotmail.com>
+ * @author Jens Hyllegaard <jens.hyllegaard@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -57,6 +59,7 @@ $lang['btn_revert'] = 'Reetablér';
$lang['btn_register'] = 'Registrér';
$lang['btn_apply'] = 'Anvend';
$lang['btn_media'] = 'Media Manager';
+$lang['btn_deleteuser'] = 'Fjern Min Konto';
$lang['loggedinas'] = 'Logget ind som';
$lang['user'] = 'Brugernavn';
$lang['pass'] = 'Adgangskode';
@@ -68,6 +71,7 @@ $lang['fullname'] = 'Fulde navn';
$lang['email'] = 'E-mail';
$lang['profile'] = 'Brugerprofil';
$lang['badlogin'] = 'Brugernavn eller adgangskode var forkert.';
+$lang['badpassconfirm'] = 'Kodeordet var desværre forkert';
$lang['minoredit'] = 'Mindre ændringer';
$lang['draftdate'] = 'Kladde automatisk gemt d.';
$lang['nosecedit'] = 'Siden blev ændret i mellemtiden, sektions information var for gammel, hentede hele siden i stedet.';
@@ -84,6 +88,9 @@ $lang['profna'] = 'Denne wiki understøtter ikke ændring af prof
$lang['profnochange'] = 'Ingen ændringer, intet modificeret.';
$lang['profnoempty'] = 'Tomt navn eller e-mail adresse er ikke tilladt.';
$lang['profchanged'] = 'Brugerprofil opdateret korrekt.';
+$lang['profnodelete'] = 'Denne wiki supporterer ikke sletning af brugere';
+$lang['profdeleteuser'] = 'Slet Konto';
+$lang['profdeleted'] = 'Din brugerkonto er blevet slettet fra denne wiki';
$lang['pwdforget'] = 'Har du glemt dit adgangskode? Få et nyt';
$lang['resendna'] = 'Denne wiki understøtter ikke udsendelse af nyt adgangskode.';
$lang['resendpwd'] = 'Vælg ny adgangskode for';
@@ -198,6 +205,7 @@ $lang['user_tools'] = 'Brugerværktøjer';
$lang['site_tools'] = 'Webstedsværktøjer';
$lang['page_tools'] = 'Sideværktøjer';
$lang['skip_to_content'] = 'hop til indhold';
+$lang['sidebar'] = 'Sidebjælke';
$lang['mail_newpage'] = 'dokument tilføjet:';
$lang['mail_changed'] = 'dokument ændret:';
$lang['mail_subscribe_list'] = 'sider ændret i navnerum';
@@ -266,7 +274,6 @@ $lang['subscr_m_receive'] = 'Modtag';
$lang['subscr_style_every'] = 'email på hver ændring';
$lang['subscr_style_digest'] = 'opsummeringsmail med ændringer for hver side (hver %.2f dage)';
$lang['subscr_style_list'] = 'list af ændrede sider siden sidste email (hver %.2f dage)';
-$lang['authmodfailed'] = 'Fejl i brugervalideringens konfiguration. Kontakt venligst wikiens administrator.';
$lang['authtempfail'] = 'Brugervalidering er midlertidigt ude af drift. Hvis dette er vedvarende, kontakt venligst wikiens administrator.';
$lang['authpwdexpire'] = 'Din adgangskode vil udløbe om %d dage, du bør ændre det snart.';
$lang['i_chooselang'] = 'Vælg dit sprog';
@@ -293,6 +300,8 @@ $lang['i_pol1'] = 'Offentlig Wiki (alle kan læse, kun registrere
$lang['i_pol2'] = 'Lukket Wiki (kun for registerede brugere kan læse, skrive og overføre)';
$lang['i_retry'] = 'Forsøg igen';
$lang['i_license'] = 'Vælg venligst licensen du vil tilføje dit indhold under:';
+$lang['i_license_none'] = 'Vis ikke licensinformationer';
+$lang['i_pop_field'] = 'Hjælp os venligst med at forbedre oplevelsen af DokuWiki:';
$lang['recent_global'] = 'Du ser lige nu ændringerne i <b>%s</b> navnerummet. Du kan også <a href="%s">se de sidste ændringer for hele wiki siden </a>';
$lang['years'] = '%d år siden';
$lang['months'] = '%d måned siden';
diff --git a/inc/lang/de-informal/lang.php b/inc/lang/de-informal/lang.php
index 4ee9a0eed..02ff85fad 100644
--- a/inc/lang/de-informal/lang.php
+++ b/inc/lang/de-informal/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * german informal language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Andreas Gohr <andi@splitbrain.org>
* @author Christof <gagi@fin.de>
* @author Anika Henke <anika@selfthinker.org>
@@ -94,10 +94,10 @@ $lang['profnochange'] = 'Keine Änderungen, nichts zu tun.';
$lang['profnoempty'] = 'Es muss ein Name oder eine E-Mail Adresse angegeben werden.';
$lang['profchanged'] = 'Benutzerprofil erfolgreich geändert.';
$lang['profnodelete'] = 'Dieses Wiki unterstützt nicht das Löschen von Benutzern.';
-$lang['profdeleteuser'] = 'Benutzerprofil löschen';
+$lang['profdeleteuser'] = 'Benutzerprofil löschen';
$lang['profdeleted'] = 'Dein Benutzerprofil wurde im Wiki gelöscht.';
$lang['profconfdelete'] = 'Ich möchte mein Benutzerprofil löschen.<br/> Diese Aktion ist nicht umkehrbar.';
-$lang['profconfdeletemissing'] = 'Bestätigungs-Checkbox wurde nicht angehakt.';
+$lang['profconfdeletemissing'] = 'Bestätigungs-Checkbox wurde nicht angehakt.';
$lang['pwdforget'] = 'Passwort vergessen? Fordere ein neues an';
$lang['resendna'] = 'Passwörter versenden ist in diesem Wiki nicht möglich.';
$lang['resendpwd'] = 'Neues Passwort setzen für';
@@ -280,7 +280,6 @@ $lang['subscr_m_receive'] = 'Erhalten';
$lang['subscr_style_every'] = 'E-Mail bei jeder Änderung';
$lang['subscr_style_digest'] = 'E-Mail mit zusammengefasster Übersicht der Seitenänderungen (alle %.2f Tage)';
$lang['subscr_style_list'] = 'Auflistung aller geänderten Seiten seit der letzten E-Mail (alle %.2f Tage)';
-$lang['authmodfailed'] = 'Benutzerüberprüfung nicht möglich. Bitte wende dich an den Admin.';
$lang['authtempfail'] = 'Benutzerüberprüfung momentan nicht möglich. Falls das Problem andauert, wende dich an den Admin.';
$lang['authpwdexpire'] = 'Dein Passwort läuft in %d Tag(en) ab. Du solltest es es frühzeitig ändern.';
$lang['i_chooselang'] = 'Wähle deine Sprache';
diff --git a/inc/lang/de/admin.txt b/inc/lang/de/admin.txt
index c52f343ea..f079f7e91 100644
--- a/inc/lang/de/admin.txt
+++ b/inc/lang/de/admin.txt
@@ -1,4 +1,4 @@
====== Administration ======
-Folgende administrative Aufgaben stehen in DokuWiki zur Verfügung.
+Folgende administrative Aufgaben stehen in DokuWiki zur Verfügung:
diff --git a/inc/lang/de/backlinks.txt b/inc/lang/de/backlinks.txt
index b797b0003..1ffa815c2 100644
--- a/inc/lang/de/backlinks.txt
+++ b/inc/lang/de/backlinks.txt
@@ -1,5 +1,5 @@
====== Links hierher ======
-Dies ist eine Liste der Seiten, die zurück zur momentanen Seite linken.
+Dies ist eine Liste der Seiten, welche zurück zur momentanen Seite verlinken.
diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php
index 496eff2e5..685e668c4 100644
--- a/inc/lang/de/lang.php
+++ b/inc/lang/de/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * german language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Andreas Gohr <andi@splitbrain.org>
* @author Christof <gagi@fin.de>
* @author Anika Henke <anika@selfthinker.org>
@@ -95,10 +95,10 @@ $lang['profnochange'] = 'Keine Änderungen, nichts zu tun.';
$lang['profnoempty'] = 'Es muss ein Name und eine E-Mail-Adresse angegeben werden.';
$lang['profchanged'] = 'Benutzerprofil erfolgreich geändert.';
$lang['profnodelete'] = 'Dieses Wiki unterstützt nicht das Löschen von Benutzern.';
-$lang['profdeleteuser'] = 'Benutzerprofil löschen';
+$lang['profdeleteuser'] = 'Benutzerprofil löschen';
$lang['profdeleted'] = 'Ihr Benutzerprofil wurde im Wiki gelöscht.';
$lang['profconfdelete'] = 'Ich möchte mein Benutzerprofil löschen.<br/> Diese Aktion ist nicht umkehrbar.';
-$lang['profconfdeletemissing'] = 'Bestätigungs-Checkbox wurde nicht angehakt.';
+$lang['profconfdeletemissing'] = 'Bestätigungs-Checkbox wurde nicht angehakt.';
$lang['pwdforget'] = 'Passwort vergessen? Fordere ein neues an';
$lang['resendna'] = 'Passwörter versenden ist in diesem Wiki nicht möglich.';
$lang['resendpwd'] = 'Neues Passwort setzen für';
@@ -281,7 +281,6 @@ $lang['subscr_m_receive'] = 'Benachrichtigung';
$lang['subscr_style_every'] = 'E-Mail bei jeder Bearbeitung';
$lang['subscr_style_digest'] = 'Zusammenfassung der Änderungen für jede veränderte Seite (Alle %.2f Tage)';
$lang['subscr_style_list'] = 'Liste der geänderten Seiten (Alle %.2f Tage)';
-$lang['authmodfailed'] = 'Benutzerüberprüfung nicht möglich. Bitte wenden Sie sich an den Admin.';
$lang['authtempfail'] = 'Benutzerüberprüfung momentan nicht möglich. Falls das Problem andauert, wenden Sie sich an den Admin.';
$lang['authpwdexpire'] = 'Ihr Passwort läuft in %d Tag(en) ab. Sie sollten es frühzeitig ändern.';
$lang['i_chooselang'] = 'Wählen Sie Ihre Sprache';
diff --git a/inc/lang/el/lang.php b/inc/lang/el/lang.php
index 0fe343026..61b2fda9d 100644
--- a/inc/lang/el/lang.php
+++ b/inc/lang/el/lang.php
@@ -1,14 +1,15 @@
<?php
+
/**
- * Greek language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Thanos Massias <tm@thriasio.gr>
* @author Αθανάσιος Νταής <homunculus@wana.gr>
* @author Konstantinos Koryllos <koryllos@gmail.com>
* @author George Petsagourakis <petsagouris@gmail.com>
* @author Petros Vidalis <pvidalis@gmail.com>
* @author Vasileios Karavasilis vasileioskaravasilis@gmail.com
+ * @author Constantinos Xanthopoulos <conx@xanthopoulos.info>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -52,6 +53,7 @@ $lang['btn_revert'] = 'Αποκατάσταση';
$lang['btn_register'] = 'Εγγραφή';
$lang['btn_apply'] = 'Εφαρμογή';
$lang['btn_media'] = 'Διαχειριστής πολυμέσων';
+$lang['btn_deleteuser'] = 'Αφαίρεσε τον λογαριασμό μου';
$lang['loggedinas'] = 'Συνδεδεμένος ως';
$lang['user'] = 'Όνομα χρήστη';
$lang['pass'] = 'Κωδικός';
@@ -63,6 +65,7 @@ $lang['fullname'] = 'Ονοματεπώνυμο';
$lang['email'] = 'e-mail';
$lang['profile'] = 'Προφίλ χρήστη';
$lang['badlogin'] = 'Συγνώμη, το όνομα χρήστη ή ο κωδικός ήταν λανθασμένο.';
+$lang['badpassconfirm'] = 'Ο κωδικός που εισάγατε είναι λανθασμένος';
$lang['minoredit'] = 'Ασήμαντες αλλαγές';
$lang['draftdate'] = 'Αυτόματη αποθήκευση πρόχειρης σελίδας στις';
$lang['nosecedit'] = 'Η σελίδα τροποποιήθηκε στο μεταξύ και τα στοιχεία της ενότητας δεν ήταν συγχρονισμένα, οπότε φορτώθηκε η πλήρης σελίδα. ';
@@ -79,6 +82,9 @@ $lang['profna'] = 'Αυτό το wiki δεν υποστηρίζε
$lang['profnochange'] = 'Καμία αλλαγή.';
$lang['profnoempty'] = 'Δεν επιτρέπεται κενό όνομα χρήστη η κενή διεύθυνση email.';
$lang['profchanged'] = 'Το προφίλ χρήστη τροποποιήθηκε επιτυχώς.';
+$lang['profnodelete'] = 'Το wiki δεν υποστηρίζει την διαγραφή χρηστών';
+$lang['profdeleteuser'] = 'Διαγραφή λογαριασμού';
+$lang['profdeleted'] = 'Ο λογαριασμός διαγράφηκε από αυτό το wiki';
$lang['pwdforget'] = 'Ξεχάσατε το κωδικό σας; Αποκτήστε νέο.';
$lang['resendna'] = 'Αυτό το wiki δεν υποστηρίζει την εκ\' νέου αποστολή κωδικών.';
$lang['resendpwd'] = 'Εισαγωγή νέου ωδικού για';
@@ -262,9 +268,8 @@ $lang['subscr_m_receive'] = 'Λήψη';
$lang['subscr_style_every'] = 'email σε κάθε αλλαγή';
$lang['subscr_style_digest'] = 'συνοπτικό email αλλαγών της σελίδας (κάθε %.2f μέρες)';
$lang['subscr_style_list'] = 'λίστα σελίδων με αλλαγές μετά από το τελευταίο email (κάθε %.2f μέρες)';
-$lang['authmodfailed'] = 'Κακή ρύθμιση λίστας χρηστών. Παρακαλούμε ενημερώστε τον διαχειριστή του wiki.';
$lang['authtempfail'] = 'Η συνδεση χρηστών είναι απενεργοποιημένη αυτή την στιγμή. Αν αυτό διαρκέσει για πολύ, παρακαλούμε ενημερώστε τον διαχειριστή του wiki.';
-$lang['authpwdexpire'] = 'Ο κωδικός πρόσβασης θα λήξει σε %s ημέρες. Προτείνουμε να τον αλλάξετε σύντομα.';
+$lang['authpwdexpire'] = 'Ο κωδικός πρόσβασης θα λήξει σε %d ημέρες. Προτείνουμε να τον αλλάξετε σύντομα.';
$lang['i_chooselang'] = 'Επιλογή γλώσσας';
$lang['i_installer'] = 'Οδηγός εγκατάστασης DokuWiki';
$lang['i_wikiname'] = 'Ονομασία wiki';
diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php
index 630ccb3ff..ab84c67f3 100644
--- a/inc/lang/en/lang.php
+++ b/inc/lang/en/lang.php
@@ -84,7 +84,7 @@ $lang['profnochange'] = 'No changes, nothing to do.';
$lang['profnoempty'] = 'An empty name or email address is not allowed.';
$lang['profchanged'] = 'User profile successfully updated.';
$lang['profnodelete'] = 'This wiki does not support deleting users';
-$lang['profdeleteuser'] = 'Delete Account';
+$lang['profdeleteuser'] = 'Delete Account';
$lang['profdeleted'] = 'Your user account has been deleted from this wiki';
$lang['profconfdelete'] = 'I wish to remove my account from this wiki. <br/> This action can not be undone.';
$lang['profconfdeletemissing'] = 'Confirmation check box not ticked';
@@ -287,7 +287,6 @@ $lang['subscr_style_digest'] = 'digest email of changes for each page (ev
$lang['subscr_style_list'] = 'list of changed pages since last email (every %.2f days)';
/* auth.class language support */
-$lang['authmodfailed'] = 'Bad user authentication configuration. Please inform your Wiki Admin.';
$lang['authtempfail'] = 'User authentication is temporarily unavailable. If this situation persists, please inform your Wiki Admin.';
$lang['authpwdexpire'] = 'Your password will expire in %d days, you should change it soon.';
@@ -357,4 +356,8 @@ $lang['media_perm_upload'] = 'Sorry, you don\'t have enough rights to upload
$lang['media_update'] = 'Upload new version';
$lang['media_restore'] = 'Restore this version';
+$lang['currentns'] = 'Current namespace';
+$lang['searchresult'] = 'Search Result';
+$lang['plainhtml'] = 'Plain HTML';
+$lang['wikimarkup'] = 'Wiki Markup';
//Setup VIM: ex: et ts=2 :
diff --git a/inc/lang/eo/admin.txt b/inc/lang/eo/admin.txt
index 2ede2763c..4b0cf7909 100644
--- a/inc/lang/eo/admin.txt
+++ b/inc/lang/eo/admin.txt
@@ -1,3 +1,3 @@
-====== Administro ======
+====== Administrado ======
Sube vi povas trovi liston de administraj taskoj disponeblaj en DokuWiki.
diff --git a/inc/lang/eo/lang.php b/inc/lang/eo/lang.php
index 1bafe5191..4ed03244e 100644
--- a/inc/lang/eo/lang.php
+++ b/inc/lang/eo/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Esperanta dosiero
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Antono Vasiljev <esperanto.minsk ĈE tut.by>
* @author Felipe Castro <fefcas@yahoo.com.br>
* @author Felipe Castro <fefcas@uol.com.br>
@@ -53,6 +53,7 @@ $lang['btn_revert'] = 'Restarigi';
$lang['btn_register'] = 'Registriĝi';
$lang['btn_apply'] = 'Apliki';
$lang['btn_media'] = 'Medio-administrilo';
+$lang['btn_deleteuser'] = 'Forigi mian aliĝon';
$lang['loggedinas'] = 'Ensalutinta kiel';
$lang['user'] = 'Uzant-nomo';
$lang['pass'] = 'Pasvorto';
@@ -64,6 +65,7 @@ $lang['fullname'] = 'Kompleta nomo';
$lang['email'] = 'Retpoŝto';
$lang['profile'] = 'Uzanto-profilo';
$lang['badlogin'] = 'Pardonu, uzant-nomo aŭ pasvorto estis erara.';
+$lang['badpassconfirm'] = 'Pardonu, la pasvorto malĝustis';
$lang['minoredit'] = 'Etaj modifoj';
$lang['draftdate'] = 'Lasta konservo de la skizo:';
$lang['nosecedit'] = 'La paĝo ŝanĝiĝis intertempe, sekcio-informo estis malĝisdata, tial la tuta paĝo estas reŝargita.';
@@ -80,6 +82,11 @@ $lang['profna'] = 'Tiu ĉi vikio ne ebligas modifon en la profilo
$lang['profnochange'] = 'Neniu ŝanĝo, nenio farinda.';
$lang['profnoempty'] = 'Malplena nomo aŭ retadreso ne estas permesata.';
$lang['profchanged'] = 'La profilo de la uzanto sukcese ĝisdatiĝis.';
+$lang['profnodelete'] = 'Tiu ĉi vikio ne subtenas forigo de uzantoj';
+$lang['profdeleteuser'] = 'Forigi aliĝon';
+$lang['profdeleted'] = 'Via uzant-aliĝo estis forigata de tiu ĉi vikio';
+$lang['profconfdelete'] = 'Mi deziras forigi mian aliĝon de tiu ĉi vikio. <br/> Tiu ĉi ago ne povos esti malfarata.';
+$lang['profconfdeletemissing'] = 'Konfirmilo ne estas markita';
$lang['pwdforget'] = 'Ĉu vi forgesis vian pasvorton? Prenu novan';
$lang['resendna'] = 'Tiu ĉi vikio ne ebligas resendon de la pasvortoj.';
$lang['resendpwd'] = 'Sendi novan pasvorton al';
@@ -263,7 +270,6 @@ $lang['subscr_m_receive'] = 'Ricevi';
$lang['subscr_style_every'] = 'retpoŝtaĵo pro ĉiu ŝanĝo';
$lang['subscr_style_digest'] = 'resuma retpoŝtaĵo de ŝanĝoj por ĉiu paĝo (je %.2f tagoj)';
$lang['subscr_style_list'] = 'listo de ŝanĝitaj paĝoj ekde la lasta retpoŝtaĵo (je %.2f tagoj)';
-$lang['authmodfailed'] = 'Malbona agordo por identigi la uzanton. Bonvolu informi la administranton de la vikio.';
$lang['authtempfail'] = 'La identigo de via uzantonomo estas intertempe maldisponebla. Se tiu ĉi situacio daŭros, bonvolu informi la adminstranton de la vikio.';
$lang['authpwdexpire'] = 'Via pasvorto malvalidos post %d tagoj, prefere ŝanĝu ĝin baldaũ.';
$lang['i_chooselang'] = 'Elektu vian lingvon';
diff --git a/inc/lang/es/lang.php b/inc/lang/es/lang.php
index 193ec9a7d..0764621b0 100644
--- a/inc/lang/es/lang.php
+++ b/inc/lang/es/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * spanish language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Zigor Astarbe <zigor@astarbe.com>
* @author Adrián Ariza <adrian_ariza.ciudad.com.ar>
* @author Gabiel Molina <gabriel191@gmail.com>
@@ -28,6 +28,8 @@
* @author Ruben Figols <ruben.figols@gmail.com>
* @author Gerardo Zamudio <gerardo@gerardozamudio.net>
* @author Mercè López mercelz@gmail.com
+ * @author r0sk <r0sk10@gmail.com>
+ * @author monica <may.dorado@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -71,6 +73,7 @@ $lang['btn_revert'] = 'Restaurar';
$lang['btn_register'] = 'Registrarse';
$lang['btn_apply'] = 'Aplicar';
$lang['btn_media'] = 'Gestor de ficheros';
+$lang['btn_deleteuser'] = 'Elimina Mi Cuenta';
$lang['loggedinas'] = 'Conectado como ';
$lang['user'] = 'Usuario';
$lang['pass'] = 'Contraseña';
@@ -82,6 +85,7 @@ $lang['fullname'] = 'Nombre real';
$lang['email'] = 'E-Mail';
$lang['profile'] = 'Perfil del usuario';
$lang['badlogin'] = 'Lo siento, el usuario o la contraseña es incorrecto.';
+$lang['badpassconfirm'] = 'Lo siento, la contraseña es errónea';
$lang['minoredit'] = 'Cambios menores';
$lang['draftdate'] = 'Borrador guardado automáticamente:';
$lang['nosecedit'] = 'La página ha cambiado en el lapso, la información de sección estaba anticuada, en su lugar se cargó la página completa.';
@@ -98,6 +102,11 @@ $lang['profna'] = 'Este wiki no permite la modificación del perf
$lang['profnochange'] = 'Sin cambios, nada que hacer.';
$lang['profnoempty'] = 'No se permite que el nombre o la dirección de correo electrónico estén vacíos.';
$lang['profchanged'] = 'Se actualizó correctamente el perfil del usuario.';
+$lang['profnodelete'] = 'Este wiki no soporta el borrado de usuarios';
+$lang['profdeleteuser'] = 'Eliminar Cuenta';
+$lang['profdeleted'] = 'Tu cuenta de usuario ha sido eliminada de este wiki';
+$lang['profconfdelete'] = 'Deseo eliminar mi cuenta de este wiki. <br /> Esta acción es irreversible.';
+$lang['profconfdeletemissing'] = 'Casilla de verificación no activada.';
$lang['pwdforget'] = '¿Has olvidado tu contraseña? Consigue una nueva';
$lang['resendna'] = 'Este wiki no brinda la posibilidad de reenvío de contraseña.';
$lang['resendpwd'] = 'Establecer nueva contraseña para';
@@ -280,7 +289,8 @@ $lang['subscr_m_unsubscribe'] = 'Darse de baja';
$lang['subscr_m_subscribe'] = 'Suscribirse';
$lang['subscr_m_receive'] = 'Recibir';
$lang['subscr_style_every'] = 'enviar correo en cada cambio';
-$lang['authmodfailed'] = 'Está mal configurada la autenticación de usuarios. Por favor, avisa al administrador del wiki.';
+$lang['subscr_style_digest'] = 'Resumen de correo electrónico de cambios por cada página (cada %.2f días)';
+$lang['subscr_style_list'] = 'lista de páginas modificadas desde el último correo electrónico (cada %.2f días)';
$lang['authtempfail'] = 'La autenticación de usuarios no está disponible temporalmente. Si esta situación persiste, por favor avisa al administrador del wiki.';
$lang['authpwdexpire'] = 'Su contraseña caducara en %d días, debería cambiarla lo antes posible';
$lang['i_chooselang'] = 'Elija su idioma';
@@ -305,6 +315,9 @@ $lang['i_pol1'] = 'Wiki público (leer para todos, escribir y sub
$lang['i_pol2'] = 'Wiki cerrado (leer, escribir y subir archivos para usuarios registrados únicamente)';
$lang['i_retry'] = 'Reintentar';
$lang['i_license'] = 'Por favor escoja una licencia bajo la que publicar su contenido:';
+$lang['i_license_none'] = 'No mostrar ninguna información sobre licencias';
+$lang['i_pop_field'] = 'Por favor, ayúdanos a mejorar la experiencia de DokuWiki:';
+$lang['i_pop_label'] = 'Una vez al mes, enviar información anónima de uso de datos a los desarrolladores de DokuWiki';
$lang['recent_global'] = 'Actualmente estás viendo los cambios dentro del namespace <b>%s</b>. También puedes <a href="%s">ver los cambios recientes en el wiki completo</a>.';
$lang['years'] = '%d años atrás';
$lang['months'] = '%d meses atrás';
diff --git a/inc/lang/et/lang.php b/inc/lang/et/lang.php
index 0a0310832..cc736db4d 100644
--- a/inc/lang/et/lang.php
+++ b/inc/lang/et/lang.php
@@ -208,7 +208,6 @@ $lang['img_copyr'] = 'Autoriõigused';
$lang['img_format'] = 'Formaat';
$lang['img_camera'] = 'Kaamera';
$lang['img_keywords'] = 'Võtmesõnad';
-$lang['authmodfailed'] = 'Vigane kasutajate autentimise konfiguratsioon. Palun teavita sellest serveri haldajat.';
$lang['authtempfail'] = 'Kasutajate autentimine on ajutiselt rivist väljas. Kui see olukord mõne aja jooksul ei parane, siis teavita sellest serveri haldajat.';
$lang['i_chooselang'] = 'Vali keel';
$lang['i_installer'] = 'DokuWiki paigaldaja';
diff --git a/inc/lang/eu/lang.php b/inc/lang/eu/lang.php
index 7aab8b44c..c7e7ead9a 100644
--- a/inc/lang/eu/lang.php
+++ b/inc/lang/eu/lang.php
@@ -257,7 +257,6 @@ $lang['subscr_m_receive'] = 'Jaso';
$lang['subscr_style_every'] = 'e-posta aldaketa bakoitzean';
$lang['subscr_style_digest'] = 'e-posta laburbildua orri bakoitzeko aldaketentzat (%.2f egunero)';
$lang['subscr_style_list'] = 'aldatutako orrien zerrenda azken e-postatik (%.2f egunero)';
-$lang['authmodfailed'] = 'Erabiltzaile kautotzearen konfigurazioa okerra da. Mesedez, eman honen berri Wiki administratzaileari';
$lang['authtempfail'] = 'Erabiltzaile kautotzea denboraldi batez ez dago erabilgarri. Egoerak hala jarraitzen badu, mesedez, eman honen berri Wiki administratzaileari';
$lang['authpwdexpire'] = 'Zure pasahitza %d egun barru iraungiko da, laster aldatu beharko zenuke.';
$lang['i_chooselang'] = 'Hautatu zure hizkuntza';
diff --git a/inc/lang/fa/lang.php b/inc/lang/fa/lang.php
index eb828a472..6cb5164d8 100644
--- a/inc/lang/fa/lang.php
+++ b/inc/lang/fa/lang.php
@@ -1,19 +1,15 @@
<?php
+
/**
- * fa language file
- *
- * This file was initially built by fetching translations from other
- * Wiki projects. See the @url lines below. Additional translations
- * and fixes where done for DokuWiki by the people mentioned in the
- * lines starting with @author
- *
- * @url http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/languages/messages/MessagesFa.php?view=co
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author behrad eslamifar <behrad_es@yahoo.com)
* @author Mohsen Firoozmandan <info@mambolearn.com>
* @author Omid Mottaghi <omidmr@gmail.com>
* @author Mohammad Reza Shoaei <shoaei@gmail.com>
* @author Milad DZand <M.DastanZand@gmail.com>
* @author AmirH Hassaneini <mytechmix@gmail.com>
+ * @author mehrdad <mehrdad.jafari.bojd@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'rtl';
@@ -57,6 +53,7 @@ $lang['btn_revert'] = 'بازیابی';
$lang['btn_register'] = 'یک حساب جدید بسازید';
$lang['btn_apply'] = 'اعمال کن';
$lang['btn_media'] = 'مدیریت محتوای چند رسانه ای';
+$lang['btn_deleteuser'] = 'حذف حساب کاربری خود';
$lang['loggedinas'] = 'به عنوان کاربر روبرو وارد شده‌اید:';
$lang['user'] = 'نام کاربری:';
$lang['pass'] = 'گذرواژه‌ی شما';
@@ -68,6 +65,7 @@ $lang['fullname'] = '*نام واقعی شما';
$lang['email'] = 'ایمیل شما*';
$lang['profile'] = 'پروفایل کاربر';
$lang['badlogin'] = 'خطا در ورود به سیستم';
+$lang['badpassconfirm'] = 'متاسفم ، رمز عبور اشتباه است';
$lang['minoredit'] = 'این ویرایش خُرد است';
$lang['draftdate'] = 'ذخیره خودکار پیش‌نویس';
$lang['nosecedit'] = 'این صفحه در این میان تغییر کرده است، اطلاعات بخش قدیمی شده است، در عوض محتوای کل نمایش داده می‌شود.';
@@ -84,6 +82,8 @@ $lang['profna'] = 'این ویکی اجازه ویرایش پرو
$lang['profnochange'] = 'تغییری صورت نگرفت';
$lang['profnoempty'] = 'نام و آدرس ایمیل باید پر شود';
$lang['profchanged'] = 'پروفایل کاربر با موفقیت به روز شد';
+$lang['profnodelete'] = 'ویکی توانایی پشتیبانی از حذف کاربران را ندارد';
+$lang['profdeleteuser'] = 'حذف حساب کاربری';
$lang['pwdforget'] = 'گذرواژه‌ی خود را فراموش کرده‌اید؟ جدید دریافت کنید';
$lang['resendna'] = 'این ویکی ارسال مجدد گذرواژه را پشتیبانی نمی‌کند';
$lang['resendpwd'] = 'تعیین کلمه عبور جدید برای ';
@@ -266,7 +266,6 @@ $lang['subscr_m_unsubscribe'] = 'لغو آبونه';
$lang['subscr_m_subscribe'] = 'آبونه شدن';
$lang['subscr_m_receive'] = 'دریافت کردن';
$lang['subscr_style_every'] = 'ارسال رای‌نامه در تمامی تغییرات';
-$lang['authmodfailed'] = 'اشکال در نوع معتبرسازی کاربران، مدیر ویکی را باخبر سازید.';
$lang['authtempfail'] = 'معتبرسازی کابران موقتن مسدود می‌باشد. اگر این حالت پایدار بود، مدیر ویکی را باخبر سازید.';
$lang['authpwdexpire'] = 'کلمه عبور شما در %d روز منقضی خواهد شد ، شما باید آن را زود تغییر دهید';
$lang['i_chooselang'] = 'انتخاب زبان';
diff --git a/inc/lang/fi/lang.php b/inc/lang/fi/lang.php
index b66558d26..4a0a88ac8 100644
--- a/inc/lang/fi/lang.php
+++ b/inc/lang/fi/lang.php
@@ -262,7 +262,6 @@ $lang['subscr_m_receive'] = 'Vastaanota';
$lang['subscr_style_every'] = 'Sähköposti joka muutoksesta';
$lang['subscr_style_digest'] = 'yhteenveto-sähköposti joka sivusta (joka %.2f. päivä)';
$lang['subscr_style_list'] = 'lista muuttuneista sivuista edellisen sähköpostin jälkeen (joka %.2f. päivä)';
-$lang['authmodfailed'] = 'Käyttäjien autentikoinnin asetukset ovat virheelliset. Ilmoita asiasta wikin ylläpitäjälle.';
$lang['authtempfail'] = 'Käyttäjien autentikointi ei tällä hetkellä onnistu. Jos ongelma jatkuu, ota yhteyttä wikin ylläpitäjään.';
$lang['authpwdexpire'] = 'Salasanasi vanhenee %d pv:n päästä, vaihda salasanasi pikaisesti.';
$lang['i_chooselang'] = 'Valitse kieli';
diff --git a/inc/lang/fo/lang.php b/inc/lang/fo/lang.php
index 9f51824db..161e7321a 100644
--- a/inc/lang/fo/lang.php
+++ b/inc/lang/fo/lang.php
@@ -168,5 +168,4 @@ $lang['img_copyr'] = 'Upphavsrættur';
$lang['img_format'] = 'Snið';
$lang['img_camera'] = 'Fototól';
$lang['img_keywords'] = 'Evnisorð';
-$lang['authmodfailed'] = 'Brek við validering av brúkarasamansetingv. Fá samband við umboðsstjóran á hesi wiki.';
$lang['authtempfail'] = 'Validering av brúkara virkar fyribils ikki. Um hetta er varandi, fá so samband við umboðsstjóran á hesi wiki.';
diff --git a/inc/lang/fr/diff.txt b/inc/lang/fr/diff.txt
index 8569f3497..d1230ccaf 100644
--- a/inc/lang/fr/diff.txt
+++ b/inc/lang/fr/diff.txt
@@ -1,4 +1,4 @@
====== Différences ======
-Cette page vous affiche les différences entre la révision choisie et la version actuelle de la page.
+Ci-dessous, les différences entre deux révisions de la page.
diff --git a/inc/lang/fr/lang.php b/inc/lang/fr/lang.php
index adeb175ef..44bc0f859 100644
--- a/inc/lang/fr/lang.php
+++ b/inc/lang/fr/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * french language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Sébastien Bauer <sebastien.bauer@advalvas.be>
* @author Antoine Fixary <antoine.fixary@freesbee.fr>
* @author cumulus <pta-n56@myamail.com>
@@ -27,6 +27,7 @@
* @author Olivier DUVAL <zorky00@gmail.com>
* @author Anael Mobilia <contrib@anael.eu>
* @author Bruno Veilleux <bruno.vey@gmail.com>
+ * @author Emmanuel <seedfloyd@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -70,6 +71,7 @@ $lang['btn_revert'] = 'Restaurer';
$lang['btn_register'] = 'S\'enregistrer';
$lang['btn_apply'] = 'Appliquer';
$lang['btn_media'] = 'Gestionnaire de médias';
+$lang['btn_deleteuser'] = 'Supprimer mon compte';
$lang['loggedinas'] = 'Connecté en tant que ';
$lang['user'] = 'Utilisateur';
$lang['pass'] = 'Mot de passe';
@@ -81,6 +83,7 @@ $lang['fullname'] = 'Nom';
$lang['email'] = 'Adresse de courriel';
$lang['profile'] = 'Profil utilisateur';
$lang['badlogin'] = 'L\'utilisateur ou le mot de passe est incorrect.';
+$lang['badpassconfirm'] = 'Désolé, le mot de passe est erroné';
$lang['minoredit'] = 'Modification mineure';
$lang['draftdate'] = 'Brouillon enregistré de manière automatique le';
$lang['nosecedit'] = 'La page a changé entre temps, les informations de la section sont obsolètes ; la page complète a été chargée à la place.';
@@ -97,6 +100,11 @@ $lang['profna'] = 'Ce wiki ne permet pas de modifier les profils'
$lang['profnochange'] = 'Pas de modification, rien à faire.';
$lang['profnoempty'] = 'Un nom ou une adresse de courriel vide n\'est pas permis.';
$lang['profchanged'] = 'Mise à jour du profil réussie.';
+$lang['profnodelete'] = 'Ce wiki ne permet pas la suppression des utilisateurs';
+$lang['profdeleteuser'] = 'Supprimer le compte';
+$lang['profdeleted'] = 'Votre compte utilisateur a été supprimé de ce wiki';
+$lang['profconfdelete'] = 'Je veux supprimer mon compte sur ce wiki. </br> Cette action est irréversible.';
+$lang['profconfdeletemissing'] = 'La case de confirmation n\'est pas cochée';
$lang['pwdforget'] = 'Mot de passe oublié ? Obtenez-en un nouveau';
$lang['resendna'] = 'Ce wiki ne permet pas le renvoi de mot de passe.';
$lang['resendpwd'] = 'Définir un nouveau mot de passe pour';
@@ -279,7 +287,6 @@ $lang['subscr_m_receive'] = 'Recevoir';
$lang['subscr_style_every'] = 'Recevoir un courriel à chaque modification';
$lang['subscr_style_digest'] = 'Courriel, tous les %.2f jours, résumant les modifications de chaque page';
$lang['subscr_style_list'] = 'Liste des pages modifiées depuis le dernier courriel (tous les %.2f jours)';
-$lang['authmodfailed'] = 'Mauvais paramétrage de l\'authentification. Merci d\'en informer l\'administrateur du wiki.';
$lang['authtempfail'] = 'L\'authentification est temporairement indisponible. Si cela perdure, merci d\'en informer l\'administrateur du wiki.';
$lang['authpwdexpire'] = 'Votre mot de passe expirera dans %d jours, vous devriez le changer bientôt.';
$lang['i_chooselang'] = 'Choisissez votre langue';
diff --git a/inc/lang/gl/lang.php b/inc/lang/gl/lang.php
index fa49c1121..65967a3b5 100644
--- a/inc/lang/gl/lang.php
+++ b/inc/lang/gl/lang.php
@@ -258,7 +258,6 @@ $lang['subscr_m_unsubscribe'] = 'Desubscribir';
$lang['subscr_m_subscribe'] = 'Subscribir';
$lang['subscr_m_receive'] = 'Recibir';
$lang['subscr_style_every'] = 'correo-e en cada troco';
-$lang['authmodfailed'] = 'Configuración de autenticación de usuario incorrecta. Por favor, informa ao Administrador do teu Wiki.';
$lang['authtempfail'] = 'A autenticación de usuario non está dispoñible de xeito temporal. De persistir esta situación, por favor, informa ao Administrador do teu Wiki.';
$lang['authpwdexpire'] = 'A túa contrasinal expirará en %d días, deberías cambiala pronto.';
$lang['i_chooselang'] = 'Escolle o teu idioma';
diff --git a/inc/lang/he/lang.php b/inc/lang/he/lang.php
index 4853a0e2b..4ddc3a019 100644
--- a/inc/lang/he/lang.php
+++ b/inc/lang/he/lang.php
@@ -1,15 +1,15 @@
<?php
+
/**
- * Hebrew language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @link http://sourceforge.net/projects/hebdokuwiki/
+ *
* @author גיא שפר <guysoft@ort.org.il>
* @author Denis Simakov <akinoame1@gmail.com>
* @author Dotan Kamber <kamberd@yahoo.com>
* @author Moshe Kaplan <mokplan@gmail.com>
* @author Yaron Yogev <yaronyogev@gmail.com>
* @author Yaron Shahrabani <sh.yaron@gmail.com>
+ * @author Roy Zahor <roy.zahor@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'rtl';
@@ -45,11 +45,13 @@ $lang['btn_backtomedia'] = 'חזרה לבחירת קובץ מדיה';
$lang['btn_subscribe'] = 'מעקב אחרי שינוים';
$lang['btn_profile'] = 'עדכון הפרופיל';
$lang['btn_reset'] = 'איפוס';
+$lang['btn_resendpwd'] = 'הגדר סיסמה חדשה';
$lang['btn_draft'] = 'עריכת טיוטה';
$lang['btn_recover'] = 'שחזור טיוטה';
$lang['btn_draftdel'] = 'מחיקת טיוטה';
$lang['btn_revert'] = 'שחזור';
$lang['btn_register'] = 'הרשמה';
+$lang['btn_media'] = 'מנהל המדיה';
$lang['loggedinas'] = 'נכנסת בשם';
$lang['user'] = 'שם משתמש';
$lang['pass'] = 'ססמה';
@@ -61,6 +63,7 @@ $lang['fullname'] = 'שם מלא';
$lang['email'] = 'דוא״ל';
$lang['profile'] = 'פרופיל המשתמש';
$lang['badlogin'] = 'שם המשתמש או הססמה שגויים, עמך הסליחה';
+$lang['badpassconfirm'] = 'מצטערים, הסיסמה שגויה';
$lang['minoredit'] = 'שינוים מזעריים';
$lang['draftdate'] = 'הטיוטה נשמרה אוטומטית ב־';
$lang['nosecedit'] = 'הדף השתנה בינתיים, הקטע שערכת אינו מעודכן - העמוד כולו נטען במקום זאת.';
@@ -79,6 +82,7 @@ $lang['profnoempty'] = 'השם וכתובת הדוא״ל לא יכול
$lang['profchanged'] = 'הפרופיל עודכן בהצלחה';
$lang['pwdforget'] = 'שכחת את הססמה שלך? ניתן לקבל חדשה';
$lang['resendna'] = 'הוויקי הזה אינו תומך בחידוש ססמה';
+$lang['resendpwd'] = 'הגדר סיסמא חדשה בעבור';
$lang['resendpwdmissing'] = 'עליך למלא את כל השדות, עמך הסליחה.';
$lang['resendpwdnouser'] = 'משתמש בשם זה לא נמצא במסד הנתונים, עמך הסליחה.';
$lang['resendpwdbadauth'] = 'קוד אימות זה אינו תקף. יש לוודא כי נעשה שימוש בקישור האימות המלא, עמך הסליחה.';
@@ -93,7 +97,7 @@ $lang['txt_filename'] = 'העלאה בשם (נתון לבחירה)';
$lang['txt_overwrt'] = 'שכתוב על קובץ קיים';
$lang['lockedby'] = 'נעול על ידי';
$lang['lockexpire'] = 'הנעילה פגה';
-$lang['js']['willexpire'] = 'הנעילה תחלוף עוד זמן קצר. \nלמניעת התנגשויות יש להשתמש בכפתור הרענון מטה כדי לאפס את מד משך הנעילה.';
+$lang['js']['willexpire'] = 'הנעילה תחלוף עוד זמן קצר. \nלמניעת התנגשויות יש להשתמש בכפתור הרענון מטה כדי לאפס את מד משך הנעילה.';
$lang['js']['notsavedyet'] = 'שינויים שלא נשמרו ילכו לאיבוד.';
$lang['js']['searchmedia'] = 'חיפוש אחר קבצים';
$lang['js']['keepopen'] = 'השארת חלון פתוח על הבחירה';
@@ -124,6 +128,11 @@ $lang['js']['nosmblinks'] = 'קישור לכונני שיתוף של Window
$lang['js']['linkwiz'] = 'אשף הקישורים';
$lang['js']['linkto'] = 'קישור אל:';
$lang['js']['del_confirm'] = 'באמת למחוק?';
+$lang['js']['media_diff'] = 'הצגת הבדלים:';
+$lang['js']['media_diff_both'] = 'זה לצד זה';
+$lang['js']['media_select'] = 'בחר קבצים...';
+$lang['js']['media_upload_btn'] = 'העלאה';
+$lang['js']['media_drop'] = 'גרור לכאן קבצים בכדי להעלותם';
$lang['rssfailed'] = 'אירע כשל בעת קבלת הזנה זו:';
$lang['nothingfound'] = 'לא נמצאו תוצאות.';
$lang['mediaselect'] = 'קובצי מדיה';
@@ -158,6 +167,9 @@ $lang['yours'] = 'הגרסה שלך';
$lang['diff'] = 'הצגת שינוים מגרסה זו ועד הנוכחית';
$lang['diff2'] = 'הצגת הבדלים בין הגרסאות שנבחרו';
$lang['difflink'] = 'קישור לתצוגה השוואה זו';
+$lang['diff_type'] = 'הצגת הבדלים:';
+$lang['diff_inline'] = 'באותה השורה';
+$lang['diff_side'] = 'זה לצד זה';
$lang['line'] = 'שורה';
$lang['breadcrumb'] = 'ביקורים אחרונים';
$lang['youarehere'] = 'זהו מיקומך';
@@ -170,11 +182,14 @@ $lang['external_edit'] = 'עריכה חיצונית';
$lang['summary'] = 'תקציר העריכה';
$lang['noflash'] = '<a href="http://www.adobe.com/products/flashplayer/">תוסף פלאש לדפדפן</a> נדרש כדי להציג תוכן זה.';
$lang['download'] = 'הורדת מקטע';
+$lang['tools'] = 'כלים';
$lang['mail_newpage'] = 'דף נוסף:';
$lang['mail_changed'] = 'דף שונה:';
$lang['mail_subscribe_list'] = 'דפים שהשתנו במרחב השם:';
$lang['mail_new_user'] = 'משתמש חדש:';
$lang['mail_upload'] = 'קובץ הועלה:';
+$lang['pages_changes'] = 'דפים';
+$lang['media_changes'] = 'קבצי מדיה';
$lang['qb_bold'] = 'טקסט מודגש';
$lang['qb_italic'] = 'טקסט נטוי';
$lang['qb_underl'] = 'טקסט עם קו תחתון';
@@ -215,6 +230,8 @@ $lang['img_copyr'] = 'זכויות יוצרים';
$lang['img_format'] = 'מבנה';
$lang['img_camera'] = 'מצלמה';
$lang['img_keywords'] = 'מילות מפתח';
+$lang['img_width'] = 'רוחב';
+$lang['img_height'] = 'גובה';
$lang['subscr_subscribe_success'] = '%s נוסף לרשימת המינויים לדף %s';
$lang['subscr_subscribe_error'] = 'אירעה שגיאה בהוספת %s לרשימת המינויים לדף %s';
$lang['subscr_subscribe_noaddress'] = 'אין כתובת המשויכת עם הכניסה שלך, נא ניתן להוסיף אותך לרשימת המינויים';
@@ -231,7 +248,6 @@ $lang['subscr_m_receive'] = 'קבלת';
$lang['subscr_style_every'] = 'דוא״ל עם כל שינוי';
$lang['subscr_style_digest'] = 'הודעת דוא״ל המציגה את כל השינויים בכל עמוד (בכל %.2f ימים)';
$lang['subscr_style_list'] = 'רשימת השינויים בדפים מאז הודעת הדוא״ל האחרונה (בכל %.2f ימים)';
-$lang['authmodfailed'] = 'תצורת אימות המשתמשים אינה תקינה. נא ליידע את מנהל הוויקי.';
$lang['authtempfail'] = 'אימות משתמשים אינו זמין כרגע. אם מצב זה נמשך נא ליידע את מנהל הוויקי.';
$lang['i_chooselang'] = 'נא לבחור שפה';
$lang['i_installer'] = 'תכנית ההתקנה של DokuWiki';
@@ -265,3 +281,12 @@ $lang['hours'] = 'לפני %d שעות';
$lang['minutes'] = 'לפני %d דקות';
$lang['seconds'] = 'לפני %d שניות';
$lang['wordblock'] = 'השינויים שלך לא נשמרו כיוון שהם מכילים טקסט חסום (ספאם).';
+$lang['media_searchtab'] = 'חיפוש';
+$lang['media_file'] = 'קובץ';
+$lang['media_viewtab'] = 'תצוגה';
+$lang['media_edittab'] = 'עריכה';
+$lang['media_historytab'] = 'היסטוריה';
+$lang['media_list_rows'] = 'שורות';
+$lang['media_sort_name'] = 'שם';
+$lang['media_sort_date'] = 'תאריך';
+$lang['media_namespaces'] = 'בחר מרחב שמות';
diff --git a/inc/lang/hi/diff.txt b/inc/lang/hi/diff.txt
new file mode 100644
index 000000000..6f88c1985
--- /dev/null
+++ b/inc/lang/hi/diff.txt
@@ -0,0 +1,3 @@
+======असमानता======
+
+यह आपको पृष्ठ के दो संस्करणों के बीच असमानता को दर्शाता है. \ No newline at end of file
diff --git a/inc/lang/hi/lang.php b/inc/lang/hi/lang.php
index d2021fcae..184eeedbc 100644
--- a/inc/lang/hi/lang.php
+++ b/inc/lang/hi/lang.php
@@ -1,15 +1,11 @@
<?php
+
/**
- * hi language file
- *
- * This file was initially built by fetching translations from other
- * Wiki projects. See the @url lines below. Additional translations
- * and fixes where done for DokuWiki by the people mentioned in the
- * lines starting with @author
- *
- * @url http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/languages/messages/MessagesHi.php?view=co
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Abhinav Tyagi <abhinavtyagi11@gmail.com>
* @author yndesai@gmail.com
+ * @author Santosh Joshi <sanjujoshhi@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -44,6 +40,12 @@ $lang['btn_backlink'] = 'पिछली कड़ियाँ';
$lang['btn_backtomedia'] = 'मीडिया फाइल चयन पर पीछे जायें';
$lang['btn_subscribe'] = 'सदस्यता प्रबंधन';
$lang['btn_profile'] = 'परिचय संपादित करें';
+$lang['btn_resendpwd'] = 'नया पासवर्ड सेट करें';
+$lang['btn_draft'] = 'प्रारूप सम्पादित करें';
+$lang['btn_draftdel'] = 'प्रारूप मिटायें';
+$lang['btn_revert'] = 'वापस लौटाएं';
+$lang['btn_apply'] = 'लागू करें';
+$lang['btn_deleteuser'] = 'खाता मिटायें';
$lang['user'] = 'उपयोगकर्ता का नाम';
$lang['pass'] = 'गुप्त शब्द';
$lang['newpass'] = 'नव गुप्त शब्द';
diff --git a/inc/lang/hr/lang.php b/inc/lang/hr/lang.php
index a607210d7..f19610827 100644
--- a/inc/lang/hr/lang.php
+++ b/inc/lang/hr/lang.php
@@ -231,7 +231,6 @@ $lang['subscr_m_receive'] = 'Primaj';
$lang['subscr_style_every'] = 'email za svaku promjenu';
$lang['subscr_style_digest'] = 'email s kratakim prikazom promjena za svaku stranicu (svaka %.2f dana)';
$lang['subscr_style_list'] = 'listu promijenjenih stranica od zadnjeg primljenog email-a (svaka %.2f dana)';
-$lang['authmodfailed'] = 'Greška u konfiguraciji korisničke autentifikacije. Molimo Vas da kontaktirate administratora.';
$lang['authtempfail'] = 'Autentifikacija korisnika je privremeno nedostupna. Molimo Vas da kontaktirate administratora.';
$lang['i_chooselang'] = 'Izaberite vaš jezik';
$lang['i_installer'] = 'DokuWiki instalacija';
diff --git a/inc/lang/hu/lang.php b/inc/lang/hu/lang.php
index b332b9a83..2622934c2 100644
--- a/inc/lang/hu/lang.php
+++ b/inc/lang/hu/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Hungarian language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Ziegler Gábor <gziegler@freemail.hu>
* @author Sandor TIHANYI <stihanyi+dw@gmail.com>
* @author Siaynoq Mage <siaynoqmage@gmail.com>
@@ -11,6 +11,7 @@
* @author Sándor TIHANYI <stihanyi+dw@gmail.com>
* @author David Szabo <szabo.david@gyumolcstarhely.hu>
* @author Marton Sebok <sebokmarton@gmail.com>
+ * @author Serenity87HUN <anikototh87@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -54,6 +55,7 @@ $lang['btn_revert'] = 'Helyreállítás';
$lang['btn_register'] = 'Regisztráció';
$lang['btn_apply'] = 'Alkalmaz';
$lang['btn_media'] = 'Médiakezelő';
+$lang['btn_deleteuser'] = 'Felhasználói fiókom eltávolítása';
$lang['loggedinas'] = 'Belépett felhasználó: ';
$lang['user'] = 'Azonosító';
$lang['pass'] = 'Jelszó';
@@ -65,6 +67,7 @@ $lang['fullname'] = 'Teljes név';
$lang['email'] = 'E-Mail';
$lang['profile'] = 'Személyes beállítások';
$lang['badlogin'] = 'Sajnáljuk, az azonosító vagy a jelszó nem jó.';
+$lang['badpassconfirm'] = 'Hibás jelszó';
$lang['minoredit'] = 'Apróbb változások';
$lang['draftdate'] = 'Piszkozat elmentve:';
$lang['nosecedit'] = 'Időközben megváltozott az oldal, emiatt a szakasz nem friss. Töltsd újra az egész oldalt!';
@@ -81,6 +84,11 @@ $lang['profna'] = 'Ez a wiki nem támogatja a személyes beállí
$lang['profnochange'] = 'Nem történt változás.';
$lang['profnoempty'] = 'A név és e-mail mező nem maradhat üresen!';
$lang['profchanged'] = 'A személyes beállítások változtatása megtörtént.';
+$lang['profnodelete'] = 'Ez a wiki nem támogatja a felhasználói fiókok törlését';
+$lang['profdeleteuser'] = 'Felhasználói fiók törlése';
+$lang['profdeleted'] = 'Felhasználói fiókodat eltávolítottuk erről a wiki-ről.';
+$lang['profconfdelete'] = 'Szeretném eltávolítani a felhasználói fiókomat erről a wikiről. <br/> Ez a cselekvés nem visszavonható.';
+$lang['profconfdeletemissing'] = 'A megerősítő négyzet nincs bepipálva';
$lang['pwdforget'] = 'Elfelejtetted a jelszavad? Itt kérhetsz újat';
$lang['resendna'] = 'Ez a wiki nem támogatja a jelszó újraküldést.';
$lang['resendpwd'] = 'Új jelszó beállítása a következőhöz:';
@@ -264,7 +272,6 @@ $lang['subscr_m_receive'] = 'Küldj';
$lang['subscr_style_every'] = 'e-mailt minden változásról';
$lang['subscr_style_digest'] = 'összefoglaló e-mailt oldalanként (minden %.2f nap)';
$lang['subscr_style_list'] = 'egy listát a módosított oldalakról a legutóbbi e-mail óta (minden %.2f nap)';
-$lang['authmodfailed'] = 'Hibás felhasználó-azonosítási módszer van beállítva. Légy szíves értesítsd az Adminisztrátorokat!';
$lang['authtempfail'] = 'A felhasználó azonosítás átmenetileg nem működik. Ha sokáig így lenne, légy szíves értesítsd az Adminisztrátorokat!';
$lang['authpwdexpire'] = 'A jelszavad %d nap múlva lejár, hamarosan meg kell változtatnod.';
$lang['i_chooselang'] = 'Válassz nyelvet';
diff --git a/inc/lang/ia/lang.php b/inc/lang/ia/lang.php
index e8a11479c..144dfe33b 100644
--- a/inc/lang/ia/lang.php
+++ b/inc/lang/ia/lang.php
@@ -227,7 +227,6 @@ $lang['subscr_m_unsubscribe'] = 'Cancellar subscription';
$lang['subscr_m_subscribe'] = 'Subscriber';
$lang['subscr_m_receive'] = 'Reciper';
$lang['subscr_style_every'] = 'un message pro cata modification';
-$lang['authmodfailed'] = 'Configuration incorrecte de authentication de usator. Per favor informa le administrator de tu wiki.';
$lang['authtempfail'] = 'Le authentication de usator temporarimente non es disponibile. Si iste situation persiste, per favor informa le administrator de tu wiki.';
$lang['i_chooselang'] = 'Selige tu lingua';
$lang['i_installer'] = 'Installator de DokuWiki';
diff --git a/inc/lang/id/lang.php b/inc/lang/id/lang.php
index 6c6d1c70f..1c8610923 100644
--- a/inc/lang/id/lang.php
+++ b/inc/lang/id/lang.php
@@ -39,7 +39,6 @@ $lang['btn_back'] = 'Kembali';
$lang['btn_backlink'] = 'Backlinks';
$lang['btn_backtomedia'] = 'Kembali ke Pilihan Mediafile';
$lang['btn_subscribe'] = 'Ikuti Perubahan';
-$lang['btn_unsubscribe'] = 'Berhenti Ikuti Perubahan';
$lang['btn_profile'] = 'Ubah Profil';
$lang['btn_reset'] = 'Reset';
$lang['btn_draft'] = 'Edit draft';
@@ -168,12 +167,6 @@ $lang['img_copyr'] = 'Hakcipta';
$lang['img_format'] = 'Format';
$lang['img_camera'] = 'Kamera';
$lang['img_keywords'] = 'Katakunci';
-$lang['subscribe_success'] = 'Penambahan %s ke data subsripsi untuk %s';
-$lang['subscribe_error'] = 'Gagal menambahkan %s ke data subsripsi untuk %s';
-$lang['subscribe_noaddress'] = 'Tidak ditemukan alamat yang berhubungan dengan login Anda, Anda tidak dapat menambahkan daftar subscription';
-$lang['unsubscribe_success'] = 'Menghapus %s dari daftar subscription untuk %s';
-$lang['unsubscribe_error'] = 'Gagal menghapus %s dari daftar subscription untuk %s';
-$lang['authmodfailed'] = 'Konfigurasi autentikasi user tidak valid. Harap informasikan admin Wiki Anda.';
$lang['authtempfail'] = 'Autentikasi user saat ini sedang tidak dapat digunakan. Jika kejadian ini berlanjut, Harap informasikan admin Wiki Anda.';
$lang['i_chooselang'] = 'Pilih bahasa';
$lang['i_installer'] = 'Instalasi DokuWiki';
diff --git a/inc/lang/is/lang.php b/inc/lang/is/lang.php
index 78ae7e249..fbc7e9049 100644
--- a/inc/lang/is/lang.php
+++ b/inc/lang/is/lang.php
@@ -44,7 +44,6 @@ $lang['btn_back'] = 'Til baka';
$lang['btn_backlink'] = 'Hvað tengist hingað';
$lang['btn_backtomedia'] = 'Aftur til miðlaskrá';
$lang['btn_subscribe'] = 'Vakta';
-$lang['btn_unsubscribe'] = 'Afvakta';
$lang['btn_profile'] = 'Uppfæra notanda';
$lang['btn_reset'] = 'Endurstilla';
$lang['btn_draft'] = 'Breyta uppkasti';
diff --git a/inc/lang/it/lang.php b/inc/lang/it/lang.php
index 92bf5fea8..5300dfd2a 100644
--- a/inc/lang/it/lang.php
+++ b/inc/lang/it/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Italian language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Giorgio Vecchiocattivi <giorgio@vecchio.it>
* @author Roberto Bolli [http://www.rbnet.it/]
* @author Silvia Sargentoni <polinnia@tin.it>
@@ -15,6 +15,7 @@
* @author Jacopo Corbetta <jacopo.corbetta@gmail.com>
* @author Matteo Pasotti <matteo@xquiet.eu>
* @author snarchio@gmail.com
+ * @author Edmondo Di Tucci <snarchio@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -58,6 +59,7 @@ $lang['btn_revert'] = 'Ripristina';
$lang['btn_register'] = 'Registrazione';
$lang['btn_apply'] = 'Applica';
$lang['btn_media'] = 'Gestore Media';
+$lang['btn_deleteuser'] = 'Rimuovi il mio account';
$lang['loggedinas'] = 'Collegato come';
$lang['user'] = 'Nome utente';
$lang['pass'] = 'Password';
@@ -69,6 +71,7 @@ $lang['fullname'] = 'Nome completo';
$lang['email'] = 'Email';
$lang['profile'] = 'Profilo utente';
$lang['badlogin'] = 'Il nome utente o la password non sono validi.';
+$lang['badpassconfirm'] = 'La password è errata';
$lang['minoredit'] = 'Modifiche minori';
$lang['draftdate'] = 'Bozza salvata in automatico il';
$lang['nosecedit'] = 'La pagina è stata modificata nel frattempo; è impossibile modificare solo la sezione scelta, quindi è stata caricata la pagina intera.';
@@ -85,6 +88,11 @@ $lang['profna'] = 'Questo wiki non supporta modifiche al profilo'
$lang['profnochange'] = 'Nessuna modifica, niente da aggiornare.';
$lang['profnoempty'] = 'Nome o indirizzo email vuoti non sono consentiti.';
$lang['profchanged'] = 'Aggiornamento del profilo utente riuscito.';
+$lang['profnodelete'] = 'Questa wiki non supporta la cancellazione degli utenti';
+$lang['profdeleteuser'] = 'Elimina account';
+$lang['profdeleted'] = 'Il tuo account utente è stato rimosso da questa wiki';
+$lang['profconfdelete'] = 'Voglio rimuovere il mio account da questa wiki. <br/> Questa operazione non può essere annullata.';
+$lang['profconfdeletemissing'] = 'La check box di conferma non è selezionata';
$lang['pwdforget'] = 'Hai dimenticato la password? Richiedine una nuova';
$lang['resendna'] = 'Questo wiki non supporta l\'invio di nuove password.';
$lang['resendpwd'] = 'Imposta nuova password per';
@@ -266,7 +274,6 @@ $lang['subscr_m_receive'] = 'Ricevi';
$lang['subscr_style_every'] = 'email per ogni modifica';
$lang['subscr_style_digest'] = 'email di riassunto dei cambiamenti per ogni pagina (ogni %.2f giorni)';
$lang['subscr_style_list'] = 'lista delle pagine cambiate dall\'ultima email (ogni %.2f giorni)';
-$lang['authmodfailed'] = 'La configurazione dell\'autenticazione non è corretta. Informa l\'amministratore di questo wiki.';
$lang['authtempfail'] = 'L\'autenticazione è temporaneamente non disponibile. Se questa situazione persiste, informa l\'amministratore di questo wiki.';
$lang['authpwdexpire'] = 'La tua password scadrà in %d giorni, dovresti cambiarla quanto prima.';
$lang['i_chooselang'] = 'Scegli la lingua';
diff --git a/inc/lang/ja/lang.php b/inc/lang/ja/lang.php
index 34ff5b21d..b032e1ce5 100644
--- a/inc/lang/ja/lang.php
+++ b/inc/lang/ja/lang.php
@@ -1,14 +1,16 @@
<?php
+
/**
- * japanese language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Yuji Takenaka <webmaster@davilin.com>
* @author Ikuo Obataya <i.obataya@gmail.com>
* @author Daniel Dupriest <kououken@gmail.com>
* @author Kazutaka Miyasaka <kazmiya@gmail.com>
* @author Taisuke Shimamoto <dentostar@gmail.com>
* @author Satoshi Sahara <sahara.satoshi@gmail.com>
+ * @author Hideaki SAWADA <chuno@live.jp>
+ * @author Hideaki SAWADA <sawadakun@live.jp>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -52,6 +54,7 @@ $lang['btn_revert'] = '元に戻す';
$lang['btn_register'] = 'ユーザー登録';
$lang['btn_apply'] = '適用';
$lang['btn_media'] = 'メディアマネージャー';
+$lang['btn_deleteuser'] = '自分のアカウントの抹消';
$lang['loggedinas'] = 'ようこそ';
$lang['user'] = 'ユーザー名';
$lang['pass'] = 'パスワード';
@@ -63,6 +66,7 @@ $lang['fullname'] = 'フルネーム';
$lang['email'] = 'メールアドレス';
$lang['profile'] = 'ユーザー情報';
$lang['badlogin'] = 'ユーザー名かパスワードが違います。';
+$lang['badpassconfirm'] = 'パスワードが間違っています。';
$lang['minoredit'] = '小変更';
$lang['draftdate'] = 'ドラフト保存日時:';
$lang['nosecedit'] = 'ページ内容が変更されていますがセクション情報が古いため、代わりにページ全体をロードしました。';
@@ -79,6 +83,11 @@ $lang['profna'] = 'ユーザー情報の変更は出来ません'
$lang['profnochange'] = '変更点はありませんでした。';
$lang['profnoempty'] = 'ユーザー名とメールアドレスを入力して下さい。';
$lang['profchanged'] = 'ユーザー情報は更新されました。';
+$lang['profnodelete'] = 'この wiki はユーザーを削除できない。';
+$lang['profdeleteuser'] = 'アカウントの削除';
+$lang['profdeleted'] = 'このwikiからあなたのユーザーアカウントは削除済です。';
+$lang['profconfdelete'] = 'このwikiから自分のアカウント抹消を希望します。<br/> この操作は取消すことができません。';
+$lang['profconfdeletemissing'] = '確認のチェックボックスがチェックされていません。';
$lang['pwdforget'] = 'パスワードをお忘れですか?パスワード再発行';
$lang['resendna'] = 'パスワードの再発行は出来ません。';
$lang['resendpwd'] = '新しいパスワードをセット';
@@ -261,7 +270,6 @@ $lang['subscr_m_receive'] = '受信';
$lang['subscr_style_every'] = '全ての変更にメールを送信';
$lang['subscr_style_digest'] = 'それぞれのページへの変更の要約をメールする(%.2f 日毎)';
$lang['subscr_style_list'] = '前回のメールから変更されたページをリスト(%.2f 日毎)';
-$lang['authmodfailed'] = 'ユーザー認証の設定が正しくありません。Wikiの管理者に連絡して下さい。';
$lang['authtempfail'] = 'ユーザー認証が一時的に使用できなくなっています。この状態が続いているようであれば、Wikiの管理者に連絡して下さい。';
$lang['authpwdexpire'] = 'あなたのパスワードは、あと%d日で有効期限が切れます。パスワードを変更してください。';
$lang['i_chooselang'] = '使用言語を選択してください';
@@ -288,6 +296,9 @@ $lang['i_pol1'] = 'パブリック Wiki(閲覧は全ての人
$lang['i_pol2'] = 'クローズド Wiki (登録ユーザーにのみ使用を許可)';
$lang['i_retry'] = '再試行';
$lang['i_license'] = 'あなたが作成したコンテンツが属するライセンスを選択してください:';
+$lang['i_license_none'] = 'ライセンス情報を表示しません。';
+$lang['i_pop_field'] = 'Dokuwiki の内容の向上に協力して下さい:';
+$lang['i_pop_label'] = '月に一回、DokuWikiの開発者に匿名の使用データを送信します。';
$lang['recent_global'] = '現在、<b>%s</b> 名前空間内の変更点を閲覧中です。<a href="%s">Wiki全体の最近の変更点の確認</a>もできます。';
$lang['years'] = '%d年前';
$lang['months'] = '%dカ月前';
diff --git a/inc/lang/km/lang.php b/inc/lang/km/lang.php
index c056e3acc..4800b6c23 100644
--- a/inc/lang/km/lang.php
+++ b/inc/lang/km/lang.php
@@ -36,7 +36,6 @@ $lang['btn_back'] = 'ត្រឡប់';
$lang['btn_backlink'] = 'ខ្សែចំណងក្រោយ';
$lang['btn_backtomedia'] = 'ទៅប្រព័នឯកសាវិញ';
$lang['btn_subscribe'] = 'ដាក់ដំណឹងផ្លស់ប្តូរ';
-$lang['btn_unsubscribe'] = 'ដកដំណឹងផ្លស់ប្តូរ';
$lang['btn_profile'] = 'កែប្រវត្តិរូប';
$lang['btn_reset'] = 'កមណត់ឡើងរិញ';
$lang['btn_draft'] = 'កែគំរោង';
@@ -140,8 +139,6 @@ $lang['mail_changed'] = 'ទំព័រប្រែប្រួល';
$lang['mail_new_user'] = 'អ្នកប្រើថ្មី';
$lang['mail_upload'] = 'រុញអក្សាលើង';
-$lang['nosmblinks'] = 'ខ្សែបន្តទៅ «Windows share» ប្រើបានក្នុង «Microsoft IE»។ អ្នកអាច កាត់ឬបិត ខ្សែនេះ។';
-
$lang['qb_bold'] = 'ឃ្វាមក្រស';
$lang['qb_italic'] = 'ឃ្វាមជ្រៀង';
$lang['qb_underl'] = 'ឃ្វាម';
@@ -165,13 +162,6 @@ $lang['qb_chars'] = 'អក្ខរៈពិសេស';
$lang['js']['del_confirm']= 'លុប';
$lang['admin_register']= 'តែមអ្នកប្រើ';//'Add new user';
-$lang['spell_start'] = 'ពិនិត្យអក្ខរាវិរុទ្ធ';//'Check Spelling';
-$lang['spell_stop'] = 'បណ្តកំរែ';
-$lang['spell_wait'] = 'សូមចាំ';//'Please wait...';
-$lang['spell_noerr'] = 'ឥតមានខុះទេ';
-$lang['spell_nosug'] = 'ឥតមានយោបល់';
-$lang['spell_change']= 'ដូរជំនួស';//'Change';
-
$lang['metaedit'] = 'កែទិន្នន័យអរូប';//'Edit Metadata';
$lang['metasaveerr'] = 'ពំអាចកត់រទិន្នន័យអរូប';//'Writing metadata failed';
$lang['metasaveok'] = 'ទិន្នន័យអរូប';
@@ -187,14 +177,7 @@ $lang['img_format'] = 'ធុនប្រភេទ';
$lang['img_camera'] = 'គ្រឿងថត';
$lang['img_keywords']= 'មេពាក្ស';//'Keywords';
-$lang['subscribe_success'] = ' ដកថែម %s ចូលបញ្ជីបរិវិសកមចំពោះ %s';
-$lang['subscribe_error'] = 'មានកំហុសពេលបន្ថែម %s ចូលបញ្ជីបរិវិសកមចំពោះ %s';
-$lang['subscribe_noaddress']= 'ឥតមានអាសយដ្ឋាន អ្នកមិនអាចកត់ចុល';
-$lang['unsubscribe_success']= 'ដក %s ចេញពីបញ្ជីបរិវិសកមចំពោះ %s';
-$lang['unsubscribe_error'] = 'មានកំហុសពេលដក %s​ ចេញពីបញ្ជីបរិវិសកមចំពោះ %s';
-
/* auth.class language support */
-$lang['authmodfailed'] = 'និនផ្ទៀងផ្ទាត់​ភាព​​ត្រឹមត្រូវបានទេ។ សុំទាកទងអ្នកក្របគ្រោង។';
$lang['authtempfail'] = 'ការផ្ទៀងផ្ទាត់​ភាព​​ត្រឹមត្រូវឥតដំនេ។ ប្រើ ....';
/* installer strings */
diff --git a/inc/lang/ko/admin.txt b/inc/lang/ko/admin.txt
index c61db1a42..2f81e8961 100644
--- a/inc/lang/ko/admin.txt
+++ b/inc/lang/ko/admin.txt
@@ -1,3 +1,3 @@
-====== 관리 작업 ======
+====== 관리 ======
-DokuWiki에서 사용 가능한 관리 작업 목록을 아래에서 찾을 수 있습니다. \ No newline at end of file
+도쿠위키에서 사용할 수 있는 관리 작업 목록을 아래에서 찾을 수 있습니다. \ No newline at end of file
diff --git a/inc/lang/ko/conflict.txt b/inc/lang/ko/conflict.txt
index 9b7764d46..b5420333b 100644
--- a/inc/lang/ko/conflict.txt
+++ b/inc/lang/ko/conflict.txt
@@ -1,5 +1,5 @@
====== 새 판 있음 ======
-편집한 문서의 새 판이 있습니다. 당신이 편집하고 있는 동안 다른 사람이 같은 파일을 편집하였을 경우 이런 일이 생길 수 있습니다.
+편집한 문서의 새 판이 있습니다. 당신이 편집하고 있는 동안 다른 사용자가 문서를 바꾸면 이런 일이 생길 수 있습니다.
-아래의 차이를 철저하게 검토하고 어떤 판을 저장하실지 결정하세요. **저장**을 선택하면 당신의 판이 저장됩니다. **취소**를 선택하면 현재 판이 유지됩니다. \ No newline at end of file
+아래의 차이를 철저하게 검토하고 어떤 판을 저장하실지 결정하세요. ''저장''을 선택하면 당신의 판이 저장됩니다. ''취소''를 선택하면 현재 판이 유지됩니다. \ No newline at end of file
diff --git a/inc/lang/ko/denied.txt b/inc/lang/ko/denied.txt
index 89d417f7b..cff844bf4 100644
--- a/inc/lang/ko/denied.txt
+++ b/inc/lang/ko/denied.txt
@@ -1,3 +1,3 @@
====== 권한 거절 ======
-계속할 수 있는 권한이 없습니다. 로그인하세요. \ No newline at end of file
+죄송하지만 계속할 수 있는 권한이 없습니다. 로그인하세요. \ No newline at end of file
diff --git a/inc/lang/ko/diff.txt b/inc/lang/ko/diff.txt
index 8237342f7..3fef83221 100644
--- a/inc/lang/ko/diff.txt
+++ b/inc/lang/ko/diff.txt
@@ -1,3 +1,3 @@
====== 차이 ======
-이 문서의 선택한 이전 판과 현재 판 사이의 차이를 보여줍니다. \ No newline at end of file
+문서의 선택한 두 판 사이의 차이를 보여줍니다. \ No newline at end of file
diff --git a/inc/lang/ko/draft.txt b/inc/lang/ko/draft.txt
index b655d7c92..7e700f725 100644
--- a/inc/lang/ko/draft.txt
+++ b/inc/lang/ko/draft.txt
@@ -1,5 +1,5 @@
====== 문서 초안 있음 ======
-이 문서의 마지막 편집 세션은 정상적으로 끝나지 않았습니다. DokuWiki는 작업 도중 자동으로 저장된 문서 초안을 사용해 편집을 계속 할 수 있습니다. 마지막 세션 동안 저장된 문서 초안을 아래에서 볼 수 있습니다.
+이 문서의 마지막 편집 세션은 올바르게 끝나지 않았습니다. 도쿠위키는 작업 도중 자동으로 저장된 초안을 사용해 편집을 계속 할 수 있습니다. 마지막 세션 동안 저장된 초안을 아래에서 볼 수 있습니다.
비정상적으로 끝난 편집 세션을 **되돌릴**지 여부를 결정하고, 자동으로 저장되었던 초안을 **삭제**하거나 편집 과정을 **취소**하세요. \ No newline at end of file
diff --git a/inc/lang/ko/edit.txt b/inc/lang/ko/edit.txt
index 87d1a9a95..8da90266c 100644
--- a/inc/lang/ko/edit.txt
+++ b/inc/lang/ko/edit.txt
@@ -1 +1 @@
-문서를 편집하고 **저장**을 누르세요. 위키 구문은 [[wiki:syntax]]를 참고하세요. 이 문서를 **더 좋게 만들 자신이 있을 때**에만 편집하세요. 연습을 하고 싶다면 먼저 [[playground:playground|연습장]]에 가서 연습하세요. \ No newline at end of file
+문서를 편집하고 ''저장''을 누르세요. 위키 구문은 [[wiki:syntax]]를 참고하세요. 문서를 **더 좋게 만들 자신이 있을 때**에만 편집하세요. 연습을 하고 싶다면 먼저 [[playground:playground|연습장]]에 가서 연습하세요. \ No newline at end of file
diff --git a/inc/lang/ko/editrev.txt b/inc/lang/ko/editrev.txt
index 911ea5f1b..8d3aeb813 100644
--- a/inc/lang/ko/editrev.txt
+++ b/inc/lang/ko/editrev.txt
@@ -1,2 +1,2 @@
-**문서의 이전 판을 선택했습니다!** 저장할 경우 이 데이터로 새 판을 만듭니다.
+**문서의 이전 판을 선택했습니다!** 저장하면 이 데이터로 새 판을 만듭니다.
---- \ No newline at end of file
diff --git a/inc/lang/ko/index.txt b/inc/lang/ko/index.txt
index a98bf877e..ce94e09c8 100644
--- a/inc/lang/ko/index.txt
+++ b/inc/lang/ko/index.txt
@@ -1,3 +1,3 @@
====== 사이트맵 ======
-[[doku>ko:namespaces|이름공간]]에서 정렬한 모든 문서의 목록입니다. \ No newline at end of file
+[[doku>ko:namespaces|이름공간]] 순으로 정렬한 모든 문서의 사이트맵입니다. \ No newline at end of file
diff --git a/inc/lang/ko/lang.php b/inc/lang/ko/lang.php
index 71edc2a3e..e6cae3db0 100644
--- a/inc/lang/ko/lang.php
+++ b/inc/lang/ko/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Korean language file
- *
- * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Hyun Kim <lawfully@gmail.com>
* @author jk Lee
* @author dongnak@gmail.com
@@ -10,6 +10,7 @@
* @author Seung-Chul Yoo <dryoo@live.com>
* @author erial2@gmail.com
* @author Myeongjin <aranet100@gmail.com>
+ * @author Gerrit Uitslag <klapinklapin@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -19,7 +20,7 @@ $lang['singlequoteopening'] = '‘';
$lang['singlequoteclosing'] = '’';
$lang['apostrophe'] = '’';
$lang['btn_edit'] = '문서 편집';
-$lang['btn_source'] = '내용 보기';
+$lang['btn_source'] = '원본 보기';
$lang['btn_show'] = '문서 보기';
$lang['btn_create'] = '문서 만들기';
$lang['btn_search'] = '찾기';
@@ -44,62 +45,69 @@ $lang['btn_backlink'] = '백링크';
$lang['btn_backtomedia'] = '미디어 파일 선택으로 돌아가기';
$lang['btn_subscribe'] = '구독 관리';
$lang['btn_profile'] = '개인 정보 바꾸기';
-$lang['btn_reset'] = '초기화';
+$lang['btn_reset'] = '재설정';
$lang['btn_resendpwd'] = '새 비밀번호 설정';
-$lang['btn_draft'] = '문서 초안 편집';
-$lang['btn_recover'] = '문서 초안 되돌리기';
-$lang['btn_draftdel'] = '문서 초안 삭제';
+$lang['btn_draft'] = '초안 편집';
+$lang['btn_recover'] = '초안 되돌리기';
+$lang['btn_draftdel'] = '초안 삭제';
$lang['btn_revert'] = '되돌리기';
$lang['btn_register'] = '등록';
$lang['btn_apply'] = '적용';
$lang['btn_media'] = '미디어 관리';
-$lang['loggedinas'] = '다음 사용자로 로그인';
+$lang['btn_deleteuser'] = '내 계정 제거';
+$lang['loggedinas'] = '로그인한 사용자';
$lang['user'] = '사용자 이름';
$lang['pass'] = '비밀번호';
$lang['newpass'] = '새 비밀번호';
$lang['oldpass'] = '현재 비밀번호 확인';
$lang['passchk'] = '비밀번호 다시 확인';
$lang['remember'] = '기억하기';
-$lang['fullname'] = '실제 이름';
+$lang['fullname'] = '실명';
$lang['email'] = '이메일';
$lang['profile'] = '개인 정보';
-$lang['badlogin'] = '사용자 이름이거나 비밀번호가 잘못되었습니다.';
+$lang['badlogin'] = '죄송하지만 사용자 이름이나 비밀번호가 잘못되었습니다.';
+$lang['badpassconfirm'] = '죄송하지만 비밀번호가 잘못되었습니다';
$lang['minoredit'] = '사소한 바뀜';
-$lang['draftdate'] = '문서 초안 자동 저장 시간';
-$lang['nosecedit'] = '한동안 문서가 바뀌어 세션 정보의 유효 시간이 지나 문서 전부를 다시 읽습니다.';
-$lang['regmissing'] = '모든 항목을 입력해야 합니다.';
-$lang['reguexists'] = '같은 이름을 사용하는 사용자가 있습니다.';
+$lang['draftdate'] = '초안 자동 저장 시간';
+$lang['nosecedit'] = '한동안 문서가 바뀌었으며, 문단 정보가 오래되어 문서 전체를 대신 열었습니다.';
+$lang['regmissing'] = '죄송하지만 모든 필드를 채워야 합니다.';
+$lang['reguexists'] = '죄송하지만 같은 이름을 사용하는 사용자가 있습니다.';
$lang['regsuccess'] = '사용자를 만들었으며 비밀번호는 이메일로 보냈습니다.';
$lang['regsuccess2'] = '사용자를 만들었습니다.';
$lang['regmailfail'] = '비밀번호를 이메일로 보낼 때 오류가 발생했습니다. 관리자에게 문의하세요!';
$lang['regbadmail'] = '이메일 주소가 잘못됐습니다 - 오류라고 생각하면 관리자에게 문의하세요';
-$lang['regbadpass'] = '새 비밀번호가 일치하지 않습니다. 다시 입력하세요.';
-$lang['regpwmail'] = 'DokuWiki 비밀번호';
+$lang['regbadpass'] = '새 비밀번호가 같지 않습니다. 다시 입력하세요.';
+$lang['regpwmail'] = '도쿠위키 비밀번호';
$lang['reghere'] = '계정이 없나요? 계정을 등록할 수 있습니다';
$lang['profna'] = '이 위키는 개인 정보 수정을 할 수 없습니다';
-$lang['profnochange'] = '바뀜이 없습니다.';
+$lang['profnochange'] = '바뀐 내용이 없습니다.';
$lang['profnoempty'] = '이름이나 이메일 주소가 비었습니다.';
$lang['profchanged'] = '개인 정보가 성공적으로 바뀌었습니다.';
+$lang['profnodelete'] = '이 위키는 사용자 삭제를 지원하지 않습니다';
+$lang['profdeleteuser'] = '계정 삭제';
+$lang['profdeleted'] = '내 사용자 계정이 이 위키에서 삭제되었습니다';
+$lang['profconfdelete'] = '이 위키에서 내 계정을 제거하고 싶습니다. <br/> 이 행동은 되돌릴 수 없습니다.';
+$lang['profconfdeletemissing'] = '선택하지 않은 확인 상자를 확인';
$lang['pwdforget'] = '비밀번호를 잊으셨나요? 비밀번호를 재설정할 수 있습니다';
$lang['resendna'] = '이 위키는 비밀번호 재설정을 지원하지 않습니다.';
$lang['resendpwd'] = '다음으로 새 비밀번호 보내기';
-$lang['resendpwdmissing'] = '모든 비밀번호를 입력해야 합니다.';
-$lang['resendpwdnouser'] = '등록된 사용자가 아닙니다.';
-$lang['resendpwdbadauth'] = '인증 코드가 잘못됐습니다. 잘못된 링크인지 확인하시기 바랍니다.';
+$lang['resendpwdmissing'] = '죄송하지만 모든 필드를 채워야 합니다.';
+$lang['resendpwdnouser'] = '죄송하지만 데이터베이스에서 이 사용자를 찾을 수 없습니다.';
+$lang['resendpwdbadauth'] = '죄송하지만 인증 코드가 올바르지 않습니다. 잘못된 확인 링크인지 확인하세요.';
$lang['resendpwdconfirm'] = '확인 링크를 이메일로 보냈습니다.';
-$lang['resendpwdsuccess'] = '새로운 비밀번호를 이메일로 보냈습니다.';
-$lang['license'] = '별도로 라이선스를 알리지 않을 경우, 이 위키의 내용은 다음의 라이선스에 따릅니다:';
-$lang['licenseok'] = '참고: 이 문서를 편집할 경우 다음의 라이선스에 동의함을 의미합니다:';
+$lang['resendpwdsuccess'] = '새 비밀번호를 이메일로 보냈습니다.';
+$lang['license'] = '별도로 명시하지 않을 경우, 이 위키의 내용은 다음의 라이선스에 따라 사용할 수 있습니다:';
+$lang['licenseok'] = '참고: 이 문서를 편집하면 내용은 다음 라이선스에 따라 사용 허가에 동의합니다:';
$lang['searchmedia'] = '파일 이름 찾기:';
$lang['searchmedia_in'] = '%s에서 찾기';
$lang['txt_upload'] = '올릴 파일 선택';
$lang['txt_filename'] = '올릴 파일 이름 입력 (선택 사항)';
$lang['txt_overwrt'] = '기존 파일에 덮어쓰기';
-$lang['maxuploadsize'] = '최대 올리기 용량입니다. 파일당 %s입니다.';
+$lang['maxuploadsize'] = '최대 올리기 용량. 파일당 %s입니다.';
$lang['lockedby'] = '현재 잠겨진 사용자';
$lang['lockexpire'] = '잠금 해제 시간';
$lang['js']['willexpire'] = '잠시 후 편집 잠금이 해제됩니다.\n편집 충돌을 피하려면 미리 보기를 눌러 잠금 시간을 다시 설정하세요.';
-$lang['js']['notsavedyet'] = '저장하지 않은 바뀜이 지워집니다.';
+$lang['js']['notsavedyet'] = '저장하지 않은 바뀜이 사라집니다.';
$lang['js']['searchmedia'] = '파일 찾기';
$lang['js']['keepopen'] = '선택할 때 창을 열어 놓기';
$lang['js']['hidedetails'] = '자세한 정보 숨기기';
@@ -120,10 +128,10 @@ $lang['js']['medialnk'] = '자세한 정보 문서로 링크';
$lang['js']['mediadirect'] = '원본으로 직접 링크';
$lang['js']['medianolnk'] = '링크 없음';
$lang['js']['medianolink'] = '그림을 링크하지 않음';
-$lang['js']['medialeft'] = '왼쪽 배치';
-$lang['js']['mediaright'] = '오른쪽 배치';
-$lang['js']['mediacenter'] = '가운데 배치';
-$lang['js']['medianoalign'] = '배치 없음';
+$lang['js']['medialeft'] = '왼쪽으로 그림 배치';
+$lang['js']['mediaright'] = '오른쪽으로 그림 배치';
+$lang['js']['mediacenter'] = '가운데으로 그림 배치';
+$lang['js']['medianoalign'] = '배치하지 않음';
$lang['js']['nosmblinks'] = '윈도우 공유 파일과의 연결은 마이크로소프트 인터넷 익스플로러에서만 동작합니다.\n그러나 링크를 복사하거나 붙여넣기를 할 수 있습니다.';
$lang['js']['linkwiz'] = '링크 마법사';
$lang['js']['linkto'] = '다음으로 연결:';
@@ -136,37 +144,37 @@ $lang['js']['media_diff_portions'] = '쪼개 보기';
$lang['js']['media_select'] = '파일 선택…';
$lang['js']['media_upload_btn'] = '올리기';
$lang['js']['media_done_btn'] = '완료';
-$lang['js']['media_drop'] = '올릴 파일을 끌어넣으세요';
-$lang['js']['media_cancel'] = '삭제';
+$lang['js']['media_drop'] = '올릴 파일을 여기에 끌어넣으세요';
+$lang['js']['media_cancel'] = '제거';
$lang['js']['media_overwrt'] = '기존 파일에 덮어쓰기';
$lang['rssfailed'] = '이 피드를 가져오는 동안 오류가 발생했습니다:';
$lang['nothingfound'] = '아무 것도 없습니다.';
-$lang['mediaselect'] = '미디어 파일 선택';
+$lang['mediaselect'] = '미디어 파일';
$lang['fileupload'] = '미디어 파일 올리기';
$lang['uploadsucc'] = '올리기 성공';
$lang['uploadfail'] = '올리기를 실패했습니다. 잘못된 권한 때문일지도 모릅니다.';
-$lang['uploadwrong'] = '올리기를 거부했습니다. 금지된 파일 확장자입니다!';
+$lang['uploadwrong'] = '올리기가 거부되었습니다. 금지된 파일 확장자입니다!';
$lang['uploadexist'] = '파일이 이미 존재합니다.';
$lang['uploadbadcontent'] = '올린 파일이 %s 파일 확장자와 일치하지 않습니다.';
-$lang['uploadspam'] = '스팸 차단 목록이 올리기를 취소했습니다.';
-$lang['uploadxss'] = '악성 코드의 가능성이 있어 올리기를 취소했습니다.';
+$lang['uploadspam'] = '스팸 차단 목록이 올리기를 차단했습니다.';
+$lang['uploadxss'] = '악성 코드의 가능성이 있어 올리기를 차단했습니다.';
$lang['uploadsize'] = '올린 파일이 너무 큽니다. (최대 %s)';
$lang['deletesucc'] = '"%s" 파일이 삭제되었습니다.';
-$lang['deletefail'] = '"%s" 파일을 삭제할 수 없습니다 - 삭제 권한이 있는지 확인하세요.';
+$lang['deletefail'] = '"%s" 파일을 삭제할 수 없습니다 - 권한이 있는지 확인하세요.';
$lang['mediainuse'] = '"%s" 파일을 삭제할 수 없습니다 - 아직 사용 중입니다.';
$lang['namespaces'] = '이름공간';
-$lang['mediafiles'] = '사용 가능한 파일 목록';
+$lang['mediafiles'] = '사용할 수 있는 파일 목록';
$lang['accessdenied'] = '이 문서를 볼 권한이 없습니다.';
$lang['mediausage'] = '이 파일을 참고하려면 다음 문법을 사용하세요:';
$lang['mediaview'] = '원본 파일 보기';
-$lang['mediaroot'] = '루트 (root)';
+$lang['mediaroot'] = '루트';
$lang['mediaupload'] = '파일을 현재 이름공간으로 올립니다. 하위 이름공간으로 만들려면 선택한 파일 이름 앞에 쌍점(:)으로 구분되는 이름을 붙이면 됩니다. 파일을 드래그 앤 드롭해 선택할 수 있습니다.';
$lang['mediaextchange'] = '파일 확장자가 .%s에서 .%s(으)로 바뀌었습니다!';
$lang['reference'] = '참고';
$lang['ref_inuse'] = '다음 문서에서 아직 사용 중이므로 파일을 삭제할 수 없습니다:';
$lang['ref_hidden'] = '문서의 일부 참고는 읽을 수 있는 권한이 없습니다';
$lang['hits'] = '조회 수';
-$lang['quickhits'] = '일치하는 문서 이름';
+$lang['quickhits'] = '일치하는 문서이름';
$lang['toc'] = '목차';
$lang['current'] = '현재';
$lang['yours'] = '판';
@@ -179,22 +187,22 @@ $lang['diff_side'] = '다중 창 방식';
$lang['line'] = '줄';
$lang['breadcrumb'] = '추적';
$lang['youarehere'] = '현재 위치';
-$lang['lastmod'] = '마지막으로 수정함';
-$lang['by'] = '작성자';
-$lang['deleted'] = '삭제함';
+$lang['lastmod'] = '마지막으로 수정됨';
+$lang['by'] = '저자';
+$lang['deleted'] = '제거됨';
$lang['created'] = '새로 만듦';
$lang['restored'] = '이전 판으로 되돌림 (%s)';
-$lang['external_edit'] = '바깥 편집기';
+$lang['external_edit'] = '바깥 편집';
$lang['summary'] = '편집 요약';
-$lang['noflash'] = '이 콘텐츠를 표시하기 위해서 <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash 플러그인</a>이 필요합니다.';
+$lang['noflash'] = '이 내용을 표시하기 위해서 <a href="http://www.adobe.com/products/flashplayer/">Adobe 플래시 플러그인</a>이 필요합니다.';
$lang['download'] = '조각 다운로드';
$lang['tools'] = '도구';
$lang['user_tools'] = '사용자 도구';
$lang['site_tools'] = '사이트 도구';
$lang['page_tools'] = '문서 도구';
-$lang['skip_to_content'] = '콘텐츠 넘기기';
+$lang['skip_to_content'] = '내용으로 건너뛰기';
$lang['sidebar'] = '사이드바';
-$lang['mail_newpage'] = '문서 추가함:';
+$lang['mail_newpage'] = '문서 추가됨:';
$lang['mail_changed'] = '문서 바뀜:';
$lang['mail_subscribe_list'] = '이름공간에서 바뀐 문서:';
$lang['mail_new_user'] = '새 사용자:';
@@ -205,7 +213,7 @@ $lang['media_changes'] = '미디어 파일';
$lang['both_changes'] = '문서와 미디어 파일 모두';
$lang['qb_bold'] = '굵은 글씨';
$lang['qb_italic'] = '기울인 글씨';
-$lang['qb_underl'] = '밑줄 그어진 글씨';
+$lang['qb_underl'] = '밑줄 글씨';
$lang['qb_code'] = '코드 글씨';
$lang['qb_strike'] = '취소선 글씨';
$lang['qb_h1'] = '1단계 문단 제목';
@@ -223,22 +231,22 @@ $lang['qb_extlink'] = '바깥 링크';
$lang['qb_hr'] = '가로줄';
$lang['qb_ol'] = '순서 있는 목록';
$lang['qb_ul'] = '순서 없는 목록';
-$lang['qb_media'] = '그림과 기타 파일 추가';
+$lang['qb_media'] = '그림과 기타 파일 추가 (새 창에서 열림)';
$lang['qb_sig'] = '서명 넣기';
$lang['qb_smileys'] = '이모티콘';
$lang['qb_chars'] = '특수 문자';
$lang['upperns'] = '상위 이름공간으로 이동';
$lang['admin_register'] = '새 사용자 추가';
-$lang['metaedit'] = '메타 데이터 편집';
-$lang['metasaveerr'] = '메타 데이터 쓰기 실패';
-$lang['metasaveok'] = '메타 데이터 저장됨';
+$lang['metaedit'] = '메타데이터 편집';
+$lang['metasaveerr'] = '메타데이터 쓰기 실패';
+$lang['metasaveok'] = '메타데이터 저장됨';
$lang['img_backto'] = '뒤로';
-$lang['img_title'] = '이름';
+$lang['img_title'] = '제목';
$lang['img_caption'] = '설명';
$lang['img_date'] = '날짜';
-$lang['img_fname'] = '파일 이름';
+$lang['img_fname'] = '파일이름';
$lang['img_fsize'] = '크기';
-$lang['img_artist'] = '만든이';
+$lang['img_artist'] = '촬영자';
$lang['img_copyr'] = '저작권';
$lang['img_format'] = '포맷';
$lang['img_camera'] = '카메라';
@@ -253,7 +261,7 @@ $lang['subscr_unsubscribe_success'] = '%s 사용자가 %s 구독 목록에서
$lang['subscr_unsubscribe_error'] = '%s 사용자가 %s 구독 목록에서 삭제하는데 실패했습니다';
$lang['subscr_already_subscribed'] = '%s 사용자가 이미 %s에 구독하고 있습니다';
$lang['subscr_not_subscribed'] = '%s 사용자가 %s에 구독하고 있지 않습니다';
-$lang['subscr_m_not_subscribed'] = '현재의 문서나 이름공간에 구독하고 있지 않습니다.';
+$lang['subscr_m_not_subscribed'] = '문서나 이름공간에 현재 구독하고 있지 않습니다.';
$lang['subscr_m_new_header'] = '구독 추가';
$lang['subscr_m_current_header'] = '현재 구독 중인 문서';
$lang['subscr_m_unsubscribe'] = '구독 취소';
@@ -262,26 +270,25 @@ $lang['subscr_m_receive'] = '받기';
$lang['subscr_style_every'] = '모든 바뀜을 이메일로 받기';
$lang['subscr_style_digest'] = '각 문서의 바뀜을 요약 (매 %.2f일 마다)';
$lang['subscr_style_list'] = '마지막 이메일 이후 바뀐 문서의 목록 (매 %.2f일 마다)';
-$lang['authmodfailed'] = '잘못된 사용자 인증 설정입니다. 관리자에게 문의하시기 바랍니다.';
-$lang['authtempfail'] = '사용자 인증이 일시적으로 불가능합니다. 만일 계속해서 문제가 발생하면 관리자에게 문의하시기 바랍니다.';
-$lang['authpwdexpire'] = '비밀번호를 바꾼지 %d일이 지났습니다. 비민번호를 곧 바꿔야 합니다.';
+$lang['authtempfail'] = '사용자 인증을 일시적으로 사용할 수 없습니다. 만약 계속해서 문제가 발생하면 위키 관리자에게 문의하시기 바랍니다.';
+$lang['authpwdexpire'] = '비밀번호를 바꾼지 %d일이 지났으며, 비민번호를 곧 바꿔야 합니다.';
$lang['i_chooselang'] = '사용할 언어를 선택하세요';
$lang['i_installer'] = 'DokuWiki 설치';
$lang['i_wikiname'] = '위키 이름';
-$lang['i_enableacl'] = 'ACL 기능 사용 (권장)';
+$lang['i_enableacl'] = 'ACL 활성화 (권장)';
$lang['i_superuser'] = '슈퍼 유저';
-$lang['i_problems'] = '설치하는 동안 아래와 같은 문제가 발생했습니다. 문제를 해결한 후 설치를 계속하세요.';
-$lang['i_modified'] = '보안 상의 이유로 이 스크립트는 수정되지 않은 새 Dokuwiki 설치에서만 동작됩니다.
-다운로드한 압축 패키지를 다시 설치하거나 <a href="http://dokuwiki.org/ko:install">DokuWiki 설치 과정</a>을 참고해서 설치하세요.';
-$lang['i_funcna'] = '<code>%s</code> PHP 함수의 사용이 불가능합니다. 호스트 제공자가 어떤 이유에서인지 막아 놓았을지 모릅니다.';
+$lang['i_problems'] = '설치하는 동안 아래와 같은 문제가 발생했습니다. 문제를 해결한 후 설치를 계속할 수 있습니다.';
+$lang['i_modified'] = '보안 상의 이유로 이 스크립트는 수정되지 않은 새 도쿠위키 설치에서만 동작됩니다.
+다운로드한 압축 패키지를 다시 설치하거나 <a href="http://dokuwiki.org/ko:install">도쿠위키 설치 과정</a>을 참고해서 설치하세요.';
+$lang['i_funcna'] = '<code>%s</code> PHP 함수를 사용할 수 없습니다. 호스트 제공자가 어떤 이유에서인지 막아 놓았을지 모릅니다.';
$lang['i_phpver'] = 'PHP <code>%s</code> 버전은 필요한 <code>%s</code> 버전보다 오래되었습니다. PHP를 업그레이드할 필요가 있습니다.';
-$lang['i_permfail'] = 'DokuWiki는 <code>%s</code>에 쓰기 가능 권한이 없습니다. 먼저 이 디렉토리에 쓰기 권한이 설정되어야 합니다!';
+$lang['i_permfail'] = '<code>%s</code>는 도쿠위키가 쓰기 가능 권한이 없습니다. 먼저 이 디렉터리에 쓰기 권한이 설정되어야 합니다!';
$lang['i_confexists'] = '<code>%s</code>(은)는 이미 존재합니다';
-$lang['i_writeerr'] = '<code>%s</code>(을)를 만들 수 없습니다. 먼저 디렉토리/파일 권한을 확인하고 파일을 수동으로 만드세요.';
+$lang['i_writeerr'] = '<code>%s</code>(을)를 만들 수 없습니다. 먼저 디렉터리/파일 권한을 확인하고 파일을 수동으로 만드세요.';
$lang['i_badhash'] = 'dokuwiki.php를 인식할 수 없거나 원본 파일이 아닙니다 (해시=<code>%s</code>)';
-$lang['i_badval'] = '<code>%s</code> - 올바르지 않거나 빈 값입니다';
-$lang['i_success'] = '환경 설정이 성공적으로 끝났습니다. 지금 install.php를 지워도 상관없습니다. <a href="doku.php?id=wiki:welcome">새 DokuWiki</a>로 들어갑니다.';
-$lang['i_failure'] = '환경 설정 파일에 쓰는 도중에 오류가 발생했습니다. <a href="doku.php?id=wiki:welcome">새 DokuWiki</a>를 사용하기 전에 수동으로 문제를 해결해야 합니다.';
+$lang['i_badval'] = '<code>%s</code> - 잘못되었거나 빈 값입니다';
+$lang['i_success'] = '환경 설정이 성공적으로 끝났습니다. 지금 install.php를 지워도 상관없습니다. <a href="doku.php?id=wiki:welcome">새 도쿠위키</a>로 들어가세요.';
+$lang['i_failure'] = '환경 설정 파일에 쓰는 도중에 오류가 발생했습니다. <a href="doku.php?id=wiki:welcome">새 도쿠위키</a>를 사용하기 전에 수동으로 문제를 해결해야 합니다.';
$lang['i_policy'] = '초기 ACL 정책';
$lang['i_pol0'] = '열린 위키 (누구나 읽기, 쓰기, 올리기가 가능합니다)';
$lang['i_pol1'] = '공개 위키 (누구나 읽을 수 있지만, 등록된 사용자만 쓰기와 올리기가 가능합니다)';
@@ -289,17 +296,17 @@ $lang['i_pol2'] = '닫힌 위키 (등록된 사용자만 읽기,
$lang['i_retry'] = '다시 시도';
$lang['i_license'] = '내용을 배포하기 위한 라이선스를 선택하세요:';
$lang['i_license_none'] = '라이선스 정보를 보여주지 않습니다';
-$lang['i_pop_field'] = 'DokuWiki 경험을 개선하는 데 도움을 주세요:';
-$lang['i_pop_label'] = '한 달에 한 번씩, DokuWiki 개발자에게 익명의 사용 데이터를 보냅니다';
-$lang['recent_global'] = '<b>%s</b> 이름공간을 구독 중입니다. <a href="%s">전체 위키의 최근 바뀜도 볼 수</a> 있습니다.';
+$lang['i_pop_field'] = '도쿠위키 경험을 개선하는 데 도움을 주세요:';
+$lang['i_pop_label'] = '한 달에 한 번씩, 도쿠위키 개발자에게 익명의 사용 데이터를 보냅니다';
+$lang['recent_global'] = '현재 <b>%s</b> 이름공간을 구독 중입니다. <a href="%s">전체 위키의 최근 바뀜도 볼 수</a> 있습니다.';
$lang['years'] = '%d년 전';
-$lang['months'] = '%d개월 전';
+$lang['months'] = '%d달 전';
$lang['weeks'] = '%d주 전';
$lang['days'] = '%d일 전';
$lang['hours'] = '%d시간 전';
$lang['minutes'] = '%d분 전';
$lang['seconds'] = '%d초 전';
-$lang['wordblock'] = '차단 문구(스팸 문구)를 포함하고 있어서 저장하지 않았습니다.';
+$lang['wordblock'] = '차단 문구(스팸)를 포함하고 있어서 바뀜을 저장하지 않았습니다.';
$lang['media_uploadtab'] = '올리기';
$lang['media_searchtab'] = '찾기';
$lang['media_file'] = '파일';
@@ -313,13 +320,13 @@ $lang['media_sort_date'] = '날짜';
$lang['media_namespaces'] = '이름공간 선택';
$lang['media_files'] = '%s에 있는 파일';
$lang['media_upload'] = '%s에 올리기';
-$lang['media_search'] = '%s 찾기';
+$lang['media_search'] = '%s에서 찾기';
$lang['media_view'] = '%s';
-$lang['media_viewold'] = '%s (%s에 있음)';
+$lang['media_viewold'] = '%2$s (%1$s에 있음)';
$lang['media_edit'] = '%s 편집';
-$lang['media_history'] = '%s 바뀜 내역';
-$lang['media_meta_edited'] = '메타 데이터 편집됨';
-$lang['media_perm_read'] = '이 파일을 읽을 권한이 없습니다.';
-$lang['media_perm_upload'] = '파일을 올릴 권한이 없습니다.';
+$lang['media_history'] = '%s의 내역';
+$lang['media_meta_edited'] = '메타데이터 편집됨';
+$lang['media_perm_read'] = '죄송하지만 파일을 읽을 권한이 없습니다.';
+$lang['media_perm_upload'] = '죄송하지만 파일을 올릴 권한이 없습니다.';
$lang['media_update'] = '새 판 올리기';
$lang['media_restore'] = '이 판으로 되돌리기';
diff --git a/inc/lang/ko/locked.txt b/inc/lang/ko/locked.txt
index 8e2eab9f9..38832d06e 100644
--- a/inc/lang/ko/locked.txt
+++ b/inc/lang/ko/locked.txt
@@ -1,3 +1,3 @@
-====== 문서 잠금 ======
+====== 문서 잠김 ======
-다른 사용자가 이 문서를 편집하기 위해 잠금을 실행했습니다. 해당 사용자가 편집을 끝내거나 잠금이 해제될 때까지 기다리세요. \ No newline at end of file
+이 문서는 다른 사용자가 편집하기 위해 현재 잠겨있습니다. 해당 사용자가 편집을 끝내거나 잠금이 만료될 때까지 기다리세요. \ No newline at end of file
diff --git a/inc/lang/ko/mailtext.txt b/inc/lang/ko/mailtext.txt
index 8fb6fd446..e9e9c25e1 100644
--- a/inc/lang/ko/mailtext.txt
+++ b/inc/lang/ko/mailtext.txt
@@ -1,4 +1,4 @@
-DokuWiki 문서가 추가 또는 바뀌었습니다. 자세한 정보는 다음과 같습니다:
+도쿠위키 문서가 추가되거나 바뀌었습니다. 자세한 내용은 다음과 같습니다:
날짜 : @DATE@
브라우저 : @BROWSER@
@@ -12,5 +12,5 @@ IP 주소 : @IPADDRESS@
@DIFF@
---
-@DOKUWIKIURL@의 DokuWiki가 자동으로 만들어낸 메일입니다. \ No newline at end of file
+--
+이 메일은 @DOKUWIKIURL@에서 도쿠위키가 생성했습니다 \ No newline at end of file
diff --git a/inc/lang/ko/mailwrap.html b/inc/lang/ko/mailwrap.html
index 885730428..ef061f10f 100644
--- a/inc/lang/ko/mailwrap.html
+++ b/inc/lang/ko/mailwrap.html
@@ -1,13 +1,13 @@
<html>
- <head>
- <title>@TITLE@</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- </head>
- <body>
+<head>
+ <title>@TITLE@</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+</head>
+<body>
- @HTMLBODY@
+@HTMLBODY@
- <br /><hr />
- <small>@DOKUWIKIURL@의 DokuWiki가 자동으로 만들어낸 메일입니다.</small>
- </body>
- </html> \ No newline at end of file
+<br /><hr />
+<small>이 메일은 @DOKUWIKIURL@에서 도쿠위키가 생성했습니다.</small>
+</body>
+</html>
diff --git a/inc/lang/ko/newpage.txt b/inc/lang/ko/newpage.txt
index fa7864610..a553cf9c2 100644
--- a/inc/lang/ko/newpage.txt
+++ b/inc/lang/ko/newpage.txt
@@ -1,3 +1,3 @@
====== 이 주제는 아직 없습니다 ======
-아직 없는 주제에 대한 링크를 따라왔습니다. **문서 만들기** 버튼을 클릭해 새로 만들 수 있습니다. \ No newline at end of file
+아직 없는 주제에 대한 링크를 따라왔습니다. "문서 만들기"를 클릭해 새로 만들 수 있습니다. \ No newline at end of file
diff --git a/inc/lang/ko/norev.txt b/inc/lang/ko/norev.txt
index 246f3e4f6..5cb7360d7 100644
--- a/inc/lang/ko/norev.txt
+++ b/inc/lang/ko/norev.txt
@@ -1,3 +1,3 @@
====== 지정한 판 없음 ======
-지정한 판이 존재하지 않습니다. **이전 판** 버튼을 사용해 이 문서의 이전 판 목록을 보세요. \ No newline at end of file
+지정한 판이 존재하지 않습니다. 이 문서의 이전 판 목록을 보려면 "이전 판"을 클릭하세요. \ No newline at end of file
diff --git a/inc/lang/ko/password.txt b/inc/lang/ko/password.txt
index 02b23d17c..790f6b479 100644
--- a/inc/lang/ko/password.txt
+++ b/inc/lang/ko/password.txt
@@ -1,9 +1,9 @@
-@FULLNAME@ 안녕하세요!
+@FULLNAME@님 안녕하세요!
-@DOKUWIKIURL@의 @TITLE@의 사용자 정보입니다.
+여기에 @DOKUWIKIURL@에서 @TITLE@의 사용자 정보가 있습니다.
-사용자 이름 : @LOGIN@
+로그인 : @LOGIN@
비밀번호 : @PASSWORD@
--
-@DOKUWIKIURL@의 DokuWiki가 자동으로 만들어낸 메일입니다. \ No newline at end of file
+이 메일은 @DOKUWIKIURL@에서 도쿠위키가 생성했습니다 \ No newline at end of file
diff --git a/inc/lang/ko/pwconfirm.txt b/inc/lang/ko/pwconfirm.txt
index 6e447a021..d820664f0 100644
--- a/inc/lang/ko/pwconfirm.txt
+++ b/inc/lang/ko/pwconfirm.txt
@@ -1,13 +1,13 @@
-@FULLNAME@ 안녕하세요!
+@FULLNAME@님 안녕하세요!
누군가가 @DOKUWIKIURL@에 @TITLE@에 대해
새 비밀번호가 필요하다고 요청했습니다.
-새로운 비밀번호 요청한 적이 없다면 이 이메일을 무시해버리세요.
+새 비밀번호를 요청하지 않았다면 이 이메일을 무시해버리세요.
-정말로 당신이 요청을 했는지 다음 링크에서 확인하세요.
+정말로 당신이 요청을 해서 보내졌는지 확인하려면 다음 링크를 사용하세요.
@CONFIRM@
--
-@DOKUWIKIURL@의 DokuWiki가 자동으로 만들어낸 메일입니다. \ No newline at end of file
+이 메일은 @DOKUWIKIURL@에서 도쿠위키가 생성했습니다 \ No newline at end of file
diff --git a/inc/lang/ko/registermail.txt b/inc/lang/ko/registermail.txt
index 4707dfa13..e7c808047 100644
--- a/inc/lang/ko/registermail.txt
+++ b/inc/lang/ko/registermail.txt
@@ -1,7 +1,7 @@
-새 사용자가 등록되었습니다:
+새 사용자가 등록되었습니다. 자세한 내용은 다음과 같습니다:
사용자 이름 : @NEWUSER@
-사용자 실제 이름 : @NEWNAME@
+실제 이름 : @NEWNAME@
이메일 : @NEWEMAIL@
날짜 : @DATE@
@@ -10,4 +10,4 @@ IP 주소 : @IPADDRESS@
호스트 이름 : @HOSTNAME@
--
-@DOKUWIKIURL@의 DokuWiki가 자동으로 만들어낸 메일입니다. \ No newline at end of file
+이 메일은 @DOKUWIKIURL@에서 도쿠위키가 생성했습니다 \ No newline at end of file
diff --git a/inc/lang/ko/resendpwd.txt b/inc/lang/ko/resendpwd.txt
index faee2072c..44cd5ad98 100644
--- a/inc/lang/ko/resendpwd.txt
+++ b/inc/lang/ko/resendpwd.txt
@@ -1,3 +1,3 @@
====== 새 비밀번호 보내기 ======
-이 위키 계정에 대한 새 비밀번호를 요구하기 위해 아래 양식에서 사용자 이름을 입력하세요. 확인 링크는 새로 등록한 이메일 주소로 보냅니다. \ No newline at end of file
+이 위키 계정에 대한 새 비밀번호를 요청하기 위해 아래 양식에서 사용자 이름을 입력하세요. 확인 링크는 새로 등록한 이메일 주소로 보냅니다. \ No newline at end of file
diff --git a/inc/lang/ko/resetpwd.txt b/inc/lang/ko/resetpwd.txt
index ed909456f..cc2ec6a94 100644
--- a/inc/lang/ko/resetpwd.txt
+++ b/inc/lang/ko/resetpwd.txt
@@ -1,3 +1,3 @@
====== 새 비밀번호 설정 ======
-이 위키 계정의 새 비밀번호를 입력하세요. \ No newline at end of file
+이 위키에 있는 계정의 새 비밀번호를 입력하세요. \ No newline at end of file
diff --git a/inc/lang/ko/revisions.txt b/inc/lang/ko/revisions.txt
index f499e2f72..ed80dbcd5 100644
--- a/inc/lang/ko/revisions.txt
+++ b/inc/lang/ko/revisions.txt
@@ -1,3 +1,3 @@
====== 이전 판 ======
-이 문서의 이전 판은 다음과 같습니다. 이전 판으로 되돌리려면, 아래에서 선택한 다음 **문서 편집**을 클릭하고 나서 저장하세요. \ No newline at end of file
+이 문서의 이전 판은 다음과 같습니다. 이전 판으로 되돌리려면, 아래에서 선택한 다음 ''문서 편집''을 클릭하고 나서 저장하세요. \ No newline at end of file
diff --git a/inc/lang/ko/searchpage.txt b/inc/lang/ko/searchpage.txt
index d3b37ec7c..cb9bae2e0 100644
--- a/inc/lang/ko/searchpage.txt
+++ b/inc/lang/ko/searchpage.txt
@@ -1,5 +1,5 @@
====== 찾기 ======
-아래에서 찾기 결과를 볼 수 있습니다. 만일 원하는 문서를 찾지 못하였다면, **문서 만들기**나 **문서 편집** 버튼을 사용해 쿼리 내용과 같은 이름의 문서를 만들거나 편집할 수 있습니다.
+아래에서 찾기 결과를 볼 수 있습니다. 만일 원하는 문서를 찾지 못하였다면, "문서 만들기"나 "문서 편집"을 사용해 쿼리 내용과 같은 이름의 문서를 만들거나 편집할 수 있습니다.
===== 결과 ===== \ No newline at end of file
diff --git a/inc/lang/ko/stopwords.txt b/inc/lang/ko/stopwords.txt
index c0dc2a79b..b0be85166 100644
--- a/inc/lang/ko/stopwords.txt
+++ b/inc/lang/ko/stopwords.txt
@@ -1,7 +1,7 @@
-# 색인이 만들어지지 않는 단어 목록입니다. (한줄에 한 단어)
-# 이 파일을 편집한다면 UNIX 줄 종료 문자를 사용해야 합니다.(단일 개행 문자)
+# 색인이 만들어지지 않는 단어 목록입니다. (한 줄에 한 단어)
+# 이 파일을 편집할 때 UNIX 줄 종료 문자를 사용해야 합니다.(단일 개행 문자)
# 3문자 이하 단어는 자동으로 무시되므로 3문자보다 짧은 단어는 포함시킬 필요가 없습니다.
-# http://www.ranks.nl/stopwords/을 기준으로 만들어진 목록입니다.
+# http://www.ranks.nl/stopwords/ 을 기준으로 만들어진 목록입니다.
about
are
as
diff --git a/inc/lang/ko/subscr_digest.txt b/inc/lang/ko/subscr_digest.txt
index 6db7b963c..7a044736a 100644
--- a/inc/lang/ko/subscr_digest.txt
+++ b/inc/lang/ko/subscr_digest.txt
@@ -11,8 +11,8 @@
새 판 : @NEWPAGE@
-이 문서의 알림을 취소하려면, @DOKUWIKIURL@에 로그인한 뒤
+문서의 알림을 취소하려면, @DOKUWIKIURL@에 로그인한 뒤
@SUBSCRIBE@ 문서를 방문해 문서나 이름공간의 구독을 취소하세요.
--
-@DOKUWIKIURL@의 DokuWiki가 자동으로 만들어낸 메일입니다. \ No newline at end of file
+이 메일은 @DOKUWIKIURL@에서 도쿠위키가 생성했습니다 \ No newline at end of file
diff --git a/inc/lang/ko/subscr_list.txt b/inc/lang/ko/subscr_list.txt
index c13e0097a..57aa78cf7 100644
--- a/inc/lang/ko/subscr_list.txt
+++ b/inc/lang/ko/subscr_list.txt
@@ -7,8 +7,8 @@
@DIFF@
--------------------------------------------------------
-이 문서의 알림을 취소하려면, @DOKUWIKIURL@에 로그인한 뒤
+문서의 알림을 취소하려면, @DOKUWIKIURL@에 로그인한 뒤
@SUBSCRIBE@ 문서를 방문해 문서나 이름공간의 구독을 취소하세요.
--
-@DOKUWIKIURL@의 DokuWiki가 자동으로 만들어낸 메일입니다. \ No newline at end of file
+이 메일은 @DOKUWIKIURL@에서 도쿠위키가 생성했습니다. \ No newline at end of file
diff --git a/inc/lang/ko/subscr_single.txt b/inc/lang/ko/subscr_single.txt
index d4e38e044..ed5478441 100644
--- a/inc/lang/ko/subscr_single.txt
+++ b/inc/lang/ko/subscr_single.txt
@@ -13,8 +13,8 @@
이전 판 : @OLDPAGE@
새 판 : @NEWPAGE@
-이 문서의 알림을 취소하려면, @DOKUWIKIURL@에 로그인한 뒤
+문서의 알림을 취소하려면, @DOKUWIKIURL@에 로그인한 뒤
@SUBSCRIBE@ 문서를 방문해 문서나 이름공간의 구독을 취소하세요.
--
-@DOKUWIKIURL@의 DokuWiki가 자동으로 만들어낸 메일입니다. \ No newline at end of file
+이 메일은 @DOKUWIKIURL@에서 도쿠위키가 생성했습니다 \ No newline at end of file
diff --git a/inc/lang/ko/uploadmail.txt b/inc/lang/ko/uploadmail.txt
index 8e0a4d70b..1304ee331 100644
--- a/inc/lang/ko/uploadmail.txt
+++ b/inc/lang/ko/uploadmail.txt
@@ -1,4 +1,4 @@
-DokuWiki가 파일을 올렸습니다. 자세한 정보는 다음과 같습니다:
+도쿠위키가 파일을 올렸습니다. 자세한 정보는 다음과 같습니다:
파일 : @MEDIA@
이전 판 : @OLD@
@@ -11,4 +11,4 @@ MIME 종류 : @MIME@
사용자 : @USER@
--
-@DOKUWIKIURL@의 DokuWiki가 자동으로 만들어낸 메일입니다. \ No newline at end of file
+이 메일은 @DOKUWIKIURL@에서 도쿠위키가 생성했습니다 \ No newline at end of file
diff --git a/inc/lang/ku/lang.php b/inc/lang/ku/lang.php
index 51ed6c8bf..b6287806d 100644
--- a/inc/lang/ku/lang.php
+++ b/inc/lang/ku/lang.php
@@ -33,7 +33,6 @@ $lang['btn_back'] = 'Paş';
$lang['btn_backlink'] = 'Girêdanên paş';
$lang['btn_backtomedia'] = 'Back to Mediafile Selection';
$lang['btn_subscribe'] = 'Subscribe Changes';
-$lang['btn_unsubscribe'] = 'Unsubscribe Changes';
$lang['btn_register'] = 'Register';
$lang['loggedinas'] = 'Logged in as';
@@ -123,22 +122,8 @@ $lang['qb_sig'] = 'Insert Signature';
$lang['js']['del_confirm']= 'Delete this entry?';
-$lang['admin_acl'] = 'Access Control List Management...';
$lang['admin_register']= 'Add new user...';
-$lang['acl_group'] = 'Group';
-$lang['acl_user'] = 'User';
-$lang['acl_perms'] = 'Permissions for';
-$lang['page'] = 'Rûpel';
-$lang['namespace'] = 'Namespace';
-
-$lang['acl_perm1'] = 'Bixwîne';
-$lang['acl_perm2'] = 'Biguherîne';
-$lang['acl_perm4'] = 'Biafirîne';
-$lang['acl_perm8'] = 'Upload';
-$lang['acl_perm16'] = 'Jê bibe';
-$lang['acl_new'] = 'Add new Entry';
-
$lang['metaedit'] = 'Edit Metadata';
$lang['metasaveerr'] = 'Writing metadata failed';
$lang['metasaveok'] = 'Metadata saved';
@@ -154,10 +139,4 @@ $lang['img_format'] = 'Format';
$lang['img_camera'] = 'Camera';
$lang['img_keywords']= 'Keywords';
-$lang['subscribe_success'] = 'Added %s to subscription list for %s';
-$lang['subscribe_error'] = 'Error adding %s to subscription list for %s';
-$lang['subscribe_noaddress']= 'There is no address associated with your login, you cannot be added to the subscription list';
-$lang['unsubscribe_success']= 'Removed %s from subscription list for %s';
-$lang['unsubscribe_error'] = 'Error removing %s from subscription list for %s';
-
//Setup VIM: ex: et ts=2 :
diff --git a/inc/lang/la/lang.php b/inc/lang/la/lang.php
index bea921abc..c71a71bdd 100644
--- a/inc/lang/la/lang.php
+++ b/inc/lang/la/lang.php
@@ -229,7 +229,6 @@ $lang['subscr_m_receive'] = 'Accipere';
$lang['subscr_style_every'] = 'Cursus mutationibus omnibus';
$lang['subscr_style_digest'] = 'Accipere litteras in mutando paginam (%.2f dies)';
$lang['subscr_style_list'] = 'Index mutatarum paginarum ab extremis litteris (%.2f dies)';
-$lang['authmodfailed'] = 'Confirmatio infeliciter facta est. Rectorem conuenis.';
$lang['authtempfail'] = 'Confirmare non potes. Rectorem conuenis.';
$lang['i_chooselang'] = 'Linguam eligere';
$lang['i_installer'] = 'Docuuicis creator';
diff --git a/inc/lang/lb/lang.php b/inc/lang/lb/lang.php
index 76dd2ac15..55113745a 100644
--- a/inc/lang/lb/lang.php
+++ b/inc/lang/lb/lang.php
@@ -173,7 +173,6 @@ $lang['img_copyr'] = 'Copyright';
$lang['img_format'] = 'Format';
$lang['img_camera'] = 'Kamera';
$lang['img_keywords'] = 'Schlësselwieder';
-$lang['authmodfailed'] = 'Falsch Konfiguratioun vun der Benotzerautentifikatioun. Informéier w.e.g. de Wiki Admin.';
$lang['authtempfail'] = 'D\'Benotzerautentifikatioun ass de Moment net verfügbar. Wann dës Situatioun unhält, dann informéier w.e.g. de Wiki Admin.';
$lang['i_chooselang'] = 'Wiel deng Sprooch';
$lang['i_installer'] = 'DokuWiki Installer';
diff --git a/inc/lang/lt/lang.php b/inc/lang/lt/lang.php
index b284555ef..c38ea8838 100644
--- a/inc/lang/lt/lang.php
+++ b/inc/lang/lt/lang.php
@@ -40,7 +40,6 @@ $lang['btn_back'] = 'Atgal';
$lang['btn_backlink'] = 'Atgalinės nuorodos';
$lang['btn_backtomedia'] = 'Atgal į Mediabylos išsirinkimą';
$lang['btn_subscribe'] = 'Užsisakyti keitimų prenumeratą';
-$lang['btn_unsubscribe'] = 'Atsisakyti keitimų prenumeratos';
$lang['btn_profile'] = 'Atnaujinti profilį';
$lang['btn_reset'] = 'Atstata';
$lang['btn_draft'] = 'Redaguoti juodraštį';
@@ -175,12 +174,6 @@ $lang['img_copyr'] = 'Autorinės teisės';
$lang['img_format'] = 'Formatas';
$lang['img_camera'] = 'Kamera';
$lang['img_keywords'] = 'Raktiniai žodžiai';
-$lang['subscribe_success'] = '%s užsakyta "%s" prenumerata';
-$lang['subscribe_error'] = '%s užsakant "%s" prenumeratą įvyko klaida';
-$lang['subscribe_noaddress'] = 'Jūs nesatė nurodęs el. pašto adreso, todėl negalima Jums užsakyti prenumeratos';
-$lang['unsubscribe_success'] = '%s ištrintas iš "%s" prenumeratos';
-$lang['unsubscribe_error'] = '%s trinant iš "%s" prenumeratos įvyko klaida';
-$lang['authmodfailed'] = 'Bloga vartotojo tapatumo nustatymo konfigūracija. Praneškite apie tai savo administratoriui.';
$lang['authtempfail'] = 'Vartotojo tapatumo nustatymas laikinai nepasiekiamas. Jei ši situacija kartojasi, tai praneškite savo administratoriui.';
$lang['i_chooselang'] = 'Pasirinkite kalbą';
$lang['i_installer'] = 'DokuWiki Instaliatorius';
diff --git a/inc/lang/lv/lang.php b/inc/lang/lv/lang.php
index 4d2b5d23c..898125d60 100644
--- a/inc/lang/lv/lang.php
+++ b/inc/lang/lv/lang.php
@@ -258,7 +258,6 @@ $lang['subscr_m_receive'] = 'Saņemt';
$lang['subscr_style_every'] = 'vēstuli par katru izmaiņu';
$lang['subscr_style_digest'] = 'kopsavilkumu par katru lapu (reizi %.2f dienās)';
$lang['subscr_style_list'] = 'kopš pēdējās vēstules notikušo labojumu sarakstu (reizi %.2f dienās)';
-$lang['authmodfailed'] = 'Aplami konfigurēta lietotāju autentifikācija. Lūdzu ziņo Wiki administratoram.';
$lang['authtempfail'] = 'Lietotāju autentifikācija pašlaik nedarbojas. Ja tas turpinās ilgstoši, lūduz ziņo Wiki administratoram.';
$lang['authpwdexpire'] = 'Tavai parolei pēc %d dienām biegsies termiņš, tā drīzumā jānomaina.';
$lang['i_chooselang'] = 'Izvēlies valodu';
diff --git a/inc/lang/mg/lang.php b/inc/lang/mg/lang.php
index e3c7a0c2b..c5ed669a9 100644
--- a/inc/lang/mg/lang.php
+++ b/inc/lang/mg/lang.php
@@ -116,20 +116,6 @@ $lang['qb_sig'] = 'Manisy sonia';
$lang['js']['del_confirm']= 'Hofafana ilay andalana?';
-$lang['admin_acl'] = 'Fitantanana ACL (Access Control List)...';
$lang['admin_register']= 'Ampio mpampiasa vaovao...';
-$lang['acl_group'] = 'Vondrona';
-$lang['acl_user'] = 'Mpampiasa';
-$lang['acl_perms'] = 'Alalana @';
-$lang['page'] = 'Pejy';
-$lang['namespace'] = 'Namespace';
-
-$lang['acl_perm1'] = 'Mamaky';
-$lang['acl_perm2'] = 'Manova';
-$lang['acl_perm4'] = 'Manamboatra';
-$lang['acl_perm8'] = 'Mandefa rakitra';
-$lang['acl_perm16'] = 'Mamafa';
-$lang['acl_new'] = 'Ampio andalana vaovao';
-
//Setup VIM: ex: et ts=2 :
diff --git a/inc/lang/mk/lang.php b/inc/lang/mk/lang.php
index 9e1628562..2b2c9fb7f 100644
--- a/inc/lang/mk/lang.php
+++ b/inc/lang/mk/lang.php
@@ -196,7 +196,6 @@ $lang['subscr_m_unsubscribe'] = 'Отплатување';
$lang['subscr_m_subscribe'] = 'Претплата';
$lang['subscr_m_receive'] = 'Прими';
$lang['subscr_style_every'] = 'е-пошта за секоја промена';
-$lang['authmodfailed'] = 'Лоша конфигурација за автентикација на корисник. Ве молам информирајте го вики администратор.';
$lang['authtempfail'] = 'Автентикација на корисник е привремено недостапна. Ако оваа ситуација истрајува, ве молам известете го вики администратор.';
$lang['i_chooselang'] = 'Избере јазик';
$lang['i_installer'] = 'Инсталер за DokuWiki';
diff --git a/inc/lang/mr/lang.php b/inc/lang/mr/lang.php
index d95813efa..54b69974d 100644
--- a/inc/lang/mr/lang.php
+++ b/inc/lang/mr/lang.php
@@ -241,7 +241,6 @@ $lang['img_keywords'] = 'मुख्य शब्द';
$lang['img_width'] = 'रुंदी';
$lang['img_height'] = 'उंची';
$lang['img_manager'] = 'मिडिया व्यवस्थापकात बघू';
-$lang['authmodfailed'] = 'सदस्य अधिकृत करण्याची व्यवस्था चुकीची आहे. कृपया तुमच्या विकीच्या व्यवस्थापकाशी सम्पर्क साधा.';
$lang['authtempfail'] = 'सदस्य अधिकृत करण्याची सुविधा सध्या चालू नाही. सतत हा मजकूर दिसल्यास कृपया तुमच्या विकीच्या व्यवस्थापकाशी सम्पर्क साधा.';
$lang['i_chooselang'] = 'तुमची भाषा निवडा';
$lang['i_installer'] = 'डॉक्युविकि इनस्टॉलर';
diff --git a/inc/lang/ne/lang.php b/inc/lang/ne/lang.php
index 908b1a1dd..7fd14d2c5 100644
--- a/inc/lang/ne/lang.php
+++ b/inc/lang/ne/lang.php
@@ -1,6 +1,7 @@
<?php
+
/**
- * Nepali language file
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Saroj Kumar Dhakal <lotusnagarkot@gmail.com>
* @author Saroj Kumar Dhakal <lotusnagarkot@yahoo.com>
@@ -37,7 +38,6 @@ $lang['btn_back'] = 'पछाडि';
$lang['btn_backlink'] = 'पछाडिका लिङ्कहरु ';
$lang['btn_backtomedia'] = 'मिडिया छनौटमा फर्कनुहोस्';
$lang['btn_subscribe'] = 'पृष्ठ परिवर्तन ग्राह्य गर्नुहोस्';
-$lang['btn_unsubscribe'] = 'पृष्ठ परिवर्तन अग्राह्य गर्नुहोस्';
$lang['btn_profile'] = 'प्रोफाइल अध्यावधिक गर्नुहोस् ';
$lang['btn_reset'] = 'पूर्वरुपमा फर्काउनुहोस';
$lang['btn_draft'] = ' ड्राफ्ट सम्पादन गर्नुहोस् ';
@@ -85,8 +85,12 @@ $lang['txt_filename'] = 'अर्को रुपमा अपलो
$lang['txt_overwrt'] = 'रहेको उहि नामको फाइललाई मेटाउने';
$lang['lockedby'] = 'अहिले ताल्चा लगाइएको';
$lang['lockexpire'] = 'ताल्चा अवधि सकिने :';
-$lang['js']['willexpire'] = 'तपाईलले यो पृष्ठ सम्पादन गर्न लगाउनु भएको ताल्चाको अवधि एक मिनेट भित्र सकिदै छ। \n द्वन्द हुन नदिन पूर्वरुप वा ताल्चा समय परिवर्तन गर्नुहोस् ।';
+$lang['js']['willexpire'] = 'तपाईलले यो पृष्ठ सम्पादन गर्न लगाउनु भएको ताल्चाको अवधि एक मिनेट भित्र सकिदै छ। \n द्वन्द हुन नदिन पूर्वरुप वा ताल्चा समय परिवर्तन गर्नुहोस् ।';
$lang['js']['notsavedyet'] = 'तपाईले वचन गर्नु नभएको परिवर्रन हराउने छ। \n साच्चै जारी गर्नुहुन्छ ।';
+$lang['js']['keepopen'] = 'छनौटमा विन्डो खुला राख्नुहोस् ';
+$lang['js']['hidedetails'] = 'जानकारी लुकाउनु होस् ';
+$lang['js']['nosmblinks'] = 'विन्डोहरु लिङ्क गर्दा माइक्रो सफ्ट एक्सप्लोररमामात्र काम साझा हुन्छ । तर कपि गर्न र टास्न मिल्छ। ';
+$lang['js']['del_confirm'] = 'साच्चै छानिएका वस्तुहरु मेट्ने हो ?';
$lang['rssfailed'] = 'यो फिड लिइ आउदा गल्ति भयो ।';
$lang['nothingfound'] = 'केहि पनि भेटिएन ।';
$lang['mediaselect'] = 'मिडिया फाइलहरू ';
@@ -103,9 +107,6 @@ $lang['deletefail'] = '"%s" मेट्न सकिएन - अन
$lang['mediainuse'] = 'फाइल "%s" मेटिएको छैन - प्रयोगमा छ।';
$lang['namespaces'] = 'नेमस्पेसहरु ';
$lang['mediafiles'] = ' उपलब्ध फाइलहरु ';
-$lang['js']['keepopen'] = 'छनौटमा विन्डो खुला राख्नुहोस् ';
-$lang['js']['hidedetails'] = 'जानकारी लुकाउनु होस् ';
-$lang['js']['nosmblinks'] = 'विन्डोहरु लिङ्क गर्दा माइक्रो सफ्ट एक्सप्लोररमामात्र काम साझा हुन्छ । तर कपि गर्न र टास्न मिल्छ। ';
$lang['mediausage'] = 'फाइललाई रेफरेन्स गर्न निम्न सुत्र प्रयोग गर्नुहोस् :';
$lang['mediaview'] = 'सक्कली फाइल हेर्नुहोस् ';
$lang['mediaroot'] = 'रुट(मूख्य प्रयोगकर्ता)';
@@ -153,7 +154,6 @@ $lang['qb_media'] = 'तस्विर र अरु फाइल
$lang['qb_sig'] = 'हस्ताक्षर थप्नुहोस् ';
$lang['qb_smileys'] = 'स्माइलीहरु ';
$lang['qb_chars'] = 'विशेष वर्णहरु ';
-$lang['js']['del_confirm'] = 'साच्चै छानिएका वस्तुहरु मेट्ने हो ?';
$lang['admin_register'] = 'नयाँ प्रयोगकर्ता थप्नुहोस् ';
$lang['metaedit'] = 'मेटाडेटा सम्पादन गर्नुहोस्';
$lang['metasaveerr'] = 'मेटाडाटा लेखन असफल';
@@ -169,12 +169,6 @@ $lang['img_copyr'] = 'सर्वाधिकार';
$lang['img_format'] = 'ढाचा';
$lang['img_camera'] = 'क्यामेरा';
$lang['img_keywords'] = 'खोज शब्द';
-$lang['subscribe_success'] = '%s ,%s को ग्राह्यताको लागि थपियो ';
-$lang['subscribe_error'] = '%s ,%s को ग्राह्यताको लागि थपिदा त्रुटि';
-$lang['subscribe_noaddress'] = 'तपाईको खातासँग कुनै पनि ठेगाना संबन्धित छैन , तपाईलाई ग्रहाक सुचीमा राखन मिलेन।';
-$lang['unsubscribe_success'] = '%s लाई %s को ग्रहाक सुचीबाट हटाइयो';
-$lang['unsubscribe_error'] = '%s लाई %s को ग्राहक सुचीबाट हटाउदा त्रुटि';
-$lang['authmodfailed'] = 'खराब प्रयोगकर्ता प्रामाणिकरण विधि ।तपाईको विकी एड्मिनलाई खवर गर्नुहोस् ।';
$lang['authtempfail'] = 'प्रयोगकर्ता प्रामाणिकरण अस्थाइरुपमा अनुपलब्ध छ। यदि यो समस्या रहि रहेमा तपाईको विकि एड्मिनलाई खवर गर्नुहोला ।';
$lang['i_chooselang'] = 'भाषा छान्नुहोस् ';
$lang['i_installer'] = 'DokuWiki स्थापक';
diff --git a/inc/lang/nl/lang.php b/inc/lang/nl/lang.php
index c45c172fb..5f95a99bf 100644
--- a/inc/lang/nl/lang.php
+++ b/inc/lang/nl/lang.php
@@ -18,6 +18,9 @@
* @author Ricardo Guijt <ricardoguijt@gmail.com>
* @author Gerrit <klapinklapin@gmail.com>
* @author mprins <mprins@users.sf.net>
+ * @author Gerrit Uitslag <klapinklapin@gmail.com>
+ * @author Klap-in <klapinklapin@gmail.com>
+ * @author Remon <no@email.local>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -93,7 +96,7 @@ $lang['profchanged'] = 'Gebruikersprofiel succesvol aangepast';
$lang['profnodelete'] = 'Deze wiki heeft biedt geen ondersteuning voor verwijdering van gebruikers';
$lang['profdeleteuser'] = 'Verwijder gebruiker';
$lang['profdeleted'] = 'Uw gebruikersaccount is verwijderd van deze wiki';
-$lang['profconfdelete'] = 'Ik wik mijn gebruikersaccount verwijderen van deze wiki. <br/> Deze actie kan niet ongedaan gemaakt worden.';
+$lang['profconfdelete'] = 'Ik wil mijn gebruikersaccount verwijderen van deze wiki. <br/> Deze actie kan niet ongedaan gemaakt worden.';
$lang['profconfdeletemissing'] = 'Bevestigingsvinkje niet gezet';
$lang['pwdforget'] = 'Je wachtwoord vergeten? Vraag een nieuw wachtwoord aan';
$lang['resendna'] = 'Deze wiki ondersteunt het verzenden van wachtwoorden niet';
@@ -220,7 +223,7 @@ $lang['changes_type'] = 'Bekijk wijzigingen van';
$lang['pages_changes'] = 'Pagina\'s';
$lang['media_changes'] = 'Mediabestanden';
$lang['both_changes'] = 'Zowel pagina\'s als mediabestanden';
-$lang['qb_bold'] = 'Vette tekst';
+$lang['qb_bold'] = 'Vetgedrukte tekst';
$lang['qb_italic'] = 'Cursieve tekst';
$lang['qb_underl'] = 'Onderstreepte tekst';
$lang['qb_code'] = 'Code tekst';
@@ -265,7 +268,7 @@ $lang['img_height'] = 'Hoogte';
$lang['img_manager'] = 'In mediabeheerder bekijken';
$lang['subscr_subscribe_success'] = '%s is ingeschreven voor %s';
$lang['subscr_subscribe_error'] = 'Fout bij inschrijven van %s voor %s';
-$lang['subscr_subscribe_noaddress'] = 'Er is geen emailadres geassocieerd met uw account, u kunt daardoor niet worden ingeschreven.';
+$lang['subscr_subscribe_noaddress'] = 'Er is geen e-mailadres gekoppeld aan uw account, u kunt daardoor niet worden ingeschreven.';
$lang['subscr_unsubscribe_success'] = '%s is nu uitgeschreven bij %s.';
$lang['subscr_unsubscribe_error'] = 'Fout bij uitschrijven van %s bij %s.';
$lang['subscr_already_subscribed'] = '%s is reeds ingeschreven bij %s.';
@@ -279,7 +282,6 @@ $lang['subscr_m_receive'] = 'Ontvang';
$lang['subscr_style_every'] = 'Email bij iedere wijziging';
$lang['subscr_style_digest'] = 'Samenvattings-email met wijzigingen per pagina (elke %.2f dagen)';
$lang['subscr_style_list'] = 'Lijst van veranderde pagina\'s sinds laatste email (elke %.2f dagen)';
-$lang['authmodfailed'] = 'Ongeldige gebruikersauthenticatie-configuratie. Informeer de wikibeheerder.';
$lang['authtempfail'] = 'Gebruikersauthenticatie is tijdelijk niet beschikbaar. Als deze situatie zich blijft voordoen, informeer dan de wikibeheerder.';
$lang['authpwdexpire'] = 'Je wachtwoord verloopt in %d dagen, je moet het binnenkort veranderen';
$lang['i_chooselang'] = 'Kies je taal';
@@ -339,3 +341,7 @@ $lang['media_perm_read'] = 'Sorry, u heeft niet voldoende rechten om besta
$lang['media_perm_upload'] = 'Sorry, u heeft niet voldoende rechten om bestanden te uploaden.';
$lang['media_update'] = 'Upload nieuwe versie';
$lang['media_restore'] = 'Deze versie terugzetten';
+$lang['currentns'] = 'Huidige namespace';
+$lang['searchresult'] = 'Zoekresultaat';
+$lang['plainhtml'] = 'Alleen HTML';
+$lang['wikimarkup'] = 'Wiki Opmaak';
diff --git a/inc/lang/nl/mailtext.txt b/inc/lang/nl/mailtext.txt
index dbe35c519..d12093a5b 100644
--- a/inc/lang/nl/mailtext.txt
+++ b/inc/lang/nl/mailtext.txt
@@ -1,9 +1,9 @@
-Er is een pagina in je DokuWiki toegevoegd of gewijzigd. Hier zijn de details
+Er is een pagina in je DokuWiki toegevoegd of gewijzigd. Hier zijn de details:
Datum : @DATE@
Browser : @BROWSER@
IP-Adres : @IPADDRESS@
-Hostname : @HOSTNAME@
+Hostnaam : @HOSTNAME@
Oude revisie : @OLDPAGE@
Nieuwe revisie: @NEWPAGE@
Samenvatting : @SUMMARY@
diff --git a/inc/lang/nl/read.txt b/inc/lang/nl/read.txt
index fcb791811..2a9bb9a93 100644
--- a/inc/lang/nl/read.txt
+++ b/inc/lang/nl/read.txt
@@ -1,2 +1,2 @@
-Deze pagina is niet beschrijfbaar. Je kan de broncode bekijken maar niks veranderen. Neem contact op met de beheerder als je denkt dat dit niet klopt.
+Deze pagina is alleen-lezen. Je kan de broncode bekijken maar niet veranderen. Neem contact op met de beheerder als je denkt dat dit niet klopt.
diff --git a/inc/lang/nl/resendpwd.txt b/inc/lang/nl/resendpwd.txt
index ed4617748..3a67587d7 100644
--- a/inc/lang/nl/resendpwd.txt
+++ b/inc/lang/nl/resendpwd.txt
@@ -1,3 +1,3 @@
==== Verstuur een nieuw wachtwoord ====
-Voer uw gebruikersnaam in het formulier hieronder in om een nieuw wachtwoord aan te vragen voor deze wiki. Een bevestigingslink zal worden verzonden naar het geregistreerde e-mailadres.
+Voer je gebruikersnaam in het formulier hieronder in om een nieuw wachtwoord aan te vragen voor deze wiki. Een bevestigingslink zal worden verzonden naar het geregistreerde e-mailadres.
diff --git a/inc/lang/nl/subscr_form.txt b/inc/lang/nl/subscr_form.txt
index a554f843e..0f9f2d006 100644
--- a/inc/lang/nl/subscr_form.txt
+++ b/inc/lang/nl/subscr_form.txt
@@ -1,3 +1,3 @@
====== Beheer inschrijvingen ======
-Deze pagina stelt u in staat uw inschrijven voor de huidige pagina en namespace te configureren. \ No newline at end of file
+Deze pagina stelt u in staat uw abonnementen voor de huidige pagina en namespace te configureren. \ No newline at end of file
diff --git a/inc/lang/nl/subscr_list.txt b/inc/lang/nl/subscr_list.txt
index 5e1a62144..7cde7128e 100644
--- a/inc/lang/nl/subscr_list.txt
+++ b/inc/lang/nl/subscr_list.txt
@@ -6,7 +6,7 @@ Pagina's in de namespace @PAGE@ van de @TITLE@ wiki zijn veranderd. Hier zijn de
@DIFF@
--------------------------------------------------------
-Om het verzenden van deze wijzigingsberichtente te stoppen, logt u in op het wiki op @DOKUWIKIURL@ en navigeert u naar @SUBSCRIBE@. Vervolgens kunt u zich voor elke gewenste pagina of namespace uitschrijven.
+Om het verzenden van deze wijzigingsberichten te stoppen, logt u in op het wiki op @DOKUWIKIURL@ en navigeert u naar @SUBSCRIBE@. Vervolgens kunt u zich voor elke gewenste pagina of namespace uitschrijven.
--
Deze email is gegenereerd door DokuWiki op @DOKUWIKIURL@ \ No newline at end of file
diff --git a/inc/lang/no/lang.php b/inc/lang/no/lang.php
index 8235bfb91..254d3c56b 100644
--- a/inc/lang/no/lang.php
+++ b/inc/lang/no/lang.php
@@ -263,7 +263,6 @@ $lang['subscr_m_receive'] = 'Motta';
$lang['subscr_style_every'] = 'e-post for alle endringer';
$lang['subscr_style_digest'] = 'e-post med sammendrag av endringer for hver side (%.2f dager mellom hver)';
$lang['subscr_style_list'] = 'liste med sider som er endra siden forrige e-post (%.2f dager mellom hver)';
-$lang['authmodfailed'] = 'Feilkonfigurert brukerautorisasjon. Vennligst innformer Wiki-admin.';
$lang['authtempfail'] = 'Brukerautorisasjon er midlertidig utilgjengelig. Om dette vedvarer, vennligst informer Wiki-admin.';
$lang['i_chooselang'] = 'Velg språk';
$lang['i_installer'] = 'DokuWiki-installasjon';
diff --git a/inc/lang/pl/lang.php b/inc/lang/pl/lang.php
index 51149e88f..118f0e5ab 100644
--- a/inc/lang/pl/lang.php
+++ b/inc/lang/pl/lang.php
@@ -265,7 +265,6 @@ $lang['subscr_m_unsubscribe'] = 'Zrezygnuj z subskrypcji';
$lang['subscr_m_subscribe'] = 'Subskrybuj';
$lang['subscr_m_receive'] = 'Otrzymuj';
$lang['subscr_style_every'] = 'email przy każdej zmianie';
-$lang['authmodfailed'] = 'Błąd uwierzytelnienia. Powiadom administratora tego wiki.';
$lang['authtempfail'] = 'Uwierzytelnienie użytkownika jest w tej chwili niemożliwe. Jeśli ta sytuacja się powtórzy, powiadom administratora tego wiki.';
$lang['authpwdexpire'] = 'Twoje hasło wygaśnie za %d dni. Należy je zmienić w krótkim czasie.';
$lang['i_chooselang'] = 'Wybierz język';
diff --git a/inc/lang/pt-br/lang.php b/inc/lang/pt-br/lang.php
index a92afc0a0..812799f04 100644
--- a/inc/lang/pt-br/lang.php
+++ b/inc/lang/pt-br/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Brazilian Portuguese language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Luis Fernando Enciso <lfenciso@certto.com.br>
* @author Alauton/Loug
* @author Frederico Gonçalves Guimarães <frederico@teia.bio.br>
@@ -20,6 +20,8 @@
* @author Frederico Guimarães <frederico@teia.bio.br>
* @author Balaco Baco <balacobaco@imap.cc>
* @author Victor Westmann <victor.westmann@gmail.com>
+ * @author Leone Lisboa Magevski <leone1983@gmail.com>
+ * @author Dário Estevão <darioems@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -63,6 +65,7 @@ $lang['btn_revert'] = 'Restaurar';
$lang['btn_register'] = 'Cadastre-se';
$lang['btn_apply'] = 'Aplicar';
$lang['btn_media'] = 'Gerenciador de mídias';
+$lang['btn_deleteuser'] = 'Remover minha conta';
$lang['loggedinas'] = 'Identificado(a) como';
$lang['user'] = 'Nome de usuário';
$lang['pass'] = 'Senha';
@@ -74,6 +77,7 @@ $lang['fullname'] = 'Nome completo';
$lang['email'] = 'E-mail';
$lang['profile'] = 'Perfil do usuário';
$lang['badlogin'] = 'Desculpe, mas o nome de usuário ou a senha estão incorretos.';
+$lang['badpassconfirm'] = 'Desculpe, mas a senha está errada ';
$lang['minoredit'] = 'Alterações mínimas';
$lang['draftdate'] = 'O rascunho foi salvo automaticamente em';
$lang['nosecedit'] = 'A página foi modificada nesse intervalo de tempo. Como a informação da seção estava desatualizada, foi carregada a página inteira.';
@@ -90,6 +94,9 @@ $lang['profna'] = 'Esse wiki não suporta modificações do perfi
$lang['profnochange'] = 'Sem alterações, nada para fazer.';
$lang['profnoempty'] = 'Não são permitidos nomes ou endereços de e-mail em branco.';
$lang['profchanged'] = 'O perfil do usuário foi atualizado com sucesso.';
+$lang['profnodelete'] = 'Esse wiki não suporta a exclusão de usuários ';
+$lang['profdeleteuser'] = 'Excluir a conta';
+$lang['profdeleted'] = 'Sua conta de usuário foi excluída desse wiki';
$lang['pwdforget'] = 'Esqueceu sua senha? Solicite outra';
$lang['resendna'] = 'Esse wiki não tem suporte para o reenvio de senhas.';
$lang['resendpwd'] = 'Definir a nova senha para';
@@ -274,7 +281,6 @@ $lang['subscr_m_receive'] = 'Receber';
$lang['subscr_style_every'] = 'um e-mail a cada modificação';
$lang['subscr_style_digest'] = 'um agrupamento de e-mails com as mudanças para cada página (a cada %.2f dias)';
$lang['subscr_style_list'] = 'uma lista de páginas modificadas desde o último e-mail (a cada %.2f dias)';
-$lang['authmodfailed'] = 'A configuração da autenticação de usuário está com problemas. Por favor, informe ao administrador do wiki.';
$lang['authtempfail'] = 'A autenticação de usuários está temporariamente desabilitada. Se essa situação persistir, por favor, informe ao administrador do Wiki.';
$lang['authpwdexpire'] = 'Sua senha vai expirar em %d dias. Você deve mudá-la assim que for possível.';
$lang['i_chooselang'] = 'Selecione o seu idioma';
diff --git a/inc/lang/pt/lang.php b/inc/lang/pt/lang.php
index ac9c59c3e..46405c444 100644
--- a/inc/lang/pt/lang.php
+++ b/inc/lang/pt/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Portuguese language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author José Carlos Monteiro <jose.c.monteiro@netcabo.pt>
* @author José Monteiro <Jose.Monteiro@DoWeDo-IT.com>
* @author Enrico Nicoletto <liverig@gmail.com>
@@ -12,12 +12,11 @@
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
-$lang['doublequoteopening'] = '“';//&ldquo;
-$lang['doublequoteclosing'] = '”';//&rdquo;
-$lang['singlequoteopening'] = '‘';//&lsquo;
-$lang['singlequoteclosing'] = '’';//&rsquo;
-$lang['apostrophe'] = '’';//&rsquo;
-
+$lang['doublequoteopening'] = '“';
+$lang['doublequoteclosing'] = '”';
+$lang['singlequoteopening'] = '‘';
+$lang['singlequoteclosing'] = '’';
+$lang['apostrophe'] = '’';
$lang['btn_edit'] = 'Editar página';
$lang['btn_source'] = 'Ver fonte';
$lang['btn_show'] = 'Ver página';
@@ -52,7 +51,7 @@ $lang['btn_revert'] = 'Restaurar';
$lang['btn_register'] = 'Registar';
$lang['btn_apply'] = 'Aplicar';
$lang['btn_media'] = 'Gestor de Media';
-
+$lang['btn_deleteuser'] = 'Remover a Minha Conta';
$lang['loggedinas'] = 'Está em sessão como';
$lang['user'] = 'Utilizador';
$lang['pass'] = 'Senha';
@@ -67,7 +66,6 @@ $lang['badlogin'] = 'O utilizador inválido ou senha inválida.';
$lang['minoredit'] = 'Alterações Menores';
$lang['draftdate'] = 'Rascunho automaticamente gravado em';
$lang['nosecedit'] = 'A página foi modificada entretanto. Como a informação da secção estava desactualizada, foi carregada a página inteira.';
-
$lang['regmissing'] = 'Por favor, preencha todos os campos.';
$lang['reguexists'] = 'Este utilizador já está inscrito. Por favor escolha outro nome de utilizador.';
$lang['regsuccess'] = 'O utilizador foi criado e a senha foi enviada para o endereço de correio electrónico usado na inscrição.';
@@ -77,12 +75,13 @@ $lang['regbadmail'] = 'O endereço de correio electrónico é inváli
$lang['regbadpass'] = 'As duas senhas não são idênticas, por favor tente de novo.';
$lang['regpwmail'] = 'A sua senha DokuWiki';
$lang['reghere'] = 'Para se registar, clique em';
-
$lang['profna'] = 'Este Wiki não suporta modificações aos perfis.';
$lang['profnochange'] = 'Nada alteração, nada a fazer.';
$lang['profnoempty'] = 'Não são permitidos nomes ou endereços em branco.';
$lang['profchanged'] = 'Perfil do utilizador actualizado com sucesso.';
-
+$lang['profnodelete'] = 'Esta wiki não suporta remoção de utilizadores';
+$lang['profdeleteuser'] = 'Apagar Conta';
+$lang['profdeleted'] = 'A sua conta de utilizador foi removida desta wiki';
$lang['pwdforget'] = 'Esqueceu a sua senha? Pedir nova senha';
$lang['resendna'] = 'Este wiki não suporta reenvio de senhas.';
$lang['resendpwdmissing'] = 'É preciso preencher todos os campos.';
@@ -90,10 +89,8 @@ $lang['resendpwdnouser'] = 'Não foi possível encontrar este utilizador.'
$lang['resendpwdbadauth'] = 'O código de autenticação não é válido. Por favor, assegure-se de que o link de confirmação está completo.';
$lang['resendpwdconfirm'] = 'O link de confirmação foi enviado por e-mail.';
$lang['resendpwdsuccess'] = 'A nova senha foi enviada por e-mail.';
-
$lang['license'] = 'Excepto menção em contrário, o conteúdo neste wiki está sob a seguinte licença:';
$lang['licenseok'] = 'Nota: Ao editar esta página você aceita disponibilizar o seu conteúdo sob a seguinte licença:';
-
$lang['searchmedia'] = 'Procurar nome de ficheiro:';
$lang['searchmedia_in'] = 'Procurar em %s';
$lang['txt_upload'] = 'Escolha ficheiro para carregar';
@@ -102,9 +99,7 @@ $lang['txt_overwrt'] = 'Escrever por cima do ficheiro já existente';
$lang['lockedby'] = 'Bloqueado por';
$lang['lockexpire'] = 'Expira em';
$lang['js']['willexpire'] = 'O bloqueio de edição para este documento irá expirar num minuto.\nPara evitar conflitos use o botão Prever para re-iniciar o temporizador de bloqueio.';
-
$lang['js']['notsavedyet'] = 'Alterações não gravadas serão perdidas.';
-
$lang['js']['searchmedia'] = 'Procurar por ficheiros';
$lang['js']['keepopen'] = 'Mantenha a janela aberta durante a selecção';
$lang['js']['hidedetails'] = 'Esconder Detalhes';
@@ -135,6 +130,16 @@ $lang['js']['linkwiz'] = 'Assistente de Criação de Ligação';
$lang['js']['linkto'] = 'Ligação para:';
$lang['js']['del_confirm'] = 'Remover o(s) item(s) selecionados?';
$lang['js']['restore_confirm'] = 'Restaurar esta versão?';
+$lang['js']['media_diff'] = 'Ver diferenças:';
+$lang['js']['media_diff_both'] = 'Lado a Lado';
+$lang['js']['media_diff_opacity'] = 'Sobreposição';
+$lang['js']['media_diff_portions'] = 'Slider';
+$lang['js']['media_select'] = 'Selecione ficheiros…';
+$lang['js']['media_upload_btn'] = 'Enviar';
+$lang['js']['media_done_btn'] = 'Feito';
+$lang['js']['media_drop'] = 'Largue ficheiros aqui para enviar';
+$lang['js']['media_cancel'] = 'remover';
+$lang['js']['media_overwrt'] = 'Escrever por cima de ficheiros existentes';
$lang['rssfailed'] = 'Ocorreu um erro neste canal RSS: ';
$lang['nothingfound'] = 'Nada foi encontrado.';
$lang['mediaselect'] = 'Selecção de ficheiros';
@@ -184,15 +189,21 @@ $lang['external_edit'] = 'Edição externa';
$lang['summary'] = 'Sumário da Edição';
$lang['noflash'] = 'O <a href="http://www.adobe.com/products/flashplayer/">Plugin Adobe Flash</a> é necessário para exibir este conteúdo.';
$lang['download'] = 'Descarregar Snippet';
-$lang['changes_type'] = 'Ver alterações de';
-$lang['pages_changes'] = 'Páginas';
-$lang['media_changes'] = 'Ficheiros Media';
-$lang['both_changes'] = 'Tanto páginas como ficheiros media';
+$lang['tools'] = 'Ferramentas';
+$lang['user_tools'] = 'Ferramentas de Utilizador';
+$lang['site_tools'] = 'Ferramentas de Site';
+$lang['page_tools'] = 'Ferramentas de Página';
+$lang['skip_to_content'] = 'saltar para conteúdo';
+$lang['sidebar'] = 'Barra Lateral';
$lang['mail_newpage'] = 'documento adicionado:';
$lang['mail_changed'] = 'documento modificado:';
$lang['mail_subscribe_list'] = 'páginas alteradas no espaço de nome:';
$lang['mail_new_user'] = 'Novo utilizador:';
$lang['mail_upload'] = 'Ficheiro carregado:';
+$lang['changes_type'] = 'Ver alterações de';
+$lang['pages_changes'] = 'Páginas';
+$lang['media_changes'] = 'Ficheiros Media';
+$lang['both_changes'] = 'Tanto páginas como ficheiros media';
$lang['qb_bold'] = 'Texto com Ênfase';
$lang['qb_italic'] = 'Texto Itálico';
$lang['qb_underl'] = 'Texto Sublinhado';
@@ -252,8 +263,8 @@ $lang['subscr_m_receive'] = 'Receber';
$lang['subscr_style_every'] = 'email em qualquer alteração';
$lang['subscr_style_digest'] = '"digest email" de alterações em cada página (cada %.2f dias)';
$lang['subscr_style_list'] = 'lista de páginas alteradas desde o último email (cada %.2f dias)';
-$lang['authmodfailed'] = 'Configuração de autenticação errada. Por favor, informe o Wiki Admin.';
$lang['authtempfail'] = 'Autenticação temporariamente indisponível. Se a situação persistir, por favor informe o Wiki Admin.';
+$lang['authpwdexpire'] = 'A sua senha expirará dentro de %d dias, deve mudá-la em breve.';
$lang['i_chooselang'] = 'Escolha a linguagem';
$lang['i_installer'] = 'Instalador do DokuWiki';
$lang['i_wikiname'] = 'Nome Wiki';
@@ -276,6 +287,9 @@ $lang['i_pol1'] = 'Wiki Público (ler para todos, escrever e carr
$lang['i_pol2'] = 'Wiki Fechado (ler, escrever e carregar somente para utilizadores inscritos)';
$lang['i_retry'] = 'Repetir';
$lang['i_license'] = 'Por favor escolha a licença sob a qual quer colocar o seu conteúdo:';
+$lang['i_license_none'] = 'Não mostrar nenhuma informação de licença';
+$lang['i_pop_field'] = 'Por favor ajude-nos a melhorar a experiência Dokuwiki:';
+$lang['i_pop_label'] = 'Uma vez por mês, enviar dados anónimos de uso para os desenvolvedores DokuWiki';
$lang['recent_global'] = 'Você está a observar as alterações dentro do espaço de nomes <b>%s</b>. Também é possível ver as <a href="%s">modificações recentes no wiki inteiro</a>.';
$lang['years'] = '%d anos atrás';
$lang['months'] = '%d meses atrás';
@@ -285,35 +299,23 @@ $lang['hours'] = '%d horas atrás';
$lang['minutes'] = '%d minutos atrás';
$lang['seconds'] = '%d segundos atrás';
$lang['wordblock'] = 'A sua alteração não foi guardada porque contém texto bloqueado (spam).';
-
-$lang['media_uploadtab'] = 'Enviar';
-$lang['media_searchtab'] = 'Procurar';
-$lang['media_viewtab'] = 'Ver';
-$lang['media_edittab'] = 'Editar';
-$lang['media_historytab'] = 'Histórico';
-$lang['media_sort'] = 'Ordenar';
-$lang['media_sort_name'] = 'Ordenar por nome';
-$lang['media_sort_date'] = 'Ordenar por data';
-$lang['media_upload'] = 'Enviar para o grupo <strong>%s</strong>.';
-$lang['media_search'] = 'Procurar no grupo <strong>%s</strong>.';
-$lang['media_view'] = '%s';
-$lang['media_edit'] = 'Editar %s';
-$lang['media_history'] = 'Histórico do %s';
-$lang['media_meta_edited']= 'metadata editada';
-$lang['media_perm_read'] = 'Perdão, não tem permissão para ler ficheiros.';
-$lang['media_perm_upload']= 'Perdão, não tem permissão para enviar ficheiros.';
-$lang['media_update'] = 'enviar nova versão';
-$lang['media_restore'] = 'Restaurar esta versão';
-
-$lang['js']['media_diff'] = 'Ver diferenças:';
-$lang['js']['media_diff_both'] = 'Lado a Lado';
-$lang['js']['media_diff_opacity'] = 'Sobreposição';
-$lang['js']['media_diff_portions'] = 'Slider'; // Needs translation. 'Deslizador' ?
-
-$lang['js']['media_select'] = 'Selecione ficheiros…';
-$lang['js']['media_upload_btn'] = 'Enviar';
-$lang['js']['media_done_btn'] = 'Feito';
-$lang['js']['media_drop'] = 'Largue ficheiros aqui para enviar';
-$lang['js']['media_cancel'] = 'remover';
-$lang['js']['media_overwrt'] = 'Escrever por cima de ficheiros existentes';
-
+$lang['media_uploadtab'] = 'Enviar';
+$lang['media_searchtab'] = 'Procurar';
+$lang['media_file'] = 'Ficheiro';
+$lang['media_viewtab'] = 'Ver';
+$lang['media_edittab'] = 'Editar';
+$lang['media_historytab'] = 'Histórico';
+$lang['media_list_rows'] = 'Linhas';
+$lang['media_sort_name'] = 'Ordenar por nome';
+$lang['media_sort_date'] = 'Ordenar por data';
+$lang['media_files'] = 'Ficheiros em %s';
+$lang['media_upload'] = 'Enviar para o grupo <strong>%s</strong>.';
+$lang['media_search'] = 'Procurar no grupo <strong>%s</strong>.';
+$lang['media_view'] = '%s';
+$lang['media_edit'] = 'Editar %s';
+$lang['media_history'] = 'Histórico do %s';
+$lang['media_meta_edited'] = 'metadata editada';
+$lang['media_perm_read'] = 'Perdão, não tem permissão para ler ficheiros.';
+$lang['media_perm_upload'] = 'Perdão, não tem permissão para enviar ficheiros.';
+$lang['media_update'] = 'enviar nova versão';
+$lang['media_restore'] = 'Restaurar esta versão';
diff --git a/inc/lang/ro/lang.php b/inc/lang/ro/lang.php
index 797d1a917..028c55a20 100644
--- a/inc/lang/ro/lang.php
+++ b/inc/lang/ro/lang.php
@@ -21,7 +21,7 @@ $lang['apostrophe'] = '\'';
$lang['btn_edit'] = 'Editează această pagină';
$lang['btn_source'] = 'Arată sursa paginii';
$lang['btn_show'] = 'Arată pagina';
-$lang['btn_create'] = 'Crează această pagină';
+$lang['btn_create'] = 'Creează această pagină';
$lang['btn_search'] = 'Caută';
$lang['btn_save'] = 'Salvează';
$lang['btn_preview'] = 'Previzualizează';
@@ -34,18 +34,18 @@ $lang['btn_upload'] = 'Upload';
$lang['btn_cancel'] = 'Renunțare';
$lang['btn_index'] = 'Index';
$lang['btn_secedit'] = 'Editează';
-$lang['btn_login'] = 'Login';
-$lang['btn_logout'] = 'Logout';
-$lang['btn_admin'] = 'Admin';
+$lang['btn_login'] = 'Autentificare';
+$lang['btn_logout'] = 'Deconectare';
+$lang['btn_admin'] = 'Administrativ';
$lang['btn_update'] = 'Actualizează';
$lang['btn_delete'] = 'Șterge';
$lang['btn_back'] = 'Înapoi';
$lang['btn_backlink'] = 'Legătură anterioară';
-$lang['btn_backtomedia'] = 'Înapoi la Selecția Mediafile';
-$lang['btn_subscribe'] = 'Subscrie Modificarea Paginii';
-$lang['btn_profile'] = 'Actualizează Profil';
+$lang['btn_backtomedia'] = 'Înapoi la selecția mediafile';
+$lang['btn_subscribe'] = 'Subscrie modificarea paginii';
+$lang['btn_profile'] = 'Actualizează profil';
$lang['btn_reset'] = 'Resetează';
-$lang['btn_resendpwd'] = 'Setează o parolă nouă';
+$lang['btn_resendpwd'] = 'Configurează o parolă nouă';
$lang['btn_draft'] = 'Editează schiță';
$lang['btn_recover'] = 'Recuperează schiță';
$lang['btn_draftdel'] = 'Șterge schiță';
@@ -58,51 +58,51 @@ $lang['user'] = 'Utilizator';
$lang['pass'] = 'Parola';
$lang['newpass'] = 'Parola nouă';
$lang['oldpass'] = 'Confirmă parola curentă';
-$lang['passchk'] = 'încă o dată';
+$lang['passchk'] = 'Încă o dată';
$lang['remember'] = 'Ține-mă minte';
$lang['fullname'] = 'Nume complet';
-$lang['email'] = 'E-Mail';
-$lang['profile'] = 'Profil Utilizator';
-$lang['badlogin'] = 'Imi pare rău, utilizatorul și/sau parola au fost greșite.';
-$lang['minoredit'] = 'Modificare Minoră';
+$lang['email'] = 'E-mail';
+$lang['profile'] = 'Profil utilizator';
+$lang['badlogin'] = 'Ne pare rău, utilizatorul și/sau parola au fost greșite.';
+$lang['minoredit'] = 'Modificare minoră';
$lang['draftdate'] = 'Schiță salvată automat la';
$lang['nosecedit'] = 'Pagina s-a modificat între timp, secțiunea info a expirat, s-a încărcat pagina întreagă în loc.';
$lang['regmissing'] = 'Ne pare rău, trebuie să completezi toate cîmpurile.';
-$lang['reguexists'] = 'Ne pare rău, un utilizator cu acest nume există deja logat.';
-$lang['regsuccess'] = 'Utilizatorul a fost creat. Parola a fost trimisă prin email.';
+$lang['reguexists'] = 'Ne pare rău, un utilizator cu acest nume este deja autentificat.';
+$lang['regsuccess'] = 'Utilizatorul a fost creat. Parola a fost trimisă prin e-mail.';
$lang['regsuccess2'] = 'Utilizatorul a fost creat.';
-$lang['regmailfail'] = 'Se pare că a fost o eroare la trimiterea parolei prin email. Contactați administratorul!';
-$lang['regbadmail'] = 'Adresa de email este invalidă - dacă credeți că este o eroare contactați administratorul.';
+$lang['regmailfail'] = 'Se pare că a fost o eroare la trimiterea parolei prin e-mail. Contactează administratorul!';
+$lang['regbadmail'] = 'Adresa de e-mail este nevalidă - dacă sunteți de părere că este o eroare contactează administratorul.';
$lang['regbadpass'] = 'Cele două parole furnizate nu sunt identice; încercați din nou.';
$lang['regpwmail'] = 'Parola ta DokuWiki';
-$lang['reghere'] = 'Înca nu ai un cont? Fă-ți unul';
-$lang['profna'] = 'Această wiki nu suportă modificarea profilului';
+$lang['reghere'] = 'Înca nu ai un cont? Fă-ți unul!';
+$lang['profna'] = 'Acest wiki nu permite modificarea profilului';
$lang['profnochange'] = 'Nici o modificare; nimic de făcut.';
-$lang['profnoempty'] = 'Nu sunt admise numele sau adresa de email necompletate.';
-$lang['profchanged'] = 'Profilul de utilizator a fost actualizat succes.';
-$lang['pwdforget'] = 'Parola uitată? Luați una nouă';
-$lang['resendna'] = 'Această wiki nu suportă retrimiterea parolei.';
-$lang['resendpwd'] = 'Setează o parolă nouă pentru';
+$lang['profnoempty'] = 'Nu sunt admise numele sau adresa de e-mail necompletate.';
+$lang['profchanged'] = 'Profilul de utilizator a fost actualizat cu succes.';
+$lang['pwdforget'] = 'Parola uitată? Obține una nouă!';
+$lang['resendna'] = 'Acest wiki nu permite retrimiterea parolei.';
+$lang['resendpwd'] = 'Configurează o parolă nouă pentru';
$lang['resendpwdmissing'] = 'Ne pare rău, trebuie completate toate câmpurile.';
$lang['resendpwdnouser'] = 'Ne pare rău, acest utilizator nu poate fi găsit în baza de date.';
-$lang['resendpwdbadauth'] = 'Ne pare rău, acest cod de autorizare nu este corect. Verificați dacă ați folosit tot link-ul de confirmare.';
-$lang['resendpwdconfirm'] = 'Un link de confirmare a fost trimis prin email.';
-$lang['resendpwdsuccess'] = 'Parola nouă';
+$lang['resendpwdbadauth'] = 'Ne pare rău, acest cod de autorizare nu este corect. Verifică dacă ai folosit întreg link-ul de confirmare.';
+$lang['resendpwdconfirm'] = 'Un link de confirmare a fost trimis prin e-mail.';
+$lang['resendpwdsuccess'] = 'Noua parolă a fost trimisă prin e-mail.';
$lang['license'] = 'Exceptând locurile unde este altfel specificat, conținutul acestui wiki este licențiat sub următoarea licență:';
-$lang['licenseok'] = 'Notă: Prin editarea acestei pagini sunteți de acord să vă licențiați conțintul sub următoarea licență:';
+$lang['licenseok'] = 'Notă: Prin editarea acestei pagini ești de acord să publici conțintul sub următoarea licență:';
$lang['searchmedia'] = 'Caută numele fișierului:';
$lang['searchmedia_in'] = 'Caută în %s';
-$lang['txt_upload'] = 'Selectează fisierul de încărcat';
+$lang['txt_upload'] = 'Selectează fișierul de încărcat';
$lang['txt_filename'] = 'Încarcă fișierul ca (opțional)';
$lang['txt_overwrt'] = 'Suprascrie fișierul existent';
$lang['lockedby'] = 'Momentan blocat de';
$lang['lockexpire'] = 'Blocarea expiră la';
$lang['js']['willexpire'] = 'Blocarea pentru editarea paginii expiră intr-un minut.\nPentru a preveni conflictele folosește butonul de previzualizare pentru resetarea blocării.';
-$lang['js']['notsavedyet'] = 'Există modificări nesalvate, care se vor pierde.
+$lang['js']['notsavedyet'] = 'Există modificări nesalvate care se vor pierde.
Dorești să continui?';
$lang['js']['searchmedia'] = 'Caută fișiere';
$lang['js']['keepopen'] = 'Menține fereastra deschisă la selecție';
-$lang['js']['hidedetails'] = 'Ascunde Detalii';
+$lang['js']['hidedetails'] = 'Ascunde detalii';
$lang['js']['mediatitle'] = 'Setări link';
$lang['js']['mediadisplay'] = 'Tip link';
$lang['js']['mediaalign'] = 'Aliniere';
@@ -110,26 +110,26 @@ $lang['js']['mediasize'] = 'Mărime imagine';
$lang['js']['mediatarget'] = 'Țintă link';
$lang['js']['mediaclose'] = 'Închide';
$lang['js']['mediainsert'] = 'Inserează';
-$lang['js']['mediadisplayimg'] = 'Afișează imaginea.';
-$lang['js']['mediadisplaylnk'] = 'Afișează doar linkul.';
+$lang['js']['mediadisplayimg'] = 'Afișează imaginea';
+$lang['js']['mediadisplaylnk'] = 'Afișează doar linkul';
$lang['js']['mediasmall'] = 'Versiune mică';
$lang['js']['mediamedium'] = 'Versiune medie';
$lang['js']['medialarge'] = 'Versiune mare';
-$lang['js']['mediaoriginal'] = 'Versiune originală';
+$lang['js']['mediaoriginal'] = 'Versiune inițială';
$lang['js']['medialnk'] = 'Link către pagina detaliilor';
-$lang['js']['mediadirect'] = 'Link direct către original';
+$lang['js']['mediadirect'] = 'Link direct către versiunea inițială';
$lang['js']['medianolnk'] = 'Fără link';
$lang['js']['medianolink'] = 'Nu crea link către imagine';
-$lang['js']['medialeft'] = 'Aliniază imaginea la stânga.';
-$lang['js']['mediaright'] = 'Aliniază imaginea la dreapta.';
-$lang['js']['mediacenter'] = 'Aliniază imaginea la centru.';
-$lang['js']['medianoalign'] = 'Nu utiliza aliniere.';
-$lang['js']['nosmblinks'] = 'Legăturile către sharing-uri Windows funcționeaza numai in Microsoft Internet Explorer.
-Puteți însă copia și insera legătura.';
+$lang['js']['medialeft'] = 'Aliniază imaginea la stânga';
+$lang['js']['mediaright'] = 'Aliniază imaginea la dreapta';
+$lang['js']['mediacenter'] = 'Aliniază imaginea la centru';
+$lang['js']['medianoalign'] = 'Nu utiliza aliniere';
+$lang['js']['nosmblinks'] = 'Link-urile către sharing-uri Windows funcționeaza numai în Microsoft Internet Explorer.
+Poți însă copia și insera link-ul.';
$lang['js']['linkwiz'] = 'Asistent legătură';
$lang['js']['linkto'] = 'Legătură la:';
-$lang['js']['del_confirm'] = 'Doriți într-adevăr ștergerea elementelor selectate?';
-$lang['js']['restore_confirm'] = 'Sunteți sigur că doriți restaurarea acestei versiuni?';
+$lang['js']['del_confirm'] = 'Ești sigur de ștergerea elementele selectate?';
+$lang['js']['restore_confirm'] = 'Ești sigur de restaurarea acestei versiuni?';
$lang['js']['media_diff'] = 'Arată diferențele:';
$lang['js']['media_diff_both'] = 'Unul lângă altul';
$lang['js']['media_diff_opacity'] = 'Străveziu';
@@ -138,40 +138,40 @@ $lang['js']['media_select'] = 'Selectează fișierele...';
$lang['js']['media_upload_btn'] = 'Încarcă';
$lang['js']['media_done_btn'] = 'Gata';
$lang['js']['media_drop'] = 'Lasă fișierele aici pentru încărcarea lor';
-$lang['js']['media_cancel'] = 'înlătură';
+$lang['js']['media_cancel'] = 'Înlătură';
$lang['js']['media_overwrt'] = 'Suprascrie fișierele deja existente';
-$lang['rssfailed'] = 'A apărut o eroare in timpul descărcării acestui cîmp: ';
+$lang['rssfailed'] = 'A apărut o eroare in timpul descărcării acestui câmp: ';
$lang['nothingfound'] = 'Nu am găsit nimic.';
-$lang['mediaselect'] = 'Selectare fișiere media';
-$lang['fileupload'] = 'Încarcă fișier media';
+$lang['mediaselect'] = 'Fișiere media';
+$lang['fileupload'] = 'Încarcare fișier media';
$lang['uploadsucc'] = 'Încărcare reușită';
$lang['uploadfail'] = 'Încărcare eșuată. Poate din cauza permisiunilor?';
$lang['uploadwrong'] = 'Încărcare nepermisă. Extensia fișierului e nepermisă';
$lang['uploadexist'] = 'Fișierul există deja. Nimic nu a fost făcut.';
$lang['uploadbadcontent'] = 'Conținutul încărcat nu corespunde extensiei fișierului %s.';
-$lang['uploadspam'] = 'Încărcarea a fost blocată datorită listei negre de spam.';
-$lang['uploadxss'] = 'Încărcarea a fost blocată datorită unui posibil conținut dăunător.';
+$lang['uploadspam'] = 'Încărcarea a fost blocată din cauza listei negre de spam.';
+$lang['uploadxss'] = 'Încărcarea a fost blocată din cauza unui posibil conținut dăunător.';
$lang['uploadsize'] = 'Fișierul uploadat a fost prea mare. (max %s)';
$lang['deletesucc'] = 'Fișierul "%s" a fost șters.';
-$lang['deletefail'] = '"%s" nu a putut fi șters - verificați drepturile.';
+$lang['deletefail'] = '"%s" nu a putut fi șters - verifică permisiunile.';
$lang['mediainuse'] = 'Fișierul "%s" nu a fost șters - este încă în uz.';
$lang['namespaces'] = 'Spații de nume';
$lang['mediafiles'] = 'Fișiere disponibile în';
-$lang['accessdenied'] = 'Nu vă este permis să vizualizați această pagină.';
-$lang['mediausage'] = 'Folosiți următoarea sintaxă pentru a face referință la acest fișier:';
-$lang['mediaview'] = 'Vizualizează fișierul original';
+$lang['accessdenied'] = 'Nu îți este permis să vizualizezi această pagină.';
+$lang['mediausage'] = 'Folosește următoarea sintaxă pentru a face referință la acest fișier:';
+$lang['mediaview'] = 'Vizualizează fișierul inițial';
$lang['mediaroot'] = 'root';
$lang['mediaupload'] = 'Încarcă un fișier in acest spațiu de nume. Pentru a crea sub-spații de nume, adaugă-le la fișierul de încărcat, separate de doua puncte (:).';
-$lang['mediaextchange'] = 'Extensia fișierului a fost modificată din .%s în .%s!';
+$lang['mediaextchange'] = 'Extensia fișierului a fost modificată din .%s în .%s.';
$lang['reference'] = 'Referință pentru';
-$lang['ref_inuse'] = 'Fișierul nu a putut fi șters întrucât este folosit încă de următoarele pagini:';
-$lang['ref_hidden'] = 'Nu aveți permisiunea să citiți o parte din referințele din pagină.';
-$lang['hits'] = 'Hituri';
+$lang['ref_inuse'] = 'Fișierul nu a putut fi șters întrucât este folosit de următoarele pagini:';
+$lang['ref_hidden'] = 'Nu ai permisiunea să citești o parte din referințele din pagină.';
+$lang['hits'] = 'Accese';
$lang['quickhits'] = 'Nume de pagini potrivite';
$lang['toc'] = 'Cuprins';
$lang['current'] = 'curent';
$lang['yours'] = 'Versiunea ta';
-$lang['diff'] = 'arată diferențele față de versiunea curentă';
+$lang['diff'] = 'Arată diferențele față de versiunea curentă';
$lang['diff2'] = 'Arată diferențele dintre versiunile selectate';
$lang['difflink'] = 'Link către această vizualizare comparativă';
$lang['diff_type'] = 'Vezi diferențe:';
@@ -179,7 +179,7 @@ $lang['diff_inline'] = 'Succesiv';
$lang['diff_side'] = 'Alăturate';
$lang['line'] = 'Linia';
$lang['breadcrumb'] = 'Traseu';
-$lang['youarehere'] = 'Sunteți aici';
+$lang['youarehere'] = 'Ești aici';
$lang['lastmod'] = 'Ultima modificare';
$lang['by'] = 'de către';
$lang['deleted'] = 'șters';
@@ -191,11 +191,11 @@ $lang['noflash'] = 'Plugin-ul <a href="http://www.adobe.com/produc
$lang['download'] = 'Bloc descărcări';
$lang['tools'] = 'Unelte';
$lang['user_tools'] = 'Unelte utilizator';
-$lang['site_tools'] = 'Unelte Site';
-$lang['page_tools'] = 'Unelte Pagină';
-$lang['skip_to_content'] = 'sari la conținut';
-$lang['mail_newpage'] = 'pagina adăugată:';
-$lang['mail_changed'] = 'page schimbată:';
+$lang['site_tools'] = 'Unelte site';
+$lang['page_tools'] = 'Unelte pagină';
+$lang['skip_to_content'] = 'mergi la conținut';
+$lang['mail_newpage'] = 'pagină adăugată:';
+$lang['mail_changed'] = 'pagină schimbată:';
$lang['mail_subscribe_list'] = 'pagini modificate în spațiul de nume:';
$lang['mail_new_user'] = 'utilizator nou';
$lang['mail_upload'] = 'fișier încărcat:';
@@ -203,43 +203,43 @@ $lang['changes_type'] = 'Vizualizare modificări';
$lang['pages_changes'] = 'Pagini';
$lang['media_changes'] = 'Fișiere media';
$lang['both_changes'] = 'Ambele pagini și fișiere media';
-$lang['qb_bold'] = 'Text Îngroșat';
-$lang['qb_italic'] = 'Text Italic';
-$lang['qb_underl'] = 'Text Subliniat';
-$lang['qb_code'] = 'Text Cod';
-$lang['qb_strike'] = 'Text Tăiat';
-$lang['qb_h1'] = 'Titlu de Nivel 1';
-$lang['qb_h2'] = 'Titlu de Nivel 2';
-$lang['qb_h3'] = 'Titlu de Nivel 3';
-$lang['qb_h4'] = 'Titlu de Nivel 4';
-$lang['qb_h5'] = 'Titlu de Nivel 5';
+$lang['qb_bold'] = 'Text aldin';
+$lang['qb_italic'] = 'Text cursiv';
+$lang['qb_underl'] = 'Text subliniat';
+$lang['qb_code'] = 'Text cod';
+$lang['qb_strike'] = 'Text tăiat';
+$lang['qb_h1'] = 'Titlu de nivel 1';
+$lang['qb_h2'] = 'Titlu de nivel 2';
+$lang['qb_h3'] = 'Titlu de nivel 3';
+$lang['qb_h4'] = 'Titlu de nivel 4';
+$lang['qb_h5'] = 'Titlu de nivel 5';
$lang['qb_h'] = 'Titlu';
-$lang['qb_hs'] = 'Selectați Titlul';
+$lang['qb_hs'] = 'Selectează titlul';
$lang['qb_hplus'] = 'Titlu mai mare';
$lang['qb_hminus'] = 'Titlu mai mic';
$lang['qb_hequal'] = 'Titlu de același nivel';
-$lang['qb_link'] = 'Legătură internă';
-$lang['qb_extlink'] = 'Legătura externă';
-$lang['qb_hr'] = 'Linie Orizontal';
-$lang['qb_ol'] = 'Listă Ordonată';
-$lang['qb_ul'] = 'Listă Neordoată';
+$lang['qb_link'] = 'Link intern';
+$lang['qb_extlink'] = 'Link extern';
+$lang['qb_hr'] = 'Linie orizontală';
+$lang['qb_ol'] = 'Listă ordonată';
+$lang['qb_ul'] = 'Listă neordoată';
$lang['qb_media'] = 'Adaugă imagini și alte fișiere';
$lang['qb_sig'] = 'Inserează semnătură';
$lang['qb_smileys'] = 'Smiley-uri';
$lang['qb_chars'] = 'Caractere speciale';
-$lang['upperns'] = 'sari la numele de spațiu părinte';
+$lang['upperns'] = 'Accesează spațiul de nume părinte';
$lang['admin_register'] = 'Adaugă utilizator nou';
-$lang['metaedit'] = 'Editează Metadata';
+$lang['metaedit'] = 'Editează metadata';
$lang['metasaveerr'] = 'Scrierea metadatelor a eșuat';
$lang['metasaveok'] = 'Metadatele au fost salvate';
$lang['img_backto'] = 'Înapoi la';
$lang['img_title'] = 'Titlu';
$lang['img_caption'] = 'Legendă';
-$lang['img_date'] = 'Data';
+$lang['img_date'] = 'Dată';
$lang['img_fname'] = 'Nume fișier';
$lang['img_fsize'] = 'Dimensiune';
$lang['img_artist'] = 'Fotograf';
-$lang['img_copyr'] = 'Copyright';
+$lang['img_copyr'] = 'Drept de autor';
$lang['img_format'] = 'Format';
$lang['img_camera'] = 'Camera';
$lang['img_keywords'] = 'Cuvinte cheie';
@@ -248,47 +248,46 @@ $lang['img_height'] = 'Înălțime';
$lang['img_manager'] = 'Vizualizează în administratorul media';
$lang['subscr_subscribe_success'] = 'Adăugat %s la lista de abonare pentru %s';
$lang['subscr_subscribe_error'] = 'Eroare la adăugarea %s la lista de abonare pentru %s';
-$lang['subscr_subscribe_noaddress'] = 'Nu există adresa asociată cu logarea dvs., nu puteți fi adăugat la lista de abonare';
+$lang['subscr_subscribe_noaddress'] = 'Nu există adresă de e-mail asociată autentificării curente, nu poți fi adăugat la lista de abonare';
$lang['subscr_unsubscribe_success'] = 'Șters %s din lista de abonare pentru %s';
$lang['subscr_unsubscribe_error'] = 'Eroare la ștergerea %s din lista de abonare pentru %s';
$lang['subscr_already_subscribed'] = '%s este deja abonat la %s';
$lang['subscr_not_subscribed'] = '%s nu este abonat la %s';
-$lang['subscr_m_not_subscribed'] = 'Momentan nu sunteți abonat la pagina curentă sau la numele de spațiu.';
+$lang['subscr_m_not_subscribed'] = 'Momentan nu ești abonat la pagina curentă sau la spațiul de nume.';
$lang['subscr_m_new_header'] = 'Adaugă abonare';
$lang['subscr_m_current_header'] = 'Abonări curente';
-$lang['subscr_m_unsubscribe'] = 'Dezabonați-vă';
-$lang['subscr_m_subscribe'] = 'Abonați-vă';
-$lang['subscr_m_receive'] = 'Primiți';
-$lang['subscr_style_every'] = 'email la ficare schimbare';
-$lang['subscr_style_digest'] = 'digerează email la schimbări pentru fiecare pagină (la fiecare %.2f zile)';
-$lang['subscr_style_list'] = 'lista paginilor schimbate de la ultimul email (la fiecare %.2f zile)';
-$lang['authmodfailed'] = 'Configurația autentificării utilizatorului este eronată. Anunțați Wiki Admin-ul.';
-$lang['authtempfail'] = 'Autentificarea utilizatorului este temporar indisponibilă. Anunțați Wiki Admin-ul.';
-$lang['authpwdexpire'] = 'Parola vă va expira în %d zile, ar trebui să o schimbați curând.';
-$lang['i_chooselang'] = 'Alegeți limba';
-$lang['i_installer'] = 'DokuWiki Installer';
-$lang['i_wikiname'] = 'Numele Wiki';
-$lang['i_enableacl'] = 'Activează ACL (recomandat)';
-$lang['i_superuser'] = 'Superutilizator';
-$lang['i_problems'] = 'Programul de instalare a găsit câteva probleme, indicate mai jos. Nu puteți continua până nu le rezolvați.';
-$lang['i_modified'] = 'Din motive de securitate, acest script va funcționa doar cu o instalare nouă și nemodificată a Docuwiki.
-Puteți fie să extrageți din nou fișierele din arhiva descărcată fie să consultați instrucțiunile de instalare Dokuwiki la <a href="http://dokuwiki.org/install">';
-$lang['i_funcna'] = 'Funcția PHP <code>%s</code> nu este disponibilă. Probabil provider-ul dvs. a inactivat-o pentru un motiv oarecare.';
-$lang['i_phpver'] = 'Versiunea dvs. de PHP <code>%s</code> este mai veche decât cea necesară (<code>%s</code>). Trebuie să vă actualizați instalarea PHP.';
-$lang['i_permfail'] = '<code>%s</code> nu poate fi scris de către DokuWiki. Trebuie să modificați drepturile acestui director!';
+$lang['subscr_m_unsubscribe'] = 'Dezabonează-te';
+$lang['subscr_m_subscribe'] = 'Abonează-te';
+$lang['subscr_m_receive'] = 'Primește';
+$lang['subscr_style_every'] = 'e-mail la ficare schimbare';
+$lang['subscr_style_digest'] = 'e-mail cu sumar al modificărilor pentru fiecare pagină (la fiecare %.2f zile)';
+$lang['subscr_style_list'] = 'lista paginilor modificate de la ultimul e-mail (la fiecare %.2f zile)';
+$lang['authtempfail'] = 'Autentificarea utilizatorului este temporar indisponibilă. Contactează administratorul.';
+$lang['authpwdexpire'] = 'Parola va expira în %d zile, ar trebui să o schimbi în curând.';
+$lang['i_chooselang'] = 'Alege limba';
+$lang['i_installer'] = 'Installer DokuWiki';
+$lang['i_wikiname'] = 'Numele acestui wiki';
+$lang['i_enableacl'] = 'Activează ACL (liste de control a accesului) (recomandat)';
+$lang['i_superuser'] = 'Utilizator privilegiat';
+$lang['i_problems'] = 'Programul de instalare a găsit câteva probleme, indicate mai jos. Nu poți continua până nu le rezolvi.';
+$lang['i_modified'] = 'Din motive de securitate, acest script va funcționa doar cu o instalare nouă și nemodificată a DokuWiki.
+Poți fie să extragi din nou fișierele din arhiva descărcată fie să consulți instrucțiunile de instalare DokuWiki la <a href="http://dokuwiki.org/install">';
+$lang['i_funcna'] = 'Funcția PHP <code>%s</code> nu este disponibilă. Probabil provider-ul tău a dezactivat-o pentru un motiv anume.';
+$lang['i_phpver'] = 'Versiunea ta de PHP <code>%s</code> este mai veche decât cea necesară (<code>%s</code>). Trebuie să îți actualizezi instalarea PHP.';
+$lang['i_permfail'] = '<code>%s</code> nu poate fi scris de către DokuWiki. Trebuie să modifici permisiunile pe acest director.';
$lang['i_confexists'] = '<code>%s</code> există deja';
-$lang['i_writeerr'] = 'Nu s-a putut crea <code>%s</code>. Trebuie să verificați drepturile directorului/fișierului și să creați fișierul manual.';
+$lang['i_writeerr'] = 'Nu s-a putut crea <code>%s</code>. Trebuie să verifici permisiunile directorului/fișierului și să creezi fișierul manual.';
$lang['i_badhash'] = 'dokuwiki.php nu a fost recunoscut sau a fost modificat (hash=<code>%s</code>)';
$lang['i_badval'] = '<code>%s</code> - valoare nepemisă sau neintrodusă';
-$lang['i_success'] = 'Configurarea a fost finalizată cu succes. Acum puteți sterge fișierul install.php. Continuați cu <a href="doku.php?id=wiki:welcome">your new DokuWiki</a>.';
-$lang['i_failure'] = 'Au apărut erori la scrierea fișierelor de configurare. Va trebui să le corectați manual înainte de a putea folosi <a href="doku.php?id=wiki:welcome">your new DokuWiki</a>.';
-$lang['i_policy'] = 'Politica ACL inițială';
-$lang['i_pol0'] = 'Wiki Deschisă (citește, scrie și încarcă oricine)';
-$lang['i_pol1'] = 'Wiki Deschisă (citeste oricine, scrie și încarcă doar utilizatorul înregistrat)';
-$lang['i_pol2'] = 'Wiki Închisă (citește, scrie și încarcă doar utilizatorul înregistrat)';
+$lang['i_success'] = 'Configurarea a fost finalizată cu succes. Acum poți sterge fișierul install.php. Poți accesa <a href="doku.php?id=wiki:welcome">noua ta instanță DokuWiki</a>.';
+$lang['i_failure'] = 'Au apărut erori la scrierea fișierelor de configurare. Va trebui să le corectezi manual înainte de a putea folosi <a href="doku.php?id=wiki:welcome">noua ta instanță DokuWiki</a>.';
+$lang['i_policy'] = 'Politica ACL (liste de control a accesului) inițială';
+$lang['i_pol0'] = 'Wiki deschis (oricine poate citi, scrie și încărca fișiere)';
+$lang['i_pol1'] = 'Wiki public (oricine poate citi, utilizatorii înregistrați pot scrie și încărca fișiere';
+$lang['i_pol2'] = 'Wiki închis (doar utilizatorii înregistrați pot citi, scrie și încărca fișiere)';
$lang['i_retry'] = 'Încearcă din nou';
-$lang['i_license'] = 'Vă rugăm alegeți licența sub care doriți să vă licențiați materialul:';
-$lang['recent_global'] = 'Acum vizualizați modificările în interiorul numelui de spațiu <b>%s</b>. De asemenea puteți <a href="%s">vizualiza modificările recente ale întregului wiki</a>.';
+$lang['i_license'] = 'Te rugăm să alegi licența sub care dorești să publici conținutul:';
+$lang['recent_global'] = 'În acest moment vizualizezi modificările în interiorul spațiului de nume <b>%s</b>. De asemenea poți <a href="%s">vizualiza modificările recente în întregului wiki-ul</a>.';
$lang['years'] = 'acum %d ani';
$lang['months'] = 'acum %d luni';
$lang['weeks'] = 'acum %d săptămâni';
@@ -296,8 +295,8 @@ $lang['days'] = 'acum %d zile';
$lang['hours'] = 'acum %d ore';
$lang['minutes'] = 'acum %d minute';
$lang['seconds'] = 'acum %d secunde';
-$lang['wordblock'] = 'Modificarea dvs. nu au fost salvate deoarece conține text blocat (spam).';
-$lang['media_uploadtab'] = 'Încarcă';
+$lang['wordblock'] = 'Modificarea ta nu a fost salvată deoarece conține text blocat (spam).';
+$lang['media_uploadtab'] = 'Încărcare fișier';
$lang['media_searchtab'] = 'Căutare';
$lang['media_file'] = 'Fișier';
$lang['media_viewtab'] = 'Vizualizare';
@@ -306,17 +305,17 @@ $lang['media_historytab'] = 'Istoric';
$lang['media_list_thumbs'] = 'Miniaturi';
$lang['media_list_rows'] = 'Linii';
$lang['media_sort_name'] = 'Nume';
-$lang['media_sort_date'] = 'Data';
-$lang['media_namespaces'] = 'Alegeți numele se spațiu';
+$lang['media_sort_date'] = 'Dată';
+$lang['media_namespaces'] = 'Alege spațiul de nume';
$lang['media_files'] = 'Fișiere în %s';
-$lang['media_upload'] = 'Încarcă în %s';
-$lang['media_search'] = 'Caută în %s';
+$lang['media_upload'] = 'Încărcare în %s';
+$lang['media_search'] = 'Cautare în %s';
$lang['media_view'] = '%s';
$lang['media_viewold'] = '%s în %s';
$lang['media_edit'] = 'Editare %s';
$lang['media_history'] = 'Istoricul pentru %s';
$lang['media_meta_edited'] = 'metadate editate';
-$lang['media_perm_read'] = 'Ne pare rău, dar nu aveți suficiente drepturi pentru a putea citi fișiere.';
-$lang['media_perm_upload'] = 'Ne pare rău, dar nu aveți suficiente drepturi pentru a putea încărca fișiere.';
+$lang['media_perm_read'] = 'Ne pare rău, dar nu ai suficiente permisiuni pentru a putea citi fișiere.';
+$lang['media_perm_upload'] = 'Ne pare rău, dar nu ai suficiente permisiuni pentru a putea încărca fișiere.';
$lang['media_update'] = 'Încarcă noua versiune';
$lang['media_restore'] = 'Restaurează această versiune';
diff --git a/inc/lang/ru/denied.txt b/inc/lang/ru/denied.txt
index 2cc33cff7..f7f53ce88 100644
--- a/inc/lang/ru/denied.txt
+++ b/inc/lang/ru/denied.txt
@@ -1,3 +1,3 @@
====== Доступ запрещён ======
-Извините, у вас не хватает прав для этого действия. Может быть, вы забыли войти в вики под своим логином?
+Извините, у вас не хватает прав для этого действия. Может быть вы забыли войти в вики под своим логином?
diff --git a/inc/lang/ru/diff.txt b/inc/lang/ru/diff.txt
index 4d1d4d031..80252614f 100644
--- a/inc/lang/ru/diff.txt
+++ b/inc/lang/ru/diff.txt
@@ -1,4 +1,4 @@
====== Различия ======
-Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.
+Здесь показаны различия между двумя версиями данной страницы.
diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php
index 6709ebc59..6a0c4bb6b 100644
--- a/inc/lang/ru/lang.php
+++ b/inc/lang/ru/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Russian language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Yuri Pimenov <up@ftpsearch.lv>
* @author Igor Tarasov <tigr@mail15.com>
* @author Denis Simakov <akinoame1@gmail.com>
@@ -21,6 +21,7 @@
* @author Eugene <windy.wanderer@gmail.com>
* @author Johnny Utah <pcpa@cyberpunk.su>
* @author Ivan I. Udovichenko (sendtome@mymailbox.pp.ua)
+ * @author Pavel <ivanovtsk@mail.ru>
*/
$lang['encoding'] = ' utf-8';
$lang['direction'] = 'ltr';
@@ -63,7 +64,8 @@ $lang['btn_draftdel'] = 'Удалить черновик';
$lang['btn_revert'] = 'Восстановить';
$lang['btn_register'] = 'Зарегистрироваться';
$lang['btn_apply'] = 'Применить';
-$lang['btn_media'] = 'Media Manager';
+$lang['btn_media'] = 'Управление медиафайлами';
+$lang['btn_deleteuser'] = 'Удалить мой аккаунт';
$lang['loggedinas'] = 'Зашли как';
$lang['user'] = 'Логин';
$lang['pass'] = 'Пароль';
@@ -75,12 +77,13 @@ $lang['fullname'] = 'Полное имя';
$lang['email'] = 'Эл. адрес';
$lang['profile'] = 'Профиль пользователя';
$lang['badlogin'] = 'Извините, неверное имя пользователя или пароль.';
+$lang['badpassconfirm'] = 'Простите, пароль неверный';
$lang['minoredit'] = 'Небольшие изменения';
$lang['draftdate'] = 'Черновик сохранён';
$lang['nosecedit'] = 'За это время страница была изменена и информация о секции устарела. Загружена полная версия страницы.';
$lang['regmissing'] = 'Извините, вам следует заполнить все поля.';
$lang['reguexists'] = 'Извините, пользователь с таким логином уже существует.';
-$lang['regsuccess'] = 'Пользователь создан, пароль выслан на адрес электронной почты.';
+$lang['regsuccess'] = 'Пользователь создан; пароль выслан на адрес электронной почты.';
$lang['regsuccess2'] = 'Пользователь создан.';
$lang['regmailfail'] = 'Похоже есть проблема с отправкой пароля по почте. Пожалуйста, сообщите об этом администратору.';
$lang['regbadmail'] = 'Данный вами адрес электронной почты выглядит неправильным. Если вы считаете это ошибкой, сообщите администратору.';
@@ -91,6 +94,11 @@ $lang['profna'] = 'Данная вики не поддержив
$lang['profnochange'] = 'Изменений не было внесено, профиль не обновлён.';
$lang['profnoempty'] = 'Логин и адрес электронной почты не могут быть пустыми.';
$lang['profchanged'] = 'Профиль пользователя успешно обновлён.';
+$lang['profnodelete'] = 'Удалённый пользователь не может работать с этим документом';
+$lang['profdeleteuser'] = 'Удалить аккаунт';
+$lang['profdeleted'] = 'Ваш аккаунт был удален из этой вики';
+$lang['profconfdelete'] = 'Я хочу удалить мой аккаунт из этой вики.<br />Это действие необратимо.';
+$lang['profconfdeletemissing'] = 'Флажок подтверждения не установлен';
$lang['pwdforget'] = 'Забыли пароль? Получите новый';
$lang['resendna'] = 'Данная вики не поддерживает повторную отправку пароля.';
$lang['resendpwd'] = 'Установить новый пароль для';
@@ -109,7 +117,7 @@ $lang['txt_overwrt'] = 'Перезаписать существующ
$lang['maxuploadsize'] = 'Максимальный размер загружаемого файла %s';
$lang['lockedby'] = 'В данный момент заблокирован';
$lang['lockexpire'] = 'Блокировка истекает в';
-$lang['js']['willexpire'] = 'Ваша блокировка этой страницы на редактирование истекает в течении минуты.\nЧтобы предотвратить конфликты используйте кнопку "Просмотр" для сброса таймера блокировки.';
+$lang['js']['willexpire'] = 'Ваша блокировка этой страницы на редактирование истекает в течение минуты.\nЧтобы предотвратить конфликты используйте кнопку «Просмотр» для сброса таймера блокировки.';
$lang['js']['notsavedyet'] = 'Несохранённые изменения будут потеряны. Вы действительно хотите продолжить?';
$lang['js']['searchmedia'] = 'Поиск файлов';
$lang['js']['keepopen'] = 'Не закрывать окно после выбора';
@@ -141,8 +149,8 @@ $lang['js']['linkto'] = 'Ссылка на:';
$lang['js']['del_confirm'] = 'Вы на самом деле желаете удалить выбранное?';
$lang['js']['restore_confirm'] = 'Действительно восстановить эту версию?';
$lang['js']['media_diff'] = 'Просмотр отличий:';
-$lang['js']['media_diff_both'] = 'Рядом';
-$lang['js']['media_diff_opacity'] = 'Наложением';
+$lang['js']['media_diff_both'] = 'рядом';
+$lang['js']['media_diff_opacity'] = 'наложением';
$lang['js']['media_diff_portions'] = 'Частями';
$lang['js']['media_select'] = 'Выбрать файлы…';
$lang['js']['media_upload_btn'] = 'Загрузить';
@@ -162,9 +170,9 @@ $lang['uploadbadcontent'] = 'Содержание файла не соот
$lang['uploadspam'] = 'Загрузка заблокирована спам-фильтром.';
$lang['uploadxss'] = 'Загрузка заблокирована по соображениям безопасности.';
$lang['uploadsize'] = 'Загруженный файл был слишком большой. (макс. %s)';
-$lang['deletesucc'] = 'Файл "%s" был удалён.';
-$lang['deletefail'] = 'Невозможно удалить файл "%s". Проверьте права доступа к файлу.';
-$lang['mediainuse'] = 'Файл "%s" не был удалён — файл всё ещё используется.';
+$lang['deletesucc'] = 'Файл «%s» был удалён.';
+$lang['deletefail'] = 'Невозможно удалить файл «%s». Проверьте права доступа к файлу.';
+$lang['mediainuse'] = 'Файл «%s» не был удалён — файл всё ещё используется.';
$lang['namespaces'] = 'Пространства имён';
$lang['mediafiles'] = 'Доступные файлы';
$lang['accessdenied'] = 'Вы не можете просмотреть эту страницу.';
@@ -185,8 +193,8 @@ $lang['diff'] = 'показать отличия от теку
$lang['diff2'] = 'Показать различия между ревизиями ';
$lang['difflink'] = 'Ссылка на это сравнение';
$lang['diff_type'] = 'Посмотреть отличия';
-$lang['diff_inline'] = 'Встроенный';
-$lang['diff_side'] = 'Бок о бок';
+$lang['diff_inline'] = 'встроенный';
+$lang['diff_side'] = 'бок о бок';
$lang['line'] = 'Строка';
$lang['breadcrumb'] = 'Вы посетили';
$lang['youarehere'] = 'Вы находитесь здесь';
@@ -204,16 +212,16 @@ $lang['user_tools'] = 'Инструменты пользовател
$lang['site_tools'] = 'Инструменты сайта';
$lang['page_tools'] = 'Инструменты страницы';
$lang['skip_to_content'] = 'Перейти к содержанию';
-$lang['sidebar'] = 'Боковая колонна';
+$lang['sidebar'] = 'Боковая панель';
$lang['mail_newpage'] = 'страница добавлена:';
$lang['mail_changed'] = 'страница изменена:';
$lang['mail_subscribe_list'] = 'изменились страницы в пространстве имён:';
$lang['mail_new_user'] = 'новый пользователь:';
$lang['mail_upload'] = 'файл закачан:';
$lang['changes_type'] = 'Посмотреть изменения';
-$lang['pages_changes'] = 'Страниц';
-$lang['media_changes'] = 'Медиа файлов';
-$lang['both_changes'] = 'И страниц и медиа файлов';
+$lang['pages_changes'] = 'страниц';
+$lang['media_changes'] = 'медиафайлов';
+$lang['both_changes'] = 'и страниц, и медиафайлов';
$lang['qb_bold'] = 'Полужирный';
$lang['qb_italic'] = 'Курсив';
$lang['qb_underl'] = 'Подчёркнутый';
@@ -234,7 +242,7 @@ $lang['qb_extlink'] = 'Внешняя ссылка';
$lang['qb_hr'] = 'Разделитель';
$lang['qb_ol'] = 'Элемент нумерованного списка';
$lang['qb_ul'] = 'Элемент ненумерованного списка';
-$lang['qb_media'] = 'Добавить изображения или другие файлы';
+$lang['qb_media'] = 'Добавить изображения или другие файлы (откроется в новом окне)';
$lang['qb_sig'] = 'Вставить подпись';
$lang['qb_smileys'] = 'Смайлики';
$lang['qb_chars'] = 'Специальные символы';
@@ -256,7 +264,7 @@ $lang['img_camera'] = 'Модель';
$lang['img_keywords'] = 'Ключевые слова';
$lang['img_width'] = 'Ширина';
$lang['img_height'] = 'Высота';
-$lang['img_manager'] = 'Просмотр в media manager';
+$lang['img_manager'] = 'Просмотр в «управлении медиафайлами»';
$lang['subscr_subscribe_success'] = 'Добавлен %s в подписку на %s';
$lang['subscr_subscribe_error'] = 'Невозможно добавить %s в подписку на %s';
$lang['subscr_subscribe_noaddress'] = 'Нет адреса электронной почты, сопоставленного с вашей учётной записью. Вы не можете подписаться на рассылку';
@@ -271,9 +279,8 @@ $lang['subscr_m_unsubscribe'] = 'Отменить подписку';
$lang['subscr_m_subscribe'] = 'Подписаться';
$lang['subscr_m_receive'] = 'Получить';
$lang['subscr_style_every'] = 'уведомлять о каждом изменении';
-$lang['subscr_style_digest'] = 'информационное электронное письмо со списком изменений для каждоый страницы (каждые %.2f дней)';
+$lang['subscr_style_digest'] = 'информационное электронное письмо со списком изменений для каждой страницы (каждые %.2f дней)';
$lang['subscr_style_list'] = 'список изменённых страниц со времени последнего отправленного электронного письма (каждые %.2f дней)';
-$lang['authmodfailed'] = 'Неправильная конфигурация аутентификации пользователя. Пожалуйста, сообщите об этом своему администратору вики.';
$lang['authtempfail'] = 'Аутентификация пользователей временно недоступна. Если проблема продолжается какое-то время, пожалуйста, сообщите об этом своему администратору вики.';
$lang['authpwdexpire'] = 'Действие вашего пароля истекает через %d дней. Вы должны изменить его как можно скорее';
$lang['i_chooselang'] = 'Выберите свой язык/Choose your language';
@@ -302,8 +309,8 @@ $lang['i_pol2'] = 'Закрытая вики (чтение, за
$lang['i_retry'] = 'Повторить попытку';
$lang['i_license'] = 'Пожалуйста, выберите тип лицензии для своей вики:';
$lang['i_license_none'] = 'Не отображать информацию о лицензионных операциях';
-$lang['i_pop_field'] = 'Пожалуйста, помогите нам улучшить DokuWiki:';
-$lang['i_pop_label'] = 'Отправлять раз в месяц анонимную пользовательскую информацию разработчикам DokuWiki';
+$lang['i_pop_field'] = 'Пожалуйста, помогите нам улучшить «ДокуВики»:';
+$lang['i_pop_label'] = 'Отправлять раз в месяц анонимную пользовательскую информацию разработчикам «ДокуВики»';
$lang['recent_global'] = 'Вы просматриваете изменения в пространстве имён <b>%s</b>. Вы можете также <a href="%s">просмотреть недавние изменения во всей вики</a>.';
$lang['years'] = '%d лет назад';
$lang['months'] = '%d месяц(ев) назад';
@@ -333,7 +340,7 @@ $lang['media_viewold'] = '%s в %s
$lang['media_edit'] = 'Правка %s';
$lang['media_history'] = 'История %s';
$lang['media_meta_edited'] = 'метаданные изменены';
-$lang['media_perm_read'] = 'Извините, у Вас недостаточно прав для чтения файлов.';
-$lang['media_perm_upload'] = 'Извините, у Вас недостаточно прав для загрузки файлов.';
+$lang['media_perm_read'] = 'Извините, у вас недостаточно прав для чтения файлов.';
+$lang['media_perm_upload'] = 'Извините, у вас недостаточно прав для загрузки файлов.';
$lang['media_update'] = 'Загрузить новую версию';
$lang['media_restore'] = 'Восстановить эту версию';
diff --git a/inc/lang/ru/mailtext.txt b/inc/lang/ru/mailtext.txt
index 53d3431a3..2b3f76bbd 100644
--- a/inc/lang/ru/mailtext.txt
+++ b/inc/lang/ru/mailtext.txt
@@ -1,13 +1,13 @@
В вашей вики была добавлена или изменена страница. Подробности:
-Дата : @DATE@
-Браузер : @BROWSER@
-IP-адрес : @IPADDRESS@
-Хост : @HOSTNAME@
-Старая версия : @OLDPAGE@
-Новая версия : @NEWPAGE@
-Сводка изменений : @SUMMARY@
-Пользователь : @USER@
+Дата: @DATE@
+Браузер: @BROWSER@
+IP-адрес: @IPADDRESS@
+Хост: @HOSTNAME@
+Старая версия: @OLDPAGE@
+Новая версия: @NEWPAGE@
+Сводка изменений: @SUMMARY@
+Пользователь: @USER@
@DIFF@
diff --git a/inc/lang/ru/password.txt b/inc/lang/ru/password.txt
index 91117ca56..eb100f334 100644
--- a/inc/lang/ru/password.txt
+++ b/inc/lang/ru/password.txt
@@ -3,7 +3,6 @@
Ваши данные для @TITLE@ (@DOKUWIKIURL@)
Имя пользователя: @LOGIN@
-
Пароль: @PASSWORD@
--
diff --git a/inc/lang/ru/registermail.txt b/inc/lang/ru/registermail.txt
index 77094e8d8..fc862b034 100644
--- a/inc/lang/ru/registermail.txt
+++ b/inc/lang/ru/registermail.txt
@@ -1,13 +1,13 @@
Был зарегистрирован новый пользователь. Подробности:
-Логин : @NEWUSER@
-Полное имя : @NEWNAME@
-Эл. адрес : @NEWEMAIL@
+Логин: @NEWUSER@
+Полное имя: @NEWNAME@
+Эл. адрес: @NEWEMAIL@
-Дата : @DATE@
-Браузер : @BROWSER@
-Адрес IP : @IPADDRESS@
-Хост : @HOSTNAME@
+Дата: @DATE@
+Браузер: @BROWSER@
+Адрес IP: @IPADDRESS@
+Хост: @HOSTNAME@
--
Это сообщение было сгенерировано «ДокуВики» по адресу
diff --git a/inc/lang/ru/subscr_single.txt b/inc/lang/ru/subscr_single.txt
index 0e67d8f59..911a48e96 100644
--- a/inc/lang/ru/subscr_single.txt
+++ b/inc/lang/ru/subscr_single.txt
@@ -1,6 +1,5 @@
Привет.
-
Страница @PAGE@ в вики @TITLE@ изменилась.
Список изменений:
diff --git a/inc/lang/ru/uploadmail.txt b/inc/lang/ru/uploadmail.txt
index 77f79231e..f696f2c44 100644
--- a/inc/lang/ru/uploadmail.txt
+++ b/inc/lang/ru/uploadmail.txt
@@ -1,14 +1,14 @@
В вашу вики был закачан файл. Подробная информация:
-Файл : @MEDIA@
+Файл: @MEDIA@
Старая версия: @OLD@
-Дата : @DATE@
-Браузер : @BROWSER@
-Адрес IP : @IPADDRESS@
-Хост : @HOSTNAME@
-Размер : @SIZE@
-Тип MIME : @MIME@
-Пользователь : @USER@
+Дата: @DATE@
+Браузер: @BROWSER@
+Адрес IP: @IPADDRESS@
+Хост: @HOSTNAME@
+Размер: @SIZE@
+Тип MIME: @MIME@
+Пользователь: @USER@
--
Это письмо было сгенерировано «ДокуВики» по адресу
diff --git a/inc/lang/sk/lang.php b/inc/lang/sk/lang.php
index 5bda5fdaf..e8c1151d5 100644
--- a/inc/lang/sk/lang.php
+++ b/inc/lang/sk/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Slovak language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Ondrej Vegh <ov@vsieti.sk> with help of the scholars from Zdruzena stredna skola polygraficka in Bratislava
* @author Michal Mesko <michal.mesko@gmail.com>
* @author exusik@gmail.com
@@ -50,6 +50,7 @@ $lang['btn_revert'] = 'Obnoviť';
$lang['btn_register'] = 'Registrovať';
$lang['btn_apply'] = 'Použiť';
$lang['btn_media'] = 'Správa médií';
+$lang['btn_deleteuser'] = 'Zrušiť môj účet';
$lang['loggedinas'] = 'Prihlásený(á) ako';
$lang['user'] = 'Užívateľské meno';
$lang['pass'] = 'Heslo';
@@ -61,6 +62,7 @@ $lang['fullname'] = 'Celé meno';
$lang['email'] = 'E-Mail';
$lang['profile'] = 'Užívateľský profil';
$lang['badlogin'] = 'Zadané užívateľské meno a heslo nie je správne.';
+$lang['badpassconfirm'] = 'Ľutujem, heslo bolo nesprávne.';
$lang['minoredit'] = 'Menšie zmeny';
$lang['draftdate'] = 'Koncept automaticky uložený';
$lang['nosecedit'] = 'Stránka bola medzičasom zmenená, informácie o sekcii sú zastaralé a z tohto dôvodu bola nahraná celá stránka.';
@@ -77,6 +79,11 @@ $lang['profna'] = 'Táto wiki nepodporuje zmenu profilu';
$lang['profnochange'] = 'Žiadne zmeny, nie je čo robiť.';
$lang['profnoempty'] = 'Prázdne meno alebo mailová adresa nie sú povolené.';
$lang['profchanged'] = 'Užívateľský účet úspešne zmenený.';
+$lang['profnodelete'] = 'Táto wiki neumožňuje zrušenie používateľov.';
+$lang['profdeleteuser'] = 'Zrušiť účet';
+$lang['profdeleted'] = 'Váš účet bol zrušený v tejto wiki.';
+$lang['profconfdelete'] = 'Chcem odstrániť môj účet z tejto wiki. <br/> Táto operácia je nevratná.';
+$lang['profconfdeletemissing'] = 'Nebolo zavolené potvrdzovacie políčko';
$lang['pwdforget'] = 'Zabudli ste heslo? Získajte nové!';
$lang['resendna'] = 'Táto wiki nepodporuje opätovné zasielanie hesla.';
$lang['resendpwd'] = 'Nastaviť nové heslo pre';
@@ -261,7 +268,6 @@ $lang['subscr_m_receive'] = 'Dostávať';
$lang['subscr_style_every'] = 'email pri každej zmene';
$lang['subscr_style_digest'] = 'email so zhrnutím zmien pre každú stránku (perióda %.2f dňa)';
$lang['subscr_style_list'] = 'zoznam zmenených stránok od posledného emailu (perióda %.2f dňa)';
-$lang['authmodfailed'] = 'Užívateľská autentifikácia nie je možná. Prosím informujte správcu systému.';
$lang['authtempfail'] = 'Užívateľská autentifikácia je dočasne nedostupná. Ak táto situácia pretrváva, prosím informujte správcu systému.';
$lang['authpwdexpire'] = 'Platnosť hesla vyprší za %d dní, mali by ste ho zmeniť čo najskôr.';
$lang['i_chooselang'] = 'Zvoľte váš jazyk';
@@ -286,6 +292,9 @@ $lang['i_pol1'] = 'Verejná Wiki (čítanie pre každého, zápis
$lang['i_pol2'] = 'Uzatvorená Wiki (čítanie, zápis a nahrávanie len pre registrovaných užívateľov)';
$lang['i_retry'] = 'Skúsiť znovu';
$lang['i_license'] = 'Vyberte licenciu, pod ktorou chcete uložiť váš obsah:';
+$lang['i_license_none'] = 'Nezobrazovať žiadne licenčné informácie';
+$lang['i_pop_field'] = 'Prosím pomôžte nám zlepšiť prácu s DokuWiki:';
+$lang['i_pop_label'] = 'Raz mesačne zaslať anonymné údaje vývojárom DokuWiki';
$lang['recent_global'] = 'Práve prehliadate zmeny v mennom priestore <b>%s</b>. Môžete si tiež pozrieť <a href="%s">aktuálne zmeny celej wiki</a>.';
$lang['years'] = 'pred %d rokmi';
$lang['months'] = 'pred %d mesiacmi';
diff --git a/inc/lang/sl/lang.php b/inc/lang/sl/lang.php
index 5c4316b01..2f69163f5 100644
--- a/inc/lang/sl/lang.php
+++ b/inc/lang/sl/lang.php
@@ -1,13 +1,14 @@
<?php
+
/**
- * Slovenian language file
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
- * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Jaka Kranjc <lynxlupodian@hotmail.com>
* @author Boštjan Seničar <senicar@gmail.com>
* @author Dejan Levec <webphp@gmail.com>
* @author Gregor Skumavc (grega.skumavc@gmail.com)
* @author Matej Urbančič (mateju@svn.gnome.org)
+ * @author Matej Urbančič <mateju@svn.gnome.org>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -43,6 +44,7 @@ $lang['btn_backtomedia'] = 'Nazaj na izbiro predstavnih datotek';
$lang['btn_subscribe'] = 'Urejanje naročnin';
$lang['btn_profile'] = 'Posodobi profil';
$lang['btn_reset'] = 'Ponastavi';
+$lang['btn_resendpwd'] = 'Nastavi novo geslo';
$lang['btn_draft'] = 'Uredi osnutek';
$lang['btn_recover'] = 'Obnovi osnutek';
$lang['btn_draftdel'] = 'Izbriši osnutek';
@@ -50,6 +52,7 @@ $lang['btn_revert'] = 'Povrni';
$lang['btn_register'] = 'Prijava';
$lang['btn_apply'] = 'Uveljavi';
$lang['btn_media'] = 'Urejevalnik predstavnih vsebin';
+$lang['btn_deleteuser'] = 'Odstrani račun';
$lang['loggedinas'] = 'Prijava kot';
$lang['user'] = 'Uporabniško ime';
$lang['pass'] = 'Geslo';
@@ -61,6 +64,7 @@ $lang['fullname'] = 'Pravo ime';
$lang['email'] = 'Elektronski naslov';
$lang['profile'] = 'Uporabniški profil';
$lang['badlogin'] = 'Uporabniško ime ali geslo je napačno.';
+$lang['badpassconfirm'] = 'Napaka! Geslo ni pravo.';
$lang['minoredit'] = 'Manjše spremembe';
$lang['draftdate'] = 'Samodejno shranjevanje osnutka je omogočeno';
$lang['nosecedit'] = 'Stran je bila v vmesnem času spremenjena. Podatki strani so bili zastareli, zato se je celotna vsebina naložila znova.';
@@ -77,8 +81,12 @@ $lang['profna'] = 'DokuWiki ne podpira spreminjanja profila.';
$lang['profnochange'] = 'Brez sprememb.';
$lang['profnoempty'] = 'Prazno polje elektronskega naslova ali imena ni dovoljeno.';
$lang['profchanged'] = 'Uporabniški profil je uspešno posodobljen.';
+$lang['profnodelete'] = 'Ni omogočena podpora za brisanje uporabnikov.';
+$lang['profdeleteuser'] = 'Izbriši račun';
+$lang['profdeleted'] = 'Uporabniški račun je izbrisan.';
$lang['pwdforget'] = 'Ali ste pozabili geslo? Pridobite si novo geslo.';
$lang['resendna'] = 'DokuWiki ne podpira možnosti ponovnega pošiljanja gesel.';
+$lang['resendpwd'] = 'Nastavi novo geslo za';
$lang['resendpwdmissing'] = 'Izpolniti je treba vsa polja.';
$lang['resendpwdnouser'] = 'Podanega uporabniškega imena v podatkovni zbirki ni mogoče najti.';
$lang['resendpwdbadauth'] = 'Koda za overitev ni prava. Prepričajte se, da ste uporabili celotno povezavo za potrditev.';
@@ -255,7 +263,6 @@ $lang['subscr_m_receive'] = 'Prejmi';
$lang['subscr_style_every'] = 'elektronsko sporočilo ob vsaki spremembi';
$lang['subscr_style_digest'] = 'strnjeno elektronsko sporočilo sprememb za vsako stran (vsakih %.2f dni)';
$lang['subscr_style_list'] = 'seznam spremenjenih strani od zadnjega elektronskega sporočila (vsakih %.2f dni)';
-$lang['authmodfailed'] = 'Slaba nastavitev overitve uporabniškega računa. Stopite v stik s skrbnikom sistema wiki.';
$lang['authtempfail'] = 'Potrditev uporabnika je trenutno nedostopna. Stopite v stik s skrbnikom sistema wiki.';
$lang['i_chooselang'] = 'Izberite jezik';
$lang['i_installer'] = 'DokuWiki namestitev';
@@ -279,6 +286,7 @@ $lang['i_pol1'] = 'Javni Wiki (branje za vse, zapis in nalaganje
$lang['i_pol2'] = 'Zaprt Wiki (berejo in urejajo lahko le prijavljeni uporabniki)';
$lang['i_retry'] = 'Ponovni poskus';
$lang['i_license'] = 'Izbor dovoljenja objave vsebine:';
+$lang['i_license_none'] = 'Ne pokaži podrobnosti dovoljenja.';
$lang['recent_global'] = 'Trenutno so prikazane spremembe znotraj imenskega prostora <b>%s</b>. Mogoče si je ogledati tudi spremembe <a href="%s">celotnega sistema Wiki</a>.';
$lang['years'] = '%d let nazaj';
$lang['months'] = '%d mesecev nazaj';
diff --git a/inc/lang/sq/lang.php b/inc/lang/sq/lang.php
index 36ed436c8..2ed62ed4e 100644
--- a/inc/lang/sq/lang.php
+++ b/inc/lang/sq/lang.php
@@ -204,7 +204,6 @@ $lang['subscr_m_unsubscribe'] = 'Fshi Abonimin';
$lang['subscr_m_subscribe'] = 'Abonohu';
$lang['subscr_m_receive'] = 'Mer';
$lang['subscr_style_every'] = 'email mbi çdo ndryshim';
-$lang['authmodfailed'] = 'Konfigurim i gabuar i autentikimit të përdoruesit. Ju lutem informoni Administratorin tuaj të Wiki-it.';
$lang['authtempfail'] = 'Autentikimi i përdoruesve është përkohësisht i padisponueshëm. Nëse kjo gjendje vazhdon, ju lutemi të informoni Administratorin tuaj të Wiki-it.';
$lang['i_chooselang'] = 'Zgjidhni gjuhën tuaj';
$lang['i_installer'] = 'Installer-i DokuWiki';
diff --git a/inc/lang/sr/lang.php b/inc/lang/sr/lang.php
index 7fbdf1985..7c434cbc9 100644
--- a/inc/lang/sr/lang.php
+++ b/inc/lang/sr/lang.php
@@ -228,7 +228,6 @@ $lang['subscr_m_receive'] = 'Прими';
$lang['subscr_style_every'] = 'имејл о свакој промени';
$lang['subscr_style_digest'] = 'скраћени имејл о променама за сваку страницу (сваких %.2f дана)';
$lang['subscr_style_list'] = 'Списак страница промењених након последњег имејла (сваких %.2f дана)';
-$lang['authmodfailed'] = 'Лоше подешена провера корисника. Молим Вас да обавестите администратора викија.';
$lang['authtempfail'] = 'Провера корисника је тренутно недоступна. Ако се ситуација настави, молимо Вас да обавестите администратора викија.';
$lang['i_chooselang'] = 'Одаберите језик';
$lang['i_installer'] = 'Докувики инсталација';
diff --git a/inc/lang/sv/lang.php b/inc/lang/sv/lang.php
index b00c61054..7d85f543e 100644
--- a/inc/lang/sv/lang.php
+++ b/inc/lang/sv/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Joaquim Homrighausen <joho@webbplatsen.se>
* @author Per Foreby <per@foreby.se>
* @author Nicklas Henriksson <nicklas[at]nihe.se>
@@ -18,6 +18,7 @@
* @author mikael@mallander.net
* @author Smorkster Andersson smorkster@gmail.com
* @author Henrik <henrik@idealis.se>
+ * @author Tor Härnqvist <tor.harnqvist@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -259,7 +260,7 @@ $lang['img_height'] = 'Höjd';
$lang['img_manager'] = 'Se mediahanteraren';
$lang['subscr_subscribe_success'] = 'La till %s till prenumerationslista %s';
$lang['subscr_subscribe_noaddress'] = 'Det finns ingen adress associerad med din inloggning, du kan inte bli tillagd i prenumerationslistan';
-$lang['subscr_unsubscribe_success'] = '% borttagen från prenumerationslistan för %';
+$lang['subscr_unsubscribe_success'] = '%s borttagen från prenumerationslistan för %s';
$lang['subscr_unsubscribe_error'] = 'Fel vid borttagning av %s från prenumerationslista %s';
$lang['subscr_already_subscribed'] = '%s prenumererar redan på %s';
$lang['subscr_not_subscribed'] = '%s prenumererar inte på %s';
@@ -271,7 +272,6 @@ $lang['subscr_m_subscribe'] = 'Prenumerera';
$lang['subscr_m_receive'] = 'Ta emot';
$lang['subscr_style_every'] = 'skicka epost vid varje ändring';
$lang['subscr_style_list'] = 'lista över ändrade sidor sedan senaste e-post (varje %.2f dag)';
-$lang['authmodfailed'] = 'Felaktiga inställningar för användarautentisering. Var vänlig meddela wikiadministratören.';
$lang['authtempfail'] = 'Tillfälligt fel på användarautentisering. Om felet kvarstår, var vänlig meddela wikiadministratören.';
$lang['authpwdexpire'] = 'Ditt lösenord kommer att bli ogiltigt om %d dagar, du bör ändra det snart.';
$lang['i_chooselang'] = 'Välj språk';
diff --git a/inc/lang/th/lang.php b/inc/lang/th/lang.php
index e008e9e9f..5d364166b 100644
--- a/inc/lang/th/lang.php
+++ b/inc/lang/th/lang.php
@@ -45,7 +45,6 @@ $lang['btn_back'] = 'ย้อนกลับ';
$lang['btn_backlink'] = 'หน้าที่ลิงก์มา';
$lang['btn_backtomedia'] = 'กลับไปยังหน้าเลือกไฟล์สื่อ';
$lang['btn_subscribe'] = 'เฝ้าดู';
-$lang['btn_unsubscribe'] = 'เลิกเฝ้าดู';
$lang['btn_profile'] = 'แก้ข้อมูลผู้ใช้';
$lang['btn_reset'] = 'เริ่มใหม่';
$lang['btn_draft'] = 'แก้ไขเอกสารฉบับร่าง';
@@ -193,12 +192,6 @@ $lang['img_copyr'] = 'ผู้ถือลิขสิทธิ์'
$lang['img_format'] = 'รูปแบบ';
$lang['img_camera'] = 'กล้อง';
$lang['img_keywords'] = 'คำหลัก';
-$lang['subscribe_success'] = 'เพิ่ม %s เข้าไปในรายชื่อสมาชิกลงทะเบียนสำหรับ %s';
-$lang['subscribe_error'] = 'มีข้อผิดพลาดในการเพิ่ม %s ในรายชื่อสมัครสมาชิกสำหรับ %s';
-$lang['subscribe_noaddress'] = 'ไม่มีที่อยู่ที่ตรงกับชื่อล็อกอินของคุณ ชื่อคุณไม่สามารถถูกเพิ่มเข้าไปในรายชื่อสมัครสมาชิก';
-$lang['unsubscribe_success'] = 'ถอด % ออกจากรายชื่อสมัครสมาชิกของ %s';
-$lang['unsubscribe_error'] = 'มีข้อผิดพลาดในการถอด %s ออกจากรายชื่อสมาชิกของ %s';
-$lang['authmodfailed'] = 'มีการกำหนดค่าสิทธิ์ผู้ใช้ไว้ไม่ดี กรุณาแจ้งผู้ดูแลระบบวิกิของคุณ';
$lang['authtempfail'] = 'ระบบตรวจสอบสิทธิ์ผู้ใช้ไม่พร้อมใช้งานชั่วคราว หากสถานการณ์ยังไม่เปลี่ยนแปลง กรุณาแจ้งผู้ดูแลระบวิกิของคุณ';
$lang['i_chooselang'] = 'เลือกภาษาของคุณ';
$lang['i_installer'] = 'ตัวติดตั้งโดกุวิกิ';
diff --git a/inc/lang/tr/adminplugins.txt b/inc/lang/tr/adminplugins.txt
new file mode 100644
index 000000000..7c8de9d9f
--- /dev/null
+++ b/inc/lang/tr/adminplugins.txt
@@ -0,0 +1 @@
+===== İlave Eklentiler ===== \ No newline at end of file
diff --git a/inc/lang/tr/lang.php b/inc/lang/tr/lang.php
index c6edf74c6..6b9e0dd44 100644
--- a/inc/lang/tr/lang.php
+++ b/inc/lang/tr/lang.php
@@ -1,14 +1,15 @@
<?php
+
/**
- * turkish language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Selim Farsakoğlu <farsakogluselim@yahoo.de>
* @author Aydın Coşkuner <aydinweb@gmail.com>
* @author Cihan Kahveci <kahvecicihan@gmail.com>
* @author Yavuz Selim <yavuzselim@gmail.com>
* @author Caleb Maclennan <caleb@alerque.com>
* @author farukerdemoncel@gmail.com
+ * @author Mustafa Aslan <maslan@hotmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -52,6 +53,7 @@ $lang['btn_revert'] = 'Geri Yükle';
$lang['btn_register'] = 'Kayıt ol';
$lang['btn_apply'] = 'Uygula';
$lang['btn_media'] = 'Çokluortam Yöneticisi';
+$lang['btn_deleteuser'] = 'Hesabımı Sil';
$lang['loggedinas'] = 'Giriş ismi';
$lang['user'] = 'Kullanıcı ismi';
$lang['pass'] = 'Parola';
@@ -63,6 +65,7 @@ $lang['fullname'] = 'Tam isim';
$lang['email'] = 'E-posta';
$lang['profile'] = 'Kullanıcı Bilgileri';
$lang['badlogin'] = 'Üzgünüz, Kullanıcı adı veya şifre yanlış oldu.';
+$lang['badpassconfirm'] = 'Üzgünüz, parolanız yanlış';
$lang['minoredit'] = 'Küçük Değişiklikler';
$lang['draftdate'] = 'Taslak şu saatte otomatik kaydedildi:';
$lang['nosecedit'] = 'Sayfa yakın zamanda değiştirilmiştir, bölüm bilgisi eski kalmıştır. Bunun için bölüm yerine tüm sayfa yüklenmiştir.';
@@ -79,6 +82,11 @@ $lang['profna'] = 'Bu wiki kullanıcı bilgilerini değiştirmeyi
$lang['profnochange'] = 'Değişiklik yok, birşey yapılmadı.';
$lang['profnoempty'] = 'Boş isim veya e-posta adresine izin verilmiyor.';
$lang['profchanged'] = 'Kullanıcı bilgileri başarıyla değiştirildi.';
+$lang['profnodelete'] = 'Bu wiki kullanıcı silmeyi desteklemiyor';
+$lang['profdeleteuser'] = 'Hesabı Sil';
+$lang['profdeleted'] = 'Bu wiki\'den hesabınız silindi';
+$lang['profconfdelete'] = 'Bu wiki\'den hesabımı silmek istiyorum. <br/>Bu işlem geri alınamaz';
+$lang['profconfdeletemissing'] = 'Onay kutusu işaretlenmedi';
$lang['pwdforget'] = 'Parolanızı mı unuttunuz? Yeni bir parola alın';
$lang['resendna'] = 'Bu wiki parolayı tekrar göndermeyi desteklememektedir.';
$lang['resendpwd'] = 'İçin yeni şifre belirle';
@@ -94,6 +102,7 @@ $lang['searchmedia_in'] = '%s içinde ara';
$lang['txt_upload'] = 'Yüklenecek dosyayı seç';
$lang['txt_filename'] = 'Dosya adı (zorunlu değil)';
$lang['txt_overwrt'] = 'Mevcut dosyanın üstüne yaz';
+$lang['maxuploadsize'] = 'Yükleme dosya başına en fazla %s';
$lang['lockedby'] = 'Şu an şunun tarafından kilitli:';
$lang['lockexpire'] = 'Kilitin açılma tarihi:';
$lang['js']['willexpire'] = 'Bu sayfayı değiştirme kilidinin süresi yaklaşık bir dakika içinde geçecek.\nÇakışmaları önlemek için önizleme tuşunu kullanarak kilit sayacını sıfırla.';
@@ -129,6 +138,7 @@ $lang['js']['linkto'] = 'Bağlantı:';
$lang['js']['del_confirm'] = 'Bu girişi sil?';
$lang['js']['restore_confirm'] = 'Bu sürüme geri dönmek istediğinizden emin misiniz?';
$lang['js']['media_diff'] = 'Farkları gör:';
+$lang['js']['media_diff_both'] = 'Yan yana';
$lang['js']['media_select'] = 'Dosyalar seç...';
$lang['js']['media_upload_btn'] = 'Yükle';
$lang['js']['media_done_btn'] = 'Bitti';
@@ -230,7 +240,6 @@ $lang['img_height'] = 'Yükseklik';
$lang['img_manager'] = 'Ortam oynatıcısında göster';
$lang['subscr_m_subscribe'] = 'Kayıt ol';
$lang['subscr_m_receive'] = 'Al';
-$lang['authmodfailed'] = 'Yanlış kullanıcı onaylama ayarı. Lütfen Wiki yöneticisine bildiriniz.';
$lang['authtempfail'] = 'Kullanıcı doğrulama geçici olarak yapılamıyor. Eğer bu durum devam ederse lütfen Wiki yöneticine haber veriniz.';
$lang['authpwdexpire'] = 'Şifreniz %d gün sonra geçersiz hale gelecek, yakın bir zamanda değiştirmelisiniz.';
$lang['i_chooselang'] = 'Dili seçiniz';
diff --git a/inc/lang/uk/lang.php b/inc/lang/uk/lang.php
index 6aa468c50..4e91e82a2 100644
--- a/inc/lang/uk/lang.php
+++ b/inc/lang/uk/lang.php
@@ -1,14 +1,15 @@
<?php
+
/**
- * ukrainian language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Oleksiy Voronin <ovoronin@gmail.com>
* @author serg_stetsuk@ukr.net
* @author Oleksandr Kunytsia <okunia@gmail.com>
* @author Uko <uko@uar.net>
* @author Ulrikhe Lukoie <lukoie@gmail.com>
* @author Kate Arzamastseva pshns@ukr.net
+ * @author Egor Smkv <egorsmkv@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -44,12 +45,14 @@ $lang['btn_backtomedia'] = 'Назад до вибору медіа-фай
$lang['btn_subscribe'] = 'Підписатися';
$lang['btn_profile'] = 'Оновити профіль';
$lang['btn_reset'] = 'Очистити';
+$lang['btn_resendpwd'] = 'Встановити новий пароль';
$lang['btn_draft'] = 'Редагувати чернетку';
$lang['btn_recover'] = 'Відновити чернетку';
$lang['btn_draftdel'] = 'Знищити чернетку';
$lang['btn_revert'] = 'Відновити';
$lang['btn_register'] = 'Реєстрація';
$lang['btn_apply'] = 'Застосувати';
+$lang['btn_deleteuser'] = 'Видалити мій аккаунт';
$lang['loggedinas'] = 'Ви';
$lang['user'] = 'Користувач';
$lang['pass'] = 'Пароль';
@@ -61,6 +64,7 @@ $lang['fullname'] = 'Повне ім\'я';
$lang['email'] = 'E-Mail';
$lang['profile'] = 'Профіль користувача';
$lang['badlogin'] = 'Вибачте, невірне ім\'я чи пароль.';
+$lang['badpassconfirm'] = 'Вибачте, але пароль невірний';
$lang['minoredit'] = 'Незначні зміни';
$lang['draftdate'] = 'Чернетка збережена';
$lang['nosecedit'] = 'Сторінку змінено, дані розділу застарілі. Завантажено сторінку повністю.';
@@ -77,8 +81,10 @@ $lang['profna'] = 'Ця Вікі не підтримує змін
$lang['profnochange'] = 'Немає змін, немає що робити.';
$lang['profnoempty'] = 'Ім’я або e-mail не можуть бути пустими.';
$lang['profchanged'] = 'Профіль успішно змінено.';
+$lang['profdeleteuser'] = 'Видалити аккаунт';
$lang['pwdforget'] = 'Забули пароль? Отримайте новий';
$lang['resendna'] = 'Ця Вікі не підтримує повторне відправлення пароля.';
+$lang['resendpwd'] = 'Встановити новий пароль для';
$lang['resendpwdmissing'] = 'Необхідно заповнити усі поля.';
$lang['resendpwdnouser'] = 'Такий користувач не існує.';
$lang['resendpwdbadauth'] = 'Код автентифікації невірний. Перевірте, чи ви використали повне посилання для підтвердження.';
@@ -125,6 +131,9 @@ $lang['js']['nosmblinks'] = 'Посилання на мережеві па
$lang['js']['linkwiz'] = 'Чарівник посилань';
$lang['js']['linkto'] = 'Посилання на:';
$lang['js']['del_confirm'] = 'Дійсно знищити обрані елементи?';
+$lang['js']['media_upload_btn'] = 'Завантажити';
+$lang['js']['media_done_btn'] = 'Успішно';
+$lang['js']['media_cancel'] = 'видалити';
$lang['rssfailed'] = 'Виникла помилка під час отримання RSS-стрічки: ';
$lang['nothingfound'] = 'Нічого не знайдено.';
$lang['mediaselect'] = 'Вибір медіа-файлу';
@@ -174,11 +183,17 @@ $lang['external_edit'] = 'зовнішнє редагування';
$lang['summary'] = 'Підсумок змін';
$lang['noflash'] = 'Для перегляду цієї сторінки необхідно встановити <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>.';
$lang['download'] = 'Завантажити фрагмент';
+$lang['tools'] = 'Налаштування';
+$lang['user_tools'] = 'Користувальницькькі налаштування';
+$lang['site_tools'] = 'Налаштування сайту';
+$lang['page_tools'] = 'Налаштування сторінки';
+$lang['sidebar'] = 'Сайдбар';
$lang['mail_newpage'] = 'сторінку додано:';
$lang['mail_changed'] = 'сторінку змінено:';
$lang['mail_subscribe_list'] = 'сторінки, що змінено у просторі імен:';
$lang['mail_new_user'] = 'новий користувач:';
$lang['mail_upload'] = 'завантажено файл:';
+$lang['pages_changes'] = 'Сторінок';
$lang['qb_bold'] = 'Напівжирний текст';
$lang['qb_italic'] = 'Курсив';
$lang['qb_underl'] = 'Підкреслений текст';
@@ -235,7 +250,6 @@ $lang['subscr_m_receive'] = 'Отримувати';
$lang['subscr_style_every'] = 'повідомляти на пошту про кожну зміну';
$lang['subscr_style_digest'] = 'лист з дайджестом для зміни кожної сторінки (кожні %.2f днів)';
$lang['subscr_style_list'] = 'список змінених сторінок від часу отримання останнього листа (кожні %.2f днів)';
-$lang['authmodfailed'] = 'Неправильні налаштування автентифікації користувача. Будь ласка, повідомте про це адміністратора.';
$lang['authtempfail'] = 'Автентифікація користувача тимчасово не доступна. Якщо це буде продовжуватись, будь ласка, повідомте адміністратора.';
$lang['i_chooselang'] = 'Виберіть мову';
$lang['i_installer'] = 'Програма установки ДокуВікі';
diff --git a/inc/lang/zh-tw/lang.php b/inc/lang/zh-tw/lang.php
index 0a3dbf51f..176121881 100644
--- a/inc/lang/zh-tw/lang.php
+++ b/inc/lang/zh-tw/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Chinese(Traditional) language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author chinsan <chinsan@mail2000.com.tw>
* @author Li-Jiun Huang <ljhuang.tw@gmail.com>
* @author http://www.chinese-tools.com/tools/converter-simptrad.html
@@ -12,6 +12,7 @@
* @author Shuo-Ting Jian <shoting@gmail.com>
* @author syaoranhinata@gmail.com
* @author Ichirou Uchiki <syaoranhinata@gmail.com>
+ * @author tsangho <ou4222@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -55,6 +56,7 @@ $lang['btn_revert'] = '復原';
$lang['btn_register'] = '註冊';
$lang['btn_apply'] = '套用';
$lang['btn_media'] = '多媒體管理器';
+$lang['btn_deleteuser'] = '移除我的帳號';
$lang['loggedinas'] = '登入成';
$lang['user'] = '帳號';
$lang['pass'] = '密碼';
@@ -66,6 +68,7 @@ $lang['fullname'] = '姓名';
$lang['email'] = '電郵';
$lang['profile'] = '使用者個人資料';
$lang['badlogin'] = '很抱歉,您的使用者名稱或密碼可能有錯誤。';
+$lang['badpassconfirm'] = '抱歉,這密碼是錯的';
$lang['minoredit'] = '小修改';
$lang['draftdate'] = '草稿已自動存檔於';
$lang['nosecedit'] = '在您編輯期間,其他使用者修改過本頁面。區段資料已逾時,因此系統載入了全頁,以取代之。';
@@ -82,6 +85,9 @@ $lang['profna'] = '在本 wiki 上,不能修改個人資料。'
$lang['profnochange'] = '並未作任何變更。';
$lang['profnoempty'] = '帳號或電郵地址不可空白!';
$lang['profchanged'] = '個人資料已更新。';
+$lang['profnodelete'] = '這一wiki不支援刪除用戶';
+$lang['profdeleteuser'] = '刪除帳號';
+$lang['profdeleted'] = '您在這wiki中的用戶帳號已經被刪除';
$lang['pwdforget'] = '忘記密碼了?索取新密碼!';
$lang['resendna'] = '本 wiki 並不支援重寄密碼。';
$lang['resendpwd'] = '設定新密碼供';
@@ -265,7 +271,6 @@ $lang['subscr_m_receive'] = '接收';
$lang['subscr_style_every'] = '每次更改都發送信件';
$lang['subscr_style_digest'] = '對每個頁面發送更改的摘要信件 (每 %.2f 天)';
$lang['subscr_style_list'] = '自上次發信以來更改的頁面的列表 (每 %.2f 天)';
-$lang['authmodfailed'] = '帳號認證的設定不正確,請通知該本 wiki 管理員。';
$lang['authtempfail'] = '暫不提供帳號認證。若本狀況持續,請通知本 wiki 管理員。';
$lang['authpwdexpire'] = '您的密碼將在 %d 天內到期,請馬上更換新密碼。';
$lang['i_chooselang'] = '選擇您的語系';
@@ -302,7 +307,7 @@ $lang['weeks'] = '%d 週前';
$lang['days'] = '%d 天前';
$lang['hours'] = '%d 個小時前';
$lang['minutes'] = '%d 分鐘前';
-$lang['seconds'] = '%s 秒鐘前';
+$lang['seconds'] = '%d 秒鐘前';
$lang['wordblock'] = '無法儲存您的更改,因它含有受阻擋的文字 (垃圾訊息)。';
$lang['media_uploadtab'] = '上傳';
$lang['media_searchtab'] = '搜尋';
diff --git a/inc/lang/zh/lang.php b/inc/lang/zh/lang.php
index f404010ba..a125e11e7 100644
--- a/inc/lang/zh/lang.php
+++ b/inc/lang/zh/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Chinese(Simplified) language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author ZDYX <zhangduyixiong@gmail.com>
* @author http://www.chinese-tools.com/tools/converter-tradsimp.html
* @author George Sheraton <guxd@163.com>
@@ -15,6 +15,9 @@
* @author caii, patent agent in China <zhoucaiqi@gmail.com>
* @author lainme993@gmail.com
* @author Shuo-Ting Jian <shoting@gmail.com>
+ * @author Rachel <rzhang0802@gmail.com>
+ * @author Donald <donaldtcong@gmail.com>
+ * @author Yangyu Huang <yangyu.huang@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -58,6 +61,7 @@ $lang['btn_revert'] = '恢复';
$lang['btn_register'] = '注册';
$lang['btn_apply'] = '应用';
$lang['btn_media'] = '媒体管理器';
+$lang['btn_deleteuser'] = '移除我的账户';
$lang['loggedinas'] = '登录为';
$lang['user'] = '用户名';
$lang['pass'] = '密码';
@@ -69,6 +73,7 @@ $lang['fullname'] = '全名';
$lang['email'] = 'E-Mail';
$lang['profile'] = '用户信息';
$lang['badlogin'] = '对不起,用户名或密码错误。';
+$lang['badpassconfirm'] = '对不起,密码错误';
$lang['minoredit'] = '细微修改';
$lang['draftdate'] = '草稿自动保存于';
$lang['nosecedit'] = '在您编辑期间本页刚被他人修改过,局部信息已过期,故载入全页。';
@@ -85,6 +90,11 @@ $lang['profna'] = '本维基不支持修改个人信息';
$lang['profnochange'] = '没有改动,不进行操作。';
$lang['profnoempty'] = '不允许使用空的用户名或邮件地址。';
$lang['profchanged'] = '用户信息更新成功。';
+$lang['profnodelete'] = '这个 wiki 不支持删除用户';
+$lang['profdeleteuser'] = '删除账号';
+$lang['profdeleted'] = '你的用户已经从这个 wiki 中删除';
+$lang['profconfdelete'] = '我希望删除我的账户。<br/>这项操作无法撤销。';
+$lang['profconfdeletemissing'] = '确认框未勾选';
$lang['pwdforget'] = '忘记密码?立即获取新密码';
$lang['resendna'] = '本维基不支持二次发送密码。';
$lang['resendpwd'] = '设置新密码用于';
@@ -269,7 +279,6 @@ $lang['subscr_m_receive'] = '接收';
$lang['subscr_style_every'] = '对每次更改发送邮件';
$lang['subscr_style_digest'] = '对每个页面发送更改的摘要邮件(每 %.2f 天)';
$lang['subscr_style_list'] = '自上封邮件以来更改的页面的列表(每 %.2f 天)';
-$lang['authmodfailed'] = '错误的用户认证设置。请通知维基管理员。';
$lang['authtempfail'] = '用户认证暂时无法使用。如果该状态一直存在,请通知维基管理员。';
$lang['authpwdexpire'] = '您的密码将在 %d 天内过期,请尽快更改';
$lang['i_chooselang'] = '选择您的语言';
diff --git a/inc/lessc.inc.php b/inc/lessc.inc.php
index 5c81ad2a9..0699de52f 100644
--- a/inc/lessc.inc.php
+++ b/inc/lessc.inc.php
@@ -1,7 +1,7 @@
<?php
/**
- * lessphp v0.3.9
+ * lessphp v0.4.0
* http://leafo.net/lessphp
*
* LESS css compiler, adapted from http://lesscss.org
@@ -38,7 +38,7 @@
* handling things like indentation.
*/
class lessc {
- static public $VERSION = "v0.3.9";
+ static public $VERSION = "v0.4.0";
static protected $TRUE = array("keyword", "true");
static protected $FALSE = array("keyword", "false");
@@ -55,6 +55,8 @@ class lessc {
protected $numberPrecision = null;
+ protected $allParsedFiles = array();
+
// set to the parser that generated the current line when compiling
// so we know how to create error messages
protected $sourceParser = null;
@@ -103,12 +105,17 @@ class lessc {
if (substr_compare($url, '.css', -4, 4) === 0) return false;
$realPath = $this->findImport($url);
+
if ($realPath === null) return false;
if ($this->importDisabled) {
return array(false, "/* import disabled */");
}
+ if (isset($this->allParsedFiles[realpath($realPath)])) {
+ return array(false, null);
+ }
+
$this->addParsedFile($realPath);
$parser = $this->makeParser($realPath);
$root = $parser->parse(file_get_contents($realPath));
@@ -276,6 +283,8 @@ class lessc {
foreach ($this->sortProps($block->props) as $prop) {
$this->compileProp($prop, $block, $out);
}
+
+ $out->lines = array_values(array_unique($out->lines));
}
protected function sortProps($props, $split = false) {
@@ -450,7 +459,7 @@ class lessc {
return $left == $right;
}
- protected function patternMatch($block, $callingArgs) {
+ protected function patternMatch($block, $orderedArgs, $keywordArgs) {
// match the guards if it has them
// any one of the groups must have all its guards pass for a match
if (!empty($block->guards)) {
@@ -458,7 +467,7 @@ class lessc {
foreach ($block->guards as $guardGroup) {
foreach ($guardGroup as $guard) {
$this->pushEnv();
- $this->zipSetArgs($block->args, $callingArgs);
+ $this->zipSetArgs($block->args, $orderedArgs, $keywordArgs);
$negate = false;
if ($guard[0] == "negate") {
@@ -487,24 +496,34 @@ class lessc {
}
}
- $numCalling = count($callingArgs);
-
if (empty($block->args)) {
- return $block->isVararg || $numCalling == 0;
+ return $block->isVararg || empty($orderedArgs) && empty($keywordArgs);
+ }
+
+ $remainingArgs = $block->args;
+ if ($keywordArgs) {
+ $remainingArgs = array();
+ foreach ($block->args as $arg) {
+ if ($arg[0] == "arg" && isset($keywordArgs[$arg[1]])) {
+ continue;
+ }
+
+ $remainingArgs[] = $arg;
+ }
}
$i = -1; // no args
// try to match by arity or by argument literal
- foreach ($block->args as $i => $arg) {
+ foreach ($remainingArgs as $i => $arg) {
switch ($arg[0]) {
case "lit":
- if (empty($callingArgs[$i]) || !$this->eq($arg[1], $callingArgs[$i])) {
+ if (empty($orderedArgs[$i]) || !$this->eq($arg[1], $orderedArgs[$i])) {
return false;
}
break;
case "arg":
// no arg and no default value
- if (!isset($callingArgs[$i]) && !isset($arg[2])) {
+ if (!isset($orderedArgs[$i]) && !isset($arg[2])) {
return false;
}
break;
@@ -519,14 +538,19 @@ class lessc {
} else {
$numMatched = $i + 1;
// greater than becuase default values always match
- return $numMatched >= $numCalling;
+ return $numMatched >= count($orderedArgs);
}
}
- protected function patternMatchAll($blocks, $callingArgs) {
+ protected function patternMatchAll($blocks, $orderedArgs, $keywordArgs, $skip=array()) {
$matches = null;
foreach ($blocks as $block) {
- if ($this->patternMatch($block, $callingArgs)) {
+ // skip seen blocks that don't have arguments
+ if (isset($skip[$block->id]) && !isset($block->args)) {
+ continue;
+ }
+
+ if ($this->patternMatch($block, $orderedArgs, $keywordArgs)) {
$matches[] = $block;
}
}
@@ -535,7 +559,7 @@ class lessc {
}
// attempt to find blocks matched by path and args
- protected function findBlocks($searchIn, $path, $args, $seen=array()) {
+ protected function findBlocks($searchIn, $path, $orderedArgs, $keywordArgs, $seen=array()) {
if ($searchIn == null) return null;
if (isset($seen[$searchIn->id])) return null;
$seen[$searchIn->id] = true;
@@ -545,7 +569,7 @@ class lessc {
if (isset($searchIn->children[$name])) {
$blocks = $searchIn->children[$name];
if (count($path) == 1) {
- $matches = $this->patternMatchAll($blocks, $args);
+ $matches = $this->patternMatchAll($blocks, $orderedArgs, $keywordArgs, $seen);
if (!empty($matches)) {
// This will return all blocks that match in the closest
// scope that has any matching block, like lessjs
@@ -555,7 +579,7 @@ class lessc {
$matches = array();
foreach ($blocks as $subBlock) {
$subMatches = $this->findBlocks($subBlock,
- array_slice($path, 1), $args, $seen);
+ array_slice($path, 1), $orderedArgs, $keywordArgs, $seen);
if (!is_null($subMatches)) {
foreach ($subMatches as $sm) {
@@ -567,39 +591,51 @@ class lessc {
return count($matches) > 0 ? $matches : null;
}
}
-
if ($searchIn->parent === $searchIn) return null;
- return $this->findBlocks($searchIn->parent, $path, $args, $seen);
+ return $this->findBlocks($searchIn->parent, $path, $orderedArgs, $keywordArgs, $seen);
}
// sets all argument names in $args to either the default value
// or the one passed in through $values
- protected function zipSetArgs($args, $values) {
- $i = 0;
+ protected function zipSetArgs($args, $orderedValues, $keywordValues) {
$assignedValues = array();
- foreach ($args as $a) {
+
+ $i = 0;
+ foreach ($args as $a) {
if ($a[0] == "arg") {
- if ($i < count($values) && !is_null($values[$i])) {
- $value = $values[$i];
+ if (isset($keywordValues[$a[1]])) {
+ // has keyword arg
+ $value = $keywordValues[$a[1]];
+ } elseif (isset($orderedValues[$i])) {
+ // has ordered arg
+ $value = $orderedValues[$i];
+ $i++;
} elseif (isset($a[2])) {
+ // has default value
$value = $a[2];
- } else $value = null;
+ } else {
+ $this->throwError("Failed to assign arg " . $a[1]);
+ $value = null; // :(
+ }
$value = $this->reduce($value);
$this->set($a[1], $value);
$assignedValues[] = $value;
+ } else {
+ // a lit
+ $i++;
}
- $i++;
}
// check for a rest
$last = end($args);
if ($last[0] == "rest") {
- $rest = array_slice($values, count($args) - 1);
+ $rest = array_slice($orderedValues, count($args) - 1);
$this->set($last[1], $this->reduce(array("list", " ", $rest)));
}
- $this->env->arguments = $assignedValues;
+ // wow is this the only true use of PHP's + operator for arrays?
+ $this->env->arguments = $assignedValues + $orderedValues;
}
// compile a prop and update $lines or $blocks appropriately
@@ -624,8 +660,28 @@ class lessc {
case 'mixin':
list(, $path, $args, $suffix) = $prop;
- $args = array_map(array($this, "reduce"), (array)$args);
- $mixins = $this->findBlocks($block, $path, $args);
+ $orderedArgs = array();
+ $keywordArgs = array();
+ foreach ((array)$args as $arg) {
+ $argval = null;
+ switch ($arg[0]) {
+ case "arg":
+ if (!isset($arg[2])) {
+ $orderedArgs[] = $this->reduce(array("variable", $arg[1]));
+ } else {
+ $keywordArgs[$arg[1]] = $this->reduce($arg[2]);
+ }
+ break;
+
+ case "lit":
+ $orderedArgs[] = $this->reduce($arg[1]);
+ break;
+ default:
+ $this->throwError("Unknown arg type: " . $arg[0]);
+ }
+ }
+
+ $mixins = $this->findBlocks($block, $path, $orderedArgs, $keywordArgs);
if ($mixins === null) {
// fwrite(STDERR,"failed to find block: ".implode(" > ", $path)."\n");
@@ -633,7 +689,7 @@ class lessc {
}
foreach ($mixins as $mixin) {
- if ($mixin === $block && !$args) {
+ if ($mixin === $block && !$orderedArgs) {
continue;
}
@@ -648,7 +704,7 @@ class lessc {
if (isset($mixin->args)) {
$haveArgs = true;
$this->pushEnv();
- $this->zipSetArgs($mixin->args, $args);
+ $this->zipSetArgs($mixin->args, $orderedArgs, $keywordArgs);
}
$oldParent = $mixin->parent;
@@ -705,7 +761,9 @@ class lessc {
list(,$importId) = $prop;
$import = $this->env->imports[$importId];
if ($import[0] === false) {
- $out->lines[] = $import[1];
+ if (isset($import[1])) {
+ $out->lines[] = $import[1];
+ }
} else {
list(, $bottom, $parser, $importDir) = $import;
$this->compileImportedProps($bottom, $block, $out, $parser, $importDir);
@@ -793,6 +851,60 @@ class lessc {
}
}
+ protected function lib_pow($args) {
+ list($base, $exp) = $this->assertArgs($args, 2, "pow");
+ return pow($this->assertNumber($base), $this->assertNumber($exp));
+ }
+
+ protected function lib_pi() {
+ return pi();
+ }
+
+ protected function lib_mod($args) {
+ list($a, $b) = $this->assertArgs($args, 2, "mod");
+ return $this->assertNumber($a) % $this->assertNumber($b);
+ }
+
+ protected function lib_tan($num) {
+ return tan($this->assertNumber($num));
+ }
+
+ protected function lib_sin($num) {
+ return sin($this->assertNumber($num));
+ }
+
+ protected function lib_cos($num) {
+ return cos($this->assertNumber($num));
+ }
+
+ protected function lib_atan($num) {
+ $num = atan($this->assertNumber($num));
+ return array("number", $num, "rad");
+ }
+
+ protected function lib_asin($num) {
+ $num = asin($this->assertNumber($num));
+ return array("number", $num, "rad");
+ }
+
+ protected function lib_acos($num) {
+ $num = acos($this->assertNumber($num));
+ return array("number", $num, "rad");
+ }
+
+ protected function lib_sqrt($num) {
+ return sqrt($this->assertNumber($num));
+ }
+
+ protected function lib_extract($value) {
+ list($list, $idx) = $this->assertArgs($value, 2, "extract");
+ $idx = $this->assertNumber($idx);
+ // 1 indexed
+ if ($list[0] == "list" && isset($list[2][$idx - 1])) {
+ return $list[2][$idx - 1];
+ }
+ }
+
protected function lib_isnumber($value) {
return $this->toBool($value[0] == "number");
}
@@ -1085,6 +1197,25 @@ class lessc {
$this->throwError($error);
}
+ protected function assertArgs($value, $expectedArgs, $name="") {
+ if ($expectedArgs == 1) {
+ return $value;
+ } else {
+ if ($value[0] !== "list" || $value[1] != ",") $this->throwError("expecting list");
+ $values = $value[2];
+ $numValues = count($values);
+ if ($expectedArgs != $numValues) {
+ if ($name) {
+ $name = $name . ": ";
+ }
+
+ $this->throwError("${name}expecting $expectedArgs arguments, got $numValues");
+ }
+
+ return $values;
+ }
+ }
+
protected function toHSL($color) {
if ($color[0] == 'hsl') return $color;
@@ -1229,6 +1360,10 @@ class lessc {
$var = $this->compileValue($reduced);
$res = $this->reduce(array("variable", $this->vPrefix . $var));
+ if ($res[0] == "raw_color") {
+ $res = $this->coerceColor($res);
+ }
+
if (empty($value[2])) $res = $this->lib_e($res);
return $res;
@@ -1690,7 +1825,6 @@ class lessc {
$this->importDir = (array)$this->importDir;
$this->importDir[] = $pi['dirname'].'/';
- $this->allParsedFiles = array();
$this->addParsedFile($fname);
$out = $this->compile(file_get_contents($fname), $fname);
@@ -2313,7 +2447,7 @@ class lessc_parser {
// mixin
if ($this->mixinTags($tags) &&
- ($this->argumentValues($argv) || true) &&
+ ($this->argumentDef($argv, $isVararg) || true) &&
($this->keyword($suffix) || true) && $this->end())
{
$tags = $this->fixTags($tags);
@@ -2781,38 +2915,18 @@ class lessc_parser {
return false;
}
- // consume a list of property values delimited by ; and wrapped in ()
- protected function argumentValues(&$args, $delim = ',') {
- $s = $this->seek();
- if (!$this->literal('(')) return false;
-
- $values = array();
- while (true) {
- if ($this->expressionList($value)) $values[] = $value;
- if (!$this->literal($delim)) break;
- else {
- if ($value == null) $values[] = null;
- $value = null;
- }
- }
-
- if (!$this->literal(')')) {
- $this->seek($s);
- return false;
- }
-
- $args = $values;
- return true;
- }
-
// consume an argument definition list surrounded by ()
// each argument is a variable name with optional value
// or at the end a ... or a variable named followed by ...
- protected function argumentDef(&$args, &$isVararg, $delim = ',') {
+ // arguments are separated by , unless a ; is in the list, then ; is the
+ // delimiter.
+ protected function argumentDef(&$args, &$isVararg) {
$s = $this->seek();
if (!$this->literal('(')) return false;
$values = array();
+ $delim = ",";
+ $method = "expressionList";
$isVararg = false;
while (true) {
@@ -2821,28 +2935,77 @@ class lessc_parser {
break;
}
- if ($this->variable($vname)) {
- $arg = array("arg", $vname);
- $ss = $this->seek();
- if ($this->assign() && $this->expressionList($value)) {
- $arg[] = $value;
- } else {
- $this->seek($ss);
- if ($this->literal("...")) {
- $arg[0] = "rest";
- $isVararg = true;
+ if ($this->$method($value)) {
+ if ($value[0] == "variable") {
+ $arg = array("arg", $value[1]);
+ $ss = $this->seek();
+
+ if ($this->assign() && $this->$method($rhs)) {
+ $arg[] = $rhs;
+ } else {
+ $this->seek($ss);
+ if ($this->literal("...")) {
+ $arg[0] = "rest";
+ $isVararg = true;
+ }
}
+
+ $values[] = $arg;
+ if ($isVararg) break;
+ continue;
+ } else {
+ $values[] = array("lit", $value);
}
- $values[] = $arg;
- if ($isVararg) break;
- continue;
}
- if ($this->value($literal)) {
- $values[] = array("lit", $literal);
- }
- if (!$this->literal($delim)) break;
+ if (!$this->literal($delim)) {
+ if ($delim == "," && $this->literal(";")) {
+ // found new delim, convert existing args
+ $delim = ";";
+ $method = "propertyValue";
+
+ // transform arg list
+ if (isset($values[1])) { // 2 items
+ $newList = array();
+ foreach ($values as $i => $arg) {
+ switch($arg[0]) {
+ case "arg":
+ if ($i) {
+ $this->throwError("Cannot mix ; and , as delimiter types");
+ }
+ $newList[] = $arg[2];
+ break;
+ case "lit":
+ $newList[] = $arg[1];
+ break;
+ case "rest":
+ $this->throwError("Unexpected rest before semicolon");
+ }
+ }
+
+ $newList = array("list", ", ", $newList);
+
+ switch ($values[0][0]) {
+ case "arg":
+ $newArg = array("arg", $values[0][1], $newList);
+ break;
+ case "lit":
+ $newArg = array("lit", $newList);
+ break;
+ }
+
+ } elseif ($values) { // 1 item
+ $newArg = $values[0];
+ }
+
+ if ($newArg) {
+ $values = array($newArg);
+ }
+ } else {
+ break;
+ }
+ }
}
if (!$this->literal(')')) {
@@ -2884,32 +3047,69 @@ class lessc_parser {
}
// a bracketed value (contained within in a tag definition)
- protected function tagBracket(&$value) {
+ protected function tagBracket(&$parts, &$hasExpression) {
// speed shortcut
if (isset($this->buffer[$this->count]) && $this->buffer[$this->count] != "[") {
return false;
}
$s = $this->seek();
- if ($this->literal('[') && $this->to(']', $c, true) && $this->literal(']', false)) {
- $value = '['.$c.']';
- // whitespace?
- if ($this->whitespace()) $value .= " ";
- // escape parent selector, (yuck)
- $value = str_replace($this->lessc->parentSelector, "$&$", $value);
- return true;
- }
+ $hasInterpolation = false;
- $this->seek($s);
- return false;
- }
+ if ($this->literal("[", false)) {
+ $attrParts = array("[");
+ // keyword, string, operator
+ while (true) {
+ if ($this->literal("]", false)) {
+ $this->count--;
+ break; // get out early
+ }
- protected function tagExpression(&$value) {
- $s = $this->seek();
- if ($this->literal("(") && $this->expression($exp) && $this->literal(")")) {
- $value = array('exp', $exp);
- return true;
+ if ($this->match('\s+', $m)) {
+ $attrParts[] = " ";
+ continue;
+ }
+ if ($this->string($str)) {
+ // escape parent selector, (yuck)
+ foreach ($str[2] as &$chunk) {
+ $chunk = str_replace($this->lessc->parentSelector, "$&$", $chunk);
+ }
+
+ $attrParts[] = $str;
+ $hasInterpolation = true;
+ continue;
+ }
+
+ if ($this->keyword($word)) {
+ $attrParts[] = $word;
+ continue;
+ }
+
+ if ($this->interpolation($inter, false)) {
+ $attrParts[] = $inter;
+ $hasInterpolation = true;
+ continue;
+ }
+
+ // operator, handles attr namespace too
+ if ($this->match('[|-~\$\*\^=]+', $m)) {
+ $attrParts[] = $m[0];
+ continue;
+ }
+
+ break;
+ }
+
+ if ($this->literal("]", false)) {
+ $attrParts[] = "]";
+ foreach ($attrParts as $part) {
+ $parts[] = $part;
+ }
+ $hasExpression = $hasExpression || $hasInterpolation;
+ return true;
+ }
+ $this->seek($s);
}
$this->seek($s);
@@ -2925,13 +3125,9 @@ class lessc_parser {
$s = $this->seek();
- if (!$simple && $this->tagExpression($tag)) {
- return true;
- }
-
$hasExpression = false;
$parts = array();
- while ($this->tagBracket($first)) $parts[] = $first;
+ while ($this->tagBracket($parts, $hasExpression));
$oldWhite = $this->eatWhiteDefault;
$this->eatWhiteDefault = false;
@@ -2941,9 +3137,7 @@ class lessc_parser {
$parts[] = $m[1];
if ($simple) break;
- while ($this->tagBracket($brack)) {
- $parts[] = $brack;
- }
+ while ($this->tagBracket($parts, $hasExpression));
continue;
}
@@ -3334,7 +3528,7 @@ class lessc_parser {
break;
case '"':
case "'":
- if (preg_match('/'.$min[0].'.*?'.$min[0].'/', $text, $m, 0, $count))
+ if (preg_match('/'.$min[0].'.*?(?<!\\\\)'.$min[0].'/', $text, $m, 0, $count))
$count += strlen($m[0]) - 1;
break;
case '//':
diff --git a/inc/load.php b/inc/load.php
index 923671296..c5b40ffd8 100644
--- a/inc/load.php
+++ b/inc/load.php
@@ -35,6 +35,7 @@ require_once(DOKU_INC.'inc/template.php');
require_once(DOKU_INC.'inc/toolbar.php');
require_once(DOKU_INC.'inc/utf8.php');
require_once(DOKU_INC.'inc/auth.php');
+require_once(DOKU_INC.'inc/compatibility.php');
/**
* spl_autoload_register callback
diff --git a/inc/mail.php b/inc/mail.php
index d0ea651bf..0b60c0a5b 100644
--- a/inc/mail.php
+++ b/inc/mail.php
@@ -284,10 +284,9 @@ function mail_quotedprintable_encode($sText,$maxlen=74,$bEmulate_imap_8bit=true)
// for EBCDIC safeness encode !"#$@[\]^`{|}~,
// for complete safeness encode every character :)
if ($bEmulate_imap_8bit)
- $sRegExp = '/[^\x20\x21-\x3C\x3E-\x7E]/e';
+ $sRegExp = '/[^\x20\x21-\x3C\x3E-\x7E]/';
- $sReplmt = 'sprintf( "=%02X", ord ( "$0" ) ) ;';
- $sLine = preg_replace( $sRegExp, $sReplmt, $sLine );
+ $sLine = preg_replace_callback( $sRegExp, 'mail_quotedprintable_encode_callback', $sLine );
// encode x09,x20 at lineends
{
@@ -330,3 +329,6 @@ function mail_quotedprintable_encode($sText,$maxlen=74,$bEmulate_imap_8bit=true)
return implode(MAILHEADER_EOL,$aLines);
}
+function mail_quotedprintable_encode_callback($matches){
+ return sprintf( "=%02X", ord ( $matches[0] ) ) ;
+}
diff --git a/inc/media.php b/inc/media.php
index ee5c0c1eb..d45b2a91d 100644
--- a/inc/media.php
+++ b/inc/media.php
@@ -586,7 +586,10 @@ function media_filelist($ns,$auth=null,$jump='',$fullscreenview=false,$sort=fals
// FIXME: print permission warning here instead?
echo '<div class="nothing">'.$lang['nothingfound'].'</div>'.NL;
}else{
- if (!$fullscreenview) media_uploadform($ns, $auth);
+ if (!$fullscreenview) {
+ media_uploadform($ns, $auth);
+ media_searchform($ns);
+ }
$dir = utf8_encodeFN(str_replace(':','/',$ns));
$data = array();
@@ -609,7 +612,6 @@ function media_filelist($ns,$auth=null,$jump='',$fullscreenview=false,$sort=fals
if ($fullscreenview) echo '</ul>'.NL;
}
}
- if (!$fullscreenview) media_searchform($ns);
}
/**
@@ -1294,7 +1296,7 @@ function media_restore($image, $rev, $auth){
* @author Kate Arzamastseva <pshns@ukr.net>
* @triggers MEDIA_SEARCH
*/
-function media_searchlist($query,$ns,$auth=null,$fullscreen=false,$sort=''){
+function media_searchlist($query,$ns,$auth=null,$fullscreen=false,$sort='natural'){
global $conf;
global $lang;
@@ -1314,15 +1316,10 @@ function media_searchlist($query,$ns,$auth=null,$fullscreen=false,$sort=''){
$conf['mediadir'],
'search_media',
array('showmsg'=>false,'pattern'=>$pattern),
- $dir);
+ $dir,
+ 1,
+ $sort);
}
-
- $data = array();
- foreach ($evdata['data'] as $k => $v) {
- $data[$k] = ($sort == 'date') ? $v['mtime'] : $v['id'];
- }
- array_multisort($data, SORT_DESC, SORT_NUMERIC, $evdata['data']);
-
$evt->advise_after();
unset($evt);
}
diff --git a/inc/pageutils.php b/inc/pageutils.php
index 5043d2263..60f326e04 100644
--- a/inc/pageutils.php
+++ b/inc/pageutils.php
@@ -366,7 +366,7 @@ function mediaFN($id, $rev=''){
*/
function localeFN($id,$ext='txt'){
global $conf;
- $file = DOKU_CONF.'/lang/'.$conf['lang'].'/'.$id.'.'.$ext;
+ $file = DOKU_CONF.'lang/'.$conf['lang'].'/'.$id.'.'.$ext;
if(!@file_exists($file)){
$file = DOKU_INC.'inc/lang/'.$conf['lang'].'/'.$id.'.'.$ext;
if(!@file_exists($file)){
@@ -396,7 +396,7 @@ function resolve_id($ns,$id,$clean=true){
// if the id starts with a dot we need to handle the
// relative stuff
- if($id{0} == '.'){
+ if($id && $id{0} == '.'){
// normalize initial dots without a colon
$id = preg_replace('/^(\.+)(?=[^:\.])/','\1:',$id);
// prepend the current namespace
diff --git a/inc/parser/code.php b/inc/parser/code.php
index 6e159b041..0b8e3ee02 100644
--- a/inc/parser/code.php
+++ b/inc/parser/code.php
@@ -15,7 +15,7 @@ class Doku_Renderer_code extends Doku_Renderer {
*
* When the correct block was found it exits the script.
*/
- function code($text, $language = NULL, $filename='' ) {
+ function code($text, $language = null, $filename='' ) {
global $INPUT;
if(!$language) $language = 'txt';
if(!$filename) $filename = 'snippet.'.$language;
@@ -36,7 +36,7 @@ class Doku_Renderer_code extends Doku_Renderer {
/**
* Wraps around code()
*/
- function file($text, $language = NULL, $filename='') {
+ function file($text, $language = null, $filename='') {
$this->code($text, $language, $filename);
}
diff --git a/inc/parser/handler.php b/inc/parser/handler.php
index 1cf32aaed..8ae991209 100644
--- a/inc/parser/handler.php
+++ b/inc/parser/handler.php
@@ -4,9 +4,9 @@ if (!defined('DOKU_PARSER_EOL')) define('DOKU_PARSER_EOL',"\n"); // add this t
class Doku_Handler {
- var $Renderer = NULL;
+ var $Renderer = null;
- var $CallWriter = NULL;
+ var $CallWriter = null;
var $calls = array();
@@ -35,8 +35,8 @@ class Doku_Handler {
$this->CallWriter->finalise();
if ( $this->status['section'] ) {
- $last_call = end($this->calls);
- array_push($this->calls,array('section_close',array(), $last_call[2]));
+ $last_call = end($this->calls);
+ array_push($this->calls,array('section_close',array(), $last_call[2]));
}
if ( $this->rewriteBlocks ) {
@@ -70,12 +70,12 @@ class Doku_Handler {
*/
function plugin($match, $state, $pos, $pluginname){
$data = array($match);
- $plugin =& plugin_load('syntax',$pluginname);
+ $plugin = plugin_load('syntax',$pluginname);
if($plugin != null){
$data = $plugin->handle($match, $state, $pos, $this);
}
if ($data !== false) {
- $this->addPluginCall($pluginname,$data,$state,$pos,$match);
+ $this->addPluginCall($pluginname,$data,$state,$pos,$match);
}
return true;
}
@@ -190,8 +190,8 @@ class Doku_Handler {
// footnotes can not be nested - however due to limitations in lexer it can't be prevented
// we will still enter a new footnote mode, we just do nothing
if ($this->_footnote) {
- $this->_addCall('cdata',array($match), $pos);
- break;
+ $this->_addCall('cdata',array($match), $pos);
+ break;
}
$this->_footnote = true;
@@ -203,8 +203,8 @@ class Doku_Handler {
case DOKU_LEXER_EXIT:
// check whether we have already exitted the footnote mode, can happen if the modes were nested
if (!$this->_footnote) {
- $this->_addCall('cdata',array($match), $pos);
- break;
+ $this->_addCall('cdata',array($match), $pos);
+ break;
}
$this->_footnote = false;
@@ -423,7 +423,7 @@ class Doku_Handler {
// Split title from URL
$link = explode('|',$link,2);
if ( !isset($link[1]) ) {
- $link[1] = NULL;
+ $link[1] = null;
} else if ( preg_match('/^\{\{[^\}]+\}\}$/',$link[1]) ) {
// If the title is an image, convert it to an array containing the image details
$link[1] = Doku_Handler_Parse_Media($link[1]);
@@ -433,7 +433,7 @@ class Doku_Handler {
//decide which kind of link it is
if ( preg_match('/^[a-zA-Z0-9\.]+>{1}.*$/u',$link[0]) ) {
- // Interwiki
+ // Interwiki
$interwiki = explode('>',$link[0],2);
$this->_addCall(
'interwikilink',
@@ -441,35 +441,35 @@ class Doku_Handler {
$pos
);
}elseif ( preg_match('/^\\\\\\\\[^\\\\]+?\\\\/u',$link[0]) ) {
- // Windows Share
+ // Windows Share
$this->_addCall(
'windowssharelink',
array($link[0],$link[1]),
$pos
);
}elseif ( preg_match('#^([a-z0-9\-\.+]+?)://#i',$link[0]) ) {
- // external link (accepts all protocols)
+ // external link (accepts all protocols)
$this->_addCall(
'externallink',
array($link[0],$link[1]),
$pos
);
}elseif ( preg_match('<'.PREG_PATTERN_VALID_EMAIL.'>',$link[0]) ) {
- // E-Mail (pattern above is defined in inc/mail.php)
+ // E-Mail (pattern above is defined in inc/mail.php)
$this->_addCall(
'emaillink',
array($link[0],$link[1]),
$pos
);
}elseif ( preg_match('!^#.+!',$link[0]) ){
- // local link
+ // local link
$this->_addCall(
'locallink',
array(substr($link[0],1),$link[1]),
$pos
);
}else{
- // internal link
+ // internal link
$this->_addCall(
'internallink',
array($link[0],$link[1]),
@@ -481,12 +481,12 @@ class Doku_Handler {
}
function filelink($match, $state, $pos) {
- $this->_addCall('filelink',array($match, NULL), $pos);
+ $this->_addCall('filelink',array($match, null), $pos);
return true;
}
function windowssharelink($match, $state, $pos) {
- $this->_addCall('windowssharelink',array($match, NULL), $pos);
+ $this->_addCall('windowssharelink',array($match, null), $pos);
return true;
}
@@ -520,10 +520,10 @@ class Doku_Handler {
$p['details'] = (preg_match('/\b(desc|detail)/',$params));
if (preg_match('/\b(\d+)([dhm])\b/',$params,$match)) {
- $period = array('d' => 86400, 'h' => 3600, 'm' => 60);
- $p['refresh'] = max(600,$match[1]*$period[$match[2]]); // n * period in seconds, minimum 10 minutes
+ $period = array('d' => 86400, 'h' => 3600, 'm' => 60);
+ $p['refresh'] = max(600,$match[1]*$period[$match[2]]); // n * period in seconds, minimum 10 minutes
} else {
- $p['refresh'] = 14400; // default to 4 hours
+ $p['refresh'] = 14400; // default to 4 hours
}
$this->_addCall('rss',array($link,$p),$pos);
@@ -550,7 +550,7 @@ class Doku_Handler {
function emaillink($match, $state, $pos) {
$email = preg_replace(array('/^</','/>$/'),'',$match);
- $this->_addCall('emaillink',array($email, NULL), $pos);
+ $this->_addCall('emaillink',array($email, null), $pos);
return true;
}
@@ -618,7 +618,6 @@ function Doku_Handler_Parse_Media($match) {
// Split title from URL
$link = explode('|',$link,2);
-
// Check alignment
$ralign = (bool)preg_match('/^ /',$link[0]);
$lalign = (bool)preg_match('/ $/',$link[0]);
@@ -631,12 +630,12 @@ function Doku_Handler_Parse_Media($match) {
} else if ( $lalign ) {
$align = 'left';
} else {
- $align = NULL;
+ $align = null;
}
// The title...
if ( !isset($link[1]) ) {
- $link[1] = NULL;
+ $link[1] = null;
}
//remove aligning spaces
@@ -654,11 +653,11 @@ function Doku_Handler_Parse_Media($match) {
//parse width and height
if(preg_match('#(\d+)(x(\d+))?#i',$param,$size)){
- ($size[1]) ? $w = $size[1] : $w = NULL;
- ($size[3]) ? $h = $size[3] : $h = NULL;
+ !empty($size[1]) ? $w = $size[1] : $w = null;
+ !empty($size[3]) ? $h = $size[3] : $h = null;
} else {
- $w = NULL;
- $h = NULL;
+ $w = null;
+ $h = null;
}
//get linking command
@@ -1034,7 +1033,7 @@ class Doku_Handler_Preformatted {
break;
case 'preformatted_end':
if (trim($this->text)) {
- $this->CallWriter->writeCall(array('preformatted',array($this->text),$this->pos));
+ $this->CallWriter->writeCall(array('preformatted',array($this->text),$this->pos));
}
// see FS#1699 & FS#1652, add 'eol' instructions to ensure proper triggering of following p_open
$this->CallWriter->writeCall(array('eol',array(),$this->pos));
@@ -1247,12 +1246,12 @@ class Doku_Handler_Table {
}
$this->tableCalls[] = array($this->lastCellType.'_close',array(),$call[2]);
- $this->tableCalls[] = array($call[0].'_open',array(1,NULL,1),$call[2]);
+ $this->tableCalls[] = array($call[0].'_open',array(1,null,1),$call[2]);
$this->lastCellType = $call[0];
} else {
- $this->tableCalls[] = array($call[0].'_open',array(1,NULL,1),$call[2]);
+ $this->tableCalls[] = array($call[0].'_open',array(1,null,1),$call[2]);
$this->lastCellType = $call[0];
$this->firstCell = false;
@@ -1289,121 +1288,119 @@ class Doku_Handler_Table {
$call = $this->tableCalls[$key];
switch ($call[0]) {
- case 'tablerow_open':
+ case 'tablerow_open':
- $lastRow++;
- $lastCell = 0;
- break;
+ $lastRow++;
+ $lastCell = 0;
+ break;
- case 'tablecell_open':
- case 'tableheader_open':
+ case 'tablecell_open':
+ case 'tableheader_open':
- $lastCell++;
- $cellKey[$lastRow][$lastCell] = $key;
- break;
+ $lastCell++;
+ $cellKey[$lastRow][$lastCell] = $key;
+ break;
- case 'table_align':
+ case 'table_align':
- $prev = in_array($this->tableCalls[$key-1][0], array('tablecell_open', 'tableheader_open'));
- $next = in_array($this->tableCalls[$key+1][0], array('tablecell_close', 'tableheader_close'));
- // If the cell is empty, align left
- if ($prev && $next) {
- $this->tableCalls[$key-1][1][1] = 'left';
+ $prev = in_array($this->tableCalls[$key-1][0], array('tablecell_open', 'tableheader_open'));
+ $next = in_array($this->tableCalls[$key+1][0], array('tablecell_close', 'tableheader_close'));
+ // If the cell is empty, align left
+ if ($prev && $next) {
+ $this->tableCalls[$key-1][1][1] = 'left';
- // If the previous element was a cell open, align right
- } elseif ($prev) {
- $this->tableCalls[$key-1][1][1] = 'right';
+ // If the previous element was a cell open, align right
+ } elseif ($prev) {
+ $this->tableCalls[$key-1][1][1] = 'right';
+
+ // If the next element is the close of an element, align either center or left
+ } elseif ( $next) {
+ if ( $this->tableCalls[$cellKey[$lastRow][$lastCell]][1][1] == 'right' ) {
+ $this->tableCalls[$cellKey[$lastRow][$lastCell]][1][1] = 'center';
+ } else {
+ $this->tableCalls[$cellKey[$lastRow][$lastCell]][1][1] = 'left';
+ }
- // If the next element is the close of an element, align either center or left
- } elseif ( $next) {
- if ( $this->tableCalls[$cellKey[$lastRow][$lastCell]][1][1] == 'right' ) {
- $this->tableCalls[$cellKey[$lastRow][$lastCell]][1][1] = 'center';
- } else {
- $this->tableCalls[$cellKey[$lastRow][$lastCell]][1][1] = 'left';
}
- }
+ // Now convert the whitespace back to cdata
+ $this->tableCalls[$key][0] = 'cdata';
+ break;
- // Now convert the whitespace back to cdata
- $this->tableCalls[$key][0] = 'cdata';
- break;
+ case 'colspan':
- case 'colspan':
+ $this->tableCalls[$key-1][1][0] = false;
- $this->tableCalls[$key-1][1][0] = false;
+ for($i = $key-2; $i >= $cellKey[$lastRow][1]; $i--) {
- for($i = $key-2; $i >= $cellKey[$lastRow][1]; $i--) {
+ if ( $this->tableCalls[$i][0] == 'tablecell_open' || $this->tableCalls[$i][0] == 'tableheader_open' ) {
- if ( $this->tableCalls[$i][0] == 'tablecell_open' || $this->tableCalls[$i][0] == 'tableheader_open' ) {
+ if ( false !== $this->tableCalls[$i][1][0] ) {
+ $this->tableCalls[$i][1][0]++;
+ break;
+ }
- if ( false !== $this->tableCalls[$i][1][0] ) {
- $this->tableCalls[$i][1][0]++;
- break;
}
-
-
}
- }
- $toDelete[] = $key-1;
- $toDelete[] = $key;
- $toDelete[] = $key+1;
- break;
-
- case 'rowspan':
+ $toDelete[] = $key-1;
+ $toDelete[] = $key;
+ $toDelete[] = $key+1;
+ break;
- if ( $this->tableCalls[$key-1][0] == 'cdata' ) {
- // ignore rowspan if previous call was cdata (text mixed with :::) we don't have to check next call as that wont match regex
- $this->tableCalls[$key][0] = 'cdata';
+ case 'rowspan':
- } else {
+ if ( $this->tableCalls[$key-1][0] == 'cdata' ) {
+ // ignore rowspan if previous call was cdata (text mixed with :::) we don't have to check next call as that wont match regex
+ $this->tableCalls[$key][0] = 'cdata';
- $spanning_cell = null;
- for($i = $lastRow-1; $i > 0; $i--) {
+ } else {
- if ( $this->tableCalls[$cellKey[$i][$lastCell]][0] == 'tablecell_open' || $this->tableCalls[$cellKey[$i][$lastCell]][0] == 'tableheader_open' ) {
+ $spanning_cell = null;
+ for($i = $lastRow-1; $i > 0; $i--) {
- if ($this->tableCalls[$cellKey[$i][$lastCell]][1][2] >= $lastRow - $i) {
- $spanning_cell = $i;
- break;
- }
+ if ( $this->tableCalls[$cellKey[$i][$lastCell]][0] == 'tablecell_open' || $this->tableCalls[$cellKey[$i][$lastCell]][0] == 'tableheader_open' ) {
+ if ($this->tableCalls[$cellKey[$i][$lastCell]][1][2] >= $lastRow - $i) {
+ $spanning_cell = $i;
+ break;
+ }
+ }
}
- }
- if (is_null($spanning_cell)) {
- // No spanning cell found, so convert this cell to
- // an empty one to avoid broken tables
- $this->tableCells[$key][1][1] = '';
- continue;
- }
- $this->tableCalls[$cellKey[$spanning_cell][$lastCell]][1][2]++;
+ if (is_null($spanning_cell)) {
+ // No spanning cell found, so convert this cell to
+ // an empty one to avoid broken tables
+ $this->tableCalls[$key][0] = 'cdata';
+ $this->tableCalls[$key][1][0] = '';
+ continue;
+ }
+ $this->tableCalls[$cellKey[$spanning_cell][$lastCell]][1][2]++;
- $this->tableCalls[$key-1][1][2] = false;
+ $this->tableCalls[$key-1][1][2] = false;
- $toDelete[] = $key-1;
- $toDelete[] = $key;
- $toDelete[] = $key+1;
- }
- break;
+ $toDelete[] = $key-1;
+ $toDelete[] = $key;
+ $toDelete[] = $key+1;
+ }
+ break;
- case 'tablerow_close':
+ case 'tablerow_close':
- // Fix broken tables by adding missing cells
- while (++$lastCell < $this->maxCols) {
- array_splice($this->tableCalls, $key, 0, array(
- array('tablecell_open', array(1, null, 1), $call[2]),
- array('cdata', array(''), $call[2]),
- array('tablecell_close', array(), $call[2])));
- $key += 3;
- }
+ // Fix broken tables by adding missing cells
+ while (++$lastCell < $this->maxCols) {
+ array_splice($this->tableCalls, $key, 0, array(
+ array('tablecell_open', array(1, null, 1), $call[2]),
+ array('cdata', array(''), $call[2]),
+ array('tablecell_close', array(), $call[2])));
+ $key += 3;
+ }
- break;
+ break;
}
}
-
// condense cdata
$cnt = count($this->tableCalls);
for( $key = 0; $key < $cnt; $key++){
@@ -1435,6 +1432,7 @@ class Doku_Handler_Table {
class Doku_Handler_Block {
var $calls = array();
var $skipEol = false;
+ var $inParagraph = false;
// Blocks these should not be inside paragraphs
var $blockOpen = array(
diff --git a/inc/parser/lexer.php b/inc/parser/lexer.php
index b5bcb9612..2e84eca7c 100644
--- a/inc/parser/lexer.php
+++ b/inc/parser/lexer.php
@@ -1,18 +1,18 @@
<?php
/**
-* Author Markus Baker: http://www.lastcraft.com
-* Version adapted from Simple Test: http://sourceforge.net/projects/simpletest/
-* For an intro to the Lexer see:
-* http://www.phppatterns.com/index.php/article/articleview/106/1/2/
-* @author Marcus Baker
-* @package Doku
-* @subpackage Lexer
-* @version $Id: lexer.php,v 1.1 2005/03/23 23:14:09 harryf Exp $
-*/
+ * Author Markus Baker: http://www.lastcraft.com
+ * Version adapted from Simple Test: http://sourceforge.net/projects/simpletest/
+ * For an intro to the Lexer see:
+ * http://www.phppatterns.com/index.php/article/articleview/106/1/2/
+ * @author Marcus Baker
+ * @package Doku
+ * @subpackage Lexer
+ * @version $Id: lexer.php,v 1.1 2005/03/23 23:14:09 harryf Exp $
+ */
/**
-* Init path constant
-*/
+ * Init path constant
+ */
if(!defined('DOKU_INC')) die('meh.');
/**#@+
@@ -26,11 +26,12 @@ define("DOKU_LEXER_SPECIAL", 5);
/**#@-*/
/**
- * Compounded regular expression. Any of
- * the contained patterns could match and
- * when one does it's label is returned.
- * @package Doku
- * @subpackage Lexer
+ * Compounded regular expression. Any of
+ * the contained patterns could match and
+ * when one does it's label is returned.
+ *
+ * @package Doku
+ * @subpackage Lexer
*/
class Doku_LexerParallelRegex {
var $_patterns;
@@ -39,10 +40,11 @@ class Doku_LexerParallelRegex {
var $_case;
/**
- * Constructor. Starts with no patterns.
- * @param boolean $case True for case sensitive, false
- * for insensitive.
- * @access public
+ * Constructor. Starts with no patterns.
+ *
+ * @param boolean $case True for case sensitive, false
+ * for insensitive.
+ * @access public
*/
function Doku_LexerParallelRegex($case) {
$this->_case = $case;
@@ -52,15 +54,16 @@ class Doku_LexerParallelRegex {
}
/**
- * Adds a pattern with an optional label.
- * @param mixed $pattern Perl style regex. Must be UTF-8
- * encoded. If its a string, the (, )
- * lose their meaning unless they
- * form part of a lookahead or
- * lookbehind assertation.
- * @param string $label Label of regex to be returned
- * on a match. Label must be ASCII
- * @access public
+ * Adds a pattern with an optional label.
+ *
+ * @param mixed $pattern Perl style regex. Must be UTF-8
+ * encoded. If its a string, the (, )
+ * lose their meaning unless they
+ * form part of a lookahead or
+ * lookbehind assertation.
+ * @param string $label Label of regex to be returned
+ * on a match. Label must be ASCII
+ * @access public
*/
function addPattern($pattern, $label = true) {
$count = count($this->_patterns);
@@ -70,13 +73,13 @@ class Doku_LexerParallelRegex {
}
/**
- * Attempts to match all patterns at once against
- * a string.
- * @param string $subject String to match against.
- * @param string $match First matched portion of
- * subject.
- * @return boolean True on success.
- * @access public
+ * Attempts to match all patterns at once against a string.
+ *
+ * @param string $subject String to match against.
+ * @param string $match First matched portion of
+ * subject.
+ * @return boolean True on success.
+ * @access public
*/
function match($subject, &$match) {
if (count($this->_patterns) == 0) {
@@ -98,14 +101,14 @@ class Doku_LexerParallelRegex {
}
/**
- * Attempts to split the string against all patterns at once
+ * Attempts to split the string against all patterns at once
*
- * @param string $subject String to match against.
- * @param array $split The split result: array containing, pre-match, match & post-match strings
- * @return boolean True on success.
- * @access public
+ * @param string $subject String to match against.
+ * @param array $split The split result: array containing, pre-match, match & post-match strings
+ * @return boolean True on success.
+ * @access public
*
- * @author Christopher Smith <chris@jalakai.co.uk>
+ * @author Christopher Smith <chris@jalakai.co.uk>
*/
function split($subject, &$split) {
if (count($this->_patterns) == 0) {
@@ -143,12 +146,13 @@ class Doku_LexerParallelRegex {
}
/**
- * Compounds the patterns into a single
- * regular expression separated with the
- * "or" operator. Caches the regex.
- * Will automatically escape (, ) and / tokens.
- * @param array $patterns List of patterns in order.
- * @access private
+ * Compounds the patterns into a single
+ * regular expression separated with the
+ * "or" operator. Caches the regex.
+ * Will automatically escape (, ) and / tokens.
+ *
+ * @param array $patterns List of patterns in order.
+ * @access private
*/
function _getCompoundedRegex() {
if ($this->_regex == null) {
@@ -176,25 +180,25 @@ class Doku_LexerParallelRegex {
*/
switch($elt) {
- case '(':
- $pattern .= '\(';
- break;
- case ')':
- if ($level > 0)
- $level--; /* closing (? */
- else
- $pattern .= '\\';
- $pattern .= ')';
- break;
- case '(?':
- $level++;
- $pattern .= '(?';
- break;
- default:
- if (substr($elt, 0, 1) == '\\')
- $pattern .= $elt;
- else
- $pattern .= str_replace('/', '\/', $elt);
+ case '(':
+ $pattern .= '\(';
+ break;
+ case ')':
+ if ($level > 0)
+ $level--; /* closing (? */
+ else
+ $pattern .= '\\';
+ $pattern .= ')';
+ break;
+ case '(?':
+ $level++;
+ $pattern .= '(?';
+ break;
+ default:
+ if (substr($elt, 0, 1) == '\\')
+ $pattern .= $elt;
+ else
+ $pattern .= str_replace('/', '\/', $elt);
}
}
$this->_patterns[$i] = "($pattern)";
@@ -205,9 +209,9 @@ class Doku_LexerParallelRegex {
}
/**
- * Accessor for perl regex mode flags to use.
- * @return string Perl regex flags.
- * @access private
+ * Accessor for perl regex mode flags to use.
+ * @return string Perl regex flags.
+ * @access private
*/
function _getPerlMatchingFlags() {
return ($this->_case ? "msS" : "msSi");
@@ -215,47 +219,47 @@ class Doku_LexerParallelRegex {
}
/**
- * States for a stack machine.
- * @package Lexer
- * @subpackage Lexer
+ * States for a stack machine.
+ * @package Lexer
+ * @subpackage Lexer
*/
class Doku_LexerStateStack {
var $_stack;
/**
- * Constructor. Starts in named state.
- * @param string $start Starting state name.
- * @access public
+ * Constructor. Starts in named state.
+ * @param string $start Starting state name.
+ * @access public
*/
function Doku_LexerStateStack($start) {
$this->_stack = array($start);
}
/**
- * Accessor for current state.
- * @return string State.
- * @access public
+ * Accessor for current state.
+ * @return string State.
+ * @access public
*/
function getCurrent() {
return $this->_stack[count($this->_stack) - 1];
}
/**
- * Adds a state to the stack and sets it
- * to be the current state.
- * @param string $state New state.
- * @access public
+ * Adds a state to the stack and sets it
+ * to be the current state.
+ * @param string $state New state.
+ * @access public
*/
function enter($state) {
array_push($this->_stack, $state);
}
/**
- * Leaves the current state and reverts
- * to the previous one.
- * @return boolean False if we drop off
- * the bottom of the list.
- * @access public
+ * Leaves the current state and reverts
+ * to the previous one.
+ * @return boolean False if we drop off
+ * the bottom of the list.
+ * @access public
*/
function leave() {
if (count($this->_stack) == 1) {
@@ -267,13 +271,13 @@ class Doku_LexerStateStack {
}
/**
- * Accepts text and breaks it into tokens.
- * Some optimisation to make the sure the
- * content is only scanned by the PHP regex
- * parser once. Lexer modes must not start
- * with leading underscores.
- * @package Doku
- * @subpackage Lexer
+ * Accepts text and breaks it into tokens.
+ * Some optimisation to make the sure the
+ * content is only scanned by the PHP regex
+ * parser once. Lexer modes must not start
+ * with leading underscores.
+ * @package Doku
+ * @subpackage Lexer
*/
class Doku_Lexer {
var $_regexes;
@@ -283,13 +287,13 @@ class Doku_Lexer {
var $_case;
/**
- * Sets up the lexer in case insensitive matching
- * by default.
- * @param Doku_Parser $parser Handling strategy by
- * reference.
- * @param string $start Starting handler.
- * @param boolean $case True for case sensitive.
- * @access public
+ * Sets up the lexer in case insensitive matching
+ * by default.
+ * @param Doku_Parser $parser Handling strategy by
+ * reference.
+ * @param string $start Starting handler.
+ * @param boolean $case True for case sensitive.
+ * @access public
*/
function Doku_Lexer(&$parser, $start = "accept", $case = false) {
$this->_case = $case;
@@ -300,15 +304,15 @@ class Doku_Lexer {
}
/**
- * Adds a token search pattern for a particular
- * parsing mode. The pattern does not change the
- * current mode.
- * @param string $pattern Perl style regex, but ( and )
- * lose the usual meaning.
- * @param string $mode Should only apply this
- * pattern when dealing with
- * this type of input.
- * @access public
+ * Adds a token search pattern for a particular
+ * parsing mode. The pattern does not change the
+ * current mode.
+ * @param string $pattern Perl style regex, but ( and )
+ * lose the usual meaning.
+ * @param string $mode Should only apply this
+ * pattern when dealing with
+ * this type of input.
+ * @access public
*/
function addPattern($pattern, $mode = "accept") {
if (! isset($this->_regexes[$mode])) {
@@ -318,17 +322,17 @@ class Doku_Lexer {
}
/**
- * Adds a pattern that will enter a new parsing
- * mode. Useful for entering parenthesis, strings,
- * tags, etc.
- * @param string $pattern Perl style regex, but ( and )
- * lose the usual meaning.
- * @param string $mode Should only apply this
- * pattern when dealing with
- * this type of input.
- * @param string $new_mode Change parsing to this new
- * nested mode.
- * @access public
+ * Adds a pattern that will enter a new parsing
+ * mode. Useful for entering parenthesis, strings,
+ * tags, etc.
+ * @param string $pattern Perl style regex, but ( and )
+ * lose the usual meaning.
+ * @param string $mode Should only apply this
+ * pattern when dealing with
+ * this type of input.
+ * @param string $new_mode Change parsing to this new
+ * nested mode.
+ * @access public
*/
function addEntryPattern($pattern, $mode, $new_mode) {
if (! isset($this->_regexes[$mode])) {
@@ -338,12 +342,12 @@ class Doku_Lexer {
}
/**
- * Adds a pattern that will exit the current mode
- * and re-enter the previous one.
- * @param string $pattern Perl style regex, but ( and )
- * lose the usual meaning.
- * @param string $mode Mode to leave.
- * @access public
+ * Adds a pattern that will exit the current mode
+ * and re-enter the previous one.
+ * @param string $pattern Perl style regex, but ( and )
+ * lose the usual meaning.
+ * @param string $mode Mode to leave.
+ * @access public
*/
function addExitPattern($pattern, $mode) {
if (! isset($this->_regexes[$mode])) {
@@ -353,16 +357,16 @@ class Doku_Lexer {
}
/**
- * Adds a pattern that has a special mode. Acts as an entry
- * and exit pattern in one go, effectively calling a special
- * parser handler for this token only.
- * @param string $pattern Perl style regex, but ( and )
- * lose the usual meaning.
- * @param string $mode Should only apply this
- * pattern when dealing with
- * this type of input.
- * @param string $special Use this mode for this one token.
- * @access public
+ * Adds a pattern that has a special mode. Acts as an entry
+ * and exit pattern in one go, effectively calling a special
+ * parser handler for this token only.
+ * @param string $pattern Perl style regex, but ( and )
+ * lose the usual meaning.
+ * @param string $mode Should only apply this
+ * pattern when dealing with
+ * this type of input.
+ * @param string $special Use this mode for this one token.
+ * @access public
*/
function addSpecialPattern($pattern, $mode, $special) {
if (! isset($this->_regexes[$mode])) {
@@ -372,24 +376,24 @@ class Doku_Lexer {
}
/**
- * Adds a mapping from a mode to another handler.
- * @param string $mode Mode to be remapped.
- * @param string $handler New target handler.
- * @access public
+ * Adds a mapping from a mode to another handler.
+ * @param string $mode Mode to be remapped.
+ * @param string $handler New target handler.
+ * @access public
*/
function mapHandler($mode, $handler) {
$this->_mode_handlers[$mode] = $handler;
}
/**
- * Splits the page text into tokens. Will fail
- * if the handlers report an error or if no
- * content is consumed. If successful then each
- * unparsed and parsed token invokes a call to the
- * held listener.
- * @param string $raw Raw HTML text.
- * @return boolean True on success, else false.
- * @access public
+ * Splits the page text into tokens. Will fail
+ * if the handlers report an error or if no
+ * content is consumed. If successful then each
+ * unparsed and parsed token invokes a call to the
+ * held listener.
+ * @param string $raw Raw HTML text.
+ * @return boolean True on success, else false.
+ * @access public
*/
function parse($raw) {
if (! isset($this->_parser)) {
@@ -418,18 +422,18 @@ class Doku_Lexer {
}
/**
- * Sends the matched token and any leading unmatched
- * text to the parser changing the lexer to a new
- * mode if one is listed.
- * @param string $unmatched Unmatched leading portion.
- * @param string $matched Actual token match.
- * @param string $mode Mode after match. A boolean
- * false mode causes no change.
- * @param int $pos Current byte index location in raw doc
- * thats being parsed
- * @return boolean False if there was any error
- * from the parser.
- * @access private
+ * Sends the matched token and any leading unmatched
+ * text to the parser changing the lexer to a new
+ * mode if one is listed.
+ * @param string $unmatched Unmatched leading portion.
+ * @param string $matched Actual token match.
+ * @param string $mode Mode after match. A boolean
+ * false mode causes no change.
+ * @param int $pos Current byte index location in raw doc
+ * thats being parsed
+ * @return boolean False if there was any error
+ * from the parser.
+ * @access private
*/
function _dispatchTokens($unmatched, $matched, $mode = false, $initialPos, $matchPos) {
if (! $this->_invokeParser($unmatched, DOKU_LEXER_UNMATCHED, $initialPos) ){
@@ -456,50 +460,50 @@ class Doku_Lexer {
}
/**
- * Tests to see if the new mode is actually to leave
- * the current mode and pop an item from the matching
- * mode stack.
- * @param string $mode Mode to test.
- * @return boolean True if this is the exit mode.
- * @access private
+ * Tests to see if the new mode is actually to leave
+ * the current mode and pop an item from the matching
+ * mode stack.
+ * @param string $mode Mode to test.
+ * @return boolean True if this is the exit mode.
+ * @access private
*/
function _isModeEnd($mode) {
return ($mode === "__exit");
}
/**
- * Test to see if the mode is one where this mode
- * is entered for this token only and automatically
- * leaves immediately afterwoods.
- * @param string $mode Mode to test.
- * @return boolean True if this is the exit mode.
- * @access private
+ * Test to see if the mode is one where this mode
+ * is entered for this token only and automatically
+ * leaves immediately afterwoods.
+ * @param string $mode Mode to test.
+ * @return boolean True if this is the exit mode.
+ * @access private
*/
function _isSpecialMode($mode) {
return (strncmp($mode, "_", 1) == 0);
}
/**
- * Strips the magic underscore marking single token
- * modes.
- * @param string $mode Mode to decode.
- * @return string Underlying mode name.
- * @access private
+ * Strips the magic underscore marking single token
+ * modes.
+ * @param string $mode Mode to decode.
+ * @return string Underlying mode name.
+ * @access private
*/
function _decodeSpecial($mode) {
return substr($mode, 1);
}
/**
- * Calls the parser method named after the current
- * mode. Empty content will be ignored. The lexer
- * has a parser handler for each mode in the lexer.
- * @param string $content Text parsed.
- * @param boolean $is_match Token is recognised rather
- * than unparsed data.
- * @param int $pos Current byte index location in raw doc
- * thats being parsed
- * @access private
+ * Calls the parser method named after the current
+ * mode. Empty content will be ignored. The lexer
+ * has a parser handler for each mode in the lexer.
+ * @param string $content Text parsed.
+ * @param boolean $is_match Token is recognised rather
+ * than unparsed data.
+ * @param int $pos Current byte index location in raw doc
+ * thats being parsed
+ * @access private
*/
function _invokeParser($content, $is_match, $pos) {
if (($content === "") || ($content === false)) {
@@ -513,26 +517,26 @@ class Doku_Lexer {
// modes starting with plugin_ are all handled by the same
// handler but with an additional parameter
if(substr($handler,0,7)=='plugin_'){
- list($handler,$plugin) = explode('_',$handler,2);
- return $this->_parser->$handler($content, $is_match, $pos, $plugin);
+ list($handler,$plugin) = explode('_',$handler,2);
+ return $this->_parser->$handler($content, $is_match, $pos, $plugin);
}
return $this->_parser->$handler($content, $is_match, $pos);
}
/**
- * Tries to match a chunk of text and if successful
- * removes the recognised chunk and any leading
- * unparsed data. Empty strings will not be matched.
- * @param string $raw The subject to parse. This is the
- * content that will be eaten.
- * @return array Three item list of unparsed
- * content followed by the
- * recognised token and finally the
- * action the parser is to take.
- * True if no match, false if there
- * is a parsing error.
- * @access private
+ * Tries to match a chunk of text and if successful
+ * removes the recognised chunk and any leading
+ * unparsed data. Empty strings will not be matched.
+ * @param string $raw The subject to parse. This is the
+ * content that will be eaten.
+ * @return array Three item list of unparsed
+ * content followed by the
+ * recognised token and finally the
+ * action the parser is to take.
+ * True if no match, false if there
+ * is a parsing error.
+ * @access private
*/
function _reduce(&$raw) {
if (! isset($this->_regexes[$this->_mode->getCurrent()])) {
@@ -550,9 +554,9 @@ class Doku_Lexer {
}
/**
-* Escapes regex characters other than (, ) and /
-* @TODO
-*/
+ * Escapes regex characters other than (, ) and /
+ * @TODO
+ */
function Doku_Lexer_Escape($str) {
//$str = addslashes($str);
$chars = array(
diff --git a/inc/parser/metadata.php b/inc/parser/metadata.php
index d64fe4d77..8ba159d62 100644
--- a/inc/parser/metadata.php
+++ b/inc/parser/metadata.php
@@ -23,442 +23,452 @@ require_once DOKU_INC . 'inc/parser/renderer.php';
*/
class Doku_Renderer_metadata extends Doku_Renderer {
- var $doc = '';
- var $meta = array();
- var $persistent = array();
+ var $doc = '';
+ var $meta = array();
+ var $persistent = array();
- var $headers = array();
- var $capture = true;
- var $store = '';
- var $firstimage = '';
+ var $headers = array();
+ var $capture = true;
+ var $store = '';
+ var $firstimage = '';
- function getFormat(){
- return 'metadata';
- }
+ function getFormat(){
+ return 'metadata';
+ }
+
+ function document_start(){
+ global $ID;
+
+ $this->headers = array();
+
+ // external pages are missing create date
+ if(!$this->persistent['date']['created']){
+ $this->persistent['date']['created'] = filectime(wikiFN($ID));
+ }
+ if(!isset($this->persistent['user'])){
+ $this->persistent['user'] = '';
+ }
+ if(!isset($this->persistent['creator'])){
+ $this->persistent['creator'] = '';
+ }
+ // reset metadata to persistent values
+ $this->meta = $this->persistent;
+ }
+
+ function document_end(){
+ global $ID;
- function document_start(){
- global $ID;
+ // store internal info in metadata (notoc,nocache)
+ $this->meta['internal'] = $this->info;
- $this->headers = array();
+ if (!isset($this->meta['description']['abstract'])){
+ // cut off too long abstracts
+ $this->doc = trim($this->doc);
+ if (strlen($this->doc) > 500)
+ $this->doc = utf8_substr($this->doc, 0, 500).'…';
+ $this->meta['description']['abstract'] = $this->doc;
+ }
+
+ $this->meta['relation']['firstimage'] = $this->firstimage;
+
+ if(!isset($this->meta['date']['modified'])){
+ $this->meta['date']['modified'] = filemtime(wikiFN($ID));
+ }
- // external pages are missing create date
- if(!$this->persistent['date']['created']){
- $this->persistent['date']['created'] = filectime(wikiFN($ID));
}
- if(!isset($this->persistent['user'])){
- $this->persistent['user'] = '';
+
+ function toc_additem($id, $text, $level) {
+ global $conf;
+
+ //only add items within configured levels
+ if($level >= $conf['toptoclevel'] && $level <= $conf['maxtoclevel']){
+ // the TOC is one of our standard ul list arrays ;-)
+ $this->meta['description']['tableofcontents'][] = array(
+ 'hid' => $id,
+ 'title' => $text,
+ 'type' => 'ul',
+ 'level' => $level-$conf['toptoclevel']+1
+ );
+ }
+
}
- if(!isset($this->persistent['creator'])){
- $this->persistent['creator'] = '';
+
+ function header($text, $level, $pos) {
+ if (!isset($this->meta['title'])) $this->meta['title'] = $text;
+
+ // add the header to the TOC
+ $hid = $this->_headerToLink($text,'true');
+ $this->toc_additem($hid, $text, $level);
+
+ // add to summary
+ if ($this->capture && ($level > 1)) $this->doc .= DOKU_LF.$text.DOKU_LF;
}
- // reset metadata to persistent values
- $this->meta = $this->persistent;
- }
- function document_end(){
- global $ID;
+ function section_open($level){}
+ function section_close(){}
- // store internal info in metadata (notoc,nocache)
- $this->meta['internal'] = $this->info;
+ function cdata($text){
+ if ($this->capture) $this->doc .= $text;
+ }
- if (!isset($this->meta['description']['abstract'])){
- // cut off too long abstracts
- $this->doc = trim($this->doc);
- if (strlen($this->doc) > 500)
- $this->doc = utf8_substr($this->doc, 0, 500).'…';
- $this->meta['description']['abstract'] = $this->doc;
+ function p_open(){
+ if ($this->capture) $this->doc .= DOKU_LF;
}
- $this->meta['relation']['firstimage'] = $this->firstimage;
+ function p_close(){
+ if ($this->capture){
+ if (strlen($this->doc) > 250) $this->capture = false;
+ else $this->doc .= DOKU_LF;
+ }
+ }
- if(!isset($this->meta['date']['modified'])){
- $this->meta['date']['modified'] = filemtime(wikiFN($ID));
+ function linebreak(){
+ if ($this->capture) $this->doc .= DOKU_LF;
}
- }
+ function hr(){
+ if ($this->capture){
+ if (strlen($this->doc) > 250) $this->capture = false;
+ else $this->doc .= DOKU_LF.'----------'.DOKU_LF;
+ }
+ }
- function toc_additem($id, $text, $level) {
- global $conf;
+ /**
+ * Callback for footnote start syntax
+ *
+ * All following content will go to the footnote instead of
+ * the document. To achieve this the previous rendered content
+ * is moved to $store and $doc is cleared
+ *
+ * @author Andreas Gohr <andi@splitbrain.org>
+ */
+ function footnote_open() {
+ if ($this->capture){
+ // move current content to store and record footnote
+ $this->store = $this->doc;
+ $this->doc = '';
+ }
+ }
- //only add items within configured levels
- if($level >= $conf['toptoclevel'] && $level <= $conf['maxtoclevel']){
- // the TOC is one of our standard ul list arrays ;-)
- $this->meta['description']['tableofcontents'][] = array(
- 'hid' => $id,
- 'title' => $text,
- 'type' => 'ul',
- 'level' => $level-$conf['toptoclevel']+1
- );
+ /**
+ * Callback for footnote end syntax
+ *
+ * All rendered content is moved to the $footnotes array and the old
+ * content is restored from $store again
+ *
+ * @author Andreas Gohr
+ */
+ function footnote_close() {
+ if ($this->capture){
+ // restore old content
+ $this->doc = $this->store;
+ $this->store = '';
+ }
}
- }
+ function listu_open(){
+ if ($this->capture) $this->doc .= DOKU_LF;
+ }
- function header($text, $level, $pos) {
- if (!isset($this->meta['title'])) $this->meta['title'] = $text;
+ function listu_close(){
+ if ($this->capture && (strlen($this->doc) > 250)) $this->capture = false;
+ }
- // add the header to the TOC
- $hid = $this->_headerToLink($text,'true');
- $this->toc_additem($hid, $text, $level);
+ function listo_open(){
+ if ($this->capture) $this->doc .= DOKU_LF;
+ }
- // add to summary
- if ($this->capture && ($level > 1)) $this->doc .= DOKU_LF.$text.DOKU_LF;
- }
+ function listo_close(){
+ if ($this->capture && (strlen($this->doc) > 250)) $this->capture = false;
+ }
- function section_open($level){}
- function section_close(){}
+ function listitem_open($level){
+ if ($this->capture) $this->doc .= str_repeat(DOKU_TAB, $level).'* ';
+ }
- function cdata($text){
- if ($this->capture) $this->doc .= $text;
- }
+ function listitem_close(){
+ if ($this->capture) $this->doc .= DOKU_LF;
+ }
- function p_open(){
- if ($this->capture) $this->doc .= DOKU_LF;
- }
+ function listcontent_open(){}
+ function listcontent_close(){}
- function p_close(){
- if ($this->capture){
- if (strlen($this->doc) > 250) $this->capture = false;
- else $this->doc .= DOKU_LF;
+ function unformatted($text){
+ if ($this->capture) $this->doc .= $text;
}
- }
- function linebreak(){
- if ($this->capture) $this->doc .= DOKU_LF;
- }
+ function preformatted($text){
+ if ($this->capture) $this->doc .= $text;
+ }
- function hr(){
- if ($this->capture){
- if (strlen($this->doc) > 250) $this->capture = false;
- else $this->doc .= DOKU_LF.'----------'.DOKU_LF;
+ function file($text, $lang = null, $file = null){
+ if ($this->capture){
+ $this->doc .= DOKU_LF.$text;
+ if (strlen($this->doc) > 250) $this->capture = false;
+ else $this->doc .= DOKU_LF;
+ }
}
- }
- /**
- * Callback for footnote start syntax
- *
- * All following content will go to the footnote instead of
- * the document. To achieve this the previous rendered content
- * is moved to $store and $doc is cleared
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
- function footnote_open() {
- if ($this->capture){
- // move current content to store and record footnote
- $this->store = $this->doc;
- $this->doc = '';
+ function quote_open(){
+ if ($this->capture) $this->doc .= DOKU_LF.DOKU_TAB.'"';
}
- }
- /**
- * Callback for footnote end syntax
- *
- * All rendered content is moved to the $footnotes array and the old
- * content is restored from $store again
- *
- * @author Andreas Gohr
- */
- function footnote_close() {
- if ($this->capture){
- // restore old content
- $this->doc = $this->store;
- $this->store = '';
- }
- }
-
- function listu_open(){
- if ($this->capture) $this->doc .= DOKU_LF;
- }
-
- function listu_close(){
- if ($this->capture && (strlen($this->doc) > 250)) $this->capture = false;
- }
-
- function listo_open(){
- if ($this->capture) $this->doc .= DOKU_LF;
- }
-
- function listo_close(){
- if ($this->capture && (strlen($this->doc) > 250)) $this->capture = false;
- }
-
- function listitem_open($level){
- if ($this->capture) $this->doc .= str_repeat(DOKU_TAB, $level).'* ';
- }
-
- function listitem_close(){
- if ($this->capture) $this->doc .= DOKU_LF;
- }
-
- function listcontent_open(){}
- function listcontent_close(){}
-
- function unformatted($text){
- if ($this->capture) $this->doc .= $text;
- }
-
- function preformatted($text){
- if ($this->capture) $this->doc .= $text;
- }
-
- function file($text, $lang = null, $file = null){
- if ($this->capture){
- $this->doc .= DOKU_LF.$text;
- if (strlen($this->doc) > 250) $this->capture = false;
- else $this->doc .= DOKU_LF;
- }
- }
-
- function quote_open(){
- if ($this->capture) $this->doc .= DOKU_LF.DOKU_TAB.'"';
- }
-
- function quote_close(){
- if ($this->capture){
- $this->doc .= '"';
- if (strlen($this->doc) > 250) $this->capture = false;
- else $this->doc .= DOKU_LF;
- }
- }
-
- function code($text, $language = NULL, $file = null){
- if ($this->capture){
- $this->doc .= DOKU_LF.$text;
- if (strlen($this->doc) > 250) $this->capture = false;
- else $this->doc .= DOKU_LF;
- }
- }
-
- function acronym($acronym){
- if ($this->capture) $this->doc .= $acronym;
- }
-
- function smiley($smiley){
- if ($this->capture) $this->doc .= $smiley;
- }
-
- function entity($entity){
- if ($this->capture) $this->doc .= $entity;
- }
+ function quote_close(){
+ if ($this->capture){
+ $this->doc .= '"';
+ if (strlen($this->doc) > 250) $this->capture = false;
+ else $this->doc .= DOKU_LF;
+ }
+ }
- function multiplyentity($x, $y){
- if ($this->capture) $this->doc .= $x.'×'.$y;
- }
+ function code($text, $language = null, $file = null){
+ if ($this->capture){
+ $this->doc .= DOKU_LF.$text;
+ if (strlen($this->doc) > 250) $this->capture = false;
+ else $this->doc .= DOKU_LF;
+ }
+ }
- function singlequoteopening(){
- global $lang;
- if ($this->capture) $this->doc .= $lang['singlequoteopening'];
- }
+ function acronym($acronym){
+ if ($this->capture) $this->doc .= $acronym;
+ }
- function singlequoteclosing(){
- global $lang;
- if ($this->capture) $this->doc .= $lang['singlequoteclosing'];
- }
+ function smiley($smiley){
+ if ($this->capture) $this->doc .= $smiley;
+ }
- function apostrophe() {
- global $lang;
- if ($this->capture) $this->doc .= $lang['apostrophe'];
- }
+ function entity($entity){
+ if ($this->capture) $this->doc .= $entity;
+ }
- function doublequoteopening(){
- global $lang;
- if ($this->capture) $this->doc .= $lang['doublequoteopening'];
- }
+ function multiplyentity($x, $y){
+ if ($this->capture) $this->doc .= $x.'×'.$y;
+ }
- function doublequoteclosing(){
- global $lang;
- if ($this->capture) $this->doc .= $lang['doublequoteclosing'];
- }
+ function singlequoteopening(){
+ global $lang;
+ if ($this->capture) $this->doc .= $lang['singlequoteopening'];
+ }
- function camelcaselink($link) {
- $this->internallink($link, $link);
- }
+ function singlequoteclosing(){
+ global $lang;
+ if ($this->capture) $this->doc .= $lang['singlequoteclosing'];
+ }
- function locallink($hash, $name = NULL){}
+ function apostrophe() {
+ global $lang;
+ if ($this->capture) $this->doc .= $lang['apostrophe'];
+ }
- /**
- * keep track of internal links in $this->meta['relation']['references']
- */
- function internallink($id, $name = NULL){
- global $ID;
+ function doublequoteopening(){
+ global $lang;
+ if ($this->capture) $this->doc .= $lang['doublequoteopening'];
+ }
- if(is_array($name)) {
- $this->_firstimage($name['src']);
- if ($name['type'] == 'internalmedia') $this->_recordMediaUsage($name['src']);
+ function doublequoteclosing(){
+ global $lang;
+ if ($this->capture) $this->doc .= $lang['doublequoteclosing'];
}
- $default = $this->_simpleTitle($id);
+ function camelcaselink($link) {
+ $this->internallink($link, $link);
+ }
+
+ function locallink($hash, $name = null){
+ if(is_array($name)) {
+ $this->_firstimage($name['src']);
+ if ($name['type'] == 'internalmedia') $this->_recordMediaUsage($name['src']);
+ }
+ }
- // first resolve and clean up the $id
- resolve_pageid(getNS($ID), $id, $exists);
- list($page, $hash) = explode('#', $id, 2);
+ /**
+ * keep track of internal links in $this->meta['relation']['references']
+ */
+ function internallink($id, $name = null){
+ global $ID;
+
+ if(is_array($name)) {
+ $this->_firstimage($name['src']);
+ if ($name['type'] == 'internalmedia') $this->_recordMediaUsage($name['src']);
+ }
+
+ $parts = explode('?', $id, 2);
+ if (count($parts) === 2) {
+ $id = $parts[0];
+ }
+
+ $default = $this->_simpleTitle($id);
+
+ // first resolve and clean up the $id
+ resolve_pageid(getNS($ID), $id, $exists);
+ list($page, $hash) = explode('#', $id, 2);
+
+ // set metadata
+ $this->meta['relation']['references'][$page] = $exists;
+ // $data = array('relation' => array('isreferencedby' => array($ID => true)));
+ // p_set_metadata($id, $data);
+
+ // add link title to summary
+ if ($this->capture){
+ $name = $this->_getLinkTitle($name, $default, $id);
+ $this->doc .= $name;
+ }
+ }
- // set metadata
- $this->meta['relation']['references'][$page] = $exists;
- // $data = array('relation' => array('isreferencedby' => array($ID => true)));
- // p_set_metadata($id, $data);
+ function externallink($url, $name = null){
+ if(is_array($name)) {
+ $this->_firstimage($name['src']);
+ if ($name['type'] == 'internalmedia') $this->_recordMediaUsage($name['src']);
+ }
- // add link title to summary
- if ($this->capture){
- $name = $this->_getLinkTitle($name, $default, $id);
- $this->doc .= $name;
+ if ($this->capture){
+ $this->doc .= $this->_getLinkTitle($name, '<' . $url . '>');
+ }
}
- }
- function externallink($url, $name = NULL){
- if(is_array($name)) {
- $this->_firstimage($name['src']);
- if ($name['type'] == 'internalmedia') $this->_recordMediaUsage($name['src']);
- }
-
- if ($this->capture){
- $this->doc .= $this->_getLinkTitle($name, '<' . $url . '>');
- }
- }
-
- function interwikilink($match, $name = NULL, $wikiName, $wikiUri){
- if(is_array($name)) {
- $this->_firstimage($name['src']);
- if ($name['type'] == 'internalmedia') $this->_recordMediaUsage($name['src']);
- }
-
- if ($this->capture){
- list($wikiUri, $hash) = explode('#', $wikiUri, 2);
- $name = $this->_getLinkTitle($name, $wikiUri);
- $this->doc .= $name;
+ function interwikilink($match, $name = null, $wikiName, $wikiUri){
+ if(is_array($name)) {
+ $this->_firstimage($name['src']);
+ if ($name['type'] == 'internalmedia') $this->_recordMediaUsage($name['src']);
+ }
+
+ if ($this->capture){
+ list($wikiUri, $hash) = explode('#', $wikiUri, 2);
+ $name = $this->_getLinkTitle($name, $wikiUri);
+ $this->doc .= $name;
+ }
}
- }
-
- function windowssharelink($url, $name = NULL){
- if(is_array($name)) {
- $this->_firstimage($name['src']);
- if ($name['type'] == 'internalmedia') $this->_recordMediaUsage($name['src']);
- }
-
- if ($this->capture){
- if ($name) $this->doc .= $name;
- else $this->doc .= '<'.$url.'>';
- }
- }
-
- function emaillink($address, $name = NULL){
- if(is_array($name)) {
- $this->_firstimage($name['src']);
- if ($name['type'] == 'internalmedia') $this->_recordMediaUsage($name['src']);
- }
-
- if ($this->capture){
- if ($name) $this->doc .= $name;
- else $this->doc .= '<'.$address.'>';
- }
- }
-
- function internalmedia($src, $title=NULL, $align=NULL, $width=NULL,
- $height=NULL, $cache=NULL, $linking=NULL){
- if ($this->capture && $title) $this->doc .= '['.$title.']';
- $this->_firstimage($src);
- $this->_recordMediaUsage($src);
- }
- function externalmedia($src, $title=NULL, $align=NULL, $width=NULL,
- $height=NULL, $cache=NULL, $linking=NULL){
- if ($this->capture && $title) $this->doc .= '['.$title.']';
- $this->_firstimage($src);
- }
-
- function rss($url,$params) {
- $this->meta['relation']['haspart'][$url] = true;
+ function windowssharelink($url, $name = null){
+ if(is_array($name)) {
+ $this->_firstimage($name['src']);
+ if ($name['type'] == 'internalmedia') $this->_recordMediaUsage($name['src']);
+ }
- $this->meta['date']['valid']['age'] =
- isset($this->meta['date']['valid']['age']) ?
- min($this->meta['date']['valid']['age'],$params['refresh']) :
- $params['refresh'];
- }
+ if ($this->capture){
+ if ($name) $this->doc .= $name;
+ else $this->doc .= '<'.$url.'>';
+ }
+ }
- //----------------------------------------------------------
- // Utils
-
- /**
- * Removes any Namespace from the given name but keeps
- * casing and special chars
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
- function _simpleTitle($name){
- global $conf;
+ function emaillink($address, $name = null){
+ if(is_array($name)) {
+ $this->_firstimage($name['src']);
+ if ($name['type'] == 'internalmedia') $this->_recordMediaUsage($name['src']);
+ }
- if(is_array($name)) return '';
-
- if($conf['useslash']){
- $nssep = '[:;/]';
- }else{
- $nssep = '[:;]';
- }
- $name = preg_replace('!.*'.$nssep.'!','',$name);
- //if there is a hash we use the anchor name only
- $name = preg_replace('!.*#!','',$name);
- return $name;
- }
-
- /**
- * Creates a linkid from a headline
- *
- * @param string $title The headline title
- * @param boolean $create Create a new unique ID?
- * @author Andreas Gohr <andi@splitbrain.org>
- */
- function _headerToLink($title, $create=false) {
- if($create){
- return sectionID($title,$this->headers);
- }else{
- $check = false;
- return sectionID($title,$check);
- }
- }
-
- /**
- * Construct a title and handle images in titles
- *
- * @author Harry Fuecks <hfuecks@gmail.com>
- */
- function _getLinkTitle($title, $default, $id=NULL) {
- global $conf;
-
- $isImage = false;
- if (is_array($title)){
- if($title['title']) return '['.$title['title'].']';
- } else if (is_null($title) || trim($title)==''){
- if (useHeading('content') && $id){
- $heading = p_get_first_heading($id,METADATA_DONT_RENDER);
- if ($heading) return $heading;
- }
- return $default;
- } else {
- return $title;
+ if ($this->capture){
+ if ($name) $this->doc .= $name;
+ else $this->doc .= '<'.$address.'>';
+ }
}
- }
- function _firstimage($src){
- if($this->firstimage) return;
- global $ID;
+ function internalmedia($src, $title=null, $align=null, $width=null,
+ $height=null, $cache=null, $linking=null){
+ if ($this->capture && $title) $this->doc .= '['.$title.']';
+ $this->_firstimage($src);
+ $this->_recordMediaUsage($src);
+ }
- list($src,$hash) = explode('#',$src,2);
- if(!media_isexternal($src)){
- resolve_mediaid(getNS($ID),$src, $exists);
+ function externalmedia($src, $title=null, $align=null, $width=null,
+ $height=null, $cache=null, $linking=null){
+ if ($this->capture && $title) $this->doc .= '['.$title.']';
+ $this->_firstimage($src);
}
- if(preg_match('/.(jpe?g|gif|png)$/i',$src)){
- $this->firstimage = $src;
+
+ function rss($url,$params) {
+ $this->meta['relation']['haspart'][$url] = true;
+
+ $this->meta['date']['valid']['age'] =
+ isset($this->meta['date']['valid']['age']) ?
+ min($this->meta['date']['valid']['age'],$params['refresh']) :
+ $params['refresh'];
}
- }
- function _recordMediaUsage($src) {
- global $ID;
+ //----------------------------------------------------------
+ // Utils
+
+ /**
+ * Removes any Namespace from the given name but keeps
+ * casing and special chars
+ *
+ * @author Andreas Gohr <andi@splitbrain.org>
+ */
+ function _simpleTitle($name){
+ global $conf;
+
+ if(is_array($name)) return '';
+
+ if($conf['useslash']){
+ $nssep = '[:;/]';
+ }else{
+ $nssep = '[:;]';
+ }
+ $name = preg_replace('!.*'.$nssep.'!','',$name);
+ //if there is a hash we use the anchor name only
+ $name = preg_replace('!.*#!','',$name);
+ return $name;
+ }
+
+ /**
+ * Creates a linkid from a headline
+ *
+ * @param string $title The headline title
+ * @param boolean $create Create a new unique ID?
+ * @author Andreas Gohr <andi@splitbrain.org>
+ */
+ function _headerToLink($title, $create=false) {
+ if($create){
+ return sectionID($title,$this->headers);
+ }else{
+ $check = false;
+ return sectionID($title,$check);
+ }
+ }
- list ($src, $hash) = explode('#', $src, 2);
- if (media_isexternal($src)) return;
- resolve_mediaid(getNS($ID), $src, $exists);
- $this->meta['relation']['media'][$src] = $exists;
- }
+ /**
+ * Construct a title and handle images in titles
+ *
+ * @author Harry Fuecks <hfuecks@gmail.com>
+ */
+ function _getLinkTitle($title, $default, $id=null) {
+ global $conf;
+
+ $isImage = false;
+ if (is_array($title)){
+ if($title['title']) return '['.$title['title'].']';
+ } else if (is_null($title) || trim($title)==''){
+ if (useHeading('content') && $id){
+ $heading = p_get_first_heading($id,METADATA_DONT_RENDER);
+ if ($heading) return $heading;
+ }
+ return $default;
+ } else {
+ return $title;
+ }
+ }
+
+ function _firstimage($src){
+ if($this->firstimage) return;
+ global $ID;
+
+ list($src,$hash) = explode('#',$src,2);
+ if(!media_isexternal($src)){
+ resolve_mediaid(getNS($ID),$src, $exists);
+ }
+ if(preg_match('/.(jpe?g|gif|png)$/i',$src)){
+ $this->firstimage = $src;
+ }
+ }
+
+ function _recordMediaUsage($src) {
+ global $ID;
+
+ list ($src, $hash) = explode('#', $src, 2);
+ if (media_isexternal($src)) return;
+ resolve_mediaid(getNS($ID), $src, $exists);
+ $this->meta['relation']['media'][$src] = $exists;
+ }
}
//Setup VIM: ex: et ts=4 :
diff --git a/inc/parser/parser.php b/inc/parser/parser.php
index 4af1cd333..e39a4daf5 100644
--- a/inc/parser/parser.php
+++ b/inc/parser/parser.php
@@ -45,9 +45,9 @@ $PARSER_MODES = array(
//-------------------------------------------------------------------
/**
-* Sets up the Lexer with modes and points it to the Handler
-* For an intro to the Lexer see: wiki:parser
-*/
+ * Sets up the Lexer with modes and points it to the Handler
+ * For an intro to the Lexer see: wiki:parser
+ */
class Doku_Parser {
var $Handler;
@@ -70,9 +70,9 @@ class Doku_Parser {
}
/**
- * PHP preserves order of associative elements
- * Mode sequence is important
- */
+ * PHP preserves order of associative elements
+ * Mode sequence is important
+ */
function addMode($name, & $Mode) {
if ( !isset($this->modes['base']) ) {
$this->addBaseMode(new Doku_Parser_Mode_base());
@@ -134,7 +134,7 @@ class Doku_Parser {
* all modes are registered
*
* @author Harry Fuecks <hfuecks@gmail.com>
-*/
+ */
class Doku_Parser_Mode {
/**
@@ -621,7 +621,7 @@ class Doku_Parser_Mode_acronym extends Doku_Parser_Mode {
var $pattern = '';
function Doku_Parser_Mode_acronym($acronyms) {
- usort($acronyms,array($this,'_compare'));
+ usort($acronyms,array($this,'_compare'));
$this->acronyms = $acronyms;
}
@@ -652,12 +652,12 @@ class Doku_Parser_Mode_acronym extends Doku_Parser_Mode {
$a_len = strlen($a);
$b_len = strlen($b);
if ($a_len > $b_len) {
- return -1;
+ return -1;
} else if ($a_len < $b_len) {
- return 1;
+ return 1;
}
- return 0;
+ return 0;
}
}
@@ -807,7 +807,6 @@ class Doku_Parser_Mode_quotes extends Doku_Parser_Mode {
"\"",$mode,'doublequoteclosing'
);
-
}
function getSort() {
diff --git a/inc/parser/renderer.php b/inc/parser/renderer.php
index 7df369478..c697e990c 100644
--- a/inc/parser/renderer.php
+++ b/inc/parser/renderer.php
@@ -74,12 +74,12 @@ class Doku_Renderer extends DokuWiki_Plugin {
*/
function nest($instructions) {
- foreach ( $instructions as $instruction ) {
- // execute the callback against ourself
- if (method_exists($this,$instruction[0])) {
- call_user_func_array(array($this, $instruction[0]), $instruction[1] ? $instruction[1] : array());
+ foreach ( $instructions as $instruction ) {
+ // execute the callback against ourself
+ if (method_exists($this,$instruction[0])) {
+ call_user_func_array(array($this, $instruction[0]), $instruction[1] ? $instruction[1] : array());
+ }
}
- }
}
// dummy closing instruction issued by Doku_Handler_Nest, normally the syntax mode should
@@ -203,42 +203,42 @@ class Doku_Renderer extends DokuWiki_Plugin {
// $link like 'SomePage'
function camelcaselink($link) {}
- function locallink($hash, $name = NULL) {}
+ function locallink($hash, $name = null) {}
// $link like 'wiki:syntax', $title could be an array (media)
- function internallink($link, $title = NULL) {}
+ function internallink($link, $title = null) {}
// $link is full URL with scheme, $title could be an array (media)
- function externallink($link, $title = NULL) {}
+ function externallink($link, $title = null) {}
function rss ($url,$params) {}
// $link is the original link - probably not much use
// $wikiName is an indentifier for the wiki
// $wikiUri is the URL fragment to append to some known URL
- function interwikilink($link, $title = NULL, $wikiName, $wikiUri) {}
+ function interwikilink($link, $title = null, $wikiName, $wikiUri) {}
// Link to file on users OS, $title could be an array (media)
- function filelink($link, $title = NULL) {}
+ function filelink($link, $title = null) {}
// Link to a Windows share, , $title could be an array (media)
- function windowssharelink($link, $title = NULL) {}
+ function windowssharelink($link, $title = null) {}
-// function email($address, $title = NULL) {}
- function emaillink($address, $name = NULL) {}
+// function email($address, $title = null) {}
+ function emaillink($address, $name = null) {}
- function internalmedia ($src, $title=NULL, $align=NULL, $width=NULL,
- $height=NULL, $cache=NULL, $linking=NULL) {}
+ function internalmedia ($src, $title=null, $align=null, $width=null,
+ $height=null, $cache=null, $linking=null) {}
- function externalmedia ($src, $title=NULL, $align=NULL, $width=NULL,
- $height=NULL, $cache=NULL, $linking=NULL) {}
+ function externalmedia ($src, $title=null, $align=null, $width=null,
+ $height=null, $cache=null, $linking=null) {}
function internalmedialink (
- $src,$title=NULL,$align=NULL,$width=NULL,$height=NULL,$cache=NULL
+ $src,$title=null,$align=null,$width=null,$height=null,$cache=null
) {}
function externalmedialink(
- $src,$title=NULL,$align=NULL,$width=NULL,$height=NULL,$cache=NULL
+ $src,$title=null,$align=null,$width=null,$height=null,$cache=null
) {}
function table_open($maxcols = null, $numrows = null, $pos = null){}
@@ -249,11 +249,11 @@ class Doku_Renderer extends DokuWiki_Plugin {
function tablerow_close(){}
- function tableheader_open($colspan = 1, $align = NULL, $rowspan = 1){}
+ function tableheader_open($colspan = 1, $align = null, $rowspan = 1){}
function tableheader_close(){}
- function tablecell_open($colspan = 1, $align = NULL, $rowspan = 1){}
+ function tablecell_open($colspan = 1, $align = null, $rowspan = 1){}
function tablecell_close(){}
diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php
index 32aa99a1b..5fca1bf45 100644
--- a/inc/parser/xhtml.php
+++ b/inc/parser/xhtml.php
@@ -33,6 +33,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
private $lastsecid = 0; // last section edit id, used by startSectionEdit
var $headers = array();
+ /** @var array a list of footnotes, list starts at 1! */
var $footnotes = array();
var $lastlevel = 0;
var $node = array(0,0,0,0,0);
@@ -59,7 +60,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
* Finish an edit section range
*
* @param $end int The byte position for the edit end; null for the rest of
- the page
+ * the page
* @author Adrian Lang <lang@cosmocode.de>
*/
public function finishSectionEdit($end = null) {
@@ -100,10 +101,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
if ( count ($this->footnotes) > 0 ) {
$this->doc .= '<div class="footnotes">'.DOKU_LF;
- $id = 0;
- foreach ( $this->footnotes as $footnote ) {
- $id++; // the number of the current footnote
-
+ foreach ( $this->footnotes as $id => $footnote ) {
// check its not a placeholder that indicates actual footnote text is elsewhere
if (substr($footnote, 0, 5) != "@@FNT") {
@@ -116,11 +114,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$alt = array_keys($this->footnotes, "@@FNT$id");
if (count($alt)) {
- foreach ($alt as $ref) {
- // set anchor and backlink for the other footnotes
- $this->doc .= ', <sup><a href="#fnt__'.($ref+1).'" id="fn__'.($ref+1).'" class="fn_bot">';
- $this->doc .= ($ref+1).')</a></sup> '.DOKU_LF;
- }
+ foreach ($alt as $ref) {
+ // set anchor and backlink for the other footnotes
+ $this->doc .= ', <sup><a href="#fnt__'.($ref).'" id="fn__'.($ref).'" class="fn_bot">';
+ $this->doc .= ($ref).')</a></sup> '.DOKU_LF;
+ }
}
// add footnote markup and close this footnote
@@ -295,6 +293,10 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
* @author Andreas Gohr
*/
function footnote_close() {
+ /** @var $fnid int takes track of seen footnotes, assures they are unique even across multiple docs FS#2841 */
+ static $fnid = 0;
+ // assign new footnote id (we start at 1)
+ $fnid++;
// recover footnote into the stack and restore old content
$footnote = $this->doc;
@@ -306,17 +308,14 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
if ($i === false) {
// its a new footnote, add it to the $footnotes array
- $id = count($this->footnotes)+1;
- $this->footnotes[count($this->footnotes)] = $footnote;
+ $this->footnotes[$fnid] = $footnote;
} else {
- // seen this one before, translate the index to an id and save a placeholder
- $i++;
- $id = count($this->footnotes)+1;
- $this->footnotes[count($this->footnotes)] = "@@FNT".($i);
+ // seen this one before, save a placeholder
+ $this->footnotes[$fnid] = "@@FNT".($i);
}
// output the footnote reference and link
- $this->doc .= '<sup><a href="#fn__'.$id.'" id="fnt__'.$id.'" class="fn_top">'.$id.')</a></sup>';
+ $this->doc .= '<sup><a href="#fn__'.$fnid.'" id="fnt__'.$fnid.'" class="fn_top">'.$fnid.')</a></sup>';
}
function listu_open() {
@@ -367,12 +366,12 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
global $conf;
if($conf['phpok']){
- ob_start();
- eval($text);
- $this->doc .= ob_get_contents();
- ob_end_clean();
+ ob_start();
+ eval($text);
+ $this->doc .= ob_get_contents();
+ ob_end_clean();
} else {
- $this->doc .= p_xhtml_cached_geshi($text, 'php', $wrapper);
+ $this->doc .= p_xhtml_cached_geshi($text, 'php', $wrapper);
}
}
@@ -392,9 +391,9 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
global $conf;
if($conf['htmlok']){
- $this->doc .= $text;
+ $this->doc .= $text;
} else {
- $this->doc .= p_xhtml_cached_geshi($text, 'html4strict', $wrapper);
+ $this->doc .= p_xhtml_cached_geshi($text, 'html4strict', $wrapper);
}
}
@@ -541,13 +540,13 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
}
/**
- */
+ */
function camelcaselink($link) {
- $this->internallink($link,$link);
+ $this->internallink($link,$link);
}
- function locallink($hash, $name = NULL){
+ function locallink($hash, $name = null){
global $ID;
$name = $this->_getLinkTitle($name, $hash, $isImage);
$hash = $this->_headerToLink($hash);
@@ -565,7 +564,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
- function internallink($id, $name = NULL, $search=NULL,$returnonly=false,$linktype='content') {
+ function internallink($id, $name = null, $search=null,$returnonly=false,$linktype='content') {
global $conf;
global $ID;
global $INFO;
@@ -644,7 +643,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
}
}
- function externallink($url, $name = NULL) {
+ function externallink($url, $name = null) {
global $conf;
$name = $this->_getLinkTitle($name, $url, $isImage);
@@ -687,7 +686,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
/**
*/
- function interwikilink($match, $name = NULL, $wikiName, $wikiUri) {
+ function interwikilink($match, $name = null, $wikiName, $wikiUri) {
global $conf;
$link = array();
@@ -721,7 +720,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
/**
*/
- function windowssharelink($url, $name = NULL) {
+ function windowssharelink($url, $name = null) {
global $conf;
global $lang;
//simple setup
@@ -737,7 +736,6 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$link['class'] = 'media';
}
-
$link['title'] = $this->_xmlEntities($url);
$url = str_replace('\\','/',$url);
$url = 'file:///'.$url;
@@ -747,7 +745,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$this->doc .= $this->_formatLink($link);
}
- function emaillink($address, $name = NULL) {
+ function emaillink($address, $name = null) {
global $conf;
//simple setup
$link = array();
@@ -782,8 +780,8 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$this->doc .= $this->_formatLink($link);
}
- function internalmedia ($src, $title=NULL, $align=NULL, $width=NULL,
- $height=NULL, $cache=NULL, $linking=NULL, $return=NULL) {
+ function internalmedia ($src, $title=null, $align=null, $width=null,
+ $height=null, $cache=null, $linking=null, $return=NULL) {
global $ID;
list($src,$hash) = explode('#',$src,2);
resolve_mediaid(getNS($ID),$src, $exists);
@@ -823,8 +821,8 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
}
}
- function externalmedia ($src, $title=NULL, $align=NULL, $width=NULL,
- $height=NULL, $cache=NULL, $linking=NULL) {
+ function externalmedia ($src, $title=null, $align=null, $width=null,
+ $height=null, $cache=null, $linking=null) {
list($src,$hash) = explode('#',$src,2);
$noLink = false;
$render = ($linking == 'linkonly') ? false : true;
@@ -880,7 +878,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$mod = 1;
$start = 0;
$end = $feed->get_item_quantity();
- $end = ($end > $params['max']) ? $params['max'] : $end;;
+ $end = ($end > $params['max']) ? $params['max'] : $end;
}
$this->doc .= '<ul class="rss">';
@@ -964,7 +962,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$this->doc .= DOKU_LF . DOKU_TAB . '</tr>' . DOKU_LF;
}
- function tableheader_open($colspan = 1, $align = NULL, $rowspan = 1){
+ function tableheader_open($colspan = 1, $align = null, $rowspan = 1){
$class = 'class="col' . $this->_counter['cell_counter']++;
if ( !is_null($align) ) {
$class .= ' '.$align.'align';
@@ -985,7 +983,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$this->doc .= '</th>';
}
- function tablecell_open($colspan = 1, $align = NULL, $rowspan = 1){
+ function tablecell_open($colspan = 1, $align = null, $rowspan = 1){
$class = 'class="col' . $this->_counter['cell_counter']++;
if ( !is_null($align) ) {
$class .= ' '.$align.'align';
@@ -1051,8 +1049,8 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
- function _media ($src, $title=NULL, $align=NULL, $width=NULL,
- $height=NULL, $cache=NULL, $render = true) {
+ function _media ($src, $title=null, $align=null, $width=null,
+ $height=null, $cache=null, $render = true) {
$ret = '';
@@ -1196,7 +1194,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
*
* @author Harry Fuecks <hfuecks@gmail.com>
*/
- function _getLinkTitle($title, $default, & $isImage, $id=NULL, $linktype='content') {
+ function _getLinkTitle($title, $default, & $isImage, $id=null, $linktype='content') {
global $conf;
$isImage = false;
@@ -1255,8 +1253,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
* @access protected
* @return array
*/
- function _getMediaLinkConf($src, $title, $align, $width, $height, $cache, $render)
- {
+ function _getMediaLinkConf($src, $title, $align, $width, $height, $cache, $render) {
global $conf;
$link = array();
diff --git a/inc/parserutils.php b/inc/parserutils.php
index 56161af44..b67daaabb 100644
--- a/inc/parserutils.php
+++ b/inc/parserutils.php
@@ -625,7 +625,8 @@ function & p_get_renderer($mode) {
$rclass = "Doku_Renderer_$rname";
if( class_exists($rclass) ) {
- return new $rclass();
+ $Renderer = new $rclass();
+ return $Renderer;
}
// try default renderer first:
@@ -641,10 +642,7 @@ function & p_get_renderer($mode) {
$Renderer = new $rclass();
}else{
// Maybe a plugin/component is available?
- list($plugin, $component) = $plugin_controller->_splitName($rname);
- if (!$plugin_controller->isdisabled($plugin)){
- $Renderer =& $plugin_controller->load('renderer',$rname);
- }
+ $Renderer = $plugin_controller->load('renderer',$rname);
if(!isset($Renderer) || is_null($Renderer)){
msg("No renderer '$rname' found for mode '$mode'",-1);
diff --git a/inc/plugin.php b/inc/plugin.php
index 422b82534..dccd37bd9 100644
--- a/inc/plugin.php
+++ b/inc/plugin.php
@@ -97,7 +97,7 @@ class DokuWiki_Plugin {
function localFN($id) {
global $conf;
$plugin = $this->getPluginName();
- $file = DOKU_CONF.'/plugin_lang/'.$plugin.'/'.$conf['lang'].'/'.$id.'.txt';
+ $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)){
diff --git a/inc/plugincontroller.class.php b/inc/plugincontroller.class.php
index 0b4041a77..d80cd4c9e 100644
--- a/inc/plugincontroller.class.php
+++ b/inc/plugincontroller.class.php
@@ -11,15 +11,15 @@ if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
class Doku_Plugin_Controller {
- var $list_bytype = array();
- var $tmp_plugins = array();
- var $plugin_cascade = array('default'=>array(),'local'=>array(),'protected'=>array());
- var $last_local_config_file = '';
+ protected $list_bytype = array();
+ protected $tmp_plugins = array();
+ protected $plugin_cascade = array('default'=>array(),'local'=>array(),'protected'=>array());
+ protected $last_local_config_file = '';
/**
* Populates the master list of plugins
*/
- function __construct() {
+ public function __construct() {
$this->loadConfig();
$this->_populateMasterList();
}
@@ -34,11 +34,13 @@ class Doku_Plugin_Controller {
* false to only return enabled plugins,
* true to return both enabled and disabled plugins
*
- * @return array of plugin names
+ * @return array of
+ * - plugin names when $type = ''
+ * - or plugin component names when a $type is given
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
- function getList($type='',$all=false){
+ public function getList($type='',$all=false){
// request the complete list
if (!$type) {
@@ -64,9 +66,9 @@ class Doku_Plugin_Controller {
* @param $name string name of the plugin to load
* @param $new bool true to return a new instance of the plugin, false to use an already loaded instance
* @param $disabled bool true to load even disabled plugins
- * @return objectreference the plugin object or null on failure
+ * @return DokuWiki_Plugin|DokuWiki_Syntax_Plugin|null the plugin object or null on failure
*/
- function load($type,$name,$new=false,$disabled=false){
+ public function load($type,$name,$new=false,$disabled=false){
//we keep all loaded plugins available in global scope for reuse
global $DOKU_PLUGINS;
@@ -108,27 +110,62 @@ class Doku_Plugin_Controller {
return $DOKU_PLUGINS[$type][$name];
}
- function isdisabled($plugin) {
+ /**
+ * Whether plugin is disabled
+ *
+ * @param string $plugin name of plugin
+ * @return bool; true disabled, false enabled
+ */
+ public function isdisabled($plugin) {
return empty($this->tmp_plugins[$plugin]);
}
- function disable($plugin) {
+ /**
+ * Disable the plugin
+ *
+ * @param string $plugin name of plugin
+ * @return bool; true saving succeed, false saving failed
+ */
+ public function disable($plugin) {
if(array_key_exists($plugin,$this->plugin_cascade['protected'])) return false;
$this->tmp_plugins[$plugin] = 0;
return $this->saveList();
}
- function enable($plugin) {
+ /**
+ * Enable the plugin
+ *
+ * @param string $plugin name of plugin
+ * @return bool; true saving succeed, false saving failed
+ */
+ public function enable($plugin) {
if(array_key_exists($plugin,$this->plugin_cascade['protected'])) return false;
$this->tmp_plugins[$plugin] = 1;
return $this->saveList();
}
- function get_directory($plugin) {
+ /**
+ * Returns directory name of plugin
+ *
+ * @param string $plugin name of plugin
+ * @return string name of directory
+ */
+ public function get_directory($plugin) {
return $plugin;
}
+ /**
+ * Returns cascade of the config files
+ *
+ * @return array with arrays of plugin configs
+ */
+ public function getCascade() {
+ return $this->plugin_cascade;
+ }
+
protected function _populateMasterList() {
+ global $conf;
+
if ($dh = @opendir(DOKU_PLUGIN)) {
$all_plugins = array();
while (false !== ($plugin = readdir($dh))) {
@@ -167,6 +204,13 @@ class Doku_Plugin_Controller {
}
}
+ /**
+ * Includes the plugin config $files
+ * and returns the entries of the $plugins array set in these files
+ *
+ * @param array $files list of files to include, latter overrides previous
+ * @return array with entries of the $plugins arrays of the included files
+ */
protected function checkRequire($files) {
$plugins = array();
foreach($files as $file) {
@@ -177,14 +221,15 @@ class Doku_Plugin_Controller {
return $plugins;
}
- function getCascade() {
- return $this->plugin_cascade;
- }
-
/**
* Save the current list of plugins
+ *
+ * @param bool $forceSave;
+ * false to save only when config changed
+ * true to always save
+ * @return bool; true saving succeed, false saving failed
*/
- function saveList($forceSave = false) {
+ protected function saveList($forceSave = false) {
global $conf;
if (empty($this->tmp_plugins)) return false;
@@ -204,7 +249,7 @@ class Doku_Plugin_Controller {
$backup = $file.'.bak';
if (@file_exists($backup)) @unlink($backup);
if (!@copy($file,$backup)) return false;
- if ($conf['fperm']) chmod($backup, $conf['fperm']);
+ if (!empty($conf['fperm'])) chmod($backup, $conf['fperm']);
}
//check if can open for writing, else restore
return io_saveFile($file,$out);
@@ -214,9 +259,10 @@ class Doku_Plugin_Controller {
/**
* Rebuild the set of local plugins
+ *
* @return array array of plugins to be saved in end($config_cascade['plugins']['local'])
*/
- function rebuildLocal() {
+ protected function rebuildLocal() {
//assign to local variable to avoid overwriting
$backup = $this->tmp_plugins;
//Can't do anything about protected one so rule them out completely
@@ -236,7 +282,7 @@ class Doku_Plugin_Controller {
* Build the list of plugins and cascade
*
*/
- function loadConfig() {
+ protected function loadConfig() {
global $config_cascade;
foreach(array('default','protected') as $type) {
if(array_key_exists($type,$config_cascade['plugins']))
@@ -251,7 +297,18 @@ class Doku_Plugin_Controller {
$this->tmp_plugins = array_merge($this->plugin_cascade['default'],$this->plugin_cascade['local'],$this->plugin_cascade['protected']);
}
- function _getListByType($type, $enabled) {
+ /**
+ * Returns a list of available plugin components of given type
+ *
+ * @param string $type, plugin_type name;
+ * the type of plugin to return,
+ * @param bool $enabled;
+ * true to return enabled plugins,
+ * false to return disabled plugins
+ *
+ * @return array of plugin components of requested type
+ */
+ protected function _getListByType($type, $enabled) {
$master_list = $enabled ? array_keys(array_filter($this->tmp_plugins)) : array_keys(array_filter($this->tmp_plugins,array($this,'negate')));
$plugins = array();
@@ -276,14 +333,29 @@ class Doku_Plugin_Controller {
return $plugins;
}
- function _splitName($name) {
+ /**
+ * Split name in a plugin name and a component name
+ *
+ * @param string $name
+ * @return array with
+ * - plugin name
+ * - and component name when available, otherwise empty string
+ */
+ protected function _splitName($name) {
if (array_search($name, array_keys($this->tmp_plugins)) === false) {
return explode('_',$name,2);
}
return array($name,'');
}
- function negate($input) {
+
+ /**
+ * Returns inverse boolean value of the input
+ *
+ * @param mixed $input
+ * @return bool inversed boolean value of input
+ */
+ protected function negate($input) {
return !(bool) $input;
}
}
diff --git a/inc/pluginutils.php b/inc/pluginutils.php
index 7c37d4f7f..894bbefb6 100644
--- a/inc/pluginutils.php
+++ b/inc/pluginutils.php
@@ -14,31 +14,92 @@ if(!defined('DOKU_PLUGIN_NAME_REGEX')) define('DOKU_PLUGIN_NAME_REGEX', '[a-zA-Z
/**
* Original plugin functions, remain for backwards compatibility
*/
+
+/**
+ * Return list of available plugins
+ *
+ * @param string $type type of plugins; empty string for all
+ * @param bool $all; true to retrieve all, false to retrieve only enabled plugins
+ * @return array with plugin names or plugin component names
+ */
function plugin_list($type='',$all=false) {
+ /** @var $plugin_controller Doku_Plugin_Controller */
global $plugin_controller;
return $plugin_controller->getList($type,$all);
}
+
+/**
+ * Returns plugin object
+ * Returns only new instances of a plugin when $new is true or if plugin is not Singleton,
+ * otherwise an already loaded instance.
+ *
+ * @param $type string type of plugin to load
+ * @param $name string name of the plugin to load
+ * @param $new bool true to return a new instance of the plugin, false to use an already loaded instance
+ * @param $disabled bool true to load even disabled plugins
+ * @return DokuWiki_Plugin|DokuWiki_Syntax_Plugin|null the plugin object or null on failure
+ */
function plugin_load($type,$name,$new=false,$disabled=false) {
+ /** @var $plugin_controller Doku_Plugin_Controller */
global $plugin_controller;
return $plugin_controller->load($type,$name,$new,$disabled);
}
+
+/**
+ * Whether plugin is disabled
+ *
+ * @param string $plugin name of plugin
+ * @return bool; true disabled, false enabled
+ */
function plugin_isdisabled($plugin) {
+ /** @var $plugin_controller Doku_Plugin_Controller */
global $plugin_controller;
return $plugin_controller->isdisabled($plugin);
}
+
+/**
+ * Enable the plugin
+ *
+ * @param string $plugin name of plugin
+ * @return bool; true saving succeed, false saving failed
+ */
function plugin_enable($plugin) {
+ /** @var $plugin_controller Doku_Plugin_Controller */
global $plugin_controller;
return $plugin_controller->enable($plugin);
}
+
+/**
+ * Disable the plugin
+ *
+ * @param string $plugin name of plugin
+ * @return bool; true saving succeed, false saving failed
+ */
function plugin_disable($plugin) {
+ /** @var $plugin_controller Doku_Plugin_Controller */
global $plugin_controller;
return $plugin_controller->disable($plugin);
}
+
+/**
+ * Returns directory name of plugin
+ *
+ * @param string $plugin name of plugin
+ * @return string name of directory
+ */
function plugin_directory($plugin) {
+ /** @var $plugin_controller Doku_Plugin_Controller */
global $plugin_controller;
return $plugin_controller->get_directory($plugin);
}
+
+/**
+ * Returns cascade of the config files
+ *
+ * @return array with arrays of plugin configs
+ */
function plugin_getcascade() {
+ /** @var $plugin_controller Doku_Plugin_Controller */
global $plugin_controller;
return $plugin_controller->getCascade();
}
diff --git a/inc/search.php b/inc/search.php
index 884aa7b23..c2d31b959 100644
--- a/inc/search.php
+++ b/inc/search.php
@@ -9,14 +9,15 @@
if(!defined('DOKU_INC')) die('meh.');
/**
- * recurse direcory
+ * Recurse directory
*
* This function recurses into a given base directory
* and calls the supplied function for each file and directory
*
- * @param array ref $data The results of the search are stored here
+ * @param array &$data The results of the search are stored here
* @param string $base Where to start the search
* @param callback $func Callback (function name or array with object,method)
+ * @param array $opts option array will be given to the Callback
* @param string $dir Current directory beyond $base
* @param int $lvl Recursion Level
* @param mixed $sort 'natural' to use natural order sorting (default); 'date' to sort by filemtime; leave empty to skip sorting.
@@ -68,12 +69,12 @@ function search(&$data,$base,$func,$opts,$dir='',$lvl=1,$sort='natural'){
* decide if this directory should be traversed (true) or not (false)
* The function has to accept the following parameters:
*
- * &$data - Reference to the result data structure
- * $base - Base usually $conf['datadir']
- * $file - current file or directory relative to $base
- * $type - Type either 'd' for directory or 'f' for file
- * $lvl - Current recursion depht
- * $opts - option array as given to search()
+ * array &$data - Reference to the result data structure
+ * string $base - Base usually $conf['datadir']
+ * string $file - current file or directory relative to $base
+ * string $type - Type either 'd' for directory or 'f' for file
+ * int $lvl - Current recursion depht
+ * array $opts - option array as given to search()
*
* return values for files are ignored
*
@@ -110,7 +111,7 @@ function search_index(&$data,$base,$file,$type,$lvl,$opts){
$opts = array(
'pagesonly' => true,
'listdirs' => true,
- 'listfiles' => !$opts['nofiles'],
+ 'listfiles' => empty($opts['nofiles']),
'sneakyacl' => $conf['sneaky_index'],
// Hacky, should rather use recmatch
'depth' => preg_match('#^'.preg_quote($file, '#').'(/|$)#','/'.$opts['ns']) ? 0 : -1
@@ -334,6 +335,15 @@ function pathID($path,$keeptxt=false){
* showhidden bool show hidden files too
* firsthead bool return first heading for pages
*
+ * @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 if this directory should be traversed (true) or not (false)
+ * return value is ignored for files
+ *
* @author Andreas Gohr <gohr@cosmocode.de>
*/
function search_universal(&$data,$base,$file,$type,$lvl,$opts){
@@ -367,7 +377,7 @@ function search_universal(&$data,$base,$file,$type,$lvl,$opts){
}
// check ACL
- if(!$opts['skipacl']){
+ if(empty($opts['skipacl'])){
if($type == 'd'){
$item['perm'] = auth_quickaclcheck($item['id'].':*');
}else{
@@ -379,17 +389,17 @@ function search_universal(&$data,$base,$file,$type,$lvl,$opts){
// are we done here maybe?
if($type == 'd'){
- if(!$opts['listdirs']) return $return;
- if(!$opts['skipacl'] && $opts['sneakyacl'] && $item['perm'] < AUTH_READ) return false; //neither list nor recurse
- if($opts['dirmatch'] && !preg_match('/'.$opts['dirmatch'].'/',$file)) return $return;
- if($opts['nsmatch'] && !preg_match('/'.$opts['nsmatch'].'/',$item['ns'])) return $return;
+ if(empty($opts['listdirs'])) return $return;
+ if(empty($opts['skipacl']) && !empty($opts['sneakyacl']) && $item['perm'] < AUTH_READ) return false; //neither list nor recurse
+ if(!empty($opts['dirmatch']) && !preg_match('/'.$opts['dirmatch'].'/',$file)) return $return;
+ if(!empty($opts['nsmatch']) && !preg_match('/'.$opts['nsmatch'].'/',$item['ns'])) return $return;
}else{
- if(!$opts['listfiles']) return $return;
- if(!$opts['skipacl'] && $item['perm'] < AUTH_READ) return $return;
- if($opts['pagesonly'] && (substr($file,-4) != '.txt')) return $return;
- if(!$opts['showhidden'] && isHiddenPage($item['id'])) return $return;
- if($opts['filematch'] && !preg_match('/'.$opts['filematch'].'/',$file)) return $return;
- if($opts['idmatch'] && !preg_match('/'.$opts['idmatch'].'/',$item['id'])) return $return;
+ if(empty($opts['listfiles'])) return $return;
+ if(empty($opts['skipacl']) && $item['perm'] < AUTH_READ) return $return;
+ if(!empty($opts['pagesonly']) && (substr($file,-4) != '.txt')) return $return;
+ if(empty($opts['showhidden']) && isHiddenPage($item['id'])) return $return;
+ if(!empty($opts['filematch']) && !preg_match('/'.$opts['filematch'].'/',$file)) return $return;
+ if(!empty($opts['idmatch']) && !preg_match('/'.$opts['idmatch'].'/',$item['id'])) return $return;
}
// still here? prepare the item
diff --git a/inc/subscription.php b/inc/subscription.php
index 4248e4b11..ddf2f39e6 100644
--- a/inc/subscription.php
+++ b/inc/subscription.php
@@ -62,7 +62,7 @@ class Subscription {
return false;
}
- if($conf['dperm']) chmod($lock, $conf['dperm']);
+ if(!empty($conf['dperm'])) chmod($lock, $conf['dperm']);
return true;
}
@@ -617,7 +617,7 @@ class Subscription {
* @param string $rev The revision of the page, set to the current revision of the page $id if not set
* @return string
*/
- protected function getMessageID($id, $rev = NULL) {
+ protected function getMessageID($id, $rev = null) {
static $listid = null;
if (is_null($listid)) {
$server = parse_url(DOKU_URL, PHP_URL_HOST);
@@ -694,4 +694,4 @@ class Subscription {
function subscription_addresslist(&$data) {
$sub = new Subscription();
$sub->notifyaddresses($data);
-} \ No newline at end of file
+}
diff --git a/inc/template.php b/inc/template.php
index ea73b01b6..41f398016 100644
--- a/inc/template.php
+++ b/inc/template.php
@@ -54,7 +54,7 @@ function tpl_incdir($tpl='') {
function tpl_basedir($tpl='') {
global $conf;
if(!$tpl) $tpl = $conf['template'];
- return DOKU_BASE.'lib/tpl/'.$conf['template'].'/';
+ return DOKU_BASE.'lib/tpl/'.$tpl.'/';
}
/**
@@ -223,7 +223,7 @@ function tpl_toc($return = false) {
if(in_array($class, $pluginlist)) {
// attempt to load the plugin
/** @var $plugin DokuWiki_Admin_Plugin */
- $plugin =& plugin_load('admin', $class);
+ $plugin = plugin_load('admin', $class);
}
}
if( ($plugin !== null) && (!$plugin->forAdminOnly() || $INFO['isadmin']) ) {
@@ -257,7 +257,7 @@ function tpl_admin() {
if(in_array($class, $pluginlist)) {
// attempt to load the plugin
/** @var $plugin DokuWiki_Admin_Plugin */
- $plugin =& plugin_load('admin', $class);
+ $plugin = plugin_load('admin', $class);
}
}
@@ -290,6 +290,7 @@ function tpl_metaheaders($alt = true) {
global $QUERY;
global $lang;
global $conf;
+ global $updateVersion;
// prepare the head array
$head = array();
@@ -317,11 +318,11 @@ function tpl_metaheaders($alt = true) {
if($alt) {
$head['link'][] = array(
'rel' => 'alternate', 'type'=> 'application/rss+xml',
- 'title'=> 'Recent Changes', 'href'=> DOKU_BASE.'feed.php'
+ 'title'=> $lang['btn_recent'], 'href'=> DOKU_BASE.'feed.php'
);
$head['link'][] = array(
'rel' => 'alternate', 'type'=> 'application/rss+xml',
- 'title'=> 'Current Namespace',
+ 'title'=> $lang['currentns'],
'href' => DOKU_BASE.'feed.php?mode=list&ns='.$INFO['namespace']
);
if(($ACT == 'show' || $ACT == 'search') && $INFO['writable']) {
@@ -335,21 +336,21 @@ function tpl_metaheaders($alt = true) {
if($ACT == 'search') {
$head['link'][] = array(
'rel' => 'alternate', 'type'=> 'application/rss+xml',
- 'title'=> 'Search Result',
+ 'title'=> $lang['searchresult'],
'href' => DOKU_BASE.'feed.php?mode=search&q='.$QUERY
);
}
if(actionOK('export_xhtml')) {
$head['link'][] = array(
- 'rel' => 'alternate', 'type'=> 'text/html', 'title'=> 'Plain HTML',
+ 'rel' => 'alternate', 'type'=> 'text/html', 'title'=> $lang['plainhtml'],
'href'=> exportlink($ID, 'xhtml', '', false, '&')
);
}
if(actionOK('export_raw')) {
$head['link'][] = array(
- 'rel' => 'alternate', 'type'=> 'text/plain', 'title'=> 'Wiki Markup',
+ 'rel' => 'alternate', 'type'=> 'text/plain', 'title'=> $lang['wikimarkup'],
'href'=> exportlink($ID, 'raw', '', false, '&')
);
}
@@ -400,7 +401,7 @@ function tpl_metaheaders($alt = true) {
// make $INFO and other vars available to JavaScripts
$json = new JSON();
$script = "var NS='".$INFO['namespace']."';";
- if($conf['useacl'] && $_SERVER['REMOTE_USER']) {
+ if($conf['useacl'] && !empty($_SERVER['REMOTE_USER'])) {
$script .= "var SIG='".toolbar_signature()."';";
}
$script .= 'var JSINFO = '.$json->encode($JSINFO).';';
@@ -605,6 +606,7 @@ function tpl_get_action($type) {
// check disabled actions and fix the badly named ones
if($type == 'history') $type = 'revisions';
+ if ($type == 'subscription') $type = 'subscribe';
if(!actionOK($type)) return false;
$accesskey = null;
@@ -679,12 +681,12 @@ function tpl_get_action($type) {
}
break;
case 'register':
- if($_SERVER['REMOTE_USER']) {
+ if(!empty($_SERVER['REMOTE_USER'])) {
return false;
}
break;
case 'resendpwd':
- if($_SERVER['REMOTE_USER']) {
+ if(!empty($_SERVER['REMOTE_USER'])) {
return false;
}
break;
@@ -700,10 +702,6 @@ function tpl_get_action($type) {
$params['rev'] = $REV;
$params['sectok'] = getSecurityToken();
break;
- /** @noinspection PhpMissingBreakStatementInspection */
- case 'subscription':
- $type = 'subscribe';
- $params['do'] = 'subscribe';
case 'subscribe':
if(!$_SERVER['REMOTE_USER']) {
return false;
@@ -1233,7 +1231,7 @@ function tpl_localeFN($id) {
* @param bool $fromajax - set true when calling this function via ajax
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function tpl_mediaContent($fromajax = false) {
+function tpl_mediaContent($fromajax = false, $sort='natural') {
global $IMG;
global $AUTH;
global $INUSE;
@@ -1263,7 +1261,7 @@ function tpl_mediaContent($fromajax = false) {
if($do == 'filesinuse') {
media_filesinuse($INUSE, $IMG);
} elseif($do == 'filelist') {
- media_filelist($NS, $AUTH, $JUMPTO);
+ media_filelist($NS, $AUTH, $JUMPTO,false,$sort);
} elseif($do == 'searchlist') {
media_searchlist($INPUT->str('q'), $NS, $AUTH);
} else {
@@ -1411,7 +1409,7 @@ function tpl_actiondropdown($empty = '', $button = '&gt;') {
echo '<div class="no">';
echo '<input type="hidden" name="id" value="'.$ID.'" />';
if($REV) echo '<input type="hidden" name="rev" value="'.$REV.'" />';
- if ($_SERVER['REMOTE_USER']) {
+ if (!empty($_SERVER['REMOTE_USER'])) {
echo '<input type="hidden" name="sectok" value="'.getSecurityToken().'" />';
}
@@ -1793,7 +1791,7 @@ function tpl_classes() {
'dokuwiki',
'mode_'.$ACT,
'tpl_'.$conf['template'],
- $_SERVER['REMOTE_USER'] ? 'loggedIn' : '',
+ !empty($_SERVER['REMOTE_USER']) ? 'loggedIn' : '',
$INFO['exists'] ? '' : 'notFound',
($ID == $conf['start']) ? 'home' : '',
);
diff --git a/install.php b/install.php
index 9f1ad0dc1..82a47b037 100644
--- a/install.php
+++ b/install.php
@@ -56,6 +56,7 @@ $dokuwiki_hash = array(
'2012-01-25' => '72c083c73608fc43c586901fd5dabb74',
'2012-09-10' => 'eb0b3fc90056fbc12bac6f49f7764df3',
'2013-05-10' => '7b62b75245f57f122d3e0f8ed7989623',
+ '2013-10-28' => '263c76af309fbf083867c18a34ff5214',
);
diff --git a/lib/exe/ajax.php b/lib/exe/ajax.php
index 9769503a7..6e2011cd9 100644
--- a/lib/exe/ajax.php
+++ b/lib/exe/ajax.php
@@ -219,10 +219,11 @@ function ajax_medialist(){
global $INPUT;
$NS = cleanID($INPUT->post->str('ns'));
+ $sort = $INPUT->post->bool('recent') ? 'date' : 'natural';
if ($INPUT->post->str('do') == 'media') {
tpl_mediaFileList();
} else {
- tpl_mediaContent(true);
+ tpl_mediaContent(true, $sort);
}
}
diff --git a/lib/exe/css.php b/lib/exe/css.php
index 9e1e22e1a..6dfdf06e8 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);
@@ -460,29 +457,6 @@ function css_pluginstyles($mediatype='screen'){
}
/**
- * Move all @import statements in a combined stylesheet to the top so they
- * aren't ignored by the browser.
- *
- * @author Gabriel Birke <birke@d-scribe.de>
- */
-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
*
* @author Andreas Gohr <andi@splitbrain.org>
@@ -499,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('/(?<![\w\-])((?:margin|padding|border|border-(?:width|radius)):)([\w\.]+)( \2)+(?=[;\}]| !)/', '$1$2', $css); // "1em 1em 1em 1em" to "1em"
+ $css = preg_replace('/(?<![\w\-])((?:margin|padding|border|border-(?:width)):)([\w\.]+) ([\w\.]+) \2 \3(?=[;\}]| !)/', '$1$2 $3', $css); // "1em 2em 1em 2em" to "1em 2em"
+
// shorten colors
- $css = preg_replace("/#([0-9a-fA-F]{1})\\1([0-9a-fA-F]{1})\\2([0-9a-fA-F]{1})\\3/", "#\\1\\2\\3",$css);
+ $css = preg_replace("/#([0-9a-fA-F]{1})\\1([0-9a-fA-F]{1})\\2([0-9a-fA-F]{1})\\3(?=[^\{]*[;\}])/", "#\\1\\2\\3", $css);
return $css;
}
diff --git a/lib/exe/detail.php b/lib/exe/detail.php
index 7008b126f..e3c81d877 100644
--- a/lib/exe/detail.php
+++ b/lib/exe/detail.php
@@ -9,10 +9,12 @@ $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());
-//close session
-session_write_close();
+$tmp = array();
+trigger_event('DETAIL_STARTED', $tmp);
+
+//close session
+session_write_close();
if($conf['allowdebug'] && $INPUT->has('debug')){
print '<pre>';
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<count($lines); $i++) {
- $log = parseChangelogLine($lines[$i]);
- if ($log === false) continue; // discard junk
- if ($log['date'] < $trim_time) {
- $old_lines[$log['date'].".$i"] = $lines[$i]; // keep old lines for now (append .$i to prevent key collisions)
- } else {
- $out_lines[$log['date'].".$i"] = $lines[$i]; // definitely keep these lines
- }
+ $log = parseChangelogLine($lines[$i]);
+ if ($log === false) continue; // discard junk
+ if ($log['date'] < $trim_time) {
+ $old_lines[$log['date'].".$i"] = $lines[$i]; // keep old lines for now (append .$i to prevent key collisions)
+ } else {
+ $out_lines[$log['date'].".$i"] = $lines[$i]; // definitely keep these lines
+ }
}
if (count($lines)==count($out_lines)) {
diff --git a/lib/exe/js.php b/lib/exe/js.php
index 4b4b598de..040b8874d 100644
--- a/lib/exe/js.php
+++ b/lib/exe/js.php
@@ -86,15 +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_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)) {
@@ -194,8 +199,7 @@ function js_pluginscripts(){
*
* @author Gabriel Birke <birke@d-scribe.de>
*/
-function js_pluginstrings()
-{
+function js_pluginstrings() {
global $conf;
$pluginstrings = array();
$plugins = plugin_list();
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
diff --git a/lib/images/interwiki/meatball.gif b/lib/images/interwiki/meatball.gif
deleted file mode 100644
index 8a4cbdbfc..000000000
--- a/lib/images/interwiki/meatball.gif
+++ /dev/null
Binary files differ
diff --git a/lib/images/interwiki/wiki.gif b/lib/images/interwiki/wiki.gif
deleted file mode 100644
index df241d6bb..000000000
--- a/lib/images/interwiki/wiki.gif
+++ /dev/null
Binary files differ
diff --git a/lib/plugins/acl/action.php b/lib/plugins/acl/action.php
new file mode 100644
index 000000000..a7226f598
--- /dev/null
+++ b/lib/plugins/acl/action.php
@@ -0,0 +1,88 @@
+<?php
+/**
+ * AJAX call handler for ACL plugin
+ *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ * @author Andreas Gohr <andi@splitbrain.org>
+ */
+
+// 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();
+
+ global $ID;
+ global $INPUT;
+
+ if(!auth_isadmin()) {
+ echo 'for admins only';
+ return;
+ }
+ if(!checkSecurityToken()) {
+ echo 'CRSF Attack';
+ return;
+ }
+
+ $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') {
+
+ $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')
+ );
+ }
+ }
+}
diff --git a/lib/plugins/acl/admin.php b/lib/plugins/acl/admin.php
index 50377da81..b24981d91 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 '<legend>'.$this->getLang('acl_mod').'</legend>';
}
-
echo $this->_html_checkboxes($current,empty($this->ns),'acl');
if(is_null($current)){
@@ -556,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]);
@@ -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;
@@ -704,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);
@@ -775,7 +772,6 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin {
$inlist = true;
}
-
echo '<select name="acl_t" class="edit">'.NL;
echo ' <option value="__g__" class="aclgroup"'.$gsel.'>'.$this->getLang('acl_group').':</option>'.NL;
echo ' <option value="__u__" class="acluser"'.$usel.'>'.$this->getLang('acl_user').':</option>'.NL;
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 @@
-<?php
-/**
- * AJAX call handler for ACL plugin
- *
- * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-
-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'));
-}
-
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 @@
<?php
+
/**
- * Arabic language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Mostafa Hussein <mostafa@gmail.com>
* @author Yaman Hokan <always.smile.yh@hotmail.com>
* @author Usama Akkad <uahello@gmail.com>
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 @@
<?php
+
/**
- * Czech language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Bohumir Zamecnik <bohumir@zamecnik.org>
* @author Zbynek Krivka <zbynek.krivka@seznam.cz>
* @author tomas@valenta.cz
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 @@
<?php
+
/**
- * Danish language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author koeppe <koeppe@kazur.dk>
* @author Jon Bendtsen <bendtsen@diku.dk>
* @author Lars Næsbye Christensen <larsnaesbye@stud.ku.dk>
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 @@
<?php
+
/**
- * German (informal) language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Alexander Fischer <tbanus@os-forge.net>
* @author Juergen Schwarzer <jschwarzer@freenet.de>
* @author Marcel Metz <marcel_metz@gmx.de>
diff --git a/lib/plugins/acl/lang/de/lang.php b/lib/plugins/acl/lang/de/lang.php
index 5f3e51a32..77de4b097 100644
--- a/lib/plugins/acl/lang/de/lang.php
+++ b/lib/plugins/acl/lang/de/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * german language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Andreas Gohr <andi@splitbrain.org>
* @author Christof <gagi@fin.de>
* @author Anika Henke <anika@selfthinker.org>
diff --git a/lib/plugins/acl/lang/el/lang.php b/lib/plugins/acl/lang/el/lang.php
index 516d7bdf5..dc4a9f034 100644
--- a/lib/plugins/acl/lang/el/lang.php
+++ b/lib/plugins/acl/lang/el/lang.php
@@ -1,11 +1,8 @@
<?php
+
/**
- * Greek language file
- *
- * Based on DokuWiki Version rc2007-05-24 english language file
- * Original english language file contents included for reference
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Andreas Gohr <andi@splitbrain.org>
* @author Anika Henke <anika@selfthinker.org>
* @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
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 @@
<?php
+
/**
- * Esperanto language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Felipe Castro <fefcas@uol.com.br>
* @author Felipo Kastro <fefcas@gmail.com>
* @author Felipe Castro <fefcas@gmail.com>
diff --git a/lib/plugins/acl/lang/es/lang.php b/lib/plugins/acl/lang/es/lang.php
index b60033e0f..cf503d4d1 100644
--- a/lib/plugins/acl/lang/es/lang.php
+++ b/lib/plugins/acl/lang/es/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Spanish language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Miguel Pagano <miguel.pagano@gmail.com>
* @author Oscar M. Lage <r0sk10@gmail.com>
* @author Gabriel Castillo <gch@pumas.ii.unam.mx>
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 @@
<?php
+
/**
- * Persian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author behrad eslamifar <behrad_es@yahoo.com)
* @author Mohsen Firoozmandan <info@mambolearn.com>
* @author omidmr@gmail.com
diff --git a/lib/plugins/acl/lang/fr/lang.php b/lib/plugins/acl/lang/fr/lang.php
index 538dd14d3..dc17cf79e 100644
--- a/lib/plugins/acl/lang/fr/lang.php
+++ b/lib/plugins/acl/lang/fr/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * french language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Sébastien Bauer <sebastien.bauer@advalvas.be>
* @author Antoine Fixary <antoine.fixary@freesbee.fr>
* @author cumulus <pta-n56@myamail.com>
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 @@
<?php
+
/**
- * hebrew language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author DoK <kamberd@yahoo.com>
* @author Dotan Kamber <kamberd@yahoo.com>
* @author Moshe Kaplan <mokplan@gmail.com>
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 @@
<?php
+
/**
- * Hungarian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Sandor TIHANYI <stihanyi+dw@gmail.com>
* @author Siaynoq Mage <siaynoqmage@gmail.com>
* @author schilling.janos@gmail.com
diff --git a/lib/plugins/acl/lang/it/lang.php b/lib/plugins/acl/lang/it/lang.php
index 07e86697d..ba2d0fd32 100644
--- a/lib/plugins/acl/lang/it/lang.php
+++ b/lib/plugins/acl/lang/it/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Italian language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Giorgio Vecchiocattivi <giorgio@vecchio.it>
* @author Roberto Bolli <http://www.rbnet.it/>
* @author Pietro Battiston toobaz@email.it
diff --git a/lib/plugins/acl/lang/ja/lang.php b/lib/plugins/acl/lang/ja/lang.php
index 0dd4d09c6..61fc1ea86 100644
--- a/lib/plugins/acl/lang/ja/lang.php
+++ b/lib/plugins/acl/lang/ja/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * japanese language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Davilin(Yuji Takenaka) <webmaster@davilin.com>
* @author Yuji Takenaka <webmaster@davilin.com>
* @author Ikuo Obataya <i.obataya@gmail.com>
diff --git a/lib/plugins/acl/lang/ko/help.txt b/lib/plugins/acl/lang/ko/help.txt
index ba3dd6d9f..9baeedbb9 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/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 @@
<?php
+
/**
- * Korean language file
- *
- * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Andreas Gohr <andi@splitbrain.org>
* @author Anika Henke <anika@selfthinker.org>
* @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
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 @@
<?php
+
/**
- * Nepali language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Saroj Kumar Dhakal <lotusnagarkot@gmail.com>
* @author SarojKumar Dhakal <lotusnagarkot@yahoo.com>
* @author Saroj Dhakal<lotusnagarkot@yahoo.com>
diff --git a/lib/plugins/acl/lang/nl/lang.php b/lib/plugins/acl/lang/nl/lang.php
index e3a95e779..abb81ae06 100644
--- a/lib/plugins/acl/lang/nl/lang.php
+++ b/lib/plugins/acl/lang/nl/lang.php
@@ -19,6 +19,8 @@
* @author Jeroen
* @author Ricardo Guijt <ricardoguijt@gmail.com>
* @author Gerrit <klapinklapin@gmail.com>
+ * @author Gerrit Uitslag <klapinklapin@gmail.com>
+ * @author Remon <no@email.local>
*/
$lang['admin_acl'] = 'Toegangsrechten';
$lang['acl_group'] = 'Groep';
@@ -30,14 +32,14 @@ $lang['btn_select'] = 'Selecteer';
$lang['p_user_id'] = 'Gebruiker <b class="acluser">%s</b> heeft momenteel de volgende bevoegdheden op pagina <b class="aclpage">%s</b>: <i>%s</i>.';
$lang['p_user_ns'] = 'Gebruiker <b class="acluser">%s</b> heeft momenteel de volgende bevoegdheden op namespace <b class="aclns">%s</b>: <i>%s</i>.';
$lang['p_group_id'] = 'Leden van groep <b class="aclgroup">%s</b> hebben momenteel de volgende bevoegdheden op pagina <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns'] = 'Leden van groep <b class="aclgroup">%s</b>hebben momenteel de volgende bevoegdheden op namespace <b class="aclns">%s</b>: <i>%s</i>.';
+$lang['p_group_ns'] = 'Leden van groep <b class="aclgroup">%s</b> hebben momenteel de volgende bevoegdheden in namespace <b class="aclns">%s</b>: <i>%s</i>.';
$lang['p_choose_id'] = 'Vul een <b>gebruiker of groep</b> in in het bovenstaande formulier om de bevoegdheden te bekijken of te bewerken voor de pagina <b class="aclpage">%s</b>.';
$lang['p_choose_ns'] = 'Vul een <b>gebruiker of groep</b> in in het bovenstaande formulier om de bevoegdheden te bekijken of te bewerken voor de namespace <b class="aclns">%s</b>.';
$lang['p_inherited'] = 'Let op: Deze permissies zijn niet expliciet ingesteld maar overerfd van andere groepen of hogere namespaces.';
$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/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 @@
<?php
+
/**
- * Brazilian Portuguese language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Luis Fernando Enciso <lfenciso@certto.com.br>
* @author Alauton/Loug
* @author Frederico Gonçalves Guimarães <frederico@teia.bio.br>
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 @@
<?php
+
/**
- * Portuguese language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author José Carlos Monteiro <jose.c.monteiro@netcabo.pt>
* @author José Monteiro <Jose.Monteiro@DoWeDo-IT.com>
* @author Enrico Nicoletto <liverig@gmail.com>
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/acl/lang/ru/lang.php b/lib/plugins/acl/lang/ru/lang.php
index 2501c00e2..ff4740676 100644
--- a/lib/plugins/acl/lang/ru/lang.php
+++ b/lib/plugins/acl/lang/ru/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Russian language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Denis Simakov <akinoame1@gmail.com>
* @author Змей Этерийский evil_snake@eternion.ru
* @author Hikaru Nakajima <jisatsu@mail.ru>
@@ -28,7 +28,7 @@ $lang['btn_select'] = 'Выбрать';
$lang['p_user_id'] = 'Сейчас пользователь <b class="acluser">%s</b> имеет следующие права на доступ к странице <b class="aclpage">%s</b>: <i>%s</i>.';
$lang['p_user_ns'] = 'Сейчас пользователь <b class="acluser">%s</b> имеет следующие права на доступ к пространству имён <b class="aclns">%s</b>: <i>%s</i>.';
$lang['p_group_id'] = 'Сейчас члены группы <b class="aclgroup">%s</b> имеют следующие права на доступ к странице <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns'] = 'Сейчас члены группы <b class="aclgroup">%s</b> cимеют следующие права на доступ к пространству имён <b class="aclns">%s</b>: <i>%s</i>.';
+$lang['p_group_ns'] = 'Сейчас члены группы <b class="aclgroup">%s</b> имеют следующие права на доступ к пространству имён <b class="aclns">%s</b>: <i>%s</i>.';
$lang['p_choose_id'] = 'Пожалуйста, <b>введите пользователя или группу</b> в форме выше, чтобы просмотреть или отредактировать права на доступ к странице <b class="aclpage">%s</b>.';
$lang['p_choose_ns'] = 'Пожалуйста, <b>введите пользователя или группу</b> в форме выше, чтобы просмотреть или отредактировать права на доступ к пространству имён <b class="aclns">%s</b>.';
$lang['p_inherited'] = 'Замечание: эти права доступа не были заданы явно, а были унаследованы от других групп или пространств имён более высокого порядка.';
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 @@
<?php
+
/**
- * Slovak language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Ondrej Vegh <ov@vsieti.sk>
* @author Michal Mesko <michal.mesko@gmail.com>
* @author exusik@gmail.com
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 @@
<?php
+
/**
- * Slovenian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Dejan Levec <webphp@gmail.com>
* @author Boštjan Seničar <senicar@gmail.com>
* @author Gregor Skumavc (grega.skumavc@gmail.com)
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 @@
<?php
+
/**
- * turkish language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Selim Farsakoğlu <farsakogluselim@yahoo.de>
* @author Aydın Coşkuner <aydinweb@gmail.com>
* @author Cihan Kahveci <kahvecicihan@gmail.com>
diff --git a/lib/plugins/acl/lang/uk/lang.php b/lib/plugins/acl/lang/uk/lang.php
index 99b4b2623..97c66d8a2 100644
--- a/lib/plugins/acl/lang/uk/lang.php
+++ b/lib/plugins/acl/lang/uk/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * ukrainian language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Oleksiy Voronin <ovoronin@gmail.com>
* @author serg_stetsuk@ukr.net
* @author okunia@gmail.com
diff --git a/lib/plugins/acl/lang/zh-tw/lang.php b/lib/plugins/acl/lang/zh-tw/lang.php
index ff2c6a184..a56435318 100644
--- a/lib/plugins/acl/lang/zh-tw/lang.php
+++ b/lib/plugins/acl/lang/zh-tw/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Chinese(Traditional) language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author chinsan <chinsan@mail2000.com.tw>
* @author Li-Jiun Huang <ljhuang.tw@gmail.com>
* @author http://www.chinese-tools.com/tools/converter-simptrad.html
diff --git a/lib/plugins/acl/lang/zh/lang.php b/lib/plugins/acl/lang/zh/lang.php
index 983882eaf..029446cca 100644
--- a/lib/plugins/acl/lang/zh/lang.php
+++ b/lib/plugins/acl/lang/zh/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Chinese(Simplified) language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author ZDYX <zhangduyixiong@gmail.com>
* @author http://www.chinese-tools.com/tools/converter-tradsimp.html
* @author George Sheraton guxd@163.com
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);
}
}
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('<img src="'+DOKU_BASE+'lib/images/throbber.gif" alt="..." />')
.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;
},
diff --git a/lib/plugins/acl/style.css b/lib/plugins/acl/style.css
index d8f0b53f3..a53a03450 100644
--- a/lib/plugins/acl/style.css
+++ b/lib/plugins/acl/style.css
@@ -1,4 +1,3 @@
-
#acl__tree {
font-size: 90%;
width: 25%;
@@ -138,4 +137,3 @@
#acl_manager table tr:hover {
background-color: __background_alt__;
}
-
diff --git a/lib/plugins/action.php b/lib/plugins/action.php
index a2ad969d7..4b5eef60a 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
+ */
+ public function register(Doku_Event_Handler $controller) {
trigger_error('register() not implemented in '.get_class($this), E_USER_WARNING);
- }
+ }
}
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 fbc3f163c..560d25315 100644
--- a/lib/plugins/authad/conf/metadata.php
+++ b/lib/plugins/authad/conf/metadata.php
@@ -1,14 +1,15 @@
<?php
-$meta['account_suffix'] = array('string');
-$meta['base_dn'] = array('string');
-$meta['domain_controllers'] = array('string');
-$meta['sso'] = array('onoff');
-$meta['admin_username'] = array('string');
-$meta['admin_password'] = array('password');
-$meta['real_primarygroup'] = array('onoff');
-$meta['use_ssl'] = array('onoff');
-$meta['use_tls'] = array('onoff');
-$meta['debug'] = array('onoff');
-$meta['expirywarn'] = array('numeric', '_min'=>0);
-$meta['additional'] = array('string');
+$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');
+$meta['use_ssl'] = array('onoff','_caution' => 'danger');
+$meta['use_tls'] = array('onoff','_caution' => 'danger');
+$meta['debug'] = array('onoff','_caution' => 'security');
+$meta['expirywarn'] = array('numeric', '_min'=>0,'_caution' => 'danger');
+$meta['additional'] = array('string','_caution' => 'danger');
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 @@
<?php
+
/**
- * Czech language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author mkucera66@seznam.cz
*/
$lang['account_suffix'] = 'Přípona vašeho účtu, tj. <code>@moje.domena.org</code>';
diff --git a/lib/plugins/authad/lang/da/settings.php b/lib/plugins/authad/lang/da/settings.php
new file mode 100644
index 000000000..f50abf1ce
--- /dev/null
+++ b/lib/plugins/authad/lang/da/settings.php
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Soren Birk <soer9648@hotmail.com>
+ * @author Jens Hyllegaard <jens.hyllegaard@gmail.com>
+ */
+$lang['account_suffix'] = 'Dit konto suffiks. F.eks. <code>@mit.domæne.dk</code>';
+$lang['base_dn'] = 'Dit grund DN. F.eks. <code>DC=mit,DC=domæne,DC=dk</code>';
+$lang['domain_controllers'] = 'En kommasepareret liste over domænecontrollere. F.eks. <code>srv1.domain.org,srv2.domain.org</code>';
+$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/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 @@
<?php
+
/**
- * German (informal) language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Frank Loizzi <contact@software.bacal.de>
* @author Matthias Schulte <dokuwiki@lupo49.de>
* @author Volker Bödker <volker@boedker.de>
diff --git a/lib/plugins/authad/lang/de/settings.php b/lib/plugins/authad/lang/de/settings.php
index f4e86dedd..fd624ad02 100644
--- a/lib/plugins/authad/lang/de/settings.php
+++ b/lib/plugins/authad/lang/de/settings.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * German (informal) language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Frank Loizzi <contact@software.bacal.de>
* @author Matthias Schulte <dokuwiki@lupo49.de>
*/
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?';
diff --git a/lib/plugins/authad/lang/eo/settings.php b/lib/plugins/authad/lang/eo/settings.php
index 8bd34b439..11640ebb7 100644
--- a/lib/plugins/authad/lang/eo/settings.php
+++ b/lib/plugins/authad/lang/eo/settings.php
@@ -1,7 +1,9 @@
<?php
+
/**
- * Esperanto language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Robert Bogenschneider <bogi@uea.org>
*/
$lang['account_suffix'] = 'Via konto-aldonaĵo, ekz. <code>@mia.domajno.lando</code>';
$lang['base_dn'] = 'Via baza DN, ekz. <code>DC=mia,DC=domajno,DC=lando</code>';
@@ -9,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/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 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author monica <may.dorado@gmail.com>
+ */
+$lang['account_suffix'] = 'Su cuenta, sufijo. Ejem. <code> @ my.domain.org </ code>';
+$lang['base_dn'] = 'Su base DN. Ejem. <code>DC=my,DC=dominio,DC=org</code>';
+$lang['domain_controllers'] = 'Una lista separada por coma de los controladores de dominios. Ejem. <code>srv1.dominio.org,srv2.dominio.org</code>';
+$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?';
diff --git a/lib/plugins/authad/lang/fr/settings.php b/lib/plugins/authad/lang/fr/settings.php
index 5480a3d44..d05390efc 100644
--- a/lib/plugins/authad/lang/fr/settings.php
+++ b/lib/plugins/authad/lang/fr/settings.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * French language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Bruno Veilleux <bruno.vey@gmail.com>
*/
$lang['account_suffix'] = 'Le suffixe de votre compte. Ex.: <code>@mon.domaine.org</code>';
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 @@
<?php
+
/**
- * Hungarian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Marton Sebok <sebokmarton@gmail.com>
*/
$lang['account_suffix'] = 'Felhasználói azonosító végződése, pl. <code>@my.domain.org</code>.';
diff --git a/lib/plugins/authad/lang/it/settings.php b/lib/plugins/authad/lang/it/settings.php
index 10ae72f87..2d68dad68 100644
--- a/lib/plugins/authad/lang/it/settings.php
+++ b/lib/plugins/authad/lang/it/settings.php
@@ -1,5 +1,18 @@
<?php
+
/**
- * Italian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Edmondo Di Tucci <snarchio@gmail.com>
*/
+$lang['account_suffix'] = 'Il suffisso del tuo account. Eg. <code>@my.domain.org</code>';
+$lang['base_dn'] = 'Il tuo DN. base Eg. <code>DC=my,DC=domain,DC=org</code>';
+$lang['domain_controllers'] = 'Elenco separato da virgole di Domain Controllers. Eg. <code>srv1.domain.org,srv2.domain.org</code>';
+$lang['admin_username'] = 'Utente privilegiato di Active Directory con accesso ai dati di tutti gli utenti. Opzionale ma necessario per alcune attività come mandare email di iscrizione.';
+$lang['admin_password'] = 'La password dell\'utente soprascritto.';
+$lang['sso'] = 'Deve essere usato Single-Sign-On via Kerberos oppure NTLM?';
+$lang['use_ssl'] = 'Usare la connessione SSL? Se usata, non abilitare TSL qui sotto.';
+$lang['use_tls'] = 'Usare la connessione TSL? Se usata, non abilitare SSL qui sopra.';
+$lang['debug'] = 'Visualizzare output addizionale di debug per gli errori?';
+$lang['expirywarn'] = 'Giorni di preavviso per la scadenza della password dell\'utente. 0 per disabilitare.';
+$lang['additional'] = 'Valori separati da virgola di attributi AD addizionali da caricare dai dati utente. Usato da alcuni plugin.';
diff --git a/lib/plugins/authad/lang/ja/settings.php b/lib/plugins/authad/lang/ja/settings.php
index fdc6fc434..f308249ef 100644
--- a/lib/plugins/authad/lang/ja/settings.php
+++ b/lib/plugins/authad/lang/ja/settings.php
@@ -1,6 +1,20 @@
<?php
+
/**
- * Japanese language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Satoshi Sahara <sahara.satoshi@gmail.com>
+ * @author Hideaki SAWADA <chuno@live.jp>
*/
+$lang['account_suffix'] = 'アカウントの接尾語。例:<code>@my.domain.org</code>';
+$lang['base_dn'] = 'ベースDN。例:<code>DC=my,DC=domain,DC=org</code>';
+$lang['domain_controllers'] = 'ドメインコントローラのカンマ区切り一覧。例:<code>srv1.domain.org,srv2.domain.org</code>';
+$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/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 @@
<?php
+
/**
- * Korean language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Myeongjin <aranet100@gmail.com>
*/
$lang['account_suffix'] = '계정 접미어. 예를 들어 <code>@my.domain.org</code>';
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 <no@email.local>
*/
$lang['account_suffix'] = 'Je account domeinnaam. Bijv <code>@mijn.domein.org</code>';
$lang['base_dn'] = 'Je basis DN. Bijv. <code>DC=mijn,DC=domein,DC=org</code>';
-$lang['domain_controllers'] = 'Eeen commagesepareerde lijst van domeinservers. Bijv. <code>srv1.domein.org,srv2.domein.org</code>';
-$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. <code>srv1.domein.org,srv2.domein.org</code>';
+$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/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 @@
<?php
+
/**
- * Brazilian Portuguese language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Victor Westmann <victor.westmann@gmail.com>
* @author Frederico Guimarães <frederico@teia.bio.br>
*/
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 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author André Neves <drakferion@gmail.com>
+ */
+$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/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 @@
<?php
+
/**
- * Russian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Ivan I. Udovichenko (sendtome@mymailbox.pp.ua)
+ * @author Aleksandr Selivanov <alexgearbox@gmail.com>
*/
+$lang['admin_password'] = 'Пароль для указанного пользователя.';
diff --git a/lib/plugins/authad/lang/sk/settings.php b/lib/plugins/authad/lang/sk/settings.php
new file mode 100644
index 000000000..55f266dd6
--- /dev/null
+++ b/lib/plugins/authad/lang/sk/settings.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Martin Michalek <michalek.dev@gmail.com>
+ */
+$lang['account_suffix'] = 'Prípona používateľského účtu. Napr. <code>@my.domain.org</code>';
+$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/authad/lang/zh-tw/settings.php b/lib/plugins/authad/lang/zh-tw/settings.php
index c46e5f96f..bd5d9413a 100644
--- a/lib/plugins/authad/lang/zh-tw/settings.php
+++ b/lib/plugins/authad/lang/zh-tw/settings.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Chinese Traditional language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author syaoranhinata@gmail.com
*/
$lang['account_suffix'] = '您的帳號後綴。如: <code>@my.domain.org</code>';
diff --git a/lib/plugins/authad/lang/zh/settings.php b/lib/plugins/authad/lang/zh/settings.php
index 0ad8d4e4f..84bdc1e5c 100644
--- a/lib/plugins/authad/lang/zh/settings.php
+++ b/lib/plugins/authad/lang/zh/settings.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Chinese language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author lainme <lainme993@gmail.com>
*/
$lang['account_suffix'] = '您的账户后缀。例如 <code>@my.domain.org</code>';
diff --git a/lib/plugins/authad/plugin.info.txt b/lib/plugins/authad/plugin.info.txt
index 996813bc5..3af1ddfbe 100644
--- a/lib/plugins/authad/plugin.info.txt
+++ b/lib/plugins/authad/plugin.info.txt
@@ -2,6 +2,6 @@ base authad
author Andreas Gohr
email andi@splitbrain.org
date 2013-04-25
-name Active Directory auth plugin
-desc Provides authentication against a Microsoft Active Directory
+name Active Directory Auth Plugin
+desc Provides user authentication against a Microsoft Active Directory
url http://www.dokuwiki.org/plugin:authad
diff --git a/lib/plugins/authldap/auth.php b/lib/plugins/authldap/auth.php
index 6a967a6d4..de1332282 100644
--- a/lib/plugins/authldap/auth.php
+++ b/lib/plugins/authldap/auth.php
@@ -208,8 +208,8 @@ class auth_plugin_authldap extends DokuWiki_Auth_Plugin {
if(is_array($key)) {
// use regexp to clean up user_result
list($key, $regexp) = each($key);
- if($user_result[$key]) foreach($user_result[$key] as $grp) {
- if(preg_match($regexp, $grp, $match)) {
+ if($user_result[$key]) foreach($user_result[$key] as $grpkey => $grp) {
+ if($grpkey !== 'count' && preg_match($regexp, $grp, $match)) {
if($localkey == 'grps') {
$info[$localkey][] = $match[1];
} else {
diff --git a/lib/plugins/authldap/conf/metadata.php b/lib/plugins/authldap/conf/metadata.php
index a3256628c..6aa53c40d 100644
--- a/lib/plugins/authldap/conf/metadata.php
+++ b/lib/plugins/authldap/conf/metadata.php
@@ -1,19 +1,19 @@
<?php
-$meta['server'] = array('string');
-$meta['port'] = array('numeric');
-$meta['usertree'] = array('string');
-$meta['grouptree'] = array('string');
-$meta['userfilter'] = array('string');
-$meta['groupfilter'] = array('string');
-$meta['version'] = array('numeric');
-$meta['starttls'] = array('onoff');
-$meta['referrals'] = array('onoff');
-$meta['deref'] = array('multichoice','_choices' => array(0,1,2,3));
-$meta['binddn'] = array('string');
-$meta['bindpw'] = array('password');
+$meta['server'] = array('string','_caution' => 'danger');
+$meta['port'] = array('numeric','_caution' => 'danger');
+$meta['usertree'] = array('string','_caution' => 'danger');
+$meta['grouptree'] = array('string','_caution' => 'danger');
+$meta['userfilter'] = array('string','_caution' => 'danger');
+$meta['groupfilter'] = array('string','_caution' => 'danger');
+$meta['version'] = array('numeric','_caution' => 'danger');
+$meta['starttls'] = array('onoff','_caution' => 'danger');
+$meta['referrals'] = array('onoff','_caution' => 'danger');
+$meta['deref'] = array('multichoice','_choices' => array(0,1,2,3),'_caution' => 'danger');
+$meta['binddn'] = array('string','_caution' => 'danger');
+$meta['bindpw'] = array('password','_caution' => 'danger');
//$meta['mapping']['name'] unsupported in config manager
//$meta['mapping']['grps'] unsupported in config manager
-$meta['userscope'] = array('multichoice','_choices' => array('sub','one','base'));
-$meta['groupscope'] = array('multichoice','_choices' => array('sub','one','base'));
-$meta['groupkey'] = array('string');
-$meta['debug'] = array('onoff'); \ No newline at end of file
+$meta['userscope'] = array('multichoice','_choices' => array('sub','one','base'),'_caution' => 'danger');
+$meta['groupscope'] = array('multichoice','_choices' => array('sub','one','base'),'_caution' => 'danger');
+$meta['groupkey'] = array('string','_caution' => 'danger');
+$meta['debug'] = array('onoff','_caution' => 'security'); \ No newline at end of file
diff --git a/lib/plugins/authldap/lang/cs/settings.php b/lib/plugins/authldap/lang/cs/settings.php
index 783d2a3ae..20491f1fb 100644
--- a/lib/plugins/authldap/lang/cs/settings.php
+++ b/lib/plugins/authldap/lang/cs/settings.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Czech language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author mkucera66@seznam.cz
*/
$lang['server'] = 'Váš server LDAP. Buď jméno hosta (<code>localhost</code>) nebo plně kvalifikovaný popis URL (<code>ldap://server.tld:389</code>)';
@@ -9,7 +10,7 @@ $lang['port'] = 'Port serveru LDAP. Pokud není, bude využito
$lang['usertree'] = 'Kde najít uživatelské účty, tj. <code>ou=Lide, dc=server, dc=tld</code>';
$lang['grouptree'] = 'Kde najít uživatelské skupiny, tj. <code>ou=Skupina, dc=server, dc=tld</code>';
$lang['userfilter'] = 'Filter LDAPu pro vyhledávání uživatelských účtů, tj. <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
-$lang['groupfilter'] = 'Filter LDAPu pro vyhledávání uživatelských skupin, tj. <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
+$lang['groupfilter'] = 'Filter LDAPu pro vyhledávání uživatelských skupin, tj. <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
$lang['version'] = 'Verze použitého protokolu. Můžete potřebovat jej nastavit na <code>3</code>';
$lang['starttls'] = 'Využít spojení TLS?';
$lang['referrals'] = 'Přeposílat odkazy?';
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 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Jens Hyllegaard <jens.hyllegaard@gmail.com>
+ */
+$lang['server'] = 'Din LDAP server. Enten værtsnavn (<code>localhost</code>) eller fuld kvalificeret URL (<code>ldap://server.tld:389</code>)';
+$lang['debug'] = 'Vis yderligere debug output ved fejl';
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 @@
<?php
+
/**
- * German informal language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Matthias Schulte <dokuwiki@lupo49.de>
* @author Volker Bödker <volker@boedker.de>
*/
diff --git a/lib/plugins/authldap/lang/de/settings.php b/lib/plugins/authldap/lang/de/settings.php
index b237201d8..d788da876 100644
--- a/lib/plugins/authldap/lang/de/settings.php
+++ b/lib/plugins/authldap/lang/de/settings.php
@@ -1,9 +1,10 @@
<?php
+
/**
- * German language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Matthias Schulte <dokuwiki@lupo49.de>
+ * @author christian studer <cstuder@existenz.ch>
*/
$lang['server'] = 'Adresse zum LDAP-Server. Entweder als Hostname (<code>localhost</code>) oder als FQDN (<code>ldap://server.tld:389</code>).';
$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: <code>cn=admin, dc=my, dc=home</code>.';
$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/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 @@
<?php
+
/**
- * Esperanto language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Felipe Castro <fefcas@yahoo.com.br>
*/
$lang['server'] = 'Via LDAP-servilo. Aŭ servila nomo (<code>localhost</code>) aŭ plene detala URL (<code>ldap://servilo.lando:389</code>)';
$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. <code>(
$lang['version'] = 'La uzenda protokolversio. Eble necesas indiki <code>3</code>';
$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. <code>cn=admin, dc=mia, dc=hejmo</code>';
$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/authldap/lang/fr/settings.php b/lib/plugins/authldap/lang/fr/settings.php
index 3df09eb7c..dc475071e 100644
--- a/lib/plugins/authldap/lang/fr/settings.php
+++ b/lib/plugins/authldap/lang/fr/settings.php
@@ -1,8 +1,10 @@
<?php
+
/**
- * French language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Bruno Veilleux <bruno.vey@gmail.com>
+ * @author schplurtz <Schplurtz@laposte.net>
*/
$lang['server'] = 'Votre serveur LDAP. Soit le nom d\'hôte (<code>localhost</code>) ou l\'URL complète (<code>ldap://serveur.dom:389</code>)';
$lang['port'] = 'Port du serveur LDAP si l\'URL complète n\'a pas été indiquée ci-dessus';
@@ -13,9 +15,14 @@ $lang['groupfilter'] = 'Filtre LDAP pour rechercher les groupes. Ex.:
$lang['version'] = 'La version de protocole à utiliser. Il se peut que vous deviez utiliser <code>3</code>';
$lang['starttls'] = 'Utiliser les connexions TLS?';
$lang['referrals'] = 'Suivre les références?';
+$lang['deref'] = 'Comment déréférencer les alias ?';
$lang['binddn'] = 'Nom de domaine d\'un utilisateur de connexion facultatif si une connexion anonyme n\'est pas suffisante. Ex. : <code>cn=admin, dc=mon, dc=accueil</code>';
$lang['bindpw'] = 'Mot de passe de l\'utilisateur ci-dessus.';
$lang['userscope'] = 'Limiter la portée de recherche d\'utilisateurs';
$lang['groupscope'] = 'Limiter la portée de recherche de groupes';
$lang['groupkey'] = 'Affiliation aux groupes à partir de n\'importe quel attribut utilisateur (au lieu des groupes AD standards), p. ex. groupes par département ou numéro de téléphone';
$lang['debug'] = 'Afficher des informations de bégogage supplémentaires pour les erreurs';
+$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/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 @@
<?php
+
/**
- * Hungarian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Marton Sebok <sebokmarton@gmail.com>
*/
$lang['server'] = 'LDAP-szerver. Hosztnév (<code>localhost</code>) vagy abszolút URL portszámmal (<code>ldap://server.tld:389</code>)';
diff --git a/lib/plugins/authldap/lang/it/settings.php b/lib/plugins/authldap/lang/it/settings.php
index 10ae72f87..023159489 100644
--- a/lib/plugins/authldap/lang/it/settings.php
+++ b/lib/plugins/authldap/lang/it/settings.php
@@ -1,5 +1,15 @@
<?php
+
/**
- * Italian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Edmondo Di Tucci <snarchio@gmail.com>
*/
+$lang['server'] = 'Il tuo server LDAP. Inserire o l\'hostname (<code>localhost</code>) oppure un URL completo (<code>ldap://server.tld:389</code>)';
+$lang['port'] = 'Porta del server LDAP se non è stato fornito un URL completo più sopra.';
+$lang['usertree'] = 'Dove cercare l\'account utente. Eg. <code>ou=People, dc=server, dc=tld</code>';
+$lang['grouptree'] = 'Dove cercare i gruppi utente. Eg. <code>ou=Group, dc=server, dc=tld</code>';
+$lang['userfilter'] = 'Filtro per cercare l\'account utente LDAP. Eg. <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
+$lang['groupfilter'] = 'Filtro per cercare i gruppi LDAP. Eg. <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
+$lang['version'] = 'Versione protocollo da usare. Pu<code>3</code>';
+$lang['starttls'] = 'Usare la connessione TSL?';
diff --git a/lib/plugins/authldap/lang/ja/settings.php b/lib/plugins/authldap/lang/ja/settings.php
index fdc6fc434..6dec9a576 100644
--- a/lib/plugins/authldap/lang/ja/settings.php
+++ b/lib/plugins/authldap/lang/ja/settings.php
@@ -1,6 +1,24 @@
<?php
+
/**
- * Japanese language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Satoshi Sahara <sahara.satoshi@gmail.com>
+ * @author Hideaki SAWADA <sawadakun@live.jp>
+ * @author Hideaki SAWADA <chuno@live.jp>
*/
+$lang['server'] = 'LDAPサーバー。ホスト名(<code>localhost</code)又は完全修飾URL(<code>ldap://server.tld:389</code>)';
+$lang['port'] = '上記が完全修飾URLでない場合、LDAPサーバーポート';
+$lang['usertree'] = 'ユーザーアカウントを探す場所。例:<code>ou=People, dc=server, dc=tld</code>';
+$lang['grouptree'] = 'ユーザーグループを探す場所。例:<code>ou=Group, dc=server, dc=tld</code>';
+$lang['userfilter'] = 'ユーザーアカウントを探すためのLDAP抽出条件。例:<code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
+$lang['groupfilter'] = 'グループを探すLDAP抽出条件。例:<code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
+$lang['version'] = '使用するプロトコルのバージョン。<code>3</code>を設定する必要がある場合があります。';
+$lang['starttls'] = 'TLS接続を使用しますか?';
+$lang['binddn'] = '匿名バインドでは不十分な場合、オプションバインドユーザーのDN。例:<code>cn=admin, dc=my, dc=home</code>';
+$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/authldap/lang/ko/settings.php b/lib/plugins/authldap/lang/ko/settings.php
index 6200a03b9..5c5341b31 100644
--- a/lib/plugins/authldap/lang/ko/settings.php
+++ b/lib/plugins/authldap/lang/ko/settings.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Korean language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Myeongjin <aranet100@gmail.com>
*/
$lang['server'] = 'LDAP 서버. 호스트 이름(<code>localhost</code>)이나 전체 자격 URL(<code>ldap://server.tld:389</code>) 중 하나';
@@ -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/authldap/lang/nl/settings.php b/lib/plugins/authldap/lang/nl/settings.php
index 958bd4d6f..193d1a386 100644
--- a/lib/plugins/authldap/lang/nl/settings.php
+++ b/lib/plugins/authldap/lang/nl/settings.php
@@ -3,19 +3,26 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
+ * @author Gerrit Uitslag <klapinklapin@gmail.com>
+ * @author Remon <no@email.local>
*/
-$lang['server'] = 'Je LDAP server. Ofwel servernaam (<code>localhost</code>) of volledige URL (<code>ldap://server.tld:389</code>)';
-$lang['port'] = 'LDAP server poort als hiervoor geen volledige URL is opgegeven';
+$lang['server'] = 'Je LDAP server. Of de servernaam (<code>localhost</code>) of de volledige URL (<code>ldap://server.tld:389</code>)';
+$lang['port'] = 'LDAP server poort als bij de entry hierboven geen volledige URL is opgegeven';
$lang['usertree'] = 'Locatie van de gebruikersaccounts. Bijv. <code>ou=Personen,dc=server,dc=tld</code>';
$lang['grouptree'] = 'Locatie van de gebruikersgroepen. Bijv. <code>ou=Group,dc=server,dc=tld</code>';
$lang['userfilter'] = 'LDAP gebruikersfilter. Bijv. <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
$lang['groupfilter'] = 'LDAP groepsfilter. Bijv. <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
-$lang['version'] = 'Te gebruiken protocolversie. Je zou het moeten kunnen instellen op <code>3</code>';
-$lang['starttls'] = 'Gebruiken TLS verbindingen';
-$lang['referrals'] = 'Moeten verwijzingen worden gevolg';
+$lang['version'] = 'Te gebruiken protocolversie. Mogelijk dat dit ingesteld moet worden op <code>3</code>';
+$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. <code>cn=beheer, dc=mijn, dc=thuis</code>';
$lang['bindpw'] = 'Wachtwoord van bovenstaande gebruiker';
$lang['userscope'] = 'Beperken scope van zoekfuncties voor gebruikers';
$lang['groupscope'] = 'Beperken scope van zoekfuncties voor groepen';
$lang['groupkey'] = 'Groepslidmaatschap van enig gebruikersattribuut (in plaats van standaard AD groepen), bijv. groep van afdeling of telefoonnummer';
$lang['debug'] = 'Tonen van aanvullende debuginformatie bij fouten';
+$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/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 @@
<?php
+
/**
- * Brazilian Portuguese language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Victor Westmann <victor.westmann@gmail.com>
* @author Frederico Guimarães <frederico@teia.bio.br>
*/
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 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author André Neves <drakferion@gmail.com>
+ */
+$lang['server'] = 'O seu servidor de LDAP. Ou hostname (<code>localhost</code>) ou URL qualificado completo (<code>ldap://servidor.tld:389</code>)';
+$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 <code>ou=Pessoas, dc=servidor, dc=tld</code>';
+$lang['grouptree'] = 'Onde encontrar os grupos de utilizadores. Por exemplo code>ou=Grupo, dc=servidor, dc=tld</code>';
+$lang['userfilter'] = 'Filtro LDAP para procurar por contas de utilizador. Por exemplo <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
+$lang['groupfilter'] = 'Filtro LDAP para procurar por grupos. Por exemplo <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
+$lang['version'] = 'A versão do protocolo a utilizar. Pode precisar de alterar isto para <code>3</code>';
+$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/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 @@
<?php
+
/**
- * Russian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Ivan I. Udovichenko (sendtome@mymailbox.pp.ua)
+ * @author Aleksandr Selivanov <alexgearbox@gmail.com>
*/
+$lang['bindpw'] = 'Пароль для указанного пользователя.';
diff --git a/lib/plugins/authldap/lang/sk/settings.php b/lib/plugins/authldap/lang/sk/settings.php
new file mode 100644
index 000000000..48bd37395
--- /dev/null
+++ b/lib/plugins/authldap/lang/sk/settings.php
@@ -0,0 +1,21 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Martin Michalek <michalek.dev@gmail.com>
+ */
+$lang['server'] = 'LDAP server. Adresa (<code>localhost</code>) alebo úplné URL (<code>ldap://server.tld:389</code>)';
+$lang['port'] = 'Port LDAP servera, ak nebolo vyššie zadané úplné URL';
+$lang['usertree'] = 'Umiestnenie účtov používateľov. Napr. <code>ou=People, dc=server, dc=tld</code>';
+$lang['grouptree'] = 'Umiestnenie skupín používateľov. Napr. <code>ou=Group, dc=server, dc=tld</code>';
+$lang['userfilter'] = 'LDAP filter pre vyhľadávanie používateľských účtov. Napr. <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
+$lang['groupfilter'] = 'LDAP filter pre vyhľadávanie skupín. Napr. <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
+$lang['version'] = 'Použitá verzia protokolu. Možno bude potrebné nastaviť na hodnotu <code>3</code>';
+$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/authldap/lang/sv/settings.php b/lib/plugins/authldap/lang/sv/settings.php
index 68dbccfd0..d98400461 100644
--- a/lib/plugins/authldap/lang/sv/settings.php
+++ b/lib/plugins/authldap/lang/sv/settings.php
@@ -4,6 +4,7 @@
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Smorkster Andersson smorkster@gmail.com
+ * @author Tor Härnqvist <tor.harnqvist@gmail.com>
*/
$lang['server'] = 'Din LDAO server. Antingen värdnamn (<code>localhost</code>) eller giltig full URL (<code>ldap://server.tld:389</code>)';
$lang['port'] = 'LDAP server port, om det inte angavs full URL ovan';
@@ -12,6 +13,7 @@ $lang['grouptree'] = 'Specificera var grupper finns. T.ex. <code>ou=
$lang['userfilter'] = 'LDAP filter för att söka efter användarkonton. T.ex. <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
$lang['groupfilter'] = 'LDAP filter för att söka efter grupper. T.ex. <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
$lang['version'] = 'Version av protokoll att använda. Du kan behöva sätta detta till <code>3</code>';
+$lang['starttls'] = 'Använd TLS-anslutningar';
$lang['bindpw'] = 'Lösenord för användare ovan';
$lang['groupkey'] = 'Gruppmedlemskap från något användarattribut (istället för standard AD grupp) t.ex. grupp från avdelning eller telefonnummer';
$lang['debug'] = 'Visa ytterligare felsökningsinformation vid fel';
diff --git a/lib/plugins/authldap/lang/zh-tw/settings.php b/lib/plugins/authldap/lang/zh-tw/settings.php
index e93190516..d2513eeff 100644
--- a/lib/plugins/authldap/lang/zh-tw/settings.php
+++ b/lib/plugins/authldap/lang/zh-tw/settings.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Chinese Traditional language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author syaoranhinata@gmail.com
*/
$lang['server'] = '您的 LDAP 伺服器。填寫主機名稱 (<code>localhost</code>) 或完整的 URL (<code>ldap://server.tld:389</code>)';
diff --git a/lib/plugins/authldap/lang/zh/settings.php b/lib/plugins/authldap/lang/zh/settings.php
index 3f38deae9..77c2c6952 100644
--- a/lib/plugins/authldap/lang/zh/settings.php
+++ b/lib/plugins/authldap/lang/zh/settings.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Chinese language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author lainme <lainme993@gmail.com>
*/
$lang['server'] = '您的 LDAP 服务器。填写主机名 (<code>localhost</code>) 或者完整的 URL (<code>ldap://server.tld:389</code>)';
@@ -19,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/authldap/plugin.info.txt b/lib/plugins/authldap/plugin.info.txt
index 94809a75b..0d0b13f65 100644
--- a/lib/plugins/authldap/plugin.info.txt
+++ b/lib/plugins/authldap/plugin.info.txt
@@ -2,6 +2,6 @@ base authldap
author Andreas Gohr
email andi@splitbrain.org
date 2013-04-19
-name ldap auth plugin
-desc Provides authentication against am LDAP server
+name LDAP Auth Plugin
+desc Provides user authentication against an LDAP server
url http://www.dokuwiki.org/plugin:authldap
diff --git a/lib/plugins/authmysql/conf/metadata.php b/lib/plugins/authmysql/conf/metadata.php
index 05d150fdf..54d6f1404 100644
--- a/lib/plugins/authmysql/conf/metadata.php
+++ b/lib/plugins/authmysql/conf/metadata.php
@@ -1,34 +1,34 @@
<?php
-$meta['server'] = array('string');
-$meta['user'] = array('string');
-$meta['password'] = array('password');
-$meta['database'] = array('string');
-$meta['charset'] = array('string');
-$meta['debug'] = array('multichoice','_choices' => array(0,1,2));
-$meta['forwardClearPass'] = array('onoff');
-$meta['TablesToLock'] = array('array');
-$meta['checkPass'] = array('');
-$meta['getUserInfo'] = array('');
-$meta['getGroups'] = array('');
-$meta['getUsers'] = array('');
-$meta['FilterLogin'] = array('string');
-$meta['FilterName'] = array('string');
-$meta['FilterEmail'] = array('string');
-$meta['FilterGroup'] = array('string');
-$meta['SortOrder'] = array('string');
-$meta['addUser'] = array('');
-$meta['addGroup'] = array('');
-$meta['addUserGroup'] = array('');
-$meta['delGroup'] = array('');
-$meta['getUserID'] = array('');
-$meta['delUser'] = array('');
-$meta['delUserRefs'] = array('');
-$meta['updateUser'] = array('string');
-$meta['UpdateLogin'] = array('string');
-$meta['UpdatePass'] = array('string');
-$meta['UpdateEmail'] = array('string');
-$meta['UpdateName'] = array('string');
-$meta['UpdateTarget'] = array('string');
-$meta['delUserGroup'] = array('');
-$meta['getGroupID'] = array(''); \ No newline at end of file
+$meta['server'] = array('string','_caution' => 'danger');
+$meta['user'] = array('string','_caution' => 'danger');
+$meta['password'] = array('password','_caution' => 'danger');
+$meta['database'] = array('string','_caution' => 'danger');
+$meta['charset'] = array('string','_caution' => 'danger');
+$meta['debug'] = array('multichoice','_choices' => array(0,1,2),'_caution' => 'security');
+$meta['forwardClearPass'] = array('onoff','_caution' => 'danger');
+$meta['TablesToLock'] = array('array','_caution' => 'danger');
+$meta['checkPass'] = array('','_caution' => 'danger');
+$meta['getUserInfo'] = array('','_caution' => 'danger');
+$meta['getGroups'] = array('','_caution' => 'danger');
+$meta['getUsers'] = array('','_caution' => 'danger');
+$meta['FilterLogin'] = array('string','_caution' => 'danger');
+$meta['FilterName'] = array('string','_caution' => 'danger');
+$meta['FilterEmail'] = array('string','_caution' => 'danger');
+$meta['FilterGroup'] = array('string','_caution' => 'danger');
+$meta['SortOrder'] = array('string','_caution' => 'danger');
+$meta['addUser'] = array('','_caution' => 'danger');
+$meta['addGroup'] = array('','_caution' => 'danger');
+$meta['addUserGroup'] = array('','_caution' => 'danger');
+$meta['delGroup'] = array('','_caution' => 'danger');
+$meta['getUserID'] = array('','_caution' => 'danger');
+$meta['delUser'] = array('','_caution' => 'danger');
+$meta['delUserRefs'] = array('','_caution' => 'danger');
+$meta['updateUser'] = array('string','_caution' => 'danger');
+$meta['UpdateLogin'] = array('string','_caution' => 'danger');
+$meta['UpdatePass'] = array('string','_caution' => 'danger');
+$meta['UpdateEmail'] = array('string','_caution' => 'danger');
+$meta['UpdateName'] = array('string','_caution' => 'danger');
+$meta['UpdateTarget'] = array('string','_caution' => 'danger');
+$meta['delUserGroup'] = array('','_caution' => 'danger');
+$meta['getGroupID'] = array('','_caution' => 'danger'); \ No newline at end of file
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 @@
<?php
+
/**
- * Czech language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author mkucera66@seznam.cz
*/
$lang['server'] = 'Váš server MySQL';
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 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Jens Hyllegaard <jens.hyllegaard@gmail.com>
+ */
+$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/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 @@
<?php
+
/**
- * German informal language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Matthias Schulte <dokuwiki@lupo49.de>
* @author Volker Bödker <volker@boedker.de>
*/
diff --git a/lib/plugins/authmysql/lang/de/settings.php b/lib/plugins/authmysql/lang/de/settings.php
index 97ba06a9d..90e0ee5a8 100644
--- a/lib/plugins/authmysql/lang/de/settings.php
+++ b/lib/plugins/authmysql/lang/de/settings.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * German language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Matthias Schulte <dokuwiki@lupo49.de>
*/
$lang['server'] = 'MySQL-Server';
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/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 @@
<?php
+
/**
- * Esperanto language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
*/
$lang['server'] = 'Via MySQL-servilo';
$lang['user'] = 'MySQL uzantonomo';
diff --git a/lib/plugins/authmysql/lang/fr/settings.php b/lib/plugins/authmysql/lang/fr/settings.php
index dfb79b545..d69c8d41c 100644
--- a/lib/plugins/authmysql/lang/fr/settings.php
+++ b/lib/plugins/authmysql/lang/fr/settings.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * French language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Bruno Veilleux <bruno.vey@gmail.com>
*/
$lang['server'] = 'Votre serveur MySQL';
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 @@
<?php
+
/**
- * Hungarian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Marton Sebok <sebokmarton@gmail.com>
*/
$lang['server'] = 'MySQL-szerver';
diff --git a/lib/plugins/authmysql/lang/ja/settings.php b/lib/plugins/authmysql/lang/ja/settings.php
index 45f938fec..0dc5f1ad8 100644
--- a/lib/plugins/authmysql/lang/ja/settings.php
+++ b/lib/plugins/authmysql/lang/ja/settings.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Japanese language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Satoshi Sahara <sahara.satoshi@gmail.com>
*/
$lang['server'] = 'MySQL のホスト名';
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 @@
<?php
+
/**
- * Korean language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Myeongjin <aranet100@gmail.com>
*/
$lang['server'] = 'MySQL 서버';
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 <no@email.local>
*/
-$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/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 @@
<?php
+
/**
- * Brazilian Portuguese language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Victor Westmann <victor.westmann@gmail.com>
* @author Frederico Guimarães <frederico@teia.bio.br>
*/
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 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author André Neves <drakferion@gmail.com>
+ */
+$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/authmysql/lang/ru/settings.php b/lib/plugins/authmysql/lang/ru/settings.php
index 066598331..2d8f4788e 100644
--- a/lib/plugins/authmysql/lang/ru/settings.php
+++ b/lib/plugins/authmysql/lang/ru/settings.php
@@ -1,8 +1,10 @@
<?php
+
/**
- * Russian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Ivan I. Udovichenko (sendtome@mymailbox.pp.ua)
+ * @author Aleksandr Selivanov <alexgearbox@gmail.com>
*/
$lang['server'] = 'Ваш MySQL-сервер';
$lang['user'] = 'Имя пользователя MySQL';
@@ -16,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/authmysql/lang/sk/settings.php b/lib/plugins/authmysql/lang/sk/settings.php
new file mode 100644
index 000000000..8c52f905e
--- /dev/null
+++ b/lib/plugins/authmysql/lang/sk/settings.php
@@ -0,0 +1,38 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Martin Michalek <michalek.dev@gmail.com>
+ */
+$lang['server'] = 'MySQL server';
+$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';
+$lang['debug'] = 'Zobraziť doplňujúce ladiace informácie';
+$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';
+$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/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 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Matej Urbančič <mateju@svn.gnome.org>
+ */
+$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/authmysql/lang/zh-tw/settings.php b/lib/plugins/authmysql/lang/zh-tw/settings.php
index 95d068150..3fbee151c 100644
--- a/lib/plugins/authmysql/lang/zh-tw/settings.php
+++ b/lib/plugins/authmysql/lang/zh-tw/settings.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Chinese Traditional language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author syaoranhinata@gmail.com
*/
$lang['server'] = '您的 MySQL 伺服器';
diff --git a/lib/plugins/authmysql/lang/zh/settings.php b/lib/plugins/authmysql/lang/zh/settings.php
index 772f75ecd..b58159e85 100644
--- a/lib/plugins/authmysql/lang/zh/settings.php
+++ b/lib/plugins/authmysql/lang/zh/settings.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Chinese language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author lainme <lainme993@gmail.com>
*/
$lang['server'] = '您的 MySQL 服务器';
diff --git a/lib/plugins/authmysql/plugin.info.txt b/lib/plugins/authmysql/plugin.info.txt
index 16fe27e74..3e889d11e 100644
--- a/lib/plugins/authmysql/plugin.info.txt
+++ b/lib/plugins/authmysql/plugin.info.txt
@@ -2,6 +2,6 @@ base authmysql
author Andreas Gohr
email andi@splitbrain.org
date 2013-02-16
-name mysql auth plugin
-desc Provides authentication against a MySQL Server
+name MYSQL Auth Plugin
+desc Provides user authentication against a MySQL database
url http://www.dokuwiki.org/plugin:authmysql
diff --git a/lib/plugins/authpgsql/conf/metadata.php b/lib/plugins/authpgsql/conf/metadata.php
index d52a17865..fbd051270 100644
--- a/lib/plugins/authpgsql/conf/metadata.php
+++ b/lib/plugins/authpgsql/conf/metadata.php
@@ -1,33 +1,33 @@
<?php
-$meta['server'] = array('string');
-$meta['port'] = array('numeric');
-$meta['user'] = array('string');
-$meta['password'] = array('password');
-$meta['database'] = array('string');
-$meta['debug'] = array('onoff');
-$meta['forwardClearPass'] = array('onoff');
-$meta['checkPass'] = array('');
-$meta['getUserInfo'] = array('');
+$meta['server'] = array('string','_caution' => 'danger');
+$meta['port'] = array('numeric','_caution' => 'danger');
+$meta['user'] = array('string','_caution' => 'danger');
+$meta['password'] = array('password','_caution' => 'danger');
+$meta['database'] = array('string','_caution' => 'danger');
+$meta['debug'] = array('onoff','_caution' => 'security');
+$meta['forwardClearPass'] = array('onoff','_caution' => 'danger');
+$meta['checkPass'] = array('','_caution' => 'danger');
+$meta['getUserInfo'] = array('','_caution' => 'danger');
$meta['getGroups'] = array('');
-$meta['getUsers'] = array('');
-$meta['FilterLogin'] = array('string');
-$meta['FilterName'] = array('string');
-$meta['FilterEmail'] = array('string');
-$meta['FilterGroup'] = array('string');
-$meta['SortOrder'] = array('string');
-$meta['addUser'] = array('');
-$meta['addGroup'] = array('');
-$meta['addUserGroup'] = array('');
-$meta['delGroup'] = array('');
-$meta['getUserID'] = array('');
-$meta['delUser'] = array('');
-$meta['delUserRefs'] = array('');
-$meta['updateUser'] = array('string');
-$meta['UpdateLogin'] = array('string');
-$meta['UpdatePass'] = array('string');
-$meta['UpdateEmail'] = array('string');
-$meta['UpdateName'] = array('string');
-$meta['UpdateTarget'] = array('string');
-$meta['delUserGroup'] = array('');
-$meta['getGroupID'] = array(''); \ No newline at end of file
+$meta['getUsers'] = array('','_caution' => 'danger');
+$meta['FilterLogin'] = array('string','_caution' => 'danger');
+$meta['FilterName'] = array('string','_caution' => 'danger');
+$meta['FilterEmail'] = array('string','_caution' => 'danger');
+$meta['FilterGroup'] = array('string','_caution' => 'danger');
+$meta['SortOrder'] = array('string','_caution' => 'danger');
+$meta['addUser'] = array('','_caution' => 'danger');
+$meta['addGroup'] = array('','_caution' => 'danger');
+$meta['addUserGroup'] = array('','_caution' => 'danger');
+$meta['delGroup'] = array('','_caution' => 'danger');
+$meta['getUserID'] = array('','_caution' => 'danger');
+$meta['delUser'] = array('','_caution' => 'danger');
+$meta['delUserRefs'] = array('','_caution' => 'danger');
+$meta['updateUser'] = array('string','_caution' => 'danger');
+$meta['UpdateLogin'] = array('string','_caution' => 'danger');
+$meta['UpdatePass'] = array('string','_caution' => 'danger');
+$meta['UpdateEmail'] = array('string','_caution' => 'danger');
+$meta['UpdateName'] = array('string','_caution' => 'danger');
+$meta['UpdateTarget'] = array('string','_caution' => 'danger');
+$meta['delUserGroup'] = array('','_caution' => 'danger');
+$meta['getGroupID'] = array('','_caution' => 'danger'); \ No newline at end of file
diff --git a/lib/plugins/authpgsql/lang/cs/settings.php b/lib/plugins/authpgsql/lang/cs/settings.php
index 06abe86f4..aec7eecf1 100644
--- a/lib/plugins/authpgsql/lang/cs/settings.php
+++ b/lib/plugins/authpgsql/lang/cs/settings.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Czech language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author mkucera66@seznam.cz
*/
$lang['server'] = 'Váš server PostgreSQL';
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 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Jens Hyllegaard <jens.hyllegaard@gmail.com>
+ */
+$lang['server'] = 'Din PostgresSQL server';
+$lang['port'] = 'Din PostgresSQL servers port';
+$lang['debug'] = 'Vis yderligere debug output';
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 @@
<?php
+
/**
- * German language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Matthias Schulte <dokuwiki@lupo49.de>
* @author Volker Bödker <volker@boedker.de>
*/
diff --git a/lib/plugins/authpgsql/lang/de/settings.php b/lib/plugins/authpgsql/lang/de/settings.php
index 4c80245d6..061f56e45 100644
--- a/lib/plugins/authpgsql/lang/de/settings.php
+++ b/lib/plugins/authpgsql/lang/de/settings.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * German language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Matthias Schulte <dokuwiki@lupo49.de>
*/
$lang['server'] = 'PostgreSQL-Server';
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';
diff --git a/lib/plugins/authpgsql/lang/eo/settings.php b/lib/plugins/authpgsql/lang/eo/settings.php
index dbdfdd41b..2f59c4914 100644
--- a/lib/plugins/authpgsql/lang/eo/settings.php
+++ b/lib/plugins/authpgsql/lang/eo/settings.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Esperanto language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
*/
$lang['server'] = 'Via PostgreSQL-servilo';
$lang['port'] = 'Via PostgreSQL-servila pordego';
diff --git a/lib/plugins/authpgsql/lang/fr/settings.php b/lib/plugins/authpgsql/lang/fr/settings.php
index ec425bd49..9e471075a 100644
--- a/lib/plugins/authpgsql/lang/fr/settings.php
+++ b/lib/plugins/authpgsql/lang/fr/settings.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * French language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Bruno Veilleux <bruno.vey@gmail.com>
*/
$lang['server'] = 'Votre serveur PostgreSQL';
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 @@
<?php
+
/**
- * Hungarian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Marton Sebok <sebokmarton@gmail.com>
*/
$lang['server'] = 'PostgreSQL-szerver';
diff --git a/lib/plugins/authpgsql/lang/ja/settings.php b/lib/plugins/authpgsql/lang/ja/settings.php
index 4883caa4c..2ce63a34a 100644
--- a/lib/plugins/authpgsql/lang/ja/settings.php
+++ b/lib/plugins/authpgsql/lang/ja/settings.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Japanese language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Satoshi Sahara <sahara.satoshi@gmail.com>
*/
$lang['server'] = 'PostgreSQL のサーバー名';
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 @@
<?php
+
/**
- * Korean language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Myeongjin <aranet100@gmail.com>
*/
$lang['server'] = 'PostgreSQL 서버';
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 <no@email.local>
*/
-$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/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 @@
<?php
+
/**
- * Brazilian Portuguese language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Victor Westmann <victor.westmann@gmail.com>
* @author Frederico Guimarães <frederico@teia.bio.br>
*/
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 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author André Neves <drakferion@gmail.com>
+ */
+$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/authpgsql/lang/ru/settings.php b/lib/plugins/authpgsql/lang/ru/settings.php
index 4c394080e..48dd2a87c 100644
--- a/lib/plugins/authpgsql/lang/ru/settings.php
+++ b/lib/plugins/authpgsql/lang/ru/settings.php
@@ -1,6 +1,32 @@
<?php
+
/**
- * Russian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Ivan I. Udovichenko (sendtome@mymailbox.pp.ua)
+ * @author Aleksandr Selivanov <alexgearbox@gmail.com>
*/
+$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/authpgsql/lang/sk/settings.php b/lib/plugins/authpgsql/lang/sk/settings.php
new file mode 100644
index 000000000..9d656415d
--- /dev/null
+++ b/lib/plugins/authpgsql/lang/sk/settings.php
@@ -0,0 +1,37 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Martin Michalek <michalek.dev@gmail.com>
+ */
+$lang['server'] = 'PostgreSQL server';
+$lang['port'] = 'Port PostgreSQL servera';
+$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ó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';
+$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/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 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Matej Urbančič <mateju@svn.gnome.org>
+ */
+$lang['database'] = 'Podatkovna zbirka za uporabo';
diff --git a/lib/plugins/authpgsql/lang/zh-tw/settings.php b/lib/plugins/authpgsql/lang/zh-tw/settings.php
index 6a04214ad..b7dd9c6d8 100644
--- a/lib/plugins/authpgsql/lang/zh-tw/settings.php
+++ b/lib/plugins/authpgsql/lang/zh-tw/settings.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Chinese Traditional language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author syaoranhinata@gmail.com
*/
$lang['server'] = '您的 PostgreSQL 伺服器';
diff --git a/lib/plugins/authpgsql/lang/zh/settings.php b/lib/plugins/authpgsql/lang/zh/settings.php
index dc7223d89..32adb37d9 100644
--- a/lib/plugins/authpgsql/lang/zh/settings.php
+++ b/lib/plugins/authpgsql/lang/zh/settings.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Chinese language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author lainme <lainme993@gmail.com>
*/
$lang['server'] = '您的 PostgreSQL 服务器';
diff --git a/lib/plugins/authpgsql/plugin.info.txt b/lib/plugins/authpgsql/plugin.info.txt
index af33cec3e..aecab914e 100644
--- a/lib/plugins/authpgsql/plugin.info.txt
+++ b/lib/plugins/authpgsql/plugin.info.txt
@@ -2,6 +2,6 @@ base authpgsql
author Andreas Gohr
email andi@splitbrain.org
date 2013-02-16
-name PostgreSQL auth plugin
-desc Provides authentication against a PostgreSQL database
+name PostgreSQL Auth Plugin
+desc Provides user authentication against a PostgreSQL database
url http://www.dokuwiki.org/plugin:authpgsql
diff --git a/lib/plugins/authplain/plugin.info.txt b/lib/plugins/authplain/plugin.info.txt
index 8d9d3a82d..b63ee53e4 100644
--- a/lib/plugins/authplain/plugin.info.txt
+++ b/lib/plugins/authplain/plugin.info.txt
@@ -2,6 +2,6 @@ base authplain
author Andreas Gohr
email andi@splitbrain.org
date 2012-11-09
-name auth plugin
-desc Provides authentication against local password storage
+name Plain Auth Plugin
+desc Provides user authentication against DokuWiki's local password storage
url http://www.dokuwiki.org/plugin:authplain
diff --git a/lib/plugins/config/admin.php b/lib/plugins/config/admin.php
index 29529760c..835d27775 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('<div id="config__manager">');
-
- if ($this->_config->locked)
- ptln('<div class="info">'.$this->getLang('locked').'</div>');
- elseif ($this->_error)
- ptln('<div class="error">'.$this->getLang('error').'</div>');
- elseif ($this->_changed)
- ptln('<div class="success">'.$this->getLang('updated').'</div>');
-
- // 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('<form action="'.script().'" method="post">');
- ptln('<div class="no"><input type="hidden" name="id" value="'.$ID.'" /></div>');
- 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(' </table>');
- ptln(' </div>');
- ptln(' </fieldset>');
- } 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(' <fieldset id="'.$setting->_key.'">');
- ptln(' <legend>'.$setting->prompt($this).'</legend>');
- ptln(' <div class="table">');
- ptln(' <table class="inline">');
- } 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() ? '<img src="'.DOKU_PLUGIN_IMAGES.$setting->caution().'.png" alt="'.$setting->caution().'" title="'.$this->getLang($setting->caution()).'" />' : '';
-
- ptln(' <tr'.$class.'>');
- ptln(' <td class="label">');
- ptln(' <span class="outkey">'.$setting->_out_key(true, true).'</span>');
- ptln(' '.$icon.$label);
- ptln(' </td>');
- ptln(' <td'.$error.'>'.$input.'</td>');
- ptln(' </tr>');
+ $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('<div id="config__manager">');
+
+ if ($this->_config->locked)
+ ptln('<div class="info">'.$this->getLang('locked').'</div>');
+ elseif ($this->_error)
+ ptln('<div class="error">'.$this->getLang('error').'</div>');
+ elseif ($this->_changed)
+ ptln('<div class="success">'.$this->getLang('updated').'</div>');
+
+ // 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('<form action="'.script().'" method="post">');
+ ptln('<div class="no"><input type="hidden" name="id" value="'.$ID.'" /></div>');
+ 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(' </table>');
+ ptln(' </div>');
+ ptln(' </fieldset>');
+ } 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(' <fieldset id="'.$setting->_key.'">');
+ ptln(' <legend>'.$setting->prompt($this).'</legend>');
+ ptln(' <div class="table">');
+ ptln(' <table class="inline">');
+ } 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() ? '<img src="'.DOKU_PLUGIN_IMAGES.$setting->caution().'.png" alt="'.$setting->caution().'" title="'.$this->getLang($setting->caution()).'" />' : '';
+
+ ptln(' <tr'.$class.'>');
+ ptln(' <td class="label">');
+ ptln(' <span class="outkey">'.$setting->_out_key(true, true).'</span>');
+ ptln(' '.$icon.$label);
+ ptln(' </td>');
+ ptln(' <td'.$error.'>'.$input.'</td>');
+ ptln(' </tr>');
+ }
}
- }
- ptln(' </table>');
- ptln(' </div>');
- if ($in_fieldset) {
- ptln(' </fieldset>');
- }
+ ptln(' </table>');
+ ptln(' </div>');
+ if ($in_fieldset) {
+ ptln(' </fieldset>');
+ }
- // 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('<fieldset>');
- ptln('<div class="table">');
- ptln('<table class="inline">');
- $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(' <tr>');
- ptln(' <td class="label"><span title="$meta[\''.$undefined_setting_key.'\']">$'.$this->_config->_name.'[\''.$setting->_out_key().'\']</span></td>');
- ptln(' <td>'.$this->getLang('_msg_'.get_class($setting)).'</td>');
- ptln(' </tr>');
+ // 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('<fieldset>');
+ ptln('<div class="table">');
+ ptln('<table class="inline">');
+ $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(' <tr>');
+ ptln(' <td class="label"><span title="$meta[\''.$undefined_setting_key.'\']">$'.$this->_config->_name.'[\''.$setting->_out_key().'\']</span></td>');
+ ptln(' <td>'.$this->getLang('_msg_'.get_class($setting)).'</td>');
+ ptln(' </tr>');
+ }
+ ptln('</table>');
+ ptln('</div>');
+ ptln('</fieldset>');
}
- ptln('</table>');
- ptln('</div>');
- ptln('</fieldset>');
- }
- // finish up form
- ptln('<p>');
- ptln(' <input type="hidden" name="do" value="admin" />');
- ptln(' <input type="hidden" name="page" value="config" />');
+ // finish up form
+ ptln('<p>');
+ ptln(' <input type="hidden" name="do" value="admin" />');
+ ptln(' <input type="hidden" name="page" value="config" />');
- if (!$this->_config->locked) {
- ptln(' <input type="hidden" name="save" value="1" />');
- ptln(' <input type="submit" name="submit" class="button" value="'.$lang['btn_save'].'" accesskey="s" />');
- ptln(' <input type="reset" class="button" value="'.$lang['btn_reset'].'" />');
- }
+ if (!$this->_config->locked) {
+ ptln(' <input type="hidden" name="save" value="1" />');
+ ptln(' <input type="submit" name="submit" class="button" value="'.$lang['btn_save'].'" accesskey="s" />');
+ ptln(' <input type="reset" class="button" value="'.$lang['btn_reset'].'" />');
+ }
- ptln('</p>');
+ ptln('</p>');
- ptln('</form>');
- ptln('</div>');
+ ptln('</form>');
+ ptln('</div>');
}
/**
@@ -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 <btcoburn@silicodon.net>
*/
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('<h1 id="'.$id.'">'.$text.'</h1>');
+ ptln('<h1 id="'.$id.'">'.$text.'</h1>');
}
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 <b>Abschalten wenn nicht benötigt!</b>';
$lang['mediarevisions'] = 'Media-Revisionen (ältere Versionen) aktivieren?';
$lang['usewordblock'] = 'Spam-Blocking benutzen';
diff --git a/lib/plugins/config/lang/en/lang.php b/lib/plugins/config/lang/en/lang.php
index 67d3ce51f..cdef85a85 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. <code>http://www.yourserver.com</code>).
$lang['cookiedir'] = 'Cookie path. Leave blank for using baseurl.';
$lang['dmode'] = 'Directory creation mode';
$lang['fmode'] = 'File creation mode';
-$lang['allowdebug'] = 'Allow debug <b>disable if not needed!</b>';
+$lang['allowdebug'] = 'Allow debug. <b>Disable if not needed!</b>';
/* Display Settings */
$lang['recent'] = 'Number of entries per page in the recent changes';
@@ -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';
@@ -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';
diff --git a/lib/plugins/config/lang/ko/intro.txt b/lib/plugins/config/lang/ko/intro.txt
index c8b146930..d0b85606c 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|플러그인 설정]] 문서를 참고하세요.
+도쿠위키를 설치할 때 설정을 바꾸려면 이 페이지를 사용하세요. 개별 설정에 대한 도움말은 [[doku>ko:config]]를 참고하세요. 이 플러그인에 대한 자세한 내용은 [[doku>ko:plugin:config]]를 참고하세요.
+
+밝은 빨간색 배경으로 보이는 설정은 이 플러그인에서 바꿀 수 없도록 보호되어 있습니다. 파란색 배경으로 보이는 설정은 기본값이며 하얀색 배경으로 보이는 설정은 특수한 설치를 위해 로컬로 설정되어 있습니다. 파란색과 하얀색 배경으로 된 설정은 바꿀 수 있습니다.
+
+이 페이지를 떠나기 전에 **저장** 버튼을 누르지 않으면 바뀜이 사라지는 것에 주의하세요.
-빨간 배경색으로 보이는 설정은 이 플러그인에서 바꾸지 못하도록 되어있습니다. 파란 배경색으로 보이는 설정은 기본 설정값을 가지고 있습니다. 하얀 배경색으로 보이는 설정은 특별한 설치를 위해 설정되어 있습니다. 파란색과 하얀색 배경으로 된 설정은 바꿀 수 있습니다.
-이 페이지를 떠나기 전에 **저장** 버튼을 누르지 않으면 바뀐 값은 적용되지 않습니다. \ No newline at end of file
diff --git a/lib/plugins/config/lang/ko/lang.php b/lib/plugins/config/lang/ko/lang.php
index 1aab4731a..ac52090e3 100644
--- a/lib/plugins/config/lang/ko/lang.php
+++ b/lib/plugins/config/lang/ko/lang.php
@@ -21,7 +21,7 @@ $lang['danger'] = '위험: 이 옵션을 잘못 바꾸면 환경
$lang['warning'] = '경고: 이 옵션을 잘못 바꾸면 잘못 동작할 수 있습니다.';
$lang['security'] = '보안 경고: 이 옵션은 보안에 위험이 있을 수 있습니다.';
$lang['_configuration_manager'] = '환경 설정 관리자';
-$lang['_header_dokuwiki'] = 'DokuWiki 설정';
+$lang['_header_dokuwiki'] = '도쿠위키 설정';
$lang['_header_plugin'] = '플러그인 설정';
$lang['_header_template'] = '템플릿 설정';
$lang['_header_undefined'] = '정의되지 않은 설정';
@@ -45,12 +45,12 @@ $lang['lang'] = '인터페이스 언어';
$lang['template'] = '템플릿 (위키 디자인)';
$lang['tagline'] = '태그 라인 (템플릿이 지원할 때에 한함)';
$lang['sidebar'] = '사이드바 문서 이름 (템플릿이 지원할 때에 한함), 비워두면 사이드바를 비활성화';
-$lang['license'] = '콘텐츠에 어떤 라이선스를 적용하겠습니까?';
-$lang['savedir'] = '데이터 저장 디렉토리';
+$lang['license'] = '내용에 어떤 라이선스를 적용하겠습니까?';
+$lang['savedir'] = '데이터 저장 디렉터리';
$lang['basedir'] = '서버 경로 (예를 들어 <code>/dokuwiki/</code>). 자동 감지를 하려면 비우세요.';
$lang['baseurl'] = '서버 URL (예를 들어 <code>http://www.yourserver.com</code>). 자동 감지를 하려면 비우세요.';
$lang['cookiedir'] = '쿠키 위치. 비워두면 기본 URL 위치로 지정됩니다.';
-$lang['dmode'] = '디렉토리 만들기 모드';
+$lang['dmode'] = '디렉터리 만들기 모드';
$lang['fmode'] = '파일 만들기 모드';
$lang['allowdebug'] = '디버그 허용 <b>필요하지 않으면 비활성화하세요!</b>';
$lang['recent'] = '최근 바뀐 문서당 항목 수';
@@ -69,7 +69,7 @@ $lang['maxseclevel'] = '문단 최대 편집 단계';
$lang['camelcase'] = '링크에 CamelCase 사용';
$lang['deaccent'] = '문서 이름을 지우는 방법';
$lang['useheading'] = '문서 이름으로 첫 문단 제목 사용';
-$lang['sneaky_index'] = '기본적으로 DokuWiki는 색인 목록에 모든 이름공간을 보여줍니다.
+$lang['sneaky_index'] = '기본적으로 도쿠위키는 색인 목록에 모든 이름공간을 보여줍니다.
이 옵션을 설정하면 사용자가 읽기 권한을 가지고 있지 않은 이름공간은 보여주지 않습니다. 접근 가능한 하위 이름공간을 보이지 않게 설정하면 자동으로 설정됩니다. 특정 ACL 설정은 색인 사용이 불가능하게 할 수도 있습니다.';
$lang['hidepages'] = '사이트맵과 기타 자동 색인과 같은 찾기에서 정규 표현식과 일치하는 문서 숨기기';
$lang['useacl'] = '접근 제어 목록 (ACL) 사용';
@@ -81,14 +81,14 @@ $lang['superuser'] = '슈퍼 유저 - ACL 설정과 상관없이 모
$lang['manager'] = '관리자 - 관리 기능을 사용할 수 있는 그룹이나 사용자 또는 사용자1,@그룹1,사용자2 쉼표로 구분한 목록';
$lang['profileconfirm'] = '개인 정보를 바꿀 때 비밀번호 다시 확인';
$lang['rememberme'] = '항상 로그인 정보 저장 허용 (기억하기)';
-$lang['disableactions'] = 'DokuWiki 활동 비활성화';
+$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['remote'] = '원격 API를 활성화 합니다. 이 항목을 허용하면 XML-RPC 및 기타 메커니즘을 통해 다른 어플리케이션으로 접근 가능합니다.';
$lang['remoteuser'] = '이 항목에 입력된 쉼표로 나눠진 그룹이나 사용자에게 원격 API 접근을 제한합니다. 빈칸으로 두면 모두에게 허용합니다.';
$lang['usewordblock'] = '금지 단어를 사용해 스팸 막기';
$lang['relnofollow'] = '바깥 링크에 rel="nofollow" 사용';
@@ -117,7 +117,7 @@ $lang['notify'] = '항상 이 이메일 주소로 바뀜 알림
$lang['registernotify'] = '항상 새 사용자한테 이 이메일 주소로 정보를 보냄';
$lang['mailfrom'] = '자동으로 보내지는 메일 발신자';
$lang['mailprefix'] = '자동으로 보내지는 메일의 제목 말머리 내용. 비웠을 경우 위키 제목 사용';
-$lang['htmlmail'] = '용량은 조금 더 크지만 보기 좋은 HTML 태그가 포함된 메일을 보냅니다. 텍스트만의 메일을 보내고자하면 비활성화하세요.';
+$lang['htmlmail'] = '용량은 조금 더 크지만 보기 좋은 HTML 태그가 포함된 메일을 보냅니다. 텍스트만의 메일을 보내려면 비활성화하세요.';
$lang['sitemap'] = '구글 사이트맵 생성 날짜 빈도. 0일 경우 비활성화합니다';
$lang['rss_type'] = 'XML 피드 타입';
$lang['rss_linkto'] = 'XML 피드 링크 정보';
@@ -125,7 +125,7 @@ $lang['rss_content'] = 'XML 피드 항목에 표시되는 내용은
$lang['rss_update'] = 'XML 피드 업데이트 주기 (초)';
$lang['rss_show_summary'] = 'XML 피드 제목에서 요약 보여주기';
$lang['rss_media'] = '어떤 규격으로 XML 피드를 받아보시겠습니까?';
-$lang['updatecheck'] = '업데이트와 보안 문제를 검사할까요? 이 기능을 사용하려면 DokuWiki를 update.dokuwiki.org에 연결해야 합니다.';
+$lang['updatecheck'] = '업데이트와 보안 문제를 검사할까요? 이 기능을 사용하려면 도쿠위키를 update.dokuwiki.org에 연결해야 합니다.';
$lang['userewrite'] = '멋진 URL 사용';
$lang['useslash'] = 'URL에서 이름 구분자로 슬래시 문자 사용';
$lang['sepchar'] = '문서 이름 단어 구분자';
@@ -136,13 +136,13 @@ $lang['compression'] = '첨부 파일 압축 방법 선택';
$lang['gzip_output'] = 'xhml 내용 gzip 압축 사용';
$lang['compress'] = '최적화된 CSS, 자바스크립트 출력';
$lang['cssdatauri'] = '그림이 렌더링될 최대 용량 크기를 CSS에 규정해야 HTTP 요청 헤더 오버헤드 크기를 감소시킬 수 있습니다. 이 기술은 IE 7 이하에서는 작동하지 않습니다! <code>400</code>에서 <code>600</code> 정도면 좋은 효율을 가져옵니다. <code>0</code>로 지정할 경우 비활성화 됩니다.';
-$lang['send404'] = '존재하지 않는 페이지에 대해 "HTTP 404/Page Not Found" 응답';
+$lang['send404'] = '존재하지 않는 페이지에 대해 "HTTP 404/페이지를 찾을 수 없습니다" 응답';
$lang['broken_iua'] = '설치된 시스템에서 ignore_user_abort 기능에 문제가 있습니까? 문제가 있다면 색인이 정상적으로 동작하지 않습니다. 이 기능이 IIS+PHP/CGI에서 문제가 있는 것으로 알려졌습니다. 자세한 정보는 <a href="http://bugs.dokuwiki.org/?do=details&amp;task_id=852">버그 852</a>를 참고하시기 바랍니다.';
$lang['xsendfile'] = '웹 서버가 정적 파일을 제공하도록 X-Sendfile 헤더를 사용하겠습니까? 웹 서버가 이 기능을 지원해야 합니다.';
$lang['renderer_xhtml'] = '주 (xhtml) 위키 출력 처리기';
-$lang['renderer__core'] = '%s (DokuWiki 내부)';
+$lang['renderer__core'] = '%s (도쿠위키 내부)';
$lang['renderer__plugin'] = '%s (플러그인)';
-$lang['dnslookups'] = '이 옵션을 활성화하면 DokuWiki가 문서를 편집하는 사용자의 호스트 네임과 원격 IP 주소를 확인합니다. 서버가 느리거나, DNS를 운영하지 않거나 이 기능을 원치 않으면 비활성화하세요';
+$lang['dnslookups'] = '이 옵션을 활성화하면 도쿠위키가 문서를 편집하는 사용자의 호스트 네임과 원격 IP 주소를 확인합니다. 서버가 느리거나, DNS를 운영하지 않거나 이 기능을 원치 않으면 비활성화하세요';
$lang['proxy____host'] = '프록시 서버 이름';
$lang['proxy____port'] = '프록시 서버 포트';
$lang['proxy____user'] = '프록시 사용자 이름';
@@ -154,14 +154,14 @@ $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['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['userewrite_o_2'] = '도쿠위키 내부 기능';
$lang['deaccent_o_0'] = '끄기';
$lang['deaccent_o_1'] = '악센트 제거';
$lang['deaccent_o_2'] = '라틴문자화';
@@ -190,7 +190,7 @@ $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'] = '사용자의 이메일 주소 (메일 주소 설정에 따라 안보일 수 있음)';
$lang['showuseras_o_email_link'] = 'mailto: link로 표현될 사용자 이메일 주소';
$lang['useheading_o_0'] = '아니오';
$lang['useheading_o_navigation'] = '둘러보기에만';
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/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php
index 6d582ad30..a5a11cda1 100644
--- a/lib/plugins/config/settings/config.class.php
+++ b/lib/plugins/config/settings/config.class.php
@@ -1,9 +1,9 @@
<?php
/**
- * Configuration Class and generic setting classes
+ * Configuration Class and generic setting classes
*
- * @author Chris Smith <chris@jalakai.co.uk>
- * @author Ben Coburn <btcoburn@silicodon.net>
+ * @author Chris Smith <chris@jalakai.co.uk>
+ * @author Ben Coburn <btcoburn@silicodon.net>
*/
@@ -11,500 +11,498 @@ 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);
-
- if (isset($config['varname'])) $this->_name = $config['varname'];
- if (isset($config['format'])) $this->_format = $config['format'];
- if (isset($config['heading'])) $this->_heading = $config['heading'];
-
- $this->_default_files = $config_cascade['main']['default'];
- $this->_local_files = $config_cascade['main']['local'];
- $this->_protected_files = $config_cascade['main']['protected'];
-
- $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');
+ class configuration {
- 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);
+ 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;
- $keys = array_merge(array_keys($this->_metadata),array_keys($default), array_keys($local), array_keys($protected));
- $keys = array_unique($keys);
+ // configuration filenames
+ var $_default_files = array();
+ var $_local_files = array(); // updated configuration is written to the first file
+ var $_protected_files = array();
- $param = null;
- foreach ($keys as $key) {
- if (isset($this->_metadata[$key])) {
- $class = $this->_metadata[$key][0];
+ var $_plugin_list = null;
- if($class && class_exists('setting_'.$class)){
- $class = 'setting_'.$class;
- } else {
- if($class != '') {
- $this->setting[] = new setting_no_class($key,$param);
- }
- $class = 'setting';
- }
+ /**
+ * constructor
+ */
+ function configuration($datafile) {
+ global $conf, $config_cascade;
- $param = $this->_metadata[$key];
- array_shift($param);
- } else {
- $class = 'setting_undefined';
- $param = null;
+ if (!@file_exists($datafile)) {
+ msg('No configuration metadata found at - '.htmlspecialchars($datafile),-1);
+ return;
}
+ $meta = array();
+ include($datafile);
- if (!in_array($class, $no_default_check) && !isset($default[$key])) {
- $this->setting[] = new setting_no_default($key,$param);
- }
+ if (isset($config['varname'])) $this->_name = $config['varname'];
+ if (isset($config['format'])) $this->_format = $config['format'];
+ if (isset($config['heading'])) $this->_heading = $config['heading'];
- $this->setting[$key] = new $class($key,$param);
- $this->setting[$key]->initialize($default[$key],$local[$key],$protected[$key]);
- }
+ $this->_default_files = $config_cascade['main']['default'];
+ $this->_local_files = $config_cascade['main']['local'];
+ $this->_protected_files = $config_cascade['main']['protected'];
- $this->_loaded = true;
+ $this->locked = $this->_is_locked();
+ $this->_metadata = array_merge($meta, $this->get_plugintpl_metadata($conf['template']));
+ $this->retrieve_settings();
}
- }
-
- function save_settings($id, $header='', $backup=true) {
- global $conf;
-
- if ($this->locked) return false;
- // write back to the last file in the local config cascade
- $file = end($this->_local_files);
-
- // 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;
- }
+ 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]);
+ }
- if (!$fh = @fopen($file, 'wb')) {
- io_rename($file.'.bak', $file); // problem opening, restore the backup
- return false;
- }
+ $this->_loaded = true;
+ }
+ }
- if (empty($header)) $header = $this->_heading;
+ function save_settings($id, $header='', $backup=true) {
+ global $conf;
- $out = $this->_out_header($id,$header);
+ if ($this->locked) return false;
- foreach ($this->setting as $setting) {
- $out .= $setting->out($this->_name, $this->_format);
- }
+ // write back to the last file in the local config cascade
+ $file = end($this->_local_files);
- $out .= $this->_out_footer();
+ // 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;
+ }
- @fwrite($fh, $out);
- fclose($fh);
- if($conf['fperm']) chmod($file, $conf['fperm']);
- return true;
- }
+ if (!$fh = @fopen($file, 'wb')) {
+ io_rename($file.'.bak', $file); // problem opening, restore the backup
+ return false;
+ }
- /**
- * 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);
- }
+ if (empty($header)) $header = $this->_heading;
- function _read_config_group($files) {
- $config = array();
- foreach ($files as $file) {
- $config = array_merge($config, $this->_read_config($file));
- }
+ $out = $this->_out_header($id,$header);
- return $config;
- }
+ foreach ($this->setting as $setting) {
+ $out .= $setting->out($this->_name, $this->_format);
+ }
- /**
- * return an array of config settings
- */
- function _read_config($file) {
+ $out .= $this->_out_footer();
- if (!$file) return array();
+ @fwrite($fh, $out);
+ fclose($fh);
+ if($conf['fperm']) chmod($file, $conf['fperm']);
+ return true;
+ }
- $config = array();
+ /**
+ * 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);
+ }
- if ($this->_format == 'php') {
+ function _read_config_group($files) {
+ $config = array();
+ foreach ($files as $file) {
+ $config = array_merge($config, $this->_read_config($file));
+ }
- if(@file_exists($file)){
- $contents = @php_strip_whitespace($file);
- }else{
- $contents = '';
+ return $config;
}
- $pattern = '/\$'.$this->_name.'\[[\'"]([^=]+)[\'"]\] ?= ?(.*?);(?=[^;]*(?:\$'.$this->_name.'|$))/s';
- $matches=array();
- preg_match_all($pattern,$contents,$matches,PREG_SET_ORDER);
-
- for ($i=0; $i<count($matches); $i++) {
- $value = $matches[$i][2];
+ /**
+ * return an array of config settings
+ */
+ function _read_config($file) {
- // correct issues with the incoming data
- // FIXME ... for now merge multi-dimensional array indices using ____
- $key = preg_replace('/.\]\[./',CM_KEYMARKER,$matches[$i][1]);
+ if (!$file) return array();
+ $config = array();
- // handle arrays
- if(preg_match('/^array ?\((.*)\)/', $value, $match)){
- $arr = explode(',', $match[1]);
+ if ($this->_format == 'php') {
- // 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('/^(\'|")(.*)(?<!\\\\)\1$/s','$2',$arr[$j]);
- $arr[$j] = strtr($arr[$j], 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);
+
+ for ($i=0; $i<count($matches); $i++) {
+ $value = $matches[$i][2];
+
+ // correct issues with the incoming data
+ // FIXME ... for now merge multi-dimensional array indices using ____
+ $key = preg_replace('/.\]\[./',CM_KEYMARKER,$matches[$i][1]);
+
+ // handle arrays
+ if(preg_match('/^array ?\((.*)\)/', $value, $match)){
+ $arr = explode(',', $match[1]);
+
+ // 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('/^(\'|")(.*)(?<!\\\\)\1$/s','$2',$arr[$j]);
+ $arr[$j] = strtr($arr[$j], array('\\\\'=>'\\','\\\''=>'\'','\\"'=>'"'));
+ }
+
+ $value = $arr;
+ }else{
+ // remove quotes from quoted strings & unescape escaped data
+ $value = preg_replace('/^(\'|")(.*)(?<!\\\\)\1$/s','$2',$value);
+ $value = strtr($value, array('\\\\'=>'\\','\\\''=>'\'','\\"'=>'"'));
+ }
+
+ $config[$key] = $value;
+ }
}
- $value = $arr;
- }else{
- // remove quotes from quoted strings & unescape escaped data
- $value = preg_replace('/^(\'|")(.*)(?<!\\\\)\1$/s','$2',$value);
- $value = strtr($value, array('\\\\'=>'\\','\\\''=>'\'','\\"'=>'"'));
- }
-
- $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 = '<label for="config___'.$key.'">'.$this->prompt($plugin).'</label>';
- $input = '<textarea rows="3" cols="40" id="config___'.$key.'" name="config['.$key.']" class="edit" '.$disable.'>'.$value.'</textarea>';
- 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 = '<label for="config___'.$key.'">'.$this->prompt($plugin).'</label>';
+ $input = '<textarea rows="3" cols="40" id="config___'.$key.'" name="config['.$key.']" class="edit" '.$disable.'>'.$value.'</textarea>';
+ 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 '<a href="http://www.dokuwiki.org/config:startpage">'.$out.'</a>';
- else
- return '<a href="http://www.dokuwiki.org/config:'.$out.'">'.$out.'</a>';
+ 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 '<a href="http://www.dokuwiki.org/config:startpage">'.$out.'</a>';
+ else
+ return '<a href="http://www.dokuwiki.org/config:'.$out.'">'.$out.'</a>';
+ }
+ return $out;
+ }else{
+ return str_replace(CM_KEYMARKER,"']['",$this->_key);
}
- return $out;
- }else{
- return str_replace(CM_KEYMARKER,"']['",$this->_key);
}
}
- }
}
@@ -612,201 +610,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 = '';
- $key = htmlspecialchars($this->_key);
- $value = htmlspecialchars($value);
+ 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;
+ }
+ }
- $label = '<label for="config___'.$key.'">'.$this->prompt($plugin).'</label>';
- $input = '<input id="config___'.$key.'" name="config['.$key.']" type="text" class="edit" value="'.$value.'" '.$disable.'/>';
- return array($label,$input);
+ $key = htmlspecialchars($this->_key);
+ $value = htmlspecialchars($value);
+
+ $label = '<label for="config___'.$key.'">'.$this->prompt($plugin).'</label>';
+ $input = '<input id="config___'.$key.'" name="config['.$key.']" type="text" class="edit" value="'.$value.'" '.$disable.'/>';
+ 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 = '<label for="config___'.$key.'">'.$this->prompt($plugin).'</label>';
- $input = '<input id="config___'.$key.'" name="config['.$key.']" autocomplete="off" type="password" class="edit" value="" '.$disable.' />';
- return array($label,$input);
+ $label = '<label for="config___'.$key.'">'.$this->prompt($plugin).'</label>';
+ $input = '<input id="config___'.$key.'" name="config['.$key.']" autocomplete="off" type="password" class="edit" value="" '.$disable.' />';
+ 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;
- }
- 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;
- }
- }
+ // check them all
+ foreach ($mails as $mail) {
+ // only check the address part
+ if(preg_match('#(.*?)<(.*?)>#', $mail, $matches)){
+ $addr = $matches[2];
+ }else{
+ $addr = $mail;
+ }
- $multiple = $this->_multiple ? 'multiple="multiple"' : '';
- $key = htmlspecialchars($this->_key);
- $value = htmlspecialchars($value);
+ if (!mail_isvalid($addr)) {
+ $this->_error = true;
+ $this->_input = $input;
+ return false;
+ }
+ }
- $label = '<label for="config___'.$key.'">'.$this->prompt($plugin).'</label>';
- $input = '<input id="config___'.$key.'" name="config['.$key.']" type="email" class="edit" value="'.$value.'" '.$multiple.' '.$disable.'/>';
- return array($label,$input);
+ $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')) {
@@ -817,320 +792,320 @@ 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, $echo = false) {
+ $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 = '<label for="config___'.$key.'">'.$this->prompt($plugin).'</label>';
- $input = '<div class="input"><input id="config___'.$key.'" name="config['.$key.']" type="checkbox" class="checkbox" value="1"'.$checked.$disable.'/></div>';
- return array($label,$input);
- }
+ $label = '<label for="config___'.$key.'">'.$this->prompt($plugin).'</label>';
+ $input = '<div class="input"><input id="config___'.$key.'" name="config['.$key.']" type="checkbox" class="checkbox" value="1"'.$checked.$disable.'/></div>';
+ 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, $echo = false) {
+ $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 = '<label for="config___'.$key.'">'.$this->prompt($plugin).'</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 = "<div class=\"input\">\n";
- $input .= '<select class="edit" id="config___'.$key.'" name="config['.$key.']"'.$disable.'>'."\n";
- foreach ($this->_choices as $choice) {
- $selected = ($value == $choice) ? ' selected="selected"' : '';
- $option = $plugin->getLang($this->_key.'_o_'.$choice);
- if (!$option && isset($this->lang[$this->_key.'_o_'.$choice])) $option = $this->lang[$this->_key.'_o_'.$choice];
- if (!$option) $option = $choice;
+ $key = htmlspecialchars($this->_key);
- $choice = htmlspecialchars($choice);
- $option = htmlspecialchars($option);
- $input .= ' <option value="'.$choice.'"'.$selected.' >'.$option.'</option>'."\n";
- }
- $input .= "</select> $nochoice \n";
- $input .= "</div>\n";
+ $label = '<label for="config___'.$key.'">'.$this->prompt($plugin).'</label>';
- return array($label,$input);
- }
+ $input = "<div class=\"input\">\n";
+ $input .= '<select class="edit" id="config___'.$key.'" name="config['.$key.']"'.$disable.'>'."\n";
+ foreach ($this->_choices as $choice) {
+ $selected = ($value == $choice) ? ' selected="selected"' : '';
+ $option = $plugin->getLang($this->_key.'_o_'.$choice);
+ if (!$option && isset($this->lang[$this->_key.'_o_'.$choice])) $option = $this->lang[$this->_key.'_o_'.$choice];
+ if (!$option) $option = $choice;
+
+ $choice = htmlspecialchars($choice);
+ $option = htmlspecialchars($option);
+ $input .= ' <option value="'.$choice.'"'.$selected.' >'.$option.'</option>'."\n";
+ }
+ $input .= "</select> $nochoice \n";
+ $input .= "</div>\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 .= '<div class="selection'.$class.'">'."\n";
+ $input .= '<label for="config___'.$key.'_'.$choice.'">'.$prompt."</label>\n";
+ $input .= '<input id="config___'.$key.'_'.$choice.'" name="config['.$key.'][]" type="checkbox" class="checkbox" value="'.$choice.'" '.$disable.' '.$checked."/>\n";
+ $input .= "</div>\n";
- $input .= '<div class="selection'.$class.'">'."\n";
- $input .= '<label for="config___'.$key.'_'.$choice.'">'.$prompt."</label>\n";
- $input .= '<input id="config___'.$key.'_'.$choice.'" name="config['.$key.'][]" type="checkbox" class="checkbox" value="'.$choice.'" '.$disable.' '.$checked."/>\n";
- $input .= "</div>\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 .= '<div class="other'.$class.'">'."\n";
+ $input .= '<label for="config___'.$key.'_other">'.$plugin->getLang($key.'_other')."</label>\n";
+ $input .= '<input id="config___'.$key.'_other" name="config['.$key.'][other]" type="text" class="edit" value="'.htmlspecialchars($other).'" '.$disable." />\n";
+ $input .= "</div>\n";
- $input .= '<div class="other'.$class.'">'."\n";
- $input .= '<label for="config___'.$key.'_other">'.$plugin->getLang($key.'_other')."</label>\n";
- $input .= '<input id="config___'.$key.'_other" name="config['.$key.'][other]" type="text" class="edit" value="'.htmlspecialchars($other).'" '.$disable." />\n";
- $input .= "</div>\n";
+ $label = '<label>'.$this->prompt($plugin).'</label>';
+ return array($label,$input);
+ }
- $label = '<label>'.$this->prompt($plugin).'</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
/**
- * 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/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
*
diff --git a/lib/plugins/config/settings/extra.class.php b/lib/plugins/config/settings/extra.class.php
index e4b97eb01..83de802a3 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<strlen($str);$i++) $this->_choices[] = $str{$i};
+ function setting_sepchar($key,$param=null) {
+ $str = '_-.';
+ for ($i=0;$i<strlen($str);$i++) $this->_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/info/syntax.php b/lib/plugins/info/syntax.php
index 5e7543603..f8c6eb484 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,8 +56,9 @@ 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'){
+ /** @var Doku_Renderer_xhtml $renderer */
//handle various info stuff
switch ($data[0]){
case 'syntaxmodes':
@@ -112,7 +113,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();
}
@@ -142,11 +143,9 @@ class syntax_plugin_info extends DokuWiki_Syntax_Plugin {
* uses some of the original renderer methods
*/
function _helpermethods_xhtml(Doku_Renderer &$renderer){
- global $lang;
-
$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 +155,7 @@ class syntax_plugin_info extends DokuWiki_Syntax_Plugin {
$doc = '<h2><a name="'.$hid.'" id="'.$hid.'">'.hsc($info['name']).'</a></h2>';
$doc .= '<div class="level2">';
$doc .= '<p>'.strtr(hsc($info['desc']), array("\n"=>"<br />")).'</p>';
- $doc .= '<pre class="code">$'.$p." =& plugin_load('helper', '".$p."');</pre>";
+ $doc .= '<pre class="code">$'.$p." = plugin_load('helper', '".$p."');</pre>";
$doc .= '</div>';
foreach ($methods as $method){
$title = '$'.$p.'->'.$method['name'].'()';
@@ -215,21 +214,47 @@ 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 .= '<div class="table"><table class="inline"><tbody>';
+
+ foreach($compactmodes as $sort => $modes){
+ $rowspan = '';
+ if(count($modes) > 1) {
+ $rowspan = ' rowspan="'.count($modes).'"';
+ }
+
+ foreach($modes as $index => $mode) {
+ $doc .= '<tr>';
+ $doc .= '<td class="leftalign">';
+ $doc .= $mode;
+ $doc .= '</td>';
- foreach ($modes as $mode){
- $doc .= $mode['mode'].' ('.$mode['sort'].'), ';
+ if($index === 0) {
+ $doc .= '<td class="rightalign" '.$rowspan.'>';
+ $doc .= $sort;
+ $doc .= '</td>';
+ }
+ $doc .= '</tr>';
+ }
}
+
+ $doc .= '</tbody></table></div>';
return $doc;
}
/**
* 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,
diff --git a/lib/plugins/plugin/admin.php b/lib/plugins/plugin/admin.php
index de4de6aef..3f019d5e2 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
@@ -65,7 +65,6 @@ class admin_plugin_plugin extends DokuWiki_Admin_Plugin {
// enable direct access to language strings
$this->setupLocale();
-
$fn = $INPUT->param('fn');
if (is_array($fn)) {
$this->cmd = key($fn);
@@ -109,7 +108,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('<div id="plugin__manager">');
$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..89b78fa2d 100644
--- a/lib/plugins/plugin/classes/ap_info.class.php
+++ b/lib/plugins/plugin/classes/ap_info.class.php
@@ -13,9 +13,8 @@ class ap_info extends ap_manage {
$component_list = $this->get_plugin_components($this->manager->plugin);
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]){
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/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 @@
<?php
+
/**
- * Arabic language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Yaman Hokan <always.smile.yh@hotmail.com>
* @author Usama Akkad <uahello@gmail.com>
* @author uahello@gmail.com
diff --git a/lib/plugins/plugin/lang/cs/lang.php b/lib/plugins/plugin/lang/cs/lang.php
index 98fae12c7..fb8b6cc4e 100644
--- a/lib/plugins/plugin/lang/cs/lang.php
+++ b/lib/plugins/plugin/lang/cs/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Czech language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Tomas Valenta <t.valenta@sh.cvut.cz>
* @author Zbynek Krivka <zbynek.krivka@seznam.cz>
* @author Bohumir Zamecnik <bohumir@zamecnik.org>
@@ -14,6 +14,8 @@
* @author Bohumir Zamecnik <bohumir.zamecnik@gmail.com>
* @author Jakub A. Těšínský (j@kub.cz)
* @author mkucera66@seznam.cz
+ * @author Zbyněk Křivka <krivka@fit.vutbr.cz>
+ * @author Gerrit Uitslag <klapinklapin@gmail.com>
*/
$lang['menu'] = 'Správa pluginů';
$lang['download'] = 'Stáhnout a instalovat plugin';
diff --git a/lib/plugins/plugin/lang/da/lang.php b/lib/plugins/plugin/lang/da/lang.php
index d1deb6310..07077eaa1 100644
--- a/lib/plugins/plugin/lang/da/lang.php
+++ b/lib/plugins/plugin/lang/da/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Danish language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Lars Næsbye Christensen <larsnaesbye@stud.ku.dk>
* @author Kalle Sommer Nielsen <kalle@php.net>
* @author Esben Laursen <hyber@hyber.dk>
@@ -12,6 +12,7 @@
* @author rasmus@kinnerup.com
* @author Michael Pedersen subben@gmail.com
* @author Mikael Lyngvig <mikael@lyngvig.org>
+ * @author Jens Hyllegaard <jens.hyllegaard@gmail.com>
*/
$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';
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 @@
<?php
+
/**
- * German (informal) language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Alexander Fischer <tbanus@os-forge.net>
* @author Juergen Schwarzer <jschwarzer@freenet.de>
* @author Marcel Metz <marcel_metz@gmx.de>
diff --git a/lib/plugins/plugin/lang/de/lang.php b/lib/plugins/plugin/lang/de/lang.php
index 9f26a2933..f41486007 100644
--- a/lib/plugins/plugin/lang/de/lang.php
+++ b/lib/plugins/plugin/lang/de/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * german language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Esther Brunner <esther@kaffeehaus.ch>
* @author Andreas Gohr <andi@splitbrain.org>
* @author Michael Klier <chi@chimeric.de>
diff --git a/lib/plugins/plugin/lang/el/lang.php b/lib/plugins/plugin/lang/el/lang.php
index 4a6f1dbfd..f50e26c46 100644
--- a/lib/plugins/plugin/lang/el/lang.php
+++ b/lib/plugins/plugin/lang/el/lang.php
@@ -1,11 +1,8 @@
<?php
+
/**
- * Greek language file
- *
- * Based on DokuWiki Version rc2007-05-24 english language file
- * Original english language file contents included for reference
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Christopher Smith <chris@jalakai.co.uk>
* @author Thanos Massias <tm@thriasio.gr>
* @author Αθανάσιος Νταής <homunculus@wana.gr>
diff --git a/lib/plugins/plugin/lang/eo/lang.php b/lib/plugins/plugin/lang/eo/lang.php
index 67553454c..624246a21 100644
--- a/lib/plugins/plugin/lang/eo/lang.php
+++ b/lib/plugins/plugin/lang/eo/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Esperantolanguage file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Felipe Castro <fefcas@uol.com.br>
* @author Felipe Castro <fefcas@gmail.com>
* @author Felipe Castro <fefcas (cxe) gmail (punkto) com>
diff --git a/lib/plugins/plugin/lang/es/lang.php b/lib/plugins/plugin/lang/es/lang.php
index ded7d7369..0ec39285b 100644
--- a/lib/plugins/plugin/lang/es/lang.php
+++ b/lib/plugins/plugin/lang/es/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * spanish language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Miguel Pagano <miguel.pagano@gmail.com>
* @author Oscar M. Lage <r0sk10@gmail.com>
* @author Gabriel Castillo <gch@pumas.ii.unam.mx>
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 @@
<?php
+
/**
- * Persian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author behrad eslamifar <behrad_es@yahoo.com)
* @author Mohsen Firoozmandan <info@mambolearn.com>
* @author omidmr@gmail.com
diff --git a/lib/plugins/plugin/lang/fr/lang.php b/lib/plugins/plugin/lang/fr/lang.php
index 2926225ed..0592f3c7d 100644
--- a/lib/plugins/plugin/lang/fr/lang.php
+++ b/lib/plugins/plugin/lang/fr/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * french language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Guy Brand <gb@unistra.fr>
* @author Delassaux Julien <julien@delassaux.fr>
* @author Maurice A. LeBlanc <leblancma@cooptel.qc.ca>
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 @@
<?php
+
/**
- * hebrew language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author DoK <kamberd@yahoo.com>
* @author Dotan Kamber <kamberd@yahoo.com>
* @author Moshe Kaplan <mokplan@gmail.com>
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 @@
<?php
+
/**
- * Hindi language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Abhinav Tyagi <abhinavtyagi11@gmail.com>
* @author yndesai@gmail.com
*/
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 @@
<?php
+
/**
- * Hungarian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Sandor TIHANYI <stihanyi+dw@gmail.com>
* @author Siaynoq Mage <siaynoqmage@gmail.com>
* @author schilling.janos@gmail.com
diff --git a/lib/plugins/plugin/lang/it/lang.php b/lib/plugins/plugin/lang/it/lang.php
index 9ae55c5de..186bf976e 100644
--- a/lib/plugins/plugin/lang/it/lang.php
+++ b/lib/plugins/plugin/lang/it/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Italian language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Christopher Smith <chris@jalakai.co.uk>
* @author Silvia Sargentoni <polinnia@tin.it>
* @author Pietro Battiston toobaz@email.it
diff --git a/lib/plugins/plugin/lang/ja/lang.php b/lib/plugins/plugin/lang/ja/lang.php
index 73f295157..d66e109ce 100644
--- a/lib/plugins/plugin/lang/ja/lang.php
+++ b/lib/plugins/plugin/lang/ja/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * japanese language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Yuji Takenaka <webmaster@davilin.com>
* @author Christopher Smith <chris@jalakai.co.uk>
* @author Ikuo Obataya <i.obataya@gmail.com>
diff --git a/lib/plugins/plugin/lang/ko/admin_plugin.txt b/lib/plugins/plugin/lang/ko/admin_plugin.txt
index aeef5fedf..9390712dd 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 4e615b118..6ef9cd69a 100644
--- a/lib/plugins/plugin/lang/ko/lang.php
+++ b/lib/plugins/plugin/lang/ko/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Korean language file
- *
- * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author jk Lee
* @author dongnak@gmail.com
* @author Song Younghwan <purluno@gmail.com>
@@ -11,8 +11,8 @@
* @author Myeongjin <aranet100@gmail.com>
*/
$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'] = '업데이트 중 ...';
@@ -41,15 +41,15 @@ $lang['name'] = '이름:';
$lang['date'] = '날짜:';
$lang['type'] = '종류:';
$lang['desc'] = '설명:';
-$lang['author'] = '만든이:';
+$lang['author'] = '저자:';
$lang['www'] = '웹:';
$lang['error'] = '알 수 없는 문제가 발생했습니다.';
$lang['error_download'] = '플러그인 파일을 다운로드 할 수 없습니다: %s';
$lang['error_badurl'] = '잘못된 URL 같습니다 - URL에서 파일 이름을 알 수 없습니다';
-$lang['error_dircreate'] = '다운로드를 받기 위한 임시 디렉토리를 만들 수 없습니다';
-$lang['error_decompress'] = '플러그인 관리자가 다운로드 받은 파일을 압축을 풀 수 없습니다. 잘못 다운로드 받았을 수도 있으니 다시 한번 시도하거나 압축 포맷을 알 수 없는 경우에는 다운로드한 후 수동으로 직접 설치하세요.';
+$lang['error_dircreate'] = '다운로드를 받기 위한 임시 디렉터리를 만들 수 없습니다';
+$lang['error_decompress'] = '플러그인 관리자가 다운로드 받은 파일을 압축을 풀 수 없습니다. 잘못 다운로드 받았을 수도 있으니 다시 한 번 시도하거나 압축 포맷을 알 수 없는 경우에는 다운로드한 후 수동으로 직접 설치하세요.';
$lang['error_copy'] = '플러그인을 설치하는 동안 파일 복사하는 데 오류가 발생했습니다. <em>%s</em>: 디스크가 꽉 찼거나 파일 접근 권한이 잘못된 경우입니다. 플러그인 설치가 부분적으로만 이루어졌을 것입니다. 설치가 불완전합니다.';
-$lang['error_delete'] = '<em>%s</em> 플러그인을 삭제하는 동안 오류가 발생했습니다. 대부분의 경우 불완전한 파일이거나 디렉토리 접근 권한이 잘못된 경우입니다';
+$lang['error_delete'] = '<em>%s</em> 플러그인을 삭제하는 동안 오류가 발생했습니다. 대부분의 경우 불완전한 파일이거나 디렉터리 접근 권한이 잘못된 경우입니다';
$lang['enabled'] = '%s 플러그인을 활성화했습니다.';
$lang['notenabled'] = '%s 플러그인을 활성화할 수 없습니다. 파일 권한을 확인하세요.';
$lang['disabled'] = '%s 플러그인을 비활성화했습니다.';
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 @@
<?php
+
/**
- * Nepali language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Saroj Kumar Dhakal <lotusnagarkot@gmail.com>
* @author SarojKumar Dhakal <lotusnagarkot@yahoo.com>
* @author Saroj Dhakal<lotusnagarkot@yahoo.com>
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 <ricardoguijt@gmail.com>
* @author Gerrit <klapinklapin@gmail.com>
+ * @author Remon <no@email.local>
*/
$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 <em>%s</em>: 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 <em>%s</em>: 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 <em>%s</em>. 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/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 @@
<?php
+
/**
- * Portuguese language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Frederico Gonçalves Guimarães <frederico@teia.bio.br>
* @author Felipe Castro <fefcas@gmail.com>
* @author Lucien Raven <lucienraven@yahoo.com.br>
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 @@
<?php
+
/**
- * Portugueselanguage file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author José Monteiro <Jose.Monteiro@DoWeDo-IT.com>
* @author Enrico Nicoletto <liverig@gmail.com>
* @author Fil <fil@meteopt.com>
diff --git a/lib/plugins/plugin/lang/ru/lang.php b/lib/plugins/plugin/lang/ru/lang.php
index 7b9579e96..b933f7754 100644
--- a/lib/plugins/plugin/lang/ru/lang.php
+++ b/lib/plugins/plugin/lang/ru/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * russian language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Denis Simakov <akinoame1@gmail.com>
* @author Andrew Pleshakov <beotiger@mail.ru>
* @author Змей Этерийский evil_snake@eternion.ru
@@ -51,16 +51,16 @@ $lang['date'] = 'Дата:';
$lang['type'] = 'Тип:';
$lang['desc'] = 'Описание:';
$lang['author'] = 'Автор:';
-$lang['www'] = 'Странца:';
+$lang['www'] = 'Страница:';
$lang['error'] = 'Произошла неизвестная ошибка.';
$lang['error_download'] = 'Не могу скачать файл плагина: %s';
$lang['error_badurl'] = 'Возможно неправильный адрес — не могу определить имя файла из адреса';
$lang['error_dircreate'] = 'Не могу создать временную директорию для скачивания';
$lang['error_decompress'] = 'Менеджеру плагинов не удалось распаковать скачанный файл. Это может быть результатом ошибки при скачивании, в этом случае вы можете попробовать снова, или же плагин упакован неизвестным архиватором, тогда вам необходимо скачать и установить плагин вручную.';
-$lang['error_copy'] = 'Произошла ошибка копирования при попытке установки файлов для плагина <em>%s</em>: переполнение диска или неправильные права доступа. Это могло привести к частичной установке плагина и неустойчивости вашей вики.';
+$lang['error_copy'] = 'Произошла ошибка копирования при попытке установки файлов для плагина <em>%s</em>: переполнение диска или неправильные права доступа. Это могло привести к частичной установке плагина и неустойчивости работы вашей вики.';
$lang['error_delete'] = 'Произошла ошибка при попытке удалить плагин <em>%s</em>. Наиболее вероятно, что нет необходимых прав доступа к файлам или директориям';
-$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/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 @@
<?php
+
/**
- * Slovak language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Ondrej Végh <ov@vsieti.sk>
* @author Michal Mesko <michal.mesko@gmail.com>
* @author exusik@gmail.com
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 @@
<?php
+
/**
- * Slovenian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Dejan Levec <webphp@gmail.com>
* @author Boštjan Seničar <senicar@gmail.com>
* @author Gregor Skumavc (grega.skumavc@gmail.com)
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 @@
<?php
+
/**
- * Turkish language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Aydın Coşkuner <aydinweb@gmail.com>
* @author Cihan Kahveci <kahvecicihan@gmail.com>
* @author Yavuz Selim <yavuzselim@gmail.com>
diff --git a/lib/plugins/plugin/lang/uk/lang.php b/lib/plugins/plugin/lang/uk/lang.php
index 036900f4e..c6d5990fc 100644
--- a/lib/plugins/plugin/lang/uk/lang.php
+++ b/lib/plugins/plugin/lang/uk/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * ukrainian language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Oleksiy Voronin (ovoronin@gmail.com)
* @author serg_stetsuk@ukr.net
* @author okunia@gmail.com
diff --git a/lib/plugins/plugin/lang/zh-tw/lang.php b/lib/plugins/plugin/lang/zh-tw/lang.php
index 56149e79e..bc84059fd 100644
--- a/lib/plugins/plugin/lang/zh-tw/lang.php
+++ b/lib/plugins/plugin/lang/zh-tw/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Chinese Traditional language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Li-Jiun Huang <ljhuang.tw@gmail.com>
* @author http://www.chinese-tools.com/tools/converter-simptrad.html
* @author Wayne San <waynesan@zerozone.tw>
diff --git a/lib/plugins/plugin/lang/zh/lang.php b/lib/plugins/plugin/lang/zh/lang.php
index 473d31ead..f69410503 100644
--- a/lib/plugins/plugin/lang/zh/lang.php
+++ b/lib/plugins/plugin/lang/zh/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * english language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author ZDYX <zhangduyixiong@gmail.com>
* @author http://www.chinese-tools.com/tools/converter-tradsimp.html
* @author George Sheraton guxd@163.com
diff --git a/lib/plugins/popularity/action.php b/lib/plugins/popularity/action.php
index f0cbb771b..9e2e78d11 100644
--- a/lib/plugins/popularity/action.php
+++ b/lib/plugins/popularity/action.php
@@ -35,7 +35,6 @@ class action_plugin_popularity extends Dokuwiki_Action_Plugin {
//Actually send it
$status = $this->helper->sendData( $this->helper->gatherAsString() );
-
if ( $status !== '' ){
//If an error occured, log it
io_saveFile( $this->helper->autosubmitErrorFile, $status );
diff --git a/lib/plugins/popularity/admin.php b/lib/plugins/popularity/admin.php
index deb8048f4..bd2d090e1 100644
--- a/lib/plugins/popularity/admin.php
+++ b/lib/plugins/popularity/admin.php
@@ -13,7 +13,6 @@ if(!defined('DOKU_INC')) die();
* need to inherit from this class
*/
class admin_plugin_popularity extends DokuWiki_Admin_Plugin {
- var $version;
/**
* @var helper_plugin_popularity
@@ -23,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->version = $pluginInfo['date'];
}
/**
diff --git a/lib/plugins/popularity/helper.php b/lib/plugins/popularity/helper.php
index 0e38bcb88..eacde06d0 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;
@@ -39,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(
@@ -125,15 +128,17 @@ 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');
@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();
@@ -245,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'){
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 @@
<?php
+
/**
- * Arabic language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Yaman Hokan <always.smile.yh@hotmail.com>
* @author Usama Akkad <uahello@gmail.com>
* @author uahello@gmail.com
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 @@
<?php
+
/**
- * Czech language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Bohumir Zamecnik <bohumir@zamecnik.org>
* @author tomas@valenta.cz
* @author Marek Sacha <sachamar@fel.cvut.cz>
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 @@
<?php
+
/**
- * Danish language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Kalle Sommer Nielsen <kalle@php.net>
* @author Esben Laursen <hyber@hyber.dk>
* @author Harith <haj@berlingske.dk>
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
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 @@
<?php
+
/**
- * German (informal) language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Alexander Fischer <tbanus@os-forge.net>
* @author Juergen Schwarzer <jschwarzer@freenet.de>
* @author Marcel Metz <marcel_metz@gmx.de>
diff --git a/lib/plugins/popularity/lang/de/lang.php b/lib/plugins/popularity/lang/de/lang.php
index 42bdc14d5..a86fce50d 100644
--- a/lib/plugins/popularity/lang/de/lang.php
+++ b/lib/plugins/popularity/lang/de/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * German language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Leo Moll <leo@yeasoft.com>
* @author Florian Anderiasch <fa@art-core.org>
* @author Robin Kluth <commi1993@gmail.com>
diff --git a/lib/plugins/popularity/lang/el/lang.php b/lib/plugins/popularity/lang/el/lang.php
index 10268a4c3..37a036930 100644
--- a/lib/plugins/popularity/lang/el/lang.php
+++ b/lib/plugins/popularity/lang/el/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Greek language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Konstantinos Koryllos <koryllos@gmail.com>
* @author George Petsagourakis <petsagouris@gmail.com>
* @author Petros Vidalis <pvidalis@gmail.com>
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 @@
<?php
+
/**
- * Esperanto language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Felipo Kastro <fefcas@gmail.com>
* @author Felipe Castro <fefcas@gmail.com>
* @author Robert Bogenschneider <robog@gmx.de>
diff --git a/lib/plugins/popularity/lang/es/lang.php b/lib/plugins/popularity/lang/es/lang.php
index e46735782..337a8ea3a 100644
--- a/lib/plugins/popularity/lang/es/lang.php
+++ b/lib/plugins/popularity/lang/es/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Spanish language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author oliver@samera.com.py
* @author Enrico Nicoletto <liverig@gmail.com>
* @author Manuel Meco <manuel.meco@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 @@
<?php
+
/**
- * Persian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author behrad eslamifar <behrad_es@yahoo.com)
* @author Mohsen Firoozmandan <info@mambolearn.com>
* @author omidmr@gmail.com
diff --git a/lib/plugins/popularity/lang/fr/lang.php b/lib/plugins/popularity/lang/fr/lang.php
index b7e053197..7603b2a08 100644
--- a/lib/plugins/popularity/lang/fr/lang.php
+++ b/lib/plugins/popularity/lang/fr/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * French language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Guy Brand <gb@unistra.fr>
* @author stephane.gully@gmail.com
* @author Guillaume Turri <guillaume.turri@gmail.com>
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 @@
<?php
+
/**
- * Hebrew language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Dotan Kamber <kamberd@yahoo.com>
* @author Moshe Kaplan <mokplan@gmail.com>
* @author Yaron Yogev <yaronyogev@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 @@
<?php
+
/**
- * Hindi language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Abhinav Tyagi <abhinavtyagi11@gmail.com>
* @author yndesai@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 @@
<?php
+
/**
- * Hungarian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Sandor TIHANYI <stihanyi+dw@gmail.com>
* @author Siaynoq Mage <siaynoqmage@gmail.com>
* @author schilling.janos@gmail.com
diff --git a/lib/plugins/popularity/lang/it/lang.php b/lib/plugins/popularity/lang/it/lang.php
index a0cf274aa..9edefba84 100644
--- a/lib/plugins/popularity/lang/it/lang.php
+++ b/lib/plugins/popularity/lang/it/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Italian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Diego Pierotto ita.translations@tiscali.it
* @author ita.translations@tiscali.it
* @author Lorenzo Breda <lbreda@gmail.com>
diff --git a/lib/plugins/popularity/lang/ja/lang.php b/lib/plugins/popularity/lang/ja/lang.php
index 774785511..50346c7ee 100644
--- a/lib/plugins/popularity/lang/ja/lang.php
+++ b/lib/plugins/popularity/lang/ja/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Japanese language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Ikuo Obataya <i.obataya@gmail.com>
* @author Daniel Dupriest <kououken@gmail.com>
* @author Kazutaka Miyasaka <kazmiya@gmail.com>
diff --git a/lib/plugins/popularity/lang/ko/intro.txt b/lib/plugins/popularity/lang/ko/intro.txt
index 0c884546a..bc9bb9dd0 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/popularity/lang/ko/lang.php b/lib/plugins/popularity/lang/ko/lang.php
index 3463f4f8e..f52e0007a 100644
--- a/lib/plugins/popularity/lang/ko/lang.php
+++ b/lib/plugins/popularity/lang/ko/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Korean language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author jk Lee
* @author dongnak@gmail.com
* @author Song Younghwan <purluno@gmail.com>
@@ -11,7 +12,7 @@
*/
$lang['name'] = '인기도 조사 (불러오는 데 시간이 걸릴 수 있습니다)';
$lang['submit'] = '자료 보내기';
-$lang['autosubmit'] = '자료를 자동으로 매달 한번씩 보내기';
+$lang['autosubmit'] = '자료를 자동으로 한 달에 한 번씩 보내기';
$lang['submissionFailed'] = '다음과 같은 이유로 자료 보내기에 실패했습니다:';
$lang['submitDirectly'] = '아래의 양식에 맞춰 수동으로 작성된 자료를 보낼 수 있습니다.';
$lang['autosubmitError'] = '다음과 같은 이유로 자동 자료 보내기에 실패했습니다:';
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 @@
<?php
+
/**
- * Nepali language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Saroj Kumar Dhakal <lotusnagarkot@gmail.com>
* @author SarojKumar Dhakal <lotusnagarkot@yahoo.com>
* @author Saroj Dhakal<lotusnagarkot@yahoo.com>
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 <ricardoguijt@gmail.com>
* @author Gerrit <klapinklapin@gmail.com>
+ * @author Remon <no@email.local>
*/
$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/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 @@
<?php
+
/**
- * Portuguese language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Frederico Gonçalves Guimarães <frederico@teia.bio.br>
* @author Lucien Raven <lucienraven@yahoo.com.br>
* @author Enrico Nicoletto <liverig@gmail.com>
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 @@
<?php
+
/**
- * Portuguese language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Enrico Nicoletto <liverig@gmail.com>
* @author Fil <fil@meteopt.com>
* @author André Neves <drakferion@gmail.com>
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.
diff --git a/lib/plugins/popularity/lang/ru/lang.php b/lib/plugins/popularity/lang/ru/lang.php
index a7f33156f..9c03ccda6 100644
--- a/lib/plugins/popularity/lang/ru/lang.php
+++ b/lib/plugins/popularity/lang/ru/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Russian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Змей Этерийский evil_snake@eternion.ru
* @author Hikaru Nakajima <jisatsu@mail.ru>
* @author Alexei Tereschenko <alexeitlex@yahoo.com>
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/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 @@
<?php
+
/**
- * Slovak language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Michal Mesko <michal.mesko@gmail.com>
* @author exusik@gmail.com
* @author Martin Michalek <michalek.dev@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 @@
<?php
+
/**
- * Slovenian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Matej Urbančič (mateju@svn.gnome.org)
*/
$lang['name'] = 'Poročilo o uporabi (nalaganje strani je lahko dolgotrajno)';
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 @@
<?php
+
/**
- * Turkish language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Aydın Coşkuner <aydinweb@gmail.com>
* @author Cihan Kahveci <kahvecicihan@gmail.com>
* @author Yavuz Selim <yavuzselim@gmail.com>
diff --git a/lib/plugins/popularity/lang/uk/lang.php b/lib/plugins/popularity/lang/uk/lang.php
index 584641482..9d67c1151 100644
--- a/lib/plugins/popularity/lang/uk/lang.php
+++ b/lib/plugins/popularity/lang/uk/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Ukrainian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author serg_stetsuk@ukr.net
* @author okunia@gmail.com
* @author Oleksandr Kunytsia <okunia@gmail.com>
diff --git a/lib/plugins/popularity/lang/zh-tw/lang.php b/lib/plugins/popularity/lang/zh-tw/lang.php
index b34efe995..252c606a9 100644
--- a/lib/plugins/popularity/lang/zh-tw/lang.php
+++ b/lib/plugins/popularity/lang/zh-tw/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Chinese Traditional language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Li-Jiun Huang <ljhuang.tw@gmail.com>
* @author http://www.chinese-tools.com/tools/converter-simptrad.html
* @author Wayne San <waynesan@zerozone.tw>
diff --git a/lib/plugins/popularity/lang/zh/lang.php b/lib/plugins/popularity/lang/zh/lang.php
index 9c916c2a5..532abb890 100644
--- a/lib/plugins/popularity/lang/zh/lang.php
+++ b/lib/plugins/popularity/lang/zh/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Chinese language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author ZDYX <zhangduyixiong@gmail.com>
* @author http://www.chinese-tools.com/tools/converter-tradsimp.html
* @author George Sheraton guxd@163.com
diff --git a/lib/plugins/popularity/plugin.info.txt b/lib/plugins/popularity/plugin.info.txt
index 17f3110c4..4dc971d3a 100644
--- a/lib/plugins/popularity/plugin.info.txt
+++ b/lib/plugins/popularity/plugin.info.txt
@@ -3,5 +3,5 @@ author Andreas Gohr
email andi@splitbrain.org
date 2012-11-29
name Popularity Feedback Plugin
-desc Send anonymous data about your wiki to the developers.
+desc Send anonymous data about your wiki to the DokuWiki developers
url http://www.dokuwiki.org/plugin:popularity
diff --git a/lib/plugins/revert/admin.php b/lib/plugins/revert/admin.php
index beff10ced..423d67449 100644
--- a/lib/plugins/revert/admin.php
+++ b/lib/plugins/revert/admin.php
@@ -120,7 +120,6 @@ class admin_plugin_revert extends DokuWiki_Admin_Plugin {
$recents = getRecents(0,$this->max_lines);
echo '<ul>';
-
$cnt = 0;
foreach($recents as $recent){
if($filter){
@@ -157,7 +156,7 @@ class admin_plugin_revert extends DokuWiki_Admin_Plugin {
echo "<img $att />";
echo '</a> ';
- 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 ' <span class="user">';
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 @@
<?php
+
/**
- * Arabic language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Yaman Hokan <always.smile.yh@hotmail.com>
* @author Usama Akkad <uahello@gmail.com>
* @author uahello@gmail.com
+ * @author Ahmad Abd-Elghany <tolpa1@gmail.com>
*/
$lang['menu'] = 'مدير الاسترجاع';
$lang['filter'] = 'ابحث في الصفحات المتأذاة';
diff --git a/lib/plugins/revert/lang/cs/lang.php b/lib/plugins/revert/lang/cs/lang.php
index eef3295ba..b9e7284d4 100644
--- a/lib/plugins/revert/lang/cs/lang.php
+++ b/lib/plugins/revert/lang/cs/lang.php
@@ -1,9 +1,8 @@
<?php
+
/**
- * Czech language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Bohumir Zamecnik <bohumir@zamecnik.org>
* @author Zbynek Krivka <zbynek.krivka@seznam.cz>
* @author tomas@valenta.cz
@@ -14,6 +13,8 @@
* @author Bohumir Zamecnik <bohumir.zamecnik@gmail.com>
* @author Jakub A. Těšínský (j@kub.cz)
* @author mkucera66@seznam.cz
+ * @author Zbyněk Křivka <krivka@fit.vutbr.cz>
+ * @author Gerrit Uitslag <klapinklapin@gmail.com>
*/
$lang['menu'] = 'Obnova zaspamovaných stránek';
$lang['filter'] = 'Hledat zaspamované stránky';
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 @@
<?php
+
/**
- * Danish language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Kalle Sommer Nielsen <kalle@php.net>
* @author Esben Laursen <hyber@hyber.dk>
* @author Harith <haj@berlingske.dk>
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 @@
<?php
+
/**
- * German (informal) language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Alexander Fischer <tbanus@os-forge.net>
* @author Juergen Schwarzer <jschwarzer@freenet.de>
* @author Marcel Metz <marcel_metz@gmx.de>
diff --git a/lib/plugins/revert/lang/de/lang.php b/lib/plugins/revert/lang/de/lang.php
index 2db065f21..7d0b243bb 100644
--- a/lib/plugins/revert/lang/de/lang.php
+++ b/lib/plugins/revert/lang/de/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * German language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Michael Klier <chi@chimeric.de>
* @author Leo Moll <leo@yeasoft.com>
* @author Florian Anderiasch <fa@art-core.org>
diff --git a/lib/plugins/revert/lang/el/lang.php b/lib/plugins/revert/lang/el/lang.php
index c6e8bd56c..4c93ee5a8 100644
--- a/lib/plugins/revert/lang/el/lang.php
+++ b/lib/plugins/revert/lang/el/lang.php
@@ -1,10 +1,8 @@
<?php
+
/**
- * Greek language file
- *
- * Based on DokuWiki Version rc2007-05-24 english language file
- * Original english language file contents included for reference
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Thanos Massias <tm@thriasio.gr>
* @author Αθανάσιος Νταής <homunculus@wana.gr>
* @author Konstantinos Koryllos <koryllos@gmail.com>
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 @@
<?php
+
/**
- * Esperantolanguage file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Felipe Castro <fefcas@uol.com.br>
* @author Felipe Castro <fefcas@gmail.com>
* @author Felipe Castro <fefcas (cxe) gmail (punkto) com>
diff --git a/lib/plugins/revert/lang/es/lang.php b/lib/plugins/revert/lang/es/lang.php
index 129d71574..599ffe021 100644
--- a/lib/plugins/revert/lang/es/lang.php
+++ b/lib/plugins/revert/lang/es/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Spanish language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Oscar M. Lage <r0sk10@gmail.com>
* @author Gabriel Castillo <gch@pumas.ii.unam.mx>
* @author oliver@samera.com.py
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 @@
<?php
+
/**
- * Persian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author behrad eslamifar <behrad_es@yahoo.com)
* @author Mohsen Firoozmandan <info@mambolearn.com>
* @author omidmr@gmail.com
diff --git a/lib/plugins/revert/lang/fr/lang.php b/lib/plugins/revert/lang/fr/lang.php
index a063c8996..4ba6c19a7 100644
--- a/lib/plugins/revert/lang/fr/lang.php
+++ b/lib/plugins/revert/lang/fr/lang.php
@@ -1,6 +1,8 @@
<?php
+
/**
- * french language file
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Delassaux Julien <julien@delassaux.fr>
* @author Maurice A. LeBlanc <leblancma@cooptel.qc.ca>
* @author Guy Brand <gb@unistra.fr>
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 @@
<?php
+
/**
- * Hebrew language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Dotan Kamber <kamberd@yahoo.com>
* @author Moshe Kaplan <mokplan@gmail.com>
* @author Yaron Yogev <yaronyogev@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 @@
<?php
+
/**
- * Hungarian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Sandor TIHANYI <stihanyi+dw@gmail.com>
* @author Siaynoq Mage <siaynoqmage@gmail.com>
* @author schilling.janos@gmail.com
diff --git a/lib/plugins/revert/lang/it/lang.php b/lib/plugins/revert/lang/it/lang.php
index 9c092de99..d2f7b6d6a 100644
--- a/lib/plugins/revert/lang/it/lang.php
+++ b/lib/plugins/revert/lang/it/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Italian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Pietro Battiston toobaz@email.it
* @author Diego Pierotto ita.translations@tiscali.it
* @author ita.translations@tiscali.it
diff --git a/lib/plugins/revert/lang/ja/lang.php b/lib/plugins/revert/lang/ja/lang.php
index 7ef850ea7..9253ff533 100644
--- a/lib/plugins/revert/lang/ja/lang.php
+++ b/lib/plugins/revert/lang/ja/lang.php
@@ -1,6 +1,8 @@
<?php
+
/**
- * japanese language file
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Yuji Takenaka <webmaster@davilin.com>
* @author Ikuo Obataya <i.obataya@gmail.com>
* @author Daniel Dupriest <kououken@gmail.com>
diff --git a/lib/plugins/revert/lang/ko/lang.php b/lib/plugins/revert/lang/ko/lang.php
index f944361b8..e63706960 100644
--- a/lib/plugins/revert/lang/ko/lang.php
+++ b/lib/plugins/revert/lang/ko/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Korean language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author jk Lee
* @author dongnak@gmail.com
* @author Song Younghwan <purluno@gmail.com>
@@ -13,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'] = '참고: 이 문서는 <i>%s</i> 스팸 단어를 포함하지 않은 최근 이전 판으로 되돌립니다. ';
+$lang['note2'] = '참고: 문서는 <i>%s</i> 스팸 단어를 포함하지 않은 최신 판으로 되돌립니다. ';
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 @@
<?php
+
/**
- * Nepali language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Saroj Kumar Dhakal <lotusnagarkot@gmail.com>
* @author SarojKumar Dhakal <lotusnagarkot@yahoo.com>
* @author Saroj Dhakal<lotusnagarkot@yahoo.com>
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 <ricardoguijt@gmail.com>
* @author Gerrit <klapinklapin@gmail.com>
+ * @author Remon <no@email.local>
*/
$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 <i>%s</i> niet op voorkomt.';
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 @@
<?php
+
/**
- * Portuguese language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Frederico Gonçalves Guimarães <frederico@teia.bio.br>
* @author Felipe Castro <fefcas@gmail.com>
* @author Lucien Raven <lucienraven@yahoo.com.br>
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 @@
<?php
+
/**
- * Portuguese language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author José Monteiro <Jose.Monteiro@DoWeDo-IT.com>
* @author Enrico Nicoletto <liverig@gmail.com>
* @author Fil <fil@meteopt.com>
diff --git a/lib/plugins/revert/lang/ru/lang.php b/lib/plugins/revert/lang/ru/lang.php
index 817bd1064..73d69b33e 100644
--- a/lib/plugins/revert/lang/ru/lang.php
+++ b/lib/plugins/revert/lang/ru/lang.php
@@ -1,6 +1,8 @@
<?php
+
/**
- * russian language file
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Denis Simakov <akinoame1@gmail.com>
* @author Andrew Pleshakov <beotiger@mail.ru>
* @author Змей Этерийский evil_snake@eternion.ru
@@ -20,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/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 368d2d929..7ab21f287 100644
--- a/lib/plugins/revert/lang/sk/lang.php
+++ b/lib/plugins/revert/lang/sk/lang.php
@@ -1,12 +1,13 @@
<?php
+
/**
- * Slovaklanguage file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Michal Mesko <michal.mesko@gmail.com>
* @author exusik@gmail.com
* @author Martin Michalek <michalek.dev@gmail.com>
*/
-$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/revert/lang/sl/lang.php b/lib/plugins/revert/lang/sl/lang.php
index 92b0427ce..df778fd26 100644
--- a/lib/plugins/revert/lang/sl/lang.php
+++ b/lib/plugins/revert/lang/sl/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Slovenian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Matej Urbančič (mateju@svn.gnome.org)
*/
$lang['menu'] = 'Povrnitev okvarjene vsebine';
diff --git a/lib/plugins/revert/lang/sv/lang.php b/lib/plugins/revert/lang/sv/lang.php
index 4a5b944f6..c30f82d93 100644
--- a/lib/plugins/revert/lang/sv/lang.php
+++ b/lib/plugins/revert/lang/sv/lang.php
@@ -17,6 +17,7 @@
* @author mikael@mallander.net
* @author Smorkster Andersson smorkster@gmail.com
* @author Henrik <henrik@idealis.se>
+ * @author Tor Härnqvist <tor.harnqvist@gmail.com>
*/
$lang['menu'] = 'Hantera återställningar';
$lang['filter'] = 'Sök efter spamsidor';
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 @@
<?php
+
/**
- * Turkish language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Aydın Coşkuner <aydinweb@gmail.com>
* @author Cihan Kahveci <kahvecicihan@gmail.com>
* @author Yavuz Selim <yavuzselim@gmail.com>
diff --git a/lib/plugins/revert/lang/uk/lang.php b/lib/plugins/revert/lang/uk/lang.php
index 310f8e8da..2c9774f0c 100644
--- a/lib/plugins/revert/lang/uk/lang.php
+++ b/lib/plugins/revert/lang/uk/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Ukrainian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author serg_stetsuk@ukr.net
* @author okunia@gmail.com
* @author Oleksandr Kunytsia <okunia@gmail.com>
diff --git a/lib/plugins/revert/lang/zh-tw/lang.php b/lib/plugins/revert/lang/zh-tw/lang.php
index 88a77f7a1..4ff1d102a 100644
--- a/lib/plugins/revert/lang/zh-tw/lang.php
+++ b/lib/plugins/revert/lang/zh-tw/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Chinese Traditional language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Li-Jiun Huang <ljhuang.tw@gmail.com>
* @author http://www.chinese-tools.com/tools/converter-simptrad.html
* @author Wayne San <waynesan@zerozone.tw>
diff --git a/lib/plugins/revert/lang/zh/lang.php b/lib/plugins/revert/lang/zh/lang.php
index d4d010f29..44a72f54b 100644
--- a/lib/plugins/revert/lang/zh/lang.php
+++ b/lib/plugins/revert/lang/zh/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Chinese(Simplified) language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author ZDYX <zhangduyixiong@gmail.com>
* @author http://www.chinese-tools.com/tools/converter-tradsimp.html
* @author George Sheraton guxd@163.com
diff --git a/lib/plugins/revert/plugin.info.txt b/lib/plugins/revert/plugin.info.txt
index 984a531b3..482b68dc4 100644
--- a/lib/plugins/revert/plugin.info.txt
+++ b/lib/plugins/revert/plugin.info.txt
@@ -3,5 +3,5 @@ author Andreas Gohr
email andi@splitbrain.org
date 2013-03-09
name Revert Manager
-desc Allows you to mass revert recent edits
+desc Allows you to mass revert recent edits to remove Spam or vandalism
url http://dokuwiki.org/plugin:revert
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..8df5abb08 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/';
+ 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');
+ $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;
+ $this->lang = $lang;
+ $this->localised = true;
}
// configuration methods
diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php
index 3c8d38c5e..c4d71cb22 100644
--- a/lib/plugins/usermanager/admin.php
+++ b/lib/plugins/usermanager/admin.php
@@ -21,58 +21,65 @@ if(!defined('DOKU_PLUGIN_IMAGES')) define('DOKU_PLUGIN_IMAGES',DOKU_BASE.'lib/pl
*/
class admin_plugin_usermanager extends DokuWiki_Admin_Plugin {
- var $_auth = null; // auth object
- var $_user_total = 0; // number of registered users
- var $_filter = array(); // user selection filter(s)
- var $_start = 0; // index of first user to be displayed
- var $_last = 0; // index of the last user to be displayed
- var $_pagesize = 20; // number of users to list on one page
- var $_edit_user = ''; // set to user selected for editing
- var $_edit_userdata = array();
- var $_disabled = ''; // if disabled set to explanatory string
+ 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
*/
- function admin_plugin_usermanager(){
+ public function admin_plugin_usermanager(){
+ /** @var DokuWiki_Auth_Plugin $auth */
global $auth;
$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;
}
+
+ // attempt to retrieve any import failures from the session
+ if ($_SESSION['import_failures']){
+ $this->_import_failures = $_SESSION['import_failures'];
+ }
}
/**
- * return prompt for admin menu
- */
- function getMenuText($language) {
+ * Return prompt for admin menu
+ */
+ public function getMenuText($language) {
if (!is_null($this->_auth))
return parent::getMenuText($language);
- return $this->getLang('menu').' '.$this->disabled;
+ return $this->getLang('menu').' '.$this->_disabled;
}
/**
* return sort order for position in admin menu
*/
- function getMenuSort() {
+ public function getMenuSort() {
return 2;
}
/**
- * handle user request
+ * Handle user request
*/
- function handle() {
+ public function handle() {
global $INPUT;
if (is_null($this->_auth)) return false;
@@ -89,36 +96,40 @@ 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 "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();
+ return true;
}
/**
- * output appropriate html
+ * Output appropriate html
*/
- function html() {
+ public function html() {
global $ID;
if(is_null($this->_auth)) {
@@ -127,12 +138,12 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin {
}
$user_list = $this->_auth->retrieveUsers($this->_start, $this->_pagesize, $this->_filter);
- $users = array_keys($user_list);
$page_buttons = $this->_pagination();
$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'];
print $this->locale_xhtml('intro');
print $this->locale_xhtml('list');
@@ -141,9 +152,14 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin {
ptln("<div class=\"level2\">");
if ($this->_user_total > 0) {
- ptln("<p>".sprintf($this->lang['summary'],$this->_start+1,$this->_last,$this->_user_total,$this->_auth->getUserCount())."</p>");
+ ptln("<p>".sprintf($this->lang['summary'],$this->_start+1,$this->_last,$this->_user_total,$this->_auth->getUserCount())."</p>");
} else {
- ptln("<p>".sprintf($this->lang['nonefound'],$this->_auth->getUserCount())."</p>");
+ if($this->_user_total < 0) {
+ $allUserTotal = 0;
+ } else {
+ $allUserTotal = $this->_auth->getUserCount();
+ }
+ ptln("<p>".sprintf($this->lang['nonefound'], $allUserTotal)."</p>");
}
ptln("<form action=\"".wl($ID)."\" method=\"post\">");
formSecurityToken();
@@ -164,25 +180,31 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin {
ptln(" </thead>");
if ($this->_user_total) {
- ptln(" <tbody>");
- foreach ($user_list as $user => $userinfo) {
- extract($userinfo);
- $groups = join(', ',$grps);
- ptln(" <tr class=\"user_info\">");
- ptln(" <td class=\"centeralign\"><input type=\"checkbox\" name=\"delete[".$user."]\" ".$delete_disable." /></td>");
- if ($editable) {
- ptln(" <td><a href=\"".wl($ID,array('fn[edit]['.hsc($user).']' => 1,
- 'do' => 'admin',
- 'page' => 'usermanager',
- 'sectok' => getSecurityToken())).
- "\" title=\"".$this->lang['edit_prompt']."\">".hsc($user)."</a></td>");
- } else {
- ptln(" <td>".hsc($user)."</td>");
+ ptln(" <tbody>");
+ foreach ($user_list as $user => $userinfo) {
+ extract($userinfo);
+ /**
+ * @var string $name
+ * @var string $pass
+ * @var string $mail
+ * @var array $grps
+ */
+ $groups = join(', ',$grps);
+ ptln(" <tr class=\"user_info\">");
+ ptln(" <td class=\"centeralign\"><input type=\"checkbox\" name=\"delete[".$user."]\" ".$delete_disable." /></td>");
+ if ($editable) {
+ ptln(" <td><a href=\"".wl($ID,array('fn[edit]['.hsc($user).']' => 1,
+ 'do' => 'admin',
+ 'page' => 'usermanager',
+ 'sectok' => getSecurityToken())).
+ "\" title=\"".$this->lang['edit_prompt']."\">".hsc($user)."</a></td>");
+ } else {
+ ptln(" <td>".hsc($user)."</td>");
+ }
+ ptln(" <td>".hsc($name)."</td><td>".hsc($mail)."</td><td>".hsc($groups)."</td>");
+ ptln(" </tr>");
}
- ptln(" <td>".hsc($name)."</td><td>".hsc($mail)."</td><td>".hsc($groups)."</td>");
- ptln(" </tr>");
- }
- ptln(" </tbody>");
+ ptln(" </tbody>");
}
ptln(" <tbody>");
@@ -196,7 +218,10 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin {
ptln(" <input type=\"submit\" name=\"fn[next]\" ".$page_buttons['next']." class=\"button\" value=\"".$this->lang['next']."\" />");
ptln(" <input type=\"submit\" name=\"fn[last]\" ".$page_buttons['last']." class=\"button\" value=\"".$this->lang['last']."\" />");
ptln(" </span>");
- ptln(" <input type=\"submit\" name=\"fn[search][clear]\" class=\"button\" value=\"".$this->lang['clear']."\" />");
+ if (!empty($this->_filter)) {
+ ptln(" <input type=\"submit\" name=\"fn[search][clear]\" class=\"button\" value=\"".$this->lang['clear']."\" />");
+ }
+ ptln(" <input type=\"submit\" name=\"fn[export]\" class=\"button\" value=\"".$export_label."\" />");
ptln(" <input type=\"hidden\" name=\"do\" value=\"admin\" />");
ptln(" <input type=\"hidden\" name=\"page\" value=\"usermanager\" />");
@@ -213,34 +238,43 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin {
$style = $this->_edit_user ? " class=\"edit_user\"" : "";
if ($this->_auth->canDo('addUser')) {
- ptln("<div".$style.">");
- print $this->locale_xhtml('add');
- ptln(" <div class=\"level2\">");
+ ptln("<div".$style.">");
+ print $this->locale_xhtml('add');
+ ptln(" <div class=\"level2\">");
- $this->_htmlUserForm('add',null,array(),4);
+ $this->_htmlUserForm('add',null,array(),4);
- ptln(" </div>");
- ptln("</div>");
+ ptln(" </div>");
+ ptln("</div>");
}
if($this->_edit_user && $this->_auth->canDo('UserMod')){
- ptln("<div".$style." id=\"scroll__here\">");
- print $this->locale_xhtml('edit');
- ptln(" <div class=\"level2\">");
+ ptln("<div".$style." id=\"scroll__here\">");
+ print $this->locale_xhtml('edit');
+ ptln(" <div class=\"level2\">");
+
+ $this->_htmlUserForm('modify',$this->_edit_user,$this->_edit_userdata,4);
- $this->_htmlUserForm('modify',$this->_edit_user,$this->_edit_userdata,4);
+ ptln(" </div>");
+ ptln("</div>");
+ }
- ptln(" </div>");
- ptln("</div>");
+ if ($this->_auth->canDo('addUser')) {
+ $this->_htmlImportForm();
}
ptln("</div>");
+ 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) {
+ protected function _htmlUserForm($cmd,$user='',$userdata=array(),$indent=0) {
global $conf;
global $ID;
@@ -248,10 +282,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("<form action=\"".wl($ID)."\" method=\"post\">",$indent);
@@ -270,14 +304,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("<tr><td><label for=\"".$cmd."_usernotify\" >".$this->lang["user_notify"].": </label></td><td><input type=\"checkbox\" id=\"".$cmd."_usernotify\" name=\"usernotify\" value=\"1\" /></td></tr>", $indent);
+ ptln("<tr><td><label for=\"".$cmd."_usernotify\" >".$this->lang["user_notify"].": </label></td><td><input type=\"checkbox\" id=\"".$cmd."_usernotify\" name=\"usernotify\" value=\"1\" /></td></tr>", $indent);
}
ptln(" </tbody>",$indent);
@@ -300,17 +334,27 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin {
ptln(" </table>",$indent);
if ($notes) {
- ptln(" <ul class=\"notes\">");
- foreach ($notes as $note) {
- ptln(" <li><span class=\"li\">".$note."</span></li>",$indent);
- }
- ptln(" </ul>");
+ ptln(" <ul class=\"notes\">");
+ foreach ($notes as $note) {
+ ptln(" <li><span class=\"li\">".$note."</span></li>",$indent);
+ }
+ ptln(" </ul>");
}
ptln(" </div>",$indent);
ptln("</form>",$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
+ */
+ protected function _htmlInputField($id, $name, $label, $value, $cando, $indent=0) {
$class = $cando ? '' : ' class="disabled"';
echo str_pad('',$indent);
@@ -325,7 +369,6 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin {
$autocomp = '';
}
-
echo "<tr $class>";
echo "<td><label for=\"$id\" >$label: </label></td>";
echo "<td>";
@@ -339,21 +382,95 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin {
echo "</tr>";
}
- function _htmlFilter($key) {
+ /**
+ * Returns htmlescaped filter value
+ *
+ * @param string $key name of search field
+ * @return string html escaped value
+ */
+ protected 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
+ */
+ protected function _htmlFilterSettings($indent=0) {
ptln("<input type=\"hidden\" name=\"start\" value=\"".$this->_start."\" />",$indent);
foreach ($this->_filter as $key => $filter) {
- ptln("<input type=\"hidden\" name=\"filter[".$key."]\" value=\"".hsc($filter)."\" />",$indent);
+ ptln("<input type=\"hidden\" name=\"filter[".$key."]\" value=\"".hsc($filter)."\" />",$indent);
}
}
- function _addUser(){
+ /**
+ * Print import form and summary of previous import
+ *
+ * @param int $indent
+ */
+ protected function _htmlImportForm($indent=0) {
+ global $ID;
+
+ $failure_download_link = wl($ID,array('do'=>'admin','page'=>'usermanager','fn[importfails]'=>1));
+
+ ptln('<div class="level2 import_users">',$indent);
+ print $this->locale_xhtml('import');
+ ptln(' <form action="'.wl($ID).'" method="post" enctype="multipart/form-data">',$indent);
+ formSecurityToken();
+ ptln(' <label>'.$this->lang['import_userlistcsv'].'<input type="file" name="import" /></label>',$indent);
+ ptln(' <input type="submit" name="fn[import]" value="'.$this->lang['import'].'" />',$indent);
+ ptln(' <input type="hidden" name="do" value="admin" />',$indent);
+ ptln(' <input type="hidden" name="page" value="usermanager" />',$indent);
+
+ $this->_htmlFilterSettings($indent+4);
+ ptln(' </form>',$indent);
+ ptln('</div>');
+
+ // list failures from the previous import
+ if ($this->_import_failures) {
+ $digits = strlen(count($this->_import_failures));
+ ptln('<div class="level3 import_failures">',$indent);
+ ptln(' <h3>'.$this->lang['import_header'].'</h3>');
+ ptln(' <table class="import_failures">',$indent);
+ ptln(' <thead>',$indent);
+ ptln(' <tr>',$indent);
+ ptln(' <th class="line">'.$this->lang['line'].'</th>',$indent);
+ ptln(' <th class="error">'.$this->lang['error'].'</th>',$indent);
+ ptln(' <th class="userid">'.$this->lang['user_id'].'</th>',$indent);
+ ptln(' <th class="username">'.$this->lang['user_name'].'</th>',$indent);
+ ptln(' <th class="usermail">'.$this->lang['user_mail'].'</th>',$indent);
+ ptln(' <th class="usergroups">'.$this->lang['user_groups'].'</th>',$indent);
+ ptln(' </tr>',$indent);
+ ptln(' </thead>',$indent);
+ ptln(' <tbody>',$indent);
+ foreach ($this->_import_failures as $line => $failure) {
+ ptln(' <tr>',$indent);
+ ptln(' <td class="lineno"> '.sprintf('%0'.$digits.'d',$line).' </td>',$indent);
+ ptln(' <td class="error">' .$failure['error'].' </td>', $indent);
+ ptln(' <td class="field userid"> '.hsc($failure['user'][0]).' </td>',$indent);
+ ptln(' <td class="field username"> '.hsc($failure['user'][2]).' </td>',$indent);
+ ptln(' <td class="field usermail"> '.hsc($failure['user'][3]).' </td>',$indent);
+ ptln(' <td class="field usergroups"> '.hsc($failure['user'][4]).' </td>',$indent);
+ ptln(' </tr>',$indent);
+ }
+ ptln(' </tbody>',$indent);
+ ptln(' </table>',$indent);
+ ptln(' <p><a href="'.$failure_download_link.'">'.$this->lang['import_downloadfailures'].'</a></p>');
+ ptln('</div>');
+ }
+
+ }
+
+ /**
+ * Add an user to auth backend
+ *
+ * @return bool whether succesful
+ */
+ protected function _addUser(){
global $INPUT;
if (!checkSecurityToken()) return false;
if (!$this->_auth->canDo('addUser')) return false;
@@ -362,61 +479,63 @@ 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;
}
/**
- * Delete user
+ * Delete user from auth backend
+ *
+ * @return bool whether succesful
*/
- function _deleteUser(){
+ protected function _deleteUser(){
global $conf, $INPUT;
if (!checkSecurityToken()) return false;
@@ -433,12 +552,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
@@ -449,18 +568,20 @@ 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) {
+ protected 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?
if (!$userdata) {
- msg($this->lang['edit_usermissing'],-1);
- return false;
+ msg($this->lang['edit_usermissing'],-1);
+ return false;
}
$this->_edit_user = $user;
@@ -470,16 +591,18 @@ 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(){
+ protected function _modifyUser(){
global $conf, $INPUT;
if (!checkSecurityToken()) return false;
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
@@ -489,18 +612,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
@@ -518,18 +641,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)) {
@@ -540,25 +663,36 @@ 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) {
+ protected function _notifyUser($user, $password, $status_alert=true) {
if ($sent = auth_sendPassword($user,$password)) {
- msg($this->lang['notify_ok'], 1);
+ if ($status_alert) {
+ msg($this->lang['notify_ok'], 1);
+ }
} else {
- msg($this->lang['notify_fail'], -1);
+ if ($status_alert) {
+ msg($this->lang['notify_fail'], -1);
+ }
}
return $sent;
}
/**
- * 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) {
+ protected function _retrieveUser($clean=true) {
+ /** @var DokuWiki_Auth_Plugin $auth */
global $auth;
global $INPUT;
@@ -577,21 +711,31 @@ 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'
+ */
+ protected function _setFilter($op) {
$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);
}
}
- function _retrieveFilter() {
+ /**
+ * Get the current search terms
+ *
+ * @return array
+ */
+ protected function _retrieveFilter() {
global $INPUT;
$t_filter = $INPUT->arr('filter');
@@ -607,32 +751,226 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin {
return $filter;
}
- function _validatePagination() {
+ /**
+ * Validate and improve the pagination values
+ */
+ protected 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;
$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() {
+ protected function _pagination() {
$disabled = 'disabled="disabled"';
$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;
}
+
+ /**
+ * Export a list of users in csv format using the current filter criteria
+ */
+ 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(
+ $this->lang["user_id"],
+ $this->lang["user_name"],
+ $this->lang["user_mail"],
+ $this->lang["user_groups"]
+ );
+
+ // ==============================================================================================
+ // GENERATE OUTPUT
+ // normal headers for downloading...
+ header('Content-type: text/csv;charset=utf-8');
+ header('Content-Disposition: attachment; filename="wikiusers.csv"');
+# // for debugging assistance, send as text plain to the browser
+# header('Content-type: text/plain;charset=utf-8');
+
+ // output the csv
+ $fd = fopen('php://output','w');
+ fputcsv($fd, $column_headings);
+ foreach ($user_list as $user => $info) {
+ $line = array($user, $info['name'], $info['mail'], join(',',$info['grps']));
+ fputcsv($fd, $line);
+ }
+ fclose($fd);
+ die;
+ }
+
+ /**
+ * 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
+ */
+ protected function _import() {
+ // check we are allowed to add users
+ if (!checkSecurityToken()) return false;
+ 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'])) {
+ msg($this->lang['import_error_upload'],-1);
+ return false;
+ }
+ // retrieve users from the file
+ $this->_import_failures = array();
+ $import_success_count = 0;
+ $import_fail_count = 0;
+ $line = 0;
+ $fd = fopen($_FILES['import']['tmp_name'],'r');
+ if ($fd) {
+ while($csv = fgets($fd)){
+ if (!utf8_check($csv)) {
+ $csv = utf8_encode($csv);
+ }
+ $raw = str_getcsv($csv);
+ $error = ''; // clean out any errors from the previous line
+ // data checks...
+ if (1 == ++$line) {
+ if ($raw[0] == 'user_id' || $raw[0] == $this->lang['user_id']) continue; // skip headers
+ }
+ if (count($raw) < 4) { // need at least four fields
+ $import_fail_count++;
+ $error = sprintf($this->lang['import_error_fields'], count($raw));
+ $this->_import_failures[$line] = array('error' => $error, 'user' => $raw, 'orig' => $csv);
+ continue;
+ }
+ array_splice($raw,1,0,auth_pwgen()); // splice in a generated password
+ $clean = $this->_cleanImportUser($raw, $error);
+ if ($clean && $this->_addImportUser($clean, $error)) {
+ $sent = $this->_notifyUser($clean[0],$clean[1],false);
+ if (!$sent){
+ msg(sprintf($this->lang['import_notify_fail'],$clean[0],$clean[3]),-1);
+ }
+ $import_success_count++;
+ } else {
+ $import_fail_count++;
+ $this->_import_failures[$line] = array('error' => $error, 'user' => $raw, 'orig' => $csv);
+ }
+ }
+ msg(sprintf($this->lang['import_success_count'], ($import_success_count+$import_fail_count), $import_success_count),($import_success_count ? 1 : -1));
+ if ($import_fail_count) {
+ msg(sprintf($this->lang['import_failure_count'], $import_fail_count),-1);
+ }
+ } else {
+ msg($this->lang['import_error_readfail'],-1);
+ }
+
+ // save import failures into the session
+ if (!headers_sent()) {
+ session_start();
+ $_SESSION['import_failures'] = $this->_import_failures;
+ session_write_close();
+ }
+ return true;
+ }
+
+ /**
+ * Returns cleaned user data
+ *
+ * @param array $candidate raw values of line from input file
+ * @param $error
+ * @return array|bool cleaned data or false
+ */
+ protected function _cleanImportUser($candidate, & $error){
+ global $INPUT;
+
+ // kludgy ....
+ $INPUT->set('userid', $candidate[0]);
+ $INPUT->set('userpass', $candidate[1]);
+ $INPUT->set('username', $candidate[2]);
+ $INPUT->set('usermail', $candidate[3]);
+ $INPUT->set('usergroups', $candidate[4]);
+
+ $cleaned = $this->_retrieveUser();
+ list($user,$pass,$name,$mail,$grps) = $cleaned;
+ if (empty($user)) {
+ $error = $this->lang['import_error_baduserid'];
+ return false;
+ }
+
+ // no need to check password, handled elsewhere
+
+ if (!($this->_auth->canDo('modName') xor empty($name))){
+ $error = $this->lang['import_error_badname'];
+ return false;
+ }
+
+ if ($this->_auth->canDo('modMail')) {
+ if (empty($mail) || !mail_isvalid($mail)) {
+ $error = $this->lang['import_error_badmail'];
+ return false;
+ }
+ } else {
+ if (!empty($mail)) {
+ $error = $this->lang['import_error_badmail'];
+ return false;
+ }
+ }
+
+ return $cleaned;
+ }
+
+ /**
+ * 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
+ */
+ protected function _addImportUser($user, & $error){
+ if (!$this->_auth->triggerUserMod('create', $user)) {
+ $error = $this->lang['import_error_create'];
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Downloads failures as csv file
+ */
+ protected function _downloadImportFailures(){
+
+ // ==============================================================================================
+ // GENERATE OUTPUT
+ // normal headers for downloading...
+ header('Content-type: text/csv;charset=utf-8');
+ header('Content-Disposition: attachment; filename="importfails.csv"');
+# // for debugging assistance, send as text plain to the browser
+# header('Content-type: text/plain;charset=utf-8');
+
+ // output the csv
+ $fd = fopen('php://output','w');
+ foreach ($this->_import_failures as $fail) {
+ fputs($fd, $fail['orig']);
+ }
+ fclose($fd);
+ die;
+ }
+
}
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 @@
<?php
+
/**
- * Arabic language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Yaman Hokan <always.smile.yh@hotmail.com>
* @author Usama Akkad <uahello@gmail.com>
* @author uahello@gmail.com
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..bbb560679 100644
--- a/lib/plugins/usermanager/lang/cs/lang.php
+++ b/lib/plugins/usermanager/lang/cs/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Czech language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Tomas Valenta <t.valenta@sh.cvut.cz>
* @author Zbynek Krivka <zbynek.krivka@seznam.cz>
* @author Bohumir Zamecnik <bohumir@zamecnik.org>
@@ -13,6 +14,7 @@
* @author Bohumir Zamecnik <bohumir.zamecnik@gmail.com>
* @author Jakub A. Těšínský (j@kub.cz)
* @author mkucera66@seznam.cz
+ * @author Zbyněk Křivka <krivka@fit.vutbr.cz>
*/
$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 %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';
+$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í.';
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 @@
<?php
+
/**
- * Danish language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Lars Næsbye Christensen <larsnaesbye@stud.ku.dk>
* @author Kalle Sommer Nielsen <kalle@php.net>
* @author Esben Laursen <hyber@hyber.dk>
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 @@
<?php
+
/**
- * German (informal) language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Alexander Fischer <tbanus@os-forge.net>
* @author Juergen Schwarzer <jschwarzer@freenet.de>
* @author Marcel Metz <marcel_metz@gmx.de>
@@ -10,6 +11,7 @@
* @author Pierre Corell <info@joomla-praxis.de>
* @author Frank Loizzi <contact@software.bacal.de>
* @author Volker Bödker <volker@boedker.de>
+ * @author Dennis Plöger <develop@dieploegers.de>
*/
$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.';
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 2b9755de8..21be74f71 100644
--- a/lib/plugins/usermanager/lang/de/lang.php
+++ b/lib/plugins/usermanager/lang/de/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * German language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
* @author Andreas Gohr <andi@splitbrain.org>
* @author Michael Klier <chi@chimeric.de>
@@ -17,6 +18,8 @@
* @author Paul Lachewsky <kaeptn.haddock@gmail.com>
* @author Pierre Corell <info@joomla-praxis.de>
* @author Matthias Schulte <dokuwiki@lupo49.de>
+ * @author Sven <Svenluecke48@gmx.d>
+ * @author christian studer <cstuder@existenz.ch>
*/
$lang['menu'] = 'Benutzerverwaltung';
$lang['noauth'] = '(Authentifizierungssystem nicht verfügbar)';
@@ -39,6 +42,11 @@ $lang['search'] = 'Suchen';
$lang['search_prompt'] = 'Benutzerdaten filtern';
$lang['clear'] = 'Filter zurücksetzen';
$lang['filter'] = 'Filter';
+$lang['export_all'] = 'Alle User exportieren (CSV)';
+$lang['export_filtered'] = 'Exportiere gefilterte Userliste (CSV)';
+$lang['import'] = 'Importiere neue User';
+$lang['line'] = 'Zeilennr.';
+$lang['error'] = 'Fehlermeldung';
$lang['summary'] = 'Zeige Benutzer %1$d-%2$d von %3$d gefundenen. %4$d Benutzer insgesamt.';
$lang['nonefound'] = 'Keine Benutzer gefunden. %d Benutzer insgesamt.';
$lang['delete_ok'] = '%d Benutzer gelöscht';
@@ -59,3 +67,13 @@ $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_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.';
+$lang['import_error_baduserid'] = 'User-Id fehlt';
+$lang['import_error_badname'] = 'Ungültiger Name';
+$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.';
diff --git a/lib/plugins/usermanager/lang/el/lang.php b/lib/plugins/usermanager/lang/el/lang.php
index da7c8fb0f..e14aa615e 100644
--- a/lib/plugins/usermanager/lang/el/lang.php
+++ b/lib/plugins/usermanager/lang/el/lang.php
@@ -1,10 +1,8 @@
<?php
+
/**
- * Greek language file
- *
- * Based on DokuWiki Version rc2007-05-24 english language file
- * Original english language file contents included for reference
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Chris Smith <chris@jalakai.co.uk>
* @author Thanos Massias <tm@thriasio.gr>
* @author Αθανάσιος Νταής <homunculus@wana.gr>
diff --git a/lib/plugins/usermanager/lang/en/import.txt b/lib/plugins/usermanager/lang/en/import.txt
new file mode 100644
index 000000000..2087083e0
--- /dev/null
+++ b/lib/plugins/usermanager/lang/en/import.txt
@@ -0,0 +1,9 @@
+===== Bulk User Import =====
+
+Requires a CSV file of users with at least four columns.
+The columns must contain, in order: user-id, full name, email address and groups.
+The CSV fields should be separated by commas (,) and strings delimited by quotation marks (""). Backslash (\) can be used for escaping.
+For an example of a suitable file, try the "Export Users" function above.
+Duplicate user-ids will be ignored.
+
+A password will be generated and emailed to each successfully imported user.
diff --git a/lib/plugins/usermanager/lang/en/lang.php b/lib/plugins/usermanager/lang/en/lang.php
index 189a1db20..f87c77afb 100644
--- a/lib/plugins/usermanager/lang/en/lang.php
+++ b/lib/plugins/usermanager/lang/en/lang.php
@@ -31,6 +31,11 @@ $lang['search'] = 'Search';
$lang['search_prompt'] = 'Perform search';
$lang['clear'] = 'Reset Search Filter';
$lang['filter'] = 'Filter';
+$lang['export_all'] = 'Export All Users (CSV)';
+$lang['export_filtered'] = 'Export Filtered User list (CSV)';
+$lang['import'] = 'Import New Users';
+$lang['line'] = 'Line no.';
+$lang['error'] = 'Error message';
$lang['summary'] = 'Displaying users %1$d-%2$d of %3$d found. %4$d users total.';
$lang['nonefound'] = 'No users found. %d users total.';
@@ -56,3 +61,19 @@ $lang['add_fail'] = 'User addition failed';
$lang['notify_ok'] = 'Notification email sent';
$lang['notify_fail'] = 'Notification email could not be sent';
+// 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.";
+$lang['import_error_baduserid'] = "User-id missing";
+$lang['import_error_badname'] = 'Bad name';
+$lang['import_error_badmail'] = 'Bad email address';
+$lang['import_error_upload'] = 'Import Failed. The csv file could not be uploaded or is empty.';
+$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/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..ff7818e05 100644
--- a/lib/plugins/usermanager/lang/eo/lang.php
+++ b/lib/plugins/usermanager/lang/eo/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Esperantolanguage file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Felipe Castro <fefcas@uol.com.br>
* @author Felipe Castro <fefcas@gmail.com>
* @author Felipe Castro <fefcas (cxe) gmail (punkto) com>
@@ -10,6 +11,7 @@
* @author Erik Pedersen <erik pedersen@shaw.ca>
* @author Erik Pedersen <erik.pedersen@shaw.ca>
* @author Robert Bogenschneider <bogi@uea.org>
+ * @author Felipe Castro <fefcas@yahoo.com.br>
*/
$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,16 @@ $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.';
+$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.';
+$lang['import_downloadfailures'] = 'Elŝut-eraroj por korektado (CSV)';
diff --git a/lib/plugins/usermanager/lang/es/lang.php b/lib/plugins/usermanager/lang/es/lang.php
index 521191701..26e4200e4 100644
--- a/lib/plugins/usermanager/lang/es/lang.php
+++ b/lib/plugins/usermanager/lang/es/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Spanish language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Miguel Pagano <miguel.pagano>
* @author Oscar M. Lage <r0sk10@gmail.com>
* @author Gabriel Castillo <gch@pumas.ii.unam.mx>
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 @@
<?php
+
/**
- * Persian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author behrad eslamifar <behrad_es@yahoo.com)
* @author Mohsen Firoozmandan <info@mambolearn.com>
* @author omidmr@gmail.com
diff --git a/lib/plugins/usermanager/lang/fr/import.txt b/lib/plugins/usermanager/lang/fr/import.txt
new file mode 100644
index 000000000..191bb8370
--- /dev/null
+++ b/lib/plugins/usermanager/lang/fr/import.txt
@@ -0,0 +1,11 @@
+===== Importation d'utilisateurs par lot =====
+
+Requière un fichier [[wpfr>CSV]] d'utilisateurs avec un minimum de quatre colonnes.
+Les colonnes doivent comporter, dans l'ordre : identifiant, nom complet, adresse de courriel et groupes.
+
+Les champs doivent être séparés par une virgule (,), les chaînes sont délimitées par des guillemets (""). On peut utiliser la balance inverse (\) comme caractère d'échappement.
+Pour obtenir un exemple de fichier acceptable, essayer la fonction "Exporter les utilisateurs" ci dessus.
+
+Les identifiants dupliqués seront ignorés.
+
+L'importation générera un mot de passe et l'enverra à chaque utilisateur correctement importé. \ No newline at end of file
diff --git a/lib/plugins/usermanager/lang/fr/lang.php b/lib/plugins/usermanager/lang/fr/lang.php
index 40e878bbb..7c24ef900 100644
--- a/lib/plugins/usermanager/lang/fr/lang.php
+++ b/lib/plugins/usermanager/lang/fr/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * french language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Guy Brand <gb@unistra.fr>
* @author Delassaux Julien <julien@delassaux.fr>
* @author Maurice A. LeBlanc <leblancma@cooptel.qc.ca>
@@ -20,6 +21,8 @@
* @author Olivier DUVAL <zorky00@gmail.com>
* @author Anael Mobilia <contrib@anael.eu>
* @author Bruno Veilleux <bruno.vey@gmail.com>
+ * @author Antoine Turmel <geekshadow@gmail.com>
+ * @author schplurtz <Schplurtz@laposte.net>
*/
$lang['menu'] = 'Gestion des utilisateurs';
$lang['noauth'] = '(authentification de l\'utilisateur non disponible)';
@@ -42,6 +45,11 @@ $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és (CSV)';
+$lang['import'] = 'Importer de 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';
@@ -62,3 +70,13 @@ $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';
+$lang['import_notify_fail'] = 'Impossible d\'expédier une notification à l\'utilisateur importé %s, adresse %s.';
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 @@
<?php
+
/**
- * hebrew language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author DoK <kamberd@yahoo.com>
* @author Dotan Kamber <kamberd@yahoo.com>
* @author Moshe Kaplan <mokplan@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 @@
<?php
+
/**
- * Hungarian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Sandor TIHANYI <stihanyi+dw@gmail.com>
* @author Siaynoq Mage <siaynoqmage@gmail.com>
* @author schilling.janos@gmail.com
@@ -9,6 +10,7 @@
* @author Sándor TIHANYI <stihanyi+dw@gmail.com>
* @author David Szabo <szabo.david@gyumolcstarhely.hu>
* @author Marton Sebok <sebokmarton@gmail.com>
+ * @author Serenity87HUN <anikototh87@gmail.com>
*/
$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';
diff --git a/lib/plugins/usermanager/lang/it/lang.php b/lib/plugins/usermanager/lang/it/lang.php
index 0222ff1e4..dfacc6545 100644
--- a/lib/plugins/usermanager/lang/it/lang.php
+++ b/lib/plugins/usermanager/lang/it/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Italian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Chris Smith <chris@jalakai.co.uk>
* @author Silvia Sargentoni <polinnia@tin.it>
* @author Pietro Battiston toobaz@email.it
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 1510d1eb0..0830416f3 100644
--- a/lib/plugins/usermanager/lang/ja/lang.php
+++ b/lib/plugins/usermanager/lang/ja/lang.php
@@ -1,6 +1,8 @@
<?php
+
/**
- * japanese language file
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Yuji Takenaka <webmaster@davilin.com>
* @author Chris Smith <chris@jalakai.co.uk>
* @author Ikuo Obataya <i.obataya@gmail.com>
@@ -8,6 +10,8 @@
* @author Kazutaka Miyasaka <kazmiya@gmail.com>
* @author Taisuke Shimamoto <dentostar@gmail.com>
* @author Satoshi Sahara <sahara.satoshi@gmail.com>
+ * @author Hideaki SAWADA <sawadakun@live.jp>
+ * @author Hideaki SAWADA <chuno@live.jp>
*/
$lang['menu'] = 'ユーザー管理';
$lang['noauth'] = '(ユーザー認証が無効です)';
@@ -30,6 +34,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 ユーザーが削除されました';
@@ -50,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ファイルとしてダウンロードする。';
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..1905fadc2 100644
--- a/lib/plugins/usermanager/lang/ko/lang.php
+++ b/lib/plugins/usermanager/lang/ko/lang.php
@@ -1,21 +1,23 @@
<?php
+
/**
- * Korean language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author jk Lee
* @author dongnak@gmail.com
* @author Song Younghwan <purluno@gmail.com>
* @author Seung-Chul Yoo <dryoo@live.com>
* @author erial2@gmail.com
* @author Myeongjin <aranet100@gmail.com>
+ * @author Gerrit Uitslag <klapinklapin@gmail.com>
*/
$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'] = '항목';
@@ -28,12 +30,17 @@ $lang['edit_prompt'] = '이 사용자 편집';
$lang['modify'] = '바뀜 저장';
$lang['search'] = '찾기';
$lang['search_prompt'] = '찾기 실행';
-$lang['clear'] = '찾기 필터 초기화';
+$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명이 삭제되었습니다';
-$lang['delete_fail'] = '사용자 %d명의 삭제가 실패했습니다.';
+$lang['delete_fail'] = '사용자 %d명을 삭제하는 데 실패했습니다.';
$lang['update_ok'] = '사용자 정보를 성공적으로 바꾸었습니다';
$lang['update_fail'] = '사용자 정보를 바꾸는 데 실패했습니다';
$lang['update_exists'] = '사용자 이름을 바꾸는 데 실패했습니다. 사용자 이름(%s)이 이미 존재합니다. (다른 항목의 바뀜은 적용됩니다.)';
@@ -50,3 +57,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'] = '충분하지 않은 필드로, %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'] = '알림 메시지를 가져온 %2$s (이메일: %1$s ) 사용자에게 보낼 수 없습니다.';
+$lang['import_downloadfailures'] = '교정을 위한 CSV로 다운로드 실패';
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 @@
<?php
+
/**
- * Nepali language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Saroj Kumar Dhakal <lotusnagarkot@gmail.com>
* @author SarojKumar Dhakal <lotusnagarkot@yahoo.com>
* @author Saroj Dhakal<lotusnagarkot@yahoo.com>
diff --git a/lib/plugins/usermanager/lang/nl/import.txt b/lib/plugins/usermanager/lang/nl/import.txt
new file mode 100644
index 000000000..267891098
--- /dev/null
+++ b/lib/plugins/usermanager/lang/nl/import.txt
@@ -0,0 +1,8 @@
+===== 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 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.
+
+Een wachtwoord zal worden gegenereerd en gemaild naar elke gebruiker die succesvol is geïmporteerd. \ No newline at end of file
diff --git a/lib/plugins/usermanager/lang/nl/lang.php b/lib/plugins/usermanager/lang/nl/lang.php
index e1bf126fb..5cebede89 100644
--- a/lib/plugins/usermanager/lang/nl/lang.php
+++ b/lib/plugins/usermanager/lang/nl/lang.php
@@ -14,7 +14,7 @@
* @author Timon Van Overveldt <timonvo@gmail.com>
* @author Jeroen
* @author Ricardo Guijt <ricardoguijt@gmail.com>
- * @author Gerrit <klapinklapin@gmail.com>
+ * @author Gerrit Uitslag <klapinklapin@gmail.com>
*/
$lang['menu'] = 'Gebruikersmanager';
$lang['noauth'] = '(gebruikersauthenticatie niet beschikbaar)';
@@ -37,6 +37,11 @@ $lang['search'] = 'Zoek';
$lang['search_prompt'] = 'Voer zoekopdracht uit';
$lang['clear'] = 'Verwijder zoekfilter';
$lang['filter'] = 'Filter';
+$lang['export_all'] = 'Exporteer Alle Gebruikers (CSV)';
+$lang['export_filtered'] = 'Exporteer Gefilterde Gebruikers (CSV)';
+$lang['import'] = 'Importeer Nieuwe Gebruikers';
+$lang['line'] = 'Regelnummer';
+$lang['error'] = 'Foutmelding';
$lang['summary'] = 'Weergegeven gebruikers %1$d-%2$d van %3$d gevonden. %4$d gebruikers in totaal.';
$lang['nonefound'] = 'Geen gebruikers gevonden. %d gebruikers in totaal.';
$lang['delete_ok'] = '%d gebruikers verwijderd';
@@ -57,3 +62,16 @@ $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.';
+$lang['import_error_baduserid'] = 'Gebruikers-id mist';
+$lang['import_error_badname'] = 'Verkeerde naam';
+$lang['import_error_badmail'] = 'Verkeerd e-mailadres';
+$lang['import_error_upload'] = 'Importeren mislukt. Het CSV bestand kon niet worden geüpload of is leeg.';
+$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';
diff --git a/lib/plugins/usermanager/lang/pt-br/lang.php b/lib/plugins/usermanager/lang/pt-br/lang.php
index 637be8860..9bb37742a 100644
--- a/lib/plugins/usermanager/lang/pt-br/lang.php
+++ b/lib/plugins/usermanager/lang/pt-br/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Portuguese language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Frederico Gonçalves Guimarães <frederico@teia.bio.br>
* @author Felipe Castro <fefcas@gmail.com>
* @author Lucien Raven <lucienraven@yahoo.com.br>
@@ -17,6 +18,8 @@
* @author Isaias Masiero Filho <masiero@masiero.org>
* @author Balaco Baco <balacobaco@imap.cc>
* @author Victor Westmann <victor.westmann@gmail.com>
+ * @author Leone Lisboa Magevski <leone1983@gmail.com>
+ * @author Dário Estevão <darioems@gmail.com>
*/
$lang['menu'] = 'Gerenciamento de Usuários';
$lang['noauth'] = '(o gerenciamento de usuários não está disponível)';
@@ -39,6 +42,10 @@ $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['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';
@@ -59,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.';
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 @@
<?php
+
/**
- * Portugueselanguage file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author José Monteiro <Jose.Monteiro@DoWeDo-IT.com>
* @author Enrico Nicoletto <liverig@gmail.com>
* @author Fil <fil@meteopt.com>
@@ -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.';
diff --git a/lib/plugins/usermanager/lang/ru/import.txt b/lib/plugins/usermanager/lang/ru/import.txt
new file mode 100644
index 000000000..3a25f34ce
--- /dev/null
+++ b/lib/plugins/usermanager/lang/ru/import.txt
@@ -0,0 +1,9 @@
+===== Импорт нескольких пользователей =====
+
+Потребуется список пользователей в файле формата CSV, состоящий из 4 столбцов.
+Столбцы должны быть заполнены следующим образом: user-id, полное имя, эл. почта, группы.
+Поля CSV должны быть отделены запятой (,), а строки должны быть заключены в кавычки (""). Обратный слэш используется как прерывание.
+В качестве примера можете взять список пользователей, экспортированный через «Экспорт пользователей».
+Повторяющиеся идентификаторы user-id будут игнорироваться.
+
+Пароль доступа будет сгенерирован и отправлен по почте удачно импортированному пользователю. \ No newline at end of file
diff --git a/lib/plugins/usermanager/lang/ru/lang.php b/lib/plugins/usermanager/lang/ru/lang.php
index 29cee6576..3102ac32a 100644
--- a/lib/plugins/usermanager/lang/ru/lang.php
+++ b/lib/plugins/usermanager/lang/ru/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * Russian language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Denis Simakov <akinoame1@gmail.com>
* @author Andrew Pleshakov <beotiger@mail.ru>
* @author Змей Этерийский evil_snake@eternion.ru
@@ -18,6 +18,7 @@
* @author Eugene <windy.wanderer@gmail.com>
* @author Johnny Utah <pcpa@cyberpunk.su>
* @author Ivan I. Udovichenko (sendtome@mymailbox.pp.ua)
+ * @author Pavel <ivanovtsk@mail.ru>
*/
$lang['menu'] = 'Управление пользователями';
$lang['noauth'] = '(авторизация пользователей недоступна)';
@@ -40,7 +41,12 @@ $lang['search'] = 'Поиск';
$lang['search_prompt'] = 'Искать';
$lang['clear'] = 'Сброс фильтра поиска';
$lang['filter'] = 'Фильтр';
-$lang['summary'] = 'Показаны пользователи %1$d-%2$d из %3$d найденных. Всего пользователей: %4$d.';
+$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';
$lang['delete_fail'] = 'Не удалось удалить %d.';
@@ -60,3 +66,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'] = 'Отсутствует идентификатор пользователя';
+$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.';
diff --git a/lib/plugins/usermanager/lang/sk/import.txt b/lib/plugins/usermanager/lang/sk/import.txt
new file mode 100644
index 000000000..91fa3e370
--- /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í 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é.
+
+Každému úspešne importovanému používateľovi bude vygenerované heslo a zaslaný email. \ No newline at end of file
diff --git a/lib/plugins/usermanager/lang/sk/lang.php b/lib/plugins/usermanager/lang/sk/lang.php
index 54ed374c6..9aadbb53a 100644
--- a/lib/plugins/usermanager/lang/sk/lang.php
+++ b/lib/plugins/usermanager/lang/sk/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * Slovak language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Ondrej Végh <ov@vsieti.sk>
* @author Michal Mesko <michal.mesko@gmail.com>
* @author exusik@gmail.com
@@ -28,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';
@@ -48,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';
diff --git a/lib/plugins/usermanager/lang/sl/lang.php b/lib/plugins/usermanager/lang/sl/lang.php
index 96acfd0af..dc2de375e 100644
--- a/lib/plugins/usermanager/lang/sl/lang.php
+++ b/lib/plugins/usermanager/lang/sl/lang.php
@@ -1,11 +1,13 @@
<?php
+
/**
- * Slovenian language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Dejan Levec <webphp@gmail.com>
* @author Boštjan Seničar <senicar@gmail.com>
* @author Gregor Skumavc (grega.skumavc@gmail.com)
* @author Matej Urbančič (mateju@svn.gnome.org)
+ * @author Matej Urbančič <mateju@svn.gnome.org>
*/
$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.';
diff --git a/lib/plugins/usermanager/lang/sv/lang.php b/lib/plugins/usermanager/lang/sv/lang.php
index 68f5bbc31..340886578 100644
--- a/lib/plugins/usermanager/lang/sv/lang.php
+++ b/lib/plugins/usermanager/lang/sv/lang.php
@@ -16,6 +16,7 @@
* @author Peter Åström <eaustreum@gmail.com>
* @author mikael@mallander.net
* @author Smorkster Andersson smorkster@gmail.com
+ * @author Tor Härnqvist <tor.harnqvist@gmail.com>
*/
$lang['menu'] = 'Hantera användare';
$lang['noauth'] = '(användarautentisering ej tillgänlig)';
@@ -38,6 +39,10 @@ $lang['search'] = 'Sök';
$lang['search_prompt'] = 'Utför sökning';
$lang['clear'] = 'Återställ sökfilter';
$lang['filter'] = 'Filter';
+$lang['export_all'] = 'Exportera alla användare (CSV)';
+$lang['export_filtered'] = 'Exportera filtrerade användarlistningen (CSV)';
+$lang['import'] = 'Importera nya användare';
+$lang['error'] = 'Error-meddelande';
$lang['summary'] = 'Visar användare %1$d-%2$d av %3$d funna. %4$d användare totalt.';
$lang['nonefound'] = 'Inga användare hittades. %d användare totalt.';
$lang['delete_ok'] = '%d användare raderade';
@@ -58,3 +63,11 @@ $lang['add_ok'] = 'Användaren tillagd';
$lang['add_fail'] = 'Användare kunde inte läggas till';
$lang['notify_ok'] = 'E-postmeddelande skickat';
$lang['notify_fail'] = 'E-postmeddelande kunde inte skickas';
+$lang['import_success_count'] = 'Användar-import: %d användare funna, %d importerade framgångsrikt.';
+$lang['import_failure_count'] = 'Användar-import: %d misslyckades. Misslyckandena listas nedan.';
+$lang['import_error_baduserid'] = 'Användar-id saknas';
+$lang['import_error_badname'] = 'Felaktigt namn';
+$lang['import_error_badmail'] = 'Felaktig e-postadress';
+$lang['import_error_upload'] = 'Import misslyckades. Csv-filen kunde inte laddas upp eller är tom.';
+$lang['import_error_readfail'] = 'Import misslyckades. Den uppladdade filen gick inte att läsa.';
+$lang['import_error_create'] = 'Misslyckades att skapa användaren.';
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 @@
<?php
+
/**
- * Turkish language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Aydın Coşkuner <aydinweb@gmail.com>
* @author Cihan Kahveci <kahvecicihan@gmail.com>
* @author Yavuz Selim <yavuzselim@gmail.com>
diff --git a/lib/plugins/usermanager/lang/uk/lang.php b/lib/plugins/usermanager/lang/uk/lang.php
index 027c94b44..3afb7b7d6 100644
--- a/lib/plugins/usermanager/lang/uk/lang.php
+++ b/lib/plugins/usermanager/lang/uk/lang.php
@@ -1,8 +1,8 @@
<?php
+
/**
- * ukrainian language file
- *
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author Oleksiy Voronin <ovoronin@gmail.com>
* @author serg_stetsuk@ukr.net
* @author okunia@gmail.com
diff --git a/lib/plugins/usermanager/lang/zh-tw/lang.php b/lib/plugins/usermanager/lang/zh-tw/lang.php
index 980d974cc..c7126bd1a 100644
--- a/lib/plugins/usermanager/lang/zh-tw/lang.php
+++ b/lib/plugins/usermanager/lang/zh-tw/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * English language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author chinsan <chinsan.tw@gmail.com>
* @author Li-Jiun Huang <ljhuang.tw@gmail.com>
* @author http://www.chinese-tools.com/tools/converter-simptrad.html
@@ -12,6 +13,7 @@
* @author Shuo-Ting Jian <shoting@gmail.com>
* @author syaoranhinata@gmail.com
* @author Ichirou Uchiki <syaoranhinata@gmail.com>
+ * @author tsangho <ou4222@gmail.com>
*/
$lang['menu'] = '帳號管理器';
$lang['noauth'] = '(帳號認證尚未開放)';
@@ -34,6 +36,8 @@ $lang['search'] = '搜尋';
$lang['search_prompt'] = '開始搜尋';
$lang['clear'] = '重設篩選條件';
$lang['filter'] = '篩選條件 (Filter)';
+$lang['import'] = '匯入新的用戶';
+$lang['error'] = '錯誤訊息';
$lang['summary'] = '顯示帳號 %1$d-%2$d,共 %3$d 筆符合。共有 %4$d 個帳號。';
$lang['nonefound'] = '找不到帳號。共有 %d 個帳號。';
$lang['delete_ok'] = '已刪除 %d 個帳號';
@@ -54,3 +58,4 @@ $lang['add_ok'] = '已新增使用者';
$lang['add_fail'] = '無法新增使用者';
$lang['notify_ok'] = '通知信已寄出';
$lang['notify_fail'] = '通知信無法寄出';
+$lang['import_error_readfail'] = '會入錯誤,無法讀取已經上傳的檔案';
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 e7a228229..25eb1a294 100644
--- a/lib/plugins/usermanager/lang/zh/lang.php
+++ b/lib/plugins/usermanager/lang/zh/lang.php
@@ -1,7 +1,8 @@
<?php
+
/**
- * English language file
- *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
* @author ZDYX <zhangduyixiong@gmail.com>
* @author http://www.chinese-tools.com/tools/converter-tradsimp.html
* @author George Sheraton guxd@163.com
@@ -14,6 +15,8 @@
* @author caii, patent agent in China <zhoucaiqi@gmail.com>
* @author lainme993@gmail.com
* @author Shuo-Ting Jian <shoting@gmail.com>
+ * @author Rachel <rzhang0802@gmail.com>
+ * @author Yangyu Huang <yangyu.huang@gmail.com>
*/
$lang['menu'] = '用户管理器';
$lang['noauth'] = '(用户认证不可用)';
@@ -36,6 +39,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 已删除';
@@ -56,3 +64,15 @@ $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 个。';
+$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。';
diff --git a/lib/plugins/usermanager/plugin.info.txt b/lib/plugins/usermanager/plugin.info.txt
index 1f8c2282b..315459122 100644
--- a/lib/plugins/usermanager/plugin.info.txt
+++ b/lib/plugins/usermanager/plugin.info.txt
@@ -3,5 +3,5 @@ author Chris Smith
email chris@jalakai.co.uk
date 2013-02-20
name User Manager
-desc Manage users
+desc Manage DokuWiki user accounts
url http://dokuwiki.org/plugin:usermanager
diff --git a/lib/plugins/usermanager/style.css b/lib/plugins/usermanager/style.css
index 506bd7928..d119b195a 100644
--- a/lib/plugins/usermanager/style.css
+++ b/lib/plugins/usermanager/style.css
@@ -21,4 +21,13 @@
color: #ccc!important;
border-color: #ccc!important;
}
+#user__manager .import_users {
+ margin-top: 1.4em;
+}
+#user__manager .import_failures {
+ margin-top: 1.4em;
+}
+#user__manager .import_failures td.lineno {
+ text-align: center;
+}
/* IE won't understand but doesn't require it */
diff --git a/lib/scripts/cookie.js b/lib/scripts/cookie.js
index 3ad67bfa4..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_BASE});
+ jQuery.cookie(this.name, text.join('#'), {expires: 365, path: DOKU_COOKIE_PARAM.path, secure: DOKU_COOKIE_PARAM.secure});
},
/**
diff --git a/lib/scripts/fileuploaderextended.js b/lib/scripts/fileuploaderextended.js
index 0ba7a0525..f5786c387 100644
--- a/lib/scripts/fileuploaderextended.js
+++ b/lib/scripts/fileuploaderextended.js
@@ -188,6 +188,7 @@ qq.extend(qq.FileUploaderExtended.prototype, {
if (i) action = action.substr(0, i);
var button = '<form method="post" action="' + action + '" id="mediamanager__done_form"><div>';
button += '<input type="hidden" value="' + result.ns + '" name="ns">';
+ button += '<input type="hidden" value="1" name="recent">';
button += '<input class="button" type="submit" value="' + LANG.media_done_btn + '"></div></form>';
jQuery('#mediamanager__uploader').append(button);
}
diff --git a/lib/scripts/linkwiz.js b/lib/scripts/linkwiz.js
index 875d4a995..f6ac9b032 100644
--- a/lib/scripts/linkwiz.js
+++ b/lib/scripts/linkwiz.js
@@ -237,7 +237,6 @@ var dw_linkwiz = {
link = ':' + link;
}
-
var so = link.length;
var eo = 0;
if(dw_linkwiz.val){
diff --git a/lib/scripts/textselection.js b/lib/scripts/textselection.js
index bd80e9341..26b4196f2 100644
--- a/lib/scripts/textselection.js
+++ b/lib/scripts/textselection.js
@@ -104,7 +104,6 @@ function getSelection(textArea) {
}
} while ((!before_finished || !selection_finished));
-
// count number of newlines in str to work around stupid IE selection bug
var countNL = function(str) {
var m = str.split("\r\n");
@@ -230,4 +229,3 @@ function insertAtCarret(textAreaID, text){
var selection = getSelection(txtarea);
pasteText(selection,text,{nosel: true});
}
-
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 <andi@splitbrain.org>
- * @author Anika Henke <anika@selfthinker.org>
- */
-
-/* -------------- 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 @@
-<?php
-/**
- * DokuWiki Image Detail Template
- *
- * This is the template for displaying image details
- *
- * @link http://dokuwiki.org/templates
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-
-// must be run from within DokuWiki
-if (!defined('DOKU_INC')) die();
-
-?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $conf['lang']?>" lang="<?php echo $conf['lang']?>" dir="ltr">
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>
- <?php echo hsc(tpl_img_getTag('IPTC.Headline',$IMG))?>
- [<?php echo strip_tags($conf['title'])?>]
- </title>
-
- <?php tpl_metaheaders()?>
-
- <link rel="shortcut icon" href="<?php echo DOKU_TPL?>images/favicon.ico" />
-</head>
-
-<body>
-<div class="dokuwiki">
- <?php html_msgarea()?>
-
- <div class="page">
- <?php if($ERROR){ print $ERROR; }else{ ?>
-
- <h1><?php echo hsc(tpl_img_getTag('IPTC.Headline',$IMG))?></h1>
-
- <div class="img_big">
- <?php tpl_img(900,700) ?>
- </div>
-
- <div class="img_detail">
- <p class="img_caption">
- <?php print nl2br(hsc(tpl_img_getTag('simple.title'))); ?>
- </p>
-
- <p>&larr; <?php echo $lang['img_backto']?> <?php tpl_pagelink($ID)?></p>
- <?php
- $imgNS = getNS($IMG);
- $authNS = auth_quickaclcheck("$imgNS:*");
- if ($authNS >= AUTH_UPLOAD) {
- echo '<p><a href="'.media_managerURL(array('ns' => $imgNS, 'image' => $IMG)).'">'.$lang['img_manager'].'</a></p>';
- }
- ?>
-
- <dl class="img_tags">
- <?php
- $config_files = getConfigFiles('mediameta');
- foreach ($config_files as $config_file) {
- if(@file_exists($config_file)) include($config_file);
- }
-
- foreach($fields as $key => $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 '<dt>'.$lang[$tag[1]].':</dt><dd>';
- if ($tag[2] == 'date') echo dformat($value);
- else echo hsc($value);
- echo '</dd>';
- }
- }
- ?>
- </dl>
- <?php //Comment in for Debug// dbg(tpl_img_getTag('Simple.Raw'));?>
- </div>
-
- <?php } ?>
- </div>
-</div>
-</body>
-</html>
-
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 @@
-<?php
-/**
- * Example footer include
- *
- * This file shows you how to use the include hooks. However I recommend to
- * create your own complete new template instead.
- */
-
-$tgt = ($conf['target']['extern']) ? 'target="'.$conf['target']['extern'].'"' : '';
-?>
-
-<div class="footerinc">
-
- <a <?php echo $tgt?> href="<?php echo DOKU_BASE; ?>feed.php" title="Recent changes RSS feed"><img src="<?php echo DOKU_TPL; ?>images/button-rss.png" width="80" height="15" alt="Recent changes RSS feed" /></a>
-
- <?php
- $lic = license_img('button');
- if($lic){
- ?>
- <a <?php echo $tgt?> href="<?php echo $license[$conf['license']]['url']?>" rel="license" title="<?php echo $license[$conf['license']]['name']?>"><img src="<?php echo DOKU_BASE.$lic ?>" width="80" height="15" alt="" /></a>
- <?php } ?>
-
- <a <?php echo $tgt?> href="http://www.dokuwiki.org/donate" title="Donate"><img src="<?php echo DOKU_TPL; ?>images/button-donate.gif" alt="Donate" width="80" height="15" /></a>
-
- <a <?php echo $tgt?> href="http://www.php.net" title="Powered by PHP"><img src="<?php echo DOKU_TPL; ?>images/button-php.gif" width="80" height="15" alt="Powered by PHP" /></a>
-
- <a <?php echo $tgt?> href="http://validator.w3.org/check/referer" title="Valid XHTML 1.0"><img src="<?php echo DOKU_TPL; ?>images/button-xhtml.png" width="80" height="15" alt="Valid XHTML 1.0" /></a>
-
- <a <?php echo $tgt?> href="http://jigsaw.w3.org/css-validator/check/referer?profile=css3" title="Valid CSS"><img src="<?php echo DOKU_TPL; ?>images/button-css.png" width="80" height="15" alt="Valid CSS" /></a>
-
- <a <?php echo $tgt?> href="http://dokuwiki.org/" title="Driven by DokuWiki"><img src="<?php echo DOKU_TPL; ?>images/button-dw.png" width="80" height="15" alt="Driven by DokuWiki" /></a>
-
-<?php
-if ($conf['allowdebug']) {
- echo '<!-- page made in '.round(delta_time(DOKU_START_TIME), 3).' seconds -->';
-}
-?>
-
-
-</div>
-<?php include(dirname(__FILE__).'/dwtb.html') ?>
diff --git a/lib/tpl/default/images/UWEB.png b/lib/tpl/default/images/UWEB.png
deleted file mode 100644
index 292ade4ed..000000000
--- a/lib/tpl/default/images/UWEB.png
+++ /dev/null
Binary files differ
diff --git a/lib/tpl/default/images/UWEBshadow.png b/lib/tpl/default/images/UWEBshadow.png
deleted file mode 100644
index 8c4e5f829..000000000
--- a/lib/tpl/default/images/UWEBshadow.png
+++ /dev/null
Binary files 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
--- a/lib/tpl/default/images/apple-touch-icon.png
+++ /dev/null
Binary files differ
diff --git a/lib/tpl/default/images/bullet.gif b/lib/tpl/default/images/bullet.gif
deleted file mode 100644
index b43de48a4..000000000
--- a/lib/tpl/default/images/bullet.gif
+++ /dev/null
Binary files 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
--- a/lib/tpl/default/images/button-cc.gif
+++ /dev/null
Binary files 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
--- a/lib/tpl/default/images/button-css.png
+++ /dev/null
Binary files 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
--- a/lib/tpl/default/images/button-donate.gif
+++ /dev/null
Binary files 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
--- a/lib/tpl/default/images/button-dw.png
+++ /dev/null
Binary files 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
--- a/lib/tpl/default/images/button-php.gif
+++ /dev/null
Binary files 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
--- a/lib/tpl/default/images/button-rss.png
+++ /dev/null
Binary files 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
--- a/lib/tpl/default/images/button-xhtml.png
+++ /dev/null
Binary files differ
diff --git a/lib/tpl/default/images/buttonshadow.png b/lib/tpl/default/images/buttonshadow.png
deleted file mode 100644
index b96ebf759..000000000
--- a/lib/tpl/default/images/buttonshadow.png
+++ /dev/null
Binary files differ
diff --git a/lib/tpl/default/images/closed.gif b/lib/tpl/default/images/closed.gif
deleted file mode 100644
index 8414d4d69..000000000
--- a/lib/tpl/default/images/closed.gif
+++ /dev/null
Binary files differ
diff --git a/lib/tpl/default/images/favicon.ico b/lib/tpl/default/images/favicon.ico
deleted file mode 100644
index 8b9616abb..000000000
--- a/lib/tpl/default/images/favicon.ico
+++ /dev/null
Binary files differ
diff --git a/lib/tpl/default/images/inputshadow.png b/lib/tpl/default/images/inputshadow.png
deleted file mode 100644
index 480044986..000000000
--- a/lib/tpl/default/images/inputshadow.png
+++ /dev/null
Binary files 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
--- a/lib/tpl/default/images/link_icon.gif
+++ /dev/null
Binary files 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
--- a/lib/tpl/default/images/mail_icon.gif
+++ /dev/null
Binary files differ
diff --git a/lib/tpl/default/images/open.gif b/lib/tpl/default/images/open.gif
deleted file mode 100644
index f5d5c7e56..000000000
--- a/lib/tpl/default/images/open.gif
+++ /dev/null
Binary files differ
diff --git a/lib/tpl/default/images/resizecol.png b/lib/tpl/default/images/resizecol.png
deleted file mode 100644
index f0111507c..000000000
--- a/lib/tpl/default/images/resizecol.png
+++ /dev/null
Binary files differ
diff --git a/lib/tpl/default/images/tocdot2.gif b/lib/tpl/default/images/tocdot2.gif
deleted file mode 100644
index e2b5f15cb..000000000
--- a/lib/tpl/default/images/tocdot2.gif
+++ /dev/null
Binary files differ
diff --git a/lib/tpl/default/images/windows.gif b/lib/tpl/default/images/windows.gif
deleted file mode 100644
index 64dfeb6fb..000000000
--- a/lib/tpl/default/images/windows.gif
+++ /dev/null
Binary files 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 <andi@splitbrain.org>
- * @author moraes <moraes@tipos.com.br>
- */
-
-/* -------------- 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 @@
-<?php
-/**
- * DokuWiki Default Template
- *
- * This is the template you need to change for the overall look
- * of DokuWiki.
- *
- * @link http://dokuwiki.org/templates
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-
-// must be run from within DokuWiki
-if (!defined('DOKU_INC')) die();
-
-?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $conf['lang']?>"
- lang="<?php echo $conf['lang']?>" dir="<?php echo $lang['direction']?>">
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>
- <?php tpl_pagetitle()?>
- [<?php echo strip_tags($conf['title'])?>]
- </title>
-
- <?php tpl_metaheaders()?>
- <?php echo tpl_favicon(array('favicon', 'mobile')) ?>
-
- <?php /*old includehook*/ @include(dirname(__FILE__).'/meta.html')?>
-</head>
-
-<body>
-<?php /*old includehook*/ @include(dirname(__FILE__).'/topheader.html')?>
-<div class="dokuwiki">
- <?php html_msgarea()?>
-
- <div class="stylehead">
-
- <div class="header">
- <div class="pagename">
- [[<?php tpl_link(wl($ID,'do=backlink'),tpl_pagetitle($ID,true),'title="'.$lang['btn_backlink'].'"')?>]]
- </div>
- <div class="logo">
- <?php tpl_link(wl(),$conf['title'],'name="dokuwiki__top" id="dokuwiki__top" accesskey="h" title="[H]"')?>
- </div>
-
- <div class="clearer"></div>
- </div>
-
- <?php /*old includehook*/ @include(dirname(__FILE__).'/header.html')?>
-
- <div class="bar" id="bar__top">
- <div class="bar-left" id="bar__topleft">
- <?php tpl_button('edit')?>
- <?php tpl_button('history')?>
- </div>
-
- <div class="bar-right" id="bar__topright">
- <?php tpl_button('recent')?>
- <?php tpl_searchform()?>&#160;
- </div>
-
- <div class="clearer"></div>
- </div>
-
- <?php if($conf['breadcrumbs']){?>
- <div class="breadcrumbs">
- <?php tpl_breadcrumbs()?>
- <?php //tpl_youarehere() //(some people prefer this)?>
- </div>
- <?php }?>
-
- <?php if($conf['youarehere']){?>
- <div class="breadcrumbs">
- <?php tpl_youarehere() ?>
- </div>
- <?php }?>
-
- </div>
- <?php tpl_flush()?>
-
- <?php /*old includehook*/ @include(dirname(__FILE__).'/pageheader.html')?>
-
- <div class="page">
- <!-- wikipage start -->
- <?php tpl_content()?>
- <!-- wikipage stop -->
- </div>
-
- <div class="clearer"></div>
-
- <?php tpl_flush()?>
-
- <div class="stylefoot">
-
- <div class="meta">
- <div class="user">
- <?php tpl_userinfo()?>
- </div>
- <div class="doc">
- <?php tpl_pageinfo()?>
- </div>
- </div>
-
- <?php /*old includehook*/ @include(dirname(__FILE__).'/pagefooter.html')?>
-
- <div class="bar" id="bar__bottom">
- <div class="bar-left" id="bar__bottomleft">
- <?php tpl_button('edit')?>
- <?php tpl_button('history')?>
- <?php tpl_button('revert')?>
- </div>
- <div class="bar-right" id="bar__bottomright">
- <?php tpl_button('subscribe')?>
- <?php tpl_button('media')?>
- <?php tpl_button('admin')?>
- <?php tpl_button('profile')?>
- <?php tpl_button('login')?>
- <?php tpl_button('index')?>
- <?php tpl_button('top')?>&#160;
- </div>
- <div class="clearer"></div>
- </div>
-
- </div>
-
- <?php tpl_license(false);?>
-
-</div>
-<?php /*old includehook*/ @include(dirname(__FILE__).'/footer.html')?>
-
-<div class="no"><?php /* provide DokuWiki housekeeping, required in all templates */ tpl_indexerWebBug()?></div>
-</body>
-</html>
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 @@
-<?php
-/**
- * DokuWiki Default Template
- *
- * This is the template for the media manager popup
- *
- * @link http://dokuwiki.org/templates
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-
-// must be run from within DokuWiki
-if (!defined('DOKU_INC')) die();
-
-?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $conf['lang']?>" lang="<?php echo $conf['lang']?>" dir="ltr">
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>
- <?php echo hsc($lang['mediaselect'])?>
- [<?php echo strip_tags($conf['title'])?>]
- </title>
- <?php tpl_metaheaders()?>
- <link rel="shortcut icon" href="<?php echo DOKU_TPL?>images/favicon.ico" />
-</head>
-
-<body>
-<div id="media__manager" class="dokuwiki">
- <div id="media__left">
- <?php html_msgarea()?>
- <h1><?php echo hsc($lang['mediaselect'])?></h1>
-
- <?php /* keep the id! additional elements are inserted via JS here */?>
- <div id="media__opts"></div>
-
- <?php tpl_mediaTree() ?>
- </div>
-
- <div id="media__right">
- <?php tpl_mediaContent() ?>
- </div>
-</div>
-</body>
-</html>
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 <andi@splitbrain.org>
- * @author Dotan Kamber <kamberd@yahoo.com>
- */
-
-.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
diff --git a/lib/tpl/dokuwiki/css/_forms.css b/lib/tpl/dokuwiki/css/_forms.css
index 4d3f2b97a..522f9ed4d 100644
--- a/lib/tpl/dokuwiki/css/_forms.css
+++ b/lib/tpl/dokuwiki/css/_forms.css
@@ -1,4 +1,3 @@
-
/* TODO: this file is not up to the best standards and will be fixed after an overhaul of the form code */
/**
diff --git a/lib/tpl/dokuwiki/css/_media_fullscreen.css b/lib/tpl/dokuwiki/css/_media_fullscreen.css
index 28e347882..31b71897b 100644
--- a/lib/tpl/dokuwiki/css/_media_fullscreen.css
+++ b/lib/tpl/dokuwiki/css/_media_fullscreen.css
@@ -501,4 +501,3 @@
width: 100%;
max-width: none;
}
-
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;
diff --git a/lib/tpl/dokuwiki/css/content.less b/lib/tpl/dokuwiki/css/content.less
index 56551fe3b..a5ffbf2be 100644
--- a/lib/tpl/dokuwiki/css/content.less
+++ b/lib/tpl/dokuwiki/css/content.less
@@ -113,10 +113,6 @@
text-decoration: underline;
}
-/* for code in <file> */
-.dokuwiki pre.file {
-}
-
/* filenames for downloadable file and code blocks */
.dokuwiki dl.code,
.dokuwiki dl.file {
@@ -163,6 +159,17 @@
}
}
+/* for code in <file> */
+.dokuwiki dl.file {
+ pre,
+ dt {
+ border-style: dashed;
+ }
+ dt {
+ border-bottom-style: solid;
+ }
+}
+
/*____________ JS popup ____________*/
.JSpopup {
diff --git a/lib/tpl/dokuwiki/detail.php b/lib/tpl/dokuwiki/detail.php
index 7e46231d3..c602830f7 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');
<body>
<!--[if lte IE 7 ]><div id="IE7"><![endif]--><!--[if IE 8 ]><div id="IE8"><![endif]-->
- <div id="dokuwiki__site"><div id="dokuwiki__top" class="site <?php echo tpl_classes(); ?> <?php
- echo ($showSidebar) ? 'showSidebar' : ''; ?> <?php echo ($hasSidebar) ? 'hasSidebar' : ''; ?>">
+ <div id="dokuwiki__site"><div id="dokuwiki__top" class="site <?php echo tpl_classes(); ?>">
<?php include('tpl_header.php') ?>
@@ -123,11 +122,11 @@ header('X-UA-Compatible: IE=edge,chrome=1');
// Back to [ID]; @todo: transfer logic to backend
$data['img_backto'] = '<li><a href="'.wl($ID).'" class="back"><span>'.$lang['img_backto'].' '.$ID.'</span></a></li>';
- // 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, '<span>', '</span>')
);
- // 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/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();
</div>
</div></div><!-- /footer -->
-<?php tpl_includeFile('footer.html') ?>
+<?php
+tpl_includeFile('footer.html');
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();
<h3 class="a11y"><?php echo $lang['user_tools']; ?></h3>
<ul>
<?php
- if ($_SERVER['REMOTE_USER']) {
+ if (!empty($_SERVER['REMOTE_USER'])) {
echo '<li class="user">';
tpl_userinfo(); /* 'Logged in as ...' */
echo '</li>';